@osdk/client 2.0.2-rc.0 → 2.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -15
- package/build/browser/Client.d.ts +1 -1
- package/build/browser/Client.js +1 -1
- package/build/browser/Client.js.map +1 -1
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.d.ts +3 -3
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +1 -1
- package/build/browser/createClient.d.ts.map +1 -1
- package/build/browser/createClient.js +11 -0
- package/build/browser/createClient.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.d.ts +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.d.ts.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js +19 -7
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js +117 -14
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
- package/build/browser/object/aggregate.js +1 -1
- package/build/browser/object/aggregate.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts +2 -2
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +27 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts +2 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js +190 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -0
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +1 -3
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.test.js +25 -1
- package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/browser/object/fetchSingle.js +1 -1
- package/build/browser/object/fetchSingle.js.map +1 -1
- package/build/browser/object/object.test.js +1 -1
- package/build/browser/object/object.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSet.test.js +0 -1
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.d.ts +1 -6
- package/build/browser/objectSet/ObjectSetListenerWebsocket.d.ts.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js +37 -156
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +17 -16
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js +3 -3
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/queries/applyQuery.js +3 -3
- package/build/browser/queries/applyQuery.js.map +1 -1
- package/build/browser/queries/queries.test.js +7 -1
- package/build/browser/queries/queries.test.js.map +1 -1
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/esm/Client.d.ts +1 -1
- package/build/esm/Client.js +1 -1
- package/build/esm/Client.js.map +1 -1
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.d.ts +3 -3
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +1 -1
- package/build/esm/createClient.d.ts.map +1 -1
- package/build/esm/createClient.js +11 -0
- package/build/esm/createClient.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.d.ts +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.d.ts.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js +19 -7
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js +117 -14
- package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
- package/build/esm/object/aggregate.js +1 -1
- package/build/esm/object/aggregate.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts +2 -2
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +27 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts +2 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js +190 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -0
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +1 -3
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.test.js +25 -1
- package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/esm/object/fetchSingle.js +1 -1
- package/build/esm/object/fetchSingle.js.map +1 -1
- package/build/esm/object/object.test.js +1 -1
- package/build/esm/object/object.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSet.test.js +0 -1
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.d.ts +1 -6
- package/build/esm/objectSet/ObjectSetListenerWebsocket.d.ts.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js +37 -156
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +17 -16
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js +3 -3
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/queries/applyQuery.js +3 -3
- package/build/esm/queries/applyQuery.js.map +1 -1
- package/build/esm/queries/queries.test.js +7 -1
- package/build/esm/queries/queries.test.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/UserAgent.js.map +1 -1
- package/package.json +9 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
# @osdk/client
|
|
2
2
|
|
|
3
|
-
## 2.0
|
|
3
|
+
## 2.1.0-beta.0
|
|
4
4
|
|
|
5
|
-
###
|
|
6
|
-
|
|
7
|
-
- @osdk/generator-converters@2.0.2-rc.0
|
|
8
|
-
- @osdk/client.unstable@2.0.2-rc.0
|
|
9
|
-
- @osdk/api@2.0.2-rc.0
|
|
5
|
+
### Minor Changes
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
- 0dc40b0: Switch to OSDK.Instance
|
|
8
|
+
- d927a1d: Throws error in createClient when passed an invalid ontology RID
|
|
9
|
+
- d464009: improves interface api name mapping with api namespaces
|
|
10
|
+
- 8eb2378: Fixes where clauses when objects have an api namespace
|
|
11
|
+
- e548b9b: Updates subscribe to return object updates
|
|
12
|
+
- 5e78575: Fix queries that have response types with nested values, like arrays.
|
|
13
|
+
- 9af346e: Fixing proxy handlers.
|
|
14
|
+
- c682504: Locks dependency version of 3 internal libraries
|
|
12
15
|
|
|
13
16
|
### Patch Changes
|
|
14
17
|
|
|
15
|
-
- Updated dependencies [
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- @osdk/
|
|
20
|
-
- @osdk/generator-converters@2.0.
|
|
21
|
-
- @osdk/
|
|
22
|
-
- @osdk/client.unstable@2.0.1
|
|
18
|
+
- Updated dependencies [0dc40b0]
|
|
19
|
+
- Updated dependencies [03e1941]
|
|
20
|
+
- Updated dependencies [e548b9b]
|
|
21
|
+
- Updated dependencies [c682504]
|
|
22
|
+
- @osdk/api@2.1.0-beta.0
|
|
23
|
+
- @osdk/generator-converters@2.1.0-beta.0
|
|
24
|
+
- @osdk/client.unstable@2.1.0-beta.0
|
|
23
25
|
|
|
24
26
|
## 2.0.0
|
|
25
27
|
|
|
@@ -32,7 +32,7 @@ export interface Client extends SharedClient<MinimalClient> {
|
|
|
32
32
|
*/
|
|
33
33
|
readonly [__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks]: <T extends ObjectOrInterfaceDefinition>(objs: Osdk<T>[], links: string[]) => AsyncGenerator<BulkLinkResult, void, undefined>;
|
|
34
34
|
}
|
|
35
|
-
declare const MaxOsdkVersion = "2.0
|
|
35
|
+
declare const MaxOsdkVersion = "2.1.0";
|
|
36
36
|
export type MaxOsdkVersion = typeof MaxOsdkVersion;
|
|
37
37
|
declare const ErrorMessage: unique symbol;
|
|
38
38
|
export {};
|
package/build/browser/Client.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.
|
|
17
|
-
const MaxOsdkVersion = "2.0
|
|
17
|
+
const MaxOsdkVersion = "2.1.0";
|
|
18
18
|
const ErrorMessage = Symbol("ErrorMessage");
|
|
19
19
|
export {};
|
|
20
20
|
//# sourceMappingURL=Client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","names":["MaxOsdkVersion","ErrorMessage","Symbol"],"sources":["Client.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 */\n// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.\nconst MaxOsdkVersion = \"2.0
|
|
1
|
+
{"version":3,"file":"Client.js","names":["MaxOsdkVersion","ErrorMessage","Symbol"],"sources":["Client.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 */\n// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.\nconst MaxOsdkVersion = \"2.1.0\";\nconst ErrorMessage = Symbol(\"ErrorMessage\");\nexport {};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,cAAc,GAAG,OAAO;AAC9B,MAAMC,YAAY,GAAGC,MAAM,CAAC,cAAc,CAAC;AAC3C","ignoreList":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { OsdkBase } from "@osdk/api";
|
|
2
2
|
import type { MinimalClient } from "../MinimalClientContext.js";
|
|
3
3
|
export interface BulkLinkResult {
|
|
4
|
-
object:
|
|
4
|
+
object: OsdkBase<any>;
|
|
5
5
|
linkApiName: string;
|
|
6
6
|
otherObjectApiName: string | undefined;
|
|
7
7
|
otherObjectPk: unknown;
|
|
8
8
|
}
|
|
9
|
-
export declare function createBulkLinksAsyncIterFactory(ctx: MinimalClient): (objs: Array<
|
|
9
|
+
export declare function createBulkLinksAsyncIterFactory(ctx: MinimalClient): (objs: Array<OsdkBase<any>>, linkTypes: string[]) => AsyncGenerator<BulkLinkResult, void, unknown>;
|
|
10
10
|
//# sourceMappingURL=createBulkLinksAsyncIterFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createBulkLinksAsyncIterFactory.d.ts","sourceRoot":"","sources":["../../../src/__unstable/createBulkLinksAsyncIterFactory.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"createBulkLinksAsyncIterFactory.d.ts","sourceRoot":"","sources":["../../../src/__unstable/createBulkLinksAsyncIterFactory.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAS1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAUhE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,aAAa,UAExD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,aACf,MAAM,EAAE,KAClB,cAAc,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,CA8GjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../src/createClient.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../src/createClient.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAqJ1C,eAAO,MAAM,YAAY,gFAzGF,OAAO,CAAC,MAAM,CAAC;aAChB,MAAM;4DA2G3B,CAAC"}
|
|
@@ -43,6 +43,17 @@ class QueryInvoker {
|
|
|
43
43
|
export function createClientInternal(objectSetFactory,
|
|
44
44
|
// first so i can bind
|
|
45
45
|
baseUrl, ontologyRid, tokenProvider, options = undefined, fetchFn = fetch) {
|
|
46
|
+
if (typeof ontologyRid === "string") {
|
|
47
|
+
if (!ontologyRid.startsWith("ri.")) {
|
|
48
|
+
throw new Error("Invalid ontology RID");
|
|
49
|
+
}
|
|
50
|
+
} else {
|
|
51
|
+
ontologyRid.then(ontologyRid => {
|
|
52
|
+
if (!ontologyRid.startsWith("ri.")) {
|
|
53
|
+
throw new Error("Invalid ontology RID");
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
46
57
|
const clientCtx = createMinimalClient({
|
|
47
58
|
ontologyRid
|
|
48
59
|
}, baseUrl, tokenProvider, options, fetchFn, objectSetFactory);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createClient.js","names":["__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks","__EXPERIMENTAL__NOT_SUPPORTED_YET__preexistingObjectSet","symbolClientContext","createBulkLinksAsyncIterFactory","applyAction","createMinimalClient","fetchMetadataInternal","createObjectSet","applyQuery","ActionInvoker","constructor","clientCtx","actionDef","bind","undefined","batchApplyAction","QueryInvoker","queryDef","executeFunction","createClientInternal","objectSetFactory","baseUrl","ontologyRid","tokenProvider","options","fetchFn","fetch","fetchMetadata","client","Object","defineProperties","o","type","
|
|
1
|
+
{"version":3,"file":"createClient.js","names":["__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks","__EXPERIMENTAL__NOT_SUPPORTED_YET__preexistingObjectSet","symbolClientContext","createBulkLinksAsyncIterFactory","applyAction","createMinimalClient","fetchMetadataInternal","createObjectSet","applyQuery","ActionInvoker","constructor","clientCtx","actionDef","bind","undefined","batchApplyAction","QueryInvoker","queryDef","executeFunction","createClientInternal","objectSetFactory","baseUrl","ontologyRid","tokenProvider","options","fetchFn","fetch","startsWith","Error","then","fetchMetadata","client","Object","defineProperties","o","type","value","get","definition","rid","objectSets","objectType","apiName","reference","createClient"],"sources":["createClient.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 { __EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks, __EXPERIMENTAL__NOT_SUPPORTED_YET__preexistingObjectSet, } from \"@osdk/api/unstable\";\nimport { symbolClientContext } from \"@osdk/shared.client\";\nimport { createBulkLinksAsyncIterFactory } from \"./__unstable/createBulkLinksAsyncIterFactory.js\";\nimport { applyAction } from \"./actions/applyAction.js\";\nimport { createMinimalClient } from \"./createMinimalClient.js\";\nimport { fetchMetadataInternal } from \"./fetchMetadata.js\";\nimport { createObjectSet } from \"./objectSet/createObjectSet.js\";\nimport { applyQuery } from \"./queries/applyQuery.js\";\nclass ActionInvoker {\n constructor(clientCtx, actionDef) {\n // We type the property as a generic function as binding `applyAction`\n // doesn't return a type thats all that useful anyway\n // The implements covers us for the most part here as this exact type doesn't\n // escape this file\n this.applyAction = applyAction.bind(undefined, clientCtx, actionDef);\n this.batchApplyAction = applyAction.bind(undefined, clientCtx, actionDef);\n }\n applyAction;\n batchApplyAction;\n}\nclass QueryInvoker {\n constructor(clientCtx, queryDef) {\n this.executeFunction = applyQuery.bind(undefined, clientCtx, queryDef);\n }\n executeFunction;\n}\n/** @internal */\nexport function createClientInternal(objectSetFactory, // first so i can bind\nbaseUrl, ontologyRid, tokenProvider, options = undefined, fetchFn = fetch) {\n if (typeof ontologyRid === \"string\") {\n if (!ontologyRid.startsWith(\"ri.\")) {\n throw new Error(\"Invalid ontology RID\");\n }\n }\n else {\n ontologyRid.then((ontologyRid) => {\n if (!ontologyRid.startsWith(\"ri.\")) {\n throw new Error(\"Invalid ontology RID\");\n }\n });\n }\n const clientCtx = createMinimalClient({ ontologyRid }, baseUrl, tokenProvider, options, fetchFn, objectSetFactory);\n function clientFn(o) {\n if (o.type === \"object\" || o.type === \"interface\") {\n return objectSetFactory(o, clientCtx);\n }\n else if (o.type === \"action\") {\n return new ActionInvoker(clientCtx, o); // then as any for dealing with the conditional return value\n }\n else if (o.type === \"query\") {\n return new QueryInvoker(clientCtx, o);\n }\n else {\n throw new Error(\"not implemented\");\n }\n }\n const fetchMetadata = fetchMetadataInternal.bind(undefined, clientCtx);\n const client = Object.defineProperties(clientFn, {\n [symbolClientContext]: {\n value: clientCtx,\n },\n [__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks]: {\n get: () => createBulkLinksAsyncIterFactory(clientCtx),\n },\n [__EXPERIMENTAL__NOT_SUPPORTED_YET__preexistingObjectSet]: {\n get: () => (definition, rid) => {\n return createObjectSet(definition, client[symbolClientContext], {\n type: \"intersect\",\n objectSets: [\n {\n type: \"base\",\n objectType: definition.apiName,\n },\n {\n type: \"reference\",\n reference: rid,\n },\n ],\n });\n },\n },\n fetchMetadata: {\n value: fetchMetadata,\n },\n });\n return client;\n}\nexport const createClient = createClientInternal.bind(undefined, createObjectSet);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare function extractNamespace(fqApiName: string): [string | undefined, string];
|
|
2
2
|
//# sourceMappingURL=modernToLegacyWhereClause.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modernToLegacyWhereClause.d.ts","sourceRoot":"","sources":["../../../../src/internal/conversions/modernToLegacyWhereClause.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"modernToLegacyWhereClause.d.ts","sourceRoot":"","sources":["../../../../src/internal/conversions/modernToLegacyWhereClause.ts"],"names":[],"mappings":"AA6BA,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAChB,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,CAI9B"}
|
|
@@ -15,31 +15,36 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { DistanceUnitMapping } from "@osdk/api";
|
|
17
17
|
import invariant from "tiny-invariant";
|
|
18
|
+
export function extractNamespace(fqApiName) {
|
|
19
|
+
const last = fqApiName.lastIndexOf(".");
|
|
20
|
+
if (last === -1) return [undefined, fqApiName];
|
|
21
|
+
return [fqApiName.slice(0, last), fqApiName.slice(last + 1)];
|
|
22
|
+
}
|
|
18
23
|
/** @internal */
|
|
19
|
-
export function modernToLegacyWhereClause(whereClause) {
|
|
24
|
+
export function modernToLegacyWhereClause(whereClause, objectOrInterface) {
|
|
20
25
|
if ("$and" in whereClause) {
|
|
21
26
|
return {
|
|
22
27
|
type: "and",
|
|
23
|
-
value: whereClause.$and.map(modernToLegacyWhereClause)
|
|
28
|
+
value: whereClause.$and.map(clause => modernToLegacyWhereClause(clause, objectOrInterface))
|
|
24
29
|
};
|
|
25
30
|
} else if ("$or" in whereClause) {
|
|
26
31
|
return {
|
|
27
32
|
type: "or",
|
|
28
|
-
value: whereClause.$or.map(modernToLegacyWhereClause)
|
|
33
|
+
value: whereClause.$or.map(clause => modernToLegacyWhereClause(clause, objectOrInterface))
|
|
29
34
|
};
|
|
30
35
|
} else if ("$not" in whereClause) {
|
|
31
36
|
return {
|
|
32
37
|
type: "not",
|
|
33
|
-
value: modernToLegacyWhereClause(whereClause.$not)
|
|
38
|
+
value: modernToLegacyWhereClause(whereClause.$not, objectOrInterface)
|
|
34
39
|
};
|
|
35
40
|
}
|
|
36
41
|
const parts = Object.entries(whereClause);
|
|
37
42
|
if (parts.length === 1) {
|
|
38
|
-
return handleWherePair(parts[0]);
|
|
43
|
+
return handleWherePair(parts[0], objectOrInterface);
|
|
39
44
|
}
|
|
40
45
|
return {
|
|
41
46
|
type: "and",
|
|
42
|
-
value: parts.map(handleWherePair)
|
|
47
|
+
value: parts.map(v => handleWherePair(v, objectOrInterface))
|
|
43
48
|
};
|
|
44
49
|
}
|
|
45
50
|
function makeGeoFilterBbox(field, bbox, filterType) {
|
|
@@ -68,9 +73,16 @@ function makeGeoFilterPolygon(field, coordinates, filterType) {
|
|
|
68
73
|
}
|
|
69
74
|
};
|
|
70
75
|
}
|
|
71
|
-
function handleWherePair([field, filter]) {
|
|
76
|
+
function handleWherePair([field, filter], objectOrInterface) {
|
|
72
77
|
!(filter != null) ? invariant(false, "Defined key values are only allowed when they are not undefined.") : void 0;
|
|
73
78
|
if (typeof filter === "string" || typeof filter === "number" || typeof filter === "boolean") {
|
|
79
|
+
if (objectOrInterface.type === "interface") {
|
|
80
|
+
const [objApiNamespace] = extractNamespace(objectOrInterface.apiName);
|
|
81
|
+
const [fieldApiNamespace, fieldShortName] = extractNamespace(field);
|
|
82
|
+
if (fieldApiNamespace == null && objApiNamespace != null) {
|
|
83
|
+
field = `${objApiNamespace}.${fieldShortName}`;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
74
86
|
return {
|
|
75
87
|
type: "eq",
|
|
76
88
|
field,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modernToLegacyWhereClause.js","names":["DistanceUnitMapping","invariant","modernToLegacyWhereClause","whereClause","type","value","$and","map","$or","$not","parts","Object","entries","length","handleWherePair","makeGeoFilterBbox","field","bbox","filterType","topLeft","coordinates","bottomRight","makeGeoFilterPolygon","filter","keysOfFilter","keys","hasDollarSign","some","key","startsWith","Error","JSON","stringify","firstKey","withinBody","Array","isArray","$bbox","$distance","$of","center","distance","unit","$polygon","intersectsBody","substring"],"sources":["modernToLegacyWhereClause.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 { DistanceUnitMapping } from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\n/** @internal */\nexport function modernToLegacyWhereClause(whereClause) {\n if (\"$and\" in whereClause) {\n return {\n type: \"and\",\n value: whereClause.$and.map(modernToLegacyWhereClause),\n };\n }\n else if (\"$or\" in whereClause) {\n return {\n type: \"or\",\n value: whereClause.$or.map(modernToLegacyWhereClause),\n };\n }\n else if (\"$not\" in whereClause) {\n return {\n type: \"not\",\n value: modernToLegacyWhereClause(whereClause.$not),\n };\n }\n const parts = Object.entries(whereClause);\n if (parts.length === 1) {\n return handleWherePair(parts[0]);\n }\n return {\n type: \"and\",\n value: parts.map(handleWherePair),\n };\n}\nfunction makeGeoFilterBbox(field, bbox, filterType) {\n return {\n type: filterType === \"$within\"\n ? \"withinBoundingBox\"\n : \"intersectsBoundingBox\",\n field,\n value: {\n topLeft: {\n type: \"Point\",\n coordinates: [bbox[0], bbox[3]],\n },\n bottomRight: {\n type: \"Point\",\n coordinates: [bbox[2], bbox[1]],\n },\n },\n };\n}\nfunction makeGeoFilterPolygon(field, coordinates, filterType) {\n return {\n type: filterType,\n field,\n value: {\n type: \"Polygon\",\n coordinates,\n },\n };\n}\nfunction handleWherePair([field, filter]) {\n invariant(filter != null, \"Defined key values are only allowed when they are not undefined.\");\n if (typeof filter === \"string\" || typeof filter === \"number\"\n || typeof filter === \"boolean\") {\n return {\n type: \"eq\",\n field,\n value: filter,\n };\n }\n const keysOfFilter = Object.keys(filter);\n // If any of the keys start with `$` then they must be the only one.\n // e.g. `where({ name: { $eq: \"foo\", $ne: \"bar\" } })` is invalid currently\n const hasDollarSign = keysOfFilter.some((key) => key.startsWith(\"$\"));\n invariant(!hasDollarSign\n || keysOfFilter.length === 1, \"WhereClause Filter with multiple clauses isn't allowed\");\n if (!hasDollarSign) {\n // Future case for structs\n throw new Error(`Unsupported filter. Did you forget to use a $-prefixed filter? (${JSON.stringify(filter)})`);\n }\n const firstKey = keysOfFilter[0];\n invariant(filter[firstKey] != null);\n if (firstKey === \"$ne\") {\n return {\n type: \"not\",\n value: {\n type: \"eq\",\n field,\n value: filter[firstKey],\n },\n };\n }\n if (firstKey === \"$within\") {\n const withinBody = filter[firstKey];\n if (Array.isArray(withinBody)) {\n return makeGeoFilterBbox(field, withinBody, firstKey);\n }\n else if (\"$bbox\" in withinBody && withinBody.$bbox != null) {\n return makeGeoFilterBbox(field, withinBody.$bbox, firstKey);\n }\n else if ((\"$distance\" in withinBody && \"$of\" in withinBody)\n && withinBody.$distance != null\n && withinBody.$of != null) {\n return {\n type: \"withinDistanceOf\",\n field,\n value: {\n center: Array.isArray(withinBody.$of)\n ? {\n type: \"Point\",\n coordinates: withinBody.$of,\n }\n : withinBody.$of,\n distance: {\n value: withinBody.$distance[0],\n unit: DistanceUnitMapping[withinBody.$distance[1]],\n },\n },\n };\n }\n else {\n const coordinates = (\"$polygon\" in withinBody)\n ? withinBody.$polygon\n : withinBody.coordinates;\n return makeGeoFilterPolygon(field, coordinates, \"withinPolygon\");\n }\n }\n if (firstKey === \"$intersects\") {\n const intersectsBody = filter[firstKey];\n if (Array.isArray(intersectsBody)) {\n return makeGeoFilterBbox(field, intersectsBody, firstKey);\n }\n else if (\"$bbox\" in intersectsBody && intersectsBody.$bbox != null) {\n return makeGeoFilterBbox(field, intersectsBody.$bbox, firstKey);\n }\n else {\n const coordinates = (\"$polygon\" in intersectsBody)\n ? intersectsBody.$polygon\n : intersectsBody.coordinates;\n return makeGeoFilterPolygon(field, coordinates, \"intersectsPolygon\");\n }\n }\n return {\n type: firstKey.substring(1),\n field,\n value: filter[firstKey],\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"modernToLegacyWhereClause.js","names":["DistanceUnitMapping","invariant","extractNamespace","fqApiName","last","lastIndexOf","undefined","slice","modernToLegacyWhereClause","whereClause","objectOrInterface","type","value","$and","map","clause","$or","$not","parts","Object","entries","length","handleWherePair","v","makeGeoFilterBbox","field","bbox","filterType","topLeft","coordinates","bottomRight","makeGeoFilterPolygon","filter","objApiNamespace","apiName","fieldApiNamespace","fieldShortName","keysOfFilter","keys","hasDollarSign","some","key","startsWith","Error","JSON","stringify","firstKey","withinBody","Array","isArray","$bbox","$distance","$of","center","distance","unit","$polygon","intersectsBody","substring"],"sources":["modernToLegacyWhereClause.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 { DistanceUnitMapping } from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\nexport function extractNamespace(fqApiName) {\n const last = fqApiName.lastIndexOf(\".\");\n if (last === -1)\n return [undefined, fqApiName];\n return [fqApiName.slice(0, last), fqApiName.slice(last + 1)];\n}\n/** @internal */\nexport function modernToLegacyWhereClause(whereClause, objectOrInterface) {\n if (\"$and\" in whereClause) {\n return {\n type: \"and\",\n value: whereClause.$and.map((clause) => modernToLegacyWhereClause(clause, objectOrInterface)),\n };\n }\n else if (\"$or\" in whereClause) {\n return {\n type: \"or\",\n value: whereClause.$or.map((clause) => modernToLegacyWhereClause(clause, objectOrInterface)),\n };\n }\n else if (\"$not\" in whereClause) {\n return {\n type: \"not\",\n value: modernToLegacyWhereClause(whereClause.$not, objectOrInterface),\n };\n }\n const parts = Object.entries(whereClause);\n if (parts.length === 1) {\n return handleWherePair(parts[0], objectOrInterface);\n }\n return {\n type: \"and\",\n value: parts.map(v => handleWherePair(v, objectOrInterface)),\n };\n}\nfunction makeGeoFilterBbox(field, bbox, filterType) {\n return {\n type: filterType === \"$within\"\n ? \"withinBoundingBox\"\n : \"intersectsBoundingBox\",\n field,\n value: {\n topLeft: {\n type: \"Point\",\n coordinates: [bbox[0], bbox[3]],\n },\n bottomRight: {\n type: \"Point\",\n coordinates: [bbox[2], bbox[1]],\n },\n },\n };\n}\nfunction makeGeoFilterPolygon(field, coordinates, filterType) {\n return {\n type: filterType,\n field,\n value: {\n type: \"Polygon\",\n coordinates,\n },\n };\n}\nfunction handleWherePair([field, filter], objectOrInterface) {\n invariant(filter != null, \"Defined key values are only allowed when they are not undefined.\");\n if (typeof filter === \"string\" || typeof filter === \"number\"\n || typeof filter === \"boolean\") {\n if (objectOrInterface.type === \"interface\") {\n const [objApiNamespace] = extractNamespace(objectOrInterface.apiName);\n const [fieldApiNamespace, fieldShortName] = extractNamespace(field);\n if (fieldApiNamespace == null && objApiNamespace != null) {\n field = `${objApiNamespace}.${fieldShortName}`;\n }\n }\n return {\n type: \"eq\",\n field,\n value: filter,\n };\n }\n const keysOfFilter = Object.keys(filter);\n // If any of the keys start with `$` then they must be the only one.\n // e.g. `where({ name: { $eq: \"foo\", $ne: \"bar\" } })` is invalid currently\n const hasDollarSign = keysOfFilter.some((key) => key.startsWith(\"$\"));\n invariant(!hasDollarSign\n || keysOfFilter.length === 1, \"WhereClause Filter with multiple clauses isn't allowed\");\n if (!hasDollarSign) {\n // Future case for structs\n throw new Error(`Unsupported filter. Did you forget to use a $-prefixed filter? (${JSON.stringify(filter)})`);\n }\n const firstKey = keysOfFilter[0];\n invariant(filter[firstKey] != null);\n if (firstKey === \"$ne\") {\n return {\n type: \"not\",\n value: {\n type: \"eq\",\n field,\n value: filter[firstKey],\n },\n };\n }\n if (firstKey === \"$within\") {\n const withinBody = filter[firstKey];\n if (Array.isArray(withinBody)) {\n return makeGeoFilterBbox(field, withinBody, firstKey);\n }\n else if (\"$bbox\" in withinBody && withinBody.$bbox != null) {\n return makeGeoFilterBbox(field, withinBody.$bbox, firstKey);\n }\n else if ((\"$distance\" in withinBody && \"$of\" in withinBody)\n && withinBody.$distance != null\n && withinBody.$of != null) {\n return {\n type: \"withinDistanceOf\",\n field,\n value: {\n center: Array.isArray(withinBody.$of)\n ? {\n type: \"Point\",\n coordinates: withinBody.$of,\n }\n : withinBody.$of,\n distance: {\n value: withinBody.$distance[0],\n unit: DistanceUnitMapping[withinBody.$distance[1]],\n },\n },\n };\n }\n else {\n const coordinates = (\"$polygon\" in withinBody)\n ? withinBody.$polygon\n : withinBody.coordinates;\n return makeGeoFilterPolygon(field, coordinates, \"withinPolygon\");\n }\n }\n if (firstKey === \"$intersects\") {\n const intersectsBody = filter[firstKey];\n if (Array.isArray(intersectsBody)) {\n return makeGeoFilterBbox(field, intersectsBody, firstKey);\n }\n else if (\"$bbox\" in intersectsBody && intersectsBody.$bbox != null) {\n return makeGeoFilterBbox(field, intersectsBody.$bbox, firstKey);\n }\n else {\n const coordinates = (\"$polygon\" in intersectsBody)\n ? intersectsBody.$polygon\n : intersectsBody.coordinates;\n return makeGeoFilterPolygon(field, coordinates, \"intersectsPolygon\");\n }\n }\n return {\n type: firstKey.substring(1),\n field,\n value: filter[firstKey],\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,10 +13,113 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { objectTypeWithAllPropertyTypes } from "@osdk/client.test.ontology";
|
|
16
17
|
import { expectType } from "ts-expect";
|
|
17
18
|
import { describe, expect, it } from "vitest";
|
|
18
19
|
import { modernToLegacyWhereClause } from "./modernToLegacyWhereClause.js";
|
|
19
20
|
describe(modernToLegacyWhereClause, () => {
|
|
21
|
+
describe("api namespaces", () => {
|
|
22
|
+
describe("interfaces", () => {
|
|
23
|
+
it("properly converts shortname to fqApiName", () => {
|
|
24
|
+
const r = modernToLegacyWhereClause({
|
|
25
|
+
prop: 5
|
|
26
|
+
}, {
|
|
27
|
+
type: "interface",
|
|
28
|
+
apiName: "a.Foo"
|
|
29
|
+
});
|
|
30
|
+
expect(r).toMatchInlineSnapshot(`
|
|
31
|
+
{
|
|
32
|
+
"field": "a.prop",
|
|
33
|
+
"type": "eq",
|
|
34
|
+
"value": 5,
|
|
35
|
+
}
|
|
36
|
+
`);
|
|
37
|
+
});
|
|
38
|
+
it("properly does not convert when interface has no apiNamespace", () => {
|
|
39
|
+
const r = modernToLegacyWhereClause({
|
|
40
|
+
"b.prop": 5,
|
|
41
|
+
foo: 6
|
|
42
|
+
}, {
|
|
43
|
+
type: "interface",
|
|
44
|
+
apiName: "Foo"
|
|
45
|
+
});
|
|
46
|
+
expect(r).toMatchInlineSnapshot(`
|
|
47
|
+
{
|
|
48
|
+
"type": "and",
|
|
49
|
+
"value": [
|
|
50
|
+
{
|
|
51
|
+
"field": "b.prop",
|
|
52
|
+
"type": "eq",
|
|
53
|
+
"value": 5,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"field": "foo",
|
|
57
|
+
"type": "eq",
|
|
58
|
+
"value": 6,
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
}
|
|
62
|
+
`);
|
|
63
|
+
});
|
|
64
|
+
it("gracefully handles redundant apiNamespace in property", () => {
|
|
65
|
+
const r = modernToLegacyWhereClause({
|
|
66
|
+
"b.prop": 5,
|
|
67
|
+
"a.foo": 6
|
|
68
|
+
}, {
|
|
69
|
+
type: "interface",
|
|
70
|
+
apiName: "a.Foo"
|
|
71
|
+
});
|
|
72
|
+
expect(r).toMatchInlineSnapshot(`
|
|
73
|
+
{
|
|
74
|
+
"type": "and",
|
|
75
|
+
"value": [
|
|
76
|
+
{
|
|
77
|
+
"field": "b.prop",
|
|
78
|
+
"type": "eq",
|
|
79
|
+
"value": 5,
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"field": "a.foo",
|
|
83
|
+
"type": "eq",
|
|
84
|
+
"value": 6,
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
}
|
|
88
|
+
`);
|
|
89
|
+
});
|
|
90
|
+
it("properly does not convert different apiNamespaces", () => {
|
|
91
|
+
expect(modernToLegacyWhereClause({
|
|
92
|
+
"b.prop": 5
|
|
93
|
+
}, {
|
|
94
|
+
type: "interface",
|
|
95
|
+
apiName: "a.Foo"
|
|
96
|
+
})).toMatchInlineSnapshot(`
|
|
97
|
+
{
|
|
98
|
+
"field": "b.prop",
|
|
99
|
+
"type": "eq",
|
|
100
|
+
"value": 5,
|
|
101
|
+
}
|
|
102
|
+
`);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
describe("objects", () => {
|
|
106
|
+
it("does not convert object short property names to fq", () => {
|
|
107
|
+
const r = modernToLegacyWhereClause({
|
|
108
|
+
prop: 5
|
|
109
|
+
}, {
|
|
110
|
+
type: "object",
|
|
111
|
+
apiName: "a.Foo"
|
|
112
|
+
});
|
|
113
|
+
expect(r).toMatchInlineSnapshot(`
|
|
114
|
+
{
|
|
115
|
+
"field": "prop",
|
|
116
|
+
"type": "eq",
|
|
117
|
+
"value": 5,
|
|
118
|
+
}
|
|
119
|
+
`);
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
});
|
|
20
123
|
describe("single checks", () => {
|
|
21
124
|
describe("$within", () => {
|
|
22
125
|
it("properly generates bbox shortcut", async () => {
|
|
@@ -24,7 +127,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
24
127
|
geoPoint: {
|
|
25
128
|
$within: [-5, 5, -10, 10]
|
|
26
129
|
}
|
|
27
|
-
})).toMatchInlineSnapshot(`
|
|
130
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
28
131
|
{
|
|
29
132
|
"field": "geoPoint",
|
|
30
133
|
"type": "withinBoundingBox",
|
|
@@ -54,7 +157,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
54
157
|
$bbox: [-5, 5, -10, 10]
|
|
55
158
|
}
|
|
56
159
|
}
|
|
57
|
-
})).toMatchInlineSnapshot(`
|
|
160
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
58
161
|
{
|
|
59
162
|
"field": "geoPoint",
|
|
60
163
|
"type": "withinBoundingBox",
|
|
@@ -85,7 +188,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
85
188
|
$of: [-5, 5]
|
|
86
189
|
}
|
|
87
190
|
}
|
|
88
|
-
})).toMatchInlineSnapshot(`
|
|
191
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
89
192
|
{
|
|
90
193
|
"field": "geoPoint",
|
|
91
194
|
"type": "withinDistanceOf",
|
|
@@ -119,7 +222,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
119
222
|
}
|
|
120
223
|
}
|
|
121
224
|
}
|
|
122
|
-
})).toMatchInlineSnapshot(`
|
|
225
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
123
226
|
{
|
|
124
227
|
"field": "geoPoint",
|
|
125
228
|
"type": "withinDistanceOf",
|
|
@@ -146,7 +249,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
146
249
|
$polygon: [[[0, 1], [3, 2], [0, 1]]]
|
|
147
250
|
}
|
|
148
251
|
}
|
|
149
|
-
})).toMatchInlineSnapshot(`
|
|
252
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
150
253
|
{
|
|
151
254
|
"field": "geoPoint",
|
|
152
255
|
"type": "withinPolygon",
|
|
@@ -180,7 +283,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
180
283
|
coordinates: [[[0, 1], [3, 2], [0, 1]]]
|
|
181
284
|
}
|
|
182
285
|
}
|
|
183
|
-
})).toMatchInlineSnapshot(`
|
|
286
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
184
287
|
{
|
|
185
288
|
"field": "geoPoint",
|
|
186
289
|
"type": "withinPolygon",
|
|
@@ -269,7 +372,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
269
372
|
geoShape: {
|
|
270
373
|
$intersects: [-5, 5, -10, 10]
|
|
271
374
|
}
|
|
272
|
-
})).toMatchInlineSnapshot(`
|
|
375
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
273
376
|
{
|
|
274
377
|
"field": "geoShape",
|
|
275
378
|
"type": "intersectsBoundingBox",
|
|
@@ -299,7 +402,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
299
402
|
$bbox: [-5, 5, -10, 10]
|
|
300
403
|
}
|
|
301
404
|
}
|
|
302
|
-
})).toMatchInlineSnapshot(`
|
|
405
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
303
406
|
{
|
|
304
407
|
"field": "geoShape",
|
|
305
408
|
"type": "intersectsBoundingBox",
|
|
@@ -329,7 +432,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
329
432
|
$polygon: [[[0, 1], [3, 2], [0, 1]]]
|
|
330
433
|
}
|
|
331
434
|
}
|
|
332
|
-
})).toMatchInlineSnapshot(`
|
|
435
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
333
436
|
{
|
|
334
437
|
"field": "geoShape",
|
|
335
438
|
"type": "intersectsPolygon",
|
|
@@ -363,7 +466,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
363
466
|
coordinates: [[[0, 1], [3, 2], [0, 1]]]
|
|
364
467
|
}
|
|
365
468
|
}
|
|
366
|
-
})).toMatchInlineSnapshot(`
|
|
469
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
367
470
|
{
|
|
368
471
|
"field": "geoShape",
|
|
369
472
|
"type": "intersectsPolygon",
|
|
@@ -395,7 +498,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
395
498
|
integer: {
|
|
396
499
|
$ne: 5
|
|
397
500
|
}
|
|
398
|
-
})).toMatchInlineSnapshot(`
|
|
501
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
399
502
|
{
|
|
400
503
|
"type": "not",
|
|
401
504
|
"value": {
|
|
@@ -412,7 +515,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
412
515
|
expect(modernToLegacyWhereClause({
|
|
413
516
|
decimal: 5,
|
|
414
517
|
integer: 10
|
|
415
|
-
})).toMatchInlineSnapshot(`
|
|
518
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
416
519
|
{
|
|
417
520
|
"type": "and",
|
|
418
521
|
"value": [
|
|
@@ -437,7 +540,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
437
540
|
}, {
|
|
438
541
|
integer: 10
|
|
439
542
|
}]
|
|
440
|
-
})).toMatchInlineSnapshot(`
|
|
543
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
441
544
|
{
|
|
442
545
|
"type": "and",
|
|
443
546
|
"value": [
|
|
@@ -462,7 +565,7 @@ describe(modernToLegacyWhereClause, () => {
|
|
|
462
565
|
}, {
|
|
463
566
|
integer: 10
|
|
464
567
|
}]
|
|
465
|
-
})).toMatchInlineSnapshot(`
|
|
568
|
+
}, objectTypeWithAllPropertyTypes)).toMatchInlineSnapshot(`
|
|
466
569
|
{
|
|
467
570
|
"type": "or",
|
|
468
571
|
"value": [
|