@forestadmin-experimental/datasource-cosmos 1.2.1 → 1.3.3

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.
@@ -21,6 +21,24 @@ class CosmosCollection extends datasource_toolkit_1.BaseCollection {
21
21
  this.addSegments(modelSchema.segments);
22
22
  logger('Debug', `CosmosCollection - ${this.name} added`);
23
23
  }
24
+ /**
25
+ * Mark virtualized array fields as non-sortable
26
+ * This should be called after virtual collections are created from array fields
27
+ */
28
+ markVirtualizedFieldsAsNonSortable(virtualizedFieldPaths) {
29
+ for (const fieldPath of virtualizedFieldPaths) {
30
+ const field = this.schema.fields[fieldPath];
31
+ if (field && field.type === 'Column') {
32
+ // Create a new field object with isSortable set to false
33
+ const updatedField = {
34
+ ...field,
35
+ isSortable: false,
36
+ };
37
+ // Replace the field in the schema
38
+ this.schema.fields[fieldPath] = updatedField;
39
+ }
40
+ }
41
+ }
24
42
  async create(caller, data) {
25
43
  try {
26
44
  const recordsResponse = await this.internalModel.create(data);
@@ -63,9 +81,10 @@ class CosmosCollection extends datasource_toolkit_1.BaseCollection {
63
81
  // Check if this is a Cosmos DB indexing issue with nested fields
64
82
  if (error.message.includes('One of the input values is invalid') &&
65
83
  querySpec.query.includes('.')) {
66
- throw new Error(`Cosmos DB query failed. This may be due to querying/filtering on nested fields ` +
67
- `without proper indexing. Please configure your Cosmos DB container's indexing policy ` +
68
- `to include the nested paths being queried. Original error: ${error.message}`);
84
+ throw new Error(`Cosmos DB query failed. This may be due to querying/filtering on ` +
85
+ `nested fields without proper indexing. Please configure your ` +
86
+ `Cosmos DB container's indexing policy to include the nested paths ` +
87
+ `being queried. Original error: ${error.message}`);
69
88
  }
70
89
  throw new Error(`Failed to list records: ${error.message}`);
71
90
  }
@@ -113,4 +132,4 @@ class CosmosCollection extends datasource_toolkit_1.BaseCollection {
113
132
  }
114
133
  }
115
134
  exports.default = CosmosCollection;
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0Esd0VBV3lDO0FBR3pDLDBGQUFpRTtBQUNqRSx3SEFBMEU7QUFDMUUsOEVBQXFEO0FBRXJELE1BQXFCLGdCQUFpQixTQUFRLG1DQUFjO0lBSzFELFlBQ0UsVUFBc0IsRUFDdEIsS0FBa0IsRUFDbEIsTUFBYyxFQUNkLFlBQTBCO1FBRTFCLElBQUksQ0FBQyxLQUFLO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRTlELEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUUzQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUkseUJBQWMsRUFBRSxDQUFDO1FBRTNDLE1BQU0sV0FBVyxHQUFHLDhDQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdkUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsS0FBSyxLQUFLO1lBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQWMsRUFBRSxJQUFrQjtRQUM3QyxJQUFJLENBQUM7WUFDSCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUks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
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esd0VBV3lDO0FBR3pDLDBGQUFpRTtBQUNqRSx3SEFBMEU7QUFDMUUsOEVBQXFEO0FBRXJELE1BQXFCLGdCQUFpQixTQUFRLG1DQUFjO0lBSzFELFlBQ0UsVUFBc0IsRUFDdEIsS0FBa0IsRUFDbEIsTUFBYyxFQUNkLFlBQTBCO1FBRTFCLElBQUksQ0FBQyxLQUFLO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRTlELEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUUzQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUkseUJBQWMsRUFBRSxDQUFDO1FBRTNDLE1BQU0sV0FBVyxHQUFHLDhDQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdkUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsS0FBSyxLQUFLO1lBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7O09BR0c7SUFDSSxrQ0FBa0MsQ0FBQyxxQkFBK0I7UUFDdkUsS0FBSyxNQUFNLFNBQVMsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1lBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENB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
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../src/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,gBAAgB,MAAM,cAAc,CAAC;AAC5C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAOhD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,cAAc,CAAC,gBAAgB,CAAC;IAC5E;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;gBAGnC,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,WAAW,EAAE,EAC/B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE;cAoBzD,iBAAiB,CAAC,gBAAgB,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM;IAUlE,kBAAkB,CAC/B,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAiBrC;;;OAGG;IACH,OAAO,CAAC,UAAU;IAwBlB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CA0B5B"}
1
+ {"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../src/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,gBAAgB,MAAM,cAAc,CAAC;AAC5C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAOhD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,cAAc,CAAC,gBAAgB,CAAC;IAC5E;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;gBAGnC,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,WAAW,EAAE,EAC/B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE;cAoBzD,iBAAiB,CAAC,gBAAgB,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM;IAUlE,kBAAkB,CAC/B,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAiBrC;;;OAGG;IACH,OAAO,CAAC,UAAU;IAwBlB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAyB5B"}
@@ -72,8 +72,7 @@ class CosmosDataSource extends datasource_toolkit_1.BaseDataSource {
72
72
  if (key in values) {
73
73
  const paramName = `@param${paramCounter}`;
74
74
  paramCounter += 1;
75
- // Type assertion: contextVariables should contain JSON-serializable values
76
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
75
+ // Context variables should contain JSON-serializable values for Cosmos DB parameters
77
76
  parameters.push({ name: paramName, value: values[key] });
78
77
  return paramName;
79
78
  }
@@ -84,4 +83,4 @@ class CosmosDataSource extends datasource_toolkit_1.BaseDataSource {
84
83
  }
85
84
  }
86
85
  exports.default = CosmosDataSource;
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esd0VBQXlFO0FBRXpFLDhEQUE0QztBQVE1QyxNQUFxQixnQkFBaUIsU0FBUSxtQ0FBZ0M7SUFNNUUsWUFDRSxZQUEwQixFQUMxQixnQkFBK0IsRUFDL0IsTUFBYyxFQUNkLE9BQXVFO1FBRXZFLEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLFlBQVk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFFakMsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVqRCxJQUFJLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztZQUNoRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFO2dCQUMxRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQzNCLFlBQVksRUFBRSxPQUFPLENBQUMsaUJBQWlCO2FBQ3hDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLGdCQUErQixFQUFFLE1BQWM7UUFDL0UsZ0JBQWdCO1lBQ2QsMEJBQTBCO2FBQ3pCLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUQsT0FBTyxDQUFD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
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esd0VBQXlFO0FBRXpFLDhEQUE0QztBQVE1QyxNQUFxQixnQkFBaUIsU0FBUSxtQ0FBZ0M7SUFNNUUsWUFDRSxZQUEwQixFQUMxQixnQkFBK0IsRUFDL0IsTUFBYyxFQUNkLE9BQXVFO1FBRXZFLEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLFlBQVk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFFakMsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVqRCxJQUFJLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztZQUNoRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFO2dCQUMxRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQzNCLFlBQVksRUFBRSxPQUFPLENBQUMsaUJBQWlCO2FBQ3hDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLGdCQUErQixFQUFFLE1BQWM7UUFDL0UsZ0JBQWdCO1lBQ2QsMEJBQTBCO2FBQ3pCLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUQsT0FBTyxDQUFD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
package/dist/index.d.ts CHANGED
@@ -1,26 +1,31 @@
1
1
  import { CosmosClient, CosmosClientOptions } from '@azure/cosmos';
2
2
  import { DataSourceFactory } from '@forestadmin/datasource-toolkit';
3
3
  import { ConfigurationOptions } from './introspection/builder';
4
+ import { VirtualArrayCollectionConfig } from './introspection/introspector';
4
5
  export { default as CosmosCollection } from './collection';
5
6
  export { default as CosmosDataSource } from './datasource';
7
+ export { default as ArrayCollection } from './array-collection';
6
8
  export { default as TypeConverter } from './utils/type-converter';
7
9
  export { default as ModelCosmos } from './model-builder/model';
8
10
  export type { CosmosSchema } from './model-builder/model';
11
+ export type { VirtualArrayCollectionConfig } from './introspection/introspector';
9
12
  /**
10
13
  * Create a Cosmos DB datasource with an existing CosmosClient instance
11
14
  * @param client Existing CosmosClient instance
12
- * @param databaseName The Cosmos DB database name to introspect
13
- * @param options Optional configuration options
15
+ * @param databaseName Optional database name for auto-introspection
16
+ * @param options Optional configuration builder function
14
17
  * @example
15
- * .createCosmosDataSourceWithExistingClient(existingClient, 'myDatabase', configurator =>
16
- * configurator.addCollectionFromContainer({
18
+ * createCosmosDataSourceWithExistingClient(
19
+ * existingClient,
20
+ * 'myDatabase',
21
+ * configurator => configurator.addCollectionFromContainer({
17
22
  * name: 'Users',
18
23
  * databaseName: 'myDatabase',
19
24
  * containerName: 'users-container'
20
25
  * })
21
26
  * )
22
27
  */
23
- export declare function createCosmosDataSourceWithExistingClient(client: CosmosClient, databaseName?: string): DataSourceFactory;
28
+ export declare function createCosmosDataSourceWithExistingClient(client: CosmosClient, databaseName?: string, options?: ConfigurationOptions): DataSourceFactory;
24
29
  /**
25
30
  * Create a Cosmos DB datasource with connection details
26
31
  * @param endpoint The Cosmos DB endpoint URL
@@ -47,6 +52,7 @@ export declare function createCosmosDataSource(endpoint: string, key: string, da
47
52
  liveQueryDatabase?: string;
48
53
  builder?: ConfigurationOptions;
49
54
  clientOptions?: CosmosClientOptions;
55
+ virtualArrayCollections?: VirtualArrayCollectionConfig[];
50
56
  }): DataSourceFactory;
51
57
  /**
52
58
  * Create a Cosmos DB datasource for the local emulator
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAU,MAAM,iCAAiC,CAAC;AAG5E,OAAO,EAAE,oBAAoB,EAA2B,MAAM,yBAAyB,CAAC;AAGxF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,YAAY,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,iBAAiB,CAqBnB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;IACR,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC,GACA,iBAAiB,CAkCnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iCAAiC,CAC/C,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;IACR,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC,GACA,iBAAiB,CAOnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAIL,iBAAiB,EAIlB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAAE,oBAAoB,EAA2B,MAAM,yBAAyB,CAAC;AACxF,OAAqB,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAI1F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAEjF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,YAAY,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,iBAAiB,CAqBnB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;IACR,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,uBAAuB,CAAC,EAAE,4BAA4B,EAAE,CAAC;CAC1D,GACA,iBAAiB,CAiRnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iCAAiC,CAC/C,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;IACR,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC,GACA,iBAAiB,CAOnB"}
package/dist/index.js CHANGED
@@ -3,35 +3,43 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createCosmosDataSourceForEmulator = exports.createCosmosDataSource = exports.createCosmosDataSourceWithExistingClient = exports.ModelCosmos = exports.TypeConverter = exports.CosmosDataSource = exports.CosmosCollection = void 0;
6
+ exports.createCosmosDataSourceForEmulator = exports.createCosmosDataSource = exports.createCosmosDataSourceWithExistingClient = exports.ModelCosmos = exports.TypeConverter = exports.ArrayCollection = exports.CosmosDataSource = exports.CosmosCollection = void 0;
7
7
  const cosmos_1 = require("@azure/cosmos");
8
+ const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
9
+ const array_collection_1 = __importDefault(require("./array-collection"));
10
+ const collection_1 = __importDefault(require("./collection"));
8
11
  const datasource_1 = __importDefault(require("./datasource"));
9
12
  const builder_1 = require("./introspection/builder");
10
13
  const introspector_1 = __importDefault(require("./introspection/introspector"));
11
- var collection_1 = require("./collection");
12
- Object.defineProperty(exports, "CosmosCollection", { enumerable: true, get: function () { return __importDefault(collection_1).default; } });
14
+ const type_converter_1 = __importDefault(require("./utils/type-converter"));
15
+ var collection_2 = require("./collection");
16
+ Object.defineProperty(exports, "CosmosCollection", { enumerable: true, get: function () { return __importDefault(collection_2).default; } });
13
17
  var datasource_2 = require("./datasource");
14
18
  Object.defineProperty(exports, "CosmosDataSource", { enumerable: true, get: function () { return __importDefault(datasource_2).default; } });
15
- var type_converter_1 = require("./utils/type-converter");
16
- Object.defineProperty(exports, "TypeConverter", { enumerable: true, get: function () { return __importDefault(type_converter_1).default; } });
19
+ var array_collection_2 = require("./array-collection");
20
+ Object.defineProperty(exports, "ArrayCollection", { enumerable: true, get: function () { return __importDefault(array_collection_2).default; } });
21
+ var type_converter_2 = require("./utils/type-converter");
22
+ Object.defineProperty(exports, "TypeConverter", { enumerable: true, get: function () { return __importDefault(type_converter_2).default; } });
17
23
  var model_1 = require("./model-builder/model");
18
24
  Object.defineProperty(exports, "ModelCosmos", { enumerable: true, get: function () { return __importDefault(model_1).default; } });
19
25
  /**
20
26
  * Create a Cosmos DB datasource with an existing CosmosClient instance
21
27
  * @param client Existing CosmosClient instance
22
- * @param databaseName The Cosmos DB database name to introspect
23
- * @param options Optional configuration options
28
+ * @param databaseName Optional database name for auto-introspection
29
+ * @param options Optional configuration builder function
24
30
  * @example
25
- * .createCosmosDataSourceWithExistingClient(existingClient, 'myDatabase', configurator =>
26
- * configurator.addCollectionFromContainer({
31
+ * createCosmosDataSourceWithExistingClient(
32
+ * existingClient,
33
+ * 'myDatabase',
34
+ * configurator => configurator.addCollectionFromContainer({
27
35
  * name: 'Users',
28
36
  * databaseName: 'myDatabase',
29
37
  * containerName: 'users-container'
30
38
  * })
31
39
  * )
32
40
  */
33
- function createCosmosDataSourceWithExistingClient(client, databaseName) {
34
- return async (logger, options) => {
41
+ function createCosmosDataSourceWithExistingClient(client, databaseName, options) {
42
+ return async (logger) => {
35
43
  let collectionModels;
36
44
  if (options) {
37
45
  const builder = options(new builder_1.CosmosDatasourceBuilder(client));
@@ -79,7 +87,7 @@ function createCosmosDataSource(endpoint, key, databaseName, options) {
79
87
  key,
80
88
  ...options?.clientOptions,
81
89
  });
82
- const { liveQueryConnections, liveQueryDatabase, builder } = options || {};
90
+ const { liveQueryConnections, liveQueryDatabase, builder, virtualArrayCollections } = options || {};
83
91
  let collectionModels;
84
92
  if (builder) {
85
93
  const datasourceBuilder = builder(new builder_1.CosmosDatasourceBuilder(client));
@@ -95,10 +103,173 @@ function createCosmosDataSource(endpoint, key, databaseName, options) {
95
103
  const message = 'No collections were introspected. Please provide a databaseName or use the builder.';
96
104
  logger?.('Warn', message);
97
105
  }
98
- return new datasource_1.default(client, collectionModels, logger, {
106
+ const datasource = new datasource_1.default(client, collectionModels, logger, {
99
107
  liveQueryConnections,
100
108
  liveQueryDatabase,
101
109
  });
110
+ // Add virtual array collections if specified
111
+ if (virtualArrayCollections && virtualArrayCollections.length > 0) {
112
+ // Track created virtual collections for dependency resolution
113
+ const createdVirtualCollections = new Map();
114
+ for (const config of virtualArrayCollections) {
115
+ try {
116
+ logger?.('Info', `Creating virtual collection '${config.collectionName}' for array ` +
117
+ `field '${config.arrayFieldPath}'`);
118
+ // Find the parent collection (could be physical or virtual)
119
+ const parentCollection = datasource.getCollection(config.parentContainerName);
120
+ if (!parentCollection) {
121
+ logger?.('Warn', `Parent collection '${config.parentContainerName}' not found for ` +
122
+ `virtual array collection '${config.collectionName}'`);
123
+ }
124
+ else {
125
+ let arraySchema = null;
126
+ // Check if parent is a virtual ArrayCollection
127
+ const isParentVirtual = parentCollection instanceof array_collection_1.default;
128
+ if (isParentVirtual) {
129
+ // For nested virtual collections, introspect from the parent's schema
130
+ logger?.('Info', `Parent '${config.parentContainerName}' is a virtual collection, ` +
131
+ `introspecting from its schema`);
132
+ // Get the field schema from the parent collection
133
+ const parentSchema = parentCollection.schema;
134
+ const arrayField = parentSchema.fields[config.arrayFieldPath];
135
+ if (!arrayField || arrayField.type !== 'Column') {
136
+ logger?.('Warn', `Array field '${config.arrayFieldPath}' not found in parent ` +
137
+ `virtual collection '${config.parentContainerName}'`);
138
+ }
139
+ else {
140
+ // For nested arrays, we need to fetch actual data to introspect the structure
141
+ // Use the parent ArrayCollection to get sample data
142
+ // Sequential: we need sample data to introspect array structure
143
+ // eslint-disable-next-line no-await-in-loop -- Sequential introspection required
144
+ const sampleRecords = await parentCollection.list({}, new datasource_toolkit_1.PaginatedFilter({
145
+ page: { limit: 100, skip: 0, apply: (records) => records },
146
+ }), new datasource_toolkit_1.Projection(config.arrayFieldPath));
147
+ // Collect array items from sample records
148
+ const arrayItems = [];
149
+ for (const record of sampleRecords) {
150
+ const value = record[config.arrayFieldPath];
151
+ if (Array.isArray(value)) {
152
+ arrayItems.push(...value);
153
+ }
154
+ }
155
+ if (arrayItems.length === 0) {
156
+ logger?.('Warn', `No array items found in field '${config.arrayFieldPath}' of ` +
157
+ `virtual collection '${config.parentContainerName}'`);
158
+ }
159
+ else {
160
+ // Analyze array items to infer schema
161
+ const fieldTypes = {};
162
+ for (const item of arrayItems) {
163
+ if (typeof item === 'object' && item !== null) {
164
+ for (const [fieldKey, value] of Object.entries(item)) {
165
+ if (!fieldTypes[fieldKey]) {
166
+ fieldTypes[fieldKey] = [];
167
+ }
168
+ const type = type_converter_1.default.inferTypeFromValue(value);
169
+ fieldTypes[fieldKey].push(type);
170
+ }
171
+ }
172
+ }
173
+ // Build schema from inferred types
174
+ arraySchema = {};
175
+ for (const [fieldName, types] of Object.entries(fieldTypes)) {
176
+ const uniqueTypes = Array.from(new Set(types));
177
+ const commonType = type_converter_1.default.getMostSpecificType(uniqueTypes);
178
+ const nullable = uniqueTypes.includes('null');
179
+ arraySchema[fieldName] = {
180
+ type: commonType,
181
+ nullable,
182
+ indexed: true,
183
+ };
184
+ }
185
+ }
186
+ }
187
+ }
188
+ else if (!databaseName) {
189
+ // For physical containers, use the existing introspection method
190
+ // Sequential: we need to introspect the array field structure
191
+ logger?.('Warn', `Database name is required to introspect physical container for ` +
192
+ `virtual collection '${config.collectionName}'`);
193
+ }
194
+ else {
195
+ // Sequential: we need to introspect the array field structure
196
+ // eslint-disable-next-line no-await-in-loop -- Sequential introspection required
197
+ arraySchema = await introspector_1.default.introspectArrayField(client, databaseName, config.parentContainerName, config.arrayFieldPath);
198
+ }
199
+ if (arraySchema) {
200
+ // Convert CosmosSchema to Forest Admin fields
201
+ const fields = {};
202
+ for (const [fieldName, fieldInfo] of Object.entries(arraySchema)) {
203
+ const columnType = type_converter_1.default.getColumnTypeFromDataType(fieldInfo.type);
204
+ const operators = type_converter_1.default.operatorsForColumnType(columnType);
205
+ fields[fieldName] = {
206
+ columnType,
207
+ filterOperators: operators,
208
+ isPrimaryKey: false,
209
+ isReadOnly: false,
210
+ isSortable: type_converter_1.default.isSortable(fieldInfo.type),
211
+ type: 'Column',
212
+ };
213
+ }
214
+ // Create collection schema with introspected fields
215
+ const collectionSchema = {
216
+ actions: {},
217
+ charts: [],
218
+ countable: true,
219
+ fields,
220
+ searchable: true,
221
+ segments: [],
222
+ };
223
+ // Create the virtual array collection (without virtualized child fields yet)
224
+ const arrayCollection = new array_collection_1.default(datasource, parentCollection, config.collectionName, config.arrayFieldPath, collectionSchema, logger, client, []);
225
+ // Add the collection to the datasource
226
+ datasource.addCollection(arrayCollection);
227
+ createdVirtualCollections.set(config.collectionName, arrayCollection);
228
+ logger?.('Info', `Successfully created virtual collection '${config.collectionName}'`);
229
+ }
230
+ }
231
+ }
232
+ catch (error) {
233
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
234
+ const errorStack = error instanceof Error ? error.stack : '';
235
+ logger?.('Warn', `Failed to create virtual array collection '${config.collectionName}': ${errorMessage}`);
236
+ logger?.('Debug', `Error stack: ${errorStack}`);
237
+ }
238
+ }
239
+ // After all collections are created, set virtualized child fields
240
+ // For each parent collection that has virtual child collections
241
+ // Tell it which fields are virtualized
242
+ const parentCollections = new Set(virtualArrayCollections.map(c => c.parentContainerName));
243
+ for (const parentName of parentCollections) {
244
+ try {
245
+ const parentCollection = datasource.getCollection(parentName);
246
+ // Find all child virtual collections that have this collection as parent
247
+ const childVirtualFields = virtualArrayCollections
248
+ .filter(c => c.parentContainerName === parentName)
249
+ .map(c => c.arrayFieldPath);
250
+ if (childVirtualFields.length > 0) {
251
+ // For virtual collections (ArrayCollection), set virtualized child fields for filtering
252
+ if (parentCollection instanceof array_collection_1.default) {
253
+ parentCollection.setVirtualizedChildFields(childVirtualFields);
254
+ logger?.('Info', `Set virtualized child fields for virtual collection '${parentName}': ` +
255
+ `[${childVirtualFields.join(', ')}]`);
256
+ }
257
+ // For physical collections (CosmosCollection), mark array fields as non-sortable
258
+ if (parentCollection instanceof collection_1.default) {
259
+ parentCollection.markVirtualizedFieldsAsNonSortable(childVirtualFields);
260
+ logger?.('Info', `Marked virtualized array fields as non-sortable for '${parentName}': ` +
261
+ `[${childVirtualFields.join(', ')}]`);
262
+ }
263
+ }
264
+ }
265
+ catch (error) {
266
+ // Parent collection might not exist
267
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
268
+ logger?.('Debug', `Skipping virtualized field setup for '${parentName}': ${errorMessage}`);
269
+ }
270
+ }
271
+ }
272
+ return datasource;
102
273
  };
103
274
  }
104
275
  exports.createCosmosDataSource = createCosmosDataSource;
@@ -123,4 +294,4 @@ function createCosmosDataSourceForEmulator(databaseName, options) {
123
294
  return createCosmosDataSource(endpoint, key, databaseName, options);
124
295
  }
125
296
  exports.createCosmosDataSourceForEmulator = createCosmosDataSourceForEmulator;
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMENBQWtFO0FBR2xFLDhEQUE0QztBQUM1QyxxREFBd0Y7QUFDeEYsZ0ZBQXdEO0FBRXhELDJDQUEyRDtBQUFsRCwrSEFBQSxPQUFPLE9BQW9CO0FBQ3BDLDJDQUEyRDtBQUFsRCwrSEFBQSxPQUFPLE9BQW9CO0FBQ3BDLHlEQUFrRTtBQUF6RCxnSUFBQSxPQUFPLE9BQWlCO0FBQ2pDLCtDQUErRDtBQUF0RCxxSEFBQSxPQUFPLE9BQWU7QUFHL0I7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILFNBQWdCLHdDQUF3QyxDQUN0RCxNQUFvQixFQUNwQixZQUFxQjtJQUVyQixPQUFPLEtBQUssRUFBRSxNQUFjLEVBQUUsT0FBOEIsRUFBRSxFQUFFO1FBQzlELElBQUksZ0JBQWdCLENBQUM7UUFFckIsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLGlDQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUE0QixDQUFDO1lBQ3hGLGdCQUFnQixHQUFHLE1BQU0sT0FBTyxDQUFDLGtDQUFrQyxFQUFFLENBQUM7UUFDeEUsQ0FBQzthQUFNLElBQUksWUFBWSxFQUFFLENBQUM7WUFDeEIsZ0JBQWdCLEdBQUcsTUFBTSxzQkFBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pGLENBQUM7YUFBTSxDQUFDO1lBQ04sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QyxNQUFNLE9BQU8sR0FDWCxxRkFBcUYsQ0FBQztZQUN4RixNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sSUFBSSxvQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQXhCRCw0RkF3QkM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxTQUFnQixzQkFBc0IsQ0FDcEMsUUFBZ0IsRUFDaEIsR0FBVyxFQUNYLFlBQXFCLEVBQ3JCLE9BS0M7SUFFRCxPQUFPLEtBQUssRUFBRSxNQUFjLEVBQUUsRUFBRTtRQUM5QixNQUFNLE1BQU0sR0FBRyxJQUFJLHFCQUFZLENBQUM7WUFDOUIsUUFBUTtZQUNSLEdBQUc7WUFDSCxHQUFHLE9BQU8sRUFBRSxhQUFhO1NBQzFCLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRTNFLElBQUksZ0JBQWdCLENBQUM7UUFFckIsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUMvQixJQUFJLGlDQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUNULENBQUM7WUFDN0IsZ0JBQWdCLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDO1FBQ2xGLENBQUM7YUFBTSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3hCLGdCQUFnQixHQUFHLE1BQU0sc0JBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRixDQUFDO2FBQU0sQ0FBQztZQUNOLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDOUMsTUFBTSxPQUFPLEdBQ1gscUZBQXFGLENBQUM7WUFDeEYsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFFRCxPQUFPLElBQUksb0JBQWdCLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRTtZQUM1RCxvQkFBb0I7WUFDcEIsaUJBQWlCO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUM7QUE1Q0Qsd0RBNENDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILFNBQWdCLGlDQUFpQyxDQUMvQyxZQUFxQixFQUNyQixPQUtDO0lBRUQsc0NBQXNDO0lBQ3RDLE1BQU0sUUFBUSxHQUFHLHdCQUF3QixDQUFDO0lBQzFDLE1BQU0sR0FBRyxHQUNQLDBGQUEwRixDQUFDO0lBRTdGLE9BQU8sc0JBQXNCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQWZELDhFQWVDIn0=
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMENBQWtFO0FBQ2xFLHdFQVF5QztBQUV6QywwRUFBaUQ7QUFDakQsOERBQTRDO0FBQzVDLDhEQUE0QztBQUM1QyxxREFBd0Y7QUFDeEYsZ0ZBQTBGO0FBRTFGLDRFQUF1RTtBQUV2RSwyQ0FBMkQ7QUFBbEQsK0hBQUEsT0FBTyxPQUFvQjtBQUNwQywyQ0FBMkQ7QUFBbEQsK0hBQUEsT0FBTyxPQUFvQjtBQUNwQyx1REFBZ0U7QUFBdkQsb0lBQUEsT0FBTyxPQUFtQjtBQUNuQyx5REFBa0U7QUFBekQsZ0lBQUEsT0FBTyxPQUFpQjtBQUNqQywrQ0FBK0Q7QUFBdEQscUhBQUEsT0FBTyxPQUFlO0FBSS9COzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFNBQWdCLHdDQUF3QyxDQUN0RCxNQUFvQixFQUNwQixZQUFxQixFQUNyQixPQUE4QjtJQUU5QixPQUFPLEtBQUssRUFBRSxNQUFjLEVBQUUsRUFBRTtRQUM5QixJQUFJLGdCQUFnQixDQUFDO1FBRXJCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxpQ0FBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBNEIsQ0FBQztZQUN4RixnQkFBZ0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDO1FBQ3hFLENBQUM7YUFBTSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3hCLGdCQUFnQixHQUFHLE1BQU0sc0JBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRixDQUFDO2FBQU0sQ0FBQztZQUNOLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFF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
@@ -1,6 +1,6 @@
1
1
  import { CosmosClient } from '@azure/cosmos';
2
2
  import { OverrideTypeConverter } from './builder';
3
- import ModelCosmos from '../model-builder/model';
3
+ import ModelCosmos, { CosmosSchema } from '../model-builder/model';
4
4
  export interface IntrospectionOptions {
5
5
  /**
6
6
  * Whether to flatten nested objects into arrow-notation fields
@@ -18,10 +18,19 @@ export interface IntrospectionOptions {
18
18
  * Default: false (arrays are treated as Json type)
19
19
  */
20
20
  introspectArrayItems?: boolean;
21
+ /**
22
+ * Array fields to expose as virtual collections
23
+ * Default: [] (no virtual collections)
24
+ */
25
+ virtualArrayCollections?: string[];
26
+ }
27
+ export interface ArrayCollectionMetadata {
28
+ arrayFieldPath: string;
29
+ schema: CosmosSchema;
21
30
  }
22
31
  /**
23
32
  * Introspect a Cosmos DB container to infer the schema from sample documents
24
33
  * with support for complex nested objects
25
34
  */
26
- export default function introspectContainerV2(cosmosClient: CosmosClient, collectionName: string, databaseName: string, containerName: string, partitionKeyPath?: string, sampleSize?: number, overrideTypeConverter?: OverrideTypeConverter, enableCount?: boolean, options?: IntrospectionOptions): Promise<ModelCosmos>;
35
+ export default function introspectContainer(cosmosClient: CosmosClient, collectionName: string, databaseName: string, containerName: string, partitionKeyPath?: string, sampleSize?: number, overrideTypeConverter?: OverrideTypeConverter, enableCount?: boolean, options?: IntrospectionOptions): Promise<ModelCosmos>;
27
36
  //# sourceMappingURL=container-introspector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"container-introspector.d.ts","sourceRoot":"","sources":["../../src/introspection/container-introspector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,WAA6B,MAAM,wBAAwB,CAAC;AAGnE,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;GAGG;AACH,wBAA8B,qBAAqB,CACjD,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,MAAM,EACzB,UAAU,SAAM,EAChB,qBAAqB,CAAC,EAAE,qBAAqB,EAC7C,WAAW,CAAC,EAAE,OAAO,EACrB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,WAAW,CAAC,CAuCtB"}
1
+ {"version":3,"file":"container-introspector.d.ts","sourceRoot":"","sources":["../../src/introspection/container-introspector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,WAAW,EAAE,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGnE,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;CACtB;AA0ND;;;GAGG;AACH,wBAA8B,mBAAmB,CAC/C,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,MAAM,EACzB,UAAU,SAAM,EAChB,qBAAqB,CAAC,EAAE,qBAAqB,EAC7C,WAAW,CAAC,EAAE,OAAO,EACrB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,WAAW,CAAC,CAuCtB"}