@osdk/client 2.1.0-beta.2 → 2.1.0-beta.20
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 +276 -0
- package/build/browser/Client.d.ts +8 -21
- package/build/browser/Client.d.ts.map +1 -1
- package/build/browser/Client.js +2 -1
- package/build/browser/Client.js.map +1 -1
- package/build/browser/MinimalClientContext.d.ts +1 -1
- package/build/browser/MinimalClientContext.d.ts.map +1 -1
- package/build/browser/__unstable/ConjureSupport.js +5 -5
- package/build/browser/__unstable/ConjureSupport.js.map +1 -1
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.d.ts +1 -6
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +1 -1
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js +2 -2
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
- package/build/browser/actions/actions.test.js +19 -0
- package/build/browser/actions/actions.test.js.map +1 -1
- package/build/browser/actions/applyAction.js +1 -1
- package/build/browser/actions/applyAction.js.map +1 -1
- package/build/browser/createClient.d.ts +1 -1
- package/build/browser/createClient.d.ts.map +1 -1
- package/build/browser/createClient.js +53 -19
- package/build/browser/createClient.js.map +1 -1
- package/build/browser/createClient.test.js +24 -0
- package/build/browser/createClient.test.js.map +1 -1
- package/build/browser/createGeotimeSeriesProperty.d.ts +1 -1
- package/build/browser/createGeotimeSeriesProperty.d.ts.map +1 -1
- package/build/browser/createGeotimeSeriesProperty.js +4 -1
- package/build/browser/createGeotimeSeriesProperty.js.map +1 -1
- package/build/browser/createMinimalClient.js +9 -4
- package/build/browser/createMinimalClient.js.map +1 -1
- package/build/browser/createPlatformClient.d.ts +1 -1
- package/build/browser/createPlatformClient.d.ts.map +1 -1
- package/build/browser/createTimeseriesProperty.d.ts.map +1 -1
- package/build/browser/fetchMetadata.test.js +14 -0
- package/build/browser/fetchMetadata.test.js.map +1 -1
- package/build/browser/index.d.ts +2 -2
- package/build/browser/index.d.ts.map +1 -1
- package/build/browser/index.js +1 -1
- package/build/browser/index.js.map +1 -1
- package/build/browser/intellisense.test.js +1 -1
- package/build/browser/intellisense.test.js.map +1 -1
- package/build/browser/internal/conversions/legacyToModernSingleAggregationResult.js +1 -1
- package/build/browser/internal/conversions/legacyToModernSingleAggregationResult.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js +11 -3
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js +208 -7
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
- package/build/browser/object/AttachmentUpload.d.ts.map +1 -1
- package/build/browser/object/AttachmentUpload.js +6 -0
- package/build/browser/object/AttachmentUpload.js.map +1 -1
- package/build/browser/object/aggregate.js +4 -5
- package/build/browser/object/aggregate.js.map +1 -1
- package/build/browser/object/aggregate.test.js +6 -9
- package/build/browser/object/aggregate.test.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.d.ts +1 -10
- package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.d.ts.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts +0 -7
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js +4 -3
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +41 -85
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js +0 -6
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +57 -86
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js +2 -2
- package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js +14 -38
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.js +42 -6
- package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.test.js +177 -45
- package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/browser/object/fetchPage.d.ts.map +1 -1
- package/build/browser/object/fetchPage.js +34 -23
- package/build/browser/object/fetchPage.js.map +1 -1
- package/build/browser/object/fetchPage.test.js +75 -1
- package/build/browser/object/fetchPage.test.js.map +1 -1
- package/build/browser/object/object.test.d.ts.map +1 -1
- package/build/browser/object/object.test.js +25 -1
- package/build/browser/object/object.test.js.map +1 -1
- package/build/browser/object/timeseries.test.js +10 -0
- package/build/browser/object/timeseries.test.js.map +1 -1
- package/build/browser/objectSet/InterfaceObjectSet.test.d.ts +2 -0
- package/build/browser/objectSet/InterfaceObjectSet.test.d.ts.map +1 -0
- package/build/browser/objectSet/InterfaceObjectSet.test.js +61 -0
- package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -0
- package/build/browser/objectSet/ObjectSet.test.js +149 -48
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js +136 -74
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +150 -42
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js +10 -8
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/objectSet/toConjureObjectSet.js +2 -0
- package/build/browser/objectSet/toConjureObjectSet.js.map +1 -1
- package/build/browser/ontology/makeConjureContext.d.ts +1 -1
- package/build/browser/ontology/makeConjureContext.d.ts.map +1 -1
- package/build/browser/queries/applyQuery.d.ts.map +1 -1
- package/build/browser/queries/applyQuery.js +1 -2
- package/build/browser/queries/applyQuery.js.map +1 -1
- package/build/browser/queries/queries.test.js +30 -2
- package/build/browser/queries/queries.test.js.map +1 -1
- package/build/browser/tsserver.js +1 -1
- package/build/browser/tsserver.js.map +1 -1
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/browser/util/datetimeConverters.d.ts +22 -0
- package/build/browser/util/datetimeConverters.d.ts.map +1 -0
- package/build/browser/util/datetimeConverters.js +55 -0
- package/build/browser/util/datetimeConverters.js.map +1 -0
- package/build/browser/util/datetimeConverters.test.d.ts +2 -0
- package/build/browser/util/datetimeConverters.test.d.ts.map +1 -0
- package/build/browser/util/datetimeConverters.test.js +75 -0
- package/build/browser/util/datetimeConverters.test.js.map +1 -0
- package/build/browser/util/objectSetUtils.d.ts +4 -0
- package/build/browser/util/objectSetUtils.d.ts.map +1 -0
- package/build/browser/util/objectSetUtils.js +25 -0
- package/build/browser/util/objectSetUtils.js.map +1 -0
- package/build/browser/util/timeseriesUtils.d.ts +1 -1
- package/build/browser/util/timeseriesUtils.d.ts.map +1 -1
- package/build/browser/util/timeseriesUtils.js +1 -1
- package/build/browser/util/timeseriesUtils.js.map +1 -1
- package/build/esm/Client.d.ts +8 -21
- package/build/esm/Client.d.ts.map +1 -1
- package/build/esm/Client.js +2 -1
- package/build/esm/Client.js.map +1 -1
- package/build/esm/MinimalClientContext.d.ts +1 -1
- package/build/esm/MinimalClientContext.d.ts.map +1 -1
- package/build/esm/__unstable/ConjureSupport.js +5 -5
- package/build/esm/__unstable/ConjureSupport.js.map +1 -1
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.d.ts +1 -6
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +1 -1
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js +2 -2
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
- package/build/esm/actions/actions.test.js +19 -0
- package/build/esm/actions/actions.test.js.map +1 -1
- package/build/esm/actions/applyAction.js +1 -1
- package/build/esm/actions/applyAction.js.map +1 -1
- package/build/esm/createClient.d.ts +1 -1
- package/build/esm/createClient.d.ts.map +1 -1
- package/build/esm/createClient.js +53 -19
- package/build/esm/createClient.js.map +1 -1
- package/build/esm/createClient.test.js +24 -0
- package/build/esm/createClient.test.js.map +1 -1
- package/build/esm/createGeotimeSeriesProperty.d.ts +1 -1
- package/build/esm/createGeotimeSeriesProperty.d.ts.map +1 -1
- package/build/esm/createGeotimeSeriesProperty.js +4 -1
- package/build/esm/createGeotimeSeriesProperty.js.map +1 -1
- package/build/esm/createMinimalClient.js +9 -4
- package/build/esm/createMinimalClient.js.map +1 -1
- package/build/esm/createPlatformClient.d.ts +1 -1
- package/build/esm/createPlatformClient.d.ts.map +1 -1
- package/build/esm/createTimeseriesProperty.d.ts.map +1 -1
- package/build/esm/fetchMetadata.test.js +14 -0
- package/build/esm/fetchMetadata.test.js.map +1 -1
- package/build/esm/index.d.ts +2 -2
- package/build/esm/index.d.ts.map +1 -1
- package/build/esm/index.js +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/intellisense.test.js +1 -1
- package/build/esm/intellisense.test.js.map +1 -1
- package/build/esm/internal/conversions/legacyToModernSingleAggregationResult.js +1 -1
- package/build/esm/internal/conversions/legacyToModernSingleAggregationResult.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js +11 -3
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js +208 -7
- package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
- package/build/esm/object/AttachmentUpload.d.ts.map +1 -1
- package/build/esm/object/AttachmentUpload.js +6 -0
- package/build/esm/object/AttachmentUpload.js.map +1 -1
- package/build/esm/object/aggregate.js +4 -5
- package/build/esm/object/aggregate.js.map +1 -1
- package/build/esm/object/aggregate.test.js +6 -9
- package/build/esm/object/aggregate.test.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.d.ts +1 -10
- package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.d.ts.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts +0 -7
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js +4 -3
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +41 -85
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js +0 -6
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +57 -86
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js +2 -2
- package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js +14 -38
- package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.js +42 -6
- package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.test.js +177 -45
- package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/esm/object/fetchPage.d.ts.map +1 -1
- package/build/esm/object/fetchPage.js +34 -23
- package/build/esm/object/fetchPage.js.map +1 -1
- package/build/esm/object/fetchPage.test.js +75 -1
- package/build/esm/object/fetchPage.test.js.map +1 -1
- package/build/esm/object/object.test.d.ts.map +1 -1
- package/build/esm/object/object.test.js +25 -1
- package/build/esm/object/object.test.js.map +1 -1
- package/build/esm/object/timeseries.test.js +10 -0
- package/build/esm/object/timeseries.test.js.map +1 -1
- package/build/esm/objectSet/InterfaceObjectSet.test.d.ts +2 -0
- package/build/esm/objectSet/InterfaceObjectSet.test.d.ts.map +1 -0
- package/build/esm/objectSet/InterfaceObjectSet.test.js +61 -0
- package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -0
- package/build/esm/objectSet/ObjectSet.test.js +149 -48
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js +136 -77
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +150 -42
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js +10 -8
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/objectSet/toConjureObjectSet.js +2 -0
- package/build/esm/objectSet/toConjureObjectSet.js.map +1 -1
- package/build/esm/ontology/makeConjureContext.d.ts +1 -1
- package/build/esm/ontology/makeConjureContext.d.ts.map +1 -1
- package/build/esm/queries/applyQuery.d.ts.map +1 -1
- package/build/esm/queries/applyQuery.js +1 -2
- package/build/esm/queries/applyQuery.js.map +1 -1
- package/build/esm/queries/queries.test.js +30 -2
- package/build/esm/queries/queries.test.js.map +1 -1
- package/build/esm/tsserver.js +1 -1
- package/build/esm/tsserver.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/esm/util/datetimeConverters.d.ts +22 -0
- package/build/esm/util/datetimeConverters.d.ts.map +1 -0
- package/build/esm/util/datetimeConverters.js +55 -0
- package/build/esm/util/datetimeConverters.js.map +1 -0
- package/build/esm/util/datetimeConverters.test.d.ts +2 -0
- package/build/esm/util/datetimeConverters.test.d.ts.map +1 -0
- package/build/esm/util/datetimeConverters.test.js +75 -0
- package/build/esm/util/datetimeConverters.test.js.map +1 -0
- package/build/esm/util/objectSetUtils.d.ts +4 -0
- package/build/esm/util/objectSetUtils.d.ts.map +1 -0
- package/build/esm/util/objectSetUtils.js +25 -0
- package/build/esm/util/objectSetUtils.js.map +1 -0
- package/build/esm/util/timeseriesUtils.d.ts +1 -1
- package/build/esm/util/timeseriesUtils.d.ts.map +1 -1
- package/build/esm/util/timeseriesUtils.js +1 -1
- package/build/esm/util/timeseriesUtils.js.map +1 -1
- package/package.json +24 -20
|
@@ -20,11 +20,10 @@ import { modernToLegacyAggregationClause } from "../internal/conversions/modernT
|
|
|
20
20
|
import { modernToLegacyGroupByClause } from "../internal/conversions/modernToLegacyGroupByClause.js";
|
|
21
21
|
import { modernToLegacyWhereClause } from "../internal/conversions/modernToLegacyWhereClause.js";
|
|
22
22
|
import { addUserAgentAndRequestContextHeaders } from "../util/addUserAgentAndRequestContextHeaders.js";
|
|
23
|
+
import { resolveBaseObjectSetType } from "../util/objectSetUtils.js";
|
|
23
24
|
/** @internal */
|
|
24
|
-
export async function aggregate(clientCtx, objectType, objectSet = {
|
|
25
|
-
|
|
26
|
-
objectType: objectType["apiName"]
|
|
27
|
-
}, req) {
|
|
25
|
+
export async function aggregate(clientCtx, objectType, objectSet = resolveBaseObjectSetType(objectType), req) {
|
|
26
|
+
resolveBaseObjectSetType(objectType);
|
|
28
27
|
const body = {
|
|
29
28
|
aggregation: modernToLegacyAggregationClause(req.$select),
|
|
30
29
|
groupBy: [],
|
|
@@ -42,7 +41,7 @@ export async function aggregate(clientCtx, objectType, objectSet = {
|
|
|
42
41
|
aggregation: body.aggregation
|
|
43
42
|
});
|
|
44
43
|
if (!req.$groupBy) {
|
|
45
|
-
!(result.data.length === 1) ? invariant(false, "no group by clause should mean only one data result") : void 0;
|
|
44
|
+
!(result.data.length === 1) ? process.env.NODE_ENV !== "production" ? invariant(false, "no group by clause should mean only one data result") : invariant(false) : void 0;
|
|
46
45
|
return {
|
|
47
46
|
...aggregationToCountResult(result.data[0]),
|
|
48
47
|
...legacyToModernSingleAggregationResult(result.data[0])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.js","names":["OntologiesV2","invariant","legacyToModernSingleAggregationResult","modernToLegacyAggregationClause","modernToLegacyGroupByClause","modernToLegacyWhereClause","addUserAgentAndRequestContextHeaders","aggregate","clientCtx","objectType","objectSet","
|
|
1
|
+
{"version":3,"file":"aggregate.js","names":["OntologiesV2","invariant","legacyToModernSingleAggregationResult","modernToLegacyAggregationClause","modernToLegacyGroupByClause","modernToLegacyWhereClause","addUserAgentAndRequestContextHeaders","resolveBaseObjectSetType","aggregate","clientCtx","objectType","objectSet","req","body","aggregation","$select","groupBy","where","undefined","$groupBy","$where","result","OntologyObjectSets","ontologyRid","data","length","process","env","NODE_ENV","aggregationToCountResult","ret","map","entry","$group","group","aggregateResult","metrics","name","$count","value"],"sources":["aggregate.js"],"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 */\nimport * as OntologiesV2 from \"@osdk/internal.foundry.ontologiesv2\";\nimport invariant from \"tiny-invariant\";\nimport { legacyToModernSingleAggregationResult } from \"../internal/conversions/legacyToModernSingleAggregationResult.js\";\nimport { modernToLegacyAggregationClause } from \"../internal/conversions/modernToLegacyAggregationClause.js\";\nimport { modernToLegacyGroupByClause } from \"../internal/conversions/modernToLegacyGroupByClause.js\";\nimport { modernToLegacyWhereClause } from \"../internal/conversions/modernToLegacyWhereClause.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n/** @internal */\nexport async function aggregate(clientCtx, objectType, objectSet = resolveBaseObjectSetType(objectType), req) {\n const resolvedObjectSet = resolveBaseObjectSetType(objectType);\n const body = {\n aggregation: modernToLegacyAggregationClause(req.$select),\n groupBy: [],\n where: undefined,\n };\n if (req.$groupBy) {\n body.groupBy = modernToLegacyGroupByClause(req.$groupBy);\n }\n if (req.$where) {\n body.where = modernToLegacyWhereClause(req.$where, objectType);\n }\n const result = await OntologiesV2.OntologyObjectSets.aggregate(addUserAgentAndRequestContextHeaders(clientCtx, objectType), await clientCtx.ontologyRid, {\n objectSet,\n groupBy: body.groupBy,\n aggregation: body.aggregation,\n });\n if (!req.$groupBy) {\n invariant(result.data.length === 1, \"no group by clause should mean only one data result\");\n return {\n ...aggregationToCountResult(result.data[0]),\n ...legacyToModernSingleAggregationResult(result.data[0]),\n };\n }\n const ret = result.data\n .map((entry) => {\n return {\n $group: entry.group,\n ...aggregationToCountResult(entry),\n ...legacyToModernSingleAggregationResult(entry),\n };\n }); // fixme\n return ret; // FIXME\n}\nfunction aggregationToCountResult(entry) {\n for (const aggregateResult of entry.metrics) {\n if (aggregateResult.name === \"count\") {\n return { $count: aggregateResult.value };\n }\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,KAAKA,YAAY,MAAM,qCAAqC;AACnE,OAAOC,SAAS,MAAM,gBAAgB;AACtC,SAASC,qCAAqC,QAAQ,kEAAkE;AACxH,SAASC,+BAA+B,QAAQ,4DAA4D;AAC5G,SAASC,2BAA2B,QAAQ,wDAAwD;AACpG,SAASC,yBAAyB,QAAQ,sDAAsD;AAChG,SAASC,oCAAoC,QAAQ,iDAAiD;AACtG,SAASC,wBAAwB,QAAQ,2BAA2B;AACpE;AACA,OAAO,eAAeC,SAASA,CAACC,SAAS,EAAEC,UAAU,EAAEC,SAAS,GAAGJ,wBAAwB,CAACG,UAAU,CAAC,EAAEE,GAAG,EAAE;EAChFL,wBAAwB,CAACG,UAAU,CAAC;EAC9D,MAAMG,IAAI,GAAG;IACTC,WAAW,EAAEX,+BAA+B,CAACS,GAAG,CAACG,OAAO,CAAC;IACzDC,OAAO,EAAE,EAAE;IACXC,KAAK,EAAEC;EACX,CAAC;EACD,IAAIN,GAAG,CAACO,QAAQ,EAAE;IACdN,IAAI,CAACG,OAAO,GAAGZ,2BAA2B,CAACQ,GAAG,CAACO,QAAQ,CAAC;EAC5D;EACA,IAAIP,GAAG,CAACQ,MAAM,EAAE;IACZP,IAAI,CAACI,KAAK,GAAGZ,yBAAyB,CAACO,GAAG,CAACQ,MAAM,EAAEV,UAAU,CAAC;EAClE;EACA,MAAMW,MAAM,GAAG,MAAMrB,YAAY,CAACsB,kBAAkB,CAACd,SAAS,CAACF,oCAAoC,CAACG,SAAS,EAAEC,UAAU,CAAC,EAAE,MAAMD,SAAS,CAACc,WAAW,EAAE;IACrJZ,SAAS;IACTK,OAAO,EAAEH,IAAI,CAACG,OAAO;IACrBF,WAAW,EAAED,IAAI,CAACC;EACtB,CAAC,CAAC;EACF,IAAI,CAACF,GAAG,CAACO,QAAQ,EAAE;IACf,EAAUE,MAAM,CAACG,IAAI,CAACC,MAAM,KAAK,CAAC,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAlC3B,SAAS,QAA2B,qDAAqD,IAAzFA,SAAS;IACT,OAAO;MACH,GAAG4B,wBAAwB,CAACR,MAAM,CAACG,IAAI,CAAC,CAAC,CAAC,CAAC;MAC3C,GAAGtB,qCAAqC,CAACmB,MAAM,CAACG,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;EACL;EACA,MAAMM,GAAG,GAAGT,MAAM,CAACG,IAAI,CAClBO,GAAG,CAAEC,KAAK,IAAK;IAChB,OAAO;MACHC,MAAM,EAAED,KAAK,CAACE,KAAK;MACnB,GAAGL,wBAAwB,CAACG,KAAK,CAAC;MAClC,GAAG9B,qCAAqC,CAAC8B,KAAK;IAClD,CAAC;EACL,CAAC,CAAC,CAAC,CAAC;EACJ,OAAOF,GAAG,CAAC,CAAC;AAChB;AACA,SAASD,wBAAwBA,CAACG,KAAK,EAAE;EACrC,KAAK,MAAMG,eAAe,IAAIH,KAAK,CAACI,OAAO,EAAE;IACzC,IAAID,eAAe,CAACE,IAAI,KAAK,OAAO,EAAE;MAClC,OAAO;QAAEC,MAAM,EAAEH,eAAe,CAACI;MAAM,CAAC;IAC5C;EACJ;AACJ","ignoreList":[]}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
import { objectTypeWithAllPropertyTypes, Todo } from "@osdk/client.test.ontology";
|
|
17
17
|
import { expectType } from "ts-expect";
|
|
18
18
|
import { beforeAll, describe, expect, expectTypeOf, it, vi } from "vitest";
|
|
19
|
+
import { createClient } from "../createClient.js";
|
|
19
20
|
import { createMinimalClient } from "../createMinimalClient.js";
|
|
20
21
|
import { aggregate } from "./aggregate.js";
|
|
21
22
|
const metadata = {
|
|
@@ -26,6 +27,7 @@ const metadata = {
|
|
|
26
27
|
};
|
|
27
28
|
let mockFetch;
|
|
28
29
|
let clientCtx;
|
|
30
|
+
let client;
|
|
29
31
|
beforeAll(() => {
|
|
30
32
|
mockFetch = vi.fn();
|
|
31
33
|
mockFetch.mockResolvedValue({
|
|
@@ -33,7 +35,8 @@ beforeAll(() => {
|
|
|
33
35
|
status: 200,
|
|
34
36
|
json: () => new Promise(resolve => resolve(aggregationResponse))
|
|
35
37
|
});
|
|
36
|
-
clientCtx = createMinimalClient(metadata, "https://host.com", async () => "", {}, mockFetch);
|
|
38
|
+
clientCtx = createMinimalClient(metadata, "https://host.com", async () => "myAccessToken", {}, mockFetch);
|
|
39
|
+
client = createClient("https://host.com", metadata.ontologyRid, async () => "", undefined, mockFetch);
|
|
37
40
|
});
|
|
38
41
|
const aggregationResponse = {
|
|
39
42
|
accuracy: "APPROXIMATE",
|
|
@@ -108,10 +111,7 @@ describe("aggregate", () => {
|
|
|
108
111
|
expectType(notGrouped.id.avg);
|
|
109
112
|
expectType(notGrouped.$count);
|
|
110
113
|
expectType(false); // subSelect should hide unused keys
|
|
111
|
-
const grouped = await aggregate(
|
|
112
|
-
type: "base",
|
|
113
|
-
objectType: "ToDo"
|
|
114
|
-
}, {
|
|
114
|
+
const grouped = await client(objectTypeWithAllPropertyTypes).aggregate({
|
|
115
115
|
$select: {
|
|
116
116
|
"id:approximateDistinct": "unordered",
|
|
117
117
|
"id:exactDistinct": "unordered",
|
|
@@ -373,10 +373,7 @@ describe("aggregate", () => {
|
|
|
373
373
|
expectType(false); // subselect should hide unused keys
|
|
374
374
|
});
|
|
375
375
|
it("prohibits ordered select with multiple groupBy", async () => {
|
|
376
|
-
aggregate(
|
|
377
|
-
type: "base",
|
|
378
|
-
objectType: "ToDo"
|
|
379
|
-
}, {
|
|
376
|
+
client(Todo).aggregate({
|
|
380
377
|
$select: {
|
|
381
378
|
// @ts-expect-error
|
|
382
379
|
"id:max": "desc",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.test.js","names":["objectTypeWithAllPropertyTypes","Todo","expectType","beforeAll","describe","expect","expectTypeOf","it","vi","createMinimalClient","aggregate","metadata","expectsClientVersion","ontologyRid","ontologyApiName","userAgent","mockFetch","clientCtx","fn","mockResolvedValue","ok","status","json","Promise","resolve","aggregationResponse","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","$group","wrongSelectKey","wrongKey","toBeCallableWith","direction","timestamp"],"sources":["aggregate.test.js"],"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 */\nimport { objectTypeWithAllPropertyTypes, Todo, } from \"@osdk/client.test.ontology\";\nimport { expectType } from \"ts-expect\";\nimport { beforeAll, describe, expect, expectTypeOf, it, vi, } from \"vitest\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport { aggregate } from \"./aggregate.js\";\nconst metadata = {\n expectsClientVersion: \"0.0.0\",\n ontologyRid: \"ri.a.b.c.d\",\n ontologyApiName: \"apiName\",\n userAgent: \"\",\n};\nlet mockFetch;\nlet clientCtx;\nbeforeAll(() => {\n mockFetch = vi.fn();\n mockFetch.mockResolvedValue({\n ok: true,\n status: 200,\n json: () => new Promise((resolve) => resolve(aggregationResponse)),\n });\n clientCtx = createMinimalClient(metadata, \"https://host.com\", async () => \"\", {}, mockFetch);\n});\nconst aggregationResponse = {\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};\ndescribe(\"aggregate\", () => {\n it(\"works\", async () => {\n expectTypeOf().toEqualTypeOf;\n const notGrouped = await aggregate(clientCtx, objectTypeWithAllPropertyTypes, {\n type: \"base\",\n objectType: \"ToDo\",\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 expect(mockFetch).toHaveBeenCalledWith(\"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\", {\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 expectType(notGrouped.string.approximateDistinct);\n expectType(notGrouped.string.exactDistinct);\n expectType(notGrouped.id.max);\n expectType(notGrouped.id.avg);\n expectType(notGrouped.$count);\n expectType(false); // subSelect should hide unused keys\n const grouped = await aggregate(clientCtx, objectTypeWithAllPropertyTypes, {\n type: \"base\",\n objectType: \"ToDo\",\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 },\n });\n expectType(grouped);\n expectType(grouped[0].$group.string);\n expectType(grouped[0].id.approximateDistinct);\n expectType(grouped[0].id.exactDistinct);\n expectType(grouped[0].$group.id);\n expectType(grouped[0].$count);\n expectType(grouped[0].$group.integer);\n expectType(grouped[0].$group.short);\n expectType(grouped[0].$group.float);\n expectType(grouped[0].$group.dateTime);\n expectType(grouped[0].$group.date);\n expectType(grouped[0].$group.boolean);\n expectType({\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 expectType({\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: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n });\n expectTypeOf().toBeCallableWith(clientCtx, objectTypeWithAllPropertyTypes, {\n type: \"base\",\n objectType: \"ToDo\",\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 expectType({\n dateTime: { $duration: [10, \"seconds\"] },\n date: { $duration: [1, \"years\"] },\n });\n // Can't use value greater than 1 for years\n expectType({\n // @ts-expect-error\n date: { $duration: [10, \"years\"] },\n });\n // Can't use arbitrary string for time unit\n expectType({\n // @ts-expect-error\n dateTime: { $duration: [1, \"nonexistentTimeUnit\"] },\n });\n // Can't use time unit smaller than days for date type\n expectType({\n // @ts-expect-error\n date: { $duration: [1, \"seconds\"] },\n });\n });\n it(\"works with $orderBy (no groups)\", async () => {\n const notGrouped = await aggregate(clientCtx, objectTypeWithAllPropertyTypes, {\n type: \"base\",\n objectType: \"ToDo\",\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 expect(mockFetch).toHaveBeenCalledWith(\"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\", {\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 expectType(notGrouped.string.approximateDistinct);\n expectType(notGrouped.id.exactDistinct);\n expectType(notGrouped.id.max);\n expectType(notGrouped.id.avg);\n expectType(notGrouped.$count);\n expectType(false); // subselect should hide unused keys\n });\n it(\"works with $orderBy (1 group)\", async () => {\n const grouped = await aggregate(clientCtx, objectTypeWithAllPropertyTypes, {\n type: \"base\",\n objectType: \"ToDo\",\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 expect(mockFetch).toHaveBeenCalledWith(\"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\", {\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 expectType(grouped[0].string.approximateDistinct);\n expectType(grouped[0].id.max);\n expectType(grouped[0].id.avg);\n expectType(grouped[0].$count);\n expectType(grouped[0].string.exactDistinct);\n expectType(false); // subselect should hide unused keys\n });\n it(\"prohibits ordered select with multiple groupBy\", async () => {\n aggregate(clientCtx, Todo, {\n type: \"base\",\n objectType: \"ToDo\",\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 it(\"works with where: todo\", async () => {\n const f = {\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","$group","wrongSelectKey","wrongKey","toBeCallableWith","direction","timestamp"],"sources":["aggregate.test.js"],"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 */\nimport { objectTypeWithAllPropertyTypes, Todo, } from \"@osdk/client.test.ontology\";\nimport { expectType } from \"ts-expect\";\nimport { beforeAll, describe, expect, expectTypeOf, it, vi, } from \"vitest\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport { aggregate } from \"./aggregate.js\";\nconst metadata = {\n expectsClientVersion: \"0.0.0\",\n ontologyRid: \"ri.a.b.c.d\",\n ontologyApiName: \"apiName\",\n userAgent: \"\",\n};\nlet mockFetch;\nlet clientCtx;\nlet client;\nbeforeAll(() => {\n mockFetch = vi.fn();\n mockFetch.mockResolvedValue({\n ok: true,\n status: 200,\n json: () => new Promise((resolve) => resolve(aggregationResponse)),\n });\n clientCtx = createMinimalClient(metadata, \"https://host.com\", async () => \"myAccessToken\", {}, mockFetch);\n client = createClient(\"https://host.com\", metadata.ontologyRid, async () => \"\", undefined, mockFetch);\n});\nconst aggregationResponse = {\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};\ndescribe(\"aggregate\", () => {\n it(\"works\", async () => {\n expectTypeOf().toEqualTypeOf;\n const notGrouped = await aggregate(clientCtx, objectTypeWithAllPropertyTypes, {\n type: \"base\",\n objectType: \"ToDo\",\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 expect(mockFetch).toHaveBeenCalledWith(\"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\", {\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 expectType(notGrouped.string.approximateDistinct);\n expectType(notGrouped.string.exactDistinct);\n expectType(notGrouped.id.max);\n expectType(notGrouped.id.avg);\n expectType(notGrouped.$count);\n expectType(false); // subSelect should hide unused keys\n const grouped = await client(objectTypeWithAllPropertyTypes).aggregate({\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 },\n });\n expectType(grouped);\n expectType(grouped[0].$group.string);\n expectType(grouped[0].id.approximateDistinct);\n expectType(grouped[0].id.exactDistinct);\n expectType(grouped[0].$group.id);\n expectType(grouped[0].$count);\n expectType(grouped[0].$group.integer);\n expectType(grouped[0].$group.short);\n expectType(grouped[0].$group.float);\n expectType(grouped[0].$group.dateTime);\n expectType(grouped[0].$group.date);\n expectType(grouped[0].$group.boolean);\n expectType({\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 expectType({\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: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n });\n expectTypeOf().toBeCallableWith(clientCtx, objectTypeWithAllPropertyTypes, {\n type: \"base\",\n objectType: \"ToDo\",\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 expectType({\n dateTime: { $duration: [10, \"seconds\"] },\n date: { $duration: [1, \"years\"] },\n });\n // Can't use value greater than 1 for years\n expectType({\n // @ts-expect-error\n date: { $duration: [10, \"years\"] },\n });\n // Can't use arbitrary string for time unit\n expectType({\n // @ts-expect-error\n dateTime: { $duration: [1, \"nonexistentTimeUnit\"] },\n });\n // Can't use time unit smaller than days for date type\n expectType({\n // @ts-expect-error\n date: { $duration: [1, \"seconds\"] },\n });\n });\n it(\"works with $orderBy (no groups)\", async () => {\n const notGrouped = await aggregate(clientCtx, objectTypeWithAllPropertyTypes, {\n type: \"base\",\n objectType: \"ToDo\",\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 expect(mockFetch).toHaveBeenCalledWith(\"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\", {\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 expectType(notGrouped.string.approximateDistinct);\n expectType(notGrouped.id.exactDistinct);\n expectType(notGrouped.id.max);\n expectType(notGrouped.id.avg);\n expectType(notGrouped.$count);\n expectType(false); // subselect should hide unused keys\n });\n it(\"works with $orderBy (1 group)\", async () => {\n const grouped = await aggregate(clientCtx, objectTypeWithAllPropertyTypes, {\n type: \"base\",\n objectType: \"ToDo\",\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 expect(mockFetch).toHaveBeenCalledWith(\"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\", {\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 expectType(grouped[0].string.approximateDistinct);\n expectType(grouped[0].id.max);\n expectType(grouped[0].id.avg);\n expectType(grouped[0].$count);\n expectType(grouped[0].string.exactDistinct);\n expectType(false); // subselect should hide unused keys\n });\n it(\"prohibits ordered select with multiple groupBy\", async () => {\n client(Todo).aggregate({\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 it(\"works with where: todo\", async () => {\n const f = {\n $select: {\n \"office:approximateDistinct\": \"unordered\",\n },\n };\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import type { FetchedObjectTypeDefinition } from "../../ontology/OntologyProvider.js";
|
|
3
|
-
import type { InterfaceDefRef, UnderlyingOsdkObject } from "./InternalSymbols.js";
|
|
4
|
-
import type { ObjectHolder } from "./ObjectHolder.js";
|
|
5
|
-
export interface InterfaceHolderOwnProps<Q extends FetchedObjectTypeDefinition> {
|
|
6
|
-
[UnderlyingOsdkObject]: Osdk<Q> & ObjectHolder<Q>;
|
|
7
|
-
[InterfaceDefRef]: InterfaceMetadata;
|
|
8
|
-
}
|
|
9
|
-
export interface InterfaceHolder<Q extends FetchedObjectTypeDefinition> extends InterfaceHolderOwnProps<Q> {
|
|
10
|
-
}
|
|
1
|
+
export {};
|
|
11
2
|
//# sourceMappingURL=InterfaceHolder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InterfaceHolder.d.ts","sourceRoot":"","sources":["../../../../src/object/convertWireToOsdkObjects/InterfaceHolder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InterfaceHolder.d.ts","sourceRoot":"","sources":["../../../../src/object/convertWireToOsdkObjects/InterfaceHolder.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
import type { ObjectOrInterfaceDefinition, OsdkBase } from "@osdk/api";
|
|
2
|
-
export declare const UnderlyingOsdkObject: unique symbol;
|
|
3
|
-
export declare const ObjectDefRef: unique symbol;
|
|
4
|
-
export declare const InterfaceDefRef: unique symbol;
|
|
5
|
-
/** A symbol for getting the raw data object off of the holder an osdk object proxy points to */
|
|
6
|
-
export declare const RawObject: unique symbol;
|
|
7
|
-
export declare const ClientRef: unique symbol;
|
|
8
|
-
export declare const CachedPropertiesRef: unique symbol;
|
|
9
2
|
export interface HolderBase<T extends ObjectOrInterfaceDefinition> {
|
|
10
3
|
[UnderlyingOsdkObject]: OsdkBase<any>;
|
|
11
4
|
[ObjectDefRef]?: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalSymbols.d.ts","sourceRoot":"","sources":["../../../../src/object/convertWireToOsdkObjects/InternalSymbols.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,2BAA2B,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"InternalSymbols.d.ts","sourceRoot":"","sources":["../../../../src/object/convertWireToOsdkObjects/InternalSymbols.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,2BAA2B,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAsBvE,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,2BAA2B;IAC/D,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;CACvB"}
|
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
/** @internal */
|
|
16
17
|
export const UnderlyingOsdkObject = Symbol("Underlying Object");
|
|
18
|
+
/** @internal */
|
|
17
19
|
export const ObjectDefRef = Symbol("ObjectDefinition");
|
|
20
|
+
/** @internal */
|
|
18
21
|
export const InterfaceDefRef = Symbol("InterfaceDefinition");
|
|
19
|
-
/**
|
|
20
|
-
export const RawObject = Symbol("RawObject");
|
|
22
|
+
/** @internal */
|
|
21
23
|
export const ClientRef = Symbol("ClientRef");
|
|
22
|
-
export const CachedPropertiesRef = Symbol("CachedProperties");
|
|
23
24
|
//# sourceMappingURL=InternalSymbols.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalSymbols.js","names":["UnderlyingOsdkObject","Symbol","ObjectDefRef","InterfaceDefRef","
|
|
1
|
+
{"version":3,"file":"InternalSymbols.js","names":["UnderlyingOsdkObject","Symbol","ObjectDefRef","InterfaceDefRef","ClientRef"],"sources":["InternalSymbols.js"],"sourcesContent":["/*\n * Copyright 2024 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/** @internal */\nexport const UnderlyingOsdkObject = Symbol(process.env.MODE !== \"production\" ? \"Underlying Object\" : undefined);\n/** @internal */\nexport const ObjectDefRef = Symbol(process.env.MODE !== \"production\" ? \"ObjectDefinition\" : undefined);\n/** @internal */\nexport const InterfaceDefRef = Symbol(process.env.MODE !== \"production\" ? \"InterfaceDefinition\" : undefined);\n/** @internal */\nexport const ClientRef = Symbol(process.env.MODE !== \"production\" ? \"ClientRef\" : undefined);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,oBAAoB,GAAGC,MAAM,CAAqC,mBAA+B,CAAC;AAC/G;AACA,OAAO,MAAMC,YAAY,GAAGD,MAAM,CAAqC,kBAA8B,CAAC;AACtG;AACA,OAAO,MAAME,eAAe,GAAGF,MAAM,CAAqC,qBAAiC,CAAC;AAC5G;AACA,OAAO,MAAMG,SAAS,GAAGH,MAAM,CAAqC,WAAuB,CAAC","ignoreList":[]}
|
|
@@ -14,95 +14,51 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { extractNamespace } from "../../internal/conversions/modernToLegacyWhereClause.js";
|
|
17
|
-
import { createSimpleCache } from "../SimpleCache.js";
|
|
18
17
|
import { InterfaceDefRef, ObjectDefRef, UnderlyingOsdkObject } from "./InternalSymbols.js";
|
|
19
|
-
const handlerCache = createSimpleCache(new WeakMap(), createInterfaceProxyHandler);
|
|
20
18
|
/** @internal */
|
|
21
19
|
export function createOsdkInterface(underlying, interfaceDef) {
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
[
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
case "$objectType":
|
|
40
|
-
case "$rid":
|
|
41
|
-
return underlying[p] != null ? Reflect.getOwnPropertyDescriptor(underlying, p) : undefined;
|
|
42
|
-
case "$apiName":
|
|
43
|
-
return {
|
|
44
|
-
enumerable: true,
|
|
45
|
-
configurable: true,
|
|
46
|
-
value: target[InterfaceDefRef].apiName
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
const [objApiNamespace] = extractNamespace(newDef.apiName);
|
|
50
|
-
if (objApiNamespace != null) {
|
|
51
|
-
const [apiNamespace, apiName] = extractNamespace(p);
|
|
52
|
-
if (apiNamespace == null) {
|
|
53
|
-
p = `${objApiNamespace}.${apiName}`;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
if (newDef.properties[p] != null) {
|
|
57
|
-
return {
|
|
58
|
-
enumerable: true,
|
|
59
|
-
configurable: true,
|
|
60
|
-
value: underlying[objDef.interfaceMap[newDef.apiName][p]]
|
|
61
|
-
};
|
|
62
|
-
}
|
|
20
|
+
const [objApiNamespace] = extractNamespace(interfaceDef.apiName);
|
|
21
|
+
return Object.freeze(Object.defineProperties({}, {
|
|
22
|
+
// first to minimize hidden classes
|
|
23
|
+
[UnderlyingOsdkObject]: {
|
|
24
|
+
value: underlying
|
|
25
|
+
},
|
|
26
|
+
"$apiName": {
|
|
27
|
+
value: interfaceDef.apiName,
|
|
28
|
+
enumerable: true
|
|
29
|
+
},
|
|
30
|
+
"$as": {
|
|
31
|
+
value: underlying.$as,
|
|
32
|
+
enumerable: false
|
|
33
|
+
},
|
|
34
|
+
"$objectType": {
|
|
35
|
+
value: underlying.$objectType,
|
|
36
|
+
enumerable: "$objectType" in underlying
|
|
63
37
|
},
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
let propNames = Object.keys(newDef.properties);
|
|
68
|
-
if (objApiNamespace != null) {
|
|
69
|
-
propNames = propNames.map(p => {
|
|
70
|
-
const [apiNamespace, apiName] = extractNamespace(p);
|
|
71
|
-
if (apiNamespace === objApiNamespace) {
|
|
72
|
-
p = apiName;
|
|
73
|
-
}
|
|
74
|
-
return p;
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
return ["$apiName", "$objectType", "$primaryKey", ...(underlying["$rid"] ? ["$rid"] : []), "$title", ...propNames];
|
|
38
|
+
"$primaryKey": {
|
|
39
|
+
value: underlying.$primaryKey,
|
|
40
|
+
enumerable: "$primaryKey" in underlying
|
|
78
41
|
},
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
if (newDef.properties[p] != null) {
|
|
102
|
-
const objDef = target[UnderlyingOsdkObject][ObjectDefRef];
|
|
103
|
-
return underlying[objDef.interfaceMap[newDef.apiName][p]];
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
};
|
|
42
|
+
"$title": {
|
|
43
|
+
value: underlying.$title,
|
|
44
|
+
enumerable: "$title" in underlying
|
|
45
|
+
},
|
|
46
|
+
"$rid": {
|
|
47
|
+
value: underlying.$rid,
|
|
48
|
+
enumerable: "$rid" in underlying
|
|
49
|
+
},
|
|
50
|
+
[InterfaceDefRef]: {
|
|
51
|
+
value: interfaceDef
|
|
52
|
+
},
|
|
53
|
+
...Object.fromEntries(Object.keys(interfaceDef.properties).map(p => {
|
|
54
|
+
const objDef = underlying[ObjectDefRef];
|
|
55
|
+
const [apiNamespace, apiName] = extractNamespace(p);
|
|
56
|
+
const targetPropName = objDef.interfaceMap[interfaceDef.apiName][p];
|
|
57
|
+
return [apiNamespace === objApiNamespace ? apiName : p, {
|
|
58
|
+
enumerable: targetPropName in underlying,
|
|
59
|
+
value: underlying[targetPropName]
|
|
60
|
+
}];
|
|
61
|
+
}))
|
|
62
|
+
}));
|
|
107
63
|
}
|
|
108
64
|
//# sourceMappingURL=createOsdkInterface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOsdkInterface.js","names":["extractNamespace","
|
|
1
|
+
{"version":3,"file":"createOsdkInterface.js","names":["extractNamespace","InterfaceDefRef","ObjectDefRef","UnderlyingOsdkObject","createOsdkInterface","underlying","interfaceDef","objApiNamespace","apiName","Object","freeze","defineProperties","value","enumerable","$as","$objectType","$primaryKey","$title","$rid","fromEntries","keys","properties","map","p","objDef","apiNamespace","targetPropName","interfaceMap"],"sources":["createOsdkInterface.js"],"sourcesContent":["/*\n * Copyright 2024 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 */\nimport { extractNamespace } from \"../../internal/conversions/modernToLegacyWhereClause.js\";\nimport { InterfaceDefRef, ObjectDefRef, UnderlyingOsdkObject, } from \"./InternalSymbols.js\";\n/** @internal */\nexport function createOsdkInterface(underlying, interfaceDef) {\n const [objApiNamespace] = extractNamespace(interfaceDef.apiName);\n return Object.freeze(Object.defineProperties({}, {\n // first to minimize hidden classes\n [UnderlyingOsdkObject]: { value: underlying },\n \"$apiName\": { value: interfaceDef.apiName, enumerable: true },\n \"$as\": {\n value: underlying.$as,\n enumerable: false,\n },\n \"$objectType\": {\n value: underlying.$objectType,\n enumerable: \"$objectType\" in underlying,\n },\n \"$primaryKey\": {\n value: underlying.$primaryKey,\n enumerable: \"$primaryKey\" in underlying,\n },\n \"$title\": {\n value: underlying.$title,\n enumerable: \"$title\" in underlying,\n },\n \"$rid\": {\n value: underlying.$rid,\n enumerable: \"$rid\" in underlying,\n },\n [InterfaceDefRef]: { value: interfaceDef },\n ...Object.fromEntries(Object.keys(interfaceDef.properties).map(p => {\n const objDef = underlying[ObjectDefRef];\n const [apiNamespace, apiName] = extractNamespace(p);\n const targetPropName = objDef\n .interfaceMap[interfaceDef.apiName][p];\n return [apiNamespace === objApiNamespace ? apiName : p, {\n enumerable: targetPropName in underlying,\n value: underlying[targetPropName],\n }];\n })),\n }));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,gBAAgB,QAAQ,yDAAyD;AAC1F,SAASC,eAAe,EAAEC,YAAY,EAAEC,oBAAoB,QAAS,sBAAsB;AAC3F;AACA,OAAO,SAASC,mBAAmBA,CAACC,UAAU,EAAEC,YAAY,EAAE;EAC1D,MAAM,CAACC,eAAe,CAAC,GAAGP,gBAAgB,CAACM,YAAY,CAACE,OAAO,CAAC;EAChE,OAAOC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,gBAAgB,CAAC,CAAC,CAAC,EAAE;IAC7C;IACA,CAACR,oBAAoB,GAAG;MAAES,KAAK,EAAEP;IAAW,CAAC;IAC7C,UAAU,EAAE;MAAEO,KAAK,EAAEN,YAAY,CAACE,OAAO;MAAEK,UAAU,EAAE;IAAK,CAAC;IAC7D,KAAK,EAAE;MACHD,KAAK,EAAEP,UAAU,CAACS,GAAG;MACrBD,UAAU,EAAE;IAChB,CAAC;IACD,aAAa,EAAE;MACXD,KAAK,EAAEP,UAAU,CAACU,WAAW;MAC7BF,UAAU,EAAE,aAAa,IAAIR;IACjC,CAAC;IACD,aAAa,EAAE;MACXO,KAAK,EAAEP,UAAU,CAACW,WAAW;MAC7BH,UAAU,EAAE,aAAa,IAAIR;IACjC,CAAC;IACD,QAAQ,EAAE;MACNO,KAAK,EAAEP,UAAU,CAACY,MAAM;MACxBJ,UAAU,EAAE,QAAQ,IAAIR;IAC5B,CAAC;IACD,MAAM,EAAE;MACJO,KAAK,EAAEP,UAAU,CAACa,IAAI;MACtBL,UAAU,EAAE,MAAM,IAAIR;IAC1B,CAAC;IACD,CAACJ,eAAe,GAAG;MAAEW,KAAK,EAAEN;IAAa,CAAC;IAC1C,GAAGG,MAAM,CAACU,WAAW,CAACV,MAAM,CAACW,IAAI,CAACd,YAAY,CAACe,UAAU,CAAC,CAACC,GAAG,CAACC,CAAC,IAAI;MAChE,MAAMC,MAAM,GAAGnB,UAAU,CAACH,YAAY,CAAC;MACvC,MAAM,CAACuB,YAAY,EAAEjB,OAAO,CAAC,GAAGR,gBAAgB,CAACuB,CAAC,CAAC;MACnD,MAAMG,cAAc,GAAGF,MAAM,CACxBG,YAAY,CAACrB,YAAY,CAACE,OAAO,CAAC,CAACe,CAAC,CAAC;MAC1C,OAAO,CAACE,YAAY,KAAKlB,eAAe,GAAGC,OAAO,GAAGe,CAAC,EAAE;QAChDV,UAAU,EAAEa,cAAc,IAAIrB,UAAU;QACxCO,KAAK,EAAEP,UAAU,CAACqB,cAAc;MACpC,CAAC,CAAC;IACV,CAAC,CAAC;EACN,CAAC,CAAC,CAAC;AACP","ignoreList":[]}
|
|
@@ -19,8 +19,6 @@ import { createOsdkInterface } from "./createOsdkInterface.js";
|
|
|
19
19
|
import { ObjectDefRef } from "./InternalSymbols.js";
|
|
20
20
|
describe(createOsdkInterface, () => {
|
|
21
21
|
it("works in the normal case", () => {
|
|
22
|
-
// underlying: Osdk<Q> & ObjectHolder<Q>,
|
|
23
|
-
// interfaceDef: InterfaceMetadata,
|
|
24
22
|
const iface = createOsdkInterface({
|
|
25
23
|
"foo": "hi mom",
|
|
26
24
|
[ObjectDefRef]: {
|
|
@@ -75,8 +73,6 @@ describe(createOsdkInterface, () => {
|
|
|
75
73
|
`);
|
|
76
74
|
});
|
|
77
75
|
it("properly maps apiNamespace", () => {
|
|
78
|
-
// underlying: Osdk<Q> & ObjectHolder<Q>,
|
|
79
|
-
// interfaceDef: InterfaceMetadata,
|
|
80
76
|
const iface = createOsdkInterface({
|
|
81
77
|
"foo": "hi mom",
|
|
82
78
|
[ObjectDefRef]: {
|
|
@@ -131,8 +127,6 @@ describe(createOsdkInterface, () => {
|
|
|
131
127
|
`);
|
|
132
128
|
});
|
|
133
129
|
it("works with mixed namespaces", () => {
|
|
134
|
-
// underlying: Osdk<Q> & ObjectHolder<Q>,
|
|
135
|
-
// interfaceDef: InterfaceMetadata,
|
|
136
130
|
const iface = createOsdkInterface({
|
|
137
131
|
"foo": "hi mom",
|
|
138
132
|
[ObjectDefRef]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOsdkInterface.test.js","names":["describe","expect","it","InterfaceDefinitions","createOsdkInterface","ObjectDefRef","iface","apiName","displayName","interfaceMap","inverseInterfaceMap","links","pluralDisplayName","primaryKeyApiName","primaryKeyType","properties","type","titleProperty","rid","status","implements","Object","keys","toMatchInlineSnapshot","asdf","toBe","JSON","stringify","undefined"],"sources":["createOsdkInterface.test.js"],"sourcesContent":["/*\n * Copyright 2024 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 */\nimport { describe, expect, it } from \"vitest\";\nimport { InterfaceDefinitions, } from \"../../ontology/OntologyProvider.js\";\nimport { createOsdkInterface } from \"./createOsdkInterface.js\";\nimport { ObjectDefRef } from \"./InternalSymbols.js\";\ndescribe(createOsdkInterface, () => {\n it(\"works in the normal case\", () => {\n const underlying = {\n \"foo\": \"hi mom\",\n [ObjectDefRef]: {\n [InterfaceDefinitions]: {},\n apiName: \"Obj\",\n displayName: \"\",\n interfaceMap: {\n \"IFoo\": {\n \"asdf\": \"foo\",\n },\n },\n inverseInterfaceMap: {},\n links: {},\n pluralDisplayName: \"\",\n primaryKeyApiName: \"\",\n primaryKeyType: \"string\",\n properties: {\n \"foo\": {\n type: \"string\",\n },\n },\n type: \"object\",\n titleProperty: \"foo\",\n rid: \"\",\n status: \"ACTIVE\",\n },\n };\n // underlying: Osdk<Q> & ObjectHolder<Q>,\n // interfaceDef: InterfaceMetadata,\n const iface = createOsdkInterface(underlying, {\n \"apiName\": \"IFoo\",\n displayName: \"\",\n links: {},\n properties: {\n \"asdf\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n });\n expect(Object.keys(iface)).toMatchInlineSnapshot(`\n [\n \"$apiName\",\n \"asdf\",\n ]\n `);\n expect(iface.asdf).toBe(\"hi mom\");\n expect(JSON.stringify(iface, undefined, 2)).toMatchInlineSnapshot(`\n \"{\n \"$apiName\": \"IFoo\",\n \"asdf\": \"hi mom\"\n }\"\n `);\n });\n it(\"properly maps apiNamespace\", () => {\n const underlying = {\n \"foo\": \"hi mom\",\n [ObjectDefRef]: {\n [InterfaceDefinitions]: {},\n apiName: \"Obj\",\n displayName: \"\",\n interfaceMap: {\n \"a.IFoo\": {\n \"a.asdf\": \"foo\",\n },\n },\n inverseInterfaceMap: {},\n links: {},\n pluralDisplayName: \"\",\n primaryKeyApiName: \"\",\n primaryKeyType: \"string\",\n properties: {\n \"foo\": {\n type: \"string\",\n },\n },\n type: \"object\",\n titleProperty: \"foo\",\n rid: \"\",\n status: \"ACTIVE\",\n },\n };\n // underlying: Osdk<Q> & ObjectHolder<Q>,\n // interfaceDef: InterfaceMetadata,\n const iface = createOsdkInterface(underlying, {\n \"apiName\": \"a.IFoo\",\n displayName: \"\",\n links: {},\n properties: {\n \"a.asdf\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n });\n expect(Object.keys(iface)).toMatchInlineSnapshot(`\n [\n \"$apiName\",\n \"asdf\",\n ]\n `);\n expect(iface.asdf).toBe(\"hi mom\");\n expect(JSON.stringify(iface, undefined, 2)).toMatchInlineSnapshot(`\n \"{\n \"$apiName\": \"a.IFoo\",\n \"asdf\": \"hi mom\"\n }\"\n `);\n });\n it(\"works with mixed namespaces\", () => {\n const underlying = {\n \"foo\": \"hi mom\",\n [ObjectDefRef]: {\n [InterfaceDefinitions]: {},\n apiName: \"Obj\",\n displayName: \"\",\n interfaceMap: {\n \"a.IFoo\": {\n \"b.asdf\": \"foo\",\n },\n },\n inverseInterfaceMap: {},\n links: {},\n pluralDisplayName: \"\",\n primaryKeyApiName: \"\",\n primaryKeyType: \"string\",\n properties: {\n \"foo\": {\n type: \"string\",\n },\n },\n type: \"object\",\n titleProperty: \"foo\",\n rid: \"\",\n status: \"ACTIVE\",\n },\n };\n // underlying: Osdk<Q> & ObjectHolder<Q>,\n // interfaceDef: InterfaceMetadata,\n const iface = createOsdkInterface(underlying, {\n \"apiName\": \"a.IFoo\",\n displayName: \"\",\n links: {},\n properties: {\n \"b.asdf\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n });\n expect(Object.keys(iface)).toMatchInlineSnapshot(`\n [\n \"$apiName\",\n \"b.asdf\",\n ]\n `);\n expect(iface[\"b.asdf\"]).toBe(\"hi mom\");\n expect(JSON.stringify(iface, undefined, 2)).toMatchInlineSnapshot(`\n \"{\n \"$apiName\": \"a.IFoo\",\n \"b.asdf\": \"hi mom\"\n }\"\n `);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"createOsdkInterface.test.js","names":["describe","expect","it","InterfaceDefinitions","createOsdkInterface","ObjectDefRef","iface","apiName","displayName","interfaceMap","inverseInterfaceMap","links","pluralDisplayName","primaryKeyApiName","primaryKeyType","properties","type","titleProperty","rid","status","implements","Object","keys","toMatchInlineSnapshot","asdf","toBe","JSON","stringify","undefined"],"sources":["createOsdkInterface.test.js"],"sourcesContent":["/*\n * Copyright 2024 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 */\nimport { describe, expect, it } from \"vitest\";\nimport { InterfaceDefinitions, } from \"../../ontology/OntologyProvider.js\";\nimport { createOsdkInterface } from \"./createOsdkInterface.js\";\nimport { ObjectDefRef } from \"./InternalSymbols.js\";\ndescribe(createOsdkInterface, () => {\n it(\"works in the normal case\", () => {\n const underlying = {\n \"foo\": \"hi mom\",\n [ObjectDefRef]: {\n [InterfaceDefinitions]: {},\n apiName: \"Obj\",\n displayName: \"\",\n interfaceMap: {\n \"IFoo\": {\n \"asdf\": \"foo\",\n },\n },\n inverseInterfaceMap: {},\n links: {},\n pluralDisplayName: \"\",\n primaryKeyApiName: \"\",\n primaryKeyType: \"string\",\n properties: {\n \"foo\": {\n type: \"string\",\n },\n },\n type: \"object\",\n titleProperty: \"foo\",\n rid: \"\",\n status: \"ACTIVE\",\n },\n };\n const iface = createOsdkInterface(underlying, {\n \"apiName\": \"IFoo\",\n displayName: \"\",\n links: {},\n properties: {\n \"asdf\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n });\n expect(Object.keys(iface)).toMatchInlineSnapshot(`\n [\n \"$apiName\",\n \"asdf\",\n ]\n `);\n expect(iface.asdf).toBe(\"hi mom\");\n expect(JSON.stringify(iface, undefined, 2)).toMatchInlineSnapshot(`\n \"{\n \"$apiName\": \"IFoo\",\n \"asdf\": \"hi mom\"\n }\"\n `);\n });\n it(\"properly maps apiNamespace\", () => {\n const underlying = {\n \"foo\": \"hi mom\",\n [ObjectDefRef]: {\n [InterfaceDefinitions]: {},\n apiName: \"Obj\",\n displayName: \"\",\n interfaceMap: {\n \"a.IFoo\": {\n \"a.asdf\": \"foo\",\n },\n },\n inverseInterfaceMap: {},\n links: {},\n pluralDisplayName: \"\",\n primaryKeyApiName: \"\",\n primaryKeyType: \"string\",\n properties: {\n \"foo\": {\n type: \"string\",\n },\n },\n type: \"object\",\n titleProperty: \"foo\",\n rid: \"\",\n status: \"ACTIVE\",\n },\n };\n const iface = createOsdkInterface(underlying, {\n \"apiName\": \"a.IFoo\",\n displayName: \"\",\n links: {},\n properties: {\n \"a.asdf\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n });\n expect(Object.keys(iface)).toMatchInlineSnapshot(`\n [\n \"$apiName\",\n \"asdf\",\n ]\n `);\n expect(iface.asdf).toBe(\"hi mom\");\n expect(JSON.stringify(iface, undefined, 2)).toMatchInlineSnapshot(`\n \"{\n \"$apiName\": \"a.IFoo\",\n \"asdf\": \"hi mom\"\n }\"\n `);\n });\n it(\"works with mixed namespaces\", () => {\n const underlying = {\n \"foo\": \"hi mom\",\n [ObjectDefRef]: {\n [InterfaceDefinitions]: {},\n apiName: \"Obj\",\n displayName: \"\",\n interfaceMap: {\n \"a.IFoo\": {\n \"b.asdf\": \"foo\",\n },\n },\n inverseInterfaceMap: {},\n links: {},\n pluralDisplayName: \"\",\n primaryKeyApiName: \"\",\n primaryKeyType: \"string\",\n properties: {\n \"foo\": {\n type: \"string\",\n },\n },\n type: \"object\",\n titleProperty: \"foo\",\n rid: \"\",\n status: \"ACTIVE\",\n },\n };\n const iface = createOsdkInterface(underlying, {\n \"apiName\": \"a.IFoo\",\n displayName: \"\",\n links: {},\n properties: {\n \"b.asdf\": {\n type: \"string\",\n },\n },\n rid: \"\",\n type: \"interface\",\n implements: [],\n });\n expect(Object.keys(iface)).toMatchInlineSnapshot(`\n [\n \"$apiName\",\n \"b.asdf\",\n ]\n `);\n expect(iface[\"b.asdf\"]).toBe(\"hi mom\");\n expect(JSON.stringify(iface, undefined, 2)).toMatchInlineSnapshot(`\n \"{\n \"$apiName\": \"a.IFoo\",\n \"b.asdf\": \"hi mom\"\n }\"\n `);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|