@osdk/client 2.1.0-beta.17 → 2.1.0-beta.19

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 (78) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/build/browser/__unstable/ConjureSupport.js +1 -1
  3. package/build/browser/__unstable/ConjureSupport.js.map +1 -1
  4. package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js +1 -1
  5. package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
  6. package/build/browser/createClient.d.ts.map +1 -1
  7. package/build/browser/createClient.js.map +1 -1
  8. package/build/browser/createClient.test.js +11 -1
  9. package/build/browser/createClient.test.js.map +1 -1
  10. package/build/browser/createGeotimeSeriesProperty.d.ts.map +1 -1
  11. package/build/browser/createTimeseriesProperty.d.ts.map +1 -1
  12. package/build/browser/fetchMetadata.test.js +7 -0
  13. package/build/browser/fetchMetadata.test.js.map +1 -1
  14. package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
  15. package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js +0 -5
  16. package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -1
  17. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +41 -85
  18. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  19. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js +0 -6
  20. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -1
  21. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +49 -133
  22. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  23. package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js +2 -2
  24. package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  25. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js +14 -38
  26. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  27. package/build/browser/object/convertWireToOsdkObjects.test.js +15 -65
  28. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  29. package/build/browser/object/object.test.d.ts.map +1 -1
  30. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +57 -16
  31. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  32. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +31 -16
  33. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  34. package/build/browser/queries/applyQuery.d.ts.map +1 -1
  35. package/build/browser/queries/applyQuery.js +0 -1
  36. package/build/browser/queries/applyQuery.js.map +1 -1
  37. package/build/browser/util/UserAgent.js +1 -1
  38. package/build/browser/util/datetimeConverters.test.js.map +1 -1
  39. package/build/browser/util/timeseriesUtils.d.ts.map +1 -1
  40. package/build/esm/__unstable/ConjureSupport.js +1 -1
  41. package/build/esm/__unstable/ConjureSupport.js.map +1 -1
  42. package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js +1 -1
  43. package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
  44. package/build/esm/createClient.d.ts.map +1 -1
  45. package/build/esm/createClient.js.map +1 -1
  46. package/build/esm/createClient.test.js +11 -1
  47. package/build/esm/createClient.test.js.map +1 -1
  48. package/build/esm/createGeotimeSeriesProperty.d.ts.map +1 -1
  49. package/build/esm/createTimeseriesProperty.d.ts.map +1 -1
  50. package/build/esm/fetchMetadata.test.js +7 -0
  51. package/build/esm/fetchMetadata.test.js.map +1 -1
  52. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
  53. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js +0 -5
  54. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -1
  55. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +41 -85
  56. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  57. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js +0 -6
  58. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -1
  59. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +49 -133
  60. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  61. package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js +2 -2
  62. package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  63. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js +14 -38
  64. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  65. package/build/esm/object/convertWireToOsdkObjects.test.js +15 -65
  66. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  67. package/build/esm/object/object.test.d.ts.map +1 -1
  68. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +57 -19
  69. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  70. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +31 -16
  71. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  72. package/build/esm/queries/applyQuery.d.ts.map +1 -1
  73. package/build/esm/queries/applyQuery.js +0 -1
  74. package/build/esm/queries/applyQuery.js.map +1 -1
  75. package/build/esm/util/UserAgent.js +1 -1
  76. package/build/esm/util/datetimeConverters.test.js.map +1 -1
  77. package/build/esm/util/timeseriesUtils.d.ts.map +1 -1
  78. package/package.json +8 -8
@@ -15,46 +15,22 @@
15
15
  */
16
16
  import { getWireObjectSet } from "../../objectSet/createObjectSet.js";
17
17
  import { fetchSingle, fetchSingleWithErrors } from "../fetchSingle.js";
18
- import { ClientRef, ObjectDefRef, RawObject } from "./InternalSymbols.js";
18
+ import { ClientRef, ObjectDefRef, UnderlyingOsdkObject } from "./InternalSymbols.js";
19
19
  /** @internal */
20
20
  export function get$link(holder) {
21
- return new Proxy(holder, DollarLinkProxyHandler);
22
- }
23
- const DollarLinkProxyHandler = {
24
- get(target, p) {
25
- const {
26
- [ObjectDefRef]: objDef,
27
- [ClientRef]: client,
28
- [RawObject]: rawObj
29
- } = target;
30
- const linkDef = objDef.links[p];
31
- if (linkDef == null) {
32
- return;
33
- }
21
+ const client = holder[ClientRef];
22
+ const objDef = holder[ObjectDefRef];
23
+ const rawObj = holder[UnderlyingOsdkObject];
24
+ return Object.freeze(Object.fromEntries(Object.keys(objDef.links).map(linkName => {
25
+ const linkDef = objDef.links[linkName];
34
26
  const objectSet = client.objectSetFactory(objDef, client).where({
35
27
  [objDef.primaryKeyApiName]: rawObj.$primaryKey
36
- }).pivotTo(p);
37
- if (!linkDef.multiplicity) {
38
- return {
39
- fetchOne: options => fetchSingle(client, objDef, options ?? {}, getWireObjectSet(objectSet)),
40
- fetchOneWithErrors: options => fetchSingleWithErrors(client, objDef, options ?? {}, getWireObjectSet(objectSet))
41
- };
42
- } else {
43
- return objectSet;
44
- }
45
- },
46
- ownKeys(target) {
47
- return [...Object.keys(target[ObjectDefRef].links)];
48
- },
49
- getOwnPropertyDescriptor(target, p) {
50
- if (target[ObjectDefRef].links[p]) {
51
- return {
52
- enumerable: true,
53
- configurable: true,
54
- // fixme
55
- writable: false
56
- };
57
- }
58
- }
59
- };
28
+ }).pivotTo(linkName);
29
+ const value = !linkDef.multiplicity ? {
30
+ fetchOne: options => fetchSingle(client, objDef, options ?? {}, getWireObjectSet(objectSet)),
31
+ fetchOneWithErrors: options => fetchSingleWithErrors(client, objDef, options ?? {}, getWireObjectSet(objectSet))
32
+ } : objectSet;
33
+ return [linkName, value];
34
+ })));
35
+ }
60
36
  //# sourceMappingURL=getDollarLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDollarLink.js","names":["getWireObjectSet","fetchSingle","fetchSingleWithErrors","ClientRef","ObjectDefRef","RawObject","get$link","holder","Proxy","DollarLinkProxyHandler","get","target","p","objDef","client","rawObj","linkDef","links","objectSet","objectSetFactory","where","primaryKeyApiName","$primaryKey","pivotTo","multiplicity","fetchOne","options","fetchOneWithErrors","ownKeys","Object","keys","getOwnPropertyDescriptor","enumerable","configurable","writable"],"sources":["getDollarLink.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { getWireObjectSet } from \"../../objectSet/createObjectSet.js\";\nimport { fetchSingle, fetchSingleWithErrors } from \"../fetchSingle.js\";\nimport { ClientRef, ObjectDefRef, RawObject } from \"./InternalSymbols.js\";\n/** @internal */\nexport function get$link(holder) {\n return new Proxy(holder, DollarLinkProxyHandler);\n}\nconst DollarLinkProxyHandler = {\n get(target, p) {\n const { [ObjectDefRef]: objDef, [ClientRef]: client, [RawObject]: rawObj, } = target;\n const linkDef = objDef.links[p];\n if (linkDef == null) {\n return;\n }\n const objectSet = client.objectSetFactory(objDef, client)\n .where({\n [objDef.primaryKeyApiName]: rawObj.$primaryKey,\n })\n .pivotTo(p);\n if (!linkDef.multiplicity) {\n return {\n fetchOne: (options) => fetchSingle(client, objDef, options ?? {}, getWireObjectSet(objectSet)),\n fetchOneWithErrors: (options) => fetchSingleWithErrors(client, objDef, options ?? {}, getWireObjectSet(objectSet)),\n };\n }\n else {\n return objectSet;\n }\n },\n ownKeys(target) {\n return [...Object.keys(target[ObjectDefRef].links)];\n },\n getOwnPropertyDescriptor(target, p) {\n if (target[ObjectDefRef].links[p]) {\n return {\n enumerable: true,\n configurable: true, // fixme\n writable: false,\n };\n }\n },\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,gBAAgB,QAAQ,oCAAoC;AACrE,SAASC,WAAW,EAAEC,qBAAqB,QAAQ,mBAAmB;AACtE,SAASC,SAAS,EAAEC,YAAY,EAAEC,SAAS,QAAQ,sBAAsB;AACzE;AACA,OAAO,SAASC,QAAQA,CAACC,MAAM,EAAE;EAC7B,OAAO,IAAIC,KAAK,CAACD,MAAM,EAAEE,sBAAsB,CAAC;AACpD;AACA,MAAMA,sBAAsB,GAAG;EAC3BC,GAAGA,CAACC,MAAM,EAAEC,CAAC,EAAE;IACX,MAAM;MAAE,CAACR,YAAY,GAAGS,MAAM;MAAE,CAACV,SAAS,GAAGW,MAAM;MAAE,CAACT,SAAS,GAAGU;IAAQ,CAAC,GAAGJ,MAAM;IACpF,MAAMK,OAAO,GAAGH,MAAM,CAACI,KAAK,CAACL,CAAC,CAAC;IAC/B,IAAII,OAAO,IAAI,IAAI,EAAE;MACjB;IACJ;IACA,MAAME,SAAS,GAAGJ,MAAM,CAACK,gBAAgB,CAACN,MAAM,EAAEC,MAAM,CAAC,CACpDM,KAAK,CAAC;MACP,CAACP,MAAM,CAACQ,iBAAiB,GAAGN,MAAM,CAACO;IACvC,CAAC,CAAC,CACGC,OAAO,CAACX,CAAC,CAAC;IACf,IAAI,CAACI,OAAO,CAACQ,YAAY,EAAE;MACvB,OAAO;QACHC,QAAQ,EAAGC,OAAO,IAAKzB,WAAW,CAACa,MAAM,EAAED,MAAM,EAAEa,OAAO,IAAI,CAAC,CAAC,EAAE1B,gBAAgB,CAACkB,SAAS,CAAC,CAAC;QAC9FS,kBAAkB,EAAGD,OAAO,IAAKxB,qBAAqB,CAACY,MAAM,EAAED,MAAM,EAAEa,OAAO,IAAI,CAAC,CAAC,EAAE1B,gBAAgB,CAACkB,SAAS,CAAC;MACrH,CAAC;IACL,CAAC,MACI;MACD,OAAOA,SAAS;IACpB;EACJ,CAAC;EACDU,OAAOA,CAACjB,MAAM,EAAE;IACZ,OAAO,CAAC,GAAGkB,MAAM,CAACC,IAAI,CAACnB,MAAM,CAACP,YAAY,CAAC,CAACa,KAAK,CAAC,CAAC;EACvD,CAAC;EACDc,wBAAwBA,CAACpB,MAAM,EAAEC,CAAC,EAAE;IAChC,IAAID,MAAM,CAACP,YAAY,CAAC,CAACa,KAAK,CAACL,CAAC,CAAC,EAAE;MAC/B,OAAO;QACHoB,UAAU,EAAE,IAAI;QAChBC,YAAY,EAAE,IAAI;QAAE;QACpBC,QAAQ,EAAE;MACd,CAAC;IACL;EACJ;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"getDollarLink.js","names":["getWireObjectSet","fetchSingle","fetchSingleWithErrors","ClientRef","ObjectDefRef","UnderlyingOsdkObject","get$link","holder","client","objDef","rawObj","Object","freeze","fromEntries","keys","links","map","linkName","linkDef","objectSet","objectSetFactory","where","primaryKeyApiName","$primaryKey","pivotTo","value","multiplicity","fetchOne","options","fetchOneWithErrors"],"sources":["getDollarLink.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { getWireObjectSet } from \"../../objectSet/createObjectSet.js\";\nimport { fetchSingle, fetchSingleWithErrors } from \"../fetchSingle.js\";\nimport { ClientRef, ObjectDefRef, UnderlyingOsdkObject, } from \"./InternalSymbols.js\";\n/** @internal */\nexport function get$link(holder) {\n const client = holder[ClientRef];\n const objDef = holder[ObjectDefRef];\n const rawObj = holder[UnderlyingOsdkObject];\n return Object.freeze(Object.fromEntries(Object.keys(objDef.links).map((linkName) => {\n const linkDef = objDef.links[linkName];\n const objectSet = client.objectSetFactory(objDef, client)\n .where({\n [objDef.primaryKeyApiName]: rawObj.$primaryKey,\n })\n .pivotTo(linkName);\n const value = !linkDef.multiplicity\n ? {\n fetchOne: (options) => fetchSingle(client, objDef, options ?? {}, getWireObjectSet(objectSet)),\n fetchOneWithErrors: (options) => fetchSingleWithErrors(client, objDef, options ?? {}, getWireObjectSet(objectSet)),\n }\n : objectSet;\n return [linkName, value];\n })));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,gBAAgB,QAAQ,oCAAoC;AACrE,SAASC,WAAW,EAAEC,qBAAqB,QAAQ,mBAAmB;AACtE,SAASC,SAAS,EAAEC,YAAY,EAAEC,oBAAoB,QAAS,sBAAsB;AACrF;AACA,OAAO,SAASC,QAAQA,CAACC,MAAM,EAAE;EAC7B,MAAMC,MAAM,GAAGD,MAAM,CAACJ,SAAS,CAAC;EAChC,MAAMM,MAAM,GAAGF,MAAM,CAACH,YAAY,CAAC;EACnC,MAAMM,MAAM,GAAGH,MAAM,CAACF,oBAAoB,CAAC;EAC3C,OAAOM,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,WAAW,CAACF,MAAM,CAACG,IAAI,CAACL,MAAM,CAACM,KAAK,CAAC,CAACC,GAAG,CAAEC,QAAQ,IAAK;IAChF,MAAMC,OAAO,GAAGT,MAAM,CAACM,KAAK,CAACE,QAAQ,CAAC;IACtC,MAAME,SAAS,GAAGX,MAAM,CAACY,gBAAgB,CAACX,MAAM,EAAED,MAAM,CAAC,CACpDa,KAAK,CAAC;MACP,CAACZ,MAAM,CAACa,iBAAiB,GAAGZ,MAAM,CAACa;IACvC,CAAC,CAAC,CACGC,OAAO,CAACP,QAAQ,CAAC;IACtB,MAAMQ,KAAK,GAAG,CAACP,OAAO,CAACQ,YAAY,GAC7B;MACEC,QAAQ,EAAGC,OAAO,IAAK3B,WAAW,CAACO,MAAM,EAAEC,MAAM,EAAEmB,OAAO,IAAI,CAAC,CAAC,EAAE5B,gBAAgB,CAACmB,SAAS,CAAC,CAAC;MAC9FU,kBAAkB,EAAGD,OAAO,IAAK1B,qBAAqB,CAACM,MAAM,EAAEC,MAAM,EAAEmB,OAAO,IAAI,CAAC,CAAC,EAAE5B,gBAAgB,CAACmB,SAAS,CAAC;IACrH,CAAC,GACCA,SAAS;IACf,OAAO,CAACF,QAAQ,EAAEQ,KAAK,CAAC;EAC5B,CAAC,CAAC,CAAC,CAAC;AACR","ignoreList":[]}
@@ -41,7 +41,7 @@ describe("convertWireToOsdkObjects", () => {
41
41
  const {
42
42
  data: [employee]
43
43
  } = await client(Employee).fetchPage();
44
- expect(Object.keys(employee).sort()).toEqual(["employeeId", "fullName", "office", "class", "startDate", "employeeSensor", "employeeStatus", "$apiName", "$objectType", "$primaryKey", "employeeLocation"].sort());
44
+ expect(Object.keys(employee).sort()).toEqual(["employeeId", "$title", "fullName", "office", "class", "startDate", "employeeSensor", "employeeStatus", "$apiName", "$objectType", "$primaryKey", "employeeLocation"].sort());
45
45
  expect(Object.keys(employee.$as)).toEqual([]);
46
46
  expect(Object.keys(employee.$link)).toEqual(["peeps", "lead", "officeLink"]);
47
47
  });
@@ -98,6 +98,20 @@ describe("convertWireToOsdkObjects", () => {
98
98
  expect(emptyAttachment).toBeUndefined();
99
99
  expect(emptyAttachmentArray).toBeUndefined();
100
100
  });
101
+ it("creates immutable objects", async () => {
102
+ const employees = await client(Employee).fetchPage();
103
+ expect(employees.data.length).toBeGreaterThanOrEqual(2);
104
+ const [a, b] = employees.data;
105
+ expect(a).toBeDefined();
106
+ expect(() => {
107
+ a.somePropertyThatShouldNotExist = 5;
108
+ }).toThrow();
109
+ const objAsFoo = a.$as(FooInterface);
110
+ expect(objAsFoo).toBeDefined();
111
+ expect(() => {
112
+ objAsFoo.somePropertyThatShouldNotExist = 5;
113
+ }).toThrow();
114
+ });
101
115
  it("works even with unknown apiNames - old", async () => {
102
116
  const clientCtx = createMinimalClient({
103
117
  ontologyRid: $ontologyRid
@@ -126,70 +140,6 @@ describe("convertWireToOsdkObjects", () => {
126
140
  const prototypeAfter = Object.getPrototypeOf(object2);
127
141
  expect(prototypeBefore).not.toBe(prototypeAfter);
128
142
  });
129
- it("updates interface when underlying changes - old", async () => {
130
- const clientCtx = createMinimalClient({
131
- ontologyRid: $ontologyRid
132
- }, "https://stack.palantir.com", async () => "myAccessToken");
133
- const [obj] = await convertWireToOsdkObjects(clientCtx, [{
134
- __apiName: "Employee",
135
- __primaryKey: 0,
136
- __title: "Steve",
137
- fullName: "Steve",
138
- employeeId: "5"
139
- }], undefined);
140
- expect(obj.fullName).toEqual("Steve");
141
- expect(Object.keys(obj).sort()).toEqual(["$apiName", "$objectType", "$primaryKey", "$title", "employeeId", "fullName"].sort());
142
- const objAsFoo = obj.$as(FooInterface);
143
- expect(objAsFoo).toMatchObject({
144
- fooSpt: obj.fullName,
145
- $apiName: FooInterface.apiName,
146
- $primaryKey: obj.$primaryKey,
147
- $objectType: obj.$objectType,
148
- $title: obj.$title
149
- });
150
- console.log(obj);
151
- console.log(objAsFoo);
152
- obj.$updateInternalValues({
153
- fullName: "Bob"
154
- });
155
- expect(obj.fullName).toEqual("Bob");
156
- expect(objAsFoo.fooSpt).toEqual(obj.fullName);
157
- expect(Object.keys(objAsFoo).sort()).toEqual(["$apiName", "$objectType", "$primaryKey", "$title", "fooSpt"].sort());
158
- expect(obj).toBe(objAsFoo.$as(Employee));
159
- expect(objAsFoo).toBe(obj.$as(FooInterface));
160
- });
161
- it("updates interface when underlying changes - new", async () => {
162
- const clientCtx = createMinimalClient({
163
- ontologyRid: $ontologyRid
164
- }, "https://stack.palantir.com", async () => "myAccessToken");
165
- const [obj] = await convertWireToOsdkObjects2(clientCtx, [{
166
- __apiName: "Employee",
167
- __primaryKey: 0,
168
- __title: "Steve",
169
- fullName: "Steve",
170
- employeeId: "5"
171
- }], undefined);
172
- expect(obj.fullName).toEqual("Steve");
173
- expect(Object.keys(obj).sort()).toEqual(["$apiName", "$objectType", "$primaryKey", "$title", "employeeId", "fullName"].sort());
174
- const objAsFoo = obj.$as(FooInterface);
175
- expect(objAsFoo).toMatchObject({
176
- fooSpt: obj.fullName,
177
- $apiName: FooInterface.apiName,
178
- $primaryKey: obj.$primaryKey,
179
- $objectType: obj.$objectType,
180
- $title: obj.$title
181
- });
182
- console.log(obj);
183
- console.log(objAsFoo);
184
- obj.$updateInternalValues({
185
- fullName: "Bob"
186
- });
187
- expect(obj.fullName).toEqual("Bob");
188
- expect(objAsFoo.fooSpt).toEqual(obj.fullName);
189
- expect(Object.keys(objAsFoo).sort()).toEqual(["$apiName", "$objectType", "$primaryKey", "$title", "fooSpt"].sort());
190
- expect(obj).toBe(objAsFoo.$as(Employee));
191
- expect(objAsFoo).toBe(obj.$as(FooInterface));
192
- });
193
143
  it("reconstitutes interfaces properly without rid - old", async () => {
194
144
  const clientCtx = createMinimalClient({
195
145
  ontologyRid: $ontologyRid
@@ -1 +1 @@
1
- {"version":3,"file":"convertWireToOsdkObjects.test.js","names":["$ontologyRid","Employee","FooInterface","objectTypeWithAllPropertyTypes","createSharedClientContext","apiServer","afterAll","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","createMinimalClient","convertWireToOsdkObjects","convertWireToOsdkObjects2","client","interfaceToObjectTypeMappings","fooSpt","listen","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","clientCtx","ontologyRid","object","__apiName","apiName","__primaryKey","prototypeBefore","object2","undefined","prototypeAfter","not","obj","__title","fullName","objAsFoo","toMatchObject","$apiName","$primaryKey","$objectType","$title","console","log","$updateInternalValues","__rid","$rid","rejects","toThrowErrorMatchingInlineSnapshot","resolves","to","result","instance","osdk"],"sources":["convertWireToOsdkObjects.test.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { $ontologyRid, Employee, FooInterface, objectTypeWithAllPropertyTypes, } from \"@osdk/client.test.ontology\";\nimport { createSharedClientContext } from \"@osdk/shared.client.impl\";\nimport { apiServer } from \"@osdk/shared.test\";\nimport { afterAll, beforeAll, describe, expect, expectTypeOf, it, } from \"vitest\";\nimport { additionalContext } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport { convertWireToOsdkObjects, convertWireToOsdkObjects2, } from \"./convertWireToOsdkObjects.js\";\ndescribe(\"convertWireToOsdkObjects\", () => {\n let client;\n const interfaceToObjectTypeMappings = {\n FooInterface: { Employee: { fooSpt: \"fullName\" } },\n };\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\"https://stack.palantir.com\", $ontologyRid, async () => \"myAccessToken\");\n });\n afterAll(() => {\n apiServer.close();\n });\n it(\"configures properties correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\n expect(Object.keys(employee).sort()).toEqual([\n \"employeeId\",\n \"fullName\",\n \"office\",\n \"class\",\n \"startDate\",\n \"employeeSensor\",\n \"employeeStatus\",\n \"$apiName\",\n \"$objectType\",\n \"$primaryKey\",\n \"employeeLocation\",\n ].sort());\n expect(Object.keys(employee.$as)).toEqual([]);\n expect(Object.keys(employee.$link)).toEqual([\n \"peeps\",\n \"lead\",\n \"officeLink\",\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 // Should not have $title\n expect(JSON.stringify(employee)).toMatchInlineSnapshot(`\"{\"employeeId\":50030,\"fullName\":\"John Doe\",\"office\":\"NYC\",\"class\":\"Red\",\"startDate\":\"2019-01-01\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50030}\"`);\n expect(JSON.stringify(employee.$as(FooInterface))).toMatchInlineSnapshot(`\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"fooSpt\":\"John Doe\"}\"`);\n // Should have $title\n expect(JSON.stringify(employee2)).toMatchInlineSnapshot(`\"{\"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\"}\"`);\n expect(JSON.stringify(employee2.$as(FooInterface))).toMatchInlineSnapshot(`\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$title\":\"Jane Doe\",\"fooSpt\":\"Jane Doe\"}\"`);\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 expect(Object.getPrototypeOf(Object.getPrototypeOf(a))).toBe(Object.getPrototypeOf(Object.getPrototypeOf(b)));\n });\n it(\"converts attachments as expected\", async () => {\n const withValues = await client(objectTypeWithAllPropertyTypes)\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n const { attachment, attachmentArray } = withValues.data[0];\n expectTypeOf(attachment).toMatchTypeOf;\n expect(attachment?.rid).toEqual(\"ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75\");\n expect(Array.isArray(attachmentArray)).toBeTruthy();\n expectTypeOf(attachmentArray[0]).toMatchTypeOf;\n const withoutValues = await client(objectTypeWithAllPropertyTypes).where({ id: 2 }).fetchPage();\n const { attachment: emptyAttachment, attachmentArray: emptyAttachmentArray, } = withoutValues.data[0];\n expect(emptyAttachment).toBeUndefined();\n expect(emptyAttachmentArray).toBeUndefined();\n });\n it(\"works even with unknown apiNames - old\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n createSharedClientContext(\"https://stack.palantir.com\", async () => \"myAccessToken\", \"userAgent\");\n let object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n };\n const prototypeBefore = Object.getPrototypeOf(object);\n let object2 = await convertWireToOsdkObjects(clientCtx, [object], undefined, undefined, undefined, false);\n const prototypeAfter = Object.getPrototypeOf(object2);\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n it(\"works even with unknown apiNames - new\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n createSharedClientContext(\"https://stack.palantir.com\", async () => \"myAccessToken\", \"userAgent\");\n let object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n };\n const prototypeBefore = Object.getPrototypeOf(object);\n let object2 = await convertWireToOsdkObjects2(clientCtx, [object], undefined, undefined, undefined, false);\n const prototypeAfter = Object.getPrototypeOf(object2);\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n it(\"updates interface when underlying changes - old\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n let objectFromWire = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n __title: \"Steve\",\n fullName: \"Steve\",\n employeeId: \"5\",\n };\n const [obj] = (await convertWireToOsdkObjects(clientCtx, [objectFromWire], undefined));\n expect(obj.fullName).toEqual(\"Steve\");\n expect(Object.keys(obj).sort()).toEqual([\n \"$apiName\",\n \"$objectType\",\n \"$primaryKey\",\n \"$title\",\n \"employeeId\",\n \"fullName\",\n ].sort());\n const objAsFoo = obj.$as(FooInterface);\n expect(objAsFoo).toMatchObject({\n fooSpt: obj.fullName,\n $apiName: FooInterface.apiName,\n $primaryKey: obj.$primaryKey,\n $objectType: obj.$objectType,\n $title: obj.$title,\n });\n console.log(obj);\n console.log(objAsFoo);\n obj.$updateInternalValues({\n fullName: \"Bob\",\n });\n expect(obj.fullName).toEqual(\"Bob\");\n expect(objAsFoo.fooSpt).toEqual(obj.fullName);\n expect(Object.keys(objAsFoo).sort()).toEqual([\n \"$apiName\",\n \"$objectType\",\n \"$primaryKey\",\n \"$title\",\n \"fooSpt\",\n ].sort());\n expect(obj).toBe(objAsFoo.$as(Employee));\n expect(objAsFoo).toBe(obj.$as(FooInterface));\n });\n it(\"updates interface when underlying changes - new\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n let objectFromWire = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n __title: \"Steve\",\n fullName: \"Steve\",\n employeeId: \"5\",\n };\n const [obj] = (await convertWireToOsdkObjects2(clientCtx, [objectFromWire], undefined));\n expect(obj.fullName).toEqual(\"Steve\");\n expect(Object.keys(obj).sort()).toEqual([\n \"$apiName\",\n \"$objectType\",\n \"$primaryKey\",\n \"$title\",\n \"employeeId\",\n \"fullName\",\n ].sort());\n const objAsFoo = obj.$as(FooInterface);\n expect(objAsFoo).toMatchObject({\n fooSpt: obj.fullName,\n $apiName: FooInterface.apiName,\n $primaryKey: obj.$primaryKey,\n $objectType: obj.$objectType,\n $title: obj.$title,\n });\n console.log(obj);\n console.log(objAsFoo);\n obj.$updateInternalValues({\n fullName: \"Bob\",\n });\n expect(obj.fullName).toEqual(\"Bob\");\n expect(objAsFoo.fooSpt).toEqual(obj.fullName);\n expect(Object.keys(objAsFoo).sort()).toEqual([\n \"$apiName\",\n \"$objectType\",\n \"$primaryKey\",\n \"$title\",\n \"fooSpt\",\n ].sort());\n expect(obj).toBe(objAsFoo.$as(Employee));\n expect(objAsFoo).toBe(obj.$as(FooInterface));\n });\n it(\"reconstitutes interfaces properly without rid - old\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n let objectFromWire = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n __title: \"Steve\",\n fooSpt: \"Steve\",\n };\n const [objAsFoo] = (await convertWireToOsdkObjects(clientCtx, [objectFromWire], FooInterface.apiName));\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n });\n it(\"reconstitutes interfaces properly without rid - new\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n let objectFromWire = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n __title: \"Steve\",\n fullName: \"Steve\",\n };\n const [objAsFoo] = (await convertWireToOsdkObjects2(clientCtx, [objectFromWire], FooInterface.apiName, false, undefined, false, interfaceToObjectTypeMappings));\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fullName\": \"Steve\",\n }\n `);\n });\n it(\"reconstitutes interfaces properly with rid\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n let objectFromWire = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fooSpt: \"Steve\",\n };\n const [objAsFoo] = (await convertWireToOsdkObjects(clientCtx, [objectFromWire], FooInterface.apiName));\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\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 it(\"reconstitutes interfaces properly with rid - new\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n let objectFromWire = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fullName: \"Steve\",\n employeeId: 0,\n };\n const [objAsFoo] = (await convertWireToOsdkObjects2(clientCtx, [objectFromWire], FooInterface.apiName, false, undefined, false, interfaceToObjectTypeMappings));\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\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 describe(\"selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n await expect(() => convertWireToOsdkObjects(client[additionalContext], [object], undefined, undefined, [\"employeeId\"], \"throw\")).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Unable to safely convert objects as some non nullable properties are null]`);\n });\n it(\"does not throw when optional is missing\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n await expect(convertWireToOsdkObjects(client[additionalContext], [object], undefined, undefined, [\"fullName\"], \"throw\")).resolves.to.not.toBeUndefined();\n });\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n const result = await convertWireToOsdkObjects(client[additionalContext], [object], undefined, undefined, [\"employeeId\"], \"drop\");\n expect(result.length).toBe(0);\n });\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n const result = await convertWireToOsdkObjects(client[additionalContext], [object], undefined, undefined, [\"fullName\"], \"drop\");\n expect(result.length).toBe(1);\n });\n });\n describe(\"selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n await expect(() => convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, [\"employeeId\"], \"throw\")).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Unable to safely convert objects as some non nullable properties are null]`);\n });\n it(\"does not throw when optional is missing\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n await expect(convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, [\"fullName\"], \"throw\")).resolves.to.not.toBeUndefined();\n });\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, [\"employeeId\"], \"drop\");\n expect(result.length).toBe(0);\n });\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, [\"fullName\"], \"drop\");\n expect(result.length).toBe(1);\n });\n });\n describe(\"without selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n await expect(() => convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"throw\")).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Unable to safely convert objects as some non nullable properties are null]`);\n });\n it(\"does not throw when required is present\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n };\n await expect(convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"throw\")).resolves.to.not.toBeUndefined();\n });\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"drop\");\n expect(result.length).toBe(0);\n });\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"drop\");\n expect(result.length).toBe(1);\n });\n });\n describe(\"without selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n await expect(() => convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"throw\")).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Unable to safely convert objects as some non nullable properties are null]`);\n });\n it(\"does not throw when required is present\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n };\n await expect(convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"throw\")).resolves.to.not.toBeUndefined();\n });\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"drop\");\n expect(result.length).toBe(0);\n });\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"drop\");\n expect(result.length).toBe(1);\n });\n });\n it(\"behaves correctly when converting\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n fooSpt: \"hi\",\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], \"FooInterface\", undefined, [\"fooSpt\"], \"drop\", interfaceToObjectTypeMappings);\n expect(result.length).toBe(1);\n });\n});\ndescribe(\"Osdk.Instance\", () => {\n it(\"is assignable to Osdk<>\", () => {\n const instance = {};\n const osdk = instance;\n });\n it(\"is assignable from Osdk<>\", () => {\n const osdk = {};\n const instance = osdk;\n });\n it(\"is assignable to Osdk<> with $notStrict\", () => {\n const instance = {};\n const osdk = instance;\n const osdk2 = instance;\n });\n it(\"is assignable from Osdk<> with $notStrict\", () => {\n const osdk = {};\n const osdk2 = osdk;\n const instance = osdk;\n const instance2 = osdk2;\n });\n it(\"object with any for props is assignable to its normal self\", () => {\n const foo = {};\n const bar = foo;\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"convertWireToOsdkObjects.test.js","names":["$ontologyRid","Employee","FooInterface","objectTypeWithAllPropertyTypes","createSharedClientContext","apiServer","afterAll","beforeAll","describe","expect","expectTypeOf","it","additionalContext","createClient","createMinimalClient","convertWireToOsdkObjects","convertWireToOsdkObjects2","client","interfaceToObjectTypeMappings","fooSpt","listen","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","toBeDefined","somePropertyThatShouldNotExist","toThrow","objAsFoo","clientCtx","ontologyRid","object","__apiName","apiName","__primaryKey","prototypeBefore","object2","undefined","prototypeAfter","not","__title","obj","fullName","__rid","$rid","rejects","toThrowErrorMatchingInlineSnapshot","resolves","to","result","instance","osdk"],"sources":["convertWireToOsdkObjects.test.js"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { $ontologyRid, Employee, FooInterface, objectTypeWithAllPropertyTypes, } from \"@osdk/client.test.ontology\";\nimport { createSharedClientContext } from \"@osdk/shared.client.impl\";\nimport { apiServer } from \"@osdk/shared.test\";\nimport { afterAll, beforeAll, describe, expect, expectTypeOf, it, } from \"vitest\";\nimport { additionalContext } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport { convertWireToOsdkObjects, convertWireToOsdkObjects2, } from \"./convertWireToOsdkObjects.js\";\ndescribe(\"convertWireToOsdkObjects\", () => {\n let client;\n const interfaceToObjectTypeMappings = {\n FooInterface: { Employee: { fooSpt: \"fullName\" } },\n };\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\"https://stack.palantir.com\", $ontologyRid, async () => \"myAccessToken\");\n });\n afterAll(() => {\n apiServer.close();\n });\n it(\"configures properties correctly\", async () => {\n const { data: [employee] } = await client(Employee).fetchPage();\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 \"employeeLocation\",\n ].sort());\n expect(Object.keys(employee.$as)).toEqual([]);\n expect(Object.keys(employee.$link)).toEqual([\n \"peeps\",\n \"lead\",\n \"officeLink\",\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 // Should not have $title\n expect(JSON.stringify(employee)).toMatchInlineSnapshot(`\"{\"employeeId\":50030,\"fullName\":\"John Doe\",\"office\":\"NYC\",\"class\":\"Red\",\"startDate\":\"2019-01-01\",\"employeeStatus\":{},\"employeeSensor\":{},\"employeeLocation\":{},\"$apiName\":\"Employee\",\"$objectType\":\"Employee\",\"$primaryKey\":50030}\"`);\n expect(JSON.stringify(employee.$as(FooInterface))).toMatchInlineSnapshot(`\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50030,\"fooSpt\":\"John Doe\"}\"`);\n // Should have $title\n expect(JSON.stringify(employee2)).toMatchInlineSnapshot(`\"{\"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\"}\"`);\n expect(JSON.stringify(employee2.$as(FooInterface))).toMatchInlineSnapshot(`\"{\"$apiName\":\"FooInterface\",\"$objectType\":\"Employee\",\"$primaryKey\":50031,\"$title\":\"Jane Doe\",\"fooSpt\":\"Jane Doe\"}\"`);\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 expect(Object.getPrototypeOf(Object.getPrototypeOf(a))).toBe(Object.getPrototypeOf(Object.getPrototypeOf(b)));\n });\n it(\"converts attachments as expected\", async () => {\n const withValues = await client(objectTypeWithAllPropertyTypes)\n .where({ id: 1 })\n .fetchPage();\n expect(withValues.data.length).toBeGreaterThanOrEqual(1);\n const { attachment, attachmentArray } = withValues.data[0];\n expectTypeOf(attachment).toMatchTypeOf;\n expect(attachment?.rid).toEqual(\"ri.attachments.main.attachment.86016861-707f-4292-b258-6a7108915a75\");\n expect(Array.isArray(attachmentArray)).toBeTruthy();\n expectTypeOf(attachmentArray[0]).toMatchTypeOf;\n const withoutValues = await client(objectTypeWithAllPropertyTypes).where({ id: 2 }).fetchPage();\n const { attachment: emptyAttachment, attachmentArray: emptyAttachmentArray, } = withoutValues.data[0];\n expect(emptyAttachment).toBeUndefined();\n expect(emptyAttachmentArray).toBeUndefined();\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 expect(a).toBeDefined();\n expect(() => {\n a.somePropertyThatShouldNotExist = 5;\n }).toThrow();\n const objAsFoo = a.$as(FooInterface);\n expect(objAsFoo).toBeDefined();\n expect(() => {\n objAsFoo.somePropertyThatShouldNotExist = 5;\n }).toThrow();\n });\n it(\"works even with unknown apiNames - old\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n createSharedClientContext(\"https://stack.palantir.com\", async () => \"myAccessToken\", \"userAgent\");\n let object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n };\n const prototypeBefore = Object.getPrototypeOf(object);\n let object2 = await convertWireToOsdkObjects(clientCtx, [object], undefined, undefined, undefined, false);\n const prototypeAfter = Object.getPrototypeOf(object2);\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n it(\"works even with unknown apiNames - new\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n createSharedClientContext(\"https://stack.palantir.com\", async () => \"myAccessToken\", \"userAgent\");\n let object = {\n __apiName: Employee.apiName,\n __primaryKey: 0,\n };\n const prototypeBefore = Object.getPrototypeOf(object);\n let object2 = await convertWireToOsdkObjects2(clientCtx, [object], undefined, undefined, undefined, false);\n const prototypeAfter = Object.getPrototypeOf(object2);\n expect(prototypeBefore).not.toBe(prototypeAfter);\n });\n it(\"reconstitutes interfaces properly without rid - old\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n let objectFromWire = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n __title: \"Steve\",\n fooSpt: \"Steve\",\n };\n const [objAsFoo] = (await convertWireToOsdkObjects(clientCtx, [objectFromWire], FooInterface.apiName));\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"employeeId\": 0,\n \"fullName\": \"Steve\",\n }\n `);\n });\n it(\"reconstitutes interfaces properly without rid - new\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n let objectFromWire = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n __title: \"Steve\",\n fullName: \"Steve\",\n };\n const [objAsFoo] = (await convertWireToOsdkObjects2(clientCtx, [objectFromWire], FooInterface.apiName, false, undefined, false, interfaceToObjectTypeMappings));\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$title\": \"Steve\",\n \"fullName\": \"Steve\",\n }\n `);\n });\n it(\"reconstitutes interfaces properly with rid\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n let objectFromWire = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fooSpt: \"Steve\",\n };\n const [objAsFoo] = (await convertWireToOsdkObjects(clientCtx, [objectFromWire], FooInterface.apiName));\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\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 it(\"reconstitutes interfaces properly with rid - new\", async () => {\n const clientCtx = createMinimalClient({ ontologyRid: $ontologyRid }, \"https://stack.palantir.com\", async () => \"myAccessToken\");\n let objectFromWire = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n __title: \"Steve\",\n __rid: \"hiMom\",\n fullName: \"Steve\",\n employeeId: 0,\n };\n const [objAsFoo] = (await convertWireToOsdkObjects2(clientCtx, [objectFromWire], FooInterface.apiName, false, undefined, false, interfaceToObjectTypeMappings));\n expect(objAsFoo).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"FooInterface\",\n \"$objectType\": \"Employee\",\n \"$primaryKey\": 0,\n \"$rid\": \"hiMom\",\n \"$title\": \"Steve\",\n \"fooSpt\": \"Steve\",\n }\n `);\n expect(objAsFoo.$rid).toEqual(\"hiMom\");\n const obj = objAsFoo.$as(Employee);\n expect(obj.fullName).toEqual(\"Steve\");\n expect(obj).toMatchInlineSnapshot(`\n {\n \"$apiName\": \"Employee\",\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 describe(\"selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n await expect(() => convertWireToOsdkObjects(client[additionalContext], [object], undefined, undefined, [\"employeeId\"], \"throw\")).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Unable to safely convert objects as some non nullable properties are null]`);\n });\n it(\"does not throw when optional is missing\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n await expect(convertWireToOsdkObjects(client[additionalContext], [object], undefined, undefined, [\"fullName\"], \"throw\")).resolves.to.not.toBeUndefined();\n });\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n const result = await convertWireToOsdkObjects(client[additionalContext], [object], undefined, undefined, [\"employeeId\"], \"drop\");\n expect(result.length).toBe(0);\n });\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n const result = await convertWireToOsdkObjects(client[additionalContext], [object], undefined, undefined, [\"fullName\"], \"drop\");\n expect(result.length).toBe(1);\n });\n });\n describe(\"selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n await expect(() => convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, [\"employeeId\"], \"throw\")).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Unable to safely convert objects as some non nullable properties are null]`);\n });\n it(\"does not throw when optional is missing\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n await expect(convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, [\"fullName\"], \"throw\")).resolves.to.not.toBeUndefined();\n });\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, [\"employeeId\"], \"drop\");\n expect(result.length).toBe(0);\n });\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, [\"fullName\"], \"drop\");\n expect(result.length).toBe(1);\n });\n });\n describe(\"without selection keys\", () => {\n it(\"throws when required is missing\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n await expect(() => convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"throw\")).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Unable to safely convert objects as some non nullable properties are null]`);\n });\n it(\"does not throw when required is present\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n };\n await expect(convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"throw\")).resolves.to.not.toBeUndefined();\n });\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"drop\");\n expect(result.length).toBe(0);\n });\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"drop\");\n expect(result.length).toBe(1);\n });\n });\n describe(\"without selection keys - new\", () => {\n it(\"throws when required is missing\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n await expect(() => convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"throw\")).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Unable to safely convert objects as some non nullable properties are null]`);\n });\n it(\"does not throw when required is present\", async () => {\n let object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n };\n await expect(convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"throw\")).resolves.to.not.toBeUndefined();\n });\n it(\"filters when it should\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"drop\");\n expect(result.length).toBe(0);\n });\n it(\"does not filter when it shouldn't\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n \"employeeId\": 0,\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], undefined, undefined, undefined, \"drop\");\n expect(result.length).toBe(1);\n });\n });\n it(\"behaves correctly when converting\", async () => {\n const object = {\n __apiName: \"Employee\",\n __primaryKey: 0,\n fooSpt: \"hi\",\n };\n const result = await convertWireToOsdkObjects2(client[additionalContext], [object], \"FooInterface\", undefined, [\"fooSpt\"], \"drop\", interfaceToObjectTypeMappings);\n expect(result.length).toBe(1);\n });\n});\ndescribe(\"Osdk.Instance\", () => {\n it(\"is assignable to Osdk<>\", () => {\n const instance = {};\n const osdk = instance;\n });\n it(\"is assignable from Osdk<>\", () => {\n const osdk = {};\n const instance = osdk;\n });\n it(\"is assignable to Osdk<> with $notStrict\", () => {\n const instance = {};\n const osdk = instance;\n const osdk2 = instance;\n });\n it(\"is assignable from Osdk<> with $notStrict\", () => {\n const osdk = {};\n const osdk2 = osdk;\n const instance = osdk;\n const instance2 = osdk2;\n });\n it(\"object with any for props is assignable to its normal self\", () => {\n const foo = {};\n const bar = foo;\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"object.test.d.ts","sourceRoot":"","sources":["../../../src/object/object.test.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,WAAW,CAAC;AACpD,OAAO,EAA0B,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAG9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAoL3C,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAKzE;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAK9B;AAED,wBAAsB,wCAAwC,CAC5D,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAIvC;AAED,wBAAsB,gDAAgD,CACpE,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAIvC;AAED,wBAAsB,wCAAwC,CAC5D,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAInD;AAED,wBAAsB,gDAAgD,CACpE,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAIvC;AAED,wBAAsB,wCAAwC,CAC5D,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAEzB;AAED,wBAAsB,4CAA4C,CAChE,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAEzB"}
1
+ {"version":3,"file":"object.test.d.ts","sourceRoot":"","sources":["../../../src/object/object.test.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAA0B,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAG9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAoL3C,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAKzE;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAK9B;AAED,wBAAsB,wCAAwC,CAC5D,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAIvC;AAED,wBAAsB,gDAAgD,CACpE,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAIvC;AAED,wBAAsB,wCAAwC,CAC5D,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAInD;AAED,wBAAsB,gDAAgD,CACpE,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAIvC;AAED,wBAAsB,wCAAwC,CAC5D,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAEzB;AAED,wBAAsB,4CAA4C,CAChE,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAEzB"}
@@ -66,6 +66,7 @@ export class ObjectSetListenerWebsocket {
66
66
  * temporary and not the actual subscriptionId from the server.
67
67
  */
68
68
  #subscriptions = new Map();
69
+ #endedSubscriptions = new Set();
69
70
  #maybeDisconnectTimeout;
70
71
  // DO NOT CONSTRUCT DIRECTLY. ONLY EXPOSED AS A TESTING SEAM
71
72
  constructor(client, {
@@ -79,9 +80,6 @@ export class ObjectSetListenerWebsocket {
79
80
  !(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? process.env.NODE_ENV !== "production" ? invariant(false, "Stack must be a URL") : invariant(false) : void 0;
80
81
  }
81
82
  async subscribe(objectType, objectSet, listener, properties = []) {
82
- // Node 18 does not expose 'crypto' on globalThis, so we need to do it ourselves. This
83
- // will not be needed after our minimum version is 19 or greater.
84
- globalThis.crypto ??= (await import("node:crypto")).webcrypto;
85
83
  const objDef = objectType.type === "object" ? await this.#client.ontologyProvider.getObjectDefinition(objectType.apiName) : await this.#client.ontologyProvider.getInterfaceDefinition(objectType.apiName);
86
84
  let objectProperties = [];
87
85
  let referenceProperties = [];
@@ -104,7 +102,7 @@ export class ObjectSetListenerWebsocket {
104
102
  status: "preparing",
105
103
  // Since we don't have a real subscription id yet but we need to keep
106
104
  // track of this reference, we can just use a random uuid.
107
- subscriptionId: `TMP-${crypto.randomUUID()}`,
105
+ subscriptionId: `TMP-${nextUuid()}}`,
108
106
  interfaceApiName: objDef.type === "object" ? undefined : objDef.apiName
109
107
  };
110
108
  this.#subscriptions.set(sub.subscriptionId, sub);
@@ -142,7 +140,7 @@ export class ObjectSetListenerWebsocket {
142
140
  }
143
141
  } catch (error) {
144
142
  this.#logger?.error(error, "Error in #initiateSubscribe");
145
- sub.listener.onError([error]);
143
+ this.#tryCatchOnError(sub, true, error);
146
144
  }
147
145
  }
148
146
  #sendSubscribeMessage() {
@@ -153,14 +151,7 @@ export class ObjectSetListenerWebsocket {
153
151
  // we may have multiple subscriptions that don't have a subscriptionId yet,
154
152
  // so we filter those out.
155
153
  const readySubs = [...this.#subscriptions.values()].filter(isReady);
156
- if (readySubs.length === 0) {
157
- if (process.env.NODE_ENV !== "production") {
158
- this.#logger?.trace("#sendSubscribeMessage(): aborting due to no ready subscriptions");
159
- }
160
- return;
161
- }
162
- // Assumes the node 18 crypto fallback to globalThis in `subscribe` has happened.
163
- const id = crypto.randomUUID();
154
+ const id = nextUuid();
164
155
  // responses come back as an array of subIds, so we need to know the sources
165
156
  this.#pendingSubscriptions.set(id, readySubs);
166
157
  // every subscribe message "overwrites" the previous ones that are not
@@ -196,6 +187,7 @@ export class ObjectSetListenerWebsocket {
196
187
  // make sure listeners do nothing now
197
188
  sub.listener = fillOutListener({});
198
189
  this.#subscriptions.delete(sub.subscriptionId);
190
+ this.#endedSubscriptions.add(sub.subscriptionId);
199
191
  this.#sendSubscribeMessage();
200
192
  // If we have no more subscriptions, we can disconnect the websocket
201
193
  // however we should wait a bit to see if we get any more subscriptions.
@@ -322,7 +314,12 @@ export class ObjectSetListenerWebsocket {
322
314
  }));
323
315
  for (const osdkObject of osdkObjectsWithReferenceUpdates) {
324
316
  if (osdkObject != null) {
325
- sub.listener.onChange?.(osdkObject);
317
+ try {
318
+ sub.listener.onChange?.(osdkObject);
319
+ } catch (error) {
320
+ this.#logger?.error(error, "Error in onChange callback");
321
+ this.#tryCatchOnError(sub, false, error);
322
+ }
326
323
  }
327
324
  }
328
325
  const osdkObjects = await Promise.all(objectUpdates.map(async o => {
@@ -339,13 +336,24 @@ export class ObjectSetListenerWebsocket {
339
336
  }));
340
337
  for (const osdkObject of osdkObjects) {
341
338
  if (osdkObject != null) {
342
- sub.listener.onChange?.(osdkObject);
339
+ try {
340
+ sub.listener.onChange?.(osdkObject);
341
+ } catch (error) {
342
+ this.#logger?.error(error, "Error in onChange callback");
343
+ this.#tryCatchOnError(sub, false, error);
344
+ }
343
345
  }
344
346
  }
345
347
  };
346
348
  #handleMessage_refreshObjectSet = payload => {
347
349
  const sub = this.#subscriptions.get(payload.id);
348
350
  !sub ? process.env.NODE_ENV !== "production" ? invariant(false, `Expected subscription id ${payload.id}`) : invariant(false) : void 0;
351
+ try {
352
+ sub.listener.onOutOfDate();
353
+ } catch (error) {
354
+ this.#logger?.error(error, "Error in onOutOfDate callback");
355
+ this.#tryCatchOnError(sub, false, error);
356
+ }
349
357
  sub.listener.onOutOfDate();
350
358
  };
351
359
  #handleMessage_subscribeResponses = payload => {
@@ -361,7 +369,7 @@ export class ObjectSetListenerWebsocket {
361
369
  const response = responses[i];
362
370
  switch (response.type) {
363
371
  case "error":
364
- sub.listener.onError(response.errors);
372
+ this.#tryCatchOnError(sub, true, response.errors);
365
373
  this.#unsubscribe(sub, "error");
366
374
  break;
367
375
  case "qos":
@@ -383,17 +391,23 @@ export class ObjectSetListenerWebsocket {
383
391
  sub.subscriptionId = response.id;
384
392
  this.#subscriptions.set(sub.subscriptionId, sub); // future messages come by this subId
385
393
  }
386
- if (shouldFireOutOfDate) sub.listener.onOutOfDate();else sub.listener.onSuccessfulSubscription();
394
+ try {
395
+ if (shouldFireOutOfDate) sub.listener.onOutOfDate();else sub.listener.onSuccessfulSubscription();
396
+ } catch (error) {
397
+ this.#logger?.error(error, "Error in onOutOfDate or onSuccessfulSubscription callback");
398
+ this.#tryCatchOnError(sub, false, error);
399
+ }
387
400
  break;
388
401
  default:
389
- sub.listener.onError(response);
402
+ this.#tryCatchOnError(sub, true, response);
390
403
  }
391
404
  }
392
405
  };
393
406
  #handleMessage_subscriptionClosed(payload) {
394
407
  const sub = this.#subscriptions.get(payload.id);
408
+ if (sub == null && this.#endedSubscriptions.has(payload.id)) return;
395
409
  !sub ? process.env.NODE_ENV !== "production" ? invariant(false, `Expected subscription id ${payload.id}`) : invariant(false) : void 0;
396
- sub.listener.onError([payload.cause]);
410
+ this.#tryCatchOnError(sub, true, payload.cause);
397
411
  this.#unsubscribe(sub, "error");
398
412
  }
399
413
  #onClose = event => {
@@ -428,6 +442,26 @@ export class ObjectSetListenerWebsocket {
428
442
  this.#ensureWebsocket();
429
443
  }
430
444
  };
445
+ #tryCatchOnError = (sub, subscriptionClosed, error) => {
446
+ try {
447
+ sub.listener.onError({
448
+ subscriptionClosed: subscriptionClosed,
449
+ error
450
+ });
451
+ } catch (onErrorError) {
452
+ // eslint-disable-next-line no-console
453
+ console.error(`Error encountered in an onError callback for an OSDK subscription`, onErrorError);
454
+ // eslint-disable-next-line no-console
455
+ console.error(`This onError call was triggered by an error in another callback`, error);
456
+ // eslint-disable-next-line no-console
457
+ console.error(`The subscription has been closed.`, error);
458
+ if (!subscriptionClosed) {
459
+ this.#logger?.error(error, "Error in onError callback");
460
+ this.#unsubscribe(sub, "error");
461
+ this.#tryCatchOnError(sub, true, onErrorError);
462
+ }
463
+ }
464
+ };
431
465
  }
432
466
  /** @internal */
433
467
  export function constructWebsocketUrl(baseUrl, ontologyRid) {
@@ -436,4 +470,8 @@ export function constructWebsocketUrl(baseUrl, ontologyRid) {
436
470
  url.protocol = url.protocol.replace("https", "wss");
437
471
  return url;
438
472
  }
473
+ let uuidCounter = 0;
474
+ function nextUuid() {
475
+ return `00000000-0000-0000-0000-${(uuidCounter++).toString().padStart(12, "0")}`;
476
+ }
439
477
  //# sourceMappingURL=ObjectSetListenerWebsocket.js.map