@osdk/client 2.3.0-beta.9 → 2.4.0-beta.1

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.
Files changed (55) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/build/browser/index.js +1 -1
  3. package/build/browser/index.js.map +1 -1
  4. package/build/browser/object/fetchPage.js +9 -7
  5. package/build/browser/object/fetchPage.js.map +1 -1
  6. package/build/browser/objectSet/createObjectSet.js +1 -1
  7. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  8. package/build/browser/public/internal.js +1 -0
  9. package/build/browser/public/internal.js.map +1 -1
  10. package/build/browser/public-utils/hydrateObjectSetFromObjectRids.js +42 -0
  11. package/build/browser/public-utils/hydrateObjectSetFromObjectRids.js.map +1 -0
  12. package/build/browser/queries/applyQuery.js +8 -4
  13. package/build/browser/queries/applyQuery.js.map +1 -1
  14. package/build/browser/util/UserAgent.js +2 -2
  15. package/build/browser/util/toDataValue.js +6 -0
  16. package/build/browser/util/toDataValue.js.map +1 -1
  17. package/build/browser/util/toDataValue.test.js +9 -0
  18. package/build/browser/util/toDataValue.test.js.map +1 -1
  19. package/build/cjs/{chunk-HTPVXLYY.cjs → chunk-YGJRXE4F.cjs} +12 -10
  20. package/build/cjs/chunk-YGJRXE4F.cjs.map +1 -0
  21. package/build/cjs/{chunk-6OJ3OWCR.cjs → chunk-Z6X7WQDP.cjs} +62 -55
  22. package/build/cjs/chunk-Z6X7WQDP.cjs.map +1 -0
  23. package/build/cjs/index.cjs +10 -6
  24. package/build/cjs/index.d.cts +1 -1
  25. package/build/cjs/public/internal.cjs +25 -7
  26. package/build/cjs/public/internal.cjs.map +1 -1
  27. package/build/cjs/public/internal.d.cts +10 -1
  28. package/build/cjs/public/unstable-do-not-use.cjs +15 -15
  29. package/build/esm/index.js +1 -1
  30. package/build/esm/index.js.map +1 -1
  31. package/build/esm/object/fetchPage.js +9 -7
  32. package/build/esm/object/fetchPage.js.map +1 -1
  33. package/build/esm/objectSet/createObjectSet.js +1 -1
  34. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  35. package/build/esm/public/internal.js +1 -0
  36. package/build/esm/public/internal.js.map +1 -1
  37. package/build/esm/public-utils/hydrateObjectSetFromObjectRids.js +42 -0
  38. package/build/esm/public-utils/hydrateObjectSetFromObjectRids.js.map +1 -0
  39. package/build/esm/queries/applyQuery.js +8 -4
  40. package/build/esm/queries/applyQuery.js.map +1 -1
  41. package/build/esm/util/UserAgent.js +2 -2
  42. package/build/esm/util/toDataValue.js +6 -0
  43. package/build/esm/util/toDataValue.js.map +1 -1
  44. package/build/esm/util/toDataValue.test.js +9 -0
  45. package/build/esm/util/toDataValue.test.js.map +1 -1
  46. package/build/types/index.d.ts +1 -1
  47. package/build/types/index.d.ts.map +1 -1
  48. package/build/types/public/internal.d.ts +1 -0
  49. package/build/types/public/internal.d.ts.map +1 -1
  50. package/build/types/public-utils/hydrateObjectSetFromObjectRids.d.ts +10 -0
  51. package/build/types/public-utils/hydrateObjectSetFromObjectRids.d.ts.map +1 -0
  52. package/build/types/queries/applyQuery.d.ts.map +1 -1
  53. package/package.json +11 -11
  54. package/build/cjs/chunk-6OJ3OWCR.cjs.map +0 -1
  55. package/build/cjs/chunk-HTPVXLYY.cjs.map +0 -1
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ import { NULL_VALUE } from "@osdk/api";
17
18
  import * as OntologiesV2 from "@osdk/foundry.ontologies";
18
19
  import { isAttachmentFile, isAttachmentUpload } from "../object/AttachmentUpload.js";
19
20
  import { isMediaReference, isMediaUpload } from "../object/mediaUpload.js";
@@ -33,8 +34,13 @@ import { isWireObjectSet } from "./WireObjectSet.js";
33
34
  export async function toDataValue(value, client, actionMetadata) {
34
35
  if (value == null) {
35
36
  // typeof null is 'object' so do this first
37
+ // Sending null over the wire clears the data, whereas undefined is dropped at request time.
38
+ // Null values are not allowed with OSDK types, but leaving here as an override.
36
39
  return value;
37
40
  }
41
+ if (value === NULL_VALUE) {
42
+ return null;
43
+ }
38
44
 
39
45
  // arrays and sets are both sent over the wire as arrays
40
46
  if (Array.isArray(value) || value instanceof Set) {
@@ -1 +1 @@
1
- {"version":3,"file":"toDataValue.js","names":["OntologiesV2","isAttachmentFile","isAttachmentUpload","isMediaReference","isMediaUpload","getWireObjectSet","isObjectSet","isInterfaceActionParam","isObjectSpecifiersObject","isOntologyObjectV2","isPoint","isWireObjectSet","toDataValue","value","client","actionMetadata","Array","isArray","Set","values","from","some","dataValue","converted","push","promiseArray","innerValue","Promise","all","attachment","Attachments","upload","data","filename","name","rid","mediaRef","MediaReferenceProperties","uploadMedia","ontologyRid","apiName","mediaItemPath","path","preview","__primaryKey","$primaryKey","coordinates","objectTypeApiName","$objectType","primaryKeyValue","Object","entries","reduce","promisedAcc","key","structValue","acc","resolve"],"sources":["toDataValue.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 type { ActionMetadata } from \"@osdk/api\";\nimport { type DataValue } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n isAttachmentFile,\n isAttachmentUpload,\n} from \"../object/AttachmentUpload.js\";\nimport { isMediaReference, isMediaUpload } from \"../object/mediaUpload.js\";\nimport { getWireObjectSet, isObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { isInterfaceActionParam } from \"./interfaceUtils.js\";\nimport { isObjectSpecifiersObject } from \"./isObjectSpecifiersObject.js\";\nimport { isOntologyObjectV2 } from \"./isOntologyObjectV2.js\";\nimport { isPoint } from \"./isPoint.js\";\nimport { isWireObjectSet } from \"./WireObjectSet.js\";\n\n/**\n * Marshall user-facing data into the wire DataValue type\n *\n * @see DataValue for the expected payloads\n * @internal\n */\nexport async function toDataValue(\n value: unknown,\n client: MinimalClient,\n actionMetadata: ActionMetadata,\n): Promise<DataValue> {\n if (value == null) {\n // typeof null is 'object' so do this first\n return value;\n }\n\n // arrays and sets are both sent over the wire as arrays\n if (Array.isArray(value) || value instanceof Set) {\n const values = Array.from(value);\n if (\n values.some((dataValue) =>\n isAttachmentUpload(dataValue) || isAttachmentFile(dataValue)\n )\n ) {\n const converted = [];\n for (const value of values) {\n converted.push(await toDataValue(value, client, actionMetadata));\n }\n return converted;\n }\n const promiseArray = Array.from(\n value,\n async (innerValue) =>\n await toDataValue(innerValue, client, actionMetadata),\n );\n return Promise.all(promiseArray);\n }\n\n // For uploads, we need to upload ourselves first to get the RID of the attachment\n if (isAttachmentUpload(value)) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value.data,\n {\n filename: value.name,\n },\n );\n return await toDataValue(attachment.rid, client, actionMetadata);\n }\n\n if (isAttachmentFile(value)) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value,\n {\n filename: value.name as string,\n },\n );\n return await toDataValue(attachment.rid, client, actionMetadata);\n }\n\n // new media item upload interface, very similar to how attachments work above\n\n if (isMediaUpload(value)) {\n const mediaRef = await OntologiesV2.MediaReferenceProperties\n .uploadMedia(\n client,\n await client.ontologyRid,\n actionMetadata.apiName,\n value.data,\n {\n mediaItemPath: value.path,\n preview: true,\n },\n );\n return await toDataValue(mediaRef, client, actionMetadata);\n }\n\n // objects just send the JSON'd primaryKey\n if (isOntologyObjectV2(value)) {\n return await toDataValue(value.__primaryKey, client, actionMetadata);\n }\n\n if (isObjectSpecifiersObject(value)) {\n return await toDataValue(value.$primaryKey, client, actionMetadata);\n }\n\n if (isPoint(value)) {\n return await toDataValue(\n `${value.coordinates[1]},${value.coordinates[0]}`,\n client,\n actionMetadata,\n );\n }\n\n // object set (the rid as a string (passes through the last return), or the ObjectSet definition directly)\n if (isWireObjectSet(value)) {\n return value;\n }\n if (isObjectSet(value)) {\n return getWireObjectSet(value);\n }\n\n if (isMediaReference(value)) {\n return value;\n }\n\n if (isInterfaceActionParam(value)) {\n return {\n objectTypeApiName: value.$objectType,\n primaryKeyValue: value.$primaryKey,\n };\n }\n\n // TODO (during queries implementation)\n // two dimensional aggregation\n // three dimensional aggregation\n\n // struct\n if (typeof value === \"object\") {\n return Object.entries(value).reduce(\n async (promisedAcc, [key, structValue]) => {\n const acc = await promisedAcc;\n acc[key] = await toDataValue(structValue, client, actionMetadata);\n return acc;\n },\n Promise.resolve({} as { [key: string]: DataValue }),\n );\n }\n\n // expected to pass through - boolean, byte, date, decimal, float, double, integer, long, short, string, timestamp, object type reference\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"toDataValue.js","names":["NULL_VALUE","OntologiesV2","isAttachmentFile","isAttachmentUpload","isMediaReference","isMediaUpload","getWireObjectSet","isObjectSet","isInterfaceActionParam","isObjectSpecifiersObject","isOntologyObjectV2","isPoint","isWireObjectSet","toDataValue","value","client","actionMetadata","Array","isArray","Set","values","from","some","dataValue","converted","push","promiseArray","innerValue","Promise","all","attachment","Attachments","upload","data","filename","name","rid","mediaRef","MediaReferenceProperties","uploadMedia","ontologyRid","apiName","mediaItemPath","path","preview","__primaryKey","$primaryKey","coordinates","objectTypeApiName","$objectType","primaryKeyValue","Object","entries","reduce","promisedAcc","key","structValue","acc","resolve"],"sources":["toDataValue.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 { NULL_VALUE } from \"@osdk/api\";\nimport type { ActionMetadata } from \"@osdk/api\";\nimport { type DataValue } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n isAttachmentFile,\n isAttachmentUpload,\n} from \"../object/AttachmentUpload.js\";\nimport { isMediaReference, isMediaUpload } from \"../object/mediaUpload.js\";\nimport { getWireObjectSet, isObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { isInterfaceActionParam } from \"./interfaceUtils.js\";\nimport { isObjectSpecifiersObject } from \"./isObjectSpecifiersObject.js\";\nimport { isOntologyObjectV2 } from \"./isOntologyObjectV2.js\";\nimport { isPoint } from \"./isPoint.js\";\nimport { isWireObjectSet } from \"./WireObjectSet.js\";\n\n/**\n * Marshall user-facing data into the wire DataValue type\n *\n * @see DataValue for the expected payloads\n * @internal\n */\nexport async function toDataValue(\n value: unknown,\n client: MinimalClient,\n actionMetadata: ActionMetadata,\n): Promise<DataValue> {\n if (value == null) {\n // typeof null is 'object' so do this first\n // Sending null over the wire clears the data, whereas undefined is dropped at request time.\n // Null values are not allowed with OSDK types, but leaving here as an override.\n return value;\n }\n\n if (value === NULL_VALUE) {\n return null;\n }\n\n // arrays and sets are both sent over the wire as arrays\n if (Array.isArray(value) || value instanceof Set) {\n const values = Array.from(value);\n if (\n values.some((dataValue) =>\n isAttachmentUpload(dataValue) || isAttachmentFile(dataValue)\n )\n ) {\n const converted = [];\n for (const value of values) {\n converted.push(await toDataValue(value, client, actionMetadata));\n }\n return converted;\n }\n const promiseArray = Array.from(\n value,\n async (innerValue) =>\n await toDataValue(innerValue, client, actionMetadata),\n );\n return Promise.all(promiseArray);\n }\n\n // For uploads, we need to upload ourselves first to get the RID of the attachment\n if (isAttachmentUpload(value)) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value.data,\n {\n filename: value.name,\n },\n );\n return await toDataValue(attachment.rid, client, actionMetadata);\n }\n\n if (isAttachmentFile(value)) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value,\n {\n filename: value.name as string,\n },\n );\n return await toDataValue(attachment.rid, client, actionMetadata);\n }\n\n // new media item upload interface, very similar to how attachments work above\n\n if (isMediaUpload(value)) {\n const mediaRef = await OntologiesV2.MediaReferenceProperties\n .uploadMedia(\n client,\n await client.ontologyRid,\n actionMetadata.apiName,\n value.data,\n {\n mediaItemPath: value.path,\n preview: true,\n },\n );\n return await toDataValue(mediaRef, client, actionMetadata);\n }\n\n // objects just send the JSON'd primaryKey\n if (isOntologyObjectV2(value)) {\n return await toDataValue(value.__primaryKey, client, actionMetadata);\n }\n\n if (isObjectSpecifiersObject(value)) {\n return await toDataValue(value.$primaryKey, client, actionMetadata);\n }\n\n if (isPoint(value)) {\n return await toDataValue(\n `${value.coordinates[1]},${value.coordinates[0]}`,\n client,\n actionMetadata,\n );\n }\n\n // object set (the rid as a string (passes through the last return), or the ObjectSet definition directly)\n if (isWireObjectSet(value)) {\n return value;\n }\n if (isObjectSet(value)) {\n return getWireObjectSet(value);\n }\n\n if (isMediaReference(value)) {\n return value;\n }\n\n if (isInterfaceActionParam(value)) {\n return {\n objectTypeApiName: value.$objectType,\n primaryKeyValue: value.$primaryKey,\n };\n }\n\n // TODO (during queries implementation)\n // two dimensional aggregation\n // three dimensional aggregation\n\n // struct\n if (typeof value === \"object\") {\n return Object.entries(value).reduce(\n async (promisedAcc, [key, structValue]) => {\n const acc = await promisedAcc;\n acc[key] = await toDataValue(structValue, client, actionMetadata);\n return acc;\n },\n Promise.resolve({} as { [key: string]: DataValue }),\n );\n }\n\n // expected to pass through - boolean, byte, date, decimal, float, double, integer, long, short, string, timestamp, object type reference\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ import { NULL_VALUE } from "@osdk/api";
17
18
  import { Employee, Task } from "@osdk/client.test.ontology";
18
19
  import { LegacyFauxFoundry, MockOntologiesV2, startNodeApiServer, stubData } from "@osdk/shared.test";
19
20
  import { beforeAll, describe, expect, it, vi } from "vitest";
@@ -186,5 +187,13 @@ describe(toDataValue, () => {
186
187
  const converted = await toDataValue(mediaReference, clientCtx, mockActionMetadata);
187
188
  expect(converted).toEqual(mediaReference);
188
189
  });
190
+ it("Converts NULL_VALUE to null", async () => {
191
+ const converted = await toDataValue(NULL_VALUE, clientCtx, mockActionMetadata);
192
+ expect(converted).toBeNull();
193
+ });
194
+ it("Converts NULL_VALUE equivalents to null", async () => {
195
+ const converted = await toDataValue(Symbol.for("NULL_VALUE"), clientCtx, mockActionMetadata);
196
+ expect(converted).toEqual(null);
197
+ });
189
198
  });
190
199
  //# sourceMappingURL=toDataValue.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toDataValue.test.js","names":["Employee","Task","LegacyFauxFoundry","MockOntologiesV2","startNodeApiServer","stubData","beforeAll","describe","expect","it","vi","createClient","createMinimalClient","createAttachmentUpload","isMediaReference","getWireObjectSet","toDataValue","client","clientCtx","mockActionMetadata","apiServer","fn","testSetup","ontologyRid","fauxFoundry","defaultOntologyRid","baseUrl","auth","apiName","close","basic","null","undefined","boolean","date","integer","string","timestamp","convertedBasic","toEqual","attachment","attachmentArray","attachmentSet","Set","recursiveConversion","inner","employee","employee1","ontologyConversion","__primaryKey","task","fetchOne","$primaryKey","clientObjectSet","where","id","definition","expected","objectSetConversion","toMatchInlineSnapshot","definitionConversion","blob","Blob","JSON","stringify","attachmentUpload","converted","toMatch","file","Object","assign","name","type","data","path","boundary","use","MediaReferenceProperties","uploadMedia","mimeType","reference","mediaSetViewItem","mediaItemRid","mediaSetRid","mediaSetViewRid","toBe","mediaReference"],"sources":["toDataValue.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 { ActionMetadata, MediaUpload } from \"@osdk/api\";\nimport { Employee, Task } from \"@osdk/client.test.ontology\";\nimport type { MediaReference } from \"@osdk/foundry.core\";\nimport type { SetupServer } from \"@osdk/shared.test\";\nimport {\n LegacyFauxFoundry,\n MockOntologiesV2,\n startNodeApiServer,\n stubData,\n} from \"@osdk/shared.test\";\nimport type { MockedFunction } from \"vitest\";\nimport { beforeAll, describe, expect, it, vi } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { createAttachmentUpload } from \"../object/AttachmentUpload.js\";\nimport { isMediaReference } from \"../object/mediaUpload.js\";\nimport { getWireObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { toDataValue } from \"./toDataValue.js\";\n\ndescribe(toDataValue, () => {\n let client: Client;\n let clientCtx: MinimalClient;\n let mockActionMetadata: ActionMetadata;\n let apiServer: SetupServer;\n\n const mockFetch: MockedFunction<typeof globalThis.fetch> = vi.fn();\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n\n apiServer = testSetup.apiServer;\n\n clientCtx = createMinimalClient(\n { ontologyRid: testSetup.fauxFoundry.defaultOntologyRid },\n testSetup.fauxFoundry.baseUrl,\n testSetup.auth,\n {},\n );\n\n // toDataValue only needs the apiName right now, update this if that changes\n const fakeActionMetadata = {\n apiName: \"createUnstructuredImageExampleObject\",\n };\n mockActionMetadata = fakeActionMetadata as ActionMetadata;\n\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"converts passthrough values correctly\", async () => {\n // basic pass through types\n const basic = {\n null: undefined,\n boolean: false,\n date: \"2024-01-01\",\n integer: 0,\n string: \"string\",\n timestamp: \"2024-01-01T00:00:00Z\",\n };\n const convertedBasic = await toDataValue(\n basic,\n clientCtx,\n mockActionMetadata,\n );\n expect(convertedBasic).toEqual(basic);\n });\n\n it(\"recursively converts arrays and sets into array types\", async () => {\n const attachment = \"rid\";\n const attachmentArray = [attachment];\n const attachmentSet = new Set(attachmentArray);\n\n const recursiveConversion = await toDataValue(\n {\n attachment,\n attachmentArray,\n attachmentSet,\n },\n clientCtx,\n mockActionMetadata,\n );\n\n expect(recursiveConversion).toEqual({\n attachment: \"rid\",\n attachmentArray: [\"rid\"],\n attachmentSet: [\"rid\"],\n });\n });\n\n it(\"recursively handles structs\", async () => {\n const struct = {\n inner: {\n attachment: \"rid\",\n },\n };\n\n const recursiveConversion = await toDataValue(\n struct,\n clientCtx,\n mockActionMetadata,\n );\n\n expect(recursiveConversion).toEqual({\n inner: { attachment: \"rid\" },\n });\n });\n\n it(\"maps an ontology object into just its primary key\", async () => {\n const employee = stubData.employee1;\n const ontologyConversion = await toDataValue(\n employee,\n clientCtx,\n mockActionMetadata,\n );\n expect(ontologyConversion).toEqual(\n stubData.employee1.__primaryKey,\n );\n });\n\n it(\"maps an ontology object into just its primary key with osdk wrapper\", async () => {\n const task = await client(Employee).fetchOne(50030);\n const ontologyConversion = await toDataValue(\n task,\n clientCtx,\n mockActionMetadata,\n );\n expect(ontologyConversion).toEqual(\n task.$primaryKey,\n );\n });\n\n it(\"passes through object set definitions\", async () => {\n const clientObjectSet = client(Task).where({ id: 0 });\n const definition = getWireObjectSet(clientObjectSet);\n\n const expected = `\n {\n \"objectSet\": {\n \"objectType\": \"Task\",\n \"type\": \"base\",\n },\n \"type\": \"filter\",\n \"where\": {\n \"field\": \"id\",\n \"type\": \"eq\",\n \"value\": 0,\n },\n }\n `;\n const objectSetConversion = await toDataValue(\n clientObjectSet,\n clientCtx,\n mockActionMetadata,\n );\n expect(objectSetConversion).toMatchInlineSnapshot(\n expected,\n );\n\n const definitionConversion = await toDataValue(\n definition,\n clientCtx,\n mockActionMetadata,\n );\n expect(definitionConversion).toMatchInlineSnapshot(expected);\n });\n\n it(\"converts blob attachment uploads correctly\", async () => {\n const blob = new Blob([JSON.stringify({ \"hi\": \"mom\" })]);\n const attachmentUpload = createAttachmentUpload(blob, \"file1.txt\");\n const converted = await toDataValue(\n attachmentUpload,\n clientCtx,\n mockActionMetadata,\n );\n\n expect(converted).toMatch(/ri\\.attachments.main.attachment\\.[a-z0-9\\-]+/i);\n });\n\n it(\"converts file attachment uploads correctly\", async () => {\n // Mimics the Web file API (https://developer.mozilla.org/en-US/docs/Web/API/File). The File constructor is only available in Node 19.2.0 and above\n const file = Object.assign(\n new Blob([\n JSON.stringify({ name: \"Hello World\" }, null, 2),\n ], {\n type: \"application/json\",\n }),\n { name: \"file1.txt\" },\n );\n\n const converted = await toDataValue(file, clientCtx, mockActionMetadata);\n expect(converted).toMatch(/ri\\.attachments.main.attachment\\.[a-z0-9\\-]+/i);\n });\n\n it(\"converts media uploads correctly\", async () => {\n const file: MediaUpload = {\n data: new Blob([\n JSON.stringify({ name: \"Hello World\" }, null, 2),\n ], {\n type: \"application/json\",\n }),\n path: \"file.txt\",\n };\n\n // TODO: Mock MediaUpload properly in FauxFoundry\n apiServer.boundary(async () => {\n apiServer.use(\n MockOntologiesV2.MediaReferenceProperties.uploadMedia(\n \"https://stack.palantir.com\",\n () => {\n return {\n mimeType: \"application/json\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaItemRid: \"media-item-rid\",\n mediaSetRid: \"media-set-rid\",\n mediaSetViewRid: \"media-set-view-rid\",\n },\n },\n };\n },\n ),\n );\n const converted = await toDataValue(file, clientCtx, mockActionMetadata);\n expect(isMediaReference(converted)).toBe(true);\n });\n });\n\n it(\"converts media reference correctly\", async () => {\n const mediaReference: MediaReference = {\n mimeType: \"application/json\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaItemRid: \"media-item-rid\",\n mediaSetRid: \"media-set-rid\",\n mediaSetViewRid: \"media-set-view-rid\",\n },\n },\n };\n\n const converted = await toDataValue(\n mediaReference,\n clientCtx,\n mockActionMetadata,\n );\n expect(converted).toEqual(mediaReference);\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"toDataValue.test.js","names":["NULL_VALUE","Employee","Task","LegacyFauxFoundry","MockOntologiesV2","startNodeApiServer","stubData","beforeAll","describe","expect","it","vi","createClient","createMinimalClient","createAttachmentUpload","isMediaReference","getWireObjectSet","toDataValue","client","clientCtx","mockActionMetadata","apiServer","fn","testSetup","ontologyRid","fauxFoundry","defaultOntologyRid","baseUrl","auth","apiName","close","basic","null","undefined","boolean","date","integer","string","timestamp","convertedBasic","toEqual","attachment","attachmentArray","attachmentSet","Set","recursiveConversion","inner","employee","employee1","ontologyConversion","__primaryKey","task","fetchOne","$primaryKey","clientObjectSet","where","id","definition","expected","objectSetConversion","toMatchInlineSnapshot","definitionConversion","blob","Blob","JSON","stringify","attachmentUpload","converted","toMatch","file","Object","assign","name","type","data","path","boundary","use","MediaReferenceProperties","uploadMedia","mimeType","reference","mediaSetViewItem","mediaItemRid","mediaSetRid","mediaSetViewRid","toBe","mediaReference","toBeNull","Symbol","for"],"sources":["toDataValue.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 { NULL_VALUE } from \"@osdk/api\";\nimport type { ActionMetadata, MediaUpload } from \"@osdk/api\";\nimport { Employee, Task } from \"@osdk/client.test.ontology\";\nimport type { MediaReference } from \"@osdk/foundry.core\";\nimport type { SetupServer } from \"@osdk/shared.test\";\nimport {\n LegacyFauxFoundry,\n MockOntologiesV2,\n startNodeApiServer,\n stubData,\n} from \"@osdk/shared.test\";\nimport type { MockedFunction } from \"vitest\";\nimport { beforeAll, describe, expect, it, vi } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { createAttachmentUpload } from \"../object/AttachmentUpload.js\";\nimport { isMediaReference } from \"../object/mediaUpload.js\";\nimport { getWireObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { toDataValue } from \"./toDataValue.js\";\n\ndescribe(toDataValue, () => {\n let client: Client;\n let clientCtx: MinimalClient;\n let mockActionMetadata: ActionMetadata;\n let apiServer: SetupServer;\n\n const mockFetch: MockedFunction<typeof globalThis.fetch> = vi.fn();\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n\n apiServer = testSetup.apiServer;\n\n clientCtx = createMinimalClient(\n { ontologyRid: testSetup.fauxFoundry.defaultOntologyRid },\n testSetup.fauxFoundry.baseUrl,\n testSetup.auth,\n {},\n );\n\n // toDataValue only needs the apiName right now, update this if that changes\n const fakeActionMetadata = {\n apiName: \"createUnstructuredImageExampleObject\",\n };\n mockActionMetadata = fakeActionMetadata as ActionMetadata;\n\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"converts passthrough values correctly\", async () => {\n // basic pass through types\n const basic = {\n null: undefined,\n boolean: false,\n date: \"2024-01-01\",\n integer: 0,\n string: \"string\",\n timestamp: \"2024-01-01T00:00:00Z\",\n };\n const convertedBasic = await toDataValue(\n basic,\n clientCtx,\n mockActionMetadata,\n );\n expect(convertedBasic).toEqual(basic);\n });\n\n it(\"recursively converts arrays and sets into array types\", async () => {\n const attachment = \"rid\";\n const attachmentArray = [attachment];\n const attachmentSet = new Set(attachmentArray);\n\n const recursiveConversion = await toDataValue(\n {\n attachment,\n attachmentArray,\n attachmentSet,\n },\n clientCtx,\n mockActionMetadata,\n );\n\n expect(recursiveConversion).toEqual({\n attachment: \"rid\",\n attachmentArray: [\"rid\"],\n attachmentSet: [\"rid\"],\n });\n });\n\n it(\"recursively handles structs\", async () => {\n const struct = {\n inner: {\n attachment: \"rid\",\n },\n };\n\n const recursiveConversion = await toDataValue(\n struct,\n clientCtx,\n mockActionMetadata,\n );\n\n expect(recursiveConversion).toEqual({\n inner: { attachment: \"rid\" },\n });\n });\n\n it(\"maps an ontology object into just its primary key\", async () => {\n const employee = stubData.employee1;\n const ontologyConversion = await toDataValue(\n employee,\n clientCtx,\n mockActionMetadata,\n );\n expect(ontologyConversion).toEqual(\n stubData.employee1.__primaryKey,\n );\n });\n\n it(\"maps an ontology object into just its primary key with osdk wrapper\", async () => {\n const task = await client(Employee).fetchOne(50030);\n const ontologyConversion = await toDataValue(\n task,\n clientCtx,\n mockActionMetadata,\n );\n expect(ontologyConversion).toEqual(\n task.$primaryKey,\n );\n });\n\n it(\"passes through object set definitions\", async () => {\n const clientObjectSet = client(Task).where({ id: 0 });\n const definition = getWireObjectSet(clientObjectSet);\n\n const expected = `\n {\n \"objectSet\": {\n \"objectType\": \"Task\",\n \"type\": \"base\",\n },\n \"type\": \"filter\",\n \"where\": {\n \"field\": \"id\",\n \"type\": \"eq\",\n \"value\": 0,\n },\n }\n `;\n const objectSetConversion = await toDataValue(\n clientObjectSet,\n clientCtx,\n mockActionMetadata,\n );\n expect(objectSetConversion).toMatchInlineSnapshot(\n expected,\n );\n\n const definitionConversion = await toDataValue(\n definition,\n clientCtx,\n mockActionMetadata,\n );\n expect(definitionConversion).toMatchInlineSnapshot(expected);\n });\n\n it(\"converts blob attachment uploads correctly\", async () => {\n const blob = new Blob([JSON.stringify({ \"hi\": \"mom\" })]);\n const attachmentUpload = createAttachmentUpload(blob, \"file1.txt\");\n const converted = await toDataValue(\n attachmentUpload,\n clientCtx,\n mockActionMetadata,\n );\n\n expect(converted).toMatch(/ri\\.attachments.main.attachment\\.[a-z0-9\\-]+/i);\n });\n\n it(\"converts file attachment uploads correctly\", async () => {\n // Mimics the Web file API (https://developer.mozilla.org/en-US/docs/Web/API/File). The File constructor is only available in Node 19.2.0 and above\n const file = Object.assign(\n new Blob([\n JSON.stringify({ name: \"Hello World\" }, null, 2),\n ], {\n type: \"application/json\",\n }),\n { name: \"file1.txt\" },\n );\n\n const converted = await toDataValue(file, clientCtx, mockActionMetadata);\n expect(converted).toMatch(/ri\\.attachments.main.attachment\\.[a-z0-9\\-]+/i);\n });\n\n it(\"converts media uploads correctly\", async () => {\n const file: MediaUpload = {\n data: new Blob([\n JSON.stringify({ name: \"Hello World\" }, null, 2),\n ], {\n type: \"application/json\",\n }),\n path: \"file.txt\",\n };\n\n // TODO: Mock MediaUpload properly in FauxFoundry\n apiServer.boundary(async () => {\n apiServer.use(\n MockOntologiesV2.MediaReferenceProperties.uploadMedia(\n \"https://stack.palantir.com\",\n () => {\n return {\n mimeType: \"application/json\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaItemRid: \"media-item-rid\",\n mediaSetRid: \"media-set-rid\",\n mediaSetViewRid: \"media-set-view-rid\",\n },\n },\n };\n },\n ),\n );\n const converted = await toDataValue(file, clientCtx, mockActionMetadata);\n expect(isMediaReference(converted)).toBe(true);\n });\n });\n\n it(\"converts media reference correctly\", async () => {\n const mediaReference: MediaReference = {\n mimeType: \"application/json\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaItemRid: \"media-item-rid\",\n mediaSetRid: \"media-set-rid\",\n mediaSetViewRid: \"media-set-view-rid\",\n },\n },\n };\n\n const converted = await toDataValue(\n mediaReference,\n clientCtx,\n mockActionMetadata,\n );\n expect(converted).toEqual(mediaReference);\n });\n\n it(\"Converts NULL_VALUE to null\", async () => {\n const converted = await toDataValue(\n NULL_VALUE,\n clientCtx,\n mockActionMetadata,\n );\n expect(converted).toBeNull();\n });\n\n it(\"Converts NULL_VALUE equivalents to null\", async () => {\n const clearData = Symbol.for(\"NULL_VALUE\") as symbol & {\n __type: \"NULL_VALUE\";\n };\n const converted = await toDataValue(\n clearData,\n clientCtx,\n mockActionMetadata,\n );\n expect(converted).toEqual(null);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -505,7 +505,7 @@ function resolveInterfaceObjectSet(objectSet, interfaceTypeApiName, args) {
505
505
  }]
506
506
  } : objectSet;
507
507
  }
508
- async function fetchInterfacePage(client, interfaceType, args, objectSet) {
508
+ async function fetchInterfacePage(client, interfaceType, args, objectSet, useSnapshot = false) {
509
509
  if (args.$__UNSTABLE_useOldInterfaceApis) {
510
510
  const result2 = await OntologyInterface_exports.search(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, interfaceType.apiName, applyFetchArgs(args, {
511
511
  augmentedProperties: {},
@@ -530,7 +530,8 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet) {
530
530
  const result = await OntologyObjectSet_exports.loadMultipleObjectTypes(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, applyFetchArgs(args, {
531
531
  objectSet: resolveInterfaceObjectSet(objectSet, interfaceType.apiName, args),
532
532
  select: args?.$select ?? [],
533
- excludeRid: !args?.$includeRid
533
+ excludeRid: !args?.$includeRid,
534
+ snapshot: useSnapshot
534
535
  }), {
535
536
  preview: true
536
537
  });
@@ -540,11 +541,11 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet) {
540
541
  totalCount: result.totalCount
541
542
  });
542
543
  }
543
- async function fetchPageInternal(client, objectType, objectSet, args = {}) {
544
+ async function fetchPageInternal(client, objectType, objectSet, args = {}, useSnapshot = false) {
544
545
  if (objectType.type === "interface") {
545
- return await fetchInterfacePage(client, objectType, args, objectSet);
546
+ return await fetchInterfacePage(client, objectType, args, objectSet, useSnapshot);
546
547
  } else {
547
- return await fetchObjectPage(client, objectType, args, objectSet);
548
+ return await fetchObjectPage(client, objectType, args, objectSet, useSnapshot);
548
549
  }
549
550
  }
550
551
  async function fetchPageWithErrorsInternal(client, objectType, objectSet, args = {}) {
@@ -584,13 +585,14 @@ function applyFetchArgs(args, body) {
584
585
  }
585
586
  return body;
586
587
  }
587
- async function fetchObjectPage(client, objectType, args, objectSet) {
588
+ async function fetchObjectPage(client, objectType, args, objectSet, useSnapshot = false) {
588
589
  const r = await OntologyObjectSet_exports.load(addUserAgentAndRequestContextHeaders(client, objectType), await client.ontologyRid, applyFetchArgs(args, {
589
590
  objectSet,
590
591
  // We have to do the following case because LoadObjectSetRequestV2 isn't readonly
591
592
  select: args?.$select ?? [],
592
593
  // FIXME?
593
- excludeRid: !args?.$includeRid
594
+ excludeRid: !args?.$includeRid,
595
+ snapshot: useSnapshot
594
596
  }));
595
597
  return Promise.resolve({
596
598
  data: await client.objectFactory(client, r.data, void 0, void 0, await extractRdpDefinition(client, objectSet), args.$select),
@@ -1706,7 +1708,7 @@ function createObjectSet(objectType, clientCtx, objectSet = resolveBaseObjectSet
1706
1708
  ...args,
1707
1709
  $pageSize: 1e4,
1708
1710
  $nextPageToken
1709
- });
1711
+ }, true);
1710
1712
  $nextPageToken = result.nextPageToken;
1711
1713
  for (const obj of result.data) {
1712
1714
  yield obj;
@@ -1802,5 +1804,5 @@ exports.hydrateAttachmentFromRidInternal = hydrateAttachmentFromRidInternal;
1802
1804
  exports.isObjectSet = isObjectSet;
1803
1805
  exports.isWireObjectSet = isWireObjectSet;
1804
1806
  exports.symbolClientContext = symbolClientContext;
1805
- //# sourceMappingURL=chunk-HTPVXLYY.cjs.map
1806
- //# sourceMappingURL=chunk-HTPVXLYY.cjs.map
1807
+ //# sourceMappingURL=chunk-YGJRXE4F.cjs.map
1808
+ //# sourceMappingURL=chunk-YGJRXE4F.cjs.map