@osdk/client 2.4.0-beta.7 → 2.4.0-beta.9
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.
- package/CHANGELOG.md +26 -0
- package/build/browser/index.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.js +2 -1
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
- package/build/browser/object/aggregate.test.js +85 -0
- package/build/browser/object/aggregate.test.js.map +1 -1
- package/build/browser/util/UserAgent.js +2 -2
- package/build/cjs/{chunk-OKQUXVEK.cjs → chunk-E5BQ7757.cjs} +31 -16
- package/build/cjs/chunk-E5BQ7757.cjs.map +1 -0
- package/build/cjs/{chunk-IZEGJVM7.cjs → chunk-YZHCDIYC.cjs} +50 -50
- package/build/cjs/{chunk-IZEGJVM7.cjs.map → chunk-YZHCDIYC.cjs.map} +1 -1
- package/build/cjs/index.cjs +6 -6
- package/build/cjs/index.d.cts +1 -1
- package/build/cjs/public/internal.cjs +8 -8
- package/build/cjs/public/unstable-do-not-use.cjs +15 -15
- package/build/esm/index.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyGroupByClause.js +2 -1
- package/build/esm/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
- package/build/esm/object/aggregate.test.js +85 -0
- package/build/esm/object/aggregate.test.js.map +1 -1
- package/build/esm/util/UserAgent.js +2 -2
- package/build/types/index.d.ts +1 -1
- package/build/types/index.d.ts.map +1 -1
- package/package.json +11 -11
- package/build/cjs/chunk-OKQUXVEK.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @osdk/client
|
|
2
2
|
|
|
3
|
+
## 2.4.0-beta.9
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 9101bad: Adds "includeNullValues" option for exact match filters
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [9101bad]
|
|
12
|
+
- @osdk/api@2.4.0-beta.9
|
|
13
|
+
- @osdk/generator-converters@2.4.0-beta.9
|
|
14
|
+
- @osdk/client.unstable@2.4.0-beta.9
|
|
15
|
+
|
|
16
|
+
## 2.4.0-beta.8
|
|
17
|
+
|
|
18
|
+
### Minor Changes
|
|
19
|
+
|
|
20
|
+
- 9f4fe9e: Add new types mapping for internal creation workflow.
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- Updated dependencies [9f4fe9e]
|
|
25
|
+
- @osdk/api@2.4.0-beta.8
|
|
26
|
+
- @osdk/generator-converters@2.4.0-beta.8
|
|
27
|
+
- @osdk/client.unstable@2.4.0-beta.8
|
|
28
|
+
|
|
3
29
|
## 2.4.0-beta.7
|
|
4
30
|
|
|
5
31
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["isOk","NULL_VALUE","PalantirApiError","ActionValidationError","createClient","createPlatformClient","createAttachmentUpload","extractDate","extractDateInLocalTime","extractDateInUTC"],"sources":["index.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type {\n ActionDefinition,\n ActionEditResponse,\n ActionMetadata,\n ActionParam,\n ActionReturnTypeForOptions,\n ActionValidationResponse,\n ApplyActionOptions,\n ApplyBatchActionOptions,\n Attachment,\n CompileTimeMetadata,\n InterfaceDefinition,\n Logger,\n ObjectMetadata,\n ObjectSet,\n ObjectSpecifier,\n ObjectTypeDefinition,\n Osdk,\n OsdkObject,\n OsdkObjectPropertyType,\n PageResult,\n PropertyDef,\n PropertyKeys,\n PropertyValueWireToClient,\n QueryDefinition,\n QueryParam,\n QueryResult,\n Range,\n Result,\n SingleLinkAccessor,\n ThreeDimensionalAggregation,\n TwoDimensionalAggregation,\n VersionBound,\n WhereClause,\n} from \"@osdk/api\";\nexport { isOk, NULL_VALUE } from \"@osdk/api\";\nexport { PalantirApiError } from \"@osdk/shared.net.errors\";\n\nexport { ActionValidationError } from \"./actions/ActionValidationError.js\";\nexport type { Client } from \"./Client.js\";\nexport { createClient } from \"./createClient.js\";\nexport { createPlatformClient } from \"./createPlatformClient.js\";\nexport type { PlatformClient } from \"./createPlatformClient.js\";\nexport { createAttachmentUpload } from \"./object/AttachmentUpload.js\";\nexport type { ResultOrError } from \"./ResultOrError.js\";\n\nexport {\n extractDate,\n extractDateInLocalTime,\n extractDateInUTC,\n} from \"./util/datetimeConverters.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"file":"index.js","names":["isOk","NULL_VALUE","PalantirApiError","ActionValidationError","createClient","createPlatformClient","createAttachmentUpload","extractDate","extractDateInLocalTime","extractDateInUTC"],"sources":["index.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type {\n ActionDefinition,\n ActionEditResponse,\n ActionMetadata,\n ActionParam,\n ActionReturnTypeForOptions,\n ActionValidationResponse,\n ApplyActionOptions,\n ApplyBatchActionOptions,\n Attachment,\n CompileTimeMetadata,\n InterfaceDefinition,\n Logger,\n ObjectMetadata,\n ObjectSet,\n ObjectSpecifier,\n ObjectTypeDefinition,\n Osdk,\n OsdkObject,\n OsdkObjectCreatePropertyType,\n OsdkObjectPropertyType,\n PageResult,\n PropertyDef,\n PropertyKeys,\n PropertyValueWireToClient,\n QueryDefinition,\n QueryParam,\n QueryResult,\n Range,\n Result,\n SingleLinkAccessor,\n ThreeDimensionalAggregation,\n TwoDimensionalAggregation,\n VersionBound,\n WhereClause,\n} from \"@osdk/api\";\nexport { isOk, NULL_VALUE } from \"@osdk/api\";\nexport { PalantirApiError } from \"@osdk/shared.net.errors\";\n\nexport { ActionValidationError } from \"./actions/ActionValidationError.js\";\nexport type { Client } from \"./Client.js\";\nexport { createClient } from \"./createClient.js\";\nexport { createPlatformClient } from \"./createPlatformClient.js\";\nexport type { PlatformClient } from \"./createPlatformClient.js\";\nexport { createAttachmentUpload } from \"./object/AttachmentUpload.js\";\nexport type { ResultOrError } from \"./ResultOrError.js\";\n\nexport {\n extractDate,\n extractDateInLocalTime,\n extractDateInUTC,\n} from \"./util/datetimeConverters.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAsCA,SAASA,IAAI,EAAEC,UAAU,QAAQ,WAAW;AAC5C,SAASC,gBAAgB,QAAQ,yBAAyB;AAE1D,SAASC,qBAAqB,QAAQ,oCAAoC;AAE1E,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,oBAAoB,QAAQ,2BAA2B;AAEhE,SAASC,sBAAsB,QAAQ,8BAA8B;AAGrE,SACEC,WAAW,EACXC,sBAAsB,EACtBC,gBAAgB,QACX,8BAA8B","ignoreList":[]}
|
|
@@ -37,7 +37,8 @@ export function modernToLegacyGroupByClause(groupByClause) {
|
|
|
37
37
|
type: "exact",
|
|
38
38
|
field,
|
|
39
39
|
maxGroupCount: type.$exact?.$limit ?? undefined,
|
|
40
|
-
defaultValue: type.$exact.$defaultValue ?? undefined
|
|
40
|
+
defaultValue: type.$exact.$defaultValue ?? undefined,
|
|
41
|
+
includeNullValues: type.$exact.$includeNullValue === true ? true : undefined
|
|
41
42
|
}];
|
|
42
43
|
} else if ("$fixedWidth" in type) {
|
|
43
44
|
return [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modernToLegacyGroupByClause.js","names":["DurationMapping","modernToLegacyGroupByClause","groupByClause","Object","entries","flatMap","field","type","maxGroupCount","$exactWithLimit","$exact","$limit","undefined","defaultValue","$defaultValue","fixedWidth","$fixedWidth","ranges","$ranges","map","range","convertRange","value","$duration","unit","startValue","endValue"],"sources":["modernToLegacyGroupByClause.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { AllGroupByValues, GroupByClause, GroupByRange } from \"@osdk/api\";\nimport { DurationMapping } from \"@osdk/api\";\nimport type {\n AggregationGroupByV2,\n AggregationRangeV2,\n} from \"@osdk/foundry.ontologies\";\n\n/** @internal */\nexport function modernToLegacyGroupByClause(\n groupByClause: GroupByClause<any> | undefined,\n) {\n if (!groupByClause) return [];\n\n return Object.entries(\n groupByClause as Record<string, AllGroupByValues>,\n ).flatMap<AggregationGroupByV2>(([field, type]) => {\n if (type === \"exact\") {\n return [{ type, field }];\n } else if (\"$exactWithLimit\" in type) {\n {\n return [\n {\n type: \"exact\",\n field,\n maxGroupCount: type.$exactWithLimit,\n },\n ];\n }\n } else if (\"$exact\" in type) {\n return [\n {\n type: \"exact\",\n field,\n maxGroupCount: type.$exact?.$limit ?? undefined,\n defaultValue: type.$exact.$defaultValue ?? undefined,\n },\n ];\n } else if (\"$fixedWidth\" in type) {\n return [{\n type: \"fixedWidth\",\n field,\n fixedWidth: type.$fixedWidth,\n }];\n } else if (\"$ranges\" in type) {\n return [{\n type: \"ranges\",\n field,\n ranges: type.$ranges.map(range => convertRange(range)),\n }];\n } else if (\"$duration\" in type) {\n return [{\n type: \"duration\",\n field,\n value: type.$duration[0],\n unit: DurationMapping[type.$duration[1]],\n }];\n } else return [];\n });\n}\n\nfunction convertRange(\n range: GroupByRange<number | string>,\n): AggregationRangeV2 {\n return { startValue: range[0], endValue: range[1] };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,eAAe,QAAQ,WAAW;AAM3C;AACA,OAAO,SAASC,2BAA2BA,CACzCC,aAA6C,EAC7C;EACA,IAAI,CAACA,aAAa,EAAE,OAAO,EAAE;EAE7B,OAAOC,MAAM,CAACC,OAAO,CACnBF,aACF,CAAC,CAACG,OAAO,CAAuB,CAAC,CAACC,KAAK,EAAEC,IAAI,CAAC,KAAK;IACjD,IAAIA,IAAI,KAAK,OAAO,EAAE;MACpB,OAAO,CAAC;QAAEA,IAAI;QAAED;MAAM,CAAC,CAAC;IAC1B,CAAC,MAAM,IAAI,iBAAiB,IAAIC,IAAI,EAAE;MACpC;QACE,OAAO,CACL;UACEA,IAAI,EAAE,OAAO;UACbD,KAAK;UACLE,aAAa,EAAED,IAAI,CAACE;QACtB,CAAC,CACF;MACH;IACF,CAAC,MAAM,IAAI,QAAQ,IAAIF,IAAI,EAAE;MAC3B,OAAO,CACL;QACEA,IAAI,EAAE,OAAO;QACbD,KAAK;QACLE,aAAa,EAAED,IAAI,CAACG,MAAM,EAAEC,MAAM,IAAIC,SAAS;QAC/CC,YAAY,EAAEN,IAAI,CAACG,MAAM,CAACI,aAAa,IAAIF;
|
|
1
|
+
{"version":3,"file":"modernToLegacyGroupByClause.js","names":["DurationMapping","modernToLegacyGroupByClause","groupByClause","Object","entries","flatMap","field","type","maxGroupCount","$exactWithLimit","$exact","$limit","undefined","defaultValue","$defaultValue","includeNullValues","$includeNullValue","fixedWidth","$fixedWidth","ranges","$ranges","map","range","convertRange","value","$duration","unit","startValue","endValue"],"sources":["modernToLegacyGroupByClause.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { AllGroupByValues, GroupByClause, GroupByRange } from \"@osdk/api\";\nimport { DurationMapping } from \"@osdk/api\";\nimport type {\n AggregationGroupByV2,\n AggregationRangeV2,\n} from \"@osdk/foundry.ontologies\";\n\n/** @internal */\nexport function modernToLegacyGroupByClause(\n groupByClause: GroupByClause<any> | undefined,\n) {\n if (!groupByClause) return [];\n\n return Object.entries(\n groupByClause as Record<string, AllGroupByValues>,\n ).flatMap<AggregationGroupByV2>(([field, type]) => {\n if (type === \"exact\") {\n return [{ type, field }];\n } else if (\"$exactWithLimit\" in type) {\n {\n return [\n {\n type: \"exact\",\n field,\n maxGroupCount: type.$exactWithLimit,\n },\n ];\n }\n } else if (\"$exact\" in type) {\n return [\n {\n type: \"exact\",\n field,\n maxGroupCount: type.$exact?.$limit ?? undefined,\n defaultValue: type.$exact.$defaultValue ?? undefined,\n includeNullValues: type.$exact.$includeNullValue === true\n ? true\n : undefined,\n },\n ];\n } else if (\"$fixedWidth\" in type) {\n return [{\n type: \"fixedWidth\",\n field,\n fixedWidth: type.$fixedWidth,\n }];\n } else if (\"$ranges\" in type) {\n return [{\n type: \"ranges\",\n field,\n ranges: type.$ranges.map(range => convertRange(range)),\n }];\n } else if (\"$duration\" in type) {\n return [{\n type: \"duration\",\n field,\n value: type.$duration[0],\n unit: DurationMapping[type.$duration[1]],\n }];\n } else return [];\n });\n}\n\nfunction convertRange(\n range: GroupByRange<number | string>,\n): AggregationRangeV2 {\n return { startValue: range[0], endValue: range[1] };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,eAAe,QAAQ,WAAW;AAM3C;AACA,OAAO,SAASC,2BAA2BA,CACzCC,aAA6C,EAC7C;EACA,IAAI,CAACA,aAAa,EAAE,OAAO,EAAE;EAE7B,OAAOC,MAAM,CAACC,OAAO,CACnBF,aACF,CAAC,CAACG,OAAO,CAAuB,CAAC,CAACC,KAAK,EAAEC,IAAI,CAAC,KAAK;IACjD,IAAIA,IAAI,KAAK,OAAO,EAAE;MACpB,OAAO,CAAC;QAAEA,IAAI;QAAED;MAAM,CAAC,CAAC;IAC1B,CAAC,MAAM,IAAI,iBAAiB,IAAIC,IAAI,EAAE;MACpC;QACE,OAAO,CACL;UACEA,IAAI,EAAE,OAAO;UACbD,KAAK;UACLE,aAAa,EAAED,IAAI,CAACE;QACtB,CAAC,CACF;MACH;IACF,CAAC,MAAM,IAAI,QAAQ,IAAIF,IAAI,EAAE;MAC3B,OAAO,CACL;QACEA,IAAI,EAAE,OAAO;QACbD,KAAK;QACLE,aAAa,EAAED,IAAI,CAACG,MAAM,EAAEC,MAAM,IAAIC,SAAS;QAC/CC,YAAY,EAAEN,IAAI,CAACG,MAAM,CAACI,aAAa,IAAIF,SAAS;QACpDG,iBAAiB,EAAER,IAAI,CAACG,MAAM,CAACM,iBAAiB,KAAK,IAAI,GACrD,IAAI,GACJJ;MACN,CAAC,CACF;IACH,CAAC,MAAM,IAAI,aAAa,IAAIL,IAAI,EAAE;MAChC,OAAO,CAAC;QACNA,IAAI,EAAE,YAAY;QAClBD,KAAK;QACLW,UAAU,EAAEV,IAAI,CAACW;MACnB,CAAC,CAAC;IACJ,CAAC,MAAM,IAAI,SAAS,IAAIX,IAAI,EAAE;MAC5B,OAAO,CAAC;QACNA,IAAI,EAAE,QAAQ;QACdD,KAAK;QACLa,MAAM,EAAEZ,IAAI,CAACa,OAAO,CAACC,GAAG,CAACC,KAAK,IAAIC,YAAY,CAACD,KAAK,CAAC;MACvD,CAAC,CAAC;IACJ,CAAC,MAAM,IAAI,WAAW,IAAIf,IAAI,EAAE;MAC9B,OAAO,CAAC;QACNA,IAAI,EAAE,UAAU;QAChBD,KAAK;QACLkB,KAAK,EAAEjB,IAAI,CAACkB,SAAS,CAAC,CAAC,CAAC;QACxBC,IAAI,EAAE1B,eAAe,CAACO,IAAI,CAACkB,SAAS,CAAC,CAAC,CAAC;MACzC,CAAC,CAAC;IACJ,CAAC,MAAM,OAAO,EAAE;EAClB,CAAC,CAAC;AACJ;AAEA,SAASF,YAAYA,CACnBD,KAAoC,EAChB;EACpB,OAAO;IAAEK,UAAU,EAAEL,KAAK,CAAC,CAAC,CAAC;IAAEM,QAAQ,EAAEN,KAAK,CAAC,CAAC;EAAE,CAAC;AACrD","ignoreList":[]}
|
|
@@ -405,6 +405,91 @@ describe("aggregate", () => {
|
|
|
405
405
|
}
|
|
406
406
|
});
|
|
407
407
|
});
|
|
408
|
+
describe("$exact", () => {
|
|
409
|
+
it("correctly nulls bucket type when $includeNullValue is true", async () => {
|
|
410
|
+
const result = await client(Todo).aggregate({
|
|
411
|
+
$select: {
|
|
412
|
+
"id:avg": "unordered"
|
|
413
|
+
},
|
|
414
|
+
$groupBy: {
|
|
415
|
+
text: {
|
|
416
|
+
$exact: {
|
|
417
|
+
$includeNullValue: true
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
});
|
|
422
|
+
expectTypeOf(result[0].$group.text).toEqualTypeOf();
|
|
423
|
+
});
|
|
424
|
+
it("disallows null values with ordering", () => {
|
|
425
|
+
void client(Todo).aggregate({
|
|
426
|
+
$select: {
|
|
427
|
+
// @ts-expect-error
|
|
428
|
+
"id:avg": "asc"
|
|
429
|
+
},
|
|
430
|
+
$groupBy: {
|
|
431
|
+
text: {
|
|
432
|
+
$exact: {
|
|
433
|
+
$includeNullValue: true
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
});
|
|
439
|
+
it("disallows null values with default value", async () => {
|
|
440
|
+
void client(Todo).aggregate({
|
|
441
|
+
$select: {
|
|
442
|
+
"text:exactDistinct": "unordered",
|
|
443
|
+
"id:max": "unordered",
|
|
444
|
+
"$count": "unordered"
|
|
445
|
+
},
|
|
446
|
+
$groupBy: {
|
|
447
|
+
text: {
|
|
448
|
+
// Should work since $includeNullValue is false. Making this possible makes intellisense better and
|
|
449
|
+
// lets the user understand the difference between the two.
|
|
450
|
+
$exact: {
|
|
451
|
+
$defaultValue: "default",
|
|
452
|
+
$includeNullValue: false
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
});
|
|
457
|
+
void client(Todo).aggregate({
|
|
458
|
+
$select: {
|
|
459
|
+
"text:exactDistinct": "unordered",
|
|
460
|
+
"id:max": "unordered",
|
|
461
|
+
"$count": "unordered"
|
|
462
|
+
},
|
|
463
|
+
$groupBy: {
|
|
464
|
+
text: {
|
|
465
|
+
// @ts-expect-error
|
|
466
|
+
$exact: {
|
|
467
|
+
$defaultValue: "default",
|
|
468
|
+
$includeNullValue: true
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
});
|
|
473
|
+
});
|
|
474
|
+
it("allows null or default values with limit", async () => {
|
|
475
|
+
const result = await client(Todo).aggregate({
|
|
476
|
+
$select: {
|
|
477
|
+
"text:exactDistinct": "unordered",
|
|
478
|
+
"id:max": "unordered",
|
|
479
|
+
"$count": "unordered"
|
|
480
|
+
},
|
|
481
|
+
$groupBy: {
|
|
482
|
+
text: {
|
|
483
|
+
$exact: {
|
|
484
|
+
$limit: 10,
|
|
485
|
+
$includeNullValue: true
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
});
|
|
490
|
+
expectTypeOf(result[0].$group.text).toEqualTypeOf();
|
|
491
|
+
});
|
|
492
|
+
});
|
|
408
493
|
it("works with where: todo", async () => {});
|
|
409
494
|
});
|
|
410
495
|
//# sourceMappingURL=aggregate.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.test.js","names":["objectTypeWithAllPropertyTypes","Todo","expectType","beforeAll","describe","expect","expectTypeOf","it","vi","createClient","createMinimalClient","aggregate","metadata","expectsClientVersion","ontologyRid","ontologyApiName","userAgent","mockFetch","clientCtx","client","fn","mockResolvedValue","ok","status","json","Promise","resolve","aggregationResponse","undefined","accuracy","data","group","string","metrics","name","value","toEqualTypeOf","notGrouped","type","objectType","$select","toHaveBeenCalledWith","body","JSON","stringify","method","headers","anything","approximateDistinct","exactDistinct","id","max","avg","$count","grouped","$groupBy","$exactWithLimit","integer","$ranges","short","float","$fixedWidth","dateTime","$duration","date","boolean","double","$defaultValue","$limit","$group","wrongSelectKey","wrongKey","$exact","toBeCallableWith","direction","timestamp"],"sources":["aggregate.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n AggregateOpts,\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy,\n GroupByClause,\n ValidAggregationKeys,\n} from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\nimport {\n objectTypeWithAllPropertyTypes,\n Todo,\n} from \"@osdk/client.test.ontology\";\nimport type { AggregateObjectsResponseV2 } from \"@osdk/foundry.ontologies\";\nimport type { TypeOf } from \"ts-expect\";\nimport { expectType } from \"ts-expect\";\nimport {\n beforeAll,\n describe,\n expect,\n expectTypeOf,\n it,\n type Mock,\n vi,\n} from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { aggregate } from \"./aggregate.js\";\n\nconst metadata = {\n expectsClientVersion: \"0.0.0\",\n ontologyRid: \"ri.a.b.c.d\",\n ontologyApiName: \"apiName\",\n userAgent: \"\",\n};\n\nlet mockFetch: Mock;\nlet clientCtx: MinimalClient;\nlet client: Client;\n\nbeforeAll(() => {\n mockFetch = vi.fn();\n\n mockFetch.mockResolvedValue({\n ok: true,\n status: 200,\n json: () => new Promise((resolve) => resolve(aggregationResponse)),\n });\n\n clientCtx = createMinimalClient(\n metadata,\n \"https://host.com\",\n async () => \"myAccessToken\",\n {},\n mockFetch,\n );\n\n client = createClient(\n \"https://host.com\",\n metadata.ontologyRid,\n async () => \"\",\n undefined,\n mockFetch,\n );\n});\n\nconst aggregationResponse: AggregateObjectsResponseV2 = {\n accuracy: \"APPROXIMATE\",\n data: [\n {\n group: {\n string: \"hello\",\n },\n metrics: [\n {\n name: \"string.approximateDistinct\",\n value: 1,\n },\n {\n name: \"string.exactDistinct\",\n value: 1,\n },\n {\n name: \"id.max\",\n value: 1,\n },\n {\n name: \"id.avg\",\n value: 1,\n },\n ],\n },\n ],\n};\n\ndescribe(\"aggregate\", () => {\n it(\"works\", async () => {\n expectTypeOf<ValidAggregationKeys<Todo>>().toEqualTypeOf<\n | \"$count\"\n | \"id:min\"\n | \"id:max\"\n | \"id:sum\"\n | \"id:avg\"\n | \"id:approximateDistinct\"\n | \"id:exactDistinct\"\n | \"text:approximateDistinct\"\n | \"text:exactDistinct\"\n >;\n\n const notGrouped = await aggregate(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"string:approximateDistinct\": \"unordered\",\n \"string:exactDistinct\": \"unordered\",\n \"id:max\": \"unordered\",\n \"id:avg\": \"unordered\",\n \"$count\": \"unordered\",\n },\n },\n );\n\n expect(mockFetch).toHaveBeenCalledWith(\n \"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\",\n {\n body: JSON.stringify({\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"ToDo\" },\n \"groupBy\": [],\n \"aggregation\": [\n {\n \"type\": \"approximateDistinct\",\n \"name\": \"string.approximateDistinct\",\n \"field\": \"string\",\n },\n {\n \"type\": \"exactDistinct\",\n \"name\": \"string.exactDistinct\",\n \"field\": \"string\",\n },\n { \"type\": \"max\", \"name\": \"id.max\", \"field\": \"id\" },\n { \"type\": \"avg\", \"name\": \"id.avg\", \"field\": \"id\" },\n { \"type\": \"count\", \"name\": \"count\" },\n ],\n }),\n method: \"POST\",\n headers: expect.anything(),\n },\n );\n\n expectType<number>(notGrouped.string.approximateDistinct);\n expectType<number>(notGrouped.string.exactDistinct);\n expectType<number | undefined>(notGrouped.id.max);\n expectType<number | undefined>(notGrouped.id.avg);\n expectType<number>(notGrouped.$count);\n expectType<\n TypeOf<\n {\n other: any;\n },\n typeof notGrouped\n >\n >(false); // subSelect should hide unused keys\n\n const grouped = await client(objectTypeWithAllPropertyTypes).aggregate(\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\",\n \"id:exactDistinct\": \"unordered\",\n \"id:max\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n string: \"exact\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n dateTime: { $duration: [10, \"seconds\"] },\n date: { $ranges: [[\"2024-01-02\", \"2024-01-09\"]] },\n boolean: \"exact\",\n double: { \"$exact\": { $defaultValue: \"default\", $limit: 300 } },\n },\n },\n );\n expectType<Array<any>>(grouped);\n expectType<string | undefined>(grouped[0].$group.string);\n expectType<number>(grouped[0].id.approximateDistinct);\n expectType<number>(grouped[0].id.exactDistinct);\n expectType<number>(grouped[0].$group.id);\n expectType<number>(grouped[0].$count);\n expectType<{ startValue: number; endValue: number }>(\n grouped[0].$group.integer,\n );\n expectType<{ startValue: number; endValue: number }>(\n grouped[0].$group.short,\n );\n expectType<number | undefined>(grouped[0].$group.float);\n expectType<string | undefined>(grouped[0].$group.dateTime);\n expectType<{ startValue: string; endValue: string }>(\n grouped[0].$group.date,\n );\n expectType<boolean | undefined>(grouped[0].$group.boolean);\n expectType<number | undefined>(grouped[0].$group.double);\n\n expectType<\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy<\n objectTypeWithAllPropertyTypes,\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\";\n \"$count\": \"unordered\";\n };\n $groupBy: {\n string: \"exact\";\n id: { $exactWithLimit: 10 };\n integer: { $ranges: [[1, 2]] };\n short: {\n $ranges: [[2, 3], [4, 5]];\n };\n float: { $fixedWidth: 10 };\n };\n }\n >\n >({\n $select: {\n \"id:approximateDistinct\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n string: \"exact\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n });\n\n expectType<\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy<\n objectTypeWithAllPropertyTypes,\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\";\n \"wrongSelectKey\": \"don't work\";\n \"$count\": \"unordered\";\n };\n $groupBy: {\n wrongKey: \"don't work\";\n text: \"exact\";\n id: { $exact: { $limit: 10; $defaultValue: \"default\" } };\n integer: { $ranges: [[1, 2]] };\n short: {\n $ranges: [[2, 3], [4, 5]];\n };\n float: { $fixedWidth: 10 };\n };\n }\n >\n >({\n $select: {\n id: \"approximateDistinct\",\n // @ts-expect-error\n wrongSelectKey: \"don't work\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n // @ts-expect-error\n wrongKey: \"don't work\",\n string: \"exact\",\n id: { $exact: { $limit: 10, $defaultValue: \"default\" } },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n });\n\n expectTypeOf<\n typeof aggregate<objectTypeWithAllPropertyTypes, {\n $select: {\n \"id:approximateDistinct\": \"unordered\";\n \"wrongSelectKey\": \"wrong key\";\n \"$count\": \"unordered\";\n };\n $groupBy: {\n string: \"exact\";\n wrongKey: \"wrongKey\";\n id: { $exactWithLimit: 10 };\n integer: { $ranges: [[1, 2]] };\n short: {\n $ranges: [[2, 3], [4, 5]];\n };\n float: { $fixedWidth: 10 };\n };\n }>\n >().toBeCallableWith(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\",\n // @ts-expect-error\n \"wrongSelectKey\": \"don't work\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n string: \"exact\",\n // @ts-expect-error\n wrongKey: \"wrongKey\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n },\n );\n\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n dateTime: { $duration: [10, \"seconds\"] },\n date: { $duration: [1, \"years\"] },\n });\n\n // Can't use value greater than 1 for years\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n // @ts-expect-error\n date: { $duration: [10, \"years\"] },\n });\n\n // Can't use arbitrary string for time unit\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n // @ts-expect-error\n dateTime: { $duration: [1, \"nonexistentTimeUnit\"] },\n });\n\n // Can't use time unit smaller than days for date type\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n // @ts-expect-error\n date: { $duration: [1, \"seconds\"] },\n });\n });\n\n it(\"works with $orderBy (no groups)\", async () => {\n const notGrouped = await aggregate(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"string:approximateDistinct\": \"asc\",\n \"id:exactDistinct\": \"asc\",\n \"id:avg\": \"desc\",\n \"id:max\": \"asc\",\n \"$count\": \"unordered\",\n },\n },\n );\n\n expect(mockFetch).toHaveBeenCalledWith(\n \"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\",\n {\n body: JSON.stringify({\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"ToDo\" },\n \"groupBy\": [],\n \"aggregation\": [\n {\n \"type\": \"approximateDistinct\",\n \"name\": \"string.approximateDistinct\",\n direction: \"ASC\",\n \"field\": \"string\",\n },\n {\n \"type\": \"exactDistinct\",\n \"name\": \"id.exactDistinct\",\n direction: \"ASC\",\n \"field\": \"id\",\n },\n {\n \"type\": \"avg\",\n \"name\": \"id.avg\",\n direction: \"DESC\",\n \"field\": \"id\",\n },\n {\n \"type\": \"max\",\n \"name\": \"id.max\",\n direction: \"ASC\",\n \"field\": \"id\",\n },\n { \"type\": \"count\", \"name\": \"count\" },\n ],\n }),\n method: \"POST\",\n headers: expect.anything(),\n },\n );\n\n expectType<number>(notGrouped.string.approximateDistinct);\n expectType<number>(notGrouped.id.exactDistinct);\n expectType<number>(notGrouped.id.max);\n expectType<number>(notGrouped.id.avg);\n expectType<number>(notGrouped.$count);\n expectType<\n TypeOf<\n {\n other: any;\n },\n typeof notGrouped\n >\n >(false); // subselect should hide unused keys\n });\n\n it(\"works with $orderBy (1 group)\", async () => {\n const grouped = await aggregate(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"id:max\": \"desc\",\n \"string:approximateDistinct\": \"asc\",\n \"id:avg\": \"unordered\",\n \"$count\": \"unordered\",\n \"string:exactDistinct\": \"desc\",\n },\n $groupBy: {\n id: \"exact\",\n },\n },\n );\n\n expect(mockFetch).toHaveBeenCalledWith(\n \"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\",\n {\n body: JSON.stringify({\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"ToDo\" },\n \"groupBy\": [{ \"type\": \"exact\", \"field\": \"id\" }],\n \"aggregation\": [\n {\n \"type\": \"max\",\n \"name\": \"id.max\",\n direction: \"DESC\",\n \"field\": \"id\",\n },\n {\n \"type\": \"approximateDistinct\",\n \"name\": \"string.approximateDistinct\",\n direction: \"ASC\",\n \"field\": \"string\",\n },\n { \"type\": \"avg\", \"name\": \"id.avg\", \"field\": \"id\" },\n { \"type\": \"count\", \"name\": \"count\" },\n {\n \"type\": \"exactDistinct\",\n \"name\": \"string.exactDistinct\",\n direction: \"DESC\",\n \"field\": \"string\",\n },\n ],\n }),\n method: \"POST\",\n headers: expect.anything(),\n },\n );\n\n expectType<number>(grouped[0].string.approximateDistinct);\n expectType<number>(grouped[0].id.max);\n expectType<number>(grouped[0].id.avg);\n expectType<number>(grouped[0].$count);\n expectType<number>(grouped[0].string.exactDistinct);\n expectType<\n TypeOf<\n {\n other: any;\n },\n typeof grouped\n >\n >(false); // subselect should hide unused keys\n });\n\n it(\"prohibits ordered select with multiple groupBy\", async () => {\n await client(Todo).aggregate(\n {\n $select: {\n // @ts-expect-error\n \"id:max\": \"desc\",\n // @ts-expect-error\n \"text:approximateDistinct\": \"asc\",\n // @ts-expect-error\n \"text:exactDistinct\": \"desc\",\n \"id:avg\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n id: \"exact\",\n timestamp: \"exact\",\n },\n },\n );\n });\n\n it(\"works with where: todo\", async () => {\n const f: AggregateOpts<\n Employee\n > = {\n $select: {\n \"office:approximateDistinct\": \"unordered\",\n },\n };\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"aggregate.test.js","names":["objectTypeWithAllPropertyTypes","Todo","expectType","beforeAll","describe","expect","expectTypeOf","it","vi","createClient","createMinimalClient","aggregate","metadata","expectsClientVersion","ontologyRid","ontologyApiName","userAgent","mockFetch","clientCtx","client","fn","mockResolvedValue","ok","status","json","Promise","resolve","aggregationResponse","undefined","accuracy","data","group","string","metrics","name","value","toEqualTypeOf","notGrouped","type","objectType","$select","toHaveBeenCalledWith","body","JSON","stringify","method","headers","anything","approximateDistinct","exactDistinct","id","max","avg","$count","grouped","$groupBy","$exactWithLimit","integer","$ranges","short","float","$fixedWidth","dateTime","$duration","date","boolean","double","$defaultValue","$limit","$group","wrongSelectKey","wrongKey","$exact","toBeCallableWith","direction","timestamp","result","text","$includeNullValue"],"sources":["aggregate.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n AggregateOpts,\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy,\n GroupByClause,\n ValidAggregationKeys,\n} from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\nimport {\n objectTypeWithAllPropertyTypes,\n Todo,\n} from \"@osdk/client.test.ontology\";\nimport type { AggregateObjectsResponseV2 } from \"@osdk/foundry.ontologies\";\nimport type { TypeOf } from \"ts-expect\";\nimport { expectType } from \"ts-expect\";\nimport {\n beforeAll,\n describe,\n expect,\n expectTypeOf,\n it,\n type Mock,\n vi,\n} from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { aggregate } from \"./aggregate.js\";\n\nconst metadata = {\n expectsClientVersion: \"0.0.0\",\n ontologyRid: \"ri.a.b.c.d\",\n ontologyApiName: \"apiName\",\n userAgent: \"\",\n};\n\nlet mockFetch: Mock;\nlet clientCtx: MinimalClient;\nlet client: Client;\n\nbeforeAll(() => {\n mockFetch = vi.fn();\n\n mockFetch.mockResolvedValue({\n ok: true,\n status: 200,\n json: () => new Promise((resolve) => resolve(aggregationResponse)),\n });\n\n clientCtx = createMinimalClient(\n metadata,\n \"https://host.com\",\n async () => \"myAccessToken\",\n {},\n mockFetch,\n );\n\n client = createClient(\n \"https://host.com\",\n metadata.ontologyRid,\n async () => \"\",\n undefined,\n mockFetch,\n );\n});\n\nconst aggregationResponse: AggregateObjectsResponseV2 = {\n accuracy: \"APPROXIMATE\",\n data: [\n {\n group: {\n string: \"hello\",\n },\n metrics: [\n {\n name: \"string.approximateDistinct\",\n value: 1,\n },\n {\n name: \"string.exactDistinct\",\n value: 1,\n },\n {\n name: \"id.max\",\n value: 1,\n },\n {\n name: \"id.avg\",\n value: 1,\n },\n ],\n },\n ],\n};\n\ndescribe(\"aggregate\", () => {\n it(\"works\", async () => {\n expectTypeOf<ValidAggregationKeys<Todo>>().toEqualTypeOf<\n | \"$count\"\n | \"id:min\"\n | \"id:max\"\n | \"id:sum\"\n | \"id:avg\"\n | \"id:approximateDistinct\"\n | \"id:exactDistinct\"\n | \"text:approximateDistinct\"\n | \"text:exactDistinct\"\n >;\n\n const notGrouped = await aggregate(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"string:approximateDistinct\": \"unordered\",\n \"string:exactDistinct\": \"unordered\",\n \"id:max\": \"unordered\",\n \"id:avg\": \"unordered\",\n \"$count\": \"unordered\",\n },\n },\n );\n\n expect(mockFetch).toHaveBeenCalledWith(\n \"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\",\n {\n body: JSON.stringify({\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"ToDo\" },\n \"groupBy\": [],\n \"aggregation\": [\n {\n \"type\": \"approximateDistinct\",\n \"name\": \"string.approximateDistinct\",\n \"field\": \"string\",\n },\n {\n \"type\": \"exactDistinct\",\n \"name\": \"string.exactDistinct\",\n \"field\": \"string\",\n },\n { \"type\": \"max\", \"name\": \"id.max\", \"field\": \"id\" },\n { \"type\": \"avg\", \"name\": \"id.avg\", \"field\": \"id\" },\n { \"type\": \"count\", \"name\": \"count\" },\n ],\n }),\n method: \"POST\",\n headers: expect.anything(),\n },\n );\n\n expectType<number>(notGrouped.string.approximateDistinct);\n expectType<number>(notGrouped.string.exactDistinct);\n expectType<number | undefined>(notGrouped.id.max);\n expectType<number | undefined>(notGrouped.id.avg);\n expectType<number>(notGrouped.$count);\n expectType<\n TypeOf<\n {\n other: any;\n },\n typeof notGrouped\n >\n >(false); // subSelect should hide unused keys\n\n const grouped = await client(objectTypeWithAllPropertyTypes).aggregate(\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\",\n \"id:exactDistinct\": \"unordered\",\n \"id:max\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n string: \"exact\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n dateTime: { $duration: [10, \"seconds\"] },\n date: { $ranges: [[\"2024-01-02\", \"2024-01-09\"]] },\n boolean: \"exact\",\n double: { \"$exact\": { $defaultValue: \"default\", $limit: 300 } },\n },\n },\n );\n expectType<Array<any>>(grouped);\n expectType<string | undefined>(grouped[0].$group.string);\n expectType<number>(grouped[0].id.approximateDistinct);\n expectType<number>(grouped[0].id.exactDistinct);\n expectType<number>(grouped[0].$group.id);\n expectType<number>(grouped[0].$count);\n expectType<{ startValue: number; endValue: number }>(\n grouped[0].$group.integer,\n );\n expectType<{ startValue: number; endValue: number }>(\n grouped[0].$group.short,\n );\n expectType<number | undefined>(grouped[0].$group.float);\n expectType<string | undefined>(grouped[0].$group.dateTime);\n expectType<{ startValue: string; endValue: string }>(\n grouped[0].$group.date,\n );\n expectType<boolean | undefined>(grouped[0].$group.boolean);\n expectType<number | undefined>(grouped[0].$group.double);\n\n expectType<\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy<\n objectTypeWithAllPropertyTypes,\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\";\n \"$count\": \"unordered\";\n };\n $groupBy: {\n string: \"exact\";\n id: { $exactWithLimit: 10 };\n integer: { $ranges: [[1, 2]] };\n short: {\n $ranges: [[2, 3], [4, 5]];\n };\n float: { $fixedWidth: 10 };\n };\n }\n >\n >({\n $select: {\n \"id:approximateDistinct\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n string: \"exact\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n });\n\n expectType<\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy<\n objectTypeWithAllPropertyTypes,\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\";\n \"wrongSelectKey\": \"don't work\";\n \"$count\": \"unordered\";\n };\n $groupBy: {\n wrongKey: \"don't work\";\n text: \"exact\";\n id: { $exact: { $limit: 10; $defaultValue: \"default\" } };\n integer: { $ranges: [[1, 2]] };\n short: {\n $ranges: [[2, 3], [4, 5]];\n };\n float: { $fixedWidth: 10 };\n };\n }\n >\n >({\n $select: {\n id: \"approximateDistinct\",\n // @ts-expect-error\n wrongSelectKey: \"don't work\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n // @ts-expect-error\n wrongKey: \"don't work\",\n string: \"exact\",\n id: { $exact: { $limit: 10, $defaultValue: \"default\" } },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n });\n\n expectTypeOf<\n typeof aggregate<objectTypeWithAllPropertyTypes, {\n $select: {\n \"id:approximateDistinct\": \"unordered\";\n \"wrongSelectKey\": \"wrong key\";\n \"$count\": \"unordered\";\n };\n $groupBy: {\n string: \"exact\";\n wrongKey: \"wrongKey\";\n id: { $exactWithLimit: 10 };\n integer: { $ranges: [[1, 2]] };\n short: {\n $ranges: [[2, 3], [4, 5]];\n };\n float: { $fixedWidth: 10 };\n };\n }>\n >().toBeCallableWith(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\",\n // @ts-expect-error\n \"wrongSelectKey\": \"don't work\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n string: \"exact\",\n // @ts-expect-error\n wrongKey: \"wrongKey\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n },\n );\n\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n dateTime: { $duration: [10, \"seconds\"] },\n date: { $duration: [1, \"years\"] },\n });\n\n // Can't use value greater than 1 for years\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n // @ts-expect-error\n date: { $duration: [10, \"years\"] },\n });\n\n // Can't use arbitrary string for time unit\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n // @ts-expect-error\n dateTime: { $duration: [1, \"nonexistentTimeUnit\"] },\n });\n\n // Can't use time unit smaller than days for date type\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n // @ts-expect-error\n date: { $duration: [1, \"seconds\"] },\n });\n });\n\n it(\"works with $orderBy (no groups)\", async () => {\n const notGrouped = await aggregate(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"string:approximateDistinct\": \"asc\",\n \"id:exactDistinct\": \"asc\",\n \"id:avg\": \"desc\",\n \"id:max\": \"asc\",\n \"$count\": \"unordered\",\n },\n },\n );\n\n expect(mockFetch).toHaveBeenCalledWith(\n \"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\",\n {\n body: JSON.stringify({\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"ToDo\" },\n \"groupBy\": [],\n \"aggregation\": [\n {\n \"type\": \"approximateDistinct\",\n \"name\": \"string.approximateDistinct\",\n direction: \"ASC\",\n \"field\": \"string\",\n },\n {\n \"type\": \"exactDistinct\",\n \"name\": \"id.exactDistinct\",\n direction: \"ASC\",\n \"field\": \"id\",\n },\n {\n \"type\": \"avg\",\n \"name\": \"id.avg\",\n direction: \"DESC\",\n \"field\": \"id\",\n },\n {\n \"type\": \"max\",\n \"name\": \"id.max\",\n direction: \"ASC\",\n \"field\": \"id\",\n },\n { \"type\": \"count\", \"name\": \"count\" },\n ],\n }),\n method: \"POST\",\n headers: expect.anything(),\n },\n );\n\n expectType<number>(notGrouped.string.approximateDistinct);\n expectType<number>(notGrouped.id.exactDistinct);\n expectType<number>(notGrouped.id.max);\n expectType<number>(notGrouped.id.avg);\n expectType<number>(notGrouped.$count);\n expectType<\n TypeOf<\n {\n other: any;\n },\n typeof notGrouped\n >\n >(false); // subselect should hide unused keys\n });\n\n it(\"works with $orderBy (1 group)\", async () => {\n const grouped = await aggregate(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"id:max\": \"desc\",\n \"string:approximateDistinct\": \"asc\",\n \"id:avg\": \"unordered\",\n \"$count\": \"unordered\",\n \"string:exactDistinct\": \"desc\",\n },\n $groupBy: {\n id: \"exact\",\n },\n },\n );\n\n expect(mockFetch).toHaveBeenCalledWith(\n \"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\",\n {\n body: JSON.stringify({\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"ToDo\" },\n \"groupBy\": [{ \"type\": \"exact\", \"field\": \"id\" }],\n \"aggregation\": [\n {\n \"type\": \"max\",\n \"name\": \"id.max\",\n direction: \"DESC\",\n \"field\": \"id\",\n },\n {\n \"type\": \"approximateDistinct\",\n \"name\": \"string.approximateDistinct\",\n direction: \"ASC\",\n \"field\": \"string\",\n },\n { \"type\": \"avg\", \"name\": \"id.avg\", \"field\": \"id\" },\n { \"type\": \"count\", \"name\": \"count\" },\n {\n \"type\": \"exactDistinct\",\n \"name\": \"string.exactDistinct\",\n direction: \"DESC\",\n \"field\": \"string\",\n },\n ],\n }),\n method: \"POST\",\n headers: expect.anything(),\n },\n );\n\n expectType<number>(grouped[0].string.approximateDistinct);\n expectType<number>(grouped[0].id.max);\n expectType<number>(grouped[0].id.avg);\n expectType<number>(grouped[0].$count);\n expectType<number>(grouped[0].string.exactDistinct);\n expectType<\n TypeOf<\n {\n other: any;\n },\n typeof grouped\n >\n >(false); // subselect should hide unused keys\n });\n\n it(\"prohibits ordered select with multiple groupBy\", async () => {\n await client(Todo).aggregate(\n {\n $select: {\n // @ts-expect-error\n \"id:max\": \"desc\",\n // @ts-expect-error\n \"text:approximateDistinct\": \"asc\",\n // @ts-expect-error\n \"text:exactDistinct\": \"desc\",\n \"id:avg\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n id: \"exact\",\n timestamp: \"exact\",\n },\n },\n );\n });\n\n describe(\"$exact\", () => {\n it(\"correctly nulls bucket type when $includeNullValue is true\", async () => {\n const result = await client(Todo).aggregate({\n $select: {\n \"id:avg\": \"unordered\",\n },\n $groupBy: {\n text: { $exact: { $includeNullValue: true } },\n },\n });\n\n expectTypeOf(result[0].$group.text).toEqualTypeOf<\n string | null | undefined\n >();\n });\n\n it(\"disallows null values with ordering\", () => {\n void client(Todo).aggregate({\n $select: {\n // @ts-expect-error\n \"id:avg\": \"asc\",\n },\n $groupBy: {\n text: { $exact: { $includeNullValue: true } },\n },\n });\n });\n\n it(\"disallows null values with default value\", async () => {\n void client(Todo).aggregate({\n $select: {\n \"text:exactDistinct\": \"unordered\",\n \"id:max\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n text: {\n // Should work since $includeNullValue is false. Making this possible makes intellisense better and\n // lets the user understand the difference between the two.\n $exact: { $defaultValue: \"default\", $includeNullValue: false },\n },\n },\n });\n\n void client(Todo).aggregate({\n $select: {\n \"text:exactDistinct\": \"unordered\",\n \"id:max\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n text: {\n // @ts-expect-error\n $exact: { $defaultValue: \"default\", $includeNullValue: true },\n },\n },\n });\n });\n\n it(\"allows null or default values with limit\", async () => {\n const result = await client(Todo).aggregate({\n $select: {\n \"text:exactDistinct\": \"unordered\",\n \"id:max\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n text: { $exact: { $limit: 10, $includeNullValue: true } },\n },\n });\n\n expectTypeOf(result[0].$group.text).toEqualTypeOf<\n string | null | undefined\n >();\n });\n });\n\n it(\"works with where: todo\", async () => {\n const f: AggregateOpts<\n Employee\n > = {\n $select: {\n \"office:approximateDistinct\": \"unordered\",\n },\n };\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,6 +14,6 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
export const USER_AGENT = `osdk-client/${"2.4.0-beta.
|
|
18
|
-
export const OBSERVABLE_USER_AGENT = `osdk-observable-client/${"2.4.0-beta.
|
|
17
|
+
export const USER_AGENT = `osdk-client/${"2.4.0-beta.9"}`;
|
|
18
|
+
export const OBSERVABLE_USER_AGENT = `osdk-observable-client/${"2.4.0-beta.9"}`;
|
|
19
19
|
//# sourceMappingURL=UserAgent.js.map
|
|
@@ -17,7 +17,7 @@ var __export = (target, all) => {
|
|
|
17
17
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.
|
|
20
|
+
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.25.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
|
|
21
21
|
var Action_exports = {};
|
|
22
22
|
__export(Action_exports, {
|
|
23
23
|
apply: () => apply,
|
|
@@ -56,7 +56,11 @@ async function apiFetch(clientCtx, method, endpointPath, data, queryArguments, h
|
|
|
56
56
|
headersInit.set("Content-Type", requestMediaType ?? "application/json");
|
|
57
57
|
headersInit.set("Accept", responseMediaType ?? "application/json");
|
|
58
58
|
Object.entries(headers || {}).forEach(([key, value]) => {
|
|
59
|
-
if (value
|
|
59
|
+
if (key === "Content-Type" && typeof value === "string") {
|
|
60
|
+
headersInit.set("Content-Type", value);
|
|
61
|
+
} else if (key === "Accept" && typeof value === "string") {
|
|
62
|
+
headersInit.set("Accept", value);
|
|
63
|
+
} else if (value != null) {
|
|
60
64
|
headersInit.append(key, value.toString());
|
|
61
65
|
}
|
|
62
66
|
});
|
|
@@ -90,7 +94,7 @@ function parseUrl(baseUrl, endpointPath) {
|
|
|
90
94
|
return new URL(`api${endpointPath}`, baseUrl);
|
|
91
95
|
}
|
|
92
96
|
|
|
93
|
-
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.
|
|
97
|
+
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.25.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
|
|
94
98
|
var _apply = [1, "/v2/ontologies/{0}/actions/{1}/apply", 3];
|
|
95
99
|
function apply($ctx, ...args) {
|
|
96
100
|
return foundryPlatformFetch($ctx, _apply, ...args);
|
|
@@ -104,7 +108,7 @@ function applyBatch($ctx, ...args) {
|
|
|
104
108
|
return foundryPlatformFetch($ctx, _applyBatch, ...args);
|
|
105
109
|
}
|
|
106
110
|
|
|
107
|
-
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.
|
|
111
|
+
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.25.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ActionTypeV2.js
|
|
108
112
|
var ActionTypeV2_exports = {};
|
|
109
113
|
__export(ActionTypeV2_exports, {
|
|
110
114
|
get: () => get,
|
|
@@ -124,7 +128,7 @@ function getByRid($ctx, ...args) {
|
|
|
124
128
|
return foundryPlatformFetch($ctx, _getByRid, ...args);
|
|
125
129
|
}
|
|
126
130
|
|
|
127
|
-
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.
|
|
131
|
+
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.25.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Attachment.js
|
|
128
132
|
var Attachment_exports = {};
|
|
129
133
|
__export(Attachment_exports, {
|
|
130
134
|
get: () => get2,
|
|
@@ -149,7 +153,7 @@ function get2($ctx, ...args) {
|
|
|
149
153
|
return foundryPlatformFetch($ctx, _get2, ...args);
|
|
150
154
|
}
|
|
151
155
|
|
|
152
|
-
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.
|
|
156
|
+
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.25.0/node_modules/@osdk/foundry.ontologies/build/esm/public/MediaReferenceProperty.js
|
|
153
157
|
var MediaReferenceProperty_exports = {};
|
|
154
158
|
__export(MediaReferenceProperty_exports, {
|
|
155
159
|
getMediaContent: () => getMediaContent,
|
|
@@ -174,7 +178,7 @@ function uploadMedia($ctx, ...args) {
|
|
|
174
178
|
return foundryPlatformFetch($ctx, _uploadMedia, ...args);
|
|
175
179
|
}
|
|
176
180
|
|
|
177
|
-
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.
|
|
181
|
+
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.25.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ObjectTypeV2.js
|
|
178
182
|
var ObjectTypeV2_exports = {};
|
|
179
183
|
__export(ObjectTypeV2_exports, {
|
|
180
184
|
get: () => get3,
|
|
@@ -204,12 +208,14 @@ function getOutgoingLinkType($ctx, ...args) {
|
|
|
204
208
|
return foundryPlatformFetch($ctx, _getOutgoingLinkType, ...args);
|
|
205
209
|
}
|
|
206
210
|
|
|
207
|
-
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.
|
|
211
|
+
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.25.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyInterface.js
|
|
208
212
|
var OntologyInterface_exports = {};
|
|
209
213
|
__export(OntologyInterface_exports, {
|
|
210
214
|
aggregate: () => aggregate,
|
|
211
215
|
get: () => get4,
|
|
216
|
+
getOutgoingInterfaceLinkType: () => getOutgoingInterfaceLinkType,
|
|
212
217
|
list: () => list3,
|
|
218
|
+
listOutgoingInterfaceLinkTypes: () => listOutgoingInterfaceLinkTypes,
|
|
213
219
|
search: () => search
|
|
214
220
|
});
|
|
215
221
|
var _list3 = [0, "/v2/ontologies/{0}/interfaceTypes", 2];
|
|
@@ -228,8 +234,16 @@ var _aggregate = [1, "/v2/ontologies/{0}/interfaces/{1}/aggregate", 3];
|
|
|
228
234
|
function aggregate($ctx, ...args) {
|
|
229
235
|
return foundryPlatformFetch($ctx, _aggregate, ...args);
|
|
230
236
|
}
|
|
237
|
+
var _listOutgoingInterfaceLinkTypes = [0, "/v2/ontologies/{0}/interfaceTypes/{1}/outgoingLinkTypes", 2];
|
|
238
|
+
function listOutgoingInterfaceLinkTypes($ctx, ...args) {
|
|
239
|
+
return foundryPlatformFetch($ctx, _listOutgoingInterfaceLinkTypes, ...args);
|
|
240
|
+
}
|
|
241
|
+
var _getOutgoingInterfaceLinkType = [0, "/v2/ontologies/{0}/interfaceTypes/{1}/outgoingLinkTypes/{2}", 2];
|
|
242
|
+
function getOutgoingInterfaceLinkType($ctx, ...args) {
|
|
243
|
+
return foundryPlatformFetch($ctx, _getOutgoingInterfaceLinkType, ...args);
|
|
244
|
+
}
|
|
231
245
|
|
|
232
|
-
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.
|
|
246
|
+
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.25.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyObjectSet.js
|
|
233
247
|
var OntologyObjectSet_exports = {};
|
|
234
248
|
__export(OntologyObjectSet_exports, {
|
|
235
249
|
aggregate: () => aggregate2,
|
|
@@ -264,7 +278,7 @@ function aggregate2($ctx, ...args) {
|
|
|
264
278
|
return foundryPlatformFetch($ctx, _aggregate2, ...args);
|
|
265
279
|
}
|
|
266
280
|
|
|
267
|
-
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.
|
|
281
|
+
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.25.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Query.js
|
|
268
282
|
var Query_exports = {};
|
|
269
283
|
__export(Query_exports, {
|
|
270
284
|
execute: () => execute
|
|
@@ -274,7 +288,7 @@ function execute($ctx, ...args) {
|
|
|
274
288
|
return foundryPlatformFetch($ctx, _execute, ...args);
|
|
275
289
|
}
|
|
276
290
|
|
|
277
|
-
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.
|
|
291
|
+
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.25.0/node_modules/@osdk/foundry.ontologies/build/esm/public/QueryType.js
|
|
278
292
|
var QueryType_exports = {};
|
|
279
293
|
__export(QueryType_exports, {
|
|
280
294
|
get: () => get6,
|
|
@@ -289,7 +303,7 @@ function get6($ctx, ...args) {
|
|
|
289
303
|
return foundryPlatformFetch($ctx, _get6, ...args);
|
|
290
304
|
}
|
|
291
305
|
|
|
292
|
-
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.
|
|
306
|
+
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.25.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesPropertyV2.js
|
|
293
307
|
var TimeSeriesPropertyV2_exports = {};
|
|
294
308
|
__export(TimeSeriesPropertyV2_exports, {
|
|
295
309
|
getFirstPoint: () => getFirstPoint,
|
|
@@ -309,7 +323,7 @@ function streamPoints($ctx, ...args) {
|
|
|
309
323
|
return foundryPlatformFetch($ctx, _streamPoints, ...args);
|
|
310
324
|
}
|
|
311
325
|
|
|
312
|
-
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.
|
|
326
|
+
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.25.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesValueBankProperty.js
|
|
313
327
|
var TimeSeriesValueBankProperty_exports = {};
|
|
314
328
|
__export(TimeSeriesValueBankProperty_exports, {
|
|
315
329
|
getLatestValue: () => getLatestValue,
|
|
@@ -1141,7 +1155,8 @@ function modernToLegacyGroupByClause(groupByClause) {
|
|
|
1141
1155
|
type: "exact",
|
|
1142
1156
|
field,
|
|
1143
1157
|
maxGroupCount: type.$exact?.$limit ?? void 0,
|
|
1144
|
-
defaultValue: type.$exact.$defaultValue ?? void 0
|
|
1158
|
+
defaultValue: type.$exact.$defaultValue ?? void 0,
|
|
1159
|
+
includeNullValues: type.$exact.$includeNullValue === true ? true : void 0
|
|
1145
1160
|
}];
|
|
1146
1161
|
} else if ("$fixedWidth" in type) {
|
|
1147
1162
|
return [{
|
|
@@ -1826,5 +1841,5 @@ exports.hydrateAttachmentFromRidInternal = hydrateAttachmentFromRidInternal;
|
|
|
1826
1841
|
exports.isObjectSet = isObjectSet;
|
|
1827
1842
|
exports.isWireObjectSet = isWireObjectSet;
|
|
1828
1843
|
exports.symbolClientContext = symbolClientContext;
|
|
1829
|
-
//# sourceMappingURL=chunk-
|
|
1830
|
-
//# sourceMappingURL=chunk-
|
|
1844
|
+
//# sourceMappingURL=chunk-E5BQ7757.cjs.map
|
|
1845
|
+
//# sourceMappingURL=chunk-E5BQ7757.cjs.map
|