@osdk/client 2.5.0-beta.8 → 2.5.0-rc.15

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 (218) hide show
  1. package/CHANGELOG.md +83 -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 +75 -31
  21. package/build/browser/object/fetchPage.js.map +1 -1
  22. package/build/browser/object/fetchPage.test.js +35 -1
  23. package/build/browser/object/fetchPage.test.js.map +1 -1
  24. package/build/browser/object/mediaUpload.js +0 -3
  25. package/build/browser/object/mediaUpload.js.map +1 -1
  26. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +31 -9
  27. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  28. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +69 -4
  29. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  30. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  31. package/build/browser/observable/ObjectSetPayload.js +2 -0
  32. package/build/browser/observable/ObjectSetPayload.js.map +1 -0
  33. package/build/browser/observable/ObservableClient.js.map +1 -1
  34. package/build/browser/observable/computeObjectSetCacheKey.js +64 -0
  35. package/build/browser/observable/computeObjectSetCacheKey.js.map +1 -0
  36. package/build/browser/observable/internal/Changes.js +3 -0
  37. package/build/browser/observable/internal/Changes.js.map +1 -1
  38. package/build/browser/observable/internal/KnownCacheKey.js.map +1 -1
  39. package/build/browser/observable/internal/ObservableClientImpl.js +17 -0
  40. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  41. package/build/browser/observable/internal/Query.js +18 -1
  42. package/build/browser/observable/internal/Query.js.map +1 -1
  43. package/build/browser/observable/internal/Store.invalidation.test.js +165 -0
  44. package/build/browser/observable/internal/Store.invalidation.test.js.map +1 -1
  45. package/build/browser/observable/internal/Store.js +23 -0
  46. package/build/browser/observable/internal/Store.js.map +1 -1
  47. package/build/browser/observable/internal/list/InterfaceListQuery.js +83 -0
  48. package/build/browser/observable/internal/list/InterfaceListQuery.js.map +1 -0
  49. package/build/browser/observable/internal/list/ListQuery.js +33 -108
  50. package/build/browser/observable/internal/list/ListQuery.js.map +1 -1
  51. package/build/browser/observable/internal/list/ListsHelper.js +4 -2
  52. package/build/browser/observable/internal/list/ListsHelper.js.map +1 -1
  53. package/build/browser/observable/internal/list/ObjectListQuery.js +48 -0
  54. package/build/browser/observable/internal/list/ObjectListQuery.js.map +1 -0
  55. package/build/browser/observable/internal/objectset/ObjectSetCacheKey.js +2 -0
  56. package/build/browser/observable/internal/objectset/ObjectSetCacheKey.js.map +1 -0
  57. package/build/browser/observable/internal/objectset/ObjectSetHelper.js +69 -0
  58. package/build/browser/observable/internal/objectset/ObjectSetHelper.js.map +1 -0
  59. package/build/browser/observable/internal/objectset/ObjectSetQuery.js +151 -0
  60. package/build/browser/observable/internal/objectset/ObjectSetQuery.js.map +1 -0
  61. package/build/browser/observable/internal/objectset/ObjectSetQueryOptions.js +2 -0
  62. package/build/browser/observable/internal/objectset/ObjectSetQueryOptions.js.map +1 -0
  63. package/build/browser/ontology/loadActionMetadata.js +1 -3
  64. package/build/browser/ontology/loadActionMetadata.js.map +1 -1
  65. package/build/browser/ontology/loadFullObjectMetadata.js +1 -2
  66. package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
  67. package/build/browser/ontology/loadInterfaceMetadata.js +1 -2
  68. package/build/browser/ontology/loadInterfaceMetadata.js.map +1 -1
  69. package/build/browser/public/unstable-do-not-use.js +1 -0
  70. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  71. package/build/browser/util/UserAgent.js +2 -2
  72. package/build/browser/util/UserAgent.js.map +1 -1
  73. package/build/browser/util/exponentialBackoff.js +51 -0
  74. package/build/browser/util/exponentialBackoff.js.map +1 -0
  75. package/build/browser/util/exponentialBackoff.test.js +81 -0
  76. package/build/browser/util/exponentialBackoff.test.js.map +1 -0
  77. package/build/browser/util/toDataValue.js +1 -15
  78. package/build/browser/util/toDataValue.js.map +1 -1
  79. package/build/browser/util/toDataValue.test.js +2 -42
  80. package/build/browser/util/toDataValue.test.js.map +1 -1
  81. package/build/cjs/{chunk-XCZOFC4A.cjs → chunk-56O6U7K6.cjs} +68 -91
  82. package/build/cjs/chunk-56O6U7K6.cjs.map +1 -0
  83. package/build/cjs/{chunk-5KDG5ZET.cjs → chunk-KODTFRP3.cjs} +348 -273
  84. package/build/cjs/chunk-KODTFRP3.cjs.map +1 -0
  85. package/build/cjs/{createClient-mOlFts15.d.cts → createClient-BJo8T7Js.d.cts} +0 -1
  86. package/build/cjs/index.cjs +7 -11
  87. package/build/cjs/index.d.cts +2 -2
  88. package/build/cjs/public/internal.cjs +8 -8
  89. package/build/cjs/public/unstable-do-not-use.cjs +536 -240
  90. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  91. package/build/cjs/public/unstable-do-not-use.d.cts +79 -7
  92. package/build/esm/MinimalClientContext.js.map +1 -1
  93. package/build/esm/actions/applyAction.js +0 -4
  94. package/build/esm/actions/applyAction.js.map +1 -1
  95. package/build/esm/createClient.js +1 -2
  96. package/build/esm/createClient.js.map +1 -1
  97. package/build/esm/createMinimalClient.js +1 -2
  98. package/build/esm/createMinimalClient.js.map +1 -1
  99. package/build/esm/definitions/LinkDefinitions.test.js.map +1 -1
  100. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +0 -17
  101. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  102. package/build/esm/fetchMetadata.test.js +4 -0
  103. package/build/esm/fetchMetadata.test.js.map +1 -1
  104. package/build/esm/index.js +1 -1
  105. package/build/esm/index.js.map +1 -1
  106. package/build/esm/object/aggregate.js +0 -2
  107. package/build/esm/object/aggregate.js.map +1 -1
  108. package/build/esm/object/convertWireToOsdkObjects.test.js +5 -1
  109. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  110. package/build/esm/object/fetchPage.js +75 -31
  111. package/build/esm/object/fetchPage.js.map +1 -1
  112. package/build/esm/object/fetchPage.test.js +35 -1
  113. package/build/esm/object/fetchPage.test.js.map +1 -1
  114. package/build/esm/object/mediaUpload.js +0 -3
  115. package/build/esm/object/mediaUpload.js.map +1 -1
  116. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +31 -9
  117. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  118. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +69 -4
  119. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  120. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  121. package/build/esm/observable/ObjectSetPayload.js +2 -0
  122. package/build/esm/observable/ObjectSetPayload.js.map +1 -0
  123. package/build/esm/observable/ObservableClient.js.map +1 -1
  124. package/build/esm/observable/computeObjectSetCacheKey.js +64 -0
  125. package/build/esm/observable/computeObjectSetCacheKey.js.map +1 -0
  126. package/build/esm/observable/internal/Changes.js +3 -0
  127. package/build/esm/observable/internal/Changes.js.map +1 -1
  128. package/build/esm/observable/internal/KnownCacheKey.js.map +1 -1
  129. package/build/esm/observable/internal/ObservableClientImpl.js +17 -0
  130. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  131. package/build/esm/observable/internal/Query.js +18 -1
  132. package/build/esm/observable/internal/Query.js.map +1 -1
  133. package/build/esm/observable/internal/Store.invalidation.test.js +165 -0
  134. package/build/esm/observable/internal/Store.invalidation.test.js.map +1 -1
  135. package/build/esm/observable/internal/Store.js +23 -0
  136. package/build/esm/observable/internal/Store.js.map +1 -1
  137. package/build/esm/observable/internal/list/InterfaceListQuery.js +83 -0
  138. package/build/esm/observable/internal/list/InterfaceListQuery.js.map +1 -0
  139. package/build/esm/observable/internal/list/ListQuery.js +33 -108
  140. package/build/esm/observable/internal/list/ListQuery.js.map +1 -1
  141. package/build/esm/observable/internal/list/ListsHelper.js +4 -2
  142. package/build/esm/observable/internal/list/ListsHelper.js.map +1 -1
  143. package/build/esm/observable/internal/list/ObjectListQuery.js +48 -0
  144. package/build/esm/observable/internal/list/ObjectListQuery.js.map +1 -0
  145. package/build/esm/observable/internal/objectset/ObjectSetCacheKey.js +2 -0
  146. package/build/esm/observable/internal/objectset/ObjectSetCacheKey.js.map +1 -0
  147. package/build/esm/observable/internal/objectset/ObjectSetHelper.js +69 -0
  148. package/build/esm/observable/internal/objectset/ObjectSetHelper.js.map +1 -0
  149. package/build/esm/observable/internal/objectset/ObjectSetQuery.js +151 -0
  150. package/build/esm/observable/internal/objectset/ObjectSetQuery.js.map +1 -0
  151. package/build/esm/observable/internal/objectset/ObjectSetQueryOptions.js +2 -0
  152. package/build/esm/observable/internal/objectset/ObjectSetQueryOptions.js.map +1 -0
  153. package/build/esm/ontology/loadActionMetadata.js +1 -3
  154. package/build/esm/ontology/loadActionMetadata.js.map +1 -1
  155. package/build/esm/ontology/loadFullObjectMetadata.js +1 -2
  156. package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
  157. package/build/esm/ontology/loadInterfaceMetadata.js +1 -2
  158. package/build/esm/ontology/loadInterfaceMetadata.js.map +1 -1
  159. package/build/esm/public/unstable-do-not-use.js +1 -0
  160. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  161. package/build/esm/util/UserAgent.js +2 -2
  162. package/build/esm/util/UserAgent.js.map +1 -1
  163. package/build/esm/util/exponentialBackoff.js +51 -0
  164. package/build/esm/util/exponentialBackoff.js.map +1 -0
  165. package/build/esm/util/exponentialBackoff.test.js +81 -0
  166. package/build/esm/util/exponentialBackoff.test.js.map +1 -0
  167. package/build/esm/util/toDataValue.js +1 -15
  168. package/build/esm/util/toDataValue.js.map +1 -1
  169. package/build/esm/util/toDataValue.test.js +2 -42
  170. package/build/esm/util/toDataValue.test.js.map +1 -1
  171. package/build/types/MinimalClientContext.d.ts +0 -1
  172. package/build/types/MinimalClientContext.d.ts.map +1 -1
  173. package/build/types/actions/applyAction.d.ts.map +1 -1
  174. package/build/types/createClient.d.ts +0 -1
  175. package/build/types/createClient.d.ts.map +1 -1
  176. package/build/types/index.d.ts +1 -1
  177. package/build/types/index.d.ts.map +1 -1
  178. package/build/types/object/fetchPage.d.ts.map +1 -1
  179. package/build/types/object/mediaUpload.d.ts +1 -2
  180. package/build/types/object/mediaUpload.d.ts.map +1 -1
  181. package/build/types/observable/ObjectSetPayload.d.ts +5 -0
  182. package/build/types/observable/ObjectSetPayload.d.ts.map +1 -0
  183. package/build/types/observable/ObservableClient.d.ts +54 -1
  184. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  185. package/build/types/observable/computeObjectSetCacheKey.d.ts +16 -0
  186. package/build/types/observable/computeObjectSetCacheKey.d.ts.map +1 -0
  187. package/build/types/observable/internal/Changes.d.ts +5 -3
  188. package/build/types/observable/internal/Changes.d.ts.map +1 -1
  189. package/build/types/observable/internal/KnownCacheKey.d.ts +2 -1
  190. package/build/types/observable/internal/KnownCacheKey.d.ts.map +1 -1
  191. package/build/types/observable/internal/Query.d.ts.map +1 -1
  192. package/build/types/observable/internal/Store.d.ts +5 -1
  193. package/build/types/observable/internal/Store.d.ts.map +1 -1
  194. package/build/types/observable/internal/list/InterfaceListQuery.d.ts +18 -0
  195. package/build/types/observable/internal/list/InterfaceListQuery.d.ts.map +1 -0
  196. package/build/types/observable/internal/list/ListQuery.d.ts +37 -6
  197. package/build/types/observable/internal/list/ListQuery.d.ts.map +1 -1
  198. package/build/types/observable/internal/list/ListsHelper.d.ts +1 -1
  199. package/build/types/observable/internal/list/ListsHelper.d.ts.map +1 -1
  200. package/build/types/observable/internal/list/ObjectListQuery.d.ts +18 -0
  201. package/build/types/observable/internal/list/ObjectListQuery.d.ts.map +1 -0
  202. package/build/types/observable/internal/objectset/ObjectSetCacheKey.d.ts +16 -0
  203. package/build/types/observable/internal/objectset/ObjectSetCacheKey.d.ts.map +1 -0
  204. package/build/types/observable/internal/objectset/ObjectSetHelper.d.ts +19 -0
  205. package/build/types/observable/internal/objectset/ObjectSetHelper.d.ts.map +1 -0
  206. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts +34 -0
  207. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts.map +1 -0
  208. package/build/types/observable/internal/objectset/ObjectSetQueryOptions.d.ts +18 -0
  209. package/build/types/observable/internal/objectset/ObjectSetQueryOptions.d.ts.map +1 -0
  210. package/build/types/public/unstable-do-not-use.d.ts +2 -1
  211. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  212. package/build/types/util/exponentialBackoff.d.ts +14 -0
  213. package/build/types/util/exponentialBackoff.d.ts.map +1 -0
  214. package/build/types/util/exponentialBackoff.test.d.ts +1 -0
  215. package/build/types/util/exponentialBackoff.test.d.ts.map +1 -0
  216. package/package.json +8 -8
  217. package/build/cjs/chunk-5KDG5ZET.cjs.map +0 -1
  218. package/build/cjs/chunk-XCZOFC4A.cjs.map +0 -1
@@ -0,0 +1,81 @@
1
+ /*
2
+ * Copyright 2024 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { describe, expect, it } from "vitest";
18
+ import { ExponentialBackoff } from "./exponentialBackoff.js";
19
+ describe("ExponentialBackoff", () => {
20
+ it("should exponentially increase delay", () => {
21
+ const backoff = new ExponentialBackoff({
22
+ initialDelayMs: 1000,
23
+ multiplier: 2,
24
+ jitterFactor: 0
25
+ });
26
+ expect(backoff.calculateDelay()).toBe(1000); // 1000 * 2^0
27
+ expect(backoff.calculateDelay()).toBe(2000); // 1000 * 2^1
28
+ expect(backoff.calculateDelay()).toBe(4000); // 1000 * 2^2
29
+ expect(backoff.calculateDelay()).toBe(8000); // 1000 * 2^3
30
+ });
31
+ it("should respect max delay", () => {
32
+ const backoff = new ExponentialBackoff({
33
+ initialDelayMs: 1000,
34
+ maxDelayMs: 5000,
35
+ multiplier: 2,
36
+ jitterFactor: 0
37
+ });
38
+ expect(backoff.calculateDelay()).toBe(1000);
39
+ expect(backoff.calculateDelay()).toBe(2000);
40
+ expect(backoff.calculateDelay()).toBe(4000);
41
+ expect(backoff.calculateDelay()).toBe(5000); // capped at max
42
+ expect(backoff.calculateDelay()).toBe(5000); // still capped
43
+ });
44
+ it("should add jitter", () => {
45
+ new ExponentialBackoff({
46
+ initialDelayMs: 1000,
47
+ jitterFactor: 0.5
48
+ });
49
+ const delays = new Set();
50
+ for (let i = 0; i < 10; i++) {
51
+ const b = new ExponentialBackoff({
52
+ initialDelayMs: 1000,
53
+ jitterFactor: 0.5
54
+ });
55
+ delays.add(b.calculateDelay());
56
+ }
57
+
58
+ // With jitter, we should get different values
59
+ expect(delays.size).toBeGreaterThan(1);
60
+
61
+ // All values should be within jitter range
62
+ for (const delay of delays) {
63
+ expect(delay).toBeGreaterThanOrEqual(500); // 1000 - (1000 * 0.5)
64
+ expect(delay).toBeLessThanOrEqual(1500); // 1000 + (1000 * 0.5)
65
+ }
66
+ });
67
+ it("should reset attempt counter", () => {
68
+ const backoff = new ExponentialBackoff({
69
+ initialDelayMs: 1000,
70
+ multiplier: 2,
71
+ jitterFactor: 0
72
+ });
73
+ expect(backoff.calculateDelay()).toBe(1000);
74
+ expect(backoff.calculateDelay()).toBe(2000);
75
+ expect(backoff.getAttempt()).toBe(2);
76
+ backoff.reset();
77
+ expect(backoff.getAttempt()).toBe(0);
78
+ expect(backoff.calculateDelay()).toBe(1000); // back to initial
79
+ });
80
+ });
81
+ //# sourceMappingURL=exponentialBackoff.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exponentialBackoff.test.js","names":["describe","expect","it","ExponentialBackoff","backoff","initialDelayMs","multiplier","jitterFactor","calculateDelay","toBe","maxDelayMs","delays","Set","i","b","add","size","toBeGreaterThan","delay","toBeGreaterThanOrEqual","toBeLessThanOrEqual","getAttempt","reset"],"sources":["exponentialBackoff.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { describe, expect, it } from \"vitest\";\nimport { ExponentialBackoff } from \"./exponentialBackoff.js\";\n\ndescribe(\"ExponentialBackoff\", () => {\n it(\"should exponentially increase delay\", () => {\n const backoff = new ExponentialBackoff({\n initialDelayMs: 1000,\n multiplier: 2,\n jitterFactor: 0,\n });\n\n expect(backoff.calculateDelay()).toBe(1000); // 1000 * 2^0\n expect(backoff.calculateDelay()).toBe(2000); // 1000 * 2^1\n expect(backoff.calculateDelay()).toBe(4000); // 1000 * 2^2\n expect(backoff.calculateDelay()).toBe(8000); // 1000 * 2^3\n });\n\n it(\"should respect max delay\", () => {\n const backoff = new ExponentialBackoff({\n initialDelayMs: 1000,\n maxDelayMs: 5000,\n multiplier: 2,\n jitterFactor: 0,\n });\n\n expect(backoff.calculateDelay()).toBe(1000);\n expect(backoff.calculateDelay()).toBe(2000);\n expect(backoff.calculateDelay()).toBe(4000);\n expect(backoff.calculateDelay()).toBe(5000); // capped at max\n expect(backoff.calculateDelay()).toBe(5000); // still capped\n });\n\n it(\"should add jitter\", () => {\n const backoff = new ExponentialBackoff({\n initialDelayMs: 1000,\n jitterFactor: 0.5,\n });\n\n const delays = new Set<number>();\n for (let i = 0; i < 10; i++) {\n const b = new ExponentialBackoff({\n initialDelayMs: 1000,\n jitterFactor: 0.5,\n });\n delays.add(b.calculateDelay());\n }\n\n // With jitter, we should get different values\n expect(delays.size).toBeGreaterThan(1);\n\n // All values should be within jitter range\n for (const delay of delays) {\n expect(delay).toBeGreaterThanOrEqual(500); // 1000 - (1000 * 0.5)\n expect(delay).toBeLessThanOrEqual(1500); // 1000 + (1000 * 0.5)\n }\n });\n\n it(\"should reset attempt counter\", () => {\n const backoff = new ExponentialBackoff({\n initialDelayMs: 1000,\n multiplier: 2,\n jitterFactor: 0,\n });\n\n expect(backoff.calculateDelay()).toBe(1000);\n expect(backoff.calculateDelay()).toBe(2000);\n expect(backoff.getAttempt()).toBe(2);\n\n backoff.reset();\n expect(backoff.getAttempt()).toBe(0);\n expect(backoff.calculateDelay()).toBe(1000); // back to initial\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -14,10 +14,9 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { NULL_VALUE } from "@osdk/api";
18
17
  import * as OntologiesV2 from "@osdk/foundry.ontologies";
19
18
  import { isAttachmentFile, isAttachmentUpload } from "../object/AttachmentUpload.js";
20
- import { isMediaReference, isMediaUpload } from "../object/mediaUpload.js";
19
+ import { isMediaReference } from "../object/mediaUpload.js";
21
20
  import { getWireObjectSet, isObjectSet } from "../objectSet/createObjectSet.js";
22
21
  import { isInterfaceActionParam } from "./interfaceUtils.js";
23
22
  import { isObjectSpecifiersObject } from "./isObjectSpecifiersObject.js";
@@ -38,9 +37,6 @@ export async function toDataValue(value, client, actionMetadata) {
38
37
  // Null values are not allowed with OSDK types, but leaving here as an override.
39
38
  return value;
40
39
  }
41
- if (value === NULL_VALUE) {
42
- return null;
43
- }
44
40
 
45
41
  // arrays and sets are both sent over the wire as arrays
46
42
  if (Array.isArray(value) || value instanceof Set) {
@@ -70,16 +66,6 @@ export async function toDataValue(value, client, actionMetadata) {
70
66
  return await toDataValue(attachment.rid, client, actionMetadata);
71
67
  }
72
68
 
73
- // new media item upload interface, very similar to how attachments work above
74
-
75
- if (isMediaUpload(value)) {
76
- const mediaRef = await OntologiesV2.MediaReferenceProperties.uploadMedia(client, await client.ontologyRid, actionMetadata.apiName, value.data, {
77
- mediaItemPath: value.path,
78
- preview: true
79
- });
80
- return await toDataValue(mediaRef, client, actionMetadata);
81
- }
82
-
83
69
  // objects just send the JSON'd primaryKey
84
70
  if (isOntologyObjectV2(value)) {
85
71
  return await toDataValue(value.__primaryKey, client, actionMetadata);
@@ -1 +1 @@
1
- {"version":3,"file":"toDataValue.js","names":["NULL_VALUE","OntologiesV2","isAttachmentFile","isAttachmentUpload","isMediaReference","isMediaUpload","getWireObjectSet","isObjectSet","isInterfaceActionParam","isObjectSpecifiersObject","isOntologyObjectV2","isPoint","isWireObjectSet","toDataValue","value","client","actionMetadata","Array","isArray","Set","values","from","some","dataValue","converted","push","promiseArray","innerValue","Promise","all","attachment","Attachments","upload","data","filename","name","rid","mediaRef","MediaReferenceProperties","uploadMedia","ontologyRid","apiName","mediaItemPath","path","preview","__primaryKey","$primaryKey","coordinates","objectTypeApiName","$objectType","primaryKeyValue","Object","entries","reduce","promisedAcc","key","structValue","acc","resolve"],"sources":["toDataValue.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NULL_VALUE } from \"@osdk/api\";\nimport type { ActionMetadata } from \"@osdk/api\";\nimport { type DataValue } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n isAttachmentFile,\n isAttachmentUpload,\n} from \"../object/AttachmentUpload.js\";\nimport { isMediaReference, isMediaUpload } from \"../object/mediaUpload.js\";\nimport { getWireObjectSet, isObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { isInterfaceActionParam } from \"./interfaceUtils.js\";\nimport { isObjectSpecifiersObject } from \"./isObjectSpecifiersObject.js\";\nimport { isOntologyObjectV2 } from \"./isOntologyObjectV2.js\";\nimport { isPoint } from \"./isPoint.js\";\nimport { isWireObjectSet } from \"./WireObjectSet.js\";\n\n/**\n * Marshall user-facing data into the wire DataValue type\n *\n * @see DataValue for the expected payloads\n * @internal\n */\nexport async function toDataValue(\n value: unknown,\n client: MinimalClient,\n actionMetadata: ActionMetadata,\n): Promise<DataValue> {\n if (value == null) {\n // typeof null is 'object' so do this first\n // Sending null over the wire clears the data, whereas undefined is dropped at request time.\n // Null values are not allowed with OSDK types, but leaving here as an override.\n return value;\n }\n\n if (value === NULL_VALUE) {\n return null;\n }\n\n // arrays and sets are both sent over the wire as arrays\n if (Array.isArray(value) || value instanceof Set) {\n const values = Array.from(value);\n if (\n values.some((dataValue) =>\n isAttachmentUpload(dataValue) || isAttachmentFile(dataValue)\n )\n ) {\n const converted = [];\n for (const value of values) {\n converted.push(await toDataValue(value, client, actionMetadata));\n }\n return converted;\n }\n const promiseArray = Array.from(\n value,\n async (innerValue) =>\n await toDataValue(innerValue, client, actionMetadata),\n );\n return Promise.all(promiseArray);\n }\n\n // For uploads, we need to upload ourselves first to get the RID of the attachment\n if (isAttachmentUpload(value)) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value.data,\n {\n filename: value.name,\n },\n );\n return await toDataValue(attachment.rid, client, actionMetadata);\n }\n\n if (isAttachmentFile(value)) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value,\n {\n filename: value.name as string,\n },\n );\n return await toDataValue(attachment.rid, client, actionMetadata);\n }\n\n // new media item upload interface, very similar to how attachments work above\n\n if (isMediaUpload(value)) {\n const mediaRef = await OntologiesV2.MediaReferenceProperties\n .uploadMedia(\n client,\n await client.ontologyRid,\n actionMetadata.apiName,\n value.data,\n {\n mediaItemPath: value.path,\n preview: true,\n },\n );\n return await toDataValue(mediaRef, client, actionMetadata);\n }\n\n // objects just send the JSON'd primaryKey\n if (isOntologyObjectV2(value)) {\n return await toDataValue(value.__primaryKey, client, actionMetadata);\n }\n\n if (isObjectSpecifiersObject(value)) {\n return await toDataValue(value.$primaryKey, client, actionMetadata);\n }\n\n if (isPoint(value)) {\n return await toDataValue(\n `${value.coordinates[1]},${value.coordinates[0]}`,\n client,\n actionMetadata,\n );\n }\n\n // object set (the rid as a string (passes through the last return), or the ObjectSet definition directly)\n if (isWireObjectSet(value)) {\n return value;\n }\n if (isObjectSet(value)) {\n return getWireObjectSet(value);\n }\n\n if (isMediaReference(value)) {\n return value;\n }\n\n if (isInterfaceActionParam(value)) {\n return {\n objectTypeApiName: value.$objectType,\n primaryKeyValue: value.$primaryKey,\n };\n }\n\n // TODO (during queries implementation)\n // two dimensional aggregation\n // three dimensional aggregation\n\n // struct\n if (typeof value === \"object\") {\n return Object.entries(value).reduce(\n async (promisedAcc, [key, structValue]) => {\n const acc = await promisedAcc;\n acc[key] = await toDataValue(structValue, client, actionMetadata);\n return acc;\n },\n Promise.resolve({} as { [key: string]: DataValue }),\n );\n }\n\n // expected to pass through - boolean, byte, date, decimal, float, double, integer, long, short, string, timestamp, object type reference\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"toDataValue.js","names":["OntologiesV2","isAttachmentFile","isAttachmentUpload","isMediaReference","getWireObjectSet","isObjectSet","isInterfaceActionParam","isObjectSpecifiersObject","isOntologyObjectV2","isPoint","isWireObjectSet","toDataValue","value","client","actionMetadata","Array","isArray","Set","values","from","some","dataValue","converted","push","promiseArray","innerValue","Promise","all","attachment","Attachments","upload","data","filename","name","rid","__primaryKey","$primaryKey","coordinates","objectTypeApiName","$objectType","primaryKeyValue","Object","entries","reduce","promisedAcc","key","structValue","acc","resolve"],"sources":["toDataValue.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ActionMetadata } from \"@osdk/api\";\nimport { type DataValue } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n isAttachmentFile,\n isAttachmentUpload,\n} from \"../object/AttachmentUpload.js\";\nimport { isMediaReference } from \"../object/mediaUpload.js\";\nimport { getWireObjectSet, isObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { isInterfaceActionParam } from \"./interfaceUtils.js\";\nimport { isObjectSpecifiersObject } from \"./isObjectSpecifiersObject.js\";\nimport { isOntologyObjectV2 } from \"./isOntologyObjectV2.js\";\nimport { isPoint } from \"./isPoint.js\";\nimport { isWireObjectSet } from \"./WireObjectSet.js\";\n\n/**\n * Marshall user-facing data into the wire DataValue type\n *\n * @see DataValue for the expected payloads\n * @internal\n */\nexport async function toDataValue(\n value: unknown,\n client: MinimalClient,\n actionMetadata: ActionMetadata,\n): Promise<DataValue> {\n if (value == null) {\n // typeof null is 'object' so do this first\n // Sending null over the wire clears the data, whereas undefined is dropped at request time.\n // Null values are not allowed with OSDK types, but leaving here as an override.\n return value;\n }\n\n // arrays and sets are both sent over the wire as arrays\n if (Array.isArray(value) || value instanceof Set) {\n const values = Array.from(value);\n if (\n values.some((dataValue) =>\n isAttachmentUpload(dataValue) || isAttachmentFile(dataValue)\n )\n ) {\n const converted = [];\n for (const value of values) {\n converted.push(await toDataValue(value, client, actionMetadata));\n }\n return converted;\n }\n const promiseArray = Array.from(\n value,\n async (innerValue) =>\n await toDataValue(innerValue, client, actionMetadata),\n );\n return Promise.all(promiseArray);\n }\n\n // For uploads, we need to upload ourselves first to get the RID of the attachment\n if (isAttachmentUpload(value)) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value.data,\n {\n filename: value.name,\n },\n );\n return await toDataValue(attachment.rid, client, actionMetadata);\n }\n\n if (isAttachmentFile(value)) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value,\n {\n filename: value.name as string,\n },\n );\n return await toDataValue(attachment.rid, client, actionMetadata);\n }\n\n // objects just send the JSON'd primaryKey\n if (isOntologyObjectV2(value)) {\n return await toDataValue(value.__primaryKey, client, actionMetadata);\n }\n\n if (isObjectSpecifiersObject(value)) {\n return await toDataValue(value.$primaryKey, client, actionMetadata);\n }\n\n if (isPoint(value)) {\n return await toDataValue(\n `${value.coordinates[1]},${value.coordinates[0]}`,\n client,\n actionMetadata,\n );\n }\n\n // object set (the rid as a string (passes through the last return), or the ObjectSet definition directly)\n if (isWireObjectSet(value)) {\n return value;\n }\n if (isObjectSet(value)) {\n return getWireObjectSet(value);\n }\n\n if (isMediaReference(value)) {\n return value;\n }\n\n if (isInterfaceActionParam(value)) {\n return {\n objectTypeApiName: value.$objectType,\n primaryKeyValue: value.$primaryKey,\n };\n }\n\n // TODO (during queries implementation)\n // two dimensional aggregation\n // three dimensional aggregation\n\n // struct\n if (typeof value === \"object\") {\n return Object.entries(value).reduce(\n async (promisedAcc, [key, structValue]) => {\n const acc = await promisedAcc;\n acc[key] = await toDataValue(structValue, client, actionMetadata);\n return acc;\n },\n Promise.resolve({} as { [key: string]: DataValue }),\n );\n }\n\n // expected to pass through - boolean, byte, date, decimal, float, double, integer, long, short, string, timestamp, object type reference\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,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":[]}
@@ -13,7 +13,6 @@ export interface MinimalClient extends SharedClientContext {
13
13
  ontologyProvider: OntologyProvider;
14
14
  logger?: Logger;
15
15
  transactionRid?: string;
16
- branch?: string;
17
16
  clientCacheKey: ClientCacheKey;
18
17
  requestContext: RequestContext;
19
18
  }
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,cAAc,WAAY;AACxC,cAAc,2BAA2B,sBAAuB;AAMhE,cAAc,wBAAwB,gCAAiC;AAEvE,cAAcA;AAEd,YAAY,iBAAiB,CAAE,IAAG;WAAY;AAAY;AAE1D,YAAY,iBAAiB;CAC3B;AACD;AAED,iBAAiB,sBAAsB,oBAAoB;CACzD,sBAAsB;CACtB,kBAAkB;CAClB,SAAS;CACT;CACA;CAQA,gBAAgB;CAChB,gBAAgB;AACjB;AAED,YAAY,sBAAsB;CAChC,UAAU;CACV,UAAU;AACX;AAED,iBAAiB,sBAAsB;CACrC,sBAAsB;AACvB","names":["tag: unique symbol"],"sources":["../../src/MinimalClientContext.ts"],"version":3,"file":"MinimalClientContext.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,cAAc,WAAY;AACxC,cAAc,2BAA2B,sBAAuB;AAMhE,cAAc,wBAAwB,gCAAiC;AAEvE,cAAcA;AAEd,YAAY,iBAAiB,CAAE,IAAG;WAAY;AAAY;AAE1D,YAAY,iBAAiB;CAC3B;AACD;AAED,iBAAiB,sBAAsB,oBAAoB;CACzD,sBAAsB;CACtB,kBAAkB;CAClB,SAAS;CACT;CAQA,gBAAgB;CAChB,gBAAgB;AACjB;AAED,YAAY,sBAAsB;CAChC,UAAU;CACV,UAAU;AACX;AAED,iBAAiB,sBAAsB;CACrC,sBAAsB;AACvB","names":["tag: unique symbol"],"sources":["../../src/MinimalClientContext.ts"],"version":3,"file":"MinimalClientContext.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,kBACA,oBACA,gBACA,aACA,4BACA,oBACA,yBACA,uBAAuB,2BACvB,6BACK,WAAY;AACnB,cACE,4BAEA,iCACK,0BAA2B;AAElC,cAAc,qBAAqB,4BAA6B;AAGhE,cAAc,YAAY,iBAAkB;AAC5C,cAAc,qBAAqB,0BAA2B;AAC9D,cAAc,iBAAiB,sBAAuB;KAIjD,SAAS,YAAY,KAAK,eAAe,gBAAgB,WAC5D,IAAI,gBAAgB,eAAe,SAAS,aAAa,eACrD,YAAY,WAAW,eACvB,IAAI,gBAAgB,eAAe,SAAS,gBAAgB,eAC1D,YAAY,cAAc,eAC5B,IAAI,gBAAgB,eAAe,SAAS,aAAa,eACvD,YAAY,WAAW,eACzB,IAAI,sBAAsB,wBACxB,YAAY,cAAc,IAAI;KAGjC,eAAe,YAAY,eAAe,kBAC7C,IAAI,wBAAwB,OAAO,MAAM,SAAS,QAC9C,SAAS;KAEV,kBAAkB,UAAU,iCAC9B,WAAW,KAAI,eAAe,EAAE;AAGnC,YAAY,qBACV,UAAU,8BACR,cAAc,mBAAmB,kBAAkB,KACnD,UAAU,kBAAkB,IAAI,cAAc;AAElD,YAAY,uBACV,UAAU,yBACR;CACF,cACG,0BAA0B,GAAG,cAAc,kCACxC,gBAAgB,0BAA0B,GAAG,iBAC7C,0BAA0B,GAAG,cAAc;CAEjD,mBACG,0BAA0B,GAAG,cAAc,uCAChC,qBAAqB,0BAA0B,GAAG,iBAC1D,0BAA0B,GAAG,cAAc;AAClD;KAEI,6BAA6B,YAEhC,eAAe;AAGjB,YAAY,gBACV,UAAU,YAAY,eAAe;CAErC,UAAU,KAAK,qBAAqB;CACpC,WAAW;EAEXA,MAAM,GACNC,UAAU,OACP,QACH,2BAA2B;AAG7B,YAAY,qBACV,UAAU,YAAY,eAAe;CAErC,UAAU,KAAK,qBAAqB;CACpC,WAAW;EAEXD,MAAM,GACNC,UAAU,OACP,QACH,2BAA2B;AAG7B,OAAO,iBAAe;CACpB,WAAW;CACX,UACI,qBAAqB,0BAA0B,IAAI,iBACnD,qBAAqB,0BAA0B,IAAI;CACvD,WAAW,UAAU,qBACnB,0BAA0B,IAAI,mBAC1B,0BACF;EAEJC,QAAQ,eACRC,QAAQ,IACRC,aAAa,GACbC,UAAS,KACR,QACD,2BAA2B;AA6G7B,OAAO,iBAAS,oBACdC,UAAU,4BAA4B,6BACrC","names":["args: A","options?: OP","client: MinimalClient","action: AD","parameters?: P","options: Op","response: SyncApplyActionResponseV2 | BatchApplyActionResponseV2"],"sources":["../../../src/actions/applyAction.ts"],"version":3,"file":"applyAction.d.ts"}
1
+ {"mappings":"AAgBA,cACE,kBACA,oBACA,gBACA,aACA,4BACA,oBACA,yBACA,uBAAuB,2BACvB,6BACK,WAAY;AACnB,cACE,4BAEA,iCACK,0BAA2B;AAElC,cAAc,qBAAqB,4BAA6B;AAGhE,cAAc,YAAY,iBAAkB;AAC5C,cAAc,qBAAqB,0BAA2B;AAC9D,cAAc,iBAAiB,sBAAuB;KAIjD,SAAS,YAAY,KAAK,eAAe,gBAAgB,WAC5D,IAAI,gBAAgB,eAAe,SAAS,aAAa,eACrD,YAAY,WAAW,eACvB,IAAI,gBAAgB,eAAe,SAAS,gBAAgB,eAC1D,YAAY,cAAc,eAC5B,IAAI,gBAAgB,eAAe,SAAS,aAAa,eACvD,YAAY,WAAW,eACzB,IAAI,sBAAsB,wBACxB,YAAY,cAAc,IAAI;KAGjC,eAAe,YAAY,eAAe,kBAC7C,IAAI,wBAAwB,OAAO,MAAM,SAAS,QAC9C,SAAS;KAEV,kBAAkB,UAAU,iCAC9B,WAAW,KAAI,eAAe,EAAE;AAGnC,YAAY,qBACV,UAAU,8BACR,cAAc,mBAAmB,kBAAkB,KACnD,UAAU,kBAAkB,IAAI,cAAc;AAElD,YAAY,uBACV,UAAU,yBACR;CACF,cACG,0BAA0B,GAAG,cAAc,kCACxC,gBAAgB,0BAA0B,GAAG,iBAC7C,0BAA0B,GAAG,cAAc;CAEjD,mBACG,0BAA0B,GAAG,cAAc,uCAChC,qBAAqB,0BAA0B,GAAG,iBAC1D,0BAA0B,GAAG,cAAc;AAClD;KAEI,6BAA6B,YAEhC,eAAe;AAGjB,YAAY,gBACV,UAAU,YAAY,eAAe;CAErC,UAAU,KAAK,qBAAqB;CACpC,WAAW;EAEXA,MAAM,GACNC,UAAU,OACP,QACH,2BAA2B;AAG7B,YAAY,qBACV,UAAU,YAAY,eAAe;CAErC,UAAU,KAAK,qBAAqB;CACpC,WAAW;EAEXD,MAAM,GACNC,UAAU,OACP,QACH,2BAA2B;AAG7B,OAAO,iBAAe;CACpB,WAAW;CACX,UACI,qBAAqB,0BAA0B,IAAI,iBACnD,qBAAqB,0BAA0B,IAAI;CACvD,WAAW,UAAU,qBACnB,0BAA0B,IAAI,mBAC1B,0BACF;EAEJC,QAAQ,eACRC,QAAQ,IACRC,aAAa,GACbC,UAAS,KACR,QACD,2BAA2B;AA2G7B,OAAO,iBAAS,oBACdC,UAAU,4BAA4B,6BACrC","names":["args: A","options?: OP","client: MinimalClient","action: AD","parameters?: P","options: Op","response: SyncApplyActionResponseV2 | BatchApplyActionResponseV2"],"sources":["../../../src/actions/applyAction.ts"],"version":3,"file":"applyAction.d.ts"}
@@ -2,6 +2,5 @@ import type { Logger } from "@osdk/api";
2
2
  import { type Client } from "./Client.js";
3
3
  export declare const createClient: (baseUrl: string, ontologyRid: string | Promise<string>, tokenProvider: () => Promise<string>, options?: {
4
4
  logger?: Logger
5
- branch?: string
6
5
  } | undefined, fetchFn?: typeof fetch | undefined) => Client;
7
6
  export declare const createClientWithTransaction: (transactionRid: string, ...args: Parameters<typeof createClient>) => Client;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAIE,cASK,WAAY;AAkBnB,cAAiC,cAAc,aAAc;AAsQ7D,OAAO,cAAMA,eACXC,iBACAC,sBAAsB,iBACtBC,qBAAqB,iBACrBC,UAAU;CACR,SAAS;CACT;AACD,eACDC,iBAAiB,sBACd;AAML,OAAO,cAAMC,8BACXC,wBACA,GAAG,MAAM,kBAAkB,kBACxB","names":["createClient: (\n baseUrl: string,\n ontologyRid: string | Promise<string>,\n tokenProvider: () => Promise<string>,\n options?: {\n logger?: Logger;\n branch?: string;\n } | undefined,\n fetchFn?: typeof fetch | undefined,\n) => Client","baseUrl: string","ontologyRid: string | Promise<string>","tokenProvider: () => Promise<string>","options?: {\n logger?: Logger;\n branch?: string;\n } | undefined","fetchFn?: typeof fetch | undefined","createClientWithTransaction: (\n transactionRid: string,\n ...args: Parameters<typeof createClient>\n) => Client","transactionRid: string"],"sources":["../../src/createClient.ts"],"version":3,"file":"createClient.d.ts"}
1
+ {"mappings":"AAgBA,cAIE,cASK,WAAY;AAkBnB,cAAiC,cAAc,aAAc;AAqQ7D,OAAO,cAAMA,eACXC,iBACAC,sBAAsB,iBACtBC,qBAAqB,iBACrBC,UAAU;CACR,SAAS;AACV,eACDC,iBAAiB,sBACd;AAML,OAAO,cAAMC,8BACXC,wBACA,GAAG,MAAM,kBAAkB,kBACxB","names":["createClient: (\n baseUrl: string,\n ontologyRid: string | Promise<string>,\n tokenProvider: () => Promise<string>,\n options?: {\n logger?: Logger;\n } | undefined,\n fetchFn?: typeof fetch | undefined,\n) => Client","baseUrl: string","ontologyRid: string | Promise<string>","tokenProvider: () => Promise<string>","options?: {\n logger?: Logger;\n } | undefined","fetchFn?: typeof fetch | undefined","createClientWithTransaction: (\n transactionRid: string,\n ...args: Parameters<typeof createClient>\n) => Client","transactionRid: string"],"sources":["../../src/createClient.ts"],"version":3,"file":"createClient.d.ts"}
@@ -1,4 +1,4 @@
1
- export { isOk, NULL_VALUE } from "@osdk/api";
1
+ export { isOk } from "@osdk/api";
2
2
  export type { ActionDefinition, ActionEditResponse, ActionMetadata, ActionParam, ActionReturnTypeForOptions, ActionValidationResponse, ApplyActionOptions, ApplyBatchActionOptions, Attachment, CompileTimeMetadata, InterfaceDefinition, InterfaceMetadata, Logger, ObjectMetadata, ObjectSet, ObjectSpecifier, ObjectTypeDefinition, Osdk, OsdkObject, OsdkObjectCreatePropertyType, OsdkObjectPropertyType, PageResult, PropertyDef, PropertyKeys, PropertyValueWireToClient, QueryDefinition, QueryParam, QueryResult, Range, Result, SingleLinkAccessor, ThreeDimensionalAggregation, TwoDimensionalAggregation, VersionBound, WhereClause } from "@osdk/api";
3
3
  export { PalantirApiError } from "@osdk/shared.net.errors";
4
4
  export { ActionValidationError } from "./actions/ActionValidationError.js";
@@ -1 +1 @@
1
- {"mappings":"AAkBA,SAAS,MAAM,kBAAkB;AACjC,cACE,kBACA,oBACA,gBACA,aACA,4BACA,0BACA,oBACA,yBACA,YACA,qBACA,qBACA,mBACA,QACA,gBACA,WACA,iBACA,sBACA,MACA,YACA,8BACA,wBACA,YACA,aACA,cACA,2BACA,iBACA,YACA,aACA,OACA,QACA,oBACA,6BACA,2BACA,cACA,mBACK;AACP,SAAS,wBAAwB;AAEjC,SAAS,6BAA6B;AACtC,cAAc,cAAc;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AACrC,cAAc,sBAAsB;AACpC,SAAS,8BAA8B;AACvC,cAAc,qBAAqB;AAEnC,SACE,aACA,wBACA,wBACK;AAEP,SAAS,2CAA2C","names":[],"sources":["../../src/index.ts"],"version":3,"file":"index.d.ts"}
1
+ {"mappings":"AAkBA,SAAS,YAAY;AACrB,cACE,kBACA,oBACA,gBACA,aACA,4BACA,0BACA,oBACA,yBACA,YACA,qBACA,qBACA,mBACA,QACA,gBACA,WACA,iBACA,sBACA,MACA,YACA,8BACA,wBACA,YACA,aACA,cACA,2BACA,iBACA,YACA,aACA,OACA,QACA,oBACA,6BACA,2BACA,cACA,mBACK;AACP,SAAS,wBAAwB;AAEjC,SAAS,6BAA6B;AACtC,cAAc,cAAc;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AACrC,cAAc,sBAAsB;AACpC,SAAS,8BAA8B;AACvC,cAAc,qBAAqB;AAEnC,SACE,aACA,wBACA,wBACK;AAEP,SAAS,2CAA2C","names":[],"sources":["../../src/index.ts"],"version":3,"file":"index.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,SAMA,6BAGA,oBAEK,WAAY;AAkBnB,OAAO,iBAAS;CACd,UAAU;CACV,UAAU,aAAa;EAEvBA,MAAM,GACN,GAAG,YAAY,MACd,QAAQ,GAAG","names":["type: Q"],"sources":["../../../src/object/fetchPage.ts"],"version":3,"file":"fetchPage.d.ts"}
1
+ {"mappings":"AAgBA,cACE,SAMA,6BAEA,oBAEK,WAAY;AAkBnB,OAAO,iBAAS;CACd,UAAU;CACV,UAAU,aAAa;EAEvBA,MAAM,GACN,GAAG,YAAY,MACd,QAAQ,GAAG","names":["type: Q"],"sources":["../../../src/object/fetchPage.ts"],"version":3,"file":"fetchPage.d.ts"}
@@ -1,3 +1,2 @@
1
- import type { MediaReference, MediaUpload } from "@osdk/api";
1
+ import type { MediaReference } from "@osdk/api";
2
2
  export declare function isMediaReference(o: any): o is MediaReference;
3
- export declare function isMediaUpload(o: any): o is MediaUpload;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,gBAAgB,mBAAmB,WAAY;AAE7D,OAAO,iBAAS,iBAAiBA,SAAS,KAAK;AAa/C,OAAO,iBAAS,cAAcA,SAAS,KAAK","names":["o: any"],"sources":["../../../src/object/mediaUpload.ts"],"version":3,"file":"mediaUpload.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,sBAAsB,WAAY;AAEhD,OAAO,iBAAS,iBAAiBA,SAAS,KAAK","names":["o: any"],"sources":["../../../src/object/mediaUpload.ts"],"version":3,"file":"mediaUpload.d.ts"}
@@ -0,0 +1,5 @@
1
+ import type { ObjectSet } from "@osdk/api";
2
+ import type { BaseCollectionPayload } from "./internal/base-list/BaseCollectionQuery.js";
3
+ export interface ObjectSetPayload extends BaseCollectionPayload {
4
+ objectSet: ObjectSet<any, any>;
5
+ }
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,iBAAiB,WAAY;AAC3C,cAAc,6BAA6B,6CAA8C;AAEzF,iBAAiB,yBAAyB,sBAAsB;CAC9D,WAAW;AACZ","names":[],"sources":["../../../src/observable/ObjectSetPayload.ts"],"version":3,"file":"ObjectSetPayload.d.ts"}
@@ -1,7 +1,8 @@
1
- import type { ActionDefinition, ActionValidationResponse, InterfaceDefinition, ObjectTypeDefinition, Osdk, PrimaryKeyType, PropertyKeys, WhereClause } from "@osdk/api";
1
+ import type { ActionDefinition, ActionValidationResponse, InterfaceDefinition, ObjectSet, ObjectTypeDefinition, Osdk, PrimaryKeyType, PropertyKeys, WhereClause, WirePropertyTypes } from "@osdk/api";
2
2
  import type { ActionSignatureFromDef } from "../actions/applyAction.js";
3
3
  import { type Client } from "../Client.js";
4
4
  import type { Canonical } from "./internal/Canonical.js";
5
+ import type { ObserveObjectSetOptions } from "./internal/objectset/ObjectSetQueryOptions.js";
5
6
  import type { CommonObserveOptions, InvalidationMode, ObserveOptions, Observer, Status } from "./ObservableClient/common.js";
6
7
  import type { ObserveLinks } from "./ObservableClient/ObserveLink.js";
7
8
  import type { OptimisticBuilder } from "./OptimisticBuilder.js";
@@ -39,6 +40,18 @@ export interface ObserveObjectsArgs<T extends ObjectTypeDefinition | InterfaceDe
39
40
  hasMore: boolean;
40
41
  status: Status;
41
42
  }
43
+ export interface ObserveObjectSetArgs<
44
+ T extends ObjectTypeDefinition | InterfaceDefinition,
45
+ RDPs extends Record<string, WirePropertyTypes | undefined | Array<WirePropertyTypes>> = {}
46
+ > {
47
+ resolvedList: Array<Osdk.Instance<T, "$allBaseProperties", PropertyKeys<T>, RDPs>>;
48
+ isOptimistic: boolean;
49
+ lastUpdated: number;
50
+ fetchMore: () => Promise<void>;
51
+ hasMore: boolean;
52
+ status: Status;
53
+ objectSet: ObjectSet<T, RDPs>;
54
+ }
42
55
  /**
43
56
  * User facing callback args for `observeLink`
44
57
  */
@@ -92,6 +105,25 @@ export interface ObservableClient extends ObserveLinks {
92
105
  */
93
106
  observeList<T extends ObjectTypeDefinition | InterfaceDefinition>(options: ObserveListOptions<T>, subFn: Observer<ObserveObjectsArgs<T>>): Unsubscribable;
94
107
  /**
108
+ * Observe an ObjectSet with automatic updates when matching objects change.
109
+ *
110
+ * @param baseObjectSet - The base ObjectSet to observe
111
+ * @param options - Options for transforming and observing the ObjectSet
112
+ * @param subFn - Observer that receives ObjectSet state updates
113
+ * @returns Subscription that can be unsubscribed to stop updates
114
+ *
115
+ * Supports all ObjectSet operations:
116
+ * - Filtering with where clauses
117
+ * - Derived properties with withProperties
118
+ * - Set operations (union, intersect, subtract)
119
+ * - Link traversal with pivotTo
120
+ * - Sorting and pagination
121
+ */
122
+ observeObjectSet<
123
+ T extends ObjectTypeDefinition,
124
+ RDPs extends Record<string, WirePropertyTypes | undefined | Array<WirePropertyTypes>> = {}
125
+ >(baseObjectSet: ObjectSet<T>, options: ObserveObjectSetOptions<T, RDPs>, subFn: Observer<ObserveObjectSetArgs<T, RDPs>>): Unsubscribable;
126
+ /**
95
127
  * Execute an action with optional optimistic updates.
96
128
  *
97
129
  * @param action - Action definition to execute
@@ -119,6 +151,27 @@ export interface ObservableClient extends ObserveLinks {
119
151
  * - Enable/disable action buttons based on validity
120
152
  */
121
153
  validateAction: <Q extends ActionDefinition<any>>(action: Q, args: Parameters<ActionSignatureFromDef<Q>["applyAction"]>[0]) => Promise<ActionValidationResponse>;
154
+ /**
155
+ * Invalidates the entire cache, forcing all queries to refetch.
156
+ * Use sparingly as this can cause significant network traffic.
157
+ */
158
+ invalidateAll(): Promise<void>;
159
+ /**
160
+ * Invalidates specific objects in the cache.
161
+ * @param objects - Single object or array of objects to invalidate
162
+ */
163
+ invalidateObjects(objects: Osdk.Instance<ObjectTypeDefinition> | ReadonlyArray<Osdk.Instance<ObjectTypeDefinition>>): Promise<void>;
164
+ /**
165
+ * Invalidates all cached data for a specific object type.
166
+ * This includes:
167
+ * - All objects of the specified type
168
+ * - All lists containing objects of this type
169
+ * - All links where the source is of this type
170
+ *
171
+ * @param type - Object type definition or API name string
172
+ * @returns Promise that resolves when invalidation is complete
173
+ */
174
+ invalidateObjectType<T extends ObjectTypeDefinition>(type: T | T["apiName"]): Promise<void>;
122
175
  canonicalizeWhereClause: <T extends ObjectTypeDefinition | InterfaceDefinition>(where: WhereClause<T>) => Canonical<WhereClause<T>>;
123
176
  }
124
177
  export declare function createObservableClient(client: Client): ObservableClient;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,kBACA,0BACA,qBACA,sBACA,MACA,gBACA,cACA,mBACK,WAAY;AAEnB,cAAc,8BAA8B,2BAA4B;AACxE,cAAiC,cAAc,cAAe;AAG9D,cAAc,iBAAiB,yBAA0B;AAGzD,cACE,sBACA,kBACA,gBACA,UACA,cACK,8BAA+B;AACtC,cAAc,oBAAoB,mCAAoC;AACtE,cAAc,yBAAyB,wBAAyB;AAEhE,yBAAiB;WACE,mBAAmB;EAClC,oBAAoBA,KAAK;CAC1B;;AAGH,iBAAiB,qBACf,UAAU,uBAAuB,6BACzB,eAAe;CACvB,SAAS,EAAE,aAAa;CACxB,IAAI,eAAe;CACnB,SAAS,aAAa;AACvB;AAED,YAAY,QAAQ,UAAU,uBAAuB,0BAClD,KAAK,aAAa,OAAM,QAAQ;AAGnC,iBAAiB,mBACf,UAAU,uBAAuB,6BACzB,sBAAsB,eAAe;CAC7C,MAAM,KAAK,GAAG,YAAY;CAC1B,QAAQ,YAAY;CACpB;CACA,UAAU,QAAQ;CAClB,mBAAmB;CACnB;CACA;AACD;AAID,iBAAiB,kBAAkB,UAAU,sBAAsB;CACjE,QAAQ,KAAK,SAAS;CACtB;CACA,QAAQ;CACR;AACD;AAGD,iBAAiB,mBACf,UAAU,uBAAuB,qBACjC;CACA,cAAc,MAAM,KAAK,SAAS;CAClC;CACA;CACA,iBAAiB;CACjB;CACA,QAAQ;AACT;;;;AAKD,iBAAiB,wBACf,UAAU,uBAAuB,qBACjC;CACA,cAAc,KAAK,SAAS;CAC5B;CACA;CACA,iBAAiB;CACjB;CACA,QAAQ;AACT;;;;;;;;;;;AAYD,iBAAiB,yBAAyB,aAAa;;;;;;;;;;;;;;;;CAgBrD,cAAc,UAAU,sBACtBC,SAAS,EAAE,aAAa,GACxBC,IAAI,eAAe,IACnBC,SAAS,gBACTC,OAAO,SAAS,kBAAkB,MACjC;;;;;;;;;;;;;;CAeH,YAAY,UAAU,uBAAuB,qBAC3CC,SAAS,mBAAmB,IAC5BC,OAAO,SAAS,mBAAmB,MAClC;;;;;;;;;;;;;;;CAgBH,cAAc,UAAU,uBACtBC,QAAQ,GACRC,MACI,WAAW,uBAAuB,GAAG,gBAAgB,KACrD,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,KAC/DC,OAAO,iBAAiB,uBACrB;;;;;;;;;;;;;CAcL,iBAAiB,UAAU,uBACzBF,QAAQ,GACRG,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,OACxD,QAAQ;CAEb,0BACE,UAAU,uBAAuB,qBAEjCC,OAAO,YAAY,OAChB,UAAU,YAAY;AAC5B;AAED,OAAO,iBAAS,uBAAuBC,QAAQ,SAAS;AA0BxD,iBAAiB,eAAe;CAC9B;AACD","names":["ctx: OptimisticBuilder","apiName: T[\"apiName\"] | T","pk: PrimaryKeyType<T>","options: ObserveOptions","subFn: Observer<ObserveObjectArgs<T>>","options: ObserveListOptions<T>","subFn: Observer<ObserveObjectsArgs<T>>","action: Q","args:\n | Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]\n | Array<Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]>","opts?: ObservableClient.ApplyActionOptions","args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]","where: WhereClause<T>","client: Client"],"sources":["../../../src/observable/ObservableClient.ts"],"version":3,"file":"ObservableClient.d.ts"}
1
+ {"mappings":"AAgBA,cACE,kBACA,0BACA,qBACA,WACA,sBACA,MACA,gBACA,cACA,aACA,yBACK,WAAY;AAEnB,cAAc,8BAA8B,2BAA4B;AACxE,cAAiC,cAAc,cAAe;AAG9D,cAAc,iBAAiB,yBAA0B;AACzD,cAAc,+BAA+B,+CAAgD;AAG7F,cACE,sBACA,kBACA,gBACA,UACA,cACK,8BAA+B;AACtC,cAAc,oBAAoB,mCAAoC;AACtE,cAAc,yBAAyB,wBAAyB;AAEhE,yBAAiB;WACE,mBAAmB;EAClC,oBAAoBA,KAAK;CAC1B;;AAGH,iBAAiB,qBACf,UAAU,uBAAuB,6BACzB,eAAe;CACvB,SAAS,EAAE,aAAa;CACxB,IAAI,eAAe;CACnB,SAAS,aAAa;AACvB;AAED,YAAY,QAAQ,UAAU,uBAAuB,0BAClD,KAAK,aAAa,OAAM,QAAQ;AAGnC,iBAAiB,mBACf,UAAU,uBAAuB,6BACzB,sBAAsB,eAAe;CAC7C,MAAM,KAAK,GAAG,YAAY;CAC1B,QAAQ,YAAY;CACpB;CACA,UAAU,QAAQ;CAClB,mBAAmB;CACnB;CACA;AACD;AAID,iBAAiB,kBAAkB,UAAU,sBAAsB;CACjE,QAAQ,KAAK,SAAS;CACtB;CACA,QAAQ;CACR;AACD;AAGD,iBAAiB,mBACf,UAAU,uBAAuB,qBACjC;CACA,cAAc,MAAM,KAAK,SAAS;CAClC;CACA;CACA,iBAAiB;CACjB;CACA,QAAQ;AACT;AAED,iBAAiB;CACf,UAAU,uBAAuB;CACjC,aAAa,eAEX,gCAAgC,MAAM,sBACpC,CAAE;EACN;CACA,cAAc,MACZ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI;CAE1D;CACA;CACA,iBAAiB;CACjB;CACA,QAAQ;CACR,WAAW,UAAU,GAAG;AACzB;;;;AAKD,iBAAiB,wBACf,UAAU,uBAAuB,qBACjC;CACA,cAAc,KAAK,SAAS;CAC5B;CACA;CACA,iBAAiB;CACjB;CACA,QAAQ;AACT;;;;;;;;;;;AAYD,iBAAiB,yBAAyB,aAAa;;;;;;;;;;;;;;;;CAgBrD,cAAc,UAAU,sBACtBC,SAAS,EAAE,aAAa,GACxBC,IAAI,eAAe,IACnBC,SAAS,gBACTC,OAAO,SAAS,kBAAkB,MACjC;;;;;;;;;;;;;;CAeH,YAAY,UAAU,uBAAuB,qBAC3CC,SAAS,mBAAmB,IAC5BC,OAAO,SAAS,mBAAmB,MAClC;;;;;;;;;;;;;;;;CAiBH;EACE,UAAU;EACV,aAAa,eAEX,gCAAgC,MAAM,sBACpC,CAAE;GAENC,eAAe,UAAU,IACzBC,SAAS,wBAAwB,GAAG,OACpCC,OAAO,SAAS,qBAAqB,GAAG,SACvC;;;;;;;;;;;;;;;CAgBH,cAAc,UAAU,uBACtBC,QAAQ,GACRC,MACI,WAAW,uBAAuB,GAAG,gBAAgB,KACrD,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,KAC/DC,OAAO,iBAAiB,uBACrB;;;;;;;;;;;;;CAcL,iBAAiB,UAAU,uBACzBF,QAAQ,GACRG,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,OACxD,QAAQ;;;;;CAMb,iBAAiB;;;;;CAMjB,kBACEC,SACI,KAAK,SAAS,wBACd,cAAc,KAAK,SAAS,yBAC/B;;;;;;;;;;;CAYH,qBAAqB,UAAU,sBAC7BC,MAAM,IAAI,EAAE,aACX;CAEH,0BACE,UAAU,uBAAuB,qBAEjCC,OAAO,YAAY,OAChB,UAAU,YAAY;AAC5B;AAED,OAAO,iBAAS,uBAAuBC,QAAQ,SAAS;AA0BxD,iBAAiB,eAAe;CAC9B;AACD","names":["ctx: OptimisticBuilder","apiName: T[\"apiName\"] | T","pk: PrimaryKeyType<T>","options: ObserveOptions","subFn: Observer<ObserveObjectArgs<T>>","options: ObserveListOptions<T>","subFn: Observer<ObserveObjectsArgs<T>>","baseObjectSet: ObjectSet<T>","options: ObserveObjectSetOptions<T, RDPs>","subFn: Observer<ObserveObjectSetArgs<T, RDPs>>","action: Q","args:\n | Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]\n | Array<Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]>","opts?: ObservableClient.ApplyActionOptions","args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]","objects:\n | Osdk.Instance<ObjectTypeDefinition>\n | ReadonlyArray<Osdk.Instance<ObjectTypeDefinition>>","type: T | T[\"apiName\"]","where: WhereClause<T>","client: Client"],"sources":["../../../src/observable/ObservableClient.ts"],"version":3,"file":"ObservableClient.d.ts"}
@@ -0,0 +1,16 @@
1
+ import type { BaseObjectSet, ObjectSet, ObjectTypeDefinition, WirePropertyTypes } from "@osdk/api";
2
+ import type { ObserveObjectSetOptions } from "./internal/objectset/ObjectSetQueryOptions.js";
3
+ /**
4
+ * Computes a stable cache key for an ObjectSet with options.
5
+ *
6
+ * Note: dedupeInterval is excluded as it doesn't affect the data, only the refresh rate.
7
+ *
8
+ * @param objectSet - The base ObjectSet
9
+ * @param options - Optional observation options (where, orderBy, etc.)
10
+ * @returns A stable string key representing the ObjectSet and options
11
+ */
12
+ export declare function computeObjectSetCacheKey<
13
+ T extends ObjectTypeDefinition,
14
+ BaseRDPs extends Record<string, WirePropertyTypes | undefined | Array<WirePropertyTypes>> | BaseObjectSet<T> = never,
15
+ RDPs extends Record<string, WirePropertyTypes | undefined | Array<WirePropertyTypes>> = {}
16
+ >(objectSet: ObjectSet<T, BaseRDPs>, options?: ObserveObjectSetOptions<T, RDPs>): string;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cACE,eACA,WACA,sBACA,yBACK,WAAY;AAEnB,cAAc,+BAA+B,+CAAgD;;;;;;;;;;AAgB7F,OAAO,iBAAS;CACd,UAAU;CACV,iBACI,eAAe,gCAAgC,MAAM,sBACrD,cAAc;CAClB,aAAa,eAEX,gCAAgC,MAAM,sBACpC,CAAE;EAENA,WAAW,UAAU,GAAG,WACxBC,UAAU,wBAAwB,GAAG","names":["objectSet: ObjectSet<T, BaseRDPs>","options?: ObserveObjectSetOptions<T, RDPs>"],"sources":["../../../src/observable/computeObjectSetCacheKey.ts"],"version":3,"file":"computeObjectSetCacheKey.d.ts"}
@@ -3,17 +3,19 @@ import type { ObjectHolder } from "../../object/convertWireToOsdkObjects/ObjectH
3
3
  import type { SpecificLinkCacheKey } from "./links/SpecificLinkCacheKey.js";
4
4
  import type { ListCacheKey } from "./list/ListCacheKey.js";
5
5
  import type { ObjectCacheKey } from "./object/ObjectCacheKey.js";
6
+ import type { ObjectSetCacheKey } from "./objectset/ObjectSetCacheKey.js";
6
7
  export declare class Changes {
7
8
  modifiedObjects: MultiMap<string, ObjectHolder>;
8
9
  addedObjects: MultiMap<string, ObjectHolder>;
9
- added: Set<ListCacheKey | ObjectCacheKey | SpecificLinkCacheKey>;
10
- modified: Set<ListCacheKey | ObjectCacheKey | SpecificLinkCacheKey>;
11
- deleted: Set<ListCacheKey | ObjectCacheKey | SpecificLinkCacheKey>;
10
+ added: Set<ListCacheKey | ObjectCacheKey | SpecificLinkCacheKey | ObjectSetCacheKey>;
11
+ modified: Set<ListCacheKey | ObjectCacheKey | SpecificLinkCacheKey | ObjectSetCacheKey>;
12
+ deleted: Set<ListCacheKey | ObjectCacheKey | SpecificLinkCacheKey | ObjectSetCacheKey>;
12
13
  registerObject: (cacheKey: ObjectCacheKey, data: ObjectHolder, isNew: boolean) => void;
13
14
  deleteObject: (cacheKey: ObjectCacheKey) => void;
14
15
  registerList: (key: ListCacheKey) => void;
15
16
  registerLink: (cacheKey: SpecificLinkCacheKey) => void;
16
17
  deleteLink: (cacheKey: SpecificLinkCacheKey) => void;
18
+ registerObjectSet: (key: ObjectSetCacheKey) => void;
17
19
  isEmpty(): boolean;
18
20
  }
19
21
  export declare function createChangedObjects(): Changes;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,SAAS,gBAAgB,WAAY;AACrC,cAAc,oBAAoB,uDAAwD;AAG1F,cAAc,4BAA4B,iCAAkC;AAC5E,cAAc,oBAAoB,wBAAyB;AAC3D,cAAc,sBAAsB,4BAA6B;AAEjE,OAAO,cAAM,QAAQ;CACnB,iBAAiB,iBAAiB;CAClC,cAAc,iBAAiB;CAE/B,OAAO,IAAI,eAAe,iBAAiB;CAC3C,UAAU,IAAI,eAAe,iBAAiB;CAE9C,SAAS,IAAI,eAAe,iBAAiB;CAG7C,iBACEA,UAAU,gBACVC,MAAM,cACNC;CAMF,eAAgBF,UAAU;CAI1B,eAAgBG,KAAK;CAIrB,eAAgBC,UAAU;CAI1B,aAAcA,UAAU;CAIxB;AASD;AAED,OAAO,iBAAS,wBAAwB;AAIxC,OAAO,iBAAS,4BAA4BC,SAAS","names":["cacheKey: ObjectCacheKey","data: ObjectHolder","isNew: boolean","key: ListCacheKey","cacheKey: SpecificLinkCacheKey","changes: Changes"],"sources":["../../../../src/observable/internal/Changes.ts"],"version":3,"file":"Changes.d.ts"}
1
+ {"mappings":"AAgBA,SAAS,gBAAgB,WAAY;AACrC,cAAc,oBAAoB,uDAAwD;AAG1F,cAAc,4BAA4B,iCAAkC;AAC5E,cAAc,oBAAoB,wBAAyB;AAC3D,cAAc,sBAAsB,4BAA6B;AACjE,cAAc,yBAAyB,kCAAmC;AAE1E,OAAO,cAAM,QAAQ;CACnB,iBAAiB,iBAAiB;CAClC,cAAc,iBAAiB;CAE/B,OAAO,IACL,eAAe,iBAAiB,uBAAuB;CAEzD,UAAU,IACR,eAAe,iBAAiB,uBAAuB;CAEzD,SAAS,IACP,eAAe,iBAAiB,uBAAuB;CAGzD,iBACEA,UAAU,gBACVC,MAAM,cACNC;CAMF,eAAgBF,UAAU;CAI1B,eAAgBG,KAAK;CAIrB,eAAgBC,UAAU;CAI1B,aAAcA,UAAU;CAIxB,oBAAqBC,KAAK;CAI1B;AASD;AAED,OAAO,iBAAS,wBAAwB;AAIxC,OAAO,iBAAS,4BAA4BC,SAAS","names":["cacheKey: ObjectCacheKey","data: ObjectHolder","isNew: boolean","key: ListCacheKey","cacheKey: SpecificLinkCacheKey","key: ObjectSetCacheKey","changes: Changes"],"sources":["../../../../src/observable/internal/Changes.ts"],"version":3,"file":"Changes.d.ts"}
@@ -1,4 +1,5 @@
1
1
  import type { SpecificLinkCacheKey } from "./links/SpecificLinkCacheKey.js";
2
2
  import type { ListCacheKey } from "./list/ListCacheKey.js";
3
3
  import type { ObjectCacheKey } from "./object/ObjectCacheKey.js";
4
- export type KnownCacheKey = ObjectCacheKey | SpecificLinkCacheKey | ListCacheKey;
4
+ import type { ObjectSetCacheKey } from "./objectset/ObjectSetCacheKey.js";
5
+ export type KnownCacheKey = ObjectCacheKey | SpecificLinkCacheKey | ListCacheKey | ObjectSetCacheKey;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,4BAA4B,iCAAkC;AAC5E,cAAc,oBAAoB,wBAAyB;AAC3D,cAAc,sBAAsB,4BAA6B;AAEjE,YAAY,gBACR,iBACA,uBACA","names":[],"sources":["../../../../src/observable/internal/KnownCacheKey.ts"],"version":3,"file":"KnownCacheKey.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,4BAA4B,iCAAkC;AAC5E,cAAc,oBAAoB,wBAAyB;AAC3D,cAAc,sBAAsB,4BAA6B;AACjE,cAAc,yBAAyB,kCAAmC;AAE1E,YAAY,gBACR,iBACA,uBACA,eACA","names":[],"sources":["../../../../src/observable/internal/KnownCacheKey.ts"],"version":3,"file":"KnownCacheKey.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,cAAc,WAAY;AACxC,cACE,aACA,YACA,UACA,cACA,oBACK,MAAO;AAEd,cACE,sBACA,cACK,+BAAgC;AACvC,cAAc,oBAAoB,mBAAoB;AACtD,cAAc,iBAAiB,gBAAiB;AAChD,cAAc,eAAe,cAAe;AAC5C,cAAc,qBAAqB,oBAAqB;AACxD,cAAc,aAAa,YAAa;AACxC,cAAc,oBAAoB,mBAAoB;AACtD,cAAc,aAAa,YAAa;AACxC,cAAc,sBAAsB,qBAAsB;AAE1D,OAAO,uBAAe;CACpB,YAAY;CACZ;CACA,UAAU;aACC,aAAa,SAAS;;CACjC;CACA,eAAe;CACf;CACA,SAAS;CACT,UAAU;CACV,OAAO;CACP,kBAAkB;CASlB,mBAAmB,WAAW,UAAU;CAExC,YACEA,OAAO,OACPC,YAAY,WAAW,eAAe,OACtCC,MAAM,GACNC,UAAU,KACVC,SAAS;CAqBX,mBAAmB,mBACjBC,SAAS,WAAW,eAAe,QAClC,YAAY;CAEf,AAAO,UACLC,UAAU,SAAS,WAClB;;;;CASH,mCACEC,wBACAC;;;;CAUF,qCAAqCD;;;;CAOrC,QAAQ;;;;;;;;;CAgBR,AAAM,WAAWE,kBAAkB;CAiEnC,UAAU;CAEV,mBAAmB,kBAAkB;;;;;;;;CASrC,UACEC,QAAQ,QACRC,OAAO;CAyBT;;;;CAWA,UAAU;;;;;;;;;CAUV,SAAS,aACPC,MAAM,IAAI,cAAc,UACxBF,QAAQ,QACRC,OAAO,eACN,MAAM;;;;;;;CAQT,4BACEE,SAAS,SACTC,cAAc,6BACX;CAEL,SAAS,qBACPC,oBACAC,SAAS,sBACR;AACJ","names":["store: Store","observable: Observable<SubjectPayload<KEY>>","opts: O","cacheKey: KEY","logger?: Logger","subject: Observable<SubjectPayload<KEY>>","observer: Observer<PAYLOAD>","subscriptionId: string","dedupeInterval: number | undefined","force?: boolean","status: Status","batch: BatchContext","data: KEY[\"__cacheKey\"][\"value\"]","changes: Changes","optimisticId: OptimisticId | undefined","objectType: string","changes: Changes | undefined"],"sources":["../../../../src/observable/internal/Query.ts"],"version":3,"file":"Query.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,cAAc,WAAY;AACxC,cACE,aACA,YACA,UACA,cACA,oBACK,MAAO;AAEd,cACE,sBACA,cACK,+BAAgC;AACvC,cAAc,oBAAoB,mBAAoB;AACtD,cAAc,iBAAiB,gBAAiB;AAChD,cAAc,eAAe,cAAe;AAC5C,cAAc,qBAAqB,oBAAqB;AACxD,cAAc,aAAa,YAAa;AACxC,cAAc,oBAAoB,mBAAoB;AACtD,cAAc,aAAa,YAAa;AACxC,cAAc,sBAAsB,qBAAsB;AAE1D,OAAO,uBAAe;CACpB,YAAY;CACZ;CACA,UAAU;aACC,aAAa,SAAS;;CACjC;CACA,eAAe;CACf;CACA,SAAS;CACT,UAAU;CACV,OAAO;CACP,kBAAkB;CASlB,mBAAmB,WAAW,UAAU;CAExC,YACEA,OAAO,OACPC,YAAY,WAAW,eAAe,OACtCC,MAAM,GACNC,UAAU,KACVC,SAAS;CAqBX,mBAAmB,mBACjBC,SAAS,WAAW,eAAe,QAClC,YAAY;CAEf,AAAO,UACLC,UAAU,SAAS,WAClB;;;;CA0BH,mCACEC,wBACAC;;;;CAUF,qCAAqCD;;;;CAOrC,QAAQ;;;;;;;;;CAgBR,AAAM,WAAWE,kBAAkB;CAiEnC,UAAU;CAEV,mBAAmB,kBAAkB;;;;;;;;CASrC,UACEC,QAAQ,QACRC,OAAO;CAyBT;;;;CAWA,UAAU;;;;;;;;;CAUV,SAAS,aACPC,MAAM,IAAI,cAAc,UACxBF,QAAQ,QACRC,OAAO,eACN,MAAM;;;;;;;CAQT,4BACEE,SAAS,SACTC,cAAc,6BACX;CAEL,SAAS,qBACPC,oBACAC,SAAS,sBACR;AACJ","names":["store: Store","observable: Observable<SubjectPayload<KEY>>","opts: O","cacheKey: KEY","logger?: Logger","subject: Observable<SubjectPayload<KEY>>","observer: Observer<PAYLOAD>","subscriptionId: string","dedupeInterval: number | undefined","force?: boolean","status: Status","batch: BatchContext","data: KEY[\"__cacheKey\"][\"value\"]","changes: Changes","optimisticId: OptimisticId | undefined","objectType: string","changes: Changes | undefined"],"sources":["../../../../src/observable/internal/Query.ts"],"version":3,"file":"Query.d.ts"}