@narrative.io/data-collaboration-sdk-ts 2.57.0 → 2.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -161,11 +161,13 @@ export declare class DatasetApi extends BaseApi {
161
161
  * Requests a sample of records from a specified dataset by its ID.
162
162
  *
163
163
  * @param {number} datasetId - The ID of the dataset to request a sample from.
164
- * @returns {Promise<void>} A Promise that resolves when the operation is complete.
164
+ * @returns {Promise<{ job_id: string }>} A Promise that resolves with the job_id for tracking the sample request.
165
165
  * @throws {Error} If there is an issue with the request or the response.
166
166
  * @memberof DatasetApi
167
167
  */
168
- requestDatasetSample(datasetId: number): Promise<void>;
168
+ requestDatasetSample(datasetId: number): Promise<{
169
+ job_id: string;
170
+ }>;
169
171
  /**
170
172
  * Deletes a sample of a specified dataset by its ID.
171
173
  *
@@ -198,12 +198,12 @@ export class DatasetApi extends BaseApi {
198
198
  * Requests a sample of records from a specified dataset by its ID.
199
199
  *
200
200
  * @param {number} datasetId - The ID of the dataset to request a sample from.
201
- * @returns {Promise<void>} A Promise that resolves when the operation is complete.
201
+ * @returns {Promise<{ job_id: string }>} A Promise that resolves with the job_id for tracking the sample request.
202
202
  * @throws {Error} If there is an issue with the request or the response.
203
203
  * @memberof DatasetApi
204
204
  */
205
205
  async requestDatasetSample(datasetId) {
206
- await this.post(`${resourceName}/${datasetId}/request-sample`);
206
+ return await this.post(`${resourceName}/${datasetId}/request-sample`);
207
207
  }
208
208
  /**
209
209
  * Deletes a sample of a specified dataset by its ID.
package/build/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type AccessRule, type AccessRuleV2, AccessRulesApi, type CreateAccessRuleV2Request, type GetAccessRulesParameters, type OwnedAccessRule, type SharedAccessRule, type UpdateAccessRuleV2Request } from "./access-rules/";
1
+ import { type AccessRule, AccessRulesApi, type AccessRuleV2, type CreateAccessRuleV2Request, type GetAccessRulesParameters, type OwnedAccessRule, type SharedAccessRule, type UpdateAccessRuleV2Request } from "./access-rules/";
2
2
  import type { AccessRuleSchema } from "./access-rules/types";
3
3
  import { type AccessTokenMetadata, AccessTokensApi, type CreateSystemAccessTokenRequest, type CreateSystemAccessTokenResponse, type UpdateSystemAccessTokenRequest } from "./access-tokens";
4
4
  import { type Permission, resources } from "./access-tokens/types";
@@ -21,13 +21,13 @@ import { type CostForecastRequest, type CostForecastResponse, type CostForecastR
21
21
  import { HealthCheckApi } from "./health";
22
22
  import type { HealthCheckResult } from "./health/types";
23
23
  import { type Installation, InstallationsApi, type Profile } from "./installations";
24
- import { type ColumnDetails, type DatasetsCalculateColumnStatsJob, type DatasetsDeleteTableJob, type DatasetsDeliverDataJob, type DatasetsSampleJob, type DeleteInput, type DeliverInput, type ExplainInput, type ExplainJob, type ExplainOutput, type ForecastInput, type ForecastJob, type GetJobsParameters, type Job, type JobRequestSource, type JobRequestSourceApiUser, type JobRequestSourceProcess, JobsApi, type MaterializedViewInput, type MaterializedViewJob, type MaterializedViewOutput, type ModelTrainingRunInput, type ModelTrainingRunJob, type ModelsDeliverModelInput, type ModelsDeliverModelJob, type SampleInput, type StatsInput } from "./jobs";
24
+ import { type ColumnDetails, type DatasetsCalculateColumnStatsJob, type DatasetsDeleteTableJob, type DatasetsDeliverDataJob, type DatasetsSampleJob, type DeleteInput, type DeliverInput, type ExplainInput, type ExplainJob, type ExplainOutput, type ForecastInput, type ForecastJob, type GetJobsParameters, type Job, type JobRequestSource, type JobRequestSourceApiUser, type JobRequestSourceProcess, JobsApi, type MaterializedViewInput, type MaterializedViewJob, type MaterializedViewOutput, type ModelsDeliverModelInput, type ModelsDeliverModelJob, type ModelTrainingRunInput, type ModelTrainingRunJob, type SampleInput, type StatsInput } from "./jobs";
25
25
  import JsonBigNumber from "./json-big-number";
26
- import { type Mapping, type MappingTestResult, MappingsApi } from "./mappings";
26
+ import { type Mapping, MappingsApi, type MappingTestResult } from "./mappings";
27
27
  import type { CreateMapping, ObjectMapping, ValueMapping } from "./mappings/types";
28
28
  import { ModelTrainingApi, type ModelTrainingConfig, type OutputModel, type TrainModelRequest, type TrainModelResponse } from "./model-training";
29
29
  import { type CreateModelRequest, type Model, type ModelCollaborators, ModelsApi, type UpdateModelRequest } from "./models";
30
- import { type CompiledNql, type CreateMaterializedView, type Deduplication, type Explain, type Expression, type Nql, NqlApi, type NqlAst, type NqlBooleanExpression, type NqlCompileResult, type NqlExpression, type NqlField, type NqlFilterBinaryExpression, type NqlFilterExpression, type NqlFilterUnaryExpression, type NqlQueryInput, type NqlResult, type NqlWhere, type Raw, type Select, type Statement, type Table, compileStatement, parseStatement } from "./nql";
30
+ import { type CompiledNql, type CreateMaterializedView, compileStatement, type Deduplication, type Explain, type Expression, type Nql, NqlApi, type NqlAst, type NqlBooleanExpression, type NqlCompileResult, type NqlExpression, type NqlField, type NqlFilterBinaryExpression, type NqlFilterExpression, type NqlFilterUnaryExpression, type NqlQueryInput, type NqlResult, type NqlWhere, parseStatement, type Raw, type Select, type Statement, type Table } from "./nql";
31
31
  import { convertNqlObjectToForecastBody } from "./nql/DataRulesConverter";
32
32
  import { buildNql, getNqlObject } from "./nql/NQLParser";
33
33
  import type { AstNodeMetadata, AstNodeType, ForecastBody } from "./nql/types";
@@ -36,10 +36,10 @@ import type { PingStatus } from "./ping/types";
36
36
  import { type Product, ProductsApi } from "./products";
37
37
  import { type CreateNqlQueryRequest, type NqlOwnedQueryResponse, type NqlQueryAst, type NqlQueryCollaborators, type NqlQueryMetadata, type NqlQueryOwner, type NqlQueryResponse, type NqlSharedQueryResponse, QueriesApi, type UpdateNqlQueryRequest } from "./queries";
38
38
  import { type BucketCreationRequest, type Resource, ResourceApi, type UpdateAccessTypeRequest } from "./resources";
39
+ import { type ConversationAssistantMessage, type ConversationAssistantMessageWithFunctionCall, type ConversationAssistantMessageWithoutFunctionCall, type ConversationFunctionMessage, type ConversationIOMessage, type ConversationMessage, type ConversationMessageFunctionCall, type ConversationMessageName, type ConversationMessageRole, type ConversationMessages, type ConversationSystemMessage, type ConversationUserMessage, isConversationAssistantMessage, isConversationAssistantMessageWithFunctionCall, isConversationAssistantMessageWithoutFunctionCall, isConversationFunctionMessage, isConversationInputMessage, isConversationMessage, isConversationMessageFunctionCall, isConversationMessageName, isConversationMessageRole, isConversationMessages, isConversationSystemMessage, isConversationUserMessage, isRosettaRequestMessage, isType, type RosettaRequestMessage, type RosettaResponseMessage } from "./rosetta/types";
39
40
  import { RosettaStoneApi } from "./rosetta-stone";
40
41
  import type { SampleRecords } from "./rosetta-stone/types";
41
- import { type ConversationAssistantMessage, type ConversationAssistantMessageWithFunctionCall, type ConversationAssistantMessageWithoutFunctionCall, type ConversationFunctionMessage, type ConversationIOMessage, type ConversationMessage, type ConversationMessageFunctionCall, type ConversationMessageName, type ConversationMessageRole, type ConversationMessages, type ConversationSystemMessage, type ConversationUserMessage, type RosettaRequestMessage, type RosettaResponseMessage, isConversationAssistantMessage, isConversationAssistantMessageWithFunctionCall, isConversationAssistantMessageWithoutFunctionCall, isConversationFunctionMessage, isConversationInputMessage, isConversationMessage, isConversationMessageFunctionCall, isConversationMessageName, isConversationMessageRole, isConversationMessages, isConversationSystemMessage, isConversationUserMessage, isRosettaRequestMessage, isType } from "./rosetta/types";
42
- import { type DataStreamSubscriptionDetails, type MarketplaceSubscriptionDetails, type Subscription, type SubscriptionBudget, type SubscriptionDetails, type SubscriptionOutput, type SubscriptionStatus, type SubscriptionType, SubscriptionsApi } from "./subscriptions";
42
+ import { type DataStreamSubscriptionDetails, type MarketplaceSubscriptionDetails, type Subscription, type SubscriptionBudget, type SubscriptionDetails, type SubscriptionOutput, type SubscriptionStatus, SubscriptionsApi, type SubscriptionType } from "./subscriptions";
43
43
  import type { ApiRecords, ApiRecordsV2, CollaboratorList, CollaboratorsConfig, Config, Environment, GeneralCollaborator, GeneralCollaboratorType, MonetaryAmount, NonAuthenticatedCollaborator, QueryAccess, QueryCollaborator, SpecificCollaboratorType, ViewAccess, ViewCollaborator } from "./types";
44
44
  import { UploadsApi } from "./uploads";
45
45
  import type { UploadsResponse } from "./uploads/types";
package/build/index.js CHANGED
@@ -20,15 +20,15 @@ import JsonBigNumber from "./json-big-number";
20
20
  import { MappingsApi } from "./mappings";
21
21
  import { ModelTrainingApi, } from "./model-training";
22
22
  import { ModelsApi, } from "./models";
23
- import { NqlApi, compileStatement, parseStatement, } from "./nql";
23
+ import { compileStatement, NqlApi, parseStatement, } from "./nql";
24
24
  import { convertNqlObjectToForecastBody } from "./nql/DataRulesConverter";
25
25
  import { buildNql, getNqlObject } from "./nql/NQLParser";
26
26
  import { PingApi } from "./ping";
27
27
  import { ProductsApi } from "./products";
28
28
  import { QueriesApi, } from "./queries";
29
29
  import { ResourceApi, } from "./resources";
30
- import { RosettaStoneApi } from "./rosetta-stone";
31
30
  import { isConversationAssistantMessage, isConversationAssistantMessageWithFunctionCall, isConversationAssistantMessageWithoutFunctionCall, isConversationFunctionMessage, isConversationInputMessage, isConversationMessage, isConversationMessageFunctionCall, isConversationMessageName, isConversationMessageRole, isConversationMessages, isConversationSystemMessage, isConversationUserMessage, isRosettaRequestMessage, isType, } from "./rosetta/types";
31
+ import { RosettaStoneApi } from "./rosetta-stone";
32
32
  import { SubscriptionsApi, } from "./subscriptions";
33
33
  import { UploadsApi } from "./uploads";
34
34
  import { applyMixins } from "./utils";
@@ -68,6 +68,4 @@ applyMixins(NarrativeApi, [
68
68
  EncryptionMaterialApi,
69
69
  WhoAmIApi,
70
70
  ]);
71
- export {
72
- // biome-ignore lint/style/useExportType: We need to export the class
73
- NarrativeApi, AttributeApi, AttributeApiV2, AccessTokensApi, DataPlaneApi, HealthCheckApi, DatasetApi, EncryptionMaterialApi, PingApi, ProductsApi, CompanyInfoApi, InstallationsApi, ConnectionsApi, UploadsApi, ResourceApi, NqlApi, DataStreamsApi, ForecastApi, ContractsApi, AuthenticationApi, AppsApi, MappingsApi, AccessRulesApi, SubscriptionsApi, JobsApi, QueriesApi, ViewsApi, ModelsApi, ModelTrainingApi, WhoAmIApi, getNqlObject, buildNql, convertNqlObjectToForecastBody, isConversationAssistantMessage, isConversationFunctionMessage, isConversationInputMessage, isConversationMessage, isConversationMessageName, isConversationMessageRole, isConversationMessages, isConversationSystemMessage, isConversationUserMessage, isType, isConversationMessageFunctionCall, isConversationAssistantMessageWithFunctionCall, isRosettaRequestMessage, isConversationAssistantMessageWithoutFunctionCall, resources, compileStatement, parseStatement, JsonBigNumber, };
71
+ export { NarrativeApi, AttributeApi, AttributeApiV2, AccessTokensApi, DataPlaneApi, HealthCheckApi, DatasetApi, EncryptionMaterialApi, PingApi, ProductsApi, CompanyInfoApi, InstallationsApi, ConnectionsApi, UploadsApi, ResourceApi, NqlApi, DataStreamsApi, ForecastApi, ContractsApi, AuthenticationApi, AppsApi, MappingsApi, AccessRulesApi, SubscriptionsApi, JobsApi, QueriesApi, ViewsApi, ModelsApi, ModelTrainingApi, WhoAmIApi, getNqlObject, buildNql, convertNqlObjectToForecastBody, isConversationAssistantMessage, isConversationFunctionMessage, isConversationInputMessage, isConversationMessage, isConversationMessageName, isConversationMessageRole, isConversationMessages, isConversationSystemMessage, isConversationUserMessage, isType, isConversationMessageFunctionCall, isConversationAssistantMessageWithFunctionCall, isRosettaRequestMessage, isConversationAssistantMessageWithoutFunctionCall, resources, compileStatement, parseStatement, JsonBigNumber, };
@@ -1,6 +1,6 @@
1
1
  import { BaseApi } from "../base-api";
2
2
  import type { ApiRecords } from "../types";
3
- import type { ColumnDetails, DatasetsCalculateColumnStatsJob, DatasetsDeleteTableJob, DatasetsDeliverDataJob, DatasetsSampleJob, DeleteInput, DeliverInput, ExplainInput, ExplainJob, ExplainOutput, ForecastInput, ForecastJob, Job, JobRequestSource, JobRequestSourceApiUser, JobRequestSourceProcess, MaterializedViewInput, MaterializedViewJob, MaterializedViewOutput, ModelTrainingRunInput, ModelTrainingRunJob, ModelsDeliverModelInput, ModelsDeliverModelJob, SampleInput, StatsInput } from "./types";
3
+ import type { ColumnDetails, DatasetsCalculateColumnStatsJob, DatasetsDeleteTableJob, DatasetsDeliverDataJob, DatasetsSampleJob, DeleteInput, DeliverInput, ExplainInput, ExplainJob, ExplainOutput, ForecastInput, ForecastJob, Job, JobRequestSource, JobRequestSourceApiUser, JobRequestSourceProcess, MaterializedViewInput, MaterializedViewJob, MaterializedViewOutput, ModelsDeliverModelInput, ModelsDeliverModelJob, ModelTrainingRunInput, ModelTrainingRunJob, SampleInput, StatsInput } from "./types";
4
4
  interface GetJobsParameters extends Record<string, string | number | boolean | undefined> {
5
5
  dataset_id?: number;
6
6
  per_page?: number;
@@ -1,7 +1,7 @@
1
1
  import type { ForecastResult, JobState } from "src/forecast";
2
2
  import type { DataStreamPurchaseDetails, ForecastDimensions, MarketplaceForecastDetails } from "src/forecast/types";
3
3
  import type { NqlBudget } from "src/nql/types";
4
- export type JobType = "forecast" | "nql-forecast" | "materialize-view" | "datasets_calculate_column_stats" | "datasets_delete_table" | "datasets_deliver_data" | "datasets_sample" | "models_deliver_model" | "model_training_run";
4
+ export type JobType = "forecast" | "nql-forecast" | "materialize-view" | "datasets_calculate_column_stats" | "datasets_delete_table" | "datasets_deliver_data" | "datasets_sample" | "models_deliver_model" | "models_train_classifier" | "model_training_run";
5
5
  export interface JobRequestSource {
6
6
  type: string;
7
7
  company_id: number;
@@ -157,5 +157,179 @@ export interface UnknownJob extends BaseJob {
157
157
  input: unknown;
158
158
  result?: unknown;
159
159
  }
160
- export type Job = ForecastJob | ExplainJob | MaterializedViewJob | DatasetsDeleteTableJob | DatasetsDeliverDataJob | DatasetsSampleJob | DatasetsCalculateColumnStatsJob | ModelTrainingRunJob | ModelsDeliverModelJob | UnknownJob;
160
+ export interface ModelsTrainClassifierJob extends BaseJob {
161
+ type: "models_train_classifier";
162
+ result: ModelsTrainClassifierResults;
163
+ }
164
+ export type Job = ForecastJob | ExplainJob | MaterializedViewJob | DatasetsDeleteTableJob | DatasetsDeliverDataJob | DatasetsSampleJob | DatasetsCalculateColumnStatsJob | ModelTrainingRunJob | ModelsDeliverModelJob | ModelsTrainClassifierJob | UnknownJob;
165
+ interface ModelsTrainClassifierTrainingSummary {
166
+ total_features: number;
167
+ feature_types: Record<"text" | "categorical" | "embedding" | "numeric", number>;
168
+ test_accuracy: number;
169
+ num_classes: number;
170
+ class_names: Record<string, string>;
171
+ error?: unknown;
172
+ }
173
+ interface ModelsTrainClassifierRegistryInfo {
174
+ model_stored: boolean;
175
+ model_name: string;
176
+ model_version: string;
177
+ registry_database: string;
178
+ registry_schema: string;
179
+ model_task: string;
180
+ }
181
+ interface ModelsTrainClassifierMinimalMetrics {
182
+ num_classes: number;
183
+ class_names: Record<string, string>;
184
+ accuracy: number;
185
+ f1_macro: number;
186
+ precision_macro: number;
187
+ recall_macro: number;
188
+ }
189
+ interface ModelsTrainClassifierConfig {
190
+ name: string;
191
+ version: string;
192
+ [key: string]: unknown;
193
+ }
194
+ type ModelsTrainClassifierResults = {
195
+ status: "success" | "error";
196
+ registry_info?: ModelsTrainClassifierRegistryInfo;
197
+ num_categories: number;
198
+ rows_processed: number;
199
+ rows_dropped: number;
200
+ metrics: {
201
+ minimal: ModelsTrainClassifierMinimalMetrics;
202
+ detailed: DetailedAnalytics;
203
+ };
204
+ debug_info?: unknown;
205
+ config: ModelsTrainClassifierConfig;
206
+ training_summary: ModelsTrainClassifierTrainingSummary;
207
+ };
208
+ type Metric<V = unknown, M extends Record<string, unknown> = Record<string, unknown>> = {
209
+ value: V;
210
+ metadata: M;
211
+ };
212
+ interface AveragePredictionEntropy {
213
+ correct_predictions: number;
214
+ incorrect_predictions: number;
215
+ entropy_difference: number;
216
+ }
217
+ interface PerClassMetricsLabeledPost {
218
+ class: string;
219
+ f1_score: number;
220
+ precision: number;
221
+ recall: number;
222
+ support: number;
223
+ avg_confidence_when_correct: number;
224
+ total_instances: number;
225
+ correct_predictions: number;
226
+ }
227
+ interface EntropyStats {
228
+ min: number;
229
+ max: number;
230
+ mean: number;
231
+ std: number;
232
+ median: number;
233
+ perplexity_mean: number;
234
+ perplexity_median: number;
235
+ normalized_perplexity_mean: number;
236
+ normalized_perplexity_median: number;
237
+ }
238
+ interface EntropyPrioritizationHistogram {
239
+ min: number;
240
+ max: number;
241
+ count: number;
242
+ inclusive_left: number;
243
+ inclusive_right: number;
244
+ }
245
+ interface TopEntropyRecord {
246
+ entropy: number;
247
+ top5_predicted_classes: [string, number][];
248
+ ID_COLUMN: string;
249
+ LABEL_COLUMN: string;
250
+ [key: string]: unknown;
251
+ }
252
+ interface GlobalMetrics {
253
+ num_documents_corpus_pre: Metric<number, never>;
254
+ num_documents_labeled_pre: Metric<number, never>;
255
+ percent_labeled_corpus_pre: Metric<number, never>;
256
+ label_distribution_labeled_pre: Metric<Record<string, number>, never>;
257
+ class_imbalance_labeled_pre: Metric<number, never>;
258
+ missing_values_corpus_pre: Metric<number, never>;
259
+ duplicate_count_corpus_pre: Metric<number, never>;
260
+ accuracy_labeled_post: Metric<number, never>;
261
+ precision_macro_labeled_post: Metric<number, never>;
262
+ recall_macro_labeled_post: Metric<number, never>;
263
+ f1_macro_labeled_post: Metric<number, never>;
264
+ confusion_matrix_labeled_post: Metric<number[][], never>;
265
+ top_n_accuracy_labeled_post: Metric<Record<string, number>, never>;
266
+ auc_roc_labeled_post: Metric<number, never>;
267
+ avg_prediction_entropy_labeled_post: Metric<AveragePredictionEntropy, never>;
268
+ per_class_metrics_labeled_post: Metric<PerClassMetricsLabeledPost[], never>;
269
+ entropy_stats: Metric<EntropyStats, never>;
270
+ entropy_prioritization_histogram: Metric<EntropyPrioritizationHistogram[], never>;
271
+ top_entropy_records: Metric<TopEntropyRecord[], never>;
272
+ }
273
+ type TopTermsValue = Record<string, number>;
274
+ interface FeatureError {
275
+ feature: string;
276
+ prevalence_diff: number;
277
+ incorrect_prevalence: number;
278
+ correct_prevalence: number;
279
+ ratio: number;
280
+ }
281
+ interface ErrorConcentration {
282
+ feature: string;
283
+ records_with_feature: number;
284
+ errors_with_feature: number;
285
+ error_rate: number;
286
+ overall_error_rate: number;
287
+ error_lift: number;
288
+ }
289
+ interface ErrorPredictionImportance {
290
+ feature: string;
291
+ correlation: number;
292
+ p_value: number;
293
+ abs_correlation: number;
294
+ }
295
+ interface DynamicTextFeatureMetrics {
296
+ [key: `${string}_avg_doc_length_corpus_pre`]: Metric<number>;
297
+ [key: `${string}_avg_doc_length_labeled_pre`]: Metric<number>;
298
+ [key: `${string}_ngram_vocab_size_corpus_pre`]: Metric<number>;
299
+ [key: `${string}_ngram_vocab_size_labeled_pre`]: Metric<number>;
300
+ [key: `${string}_ngram_top_terms_corpus_pre`]: Metric<TopTermsValue>;
301
+ [key: `${string}_ngram_top_terms_labeled_pre`]: Metric<TopTermsValue>;
302
+ [key: `${string}_ngram_diversity_corpus_pre`]: Metric<number>;
303
+ [key: `${string}_ngram_stopword_percentage_corpus_pre`]: Metric<number>;
304
+ [key: `${string}_ngram_entropy_corpus_pre`]: Metric<number>;
305
+ [key: `${string}_ngram_oov_rate_corpus_pre`]: Metric<number>;
306
+ [key: `${string}_ngram_sparsity_labeled_pre`]: Metric<number>;
307
+ [key: `${string}_ngram_diversity_labeled_pre`]: Metric<number>;
308
+ [key: `${string}_ngram_stopword_percentage_labeled_pre`]: Metric<number>;
309
+ [key: `${string}_ngram_entropy_labeled_pre`]: Metric<number>;
310
+ [key: `${string}_ngram_sparsity_labeled_post`]: Metric<number>;
311
+ [key: `${string}_ngram_top_oov_tokens`]: Metric<string>;
312
+ [key: `${string}_features_prevalent_in_errors`]: Metric<FeatureError[], {
313
+ description: string;
314
+ total_correct: number;
315
+ total_incorrect: number;
316
+ analysis_type: string;
317
+ }>;
318
+ [key: `${string}_feature_error_concentration`]: Metric<ErrorConcentration[], {
319
+ description: string;
320
+ metric_type: string;
321
+ }>;
322
+ [key: `${string}_error_prediction_importance`]: Metric<ErrorPredictionImportance[], {
323
+ description: string;
324
+ metric_type: string;
325
+ }>;
326
+ [key: `${string}_ttr_corpus_pre`]: Metric<number>;
327
+ [key: `${string}_ttr_labeled_pre`]: Metric<number>;
328
+ [key: `${string}_ttr_per_class_labeled_pre`]: Metric<Record<string, number>>;
329
+ }
330
+ export type DetailedAnalytics = {
331
+ global: GlobalMetrics;
332
+ } & {
333
+ [dynamicKey: string]: DynamicTextFeatureMetrics;
334
+ };
161
335
  export {};
@@ -8,7 +8,7 @@ export declare const NqlAstTypes: {
8
8
  binary_op: NqlBinaryOp;
9
9
  case: NqlCase;
10
10
  function: NqlFunction;
11
- literal: NqlLit<NqlSimpleType>;
11
+ literal: NqlLit;
12
12
  string_literal: NqlLit<NqlStringType>;
13
13
  long_literal: NqlLit<NqlLongType>;
14
14
  double_literal: NqlLit<NqlDoubleType>;
@@ -355,9 +355,6 @@ function compilePostfixUnaryOperator(op, operand, as, dsMap) {
355
355
  function compileRawRef(nql, as) {
356
356
  return aliased(nql, as);
357
357
  }
358
- function compileUnaryMinus(operand, as, dsMap) {
359
- return aliased(`-(${compileExpression(operand, dsMap)})`, as);
360
- }
361
358
  export function compilePlaceholder(n) {
362
359
  switch (n.expectedType) {
363
360
  case "literal":
@@ -394,6 +391,6 @@ function isArray(ns) {
394
391
  return Array.isArray(ns);
395
392
  }
396
393
  // typescript trick to help with checking exhaustivity of swith statements
397
- function unreachable(x) {
394
+ function unreachable(_x) {
398
395
  throw new Error("unreachable");
399
396
  }