@osdk/client 2.5.0-beta.9 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/build/browser/MinimalClientContext.js.map +1 -1
  3. package/build/browser/actions/applyAction.js +0 -4
  4. package/build/browser/actions/applyAction.js.map +1 -1
  5. package/build/browser/createClient.js +1 -2
  6. package/build/browser/createClient.js.map +1 -1
  7. package/build/browser/createMinimalClient.js +1 -2
  8. package/build/browser/createMinimalClient.js.map +1 -1
  9. package/build/browser/definitions/LinkDefinitions.test.js.map +1 -1
  10. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +0 -17
  11. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  12. package/build/browser/fetchMetadata.test.js +4 -0
  13. package/build/browser/fetchMetadata.test.js.map +1 -1
  14. package/build/browser/index.js +1 -1
  15. package/build/browser/index.js.map +1 -1
  16. package/build/browser/object/aggregate.js +0 -2
  17. package/build/browser/object/aggregate.js.map +1 -1
  18. package/build/browser/object/convertWireToOsdkObjects.test.js +5 -1
  19. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  20. package/build/browser/object/fetchPage.js +5 -7
  21. package/build/browser/object/fetchPage.js.map +1 -1
  22. package/build/browser/object/mediaUpload.js +0 -3
  23. package/build/browser/object/mediaUpload.js.map +1 -1
  24. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +31 -9
  25. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  26. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +69 -4
  27. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  28. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  29. package/build/browser/observable/ObjectSetPayload.js +2 -0
  30. package/build/browser/observable/ObjectSetPayload.js.map +1 -0
  31. package/build/browser/observable/ObservableClient.js.map +1 -1
  32. package/build/browser/observable/computeObjectSetCacheKey.js +64 -0
  33. package/build/browser/observable/computeObjectSetCacheKey.js.map +1 -0
  34. package/build/browser/observable/internal/Changes.js +3 -0
  35. package/build/browser/observable/internal/Changes.js.map +1 -1
  36. package/build/browser/observable/internal/KnownCacheKey.js.map +1 -1
  37. package/build/browser/observable/internal/ObservableClientImpl.js +17 -0
  38. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  39. package/build/browser/observable/internal/Query.js +18 -1
  40. package/build/browser/observable/internal/Query.js.map +1 -1
  41. package/build/browser/observable/internal/Store.invalidation.test.js +165 -0
  42. package/build/browser/observable/internal/Store.invalidation.test.js.map +1 -1
  43. package/build/browser/observable/internal/Store.js +23 -0
  44. package/build/browser/observable/internal/Store.js.map +1 -1
  45. package/build/browser/observable/internal/objectset/ObjectSetCacheKey.js +2 -0
  46. package/build/browser/observable/internal/objectset/ObjectSetCacheKey.js.map +1 -0
  47. package/build/browser/observable/internal/objectset/ObjectSetHelper.js +69 -0
  48. package/build/browser/observable/internal/objectset/ObjectSetHelper.js.map +1 -0
  49. package/build/browser/observable/internal/objectset/ObjectSetQuery.js +151 -0
  50. package/build/browser/observable/internal/objectset/ObjectSetQuery.js.map +1 -0
  51. package/build/browser/observable/internal/objectset/ObjectSetQueryOptions.js +2 -0
  52. package/build/browser/observable/internal/objectset/ObjectSetQueryOptions.js.map +1 -0
  53. package/build/browser/ontology/loadActionMetadata.js +1 -3
  54. package/build/browser/ontology/loadActionMetadata.js.map +1 -1
  55. package/build/browser/ontology/loadFullObjectMetadata.js +1 -2
  56. package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
  57. package/build/browser/ontology/loadInterfaceMetadata.js +1 -2
  58. package/build/browser/ontology/loadInterfaceMetadata.js.map +1 -1
  59. package/build/browser/public/unstable-do-not-use.js +1 -0
  60. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  61. package/build/browser/util/UserAgent.js +2 -2
  62. package/build/browser/util/UserAgent.js.map +1 -1
  63. package/build/browser/util/exponentialBackoff.js +51 -0
  64. package/build/browser/util/exponentialBackoff.js.map +1 -0
  65. package/build/browser/util/exponentialBackoff.test.js +81 -0
  66. package/build/browser/util/exponentialBackoff.test.js.map +1 -0
  67. package/build/browser/util/toDataValue.js +1 -15
  68. package/build/browser/util/toDataValue.js.map +1 -1
  69. package/build/browser/util/toDataValue.test.js +2 -42
  70. package/build/browser/util/toDataValue.test.js.map +1 -1
  71. package/build/cjs/{chunk-MKL3HEQ5.cjs → chunk-KODTFRP3.cjs} +105 -71
  72. package/build/cjs/chunk-KODTFRP3.cjs.map +1 -0
  73. package/build/cjs/{chunk-HCCGD2AP.cjs → chunk-UMET26AF.cjs} +68 -91
  74. package/build/cjs/chunk-UMET26AF.cjs.map +1 -0
  75. package/build/cjs/{createClient-mOlFts15.d.cts → createClient-BJo8T7Js.d.cts} +0 -1
  76. package/build/cjs/index.cjs +7 -11
  77. package/build/cjs/index.d.cts +2 -2
  78. package/build/cjs/public/internal.cjs +8 -8
  79. package/build/cjs/public/unstable-do-not-use.cjs +429 -156
  80. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  81. package/build/cjs/public/unstable-do-not-use.d.cts +79 -7
  82. package/build/esm/MinimalClientContext.js.map +1 -1
  83. package/build/esm/actions/applyAction.js +0 -4
  84. package/build/esm/actions/applyAction.js.map +1 -1
  85. package/build/esm/createClient.js +1 -2
  86. package/build/esm/createClient.js.map +1 -1
  87. package/build/esm/createMinimalClient.js +1 -2
  88. package/build/esm/createMinimalClient.js.map +1 -1
  89. package/build/esm/definitions/LinkDefinitions.test.js.map +1 -1
  90. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +0 -17
  91. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  92. package/build/esm/fetchMetadata.test.js +4 -0
  93. package/build/esm/fetchMetadata.test.js.map +1 -1
  94. package/build/esm/index.js +1 -1
  95. package/build/esm/index.js.map +1 -1
  96. package/build/esm/object/aggregate.js +0 -2
  97. package/build/esm/object/aggregate.js.map +1 -1
  98. package/build/esm/object/convertWireToOsdkObjects.test.js +5 -1
  99. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  100. package/build/esm/object/fetchPage.js +5 -7
  101. package/build/esm/object/fetchPage.js.map +1 -1
  102. package/build/esm/object/mediaUpload.js +0 -3
  103. package/build/esm/object/mediaUpload.js.map +1 -1
  104. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +31 -9
  105. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  106. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +69 -4
  107. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  108. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  109. package/build/esm/observable/ObjectSetPayload.js +2 -0
  110. package/build/esm/observable/ObjectSetPayload.js.map +1 -0
  111. package/build/esm/observable/ObservableClient.js.map +1 -1
  112. package/build/esm/observable/computeObjectSetCacheKey.js +64 -0
  113. package/build/esm/observable/computeObjectSetCacheKey.js.map +1 -0
  114. package/build/esm/observable/internal/Changes.js +3 -0
  115. package/build/esm/observable/internal/Changes.js.map +1 -1
  116. package/build/esm/observable/internal/KnownCacheKey.js.map +1 -1
  117. package/build/esm/observable/internal/ObservableClientImpl.js +17 -0
  118. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  119. package/build/esm/observable/internal/Query.js +18 -1
  120. package/build/esm/observable/internal/Query.js.map +1 -1
  121. package/build/esm/observable/internal/Store.invalidation.test.js +165 -0
  122. package/build/esm/observable/internal/Store.invalidation.test.js.map +1 -1
  123. package/build/esm/observable/internal/Store.js +23 -0
  124. package/build/esm/observable/internal/Store.js.map +1 -1
  125. package/build/esm/observable/internal/objectset/ObjectSetCacheKey.js +2 -0
  126. package/build/esm/observable/internal/objectset/ObjectSetCacheKey.js.map +1 -0
  127. package/build/esm/observable/internal/objectset/ObjectSetHelper.js +69 -0
  128. package/build/esm/observable/internal/objectset/ObjectSetHelper.js.map +1 -0
  129. package/build/esm/observable/internal/objectset/ObjectSetQuery.js +151 -0
  130. package/build/esm/observable/internal/objectset/ObjectSetQuery.js.map +1 -0
  131. package/build/esm/observable/internal/objectset/ObjectSetQueryOptions.js +2 -0
  132. package/build/esm/observable/internal/objectset/ObjectSetQueryOptions.js.map +1 -0
  133. package/build/esm/ontology/loadActionMetadata.js +1 -3
  134. package/build/esm/ontology/loadActionMetadata.js.map +1 -1
  135. package/build/esm/ontology/loadFullObjectMetadata.js +1 -2
  136. package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
  137. package/build/esm/ontology/loadInterfaceMetadata.js +1 -2
  138. package/build/esm/ontology/loadInterfaceMetadata.js.map +1 -1
  139. package/build/esm/public/unstable-do-not-use.js +1 -0
  140. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  141. package/build/esm/util/UserAgent.js +2 -2
  142. package/build/esm/util/UserAgent.js.map +1 -1
  143. package/build/esm/util/exponentialBackoff.js +51 -0
  144. package/build/esm/util/exponentialBackoff.js.map +1 -0
  145. package/build/esm/util/exponentialBackoff.test.js +81 -0
  146. package/build/esm/util/exponentialBackoff.test.js.map +1 -0
  147. package/build/esm/util/toDataValue.js +1 -15
  148. package/build/esm/util/toDataValue.js.map +1 -1
  149. package/build/esm/util/toDataValue.test.js +2 -42
  150. package/build/esm/util/toDataValue.test.js.map +1 -1
  151. package/build/types/MinimalClientContext.d.ts +0 -1
  152. package/build/types/MinimalClientContext.d.ts.map +1 -1
  153. package/build/types/actions/applyAction.d.ts.map +1 -1
  154. package/build/types/createClient.d.ts +0 -1
  155. package/build/types/createClient.d.ts.map +1 -1
  156. package/build/types/index.d.ts +1 -1
  157. package/build/types/index.d.ts.map +1 -1
  158. package/build/types/object/fetchPage.d.ts.map +1 -1
  159. package/build/types/object/mediaUpload.d.ts +1 -2
  160. package/build/types/object/mediaUpload.d.ts.map +1 -1
  161. package/build/types/observable/ObjectSetPayload.d.ts +5 -0
  162. package/build/types/observable/ObjectSetPayload.d.ts.map +1 -0
  163. package/build/types/observable/ObservableClient.d.ts +54 -1
  164. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  165. package/build/types/observable/computeObjectSetCacheKey.d.ts +16 -0
  166. package/build/types/observable/computeObjectSetCacheKey.d.ts.map +1 -0
  167. package/build/types/observable/internal/Changes.d.ts +5 -3
  168. package/build/types/observable/internal/Changes.d.ts.map +1 -1
  169. package/build/types/observable/internal/KnownCacheKey.d.ts +2 -1
  170. package/build/types/observable/internal/KnownCacheKey.d.ts.map +1 -1
  171. package/build/types/observable/internal/Query.d.ts.map +1 -1
  172. package/build/types/observable/internal/Store.d.ts +5 -1
  173. package/build/types/observable/internal/Store.d.ts.map +1 -1
  174. package/build/types/observable/internal/objectset/ObjectSetCacheKey.d.ts +16 -0
  175. package/build/types/observable/internal/objectset/ObjectSetCacheKey.d.ts.map +1 -0
  176. package/build/types/observable/internal/objectset/ObjectSetHelper.d.ts +19 -0
  177. package/build/types/observable/internal/objectset/ObjectSetHelper.d.ts.map +1 -0
  178. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts +34 -0
  179. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts.map +1 -0
  180. package/build/types/observable/internal/objectset/ObjectSetQueryOptions.d.ts +18 -0
  181. package/build/types/observable/internal/objectset/ObjectSetQueryOptions.d.ts.map +1 -0
  182. package/build/types/public/unstable-do-not-use.d.ts +2 -1
  183. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  184. package/build/types/util/exponentialBackoff.d.ts +14 -0
  185. package/build/types/util/exponentialBackoff.d.ts.map +1 -0
  186. package/build/types/util/exponentialBackoff.test.d.ts +1 -0
  187. package/build/types/util/exponentialBackoff.test.d.ts.map +1 -0
  188. package/package.json +11 -11
  189. package/build/cjs/chunk-HCCGD2AP.cjs.map +0 -1
  190. package/build/cjs/chunk-MKL3HEQ5.cjs.map +0 -1
@@ -14,28 +14,25 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { NULL_VALUE } from "@osdk/api";
18
17
  import { Employee, Task } from "@osdk/client.test.ontology";
19
- import { LegacyFauxFoundry, MockOntologiesV2, startNodeApiServer, stubData } from "@osdk/shared.test";
18
+ import { LegacyFauxFoundry, startNodeApiServer, stubData } from "@osdk/shared.test";
20
19
  import { beforeAll, describe, expect, it, vi } from "vitest";
21
20
  import { createClient } from "../createClient.js";
22
21
  import { createMinimalClient } from "../createMinimalClient.js";
23
22
  import { createAttachmentUpload } from "../object/AttachmentUpload.js";
24
- import { isMediaReference } from "../object/mediaUpload.js";
25
23
  import { getWireObjectSet } from "../objectSet/createObjectSet.js";
26
24
  import { toDataValue } from "./toDataValue.js";
27
25
  describe(toDataValue, () => {
28
26
  let client;
29
27
  let clientCtx;
30
28
  let mockActionMetadata;
31
- let apiServer;
32
29
  vi.fn();
33
30
  beforeAll(() => {
34
31
  const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);
35
32
  ({
36
33
  client
37
34
  } = testSetup);
38
- apiServer = testSetup.apiServer;
35
+ testSetup.apiServer;
39
36
  clientCtx = createMinimalClient({
40
37
  ontologyRid: testSetup.fauxFoundry.defaultOntologyRid
41
38
  }, testSetup.fauxFoundry.baseUrl, testSetup.auth, {});
@@ -143,35 +140,6 @@ describe(toDataValue, () => {
143
140
  const converted = await toDataValue(file, clientCtx, mockActionMetadata);
144
141
  expect(converted).toMatch(/ri\.attachments.main.attachment\.[a-z0-9\-]+/i);
145
142
  });
146
- it("converts media uploads correctly", async () => {
147
- const file = {
148
- data: new Blob([JSON.stringify({
149
- name: "Hello World"
150
- }, null, 2)], {
151
- type: "application/json"
152
- }),
153
- path: "file.txt"
154
- };
155
-
156
- // TODO: Mock MediaUpload properly in FauxFoundry
157
- apiServer.boundary(async () => {
158
- apiServer.use(MockOntologiesV2.MediaReferenceProperties.uploadMedia("https://stack.palantir.com", () => {
159
- return {
160
- mimeType: "application/json",
161
- reference: {
162
- type: "mediaSetViewItem",
163
- mediaSetViewItem: {
164
- mediaItemRid: "media-item-rid",
165
- mediaSetRid: "media-set-rid",
166
- mediaSetViewRid: "media-set-view-rid"
167
- }
168
- }
169
- };
170
- }));
171
- const converted = await toDataValue(file, clientCtx, mockActionMetadata);
172
- expect(isMediaReference(converted)).toBe(true);
173
- });
174
- });
175
143
  it("converts media reference correctly", async () => {
176
144
  const mediaReference = {
177
145
  mimeType: "application/json",
@@ -187,13 +155,5 @@ describe(toDataValue, () => {
187
155
  const converted = await toDataValue(mediaReference, clientCtx, mockActionMetadata);
188
156
  expect(converted).toEqual(mediaReference);
189
157
  });
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
- });
198
158
  });
199
159
  //# sourceMappingURL=toDataValue.test.js.map
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"toDataValue.test.js","names":["Employee","Task","LegacyFauxFoundry","startNodeApiServer","stubData","beforeAll","describe","expect","it","vi","createClient","createMinimalClient","createAttachmentUpload","getWireObjectSet","toDataValue","client","clientCtx","mockActionMetadata","fn","testSetup","apiServer","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","mediaReference","mimeType","reference","mediaSetViewItem","mediaItemRid","mediaSetRid","mediaSetViewRid"],"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 } 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 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 { 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 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":[]}
@@ -3,13 +3,13 @@
3
3
  var chunkQ7SFCCGT_cjs = require('./chunk-Q7SFCCGT.cjs');
4
4
  var shared_net_errors = require('@osdk/shared.net.errors');
5
5
  var api = require('@osdk/api');
6
- var invariant5 = require('tiny-invariant');
6
+ var invariant8 = require('tiny-invariant');
7
7
  var shared_net_fetch = require('@osdk/shared.net.fetch');
8
8
  var WebSocket = require('isomorphic-ws');
9
9
 
10
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
 
12
- var invariant5__default = /*#__PURE__*/_interopDefault(invariant5);
12
+ var invariant8__default = /*#__PURE__*/_interopDefault(invariant8);
13
13
  var WebSocket__default = /*#__PURE__*/_interopDefault(WebSocket);
14
14
 
15
15
  // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
@@ -406,7 +406,7 @@ function makeGeoFilterPolygon(coordinates, filterType, propertyIdentifier, field
406
406
  };
407
407
  }
408
408
  function handleWherePair([fieldName, filter], objectOrInterface, structFieldSelector) {
409
- !(filter != null) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Defined key values are only allowed when they are not undefined.") : invariant5__default.default(false) : void 0;
409
+ !(filter != null) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Defined key values are only allowed when they are not undefined.") : invariant8__default.default(false) : void 0;
410
410
  const propertyIdentifier = structFieldSelector != null ? {
411
411
  type: "structField",
412
412
  ...structFieldSelector,
@@ -425,10 +425,10 @@ function handleWherePair([fieldName, filter], objectOrInterface, structFieldSele
425
425
  }
426
426
  const keysOfFilter = Object.keys(filter);
427
427
  const hasDollarSign = keysOfFilter.some((key) => key.startsWith("$"));
428
- !(!hasDollarSign || keysOfFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "A WhereClause Filter with multiple clauses/fields is not allowed. Instead, use an 'or'/'and' clause to combine multiple filters.") : invariant5__default.default(false) : void 0;
428
+ !(!hasDollarSign || keysOfFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "A WhereClause Filter with multiple clauses/fields is not allowed. Instead, use an 'or'/'and' clause to combine multiple filters.") : invariant8__default.default(false) : void 0;
429
429
  if (!hasDollarSign) {
430
430
  const structFilter = Object.entries(filter);
431
- !(structFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Cannot filter on more than one struct field in the same clause, need to use an and clause") : invariant5__default.default(false) : void 0;
431
+ !(structFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Cannot filter on more than one struct field in the same clause, need to use an and clause") : invariant8__default.default(false) : void 0;
432
432
  const structFieldApiName = keysOfFilter[0];
433
433
  return handleWherePair(Object.entries(filter)[0], objectOrInterface, {
434
434
  propertyApiName: fieldName,
@@ -436,7 +436,7 @@ function handleWherePair([fieldName, filter], objectOrInterface, structFieldSele
436
436
  });
437
437
  }
438
438
  const firstKey = keysOfFilter[0];
439
- !(filter[firstKey] != null) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false) : invariant5__default.default(false) : void 0;
439
+ !(filter[firstKey] != null) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false) : invariant8__default.default(false) : void 0;
440
440
  if (firstKey === "$ne") {
441
441
  return {
442
442
  type: "not",
@@ -537,7 +537,7 @@ async function extractObjectOrInterfaceType(clientCtx, objectSet) {
537
537
  }
538
538
  const objOrInterfaceDef2 = def2.type === "object" ? await clientCtx.ontologyProvider.getObjectDefinition(def2.apiName) : await clientCtx.ontologyProvider.getInterfaceDefinition(def2.apiName);
539
539
  const linkDef2 = objOrInterfaceDef2.links[objectSet.link];
540
- !linkDef2 ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Missing link definition for '${objectSet.link}'`) : invariant5__default.default(false) : void 0;
540
+ !linkDef2 ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Missing link definition for '${objectSet.link}'`) : invariant8__default.default(false) : void 0;
541
541
  return objOrInterfaceDef2.type === "object" ? {
542
542
  apiName: objOrInterfaceDef2.links[objectSet.link].targetType,
543
543
  type: "object"
@@ -571,7 +571,7 @@ async function extractObjectOrInterfaceType(clientCtx, objectSet) {
571
571
  const objectSetTypes2 = await Promise.all(objectSets2.map((os) => extractObjectOrInterfaceType(clientCtx, os)));
572
572
  const filteredObjectTypes2 = objectSetTypes2.filter(Boolean);
573
573
  const firstInterfaceType = filteredObjectTypes2.find((val) => val?.type === "interface");
574
- !firstInterfaceType ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Missing interface type in intersect objectset scope'`) : invariant5__default.default(false) : void 0;
574
+ !firstInterfaceType ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Missing interface type in intersect objectset scope'`) : invariant8__default.default(false) : void 0;
575
575
  return firstInterfaceType;
576
576
  }
577
577
  case "subtract":
@@ -582,7 +582,7 @@ async function extractObjectOrInterfaceType(clientCtx, objectSet) {
582
582
  const firstObjectType = filteredObjectTypes[0];
583
583
  !filteredObjectTypes.every((val) => {
584
584
  return val?.apiName === firstObjectType?.apiName && val?.type === firstObjectType?.type;
585
- }) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Can only have one object type when doing subtract, union") : invariant5__default.default(false) : void 0;
585
+ }) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Can only have one object type when doing subtract, union") : invariant8__default.default(false) : void 0;
586
586
  return filteredObjectTypes[0];
587
587
  case "static":
588
588
  case "reference":
@@ -594,7 +594,7 @@ async function extractObjectOrInterfaceType(clientCtx, objectSet) {
594
594
  }
595
595
  const objOrInterfaceDef = def.type === "object" ? await clientCtx.ontologyProvider.getObjectDefinition(def.apiName) : await clientCtx.ontologyProvider.getInterfaceDefinition(def.apiName);
596
596
  const linkDef = objOrInterfaceDef.links[objectSet.interfaceLink];
597
- !linkDef ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Missing link definition for '${objectSet.interfaceLink}'`) : invariant5__default.default(false) : void 0;
597
+ !linkDef ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Missing link definition for '${objectSet.interfaceLink}'`) : invariant8__default.default(false) : void 0;
598
598
  return objOrInterfaceDef.type === "object" ? {
599
599
  apiName: objOrInterfaceDef.links[objectSet.interfaceLink].targetType,
600
600
  type: "object"
@@ -604,7 +604,7 @@ async function extractObjectOrInterfaceType(clientCtx, objectSet) {
604
604
  };
605
605
  // We don't have to worry about new object sets being added and doing a runtime break and breaking people since the OSDK is always constructing these.
606
606
  default:
607
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Unsupported object set type for deriving object or interface type,`) : invariant5__default.default(false) ;
607
+ process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Unsupported object set type for deriving object or interface type,`) : invariant8__default.default(false) ;
608
608
  }
609
609
  }
610
610
  async function extractRdpDefinition(clientCtx, objectSet) {
@@ -624,7 +624,7 @@ async function extractRdpDefinitionInternal(clientCtx, objectSet, methodInputObj
624
624
  }
625
625
  const objDef = await clientCtx.ontologyProvider.getObjectDefinition(childObjectType);
626
626
  const linkDef = objDef.links[objectSet.link];
627
- !linkDef ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Missing link definition for '${objectSet.link}'`) : invariant5__default.default(false) : void 0;
627
+ !linkDef ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Missing link definition for '${objectSet.link}'`) : invariant8__default.default(false) : void 0;
628
628
  return {
629
629
  definitions: definitions2,
630
630
  childObjectType: objDef.links[objectSet.link].targetType
@@ -710,13 +710,13 @@ async function extractRdpDefinitionInternal(clientCtx, objectSet, methodInputObj
710
710
  ...acc,
711
711
  ...definitions2
712
712
  }), {});
713
- !(Object.keys(definitions).length === 0) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Object sets combined using intersect, subtract, or union must not contain any derived property definitions") : invariant5__default.default(false) : void 0;
713
+ !(Object.keys(definitions).length === 0) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Object sets combined using intersect, subtract, or union must not contain any derived property definitions") : invariant8__default.default(false) : void 0;
714
714
  const firstValidChildObjectType = objectSetTypes.find(({
715
715
  childObjectType
716
716
  }) => childObjectType != null)?.childObjectType;
717
717
  !objectSetTypes.every(({
718
718
  childObjectType
719
- }) => childObjectType === firstValidChildObjectType || childObjectType == null) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "All object sets in an intersect, subtract, or union must have the same child object type") : invariant5__default.default(false) : void 0;
719
+ }) => childObjectType === firstValidChildObjectType || childObjectType == null) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "All object sets in an intersect, subtract, or union must have the same child object type") : invariant8__default.default(false) : void 0;
720
720
  return {
721
721
  definitions: {},
722
722
  childObjectType: firstValidChildObjectType
@@ -728,9 +728,9 @@ async function extractRdpDefinitionInternal(clientCtx, objectSet, methodInputObj
728
728
  };
729
729
  // We don't have to worry about new object sets being added and doing a runtime break and breaking people since the OSDK is always constructing these.
730
730
  case "interfaceLinkSearchAround":
731
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Unsupported object set type for Runtime Derived Properties`) : invariant5__default.default(false) ;
731
+ process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Unsupported object set type for Runtime Derived Properties`) : invariant8__default.default(false) ;
732
732
  default:
733
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Unsupported object set type for Runtime Derived Properties`) : invariant5__default.default(false) ;
733
+ process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Unsupported object set type for Runtime Derived Properties`) : invariant8__default.default(false) ;
734
734
  }
735
735
  }
736
736
 
@@ -839,8 +839,7 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet, useSna
839
839
  snapshot: useSnapshot
840
840
  }, client, interfaceType);
841
841
  const result = await OntologyObjectSet_exports.loadMultipleObjectTypes(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, requestBody, {
842
- preview: true,
843
- branch: client.branch
842
+ preview: true
844
843
  });
845
844
  return Promise.resolve({
846
845
  data: await client.objectFactory2(client, result.data, (await extractObjectOrInterfaceType(client, resolvedInterfaceObjectSet))?.apiName ?? interfaceType.apiName, {}, !args.$includeRid, args.$select, false, result.interfaceToObjectTypeMappings),
@@ -928,16 +927,15 @@ async function applyFetchArgs(args, body, _client, objectType) {
928
927
  return body;
929
928
  }
930
929
  async function fetchObjectPage(client, objectType, args, objectSet, useSnapshot = false) {
931
- void client.ontologyProvider.getObjectDefinition(objectType.apiName);
930
+ void client.ontologyProvider.getObjectDefinition(objectType.apiName).catch(() => {
931
+ });
932
932
  const requestBody = await buildAndRemapRequestBody(args, {
933
933
  objectSet,
934
934
  select: args?.$select ? [...args.$select] : [],
935
935
  excludeRid: !args?.$includeRid,
936
936
  snapshot: useSnapshot
937
937
  }, client, objectType);
938
- const r = await OntologyObjectSet_exports.load(addUserAgentAndRequestContextHeaders(client, objectType), await client.ontologyRid, requestBody, {
939
- branch: client.branch
940
- });
938
+ const r = await OntologyObjectSet_exports.load(addUserAgentAndRequestContextHeaders(client, objectType), await client.ontologyRid, requestBody);
941
939
  return Promise.resolve({
942
940
  data: await client.objectFactory(client, r.data, void 0, void 0, await extractRdpDefinition(client, objectSet), args.$select, false),
943
941
  nextPageToken: r.nextPageToken,
@@ -1127,12 +1125,12 @@ function derivedPropertyDefinitionFactory(wireDefinition, definitionMap) {
1127
1125
  var getDefinitionFromMap = (arg, definitionMap) => {
1128
1126
  if (typeof arg === "object") {
1129
1127
  const definition = definitionMap.get(arg);
1130
- !definition ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Derived Property is not defined") : invariant5__default.default(false) : void 0;
1128
+ !definition ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Derived Property is not defined") : invariant8__default.default(false) : void 0;
1131
1129
  return definition;
1132
1130
  } else if (typeof arg === "number") {
1133
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Literals for derived properties are not yet supported") : invariant5__default.default(false) ;
1131
+ process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Literals for derived properties are not yet supported") : invariant8__default.default(false) ;
1134
1132
  }
1135
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Invalid argument type for a derived property") : invariant5__default.default(false) ;
1133
+ process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Invalid argument type for a derived property") : invariant8__default.default(false) ;
1136
1134
  };
1137
1135
 
1138
1136
  // src/derivedProperties/createWithPropertiesObjectSet.ts
@@ -1154,7 +1152,7 @@ function createWithPropertiesObjectSet(objectType, objectSet, definitionMap, fro
1154
1152
  },
1155
1153
  aggregate: (aggregation, opt) => {
1156
1154
  const splitAggregation = aggregation.split(":");
1157
- !(splitAggregation.length === 2 || splitAggregation[0] === "$count") ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Invalid aggregation format") : invariant5__default.default(false) : void 0;
1155
+ !(splitAggregation.length === 2 || splitAggregation[0] === "$count") ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Invalid aggregation format") : invariant8__default.default(false) : void 0;
1158
1156
  const [aggregationPropertyName, aggregationOperation] = splitAggregation;
1159
1157
  let aggregationOperationDefinition;
1160
1158
  switch (aggregationOperation) {
@@ -1192,7 +1190,7 @@ function createWithPropertiesObjectSet(objectType, objectSet, definitionMap, fro
1192
1190
  break;
1193
1191
  }
1194
1192
  default:
1195
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Invalid aggregation operation " + aggregationOperation) : invariant5__default.default(false) ;
1193
+ process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Invalid aggregation operation " + aggregationOperation) : invariant8__default.default(false) ;
1196
1194
  }
1197
1195
  const wrappedObjectSet = {
1198
1196
  type: "selection",
@@ -1224,23 +1222,6 @@ function createWithPropertiesObjectSet(objectType, objectSet, definitionMap, fro
1224
1222
  const selectorResult = derivedPropertyDefinitionFactory(wrappedObjectSet, definitionMap);
1225
1223
  definitionMap.set(selectorResult, wrappedObjectSet);
1226
1224
  return selectorResult;
1227
- },
1228
- constant: {
1229
- double: (value) => {
1230
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Not supported") : invariant5__default.default(false) ;
1231
- },
1232
- integer: (value) => {
1233
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Not supported") : invariant5__default.default(false) ;
1234
- },
1235
- long: (value) => {
1236
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Not supported") : invariant5__default.default(false) ;
1237
- },
1238
- datetime: (value) => {
1239
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Not supported") : invariant5__default.default(false) ;
1240
- },
1241
- timestamp: (value) => {
1242
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Not supported") : invariant5__default.default(false) ;
1243
- }
1244
1225
  }
1245
1226
  };
1246
1227
  }
@@ -1250,7 +1231,7 @@ function legacyToModernSingleAggregationResult(entry) {
1250
1231
  if (parts[0] === "count") {
1251
1232
  return accumulator;
1252
1233
  }
1253
- !(parts.length === 2) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "assumed we were getting a `${key}.${type}`") : invariant5__default.default(false) : void 0;
1234
+ !(parts.length === 2) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "assumed we were getting a `${key}.${type}`") : invariant8__default.default(false) : void 0;
1254
1235
  const property = parts[0];
1255
1236
  const metricType = parts[1];
1256
1237
  if (!(property in accumulator)) {
@@ -1349,11 +1330,9 @@ async function aggregate3(clientCtx, objectType, objectSet = resolveBaseObjectSe
1349
1330
  objectSet,
1350
1331
  groupBy: body.groupBy,
1351
1332
  aggregation: body.aggregation
1352
- }, {
1353
- branch: clientCtx.branch
1354
1333
  });
1355
1334
  if (!req.$groupBy) {
1356
- !(result.data.length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "no group by clause should mean only one data result") : invariant5__default.default(false) : void 0;
1335
+ !(result.data.length === 1) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "no group by clause should mean only one data result") : invariant8__default.default(false) : void 0;
1357
1336
  return {
1358
1337
  ...aggregationToCountResult(result.data[0]),
1359
1338
  ...legacyToModernSingleAggregationResult(result.data[0])
@@ -1392,7 +1371,50 @@ var WIRE_OBJECT_SET_TYPES = /* @__PURE__ */ new Set(["base", "filter", "intersec
1392
1371
  function isWireObjectSet(o) {
1393
1372
  return o != null && typeof o === "object" && WIRE_OBJECT_SET_TYPES.has(o.type);
1394
1373
  }
1374
+
1375
+ // src/util/exponentialBackoff.ts
1376
+ var DEFAULT_OPTIONS = {
1377
+ initialDelayMs: 1e3,
1378
+ maxDelayMs: 6e4,
1379
+ multiplier: 2,
1380
+ jitterFactor: 0.3
1381
+ };
1382
+ var ExponentialBackoff = class {
1383
+ attempt = 0;
1384
+ constructor(options = {}) {
1385
+ this.options = {
1386
+ ...DEFAULT_OPTIONS,
1387
+ ...options
1388
+ };
1389
+ }
1390
+ calculateDelay() {
1391
+ const {
1392
+ initialDelayMs,
1393
+ maxDelayMs,
1394
+ multiplier,
1395
+ jitterFactor
1396
+ } = this.options;
1397
+ const baseDelay = Math.min(initialDelayMs * Math.pow(multiplier, this.attempt), maxDelayMs);
1398
+ const jitter = baseDelay * jitterFactor * (Math.random() * 2 - 1);
1399
+ const delayWithJitter = Math.max(0, baseDelay + jitter);
1400
+ this.attempt++;
1401
+ return Math.round(delayWithJitter);
1402
+ }
1403
+ reset() {
1404
+ this.attempt = 0;
1405
+ }
1406
+ getAttempt() {
1407
+ return this.attempt;
1408
+ }
1409
+ };
1410
+
1411
+ // src/objectSet/ObjectSetListenerWebsocket.ts
1395
1412
  var MINIMUM_RECONNECT_DELAY_MS = 5 * 1e3;
1413
+ var EXPONENTIAL_BACKOFF_INITIAL_DELAY_MS = 1e3;
1414
+ var EXPONENTIAL_BACKOFF_MAX_DELAY_MS = 6e4;
1415
+ var EXPONENTIAL_BACKOFF_MULTIPLIER = 2;
1416
+ var EXPONENTIAL_BACKOFF_JITTER_FACTOR = 0.3;
1417
+ var WEBSOCKET_IDLE_DISCONNECT_DELAY_MS = 15e3;
1396
1418
  function doNothing() {
1397
1419
  }
1398
1420
  function fillOutListener({
@@ -1428,6 +1450,8 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
1428
1450
  #ws;
1429
1451
  #lastWsConnect = 0;
1430
1452
  #client;
1453
+ #backoff;
1454
+ #isFirstConnection = true;
1431
1455
  #logger;
1432
1456
  /**
1433
1457
  * map of requestId to all active subscriptions at the time of the request
@@ -1446,10 +1470,16 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
1446
1470
  } = {}) {
1447
1471
  this.MINIMUM_RECONNECT_DELAY_MS = minimumReconnectDelayMs;
1448
1472
  this.#client = client;
1473
+ this.#backoff = new ExponentialBackoff({
1474
+ initialDelayMs: EXPONENTIAL_BACKOFF_INITIAL_DELAY_MS,
1475
+ maxDelayMs: EXPONENTIAL_BACKOFF_MAX_DELAY_MS,
1476
+ multiplier: EXPONENTIAL_BACKOFF_MULTIPLIER,
1477
+ jitterFactor: EXPONENTIAL_BACKOFF_JITTER_FACTOR
1478
+ });
1449
1479
  this.#logger = client.logger?.child({}, {
1450
1480
  msgPrefix: "<OSW> "
1451
1481
  });
1452
- !(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Stack must be a URL") : invariant5__default.default(false) : void 0;
1482
+ !(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Stack must be a URL") : invariant8__default.default(false) : void 0;
1453
1483
  }
1454
1484
  async subscribe(objectType, objectSet, listener, properties = []) {
1455
1485
  const objOrInterfaceDef = objectType.type === "object" ? await this.#client.ontologyProvider.getObjectDefinition(objectType.apiName) : await this.#client.ontologyProvider.getInterfaceDefinition(objectType.apiName);
@@ -1546,16 +1576,12 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
1546
1576
  if (this.#maybeDisconnectTimeout) {
1547
1577
  clearTimeout(this.#maybeDisconnectTimeout);
1548
1578
  }
1549
- this.#maybeDisconnectTimeout = setTimeout(
1550
- () => {
1551
- this.#maybeDisconnectTimeout = void 0;
1552
- if (this.#subscriptions.size === 0) {
1553
- this.#cycleWebsocket();
1554
- }
1555
- },
1556
- 15e3
1557
- /* ms */
1558
- );
1579
+ this.#maybeDisconnectTimeout = setTimeout(() => {
1580
+ this.#maybeDisconnectTimeout = void 0;
1581
+ if (this.#subscriptions.size === 0) {
1582
+ this.#cycleWebsocket();
1583
+ }
1584
+ }, WEBSOCKET_IDLE_DISCONNECT_DELAY_MS);
1559
1585
  }
1560
1586
  async #ensureWebsocket() {
1561
1587
  if (this.#ws == null) {
@@ -1566,10 +1592,16 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
1566
1592
  const url = constructWebsocketUrl(baseUrl, await this.#client.ontologyRid);
1567
1593
  const token = await tokenProvider();
1568
1594
  if (this.#ws == null) {
1569
- const nextConnectTime = (this.#lastWsConnect ?? 0) + this.MINIMUM_RECONNECT_DELAY_MS;
1570
- if (nextConnectTime > Date.now()) {
1595
+ if (!this.#isFirstConnection) {
1596
+ const delay = this.#backoff.calculateDelay();
1597
+ if (process.env.NODE_ENV !== "production") {
1598
+ this.#logger?.debug({
1599
+ delay,
1600
+ attempt: this.#backoff.getAttempt()
1601
+ }, "Waiting before reconnect");
1602
+ }
1571
1603
  await new Promise((resolve) => {
1572
- setTimeout(resolve, nextConnectTime - Date.now());
1604
+ setTimeout(resolve, delay);
1573
1605
  });
1574
1606
  }
1575
1607
  this.#lastWsConnect = Date.now();
@@ -1597,7 +1629,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
1597
1629
  }
1598
1630
  function error(evt) {
1599
1631
  cleanup();
1600
- reject(evt);
1632
+ reject(new Error(String(evt)));
1601
1633
  }
1602
1634
  ws.addEventListener("open", open);
1603
1635
  ws.addEventListener("error", error);
@@ -1607,10 +1639,12 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
1607
1639
  }
1608
1640
  }
1609
1641
  #onOpen = () => {
1642
+ this.#isFirstConnection = false;
1643
+ this.#backoff.reset();
1610
1644
  this.#sendSubscribeMessage();
1611
1645
  };
1612
1646
  #onMessage = async (message) => {
1613
- const data = JSON.parse(message.data.toString());
1647
+ const data = JSON.parse(String(message.data));
1614
1648
  if (process.env.NODE_ENV !== "production") {
1615
1649
  this.#logger?.debug({
1616
1650
  payload: data
@@ -1631,7 +1665,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
1631
1665
  return;
1632
1666
  }
1633
1667
  default:
1634
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Unexpected message type") : invariant5__default.default(false) ;
1668
+ process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Unexpected message type") : invariant8__default.default(false) ;
1635
1669
  }
1636
1670
  };
1637
1671
  #handleMessage_objectSetChanged = async (payload) => {
@@ -1696,7 +1730,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
1696
1730
  }
1697
1731
  #handleMessage_refreshObjectSet = (payload) => {
1698
1732
  const sub = this.#subscriptions.get(payload.id);
1699
- !sub ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Expected subscription id ${payload.id}`) : invariant5__default.default(false) : void 0;
1733
+ !sub ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Expected subscription id ${payload.id}`) : invariant8__default.default(false) : void 0;
1700
1734
  try {
1701
1735
  sub.listener.onOutOfDate();
1702
1736
  } catch (error) {
@@ -1710,7 +1744,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
1710
1744
  responses
1711
1745
  } = payload;
1712
1746
  const subs = this.#pendingSubscriptions.get(id);
1713
- !subs ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `should have a pending subscription for ${id}`) : invariant5__default.default(false) : void 0;
1747
+ !subs ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `should have a pending subscription for ${id}`) : invariant8__default.default(false) : void 0;
1714
1748
  this.#pendingSubscriptions.delete(id);
1715
1749
  for (let i = 0; i < responses.length; i++) {
1716
1750
  const sub = subs[i];
@@ -1752,7 +1786,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
1752
1786
  #handleMessage_subscriptionClosed(payload) {
1753
1787
  const sub = this.#subscriptions.get(payload.id);
1754
1788
  if (sub == null && this.#endedSubscriptions.has(payload.id)) return;
1755
- !sub ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Expected subscription id ${payload.id}`) : invariant5__default.default(false) : void 0;
1789
+ !sub ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Expected subscription id ${payload.id}`) : invariant8__default.default(false) : void 0;
1756
1790
  this.#tryCatchOnError(sub, true, payload.cause);
1757
1791
  this.#unsubscribe(sub, "error");
1758
1792
  }
@@ -1777,7 +1811,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
1777
1811
  if (this.#subscriptions.size > 0) {
1778
1812
  if (process.env.NODE_ENV !== "production") {
1779
1813
  for (const s of this.#subscriptions.values()) {
1780
- !(s.status !== "done" && s.status !== "error") ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "should not have done/error subscriptions still") : invariant5__default.default(false) : void 0;
1814
+ !(s.status !== "done" && s.status !== "error") ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "should not have done/error subscriptions still") : invariant8__default.default(false) : void 0;
1781
1815
  }
1782
1816
  }
1783
1817
  for (const s of this.#subscriptions.values()) {
@@ -1997,5 +2031,5 @@ exports.hydrateAttachmentFromRidInternal = hydrateAttachmentFromRidInternal;
1997
2031
  exports.isObjectSet = isObjectSet;
1998
2032
  exports.isWireObjectSet = isWireObjectSet;
1999
2033
  exports.symbolClientContext = symbolClientContext;
2000
- //# sourceMappingURL=chunk-MKL3HEQ5.cjs.map
2001
- //# sourceMappingURL=chunk-MKL3HEQ5.cjs.map
2034
+ //# sourceMappingURL=chunk-KODTFRP3.cjs.map
2035
+ //# sourceMappingURL=chunk-KODTFRP3.cjs.map