@osdk/client 2.4.0-beta.9 → 2.4.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 +191 -0
- package/build/browser/MinimalClientContext.js.map +1 -1
- package/build/browser/createClient.js +5 -5
- package/build/browser/createClient.js.map +1 -1
- package/build/browser/createClient.test.js +3 -3
- package/build/browser/createClient.test.js.map +1 -1
- package/build/browser/createMinimalClient.js +1 -0
- package/build/browser/createMinimalClient.js.map +1 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +0 -17
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/browser/fetchMetadata.test.js +7 -1
- package/build/browser/fetchMetadata.test.js.map +1 -1
- package/build/browser/index.js +2 -1
- package/build/browser/index.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.js +3 -2
- package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.test.js +36 -24
- package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/browser/object/fetchPage.js +9 -2
- package/build/browser/object/fetchPage.js.map +1 -1
- package/build/browser/object/mediaUpload.js +0 -3
- package/build/browser/object/mediaUpload.js.map +1 -1
- package/build/browser/objectSet/InterfaceObjectSet.test.js +5 -1
- package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js +5 -1
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/observable/internal/ActionApplication.js +1 -1
- package/build/browser/observable/internal/ActionApplication.js.map +1 -1
- package/build/browser/observable/internal/Store.test.js +3 -0
- package/build/browser/observable/internal/Store.test.js.map +1 -1
- package/build/browser/ontology/StandardOntologyProvider.test.js +1 -1
- package/build/browser/ontology/StandardOntologyProvider.test.js.map +1 -1
- package/build/browser/public/unstable-do-not-use.js +1 -0
- package/build/browser/public/unstable-do-not-use.js.map +1 -1
- package/build/browser/public-utils/hydrateObjectSetFromObjectRids.js +4 -1
- package/build/browser/public-utils/hydrateObjectSetFromObjectRids.js.map +1 -1
- package/build/browser/public-utils/hydrateObjectSetFromRid.js +4 -1
- package/build/browser/public-utils/hydrateObjectSetFromRid.js.map +1 -1
- package/build/browser/queries/applyQuery.js +24 -1
- package/build/browser/queries/applyQuery.js.map +1 -1
- package/build/browser/queries/queries.test.js +27 -2
- package/build/browser/queries/queries.test.js.map +1 -1
- package/build/browser/queries/types.js.map +1 -1
- package/build/browser/util/UserAgent.js +2 -2
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/browser/util/WireObjectSet.js +1 -1
- package/build/browser/util/WireObjectSet.js.map +1 -1
- package/build/browser/util/extractObjectOrInterfaceType.js +96 -0
- package/build/browser/util/extractObjectOrInterfaceType.js.map +1 -0
- package/build/browser/util/extractObjectOrInterfaceType.test.js +135 -0
- package/build/browser/util/extractObjectOrInterfaceType.test.js.map +1 -0
- package/build/browser/util/interfaceUtils.js +10 -0
- package/build/browser/util/interfaceUtils.js.map +1 -1
- package/build/browser/util/objectSpecifierUtils.js +12 -0
- package/build/browser/util/objectSpecifierUtils.js.map +1 -1
- package/build/browser/util/toDataValue.js +1 -15
- package/build/browser/util/toDataValue.js.map +1 -1
- package/build/browser/util/toDataValue.test.js +2 -42
- package/build/browser/util/toDataValue.test.js.map +1 -1
- package/build/browser/util/toDataValueQueries.js +11 -0
- package/build/browser/util/toDataValueQueries.js.map +1 -1
- package/build/cjs/{Client-CgL2LKN9.d.cts → Client-CF85LpFu.d.cts} +2 -2
- package/build/cjs/{chunk-E5BQ7757.cjs → chunk-DSQAJPW5.cjs} +120 -64
- package/build/cjs/chunk-DSQAJPW5.cjs.map +1 -0
- package/build/cjs/chunk-Q7SFCCGT.cjs +11 -0
- package/build/cjs/chunk-Q7SFCCGT.cjs.map +1 -0
- package/build/cjs/{chunk-YZHCDIYC.cjs → chunk-RLFLBDLT.cjs} +117 -85
- package/build/cjs/chunk-RLFLBDLT.cjs.map +1 -0
- package/build/cjs/createClient-BJo8T7Js.d.cts +9 -0
- package/build/cjs/delay-QK4T7RVX.cjs +74 -0
- package/build/cjs/delay-QK4T7RVX.cjs.map +1 -0
- package/build/cjs/index.cjs +9 -8
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +15 -8
- package/build/cjs/public/internal.cjs +17 -10
- package/build/cjs/public/internal.cjs.map +1 -1
- package/build/cjs/public/internal.d.cts +1 -1
- package/build/cjs/public/unstable-do-not-use.cjs +22 -71
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
- package/build/cjs/public/unstable-do-not-use.d.cts +2 -1
- package/build/esm/MinimalClientContext.js.map +1 -1
- package/build/esm/createClient.js +5 -5
- package/build/esm/createClient.js.map +1 -1
- package/build/esm/createClient.test.js +3 -3
- package/build/esm/createClient.test.js.map +1 -1
- package/build/esm/createMinimalClient.js +1 -0
- package/build/esm/createMinimalClient.js.map +1 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +0 -17
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/esm/fetchMetadata.test.js +7 -1
- package/build/esm/fetchMetadata.test.js.map +1 -1
- package/build/esm/index.js +2 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.js +3 -2
- package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.test.js +36 -24
- package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/esm/object/fetchPage.js +9 -2
- package/build/esm/object/fetchPage.js.map +1 -1
- package/build/esm/object/mediaUpload.js +0 -3
- package/build/esm/object/mediaUpload.js.map +1 -1
- package/build/esm/objectSet/InterfaceObjectSet.test.js +5 -1
- package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js +5 -1
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/observable/internal/ActionApplication.js +1 -1
- package/build/esm/observable/internal/ActionApplication.js.map +1 -1
- package/build/esm/observable/internal/Store.test.js +3 -0
- package/build/esm/observable/internal/Store.test.js.map +1 -1
- package/build/esm/ontology/StandardOntologyProvider.test.js +1 -1
- package/build/esm/ontology/StandardOntologyProvider.test.js.map +1 -1
- package/build/esm/public/unstable-do-not-use.js +1 -0
- package/build/esm/public/unstable-do-not-use.js.map +1 -1
- package/build/esm/public-utils/hydrateObjectSetFromObjectRids.js +4 -1
- package/build/esm/public-utils/hydrateObjectSetFromObjectRids.js.map +1 -1
- package/build/esm/public-utils/hydrateObjectSetFromRid.js +4 -1
- package/build/esm/public-utils/hydrateObjectSetFromRid.js.map +1 -1
- package/build/esm/queries/applyQuery.js +24 -1
- package/build/esm/queries/applyQuery.js.map +1 -1
- package/build/esm/queries/queries.test.js +27 -2
- package/build/esm/queries/queries.test.js.map +1 -1
- package/build/esm/queries/types.js.map +1 -1
- package/build/esm/util/UserAgent.js +2 -2
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/esm/util/WireObjectSet.js +1 -1
- package/build/esm/util/WireObjectSet.js.map +1 -1
- package/build/esm/util/extractObjectOrInterfaceType.js +96 -0
- package/build/esm/util/extractObjectOrInterfaceType.js.map +1 -0
- package/build/esm/util/extractObjectOrInterfaceType.test.js +135 -0
- package/build/esm/util/extractObjectOrInterfaceType.test.js.map +1 -0
- package/build/esm/util/interfaceUtils.js +10 -0
- package/build/esm/util/interfaceUtils.js.map +1 -1
- package/build/esm/util/objectSpecifierUtils.js +12 -0
- package/build/esm/util/objectSpecifierUtils.js.map +1 -1
- package/build/esm/util/toDataValue.js +1 -15
- package/build/esm/util/toDataValue.js.map +1 -1
- package/build/esm/util/toDataValue.test.js +2 -42
- package/build/esm/util/toDataValue.test.js.map +1 -1
- package/build/esm/util/toDataValueQueries.js +11 -0
- package/build/esm/util/toDataValueQueries.js.map +1 -1
- package/build/types/MinimalClientContext.d.ts +1 -0
- package/build/types/MinimalClientContext.d.ts.map +1 -1
- package/build/types/createClient.d.ts +1 -0
- package/build/types/createClient.d.ts.map +1 -1
- package/build/types/index.d.ts +3 -2
- package/build/types/index.d.ts.map +1 -1
- package/build/types/object/fetchPage.d.ts.map +1 -1
- package/build/types/object/mediaUpload.d.ts +1 -2
- package/build/types/object/mediaUpload.d.ts.map +1 -1
- package/build/types/observable/internal/ActionApplication.d.ts.map +1 -1
- package/build/types/public/unstable-do-not-use.d.ts +1 -0
- package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
- package/build/types/queries/applyQuery.d.ts +5 -1
- package/build/types/queries/applyQuery.d.ts.map +1 -1
- package/build/types/queries/types.d.ts +2 -2
- package/build/types/queries/types.d.ts.map +1 -1
- package/build/types/util/extractObjectOrInterfaceType.d.ts +1 -0
- package/build/types/util/extractObjectOrInterfaceType.d.ts.map +1 -0
- package/build/types/util/extractObjectOrInterfaceType.test.d.ts +1 -0
- package/build/types/util/extractObjectOrInterfaceType.test.d.ts.map +1 -0
- package/build/types/util/objectSpecifierUtils.d.ts +13 -1
- package/build/types/util/objectSpecifierUtils.d.ts.map +1 -1
- package/package.json +11 -11
- package/build/cjs/chunk-E5BQ7757.cjs.map +0 -1
- package/build/cjs/chunk-YZHCDIYC.cjs.map +0 -1
|
@@ -46,7 +46,7 @@ describe("convertWireToOsdkObjects", () => {
|
|
|
46
46
|
} = await client(Employee).fetchPage();
|
|
47
47
|
expect(Object.keys(employee).sort()).toEqual(["employeeId", "$title", "fullName", "office", "class", "startDate", "employeeSensor", "employeeStatus", "$apiName", "$objectType", "$primaryKey", "$objectSpecifier", "employeeLocation"].sort());
|
|
48
48
|
expect(Object.keys(employee.$as)).toEqual([]);
|
|
49
|
-
expect(Object.keys(employee.$link)).toEqual(["
|
|
49
|
+
expect(Object.keys(employee.$link)).toEqual(["lead", "officeLink", "peeps"]);
|
|
50
50
|
});
|
|
51
51
|
it("stringifies properties on objects and interfaces correctly", async () => {
|
|
52
52
|
const {
|
|
@@ -575,7 +575,13 @@ describe("convertWireToOsdkObjects", () => {
|
|
|
575
575
|
"Person",
|
|
576
576
|
],
|
|
577
577
|
"implements": [],
|
|
578
|
-
"links": {
|
|
578
|
+
"links": {
|
|
579
|
+
"toBar": {
|
|
580
|
+
"multiplicity": true,
|
|
581
|
+
"targetType": "interface",
|
|
582
|
+
"targetTypeApiName": "BarInterface",
|
|
583
|
+
},
|
|
584
|
+
},
|
|
579
585
|
"properties": {
|
|
580
586
|
"fooSpt": {
|
|
581
587
|
"description": "A foo",
|
|
@@ -625,29 +631,35 @@ describe("convertWireToOsdkObjects", () => {
|
|
|
625
631
|
const objAsFoo = employee.$as(FooInterface);
|
|
626
632
|
expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata).toBeDefined();
|
|
627
633
|
expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.InterfaceMetadata).toMatchInlineSnapshot(`
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
"nullable": true,
|
|
644
|
-
"type": "string",
|
|
634
|
+
{
|
|
635
|
+
"apiName": "FooInterface",
|
|
636
|
+
"description": "Interface for Foo",
|
|
637
|
+
"displayName": "Foo Interface",
|
|
638
|
+
"implementedBy": [
|
|
639
|
+
"Employee",
|
|
640
|
+
"Person",
|
|
641
|
+
],
|
|
642
|
+
"implements": [],
|
|
643
|
+
"links": {
|
|
644
|
+
"toBar": {
|
|
645
|
+
"multiplicity": true,
|
|
646
|
+
"targetType": "interface",
|
|
647
|
+
"targetTypeApiName": "BarInterface",
|
|
648
|
+
},
|
|
645
649
|
},
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
650
|
+
"properties": {
|
|
651
|
+
"fooSpt": {
|
|
652
|
+
"description": "A foo",
|
|
653
|
+
"displayName": "Foo",
|
|
654
|
+
"multiplicity": false,
|
|
655
|
+
"nullable": true,
|
|
656
|
+
"type": "string",
|
|
657
|
+
},
|
|
658
|
+
},
|
|
659
|
+
"rid": "ri.interface.main.interface.1",
|
|
660
|
+
"type": "interface",
|
|
661
|
+
}
|
|
662
|
+
`);
|
|
651
663
|
});
|
|
652
664
|
it("$experimental_metadata is not enumerable", async () => {
|
|
653
665
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertWireToOsdkObjects.test.js","names":["$ontologyRid","Employee","FooInterface","objectTypeWithAllPropertyTypes","createSharedClientContext","LegacyFauxFoundry","startNodeApiServer","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","createMinimalClient","convertWireToOsdkObjects","convertWireToOsdkObjects2","client","interfaceToObjectTypeMappings","fooSpt","testSetup","apiServer","close","data","employee","fetchPage","Object","keys","sort","toEqual","$as","$link","employee2","where","$and","employeeId","$gt","$lt","JSON","stringify","toMatchInlineSnapshot","employees","length","toBeGreaterThanOrEqual","a","b","getPrototypeOf","toBe","withValues","id","attachment","attachmentArray","toMatchTypeOf","rid","Array","isArray","toBeTruthy","withoutValues","emptyAttachment","emptyAttachmentArray","toBeUndefined","mediaReference","toBeDefined","emptyMedia","somePropertyThatShouldNotExist","toThrow","objAsFoo","clientCtx","ontologyRid","object","__apiName","apiName","__primaryKey","prototypeBefore","object2","undefined","prototypeAfter","not","__title","obj","fullName","__rid","$rid","rejects","toThrowErrorMatchingInlineSnapshot","resolves","to","result","$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata","ObjectMetadata","propertyIsEnumerable","isFrozen","InterfaceMetadata","objAsFoo2","instance","osdk"],"sources":["convertWireToOsdkObjects.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Attachment, Media, Osdk, PropertyKeys } from \"@osdk/api\";\nimport {\n $ontologyRid,\n Employee,\n FooInterface,\n objectTypeWithAllPropertyTypes,\n} from \"@osdk/client.test.ontology\";\nimport type { OntologyObjectV2 } from \"@osdk/foundry.ontologies\";\nimport { createSharedClientContext } from \"@osdk/shared.client.impl\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport { additionalContext, type Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport {\n convertWireToOsdkObjects,\n convertWireToOsdkObjects2,\n} from \"./convertWireToOsdkObjects.js\";\n\ndescribe(\"convertWireToOsdkObjects\", () => {\n let client: Client;\n const interfaceToObjectTypeMappings = {\n FooInterface: { Employee: { fooSpt: \"fullName\" } },\n };\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"configures properties correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n\n expect(Object.keys(employee).sort()).toEqual([\n \"employeeId\",\n \"$title\",\n \"fullName\",\n \"office\",\n \"class\",\n \"startDate\",\n \"employeeSensor\",\n \"employeeStatus\",\n \"$apiName\",\n \"$objectType\",\n \"$primaryKey\",\n \"$objectSpecifier\",\n \"employeeLocation\",\n ].sort());\n\n expect(Object.keys(employee.$as)).toEqual([]);\n expect(Object.keys(employee.$link)).toEqual([\n \"peeps\",\n \"lead\",\n \"officeLink\",\n ]);\n });\n\n it(\"stringifies properties on objects and interfaces correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const { data: [employee2] } = await client(Employee).where({\n $and: [{ employeeId: { $gt: 50030 } }, { employeeId: { $lt: 50032 } }],\n }).fetchPage();\n\n // Should not have $title\n expect(JSON.stringify(employee)).toMatchInlineSnapshot(\n `\"{\"employeeId\":50030,\"fullName\":\"John Doe\",\"office\":\"NYC\",\"class\":\"Red\",\"startDate\":\"2019-01-01\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"$objectSpecifier\":\"Employee:50030\"}\"`,\n );\n\n expect(JSON.stringify(employee.$as(FooInterface))).toMatchInlineSnapshot(\n `\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"$objectSpecifier\":\"Employee:50030\",\"fooSpt\":\"John Doe\"}\"`,\n );\n\n // Should have $title\n expect(JSON.stringify(employee2)).toMatchInlineSnapshot(\n `\"{\"employeeId\":50031,\"fullName\":\"Jane Doe\",\"office\":\"SEA\",\"class\":\"Blue\",\"startDate\":\"2012-02-12\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$title\":\"Jane Doe\",\"$objectSpecifier\":\"Employee:50031\"}\"`,\n );\n\n expect(JSON.stringify(employee2.$as(FooInterface))).toMatchInlineSnapshot(\n `\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$objectSpecifier\":\"Employee:50031\",\"$title\":\"Jane Doe\",\"fooSpt\":\"Jane Doe\"}\"`,\n );\n });\n\n it(\"reuses the object prototype across objects\", async () => {\n const employees = await client(Employee).fetchPage();\n expect(employees.data.length).toBeGreaterThanOrEqual(2);\n const [a, b] = employees.data;\n\n expect(Object.getPrototypeOf(Object.getPrototypeOf(a))).toBe(\n Object.getPrototypeOf(Object.getPrototypeOf(b)),\n );\n });\n\n it(\"converts attachments as expected\", async () => {\n const withValues = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n\n const { attachment, attachmentArray } = withValues.data[0];\n\n expectTypeOf(attachment).toMatchTypeOf<\n Attachment | undefined\n >;\n expect(attachment?.rid).toEqual(\n \"ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75\",\n );\n expect(Array.isArray(attachmentArray)).toBeTruthy();\n expectTypeOf(attachmentArray![0]).toMatchTypeOf<Attachment>;\n\n const withoutValues = await client(\n objectTypeWithAllPropertyTypes,\n ).where({ id: 2 }).fetchPage();\n\n const {\n attachment: emptyAttachment,\n attachmentArray: emptyAttachmentArray,\n } = withoutValues.data[0];\n expect(emptyAttachment).toBeUndefined();\n expect(emptyAttachmentArray).toBeUndefined();\n });\n\n it(\"converts media as expected\", async () => {\n const withValues = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n\n const { mediaReference } = withValues.data[0];\n\n expectTypeOf(mediaReference).toMatchTypeOf<\n Media | undefined\n >;\n expect(mediaReference).toBeDefined();\n\n const withoutValues = await client(\n objectTypeWithAllPropertyTypes,\n ).where({ id: 2 }).fetchPage();\n\n const {\n mediaReference: emptyMedia,\n } = withoutValues.data[0];\n expect(emptyMedia).toBeUndefined();\n });\n\n it(\"creates immutable objects\", async () => {\n const employees = await client(Employee).fetchPage();\n expect(employees.data.length).toBeGreaterThanOrEqual(2);\n const [a, b] = employees.data;\n\n expect(a).toBeDefined();\n expect(() => {\n (a as any).somePropertyThatShouldNotExist = 5;\n }).toThrow();\n\n const objAsFoo = a.$as(FooInterface);\n expect(objAsFoo).toBeDefined();\n expect(() => {\n (objAsFoo as any).somePropertyThatShouldNotExist = 5;\n }).toThrow();\n });\n\n it(\"works even with unknown apiNames - old\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n createSharedClientContext(\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n \"userAgent\",\n );\n\n const object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n } as const;\n const prototypeBefore = Object.getPrototypeOf(object);\n const object2 = await convertWireToOsdkObjects(\n clientCtx,\n [object],\n undefined,\n undefined,\n {},\n undefined,\n false,\n );\n const prototypeAfter = Object.getPrototypeOf(object2);\n\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n\n it(\"works even with unknown apiNames - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n createSharedClientContext(\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n \"userAgent\",\n );\n\n const object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n } as const;\n const prototypeBefore = Object.getPrototypeOf(object);\n const object2 = await convertWireToOsdkObjects2(\n clientCtx,\n [object],\n undefined,\n {},\n undefined,\n undefined,\n false,\n );\n const prototypeAfter = Object.getPrototypeOf(object2);\n\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n\n it(\"reconstitutes interfaces properly without rid - old\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n fooSpt: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n undefined,\n {},\n )) as unknown as Osdk<FooInterface>[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n });\n\n it(\"reconstitutes interfaces properly without rid - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n fullName: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects2(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n {},\n false,\n undefined,\n false,\n interfaceToObjectTypeMappings,\n )) as unknown as Osdk<FooInterface>[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fullName\": \"Steve\",\n }\n `);\n });\n\n it(\"reconstitutes interfaces properly with rid\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fooSpt: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n undefined,\n {},\n )) as unknown as Osdk<FooInterface, \"$rid\" | \"$all\">[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n expect(obj.$rid).toEqual(\"hiMom\");\n });\n\n it(\"reconstitutes interfaces properly with rid - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fullName: \"Steve\",\n employeeId: 0,\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects2(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n {},\n false,\n undefined,\n false,\n interfaceToObjectTypeMappings,\n )) as unknown as Osdk<FooInterface, \"$rid\" | \"$all\">[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n expect(obj.$rid).toEqual(\"hiMom\");\n });\n\n describe(\"selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"employeeId\"],\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when optional is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"fullName\"],\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"employeeId\"],\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"fullName\"],\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"employeeId\"],\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when optional is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"fullName\"],\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"employeeId\"],\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"fullName\"],\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"without selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when required is present\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"without selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when required is present\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n it(\"behaves correctly when converting\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n fooSpt: \"hi\",\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n \"FooInterface\",\n {},\n undefined,\n [\"fooSpt\"],\n \"drop\",\n interfaceToObjectTypeMappings,\n );\n\n expect(result.length).toBe(1);\n });\n\n describe(\"$metadata\", () => {\n describe(\"object\", () => {\n it(\"has an accessible object on $__experimental-metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata,\n )\n .toMatchInlineSnapshot(\n `\n {\n \"apiName\": \"Employee\",\n \"description\": \"A full-time or part-time \n\n employee of our firm\",\n \"displayName\": \"Employee\",\n \"icon\": {\n \"color\": \"blue\",\n \"name\": \"person\",\n \"type\": \"blueprint\",\n },\n \"implements\": [\n \"FooInterface\",\n ],\n \"interfaceMap\": {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n \"inverseInterfaceMap\": {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n \"links\": {\n \"lead\": {\n \"multiplicity\": false,\n \"targetType\": \"Employee\",\n },\n \"officeLink\": {\n \"multiplicity\": false,\n \"targetType\": \"Office\",\n },\n \"peeps\": {\n \"multiplicity\": true,\n \"targetType\": \"Employee\",\n },\n },\n \"pluralDisplayName\": \"Employees\",\n \"primaryKeyApiName\": \"employeeId\",\n \"primaryKeyType\": \"integer\",\n \"properties\": {\n \"class\": {\n \"description\": \"\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"employeeId\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"integer\",\n },\n \"employeeLocation\": {\n \"description\": \"Geotime series reference of the location of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"geotimeSeriesReference\",\n },\n \"employeeSensor\": {\n \"description\": \"TimeSeries sensor of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"sensorTimeseries\",\n },\n \"employeeStatus\": {\n \"description\": \"TimeSeries of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"stringTimeseries\",\n },\n \"fullName\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"office\": {\n \"description\": \"The unique \"ID\" of the employee's \\\\\"primary\\\\\" assigned office.\n This is some more text.\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"skillSet\": {\n \"description\": \"The skills of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"skillSetEmbedding\": {\n \"description\": \"Vectorized skill set\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"vector\",\n },\n \"startDate\": {\n \"description\": \"The date the employee was hired (most recently, if they were re-hired)\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"datetime\",\n },\n },\n \"rid\": \"ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44\",\n \"status\": \"ACTIVE\",\n \"titleProperty\": \"fullName\",\n \"type\": \"object\",\n \"visibility\": \"NORMAL\",\n Symbol(InterfaceDefinitions): {\n \"FooInterface\": {\n \"def\": {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {},\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n },\n \"handler\": undefined,\n },\n },\n }\n `,\n );\n });\n\n it(\"$experimental_metadata is not enumerable\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .propertyIsEnumerable(\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n ),\n ).toEqual(\n false,\n );\n });\n\n it(\"returns frozen metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n Object.isFrozen(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .ObjectMetadata,\n ),\n ).toBe(true);\n });\n\n it(\"returns the same reference\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const { data: [employee2] } = await client(Employee).fetchPage();\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata,\n )\n .toBe(\n employee2.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .ObjectMetadata,\n );\n });\n });\n\n describe(\"interface\", () => {\n it(\"has an accessible interface on $__experimental-metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n )\n .toMatchInlineSnapshot(\n `\n {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {},\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n }\n `,\n );\n });\n it(\"$experimental_metadata is not enumerable\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .propertyIsEnumerable(\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n ),\n ).toEqual(\n false,\n );\n });\n it(\"returns frozen metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n Object.isFrozen(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n ),\n ).toBe(true);\n });\n it(\"returns the same reference\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n const { data: [employee2] } = await client(Employee).fetchPage();\n const objAsFoo2 = employee2.$as(FooInterface);\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n )\n .toBe(\n objAsFoo2.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n );\n });\n });\n });\n});\n\ndescribe(\"Osdk.Instance\", () => {\n it(\"is assignable to Osdk<>\", () => {\n const instance: Osdk.Instance<Employee> = {} as any;\n const osdk: Osdk<Employee> = instance;\n });\n\n it(\"is assignable from Osdk<>\", () => {\n const osdk: Osdk<Employee> = {} as any;\n const instance: Osdk.Instance<Employee> = osdk;\n });\n\n it(\"is assignable to Osdk<> with $notStrict\", () => {\n const instance: Osdk.Instance<Employee> = {} as any;\n const osdk: Osdk<Employee, \"$notStrict\"> = instance;\n const osdk2: Osdk<Employee, \"$notStrict\" | \"$all\"> = instance;\n });\n\n it(\"is assignable from Osdk<> with $notStrict\", () => {\n const osdk: Osdk<Employee, \"$notStrict\"> = {} as any;\n const osdk2: Osdk<Employee, \"$notStrict\" | \"$all\"> = osdk;\n const instance: Osdk.Instance<Employee> = osdk;\n const instance2: Osdk.Instance<Employee> = osdk2;\n });\n\n it(\"object with any for props is assignable to its normal self\", () => {\n const foo: readonly Osdk.Instance<Employee, never, any>[] = {} as any;\n\n const bar: readonly Osdk.Instance<\n Employee,\n never,\n PropertyKeys<Employee>\n >[] = foo;\n });\n});\n"],"mappings":"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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WACU,CAAC;MACL,CAAC,CAAC;MAEF7B,EAAE,CAAC,0CAA0C,EAAE,YAAY;QACzD,MAAM;UAAEY,IAAI,EAAE,CAACC,QAAQ;QAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;QAE/DhB,MAAM,CACJe,QAAQ,CAACgE,4CAA4C,CAClDE,oBAAoB,CACnB,8CACF,CACJ,CAAC,CAAC7D,OAAO,CACP,KACF,CAAC;MACH,CAAC,CAAC;MAEFlB,EAAE,CAAC,yBAAyB,EAAE,YAAY;QACxC,MAAM;UAAEY,IAAI,EAAE,CAACC,QAAQ;QAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;QAC/DhB,MAAM,CAACe,QAAQ,CAACgE,4CAA4C,CAAC,CAC1D1B,WAAW,CAAC,CAAC;QAChBrD,MAAM,CACJiB,MAAM,CAACiE,QAAQ,CACbnE,QAAQ,CAACgE,4CAA4C,CAClDC,cACL,CACF,CAAC,CAAC1C,IAAI,CAAC,IAAI,CAAC;MACd,CAAC,CAAC;MAEFpC,EAAE,CAAC,4BAA4B,EAAE,YAAY;QAC3C,MAAM;UAAEY,IAAI,EAAE,CA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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"convertWireToOsdkObjects.test.js","names":["$ontologyRid","Employee","FooInterface","objectTypeWithAllPropertyTypes","createSharedClientContext","LegacyFauxFoundry","startNodeApiServer","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","createMinimalClient","convertWireToOsdkObjects","convertWireToOsdkObjects2","client","interfaceToObjectTypeMappings","fooSpt","testSetup","apiServer","close","data","employee","fetchPage","Object","keys","sort","toEqual","$as","$link","employee2","where","$and","employeeId","$gt","$lt","JSON","stringify","toMatchInlineSnapshot","employees","length","toBeGreaterThanOrEqual","a","b","getPrototypeOf","toBe","withValues","id","attachment","attachmentArray","toMatchTypeOf","rid","Array","isArray","toBeTruthy","withoutValues","emptyAttachment","emptyAttachmentArray","toBeUndefined","mediaReference","toBeDefined","emptyMedia","somePropertyThatShouldNotExist","toThrow","objAsFoo","clientCtx","ontologyRid","object","__apiName","apiName","__primaryKey","prototypeBefore","object2","undefined","prototypeAfter","not","__title","obj","fullName","__rid","$rid","rejects","toThrowErrorMatchingInlineSnapshot","resolves","to","result","$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata","ObjectMetadata","propertyIsEnumerable","isFrozen","InterfaceMetadata","objAsFoo2","instance","osdk"],"sources":["convertWireToOsdkObjects.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Attachment, Media, Osdk, PropertyKeys } from \"@osdk/api\";\nimport {\n $ontologyRid,\n Employee,\n FooInterface,\n objectTypeWithAllPropertyTypes,\n} from \"@osdk/client.test.ontology\";\nimport type { OntologyObjectV2 } from \"@osdk/foundry.ontologies\";\nimport { createSharedClientContext } from \"@osdk/shared.client.impl\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport { additionalContext, type Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport {\n convertWireToOsdkObjects,\n convertWireToOsdkObjects2,\n} from \"./convertWireToOsdkObjects.js\";\n\ndescribe(\"convertWireToOsdkObjects\", () => {\n let client: Client;\n const interfaceToObjectTypeMappings = {\n FooInterface: { Employee: { fooSpt: \"fullName\" } },\n };\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"configures properties correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n\n expect(Object.keys(employee).sort()).toEqual([\n \"employeeId\",\n \"$title\",\n \"fullName\",\n \"office\",\n \"class\",\n \"startDate\",\n \"employeeSensor\",\n \"employeeStatus\",\n \"$apiName\",\n \"$objectType\",\n \"$primaryKey\",\n \"$objectSpecifier\",\n \"employeeLocation\",\n ].sort());\n\n expect(Object.keys(employee.$as)).toEqual([]);\n expect(Object.keys(employee.$link)).toEqual([\n \"lead\",\n \"officeLink\",\n \"peeps\",\n ]);\n });\n\n it(\"stringifies properties on objects and interfaces correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const { data: [employee2] } = await client(Employee).where({\n $and: [{ employeeId: { $gt: 50030 } }, { employeeId: { $lt: 50032 } }],\n }).fetchPage();\n\n // Should not have $title\n expect(JSON.stringify(employee)).toMatchInlineSnapshot(\n `\"{\"employeeId\":50030,\"fullName\":\"John Doe\",\"office\":\"NYC\",\"class\":\"Red\",\"startDate\":\"2019-01-01\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"$objectSpecifier\":\"Employee:50030\"}\"`,\n );\n\n expect(JSON.stringify(employee.$as(FooInterface))).toMatchInlineSnapshot(\n `\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"$objectSpecifier\":\"Employee:50030\",\"fooSpt\":\"John Doe\"}\"`,\n );\n\n // Should have $title\n expect(JSON.stringify(employee2)).toMatchInlineSnapshot(\n `\"{\"employeeId\":50031,\"fullName\":\"Jane Doe\",\"office\":\"SEA\",\"class\":\"Blue\",\"startDate\":\"2012-02-12\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$title\":\"Jane Doe\",\"$objectSpecifier\":\"Employee:50031\"}\"`,\n );\n\n expect(JSON.stringify(employee2.$as(FooInterface))).toMatchInlineSnapshot(\n `\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$objectSpecifier\":\"Employee:50031\",\"$title\":\"Jane Doe\",\"fooSpt\":\"Jane Doe\"}\"`,\n );\n });\n\n it(\"reuses the object prototype across objects\", async () => {\n const employees = await client(Employee).fetchPage();\n expect(employees.data.length).toBeGreaterThanOrEqual(2);\n const [a, b] = employees.data;\n\n expect(Object.getPrototypeOf(Object.getPrototypeOf(a))).toBe(\n Object.getPrototypeOf(Object.getPrototypeOf(b)),\n );\n });\n\n it(\"converts attachments as expected\", async () => {\n const withValues = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n\n const { attachment, attachmentArray } = withValues.data[0];\n\n expectTypeOf(attachment).toMatchTypeOf<\n Attachment | undefined\n >;\n expect(attachment?.rid).toEqual(\n \"ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75\",\n );\n expect(Array.isArray(attachmentArray)).toBeTruthy();\n expectTypeOf(attachmentArray![0]).toMatchTypeOf<Attachment>;\n\n const withoutValues = await client(\n objectTypeWithAllPropertyTypes,\n ).where({ id: 2 }).fetchPage();\n\n const {\n attachment: emptyAttachment,\n attachmentArray: emptyAttachmentArray,\n } = withoutValues.data[0];\n expect(emptyAttachment).toBeUndefined();\n expect(emptyAttachmentArray).toBeUndefined();\n });\n\n it(\"converts media as expected\", async () => {\n const withValues = await client(\n objectTypeWithAllPropertyTypes,\n )\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n\n const { mediaReference } = withValues.data[0];\n\n expectTypeOf(mediaReference).toMatchTypeOf<\n Media | undefined\n >;\n expect(mediaReference).toBeDefined();\n\n const withoutValues = await client(\n objectTypeWithAllPropertyTypes,\n ).where({ id: 2 }).fetchPage();\n\n const {\n mediaReference: emptyMedia,\n } = withoutValues.data[0];\n expect(emptyMedia).toBeUndefined();\n });\n\n it(\"creates immutable objects\", async () => {\n const employees = await client(Employee).fetchPage();\n expect(employees.data.length).toBeGreaterThanOrEqual(2);\n const [a, b] = employees.data;\n\n expect(a).toBeDefined();\n expect(() => {\n (a as any).somePropertyThatShouldNotExist = 5;\n }).toThrow();\n\n const objAsFoo = a.$as(FooInterface);\n expect(objAsFoo).toBeDefined();\n expect(() => {\n (objAsFoo as any).somePropertyThatShouldNotExist = 5;\n }).toThrow();\n });\n\n it(\"works even with unknown apiNames - old\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n createSharedClientContext(\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n \"userAgent\",\n );\n\n const object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n } as const;\n const prototypeBefore = Object.getPrototypeOf(object);\n const object2 = await convertWireToOsdkObjects(\n clientCtx,\n [object],\n undefined,\n undefined,\n {},\n undefined,\n false,\n );\n const prototypeAfter = Object.getPrototypeOf(object2);\n\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n\n it(\"works even with unknown apiNames - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n createSharedClientContext(\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n \"userAgent\",\n );\n\n const object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n } as const;\n const prototypeBefore = Object.getPrototypeOf(object);\n const object2 = await convertWireToOsdkObjects2(\n clientCtx,\n [object],\n undefined,\n {},\n undefined,\n undefined,\n false,\n );\n const prototypeAfter = Object.getPrototypeOf(object2);\n\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n\n it(\"reconstitutes interfaces properly without rid - old\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n fooSpt: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n undefined,\n {},\n )) as unknown as Osdk<FooInterface>[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n });\n\n it(\"reconstitutes interfaces properly without rid - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n fullName: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects2(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n {},\n false,\n undefined,\n false,\n interfaceToObjectTypeMappings,\n )) as unknown as Osdk<FooInterface>[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fullName\": \"Steve\",\n }\n `);\n });\n\n it(\"reconstitutes interfaces properly with rid\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fooSpt: \"Steve\",\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n undefined,\n {},\n )) as unknown as Osdk<FooInterface, \"$rid\" | \"$all\">[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n expect(obj.$rid).toEqual(\"hiMom\");\n });\n\n it(\"reconstitutes interfaces properly with rid - new\", async () => {\n const clientCtx = createMinimalClient(\n { ontologyRid: $ontologyRid },\n \"https://stack.palantir.com\",\n async () => \"myAccessToken\",\n );\n\n const objectFromWire = {\n __apiName: \"Employee\" as const,\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fullName: \"Steve\",\n employeeId: 0,\n } satisfies OntologyObjectV2;\n\n const [objAsFoo] = (await convertWireToOsdkObjects2(\n clientCtx,\n [objectFromWire],\n FooInterface.apiName,\n {},\n false,\n undefined,\n false,\n interfaceToObjectTypeMappings,\n )) as unknown as Osdk<FooInterface, \"$rid\" | \"$all\">[];\n\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectSpecifier\": \"Employee:0\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n expect(obj.$rid).toEqual(\"hiMom\");\n });\n\n describe(\"selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"employeeId\"],\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when optional is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"fullName\"],\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"employeeId\"],\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects(\n client[additionalContext],\n [object],\n undefined,\n undefined,\n {},\n [\"fullName\"],\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"employeeId\"],\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when optional is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"fullName\"],\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"employeeId\"],\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n [\"fullName\"],\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"without selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when required is present\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n describe(\"without selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n await expect(() =>\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n )\n ).rejects.toThrowErrorMatchingInlineSnapshot(\n `[Error: Unable to safely convert objects as some non nullable properties are null]`,\n );\n });\n\n it(\"does not throw when required is present\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n await expect(\n convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"throw\",\n ),\n ).resolves.to.not.toBeUndefined();\n });\n\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(0);\n });\n\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n undefined,\n {},\n undefined,\n undefined,\n \"drop\",\n );\n\n expect(result.length).toBe(1);\n });\n });\n\n it(\"behaves correctly when converting\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n fooSpt: \"hi\",\n } as const;\n\n const result = await convertWireToOsdkObjects2(\n client[additionalContext],\n [object],\n \"FooInterface\",\n {},\n undefined,\n [\"fooSpt\"],\n \"drop\",\n interfaceToObjectTypeMappings,\n );\n\n expect(result.length).toBe(1);\n });\n\n describe(\"$metadata\", () => {\n describe(\"object\", () => {\n it(\"has an accessible object on $__experimental-metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata,\n )\n .toMatchInlineSnapshot(\n `\n {\n \"apiName\": \"Employee\",\n \"description\": \"A full-time or part-time \n\n employee of our firm\",\n \"displayName\": \"Employee\",\n \"icon\": {\n \"color\": \"blue\",\n \"name\": \"person\",\n \"type\": \"blueprint\",\n },\n \"implements\": [\n \"FooInterface\",\n ],\n \"interfaceMap\": {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n \"inverseInterfaceMap\": {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n \"links\": {\n \"lead\": {\n \"multiplicity\": false,\n \"targetType\": \"Employee\",\n },\n \"officeLink\": {\n \"multiplicity\": false,\n \"targetType\": \"Office\",\n },\n \"peeps\": {\n \"multiplicity\": true,\n \"targetType\": \"Employee\",\n },\n },\n \"pluralDisplayName\": \"Employees\",\n \"primaryKeyApiName\": \"employeeId\",\n \"primaryKeyType\": \"integer\",\n \"properties\": {\n \"class\": {\n \"description\": \"\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"employeeId\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"integer\",\n },\n \"employeeLocation\": {\n \"description\": \"Geotime series reference of the location of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"geotimeSeriesReference\",\n },\n \"employeeSensor\": {\n \"description\": \"TimeSeries sensor of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"sensorTimeseries\",\n },\n \"employeeStatus\": {\n \"description\": \"TimeSeries of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"stringTimeseries\",\n },\n \"fullName\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"office\": {\n \"description\": \"The unique \"ID\" of the employee's \\\\\"primary\\\\\" assigned office.\n This is some more text.\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"skillSet\": {\n \"description\": \"The skills of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"skillSetEmbedding\": {\n \"description\": \"Vectorized skill set\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"vector\",\n },\n \"startDate\": {\n \"description\": \"The date the employee was hired (most recently, if they were re-hired)\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"datetime\",\n },\n },\n \"rid\": \"ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44\",\n \"status\": \"ACTIVE\",\n \"titleProperty\": \"fullName\",\n \"type\": \"object\",\n \"visibility\": \"NORMAL\",\n Symbol(InterfaceDefinitions): {\n \"FooInterface\": {\n \"def\": {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {\n \"toBar\": {\n \"multiplicity\": true,\n \"targetType\": \"interface\",\n \"targetTypeApiName\": \"BarInterface\",\n },\n },\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n },\n \"handler\": undefined,\n },\n },\n }\n `,\n );\n });\n\n it(\"$experimental_metadata is not enumerable\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .propertyIsEnumerable(\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n ),\n ).toEqual(\n false,\n );\n });\n\n it(\"returns frozen metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n expect(employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n Object.isFrozen(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .ObjectMetadata,\n ),\n ).toBe(true);\n });\n\n it(\"returns the same reference\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const { data: [employee2] } = await client(Employee).fetchPage();\n expect(\n employee.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata.ObjectMetadata,\n )\n .toBe(\n employee2.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .ObjectMetadata,\n );\n });\n });\n\n describe(\"interface\", () => {\n it(\"has an accessible interface on $__experimental-metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n )\n .toMatchInlineSnapshot(\n `\n {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {\n \"toBar\": {\n \"multiplicity\": true,\n \"targetType\": \"interface\",\n \"targetTypeApiName\": \"BarInterface\",\n },\n },\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n }\n `,\n );\n });\n it(\"$experimental_metadata is not enumerable\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .propertyIsEnumerable(\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n ),\n ).toEqual(\n false,\n );\n });\n it(\"returns frozen metadata\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n expect(objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata)\n .toBeDefined();\n expect(\n Object.isFrozen(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n ),\n ).toBe(true);\n });\n it(\"returns the same reference\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n const objAsFoo = employee.$as(FooInterface);\n const { data: [employee2] } = await client(Employee).fetchPage();\n const objAsFoo2 = employee2.$as(FooInterface);\n expect(\n objAsFoo.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n )\n .toBe(\n objAsFoo2.$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\n .InterfaceMetadata,\n );\n });\n });\n });\n});\n\ndescribe(\"Osdk.Instance\", () => {\n it(\"is assignable to Osdk<>\", () => {\n const instance: Osdk.Instance<Employee> = {} as any;\n const osdk: Osdk<Employee> = instance;\n });\n\n it(\"is assignable from Osdk<>\", () => {\n const osdk: Osdk<Employee> = {} as any;\n const instance: Osdk.Instance<Employee> = osdk;\n });\n\n it(\"is assignable to Osdk<> with $notStrict\", () => {\n const instance: Osdk.Instance<Employee> = {} as any;\n const osdk: Osdk<Employee, \"$notStrict\"> = instance;\n const osdk2: Osdk<Employee, \"$notStrict\" | \"$all\"> = instance;\n });\n\n it(\"is assignable from Osdk<> with $notStrict\", () => {\n const osdk: Osdk<Employee, \"$notStrict\"> = {} as any;\n const osdk2: Osdk<Employee, \"$notStrict\" | \"$all\"> = osdk;\n const instance: Osdk.Instance<Employee> = osdk;\n const instance2: Osdk.Instance<Employee> = osdk2;\n });\n\n it(\"object with any for props is assignable to its normal self\", () => {\n const foo: readonly Osdk.Instance<Employee, never, any>[] = {} as any;\n\n const bar: readonly Osdk.Instance<\n Employee,\n never,\n PropertyKeys<Employee>\n >[] = foo;\n });\n});\n"],"mappings":"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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WACU,CAAC;MACL,CAAC,CAAC;MAEF7B,EAAE,CAAC,0CAA0C,EAAE,YAAY;QACzD,MAAM;UAAEY,IAAI,EAAE,CAACC,QAAQ;QAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;QAE/DhB,MAAM,CACJe,QAAQ,CAACgE,4CAA4C,CAClDE,oBAAoB,CACnB,8CACF,CACJ,CAAC,CAAC7D,OAAO,CACP,KACF,CAAC;MACH,CAAC,CAAC;MAEFlB,EAAE,CAAC,yBAAyB,EAAE,YAAY;QACxC,MAAM;UAAEY,IAAI,EAAE,CAACC,QAAQ;QAAE,CAAC,GAAG,MAAMP,MAAM,CAAChB,QAAQ,CAAC,CAACwB,SAAS,CAAC,CAAC;QAC/DhB,MAAM,CAACe,QAAQ,CAACgE,4CAA4C,CAAC,CAC1D1B,WAAW,CAAC,CAAC;QAChBrD,MAAM,CACJiB,MAAM,CAACiE,QAAQ,CACbnE,QAAQ,CAACgE,4CAA4C,CAClDC,cACL,CACF,CAAC,CAAC1C,IAAI,CAAC,IAAI,CAAC;MACd,CAAC,CAAC;MAEFpC,EAAE,CAAC,4BAA4B,EAAE,YAAY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","ignoreList":[]}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import * as OntologiesV2 from "@osdk/foundry.ontologies";
|
|
18
18
|
import { addUserAgentAndRequestContextHeaders } from "../util/addUserAgentAndRequestContextHeaders.js";
|
|
19
|
+
import { extractObjectOrInterfaceType } from "../util/extractObjectOrInterfaceType.js";
|
|
19
20
|
import { extractRdpDefinition } from "../util/extractRdpDefinition.js";
|
|
20
21
|
import { resolveBaseObjectSetType } from "../util/objectSetUtils.js";
|
|
21
22
|
export function augment(type, ...properties) {
|
|
@@ -72,8 +73,9 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet, useSna
|
|
|
72
73
|
interfaceType.apiName, !args.$includeRid, await extractRdpDefinition(client, objectSet));
|
|
73
74
|
return result;
|
|
74
75
|
}
|
|
76
|
+
const resolvedInterfaceObjectSet = resolveInterfaceObjectSet(objectSet, interfaceType.apiName, args);
|
|
75
77
|
const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, applyFetchArgs(args, {
|
|
76
|
-
objectSet:
|
|
78
|
+
objectSet: resolvedInterfaceObjectSet,
|
|
77
79
|
select: args?.$select ?? [],
|
|
78
80
|
excludeRid: !args?.$includeRid,
|
|
79
81
|
snapshot: useSnapshot
|
|
@@ -81,7 +83,7 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet, useSna
|
|
|
81
83
|
preview: true
|
|
82
84
|
});
|
|
83
85
|
return Promise.resolve({
|
|
84
|
-
data: await client.objectFactory2(client, result.data, interfaceType.apiName, {}, !args.$includeRid, args.$select, false, result.interfaceToObjectTypeMappings),
|
|
86
|
+
data: await client.objectFactory2(client, result.data, (await extractObjectOrInterfaceType(client, resolvedInterfaceObjectSet))?.apiName ?? interfaceType.apiName, {}, !args.$includeRid, args.$select, false, result.interfaceToObjectTypeMappings),
|
|
85
87
|
nextPageToken: result.nextPageToken,
|
|
86
88
|
totalCount: result.totalCount
|
|
87
89
|
});
|
|
@@ -151,6 +153,11 @@ function applyFetchArgs(args, body) {
|
|
|
151
153
|
|
|
152
154
|
/** @internal */
|
|
153
155
|
export async function fetchObjectPage(client, objectType, args, objectSet, useSnapshot = false) {
|
|
156
|
+
// For simple object fetches, since we know the object type up front
|
|
157
|
+
// we can parallelize network requests for loading metadata and loading the actual objects
|
|
158
|
+
// In our object factory we await and block on loading the metadata, which if this call finishes, should already be cached on the client
|
|
159
|
+
|
|
160
|
+
void client.ontologyProvider.getObjectDefinition(objectType.apiName);
|
|
154
161
|
const r = await OntologiesV2.OntologyObjectSets.load(addUserAgentAndRequestContextHeaders(client, objectType), await client.ontologyRid, applyFetchArgs(args, {
|
|
155
162
|
objectSet,
|
|
156
163
|
// We have to do the following case because LoadObjectSetRequestV2 isn't readonly
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchPage.js","names":["OntologiesV2","addUserAgentAndRequestContextHeaders","extractRdpDefinition","resolveBaseObjectSetType","augment","type","properties","apiName","objectSetToSearchJsonV2","objectSet","expectedApiName","existingWhere","undefined","objectType","Error","interfaceType","where","value","resolveInterfaceObjectSet","interfaceTypeApiName","args","$includeAllBaseObjectProperties","objectSets","includeAllBaseObjectProperties","fetchInterfacePage","client","useSnapshot","$__UNSTABLE_useOldInterfaceApis","result","OntologyInterfaces","search","ontologyRid","applyFetchArgs","augmentedProperties","augmentedSharedPropertyTypes","otherInterfaceTypes","selectedObjectTypes","selectedSharedPropertyTypes","$select","preview","data","objectFactory","$includeRid","OntologyObjectSets","loadMultipleObjectTypes","select","excludeRid","snapshot","Promise","resolve","objectFactory2","interfaceToObjectTypeMappings","nextPageToken","totalCount","fetchPageInternal","fetchObjectPage","fetchPageWithErrorsInternal","e","error","fetchPage","fetchPageWithErrors","body","$nextPageToken","pageToken","$pageSize","pageSize","$orderBy","orderBy","fields","Object","entries","map","field","direction","r","load"],"sources":["fetchPage.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n Augment,\n Augments,\n FetchPageArgs,\n FetchPageResult,\n InterfaceDefinition,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectTypeDefinition,\n PropertyKeys,\n Result,\n} from \"@osdk/api\";\nimport type { PageSize, PageToken } from \"@osdk/foundry.core\";\nimport type {\n LoadObjectSetRequestV2,\n LoadObjectSetV2MultipleObjectTypesRequest,\n ObjectSet,\n OntologyObjectV2,\n SearchJsonQueryV2,\n SearchObjectsForInterfaceRequest,\n SearchOrderByV2,\n} from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { extractRdpDefinition } from \"../util/extractRdpDefinition.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n\nexport function augment<\n Q extends ObjectOrInterfaceDefinition,\n T extends PropertyKeys<Q>,\n>(\n type: Q,\n ...properties: T[]\n): Augment<Q, T> {\n return { [type.apiName]: properties } as any;\n}\n\n/** @internal */\nexport function objectSetToSearchJsonV2(\n objectSet: ObjectSet,\n expectedApiName: string,\n existingWhere: SearchJsonQueryV2 | undefined = undefined,\n): SearchJsonQueryV2 | undefined {\n if (objectSet.type === \"base\" || objectSet.type === \"interfaceBase\") {\n if (objectSet.type === \"base\" && objectSet.objectType !== expectedApiName) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.objectType}`,\n );\n }\n if (\n objectSet.type === \"interfaceBase\"\n && objectSet.interfaceType !== expectedApiName\n ) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.interfaceType}`,\n );\n }\n\n return existingWhere;\n }\n\n if (objectSet.type === \"filter\") {\n return objectSetToSearchJsonV2(\n objectSet.objectSet,\n expectedApiName,\n existingWhere == null ? objectSet.where : {\n type: \"and\",\n value: [existingWhere, objectSet.where],\n },\n );\n }\n\n throw new Error(`Unsupported objectSet type: ${objectSet.type}`);\n}\n\n/** @internal */\nexport function resolveInterfaceObjectSet(\n objectSet: ObjectSet,\n interfaceTypeApiName: string,\n args: FetchPageArgs<any, any, any, any, any, any>,\n): ObjectSet {\n return args?.$includeAllBaseObjectProperties\n ? {\n type: \"intersect\",\n objectSets: [objectSet, {\n type: \"interfaceBase\",\n interfaceType: interfaceTypeApiName,\n includeAllBaseObjectProperties: true,\n }],\n }\n : objectSet;\n}\n\nasync function fetchInterfacePage<\n Q extends InterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n interfaceType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet,\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (args.$__UNSTABLE_useOldInterfaceApis) {\n const result = await OntologiesV2.OntologyInterfaces\n .search(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n interfaceType.apiName,\n applyFetchArgs<SearchObjectsForInterfaceRequest>(args, {\n augmentedProperties: {},\n augmentedSharedPropertyTypes: {},\n otherInterfaceTypes: [],\n selectedObjectTypes: [],\n selectedSharedPropertyTypes: args.$select as undefined | string[]\n ?? [],\n where: objectSetToSearchJsonV2(objectSet, interfaceType.apiName),\n }),\n { preview: true },\n );\n\n result.data = await client.objectFactory(\n client,\n result.data as OntologyObjectV2[], // drop readonly\n interfaceType.apiName,\n !args.$includeRid,\n await extractRdpDefinition(client, objectSet),\n );\n return result as any;\n }\n const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n applyFetchArgs<LoadObjectSetV2MultipleObjectTypesRequest>(args, {\n objectSet: resolveInterfaceObjectSet(\n objectSet,\n interfaceType.apiName,\n args,\n ),\n select: ((args?.$select as string[] | undefined) ?? []),\n excludeRid: !args?.$includeRid,\n snapshot: useSnapshot,\n }),\n { preview: true },\n );\n return Promise.resolve({\n data: await client.objectFactory2(\n client,\n result.data,\n interfaceType.apiName,\n {},\n !args.$includeRid,\n args.$select,\n false,\n result.interfaceToObjectTypeMappings,\n ),\n nextPageToken: result.nextPageToken,\n totalCount: result.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n\n/** @internal */\nexport async function fetchPageInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (objectType.type === \"interface\") {\n return await fetchInterfacePage(\n client,\n objectType,\n args,\n objectSet,\n useSnapshot,\n ) as any; // fixme\n } else {\n return await fetchObjectPage(\n client,\n objectType,\n args,\n objectSet,\n useSnapshot,\n ) as any; // fixme\n }\n}\n\n/** @internal */\nexport async function fetchPageWithErrorsInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n try {\n const result = await fetchPageInternal(client, objectType, objectSet, args);\n return { value: result };\n } catch (e) {\n if (e instanceof Error) {\n return { error: e };\n }\n return { error: e as Error };\n }\n}\n\n/**\n * @param client\n * @param objectType\n * @param args\n * @param objectSet\n * @returns\n * @internal\n */\nexport async function fetchPage<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n return fetchPageInternal(client, objectType, objectSet, args);\n}\n\n/** @internal */\nexport async function fetchPageWithErrors<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n return fetchPageWithErrorsInternal(client, objectType, objectSet, args);\n}\n\nfunction applyFetchArgs<\n X extends {\n orderBy?: SearchOrderByV2;\n pageToken?: PageToken;\n pageSize?: PageSize;\n },\n>(\n args: FetchPageArgs<any, any, any, any, any, any>,\n body: X,\n): X {\n if (args?.$nextPageToken) {\n body.pageToken = args.$nextPageToken;\n }\n\n if (args?.$pageSize != null) {\n body.pageSize = args.$pageSize;\n }\n\n if (args?.$orderBy != null) {\n body.orderBy = {\n fields: Object.entries(args.$orderBy).map(([field, direction]) => ({\n field,\n direction,\n })),\n };\n }\n\n return body;\n}\n\n/** @internal */\nexport async function fetchObjectPage<\n Q extends ObjectTypeDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, Augments, S, T>,\n objectSet: ObjectSet,\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n const r = await OntologiesV2.OntologyObjectSets.load(\n addUserAgentAndRequestContextHeaders(client, objectType),\n await client.ontologyRid,\n applyFetchArgs<LoadObjectSetRequestV2>(args, {\n objectSet,\n // We have to do the following case because LoadObjectSetRequestV2 isn't readonly\n select: ((args?.$select as string[] | undefined) ?? []), // FIXME?\n excludeRid: !args?.$includeRid,\n snapshot: useSnapshot,\n }),\n );\n\n return Promise.resolve({\n data: await client.objectFactory(\n client,\n r.data as OntologyObjectV2[],\n undefined,\n undefined,\n await extractRdpDefinition(client, objectSet),\n args.$select,\n ),\n nextPageToken: r.nextPageToken,\n totalCount: r.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"fetchPage.js","names":["OntologiesV2","addUserAgentAndRequestContextHeaders","extractObjectOrInterfaceType","extractRdpDefinition","resolveBaseObjectSetType","augment","type","properties","apiName","objectSetToSearchJsonV2","objectSet","expectedApiName","existingWhere","undefined","objectType","Error","interfaceType","where","value","resolveInterfaceObjectSet","interfaceTypeApiName","args","$includeAllBaseObjectProperties","objectSets","includeAllBaseObjectProperties","fetchInterfacePage","client","useSnapshot","$__UNSTABLE_useOldInterfaceApis","result","OntologyInterfaces","search","ontologyRid","applyFetchArgs","augmentedProperties","augmentedSharedPropertyTypes","otherInterfaceTypes","selectedObjectTypes","selectedSharedPropertyTypes","$select","preview","data","objectFactory","$includeRid","resolvedInterfaceObjectSet","OntologyObjectSets","loadMultipleObjectTypes","select","excludeRid","snapshot","Promise","resolve","objectFactory2","interfaceToObjectTypeMappings","nextPageToken","totalCount","fetchPageInternal","fetchObjectPage","fetchPageWithErrorsInternal","e","error","fetchPage","fetchPageWithErrors","body","$nextPageToken","pageToken","$pageSize","pageSize","$orderBy","orderBy","fields","Object","entries","map","field","direction","ontologyProvider","getObjectDefinition","r","load"],"sources":["fetchPage.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n Augment,\n Augments,\n FetchPageArgs,\n FetchPageResult,\n InterfaceDefinition,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectTypeDefinition,\n PropertyKeys,\n Result,\n} from \"@osdk/api\";\nimport type { PageSize, PageToken } from \"@osdk/foundry.core\";\nimport type {\n LoadObjectSetRequestV2,\n LoadObjectSetV2MultipleObjectTypesRequest,\n ObjectSet,\n OntologyObjectV2,\n SearchJsonQueryV2,\n SearchObjectsForInterfaceRequest,\n SearchOrderByV2,\n} from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { extractObjectOrInterfaceType } from \"../util/extractObjectOrInterfaceType.js\";\nimport { extractRdpDefinition } from \"../util/extractRdpDefinition.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n\nexport function augment<\n Q extends ObjectOrInterfaceDefinition,\n T extends PropertyKeys<Q>,\n>(\n type: Q,\n ...properties: T[]\n): Augment<Q, T> {\n return { [type.apiName]: properties } as any;\n}\n\n/** @internal */\nexport function objectSetToSearchJsonV2(\n objectSet: ObjectSet,\n expectedApiName: string,\n existingWhere: SearchJsonQueryV2 | undefined = undefined,\n): SearchJsonQueryV2 | undefined {\n if (objectSet.type === \"base\" || objectSet.type === \"interfaceBase\") {\n if (objectSet.type === \"base\" && objectSet.objectType !== expectedApiName) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.objectType}`,\n );\n }\n if (\n objectSet.type === \"interfaceBase\"\n && objectSet.interfaceType !== expectedApiName\n ) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.interfaceType}`,\n );\n }\n\n return existingWhere;\n }\n\n if (objectSet.type === \"filter\") {\n return objectSetToSearchJsonV2(\n objectSet.objectSet,\n expectedApiName,\n existingWhere == null ? objectSet.where : {\n type: \"and\",\n value: [existingWhere, objectSet.where],\n },\n );\n }\n\n throw new Error(`Unsupported objectSet type: ${objectSet.type}`);\n}\n\n/** @internal */\nexport function resolveInterfaceObjectSet(\n objectSet: ObjectSet,\n interfaceTypeApiName: string,\n args: FetchPageArgs<any, any, any, any, any, any>,\n): ObjectSet {\n return args?.$includeAllBaseObjectProperties\n ? {\n type: \"intersect\",\n objectSets: [objectSet, {\n type: \"interfaceBase\",\n interfaceType: interfaceTypeApiName,\n includeAllBaseObjectProperties: true,\n }],\n }\n : objectSet;\n}\n\nasync function fetchInterfacePage<\n Q extends InterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n interfaceType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet,\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (args.$__UNSTABLE_useOldInterfaceApis) {\n const result = await OntologiesV2.OntologyInterfaces\n .search(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n interfaceType.apiName,\n applyFetchArgs<SearchObjectsForInterfaceRequest>(args, {\n augmentedProperties: {},\n augmentedSharedPropertyTypes: {},\n otherInterfaceTypes: [],\n selectedObjectTypes: [],\n selectedSharedPropertyTypes: args.$select as undefined | string[]\n ?? [],\n where: objectSetToSearchJsonV2(objectSet, interfaceType.apiName),\n }),\n { preview: true },\n );\n\n result.data = await client.objectFactory(\n client,\n result.data as OntologyObjectV2[], // drop readonly\n interfaceType.apiName,\n !args.$includeRid,\n await extractRdpDefinition(client, objectSet),\n );\n return result as any;\n }\n const resolvedInterfaceObjectSet = resolveInterfaceObjectSet(\n objectSet,\n interfaceType.apiName,\n args,\n );\n const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n applyFetchArgs<LoadObjectSetV2MultipleObjectTypesRequest>(args, {\n objectSet: resolvedInterfaceObjectSet,\n select: ((args?.$select as string[] | undefined) ?? []),\n excludeRid: !args?.$includeRid,\n snapshot: useSnapshot,\n }),\n { preview: true },\n );\n\n return Promise.resolve({\n data: await client.objectFactory2(\n client,\n result.data,\n (await extractObjectOrInterfaceType(client, resolvedInterfaceObjectSet))\n ?.apiName\n ?? interfaceType.apiName,\n {},\n !args.$includeRid,\n args.$select,\n false,\n result.interfaceToObjectTypeMappings,\n ),\n nextPageToken: result.nextPageToken,\n totalCount: result.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n\n/** @internal */\nexport async function fetchPageInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (objectType.type === \"interface\") {\n return await fetchInterfacePage(\n client,\n objectType,\n args,\n objectSet,\n useSnapshot,\n ) as any; // fixme\n } else {\n return await fetchObjectPage(\n client,\n objectType,\n args,\n objectSet,\n useSnapshot,\n ) as any; // fixme\n }\n}\n\n/** @internal */\nexport async function fetchPageWithErrorsInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n try {\n const result = await fetchPageInternal(client, objectType, objectSet, args);\n return { value: result };\n } catch (e) {\n if (e instanceof Error) {\n return { error: e };\n }\n return { error: e as Error };\n }\n}\n\n/**\n * @param client\n * @param objectType\n * @param args\n * @param objectSet\n * @returns\n * @internal\n */\nexport async function fetchPage<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n return fetchPageInternal(client, objectType, objectSet, args);\n}\n\n/** @internal */\nexport async function fetchPageWithErrors<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n return fetchPageWithErrorsInternal(client, objectType, objectSet, args);\n}\n\nfunction applyFetchArgs<\n X extends {\n orderBy?: SearchOrderByV2;\n pageToken?: PageToken;\n pageSize?: PageSize;\n },\n>(\n args: FetchPageArgs<any, any, any, any, any, any>,\n body: X,\n): X {\n if (args?.$nextPageToken) {\n body.pageToken = args.$nextPageToken;\n }\n\n if (args?.$pageSize != null) {\n body.pageSize = args.$pageSize;\n }\n\n if (args?.$orderBy != null) {\n body.orderBy = {\n fields: Object.entries(args.$orderBy).map(([field, direction]) => ({\n field,\n direction,\n })),\n };\n }\n\n return body;\n}\n\n/** @internal */\nexport async function fetchObjectPage<\n Q extends ObjectTypeDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, Augments, S, T>,\n objectSet: ObjectSet,\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n // For simple object fetches, since we know the object type up front\n // we can parallelize network requests for loading metadata and loading the actual objects\n // In our object factory we await and block on loading the metadata, which if this call finishes, should already be cached on the client\n\n void client.ontologyProvider.getObjectDefinition(objectType.apiName);\n\n const r = await OntologiesV2.OntologyObjectSets.load(\n addUserAgentAndRequestContextHeaders(client, objectType),\n await client.ontologyRid,\n applyFetchArgs<LoadObjectSetRequestV2>(args, {\n objectSet,\n // We have to do the following case because LoadObjectSetRequestV2 isn't readonly\n select: ((args?.$select as string[] | undefined) ?? []), // FIXME?\n excludeRid: !args?.$includeRid,\n snapshot: useSnapshot,\n }),\n );\n\n return Promise.resolve({\n data: await client.objectFactory(\n client,\n r.data as OntologyObjectV2[],\n undefined,\n undefined,\n await extractRdpDefinition(client, objectSet),\n args.$select,\n ),\n nextPageToken: r.nextPageToken,\n totalCount: r.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,7 +17,4 @@
|
|
|
17
17
|
export function isMediaReference(o) {
|
|
18
18
|
return typeof o === `object` && typeof o.mimeType === "string" && "reference" in o && typeof o.reference === "object" && o.reference.type === "mediaSetViewItem" && "mediaSetViewItem" in o.reference && typeof o.reference.mediaSetViewItem === "object" && typeof o.reference.mediaSetViewItem.mediaSetRid === "string" && typeof o.reference.mediaSetViewItem.mediaSetViewRid === "string" && typeof o.reference.mediaSetViewItem.mediaItemRid === "string";
|
|
19
19
|
}
|
|
20
|
-
export function isMediaUpload(o) {
|
|
21
|
-
return typeof o === "object" && "path" in o && typeof o.path === "string" && "data" in o && typeof o.data === "object" && o.data instanceof Blob;
|
|
22
|
-
}
|
|
23
20
|
//# sourceMappingURL=mediaUpload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaUpload.js","names":["isMediaReference","o","mimeType","reference","type","mediaSetViewItem","mediaSetRid","mediaSetViewRid","mediaItemRid"
|
|
1
|
+
{"version":3,"file":"mediaUpload.js","names":["isMediaReference","o","mimeType","reference","type","mediaSetViewItem","mediaSetRid","mediaSetViewRid","mediaItemRid"],"sources":["mediaUpload.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { MediaReference } from \"@osdk/api\";\n\nexport function isMediaReference(o: any): o is MediaReference {\n return typeof o === `object`\n && typeof o.mimeType === \"string\"\n && \"reference\" in o\n && typeof o.reference === \"object\"\n && o.reference.type === \"mediaSetViewItem\"\n && \"mediaSetViewItem\" in o.reference\n && typeof o.reference.mediaSetViewItem === \"object\"\n && typeof o.reference.mediaSetViewItem.mediaSetRid === \"string\"\n && typeof o.reference.mediaSetViewItem.mediaSetViewRid === \"string\"\n && typeof o.reference.mediaSetViewItem.mediaItemRid === \"string\";\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,SAASA,gBAAgBA,CAACC,CAAM,EAAuB;EAC5D,OAAO,OAAOA,CAAC,KAAK,QAAQ,IACvB,OAAOA,CAAC,CAACC,QAAQ,KAAK,QAAQ,IAC9B,WAAW,IAAID,CAAC,IAChB,OAAOA,CAAC,CAACE,SAAS,KAAK,QAAQ,IAC/BF,CAAC,CAACE,SAAS,CAACC,IAAI,KAAK,kBAAkB,IACvC,kBAAkB,IAAIH,CAAC,CAACE,SAAS,IACjC,OAAOF,CAAC,CAACE,SAAS,CAACE,gBAAgB,KAAK,QAAQ,IAChD,OAAOJ,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACC,WAAW,KAAK,QAAQ,IAC5D,OAAOL,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACE,eAAe,KAAK,QAAQ,IAChE,OAAON,CAAC,CAACE,SAAS,CAACE,gBAAgB,CAACG,YAAY,KAAK,QAAQ;AACpE","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { Employee, FooInterface } from "@osdk/client.test.ontology";
|
|
17
|
+
import { BarInterface, Employee, FooInterface } from "@osdk/client.test.ontology";
|
|
18
18
|
import { beforeAll, describe, expect, expectTypeOf, it } from "vitest";
|
|
19
19
|
import { LegacyFauxFoundry, startNodeApiServer } from "@osdk/shared.test";
|
|
20
20
|
import { createClient } from "../createClient.js";
|
|
@@ -81,5 +81,9 @@ describe("ObjectSet", () => {
|
|
|
81
81
|
// @ts-expect-error
|
|
82
82
|
expect(asEmployee2.office).toBeUndefined();
|
|
83
83
|
});
|
|
84
|
+
it("interface links", async () => {
|
|
85
|
+
client(BarInterface).pivotTo("toFoo");
|
|
86
|
+
expectTypeOf().toEqualTypeOf;
|
|
87
|
+
});
|
|
84
88
|
});
|
|
85
89
|
//# sourceMappingURL=InterfaceObjectSet.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InterfaceObjectSet.test.js","names":["Employee","FooInterface","beforeAll","describe","expect","expectTypeOf","it","LegacyFauxFoundry","startNodeApiServer","createClient","client","testSetup","apiServer","close","employeeObjectSet","fooInterfaceSet","union","subtract","intersect","objectSet","data","interfacers","fetchPage","santa","find","obj","$primaryKey","toBeDefined","fooSpt","toEqual","foo","$objectType","$as","fullName","whereClausedInterface","where","$includeAllBaseObjectProperties","interfaceObj","asEmployee","toEqualTypeOf","office","whereClausedInterface2","interfaceObj2","asEmployee2","toBeUndefined"],"sources":["InterfaceObjectSet.test.ts"],"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\nimport {
|
|
1
|
+
{"version":3,"file":"InterfaceObjectSet.test.js","names":["BarInterface","Employee","FooInterface","beforeAll","describe","expect","expectTypeOf","it","LegacyFauxFoundry","startNodeApiServer","createClient","client","testSetup","apiServer","close","employeeObjectSet","fooInterfaceSet","union","subtract","intersect","objectSet","data","interfacers","fetchPage","santa","find","obj","$primaryKey","toBeDefined","fooSpt","toEqual","foo","$objectType","$as","fullName","whereClausedInterface","where","$includeAllBaseObjectProperties","interfaceObj","asEmployee","toEqualTypeOf","office","whereClausedInterface2","interfaceObj2","asEmployee2","toBeUndefined","pivotTo"],"sources":["InterfaceObjectSet.test.ts"],"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\nimport {\n BarInterface,\n Employee,\n FooInterface,\n} from \"@osdk/client.test.ontology\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\n\nimport type { ObjectSet, Osdk, PropertyKeys } from \"@osdk/api\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"ObjectSet\", () => {\n let client: Client;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"does not allow intersect/union/subtract with implementing interface types, for now\", () => {\n const employeeObjectSet = client(Employee);\n const fooInterfaceSet = client(FooInterface);\n\n // @ts-expect-error\n employeeObjectSet.union(fooInterfaceSet);\n\n // @ts-expect-error\n employeeObjectSet.subtract(fooInterfaceSet);\n\n // @ts-expect-error\n employeeObjectSet.intersect(fooInterfaceSet);\n });\n\n it(\"interface objects set loading\", async () => {\n const objectSet = client(FooInterface);\n const { data: interfacers } = await objectSet.fetchPage();\n const santa = interfacers.find(obj => obj.$primaryKey === 50050);\n expect(santa).toBeDefined();\n expect(santa?.fooSpt).toEqual(\"Santa Claus\");\n\n for (const foo of interfacers) {\n if (foo.$objectType === \"Employee\") {\n expect(foo.fooSpt).toEqual(foo.$as(Employee).fullName);\n }\n }\n });\n\n it(\"allows fetching by field from a interface object set - where clause\", async () => {\n const whereClausedInterface = await client(FooInterface).where({\n fooSpt: \"Santa Claus\",\n }).fetchPage({ $includeAllBaseObjectProperties: true });\n\n const interfaceObj = whereClausedInterface.data[0];\n expect(interfaceObj.fooSpt).toEqual(\"Santa Claus\");\n\n const asEmployee = interfaceObj.$as(Employee);\n expectTypeOf<typeof asEmployee>().toEqualTypeOf<\n Osdk.Instance<Employee, \"$allBaseProperties\", PropertyKeys<Employee>, {}>\n >;\n\n expect(asEmployee.fullName).toEqual(\"Santa Claus\");\n expect(asEmployee.office).toEqual(\"NYC\");\n\n const whereClausedInterface2 = await client(FooInterface).where({\n fooSpt: \"Santa Claus\",\n }).fetchPage({\n $includeAllBaseObjectProperties: false,\n });\n\n const interfaceObj2 = whereClausedInterface2.data[0];\n expect(interfaceObj2.fooSpt).toEqual(\"Santa Claus\");\n const asEmployee2 = interfaceObj2.$as(Employee);\n\n expectTypeOf<typeof asEmployee2>().toEqualTypeOf<\n Osdk.Instance<Employee, never, \"fullName\", {}>\n >;\n\n expect(asEmployee2.fullName).toEqual(\"Santa Claus\");\n // @ts-expect-error\n expect(asEmployee2.office).toBeUndefined();\n });\n\n it(\"interface links\", async () => {\n const objectSet = client(BarInterface).pivotTo(\"toFoo\");\n expectTypeOf<typeof objectSet>().toEqualTypeOf<\n ObjectSet<FooInterface, never>\n >;\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -150,10 +150,14 @@ export function createObjectSet(objectType, clientCtx, objectSet = resolveBaseOb
|
|
|
150
150
|
};
|
|
151
151
|
function createSearchAround(link) {
|
|
152
152
|
return () => {
|
|
153
|
-
return clientCtx.objectSetFactory(objectType, clientCtx, {
|
|
153
|
+
return clientCtx.objectSetFactory(objectType, clientCtx, objectType.type === "object" ? {
|
|
154
154
|
type: "searchAround",
|
|
155
155
|
objectSet,
|
|
156
156
|
link
|
|
157
|
+
} : {
|
|
158
|
+
type: "interfaceLinkSearchAround",
|
|
159
|
+
objectSet,
|
|
160
|
+
interfaceLink: link
|
|
157
161
|
});
|
|
158
162
|
};
|
|
159
163
|
}
|