@narrative.io/data-collaboration-sdk-ts 0.0.142 → 0.0.144

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.
@@ -1,7 +1,7 @@
1
1
  import { type ApiRecords } from "../types";
2
2
  import { BaseApi } from "../base-api";
3
- import type { FilePerSnapshotResponse, Dataset, DatasetTableSummaryAPIResponse, ColumnStatistics, RetentionPolicy, DatasetTableSummary, RecalculationInfo, UpdateDatasetRequest, SchemaFileConfigType, SchemaPropertiesType, DatasetStatus, DatasetWriteMode, SchemaFileConfig, SchemaProperties, SchemaProperty, SchemaPrimitiveProperty, SchemaObjectProperty, SchemaArrayProperty, SchemaArrayItems, SchemaArrayItemsPrimitive, SchemaArrayItemsObject, SchemaArrayItemsArray, Schema, AdvancedStatisticsMetadata, SnapshotRange, Configuration, Columns, ColumnSummary, BasicStatistics, AdvancedStatistics, Histogram, Value } from "./types";
4
- export { type FilePerSnapshotResponse, type Dataset, type RetentionPolicy, type DatasetTableSummaryAPIResponse, type ColumnStatistics, type UpdateDatasetRequest, type SchemaFileConfigType, type SchemaPropertiesType, type DatasetStatus, type DatasetWriteMode, type SchemaFileConfig, type SchemaProperties, type SchemaProperty, type SchemaPrimitiveProperty, type SchemaObjectProperty, type SchemaArrayProperty, type SchemaArrayItems, type SchemaArrayItemsPrimitive, type SchemaArrayItemsObject, type SchemaArrayItemsArray, type Schema, type AdvancedStatisticsMetadata, type SnapshotRange, type Configuration, type Columns, type ColumnSummary, type BasicStatistics, type AdvancedStatistics, type Histogram, type Value, };
3
+ import type { FilePerSnapshotResponse, Dataset, DatasetTableSummaryAPIResponse, ColumnStatistics, RetentionPolicy, DatasetTableSummary, RecalculationInfo, UpdateDatasetRequest, SchemaFileConfigType, SchemaPropertiesType, DatasetStatus, DatasetWriteMode, SchemaFileConfig, SchemaProperties, SchemaProperty, SchemaPrimitiveProperty, SchemaObjectProperty, SchemaArrayProperty, SchemaArrayItems, SchemaArrayItemsPrimitive, SchemaArrayItemsObject, SchemaArrayItemsArray, Schema, AdvancedStatisticsMetadata, SnapshotRange, Configuration, Columns, ColumnSummary, BasicStatistics, AdvancedStatistics, Histogram, Value, CreateDatasetRequest } from "./types";
4
+ export { type FilePerSnapshotResponse, type Dataset, type RetentionPolicy, type DatasetTableSummaryAPIResponse, type ColumnStatistics, type UpdateDatasetRequest, type SchemaFileConfigType, type SchemaPropertiesType, type DatasetStatus, type DatasetWriteMode, type SchemaFileConfig, type SchemaProperties, type SchemaProperty, type SchemaPrimitiveProperty, type SchemaObjectProperty, type SchemaArrayProperty, type SchemaArrayItems, type SchemaArrayItemsPrimitive, type SchemaArrayItemsObject, type SchemaArrayItemsArray, type Schema, type AdvancedStatisticsMetadata, type SnapshotRange, type Configuration, type Columns, type ColumnSummary, type BasicStatistics, type AdvancedStatistics, type Histogram, type Value, type CreateDatasetRequest, };
5
5
  /**
6
6
  * @module DatasetApi
7
7
  * @description This module provides methods for fetching datasets.
@@ -19,6 +19,37 @@ export declare class DatasetApi extends BaseApi {
19
19
  * @returns {Promise<ApiRecords<Dataset>>} - Promise resolving to an array of datasets
20
20
  */
21
21
  getDatasets(): Promise<ApiRecords<Dataset>>;
22
+ /**
23
+ * Deletes a specific dataset from the system.
24
+ * This method sends a DELETE request to the specified endpoint to remove the dataset.
25
+ *
26
+ * @param {number} datasetId - The ID of the dataset to be deleted.
27
+ * @returns {Promise<void>} A promise that resolves when the dataset has been successfully deleted.
28
+ */
29
+ deleteDataset(datasetId: number): Promise<void>;
30
+ /**
31
+ * Updates an existing dataset with the provided data.
32
+ *
33
+ * @param {UpdateDatasetRequest} request - The request containing the dataset information to be updated.
34
+ * @returns {Promise<Dataset>} - Returns a Promise that resolves to the updated Dataset.
35
+ * @public
36
+ * @async
37
+ */
38
+ updateDataset(request: UpdateDatasetRequest): Promise<Dataset>;
39
+ /**
40
+ * Creates a dataset based on the provided request.
41
+ *
42
+ * @param {CreateDatasetRequest} request - The request payload for creating a dataset.
43
+ * @returns {Promise<Dataset>} A promise that resolves with the newly created dataset.
44
+ */
45
+ creatDataset(request: CreateDatasetRequest): Promise<Dataset>;
46
+ /**
47
+ * Activates a dataset with the specified dataset ID.
48
+ *
49
+ * @param {number} datasetId - The ID of the dataset to activate.
50
+ * @returns {Promise<Dataset>} A promise that resolves with the activated dataset.
51
+ */
52
+ activateDataset(datasetId: number): Promise<Dataset>;
22
53
  /**
23
54
  * Get summary information for a dataset.
24
55
  *
@@ -118,21 +149,4 @@ export declare class DatasetApi extends BaseApi {
118
149
  * @returns {Promise<RecalculationInfo>} A promise that resolves when the operation is complete.
119
150
  */
120
151
  recalculateDatasetColumnStatistics(datasetId: number): Promise<RecalculationInfo>;
121
- /**
122
- * Deletes a specific dataset from the system.
123
- * This method sends a DELETE request to the specified endpoint to remove the dataset.
124
- *
125
- * @param {number} datasetId - The ID of the dataset to be deleted.
126
- * @returns {Promise<void>} A promise that resolves when the dataset has been successfully deleted.
127
- */
128
- deleteDataset(datasetId: number): Promise<void>;
129
- /**
130
- * Updates an existing dataset with the provided data.
131
- *
132
- * @param {UpdateDatasetRequest} request - The request containing the dataset information to be updated.
133
- * @returns {Promise<Dataset>} - Returns a Promise that resolves to the updated Dataset.
134
- * @public
135
- * @async
136
- */
137
- updateDataset(request: UpdateDatasetRequest): Promise<Dataset>;
138
152
  }
@@ -21,6 +21,45 @@ export class DatasetApi extends BaseApi {
21
21
  async getDatasets() {
22
22
  return await this.get(`${resourceName}`);
23
23
  }
24
+ /**
25
+ * Deletes a specific dataset from the system.
26
+ * This method sends a DELETE request to the specified endpoint to remove the dataset.
27
+ *
28
+ * @param {number} datasetId - The ID of the dataset to be deleted.
29
+ * @returns {Promise<void>} A promise that resolves when the dataset has been successfully deleted.
30
+ */
31
+ async deleteDataset(datasetId) {
32
+ await this.delete(`${resourceName}/${datasetId}`);
33
+ }
34
+ /**
35
+ * Updates an existing dataset with the provided data.
36
+ *
37
+ * @param {UpdateDatasetRequest} request - The request containing the dataset information to be updated.
38
+ * @returns {Promise<Dataset>} - Returns a Promise that resolves to the updated Dataset.
39
+ * @public
40
+ * @async
41
+ */
42
+ async updateDataset(request) {
43
+ return await this.put(`${resourceName}/${request.dataset_id}`, request);
44
+ }
45
+ /**
46
+ * Creates a dataset based on the provided request.
47
+ *
48
+ * @param {CreateDatasetRequest} request - The request payload for creating a dataset.
49
+ * @returns {Promise<Dataset>} A promise that resolves with the newly created dataset.
50
+ */
51
+ async creatDataset(request) {
52
+ return await this.post(`${resourceName}`, request);
53
+ }
54
+ /**
55
+ * Activates a dataset with the specified dataset ID.
56
+ *
57
+ * @param {number} datasetId - The ID of the dataset to activate.
58
+ * @returns {Promise<Dataset>} A promise that resolves with the activated dataset.
59
+ */
60
+ async activateDataset(datasetId) {
61
+ return await this.put(`${resourceName}/${datasetId}/activate`, null);
62
+ }
24
63
  /**
25
64
  * Get summary information for a dataset.
26
65
  *
@@ -145,25 +184,4 @@ export class DatasetApi extends BaseApi {
145
184
  async recalculateDatasetColumnStatistics(datasetId) {
146
185
  return await this.post(`${resourceName}/${datasetId}/column-stats/recalculate`, {});
147
186
  }
148
- /**
149
- * Deletes a specific dataset from the system.
150
- * This method sends a DELETE request to the specified endpoint to remove the dataset.
151
- *
152
- * @param {number} datasetId - The ID of the dataset to be deleted.
153
- * @returns {Promise<void>} A promise that resolves when the dataset has been successfully deleted.
154
- */
155
- async deleteDataset(datasetId) {
156
- await this.delete(`${resourceName}/${datasetId}`);
157
- }
158
- /**
159
- * Updates an existing dataset with the provided data.
160
- *
161
- * @param {UpdateDatasetRequest} request - The request containing the dataset information to be updated.
162
- * @returns {Promise<Dataset>} - Returns a Promise that resolves to the updated Dataset.
163
- * @public
164
- * @async
165
- */
166
- async updateDataset(request) {
167
- return await this.put(`${resourceName}/${request.dataset_id}`, request);
168
- }
169
187
  }
@@ -220,4 +220,12 @@ export interface UpdateDatasetRequest {
220
220
  write_mode?: DatasetWriteMode;
221
221
  schema?: Schema;
222
222
  }
223
+ export interface CreateDatasetRequest {
224
+ name: string;
225
+ schema: Schema;
226
+ write_mode: DatasetWriteMode;
227
+ description?: string;
228
+ tags?: string[];
229
+ derive_metrics_config?: boolean;
230
+ }
223
231
  export {};
package/build/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { DatasetApi } from "./datasets";
3
3
  import { HealthCheckApi } from "./health";
4
4
  import { RosettaStoneApi } from "./rosetta-stone";
5
5
  import { type Environment, type Config, type ApiRecords, type MonetaryAmount } from "./types";
6
- import type { DatasetTableSummaryAPIResponse, Dataset, DatasetTableSummary, FilePerSnapshotResponse, RetentionPolicy, UpdateDatasetRequest, SchemaFileConfigType, SchemaPropertiesType, DatasetStatus, DatasetWriteMode, SchemaFileConfig, SchemaProperties, SchemaProperty, SchemaPrimitiveProperty, SchemaObjectProperty, SchemaArrayProperty, SchemaArrayItems, SchemaArrayItemsPrimitive, SchemaArrayItemsObject, SchemaArrayItemsArray, Schema, AdvancedStatisticsMetadata, SnapshotRange, Configuration, Columns, ColumnSummary, ColumnStatistics, BasicStatistics, AdvancedStatistics, Histogram, Value } from "./datasets/types";
6
+ import type { DatasetTableSummaryAPIResponse, Dataset, DatasetTableSummary, FilePerSnapshotResponse, RetentionPolicy, UpdateDatasetRequest, SchemaFileConfigType, SchemaPropertiesType, DatasetStatus, DatasetWriteMode, SchemaFileConfig, SchemaProperties, SchemaProperty, SchemaPrimitiveProperty, SchemaObjectProperty, SchemaArrayProperty, SchemaArrayItems, SchemaArrayItemsPrimitive, SchemaArrayItemsObject, SchemaArrayItemsArray, Schema, AdvancedStatisticsMetadata, SnapshotRange, Configuration, Columns, ColumnSummary, ColumnStatistics, BasicStatistics, AdvancedStatistics, Histogram, Value, CreateDatasetRequest } from "./datasets/types";
7
7
  import { type HealthCheckResult } from "./health/types";
8
8
  import { type SampleRecords } from "./rosetta-stone/types";
9
9
  import { AttributeApi } from "./attributes";
@@ -29,9 +29,8 @@ import { type ConversationMessageRole, isConversationMessageRole, type Conversat
29
29
  import { MappingsApi } from "./mappings";
30
30
  import { type AccessRule, AccessRulesApi } from "./access-rules/";
31
31
  import { type Subscription, type SubscriptionDetails, type DataStreamSubscriptionDetails, type MarketplaceSubscriptionDetails, type SubscriptionOutput, type SubscriptionType, type SubscriptionStatus, type SubscriptionBudget, SubscriptionsApi } from "./subscriptions";
32
- import { InferenceApi } from "./inference";
33
32
  declare class NarrativeApi extends BaseApi {
34
33
  }
35
- interface NarrativeApi extends BaseApi, HealthCheckApi, DatasetApi, RosettaStoneApi, AttributeApi, PingApi, CompanyInfoApi, InstallationsApi, UploadsApi, ResourceApi, NqlApi, DataStreamsApi, ForecastApi, ContractsApi, AuthenticationApi, MappingsApi, AccessRulesApi, AppsApi, SubscriptionsApi, InferenceApi {
34
+ interface NarrativeApi extends BaseApi, HealthCheckApi, DatasetApi, RosettaStoneApi, AttributeApi, PingApi, CompanyInfoApi, InstallationsApi, UploadsApi, ResourceApi, NqlApi, DataStreamsApi, ForecastApi, ContractsApi, AuthenticationApi, MappingsApi, AccessRulesApi, AppsApi, SubscriptionsApi {
36
35
  }
37
- export { NarrativeApi, AttributeApi, HealthCheckApi, DatasetApi, PingApi, ProductsApi, CompanyInfoApi, InstallationsApi, UploadsApi, ResourceApi, NqlApi, DataStreamsApi, ForecastApi, ContractsApi, AuthenticationApi, AppsApi, MappingsApi, AccessRulesApi, SubscriptionsApi, InferenceApi, getNqlObject, buildNql, convertNqlObjectToForecastBody, isConversationAssistantMessage, isConversationFunctionMessage, isConversationInputMessage, isConversationMessage, isConversationMessageName, isConversationMessageRole, isConversationMessages, isConversationSystemMessage, isConversationUserMessage, isType, isConversationMessageFunctionCall, isConversationAssistantMessageWithFunctionCall, isRosettaRequestMessage, isConversationAssistantMessageWithoutFunctionCall, type App, type Resource, type UploadsResponse, type PingStatus, type Attribute, type ShallowAttribute, type RefAttribute, type SubAttribute, type PrimitiveAttribute, type ArrayAttribute, type ObjectAttribute, type Environment, type Config, type ApiRecords, type Dataset, type HealthCheckResult, type SampleRecords, type DatasetTableSummary, type DatasetTableSummaryAPIResponse, type UpdateDatasetRequest, type SchemaFileConfigType, type SchemaPropertiesType, type DatasetStatus, type DatasetWriteMode, type SchemaFileConfig, type SchemaProperties, type SchemaProperty, type SchemaPrimitiveProperty, type SchemaObjectProperty, type SchemaArrayProperty, type SchemaArrayItems, type SchemaArrayItemsPrimitive, type SchemaArrayItemsObject, type SchemaArrayItemsArray, type Schema, type AdvancedStatisticsMetadata, type SnapshotRange, type Configuration, type Columns, type ColumnSummary, type ColumnStatistics, type BasicStatistics, type AdvancedStatistics, type Histogram, type Value, type Product, type MonetaryAmount, type CompanyInfo, type Installation, type FilePerSnapshotResponse, type BucketCreationRequest, type UpdateAccessTypeRequest, type CompiledNql, type CreateMaterializedView, type Deduplication, type Explain, type Expression, type Raw, type Select, type Statement, type Table, type Nql, type NqlAst, type NqlField, type NqlResult, type NqlQueryInput, type NqlCompileResult, type NqlExpression, type NqlWhere, type NqlFilterExpression, type NqlBooleanExpression, type NqlFilterBinaryExpression, type NqlFilterUnaryExpression, type DataStream, type DataRules, type ColumnSet, type ColumnWithFilterAndExport, type AttributeSet, type ForecastRequest, type ForecastResponse, type CostForecastRequest, type CostForecastResponse, type JobState, type ContractDetails, type CustomerContract, type PaymentMethod, type ContractRateView, type LoginRequest, type LoginResponse, type RegisterRequest, type RegisterResponse, type LoggedInUser, type StytchToken, type ApiToken, type UserRole, type RegistrationStatus, type RegistrationStatusRequest, type RegistrationStatusResponse, type ForecastBody, type ConversationAssistantMessage, type ConversationFunctionMessage, type ConversationIOMessage, type ConversationMessage, type ConversationMessageName, type ConversationMessageRole, type ConversationMessages, type ConversationSystemMessage, type ConversationUserMessage, type RosettaRequestMessage, type ConversationMessageFunctionCall, type ConversationAssistantMessageWithFunctionCall, type RosettaResponseMessage, type ConversationAssistantMessageWithoutFunctionCall, type RetentionPolicy, type AccessRule, type Subscription, type SubscriptionDetails, type DataStreamSubscriptionDetails, type MarketplaceSubscriptionDetails, type SubscriptionOutput, type SubscriptionType, type SubscriptionStatus, type SubscriptionBudget, compileStatement, parseStatement, };
36
+ export { NarrativeApi, AttributeApi, HealthCheckApi, DatasetApi, PingApi, ProductsApi, CompanyInfoApi, InstallationsApi, UploadsApi, ResourceApi, NqlApi, DataStreamsApi, ForecastApi, ContractsApi, AuthenticationApi, AppsApi, MappingsApi, AccessRulesApi, SubscriptionsApi, getNqlObject, buildNql, convertNqlObjectToForecastBody, isConversationAssistantMessage, isConversationFunctionMessage, isConversationInputMessage, isConversationMessage, isConversationMessageName, isConversationMessageRole, isConversationMessages, isConversationSystemMessage, isConversationUserMessage, isType, isConversationMessageFunctionCall, isConversationAssistantMessageWithFunctionCall, isRosettaRequestMessage, isConversationAssistantMessageWithoutFunctionCall, type App, type Resource, type UploadsResponse, type PingStatus, type Attribute, type ShallowAttribute, type RefAttribute, type SubAttribute, type PrimitiveAttribute, type ArrayAttribute, type ObjectAttribute, type Environment, type Config, type ApiRecords, type Dataset, type HealthCheckResult, type SampleRecords, type DatasetTableSummary, type DatasetTableSummaryAPIResponse, type UpdateDatasetRequest, type SchemaFileConfigType, type SchemaPropertiesType, type DatasetStatus, type DatasetWriteMode, type SchemaFileConfig, type SchemaProperties, type SchemaProperty, type SchemaPrimitiveProperty, type SchemaObjectProperty, type SchemaArrayProperty, type SchemaArrayItems, type SchemaArrayItemsPrimitive, type SchemaArrayItemsObject, type SchemaArrayItemsArray, type Schema, type AdvancedStatisticsMetadata, type SnapshotRange, type Configuration, type Columns, type ColumnSummary, type ColumnStatistics, type BasicStatistics, type AdvancedStatistics, type Histogram, type Value, type CreateDatasetRequest, type Product, type MonetaryAmount, type CompanyInfo, type Installation, type FilePerSnapshotResponse, type BucketCreationRequest, type UpdateAccessTypeRequest, type CompiledNql, type CreateMaterializedView, type Deduplication, type Explain, type Expression, type Raw, type Select, type Statement, type Table, type Nql, type NqlAst, type NqlField, type NqlResult, type NqlQueryInput, type NqlCompileResult, type NqlExpression, type NqlWhere, type NqlFilterExpression, type NqlBooleanExpression, type NqlFilterBinaryExpression, type NqlFilterUnaryExpression, type DataStream, type DataRules, type ColumnSet, type ColumnWithFilterAndExport, type AttributeSet, type ForecastRequest, type ForecastResponse, type CostForecastRequest, type CostForecastResponse, type JobState, type ContractDetails, type CustomerContract, type PaymentMethod, type ContractRateView, type LoginRequest, type LoginResponse, type RegisterRequest, type RegisterResponse, type LoggedInUser, type StytchToken, type ApiToken, type UserRole, type RegistrationStatus, type RegistrationStatusRequest, type RegistrationStatusResponse, type ForecastBody, type ConversationAssistantMessage, type ConversationFunctionMessage, type ConversationIOMessage, type ConversationMessage, type ConversationMessageName, type ConversationMessageRole, type ConversationMessages, type ConversationSystemMessage, type ConversationUserMessage, type RosettaRequestMessage, type ConversationMessageFunctionCall, type ConversationAssistantMessageWithFunctionCall, type RosettaResponseMessage, type ConversationAssistantMessageWithoutFunctionCall, type RetentionPolicy, type AccessRule, type Subscription, type SubscriptionDetails, type DataStreamSubscriptionDetails, type MarketplaceSubscriptionDetails, type SubscriptionOutput, type SubscriptionType, type SubscriptionStatus, type SubscriptionBudget, compileStatement, parseStatement, };
package/build/index.js CHANGED
@@ -22,7 +22,6 @@ import { isConversationMessageRole, isConversationMessageName, isConversationUse
22
22
  import { MappingsApi } from "./mappings";
23
23
  import { AccessRulesApi } from "./access-rules/";
24
24
  import { SubscriptionsApi, } from "./subscriptions";
25
- import { InferenceApi } from "./inference";
26
25
  class NarrativeApi extends BaseApi {
27
26
  }
28
27
  applyMixins(NarrativeApi, [
@@ -45,6 +44,5 @@ applyMixins(NarrativeApi, [
45
44
  AppsApi,
46
45
  AccessRulesApi,
47
46
  SubscriptionsApi,
48
- InferenceApi,
49
47
  ]);
50
- export { NarrativeApi, AttributeApi, HealthCheckApi, DatasetApi, PingApi, ProductsApi, CompanyInfoApi, InstallationsApi, UploadsApi, ResourceApi, NqlApi, DataStreamsApi, ForecastApi, ContractsApi, AuthenticationApi, AppsApi, MappingsApi, AccessRulesApi, SubscriptionsApi, InferenceApi, getNqlObject, buildNql, convertNqlObjectToForecastBody, isConversationAssistantMessage, isConversationFunctionMessage, isConversationInputMessage, isConversationMessage, isConversationMessageName, isConversationMessageRole, isConversationMessages, isConversationSystemMessage, isConversationUserMessage, isType, isConversationMessageFunctionCall, isConversationAssistantMessageWithFunctionCall, isRosettaRequestMessage, isConversationAssistantMessageWithoutFunctionCall, compileStatement, parseStatement, };
48
+ export { NarrativeApi, AttributeApi, HealthCheckApi, DatasetApi, PingApi, ProductsApi, CompanyInfoApi, InstallationsApi, UploadsApi, ResourceApi, NqlApi, DataStreamsApi, ForecastApi, ContractsApi, AuthenticationApi, AppsApi, MappingsApi, AccessRulesApi, SubscriptionsApi, getNqlObject, buildNql, convertNqlObjectToForecastBody, isConversationAssistantMessage, isConversationFunctionMessage, isConversationInputMessage, isConversationMessage, isConversationMessageName, isConversationMessageRole, isConversationMessages, isConversationSystemMessage, isConversationUserMessage, isType, isConversationMessageFunctionCall, isConversationAssistantMessageWithFunctionCall, isRosettaRequestMessage, isConversationAssistantMessageWithoutFunctionCall, compileStatement, parseStatement, };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@narrative.io/data-collaboration-sdk-ts",
3
- "version": "0.0.142",
3
+ "version": "0.0.144",
4
4
  "main": "build/index.js",
5
5
  "repository": "github:narrative-io/data-collaboration-sdk-ts",
6
6
  "source": "src/index.ts",
@@ -1,18 +0,0 @@
1
- import { type Schema } from "src/datasets";
2
- import { BaseApi } from "../base-api";
3
- /**
4
- * A class for accessing the Inference API.
5
- * @extends BaseApi
6
- */
7
- export declare class InferenceApi extends BaseApi {
8
- private readonly defaultEndpoint;
9
- private readonly endpointToFileTypes;
10
- private makeFileExtension;
11
- /**
12
- * Infers the schema of a file
13
- *
14
- * @param {File} file - The file for which to infer the schema.
15
- * @returns {Promise<Schema>} A promise that resolves with the schema.
16
- */
17
- inferFileSchema(file: File): Promise<Schema>;
18
- }
@@ -1,48 +0,0 @@
1
- import { BaseApi } from "../base-api";
2
- /**
3
- * The name of the resource to be used in API requests.
4
- * @constant
5
- * @private
6
- * @type {string}
7
- */
8
- const resourceName = "inference";
9
- /**
10
- * A class for accessing the Inference API.
11
- * @extends BaseApi
12
- */
13
- export class InferenceApi extends BaseApi {
14
- defaultEndpoint = "csv/format-schema/multipart";
15
- endpointToFileTypes = {
16
- [this.defaultEndpoint]: ["csv", "txt"],
17
- "json/schema/multipart": ["json", "jsonl"],
18
- "parquet/schema/multipart": ["parquet"],
19
- };
20
- makeFileExtension(file) {
21
- return file.name.split(".")?.pop();
22
- }
23
- /**
24
- * Infers the schema of a file
25
- *
26
- * @param {File} file - The file for which to infer the schema.
27
- * @returns {Promise<Schema>} A promise that resolves with the schema.
28
- */
29
- async inferFileSchema(file) {
30
- const extension = this.makeFileExtension(file);
31
- let endpointForExtension;
32
- let endpoint;
33
- if (extension !== undefined) {
34
- endpointForExtension = Object.keys(this.endpointToFileTypes).find((key) => {
35
- return this.endpointToFileTypes[key].includes(extension);
36
- });
37
- }
38
- if (endpointForExtension === undefined) {
39
- endpoint = this.defaultEndpoint;
40
- }
41
- else {
42
- endpoint = endpointForExtension;
43
- }
44
- const formData = new FormData();
45
- formData.append("file", file);
46
- return await this.post(`${resourceName}/${endpoint}`, formData);
47
- }
48
- }