@osdk/client 2.3.0-beta.1 → 2.3.0-beta.10

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 (225) hide show
  1. package/CHANGELOG.md +114 -0
  2. package/build/browser/Client.js +1 -1
  3. package/build/browser/Client.js.map +1 -1
  4. package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js +6 -1
  5. package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
  6. package/build/browser/actions/ActionValidationError.js.map +1 -1
  7. package/build/browser/actions/applyAction.js +9 -8
  8. package/build/browser/actions/applyAction.js.map +1 -1
  9. package/build/browser/createClient.js +8 -1
  10. package/build/browser/createClient.js.map +1 -1
  11. package/build/browser/createMediaReferenceProperty.js +7 -1
  12. package/build/browser/createMediaReferenceProperty.js.map +1 -1
  13. package/build/browser/derivedProperties/derivedPropertyRuntimeMetadata.js +2 -0
  14. package/build/browser/derivedProperties/derivedPropertyRuntimeMetadata.js.map +1 -0
  15. package/build/browser/intellisense.test.helpers/orderBySuggestionIsRight.js +30 -0
  16. package/build/browser/intellisense.test.helpers/orderBySuggestionIsRight.js.map +1 -0
  17. package/build/browser/intellisense.test.js +22 -0
  18. package/build/browser/intellisense.test.js.map +1 -1
  19. package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js +57 -47
  20. package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
  21. package/build/browser/logger/BaseLogger.js +1 -1
  22. package/build/browser/logger/BaseLogger.js.map +1 -1
  23. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js +27 -12
  24. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -1
  25. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +22 -9
  26. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  27. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  28. package/build/browser/object/fetchPage.js +9 -7
  29. package/build/browser/object/fetchPage.js.map +1 -1
  30. package/build/browser/object/media.test.js +20 -1
  31. package/build/browser/object/media.test.js.map +1 -1
  32. package/build/browser/object/mediaUpload.js +3 -0
  33. package/build/browser/object/mediaUpload.js.map +1 -1
  34. package/build/browser/object/object.test.js +6 -2
  35. package/build/browser/object/object.test.js.map +1 -1
  36. package/build/browser/objectSet/ObjectSet.test.js +7 -0
  37. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  38. package/build/browser/objectSet/createObjectSet.js +1 -1
  39. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  40. package/build/browser/observable/ObservableClient.js +17 -1
  41. package/build/browser/observable/ObservableClient.js.map +1 -1
  42. package/build/browser/observable/OptimisticBuilder.js.map +1 -1
  43. package/build/browser/observable/internal/ActionApplication.js +31 -30
  44. package/build/browser/observable/internal/ActionApplication.js.map +1 -1
  45. package/build/browser/observable/internal/Changes.js +5 -1
  46. package/build/browser/observable/internal/Changes.js.map +1 -1
  47. package/build/browser/observable/internal/ListQuery.js +24 -22
  48. package/build/browser/observable/internal/ListQuery.js.map +1 -1
  49. package/build/browser/observable/internal/ObjectQuery.js +30 -1
  50. package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
  51. package/build/browser/observable/internal/ObservableClientImpl.js +1 -2
  52. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  53. package/build/browser/observable/internal/OptimisticJob.js +8 -0
  54. package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
  55. package/build/browser/observable/internal/Query.js +2 -2
  56. package/build/browser/observable/internal/Query.js.map +1 -1
  57. package/build/browser/observable/internal/Store.js +4 -0
  58. package/build/browser/observable/internal/Store.js.map +1 -1
  59. package/build/browser/observable/internal/Store.test.js +45 -5
  60. package/build/browser/observable/internal/Store.test.js.map +1 -1
  61. package/build/browser/observable/internal/testUtils.js.map +1 -1
  62. package/build/browser/observable/internal/tombstone.js +18 -0
  63. package/build/browser/observable/internal/tombstone.js.map +1 -0
  64. package/build/browser/public/internal.js +1 -0
  65. package/build/browser/public/internal.js.map +1 -1
  66. package/build/browser/public-utils/hydrateObjectSetFromObjectRids.js +39 -0
  67. package/build/browser/public-utils/hydrateObjectSetFromObjectRids.js.map +1 -0
  68. package/build/browser/queries/applyQuery.js +8 -4
  69. package/build/browser/queries/applyQuery.js.map +1 -1
  70. package/build/browser/tsserver.js +1 -0
  71. package/build/browser/tsserver.js.map +1 -1
  72. package/build/browser/util/UserAgent.js +2 -1
  73. package/build/browser/util/UserAgent.js.map +1 -1
  74. package/build/browser/util/extractRdpDefinition.js +15 -2
  75. package/build/browser/util/extractRdpDefinition.js.map +1 -1
  76. package/build/browser/util/extractRdpDefinition.test.js +87 -5
  77. package/build/browser/util/extractRdpDefinition.test.js.map +1 -1
  78. package/build/browser/util/toDataValue.js +20 -10
  79. package/build/browser/util/toDataValue.js.map +1 -1
  80. package/build/browser/util/toDataValue.test.js +50 -11
  81. package/build/browser/util/toDataValue.test.js.map +1 -1
  82. package/build/cjs/chunk-VZ57PNLC.cjs +1808 -0
  83. package/build/cjs/chunk-VZ57PNLC.cjs.map +1 -0
  84. package/build/cjs/{chunk-FKI2LO2O.cjs → chunk-YGJRXE4F.cjs} +652 -43
  85. package/build/cjs/chunk-YGJRXE4F.cjs.map +1 -0
  86. package/build/cjs/index.cjs +16 -1747
  87. package/build/cjs/index.cjs.map +1 -1
  88. package/build/cjs/index.d.cts +4 -3
  89. package/build/cjs/public/internal.cjs +22 -8
  90. package/build/cjs/public/internal.cjs.map +1 -1
  91. package/build/cjs/public/internal.d.cts +10 -1
  92. package/build/cjs/public/unstable-do-not-use.cjs +182 -123
  93. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  94. package/build/cjs/public/unstable-do-not-use.d.cts +2 -1
  95. package/build/esm/Client.js +1 -1
  96. package/build/esm/Client.js.map +1 -1
  97. package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js +6 -1
  98. package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
  99. package/build/esm/actions/ActionValidationError.js.map +1 -1
  100. package/build/esm/actions/applyAction.js +9 -8
  101. package/build/esm/actions/applyAction.js.map +1 -1
  102. package/build/esm/createClient.js +8 -1
  103. package/build/esm/createClient.js.map +1 -1
  104. package/build/esm/createMediaReferenceProperty.js +7 -1
  105. package/build/esm/createMediaReferenceProperty.js.map +1 -1
  106. package/build/esm/derivedProperties/derivedPropertyRuntimeMetadata.js +2 -0
  107. package/build/esm/derivedProperties/derivedPropertyRuntimeMetadata.js.map +1 -0
  108. package/build/esm/intellisense.test.helpers/orderBySuggestionIsRight.js +30 -0
  109. package/build/esm/intellisense.test.helpers/orderBySuggestionIsRight.js.map +1 -0
  110. package/build/esm/intellisense.test.js +22 -0
  111. package/build/esm/intellisense.test.js.map +1 -1
  112. package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js +57 -47
  113. package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
  114. package/build/esm/logger/BaseLogger.js +1 -1
  115. package/build/esm/logger/BaseLogger.js.map +1 -1
  116. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js +27 -12
  117. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -1
  118. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +22 -9
  119. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  120. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  121. package/build/esm/object/fetchPage.js +9 -7
  122. package/build/esm/object/fetchPage.js.map +1 -1
  123. package/build/esm/object/media.test.js +20 -1
  124. package/build/esm/object/media.test.js.map +1 -1
  125. package/build/esm/object/mediaUpload.js +3 -0
  126. package/build/esm/object/mediaUpload.js.map +1 -1
  127. package/build/esm/object/object.test.js +6 -2
  128. package/build/esm/object/object.test.js.map +1 -1
  129. package/build/esm/objectSet/ObjectSet.test.js +7 -0
  130. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  131. package/build/esm/objectSet/createObjectSet.js +1 -1
  132. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  133. package/build/esm/observable/ObservableClient.js +17 -1
  134. package/build/esm/observable/ObservableClient.js.map +1 -1
  135. package/build/esm/observable/OptimisticBuilder.js.map +1 -1
  136. package/build/esm/observable/internal/ActionApplication.js +31 -30
  137. package/build/esm/observable/internal/ActionApplication.js.map +1 -1
  138. package/build/esm/observable/internal/Changes.js +5 -1
  139. package/build/esm/observable/internal/Changes.js.map +1 -1
  140. package/build/esm/observable/internal/ListQuery.js +24 -22
  141. package/build/esm/observable/internal/ListQuery.js.map +1 -1
  142. package/build/esm/observable/internal/ObjectQuery.js +30 -1
  143. package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
  144. package/build/esm/observable/internal/ObservableClientImpl.js +1 -2
  145. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  146. package/build/esm/observable/internal/OptimisticJob.js +8 -0
  147. package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
  148. package/build/esm/observable/internal/Query.js +2 -2
  149. package/build/esm/observable/internal/Query.js.map +1 -1
  150. package/build/esm/observable/internal/Store.js +4 -0
  151. package/build/esm/observable/internal/Store.js.map +1 -1
  152. package/build/esm/observable/internal/Store.test.js +45 -5
  153. package/build/esm/observable/internal/Store.test.js.map +1 -1
  154. package/build/esm/observable/internal/testUtils.js.map +1 -1
  155. package/build/esm/observable/internal/tombstone.js +18 -0
  156. package/build/esm/observable/internal/tombstone.js.map +1 -0
  157. package/build/esm/public/internal.js +1 -0
  158. package/build/esm/public/internal.js.map +1 -1
  159. package/build/esm/public-utils/hydrateObjectSetFromObjectRids.js +39 -0
  160. package/build/esm/public-utils/hydrateObjectSetFromObjectRids.js.map +1 -0
  161. package/build/esm/queries/applyQuery.js +8 -4
  162. package/build/esm/queries/applyQuery.js.map +1 -1
  163. package/build/esm/tsserver.js +1 -0
  164. package/build/esm/tsserver.js.map +1 -1
  165. package/build/esm/util/UserAgent.js +2 -1
  166. package/build/esm/util/UserAgent.js.map +1 -1
  167. package/build/esm/util/extractRdpDefinition.js +15 -2
  168. package/build/esm/util/extractRdpDefinition.js.map +1 -1
  169. package/build/esm/util/extractRdpDefinition.test.js +87 -5
  170. package/build/esm/util/extractRdpDefinition.test.js.map +1 -1
  171. package/build/esm/util/toDataValue.js +20 -10
  172. package/build/esm/util/toDataValue.js.map +1 -1
  173. package/build/esm/util/toDataValue.test.js +50 -11
  174. package/build/esm/util/toDataValue.test.js.map +1 -1
  175. package/build/types/Client.d.ts +1 -1
  176. package/build/types/actions/ActionValidationError.d.ts +1 -1
  177. package/build/types/actions/ActionValidationError.d.ts.map +1 -1
  178. package/build/types/actions/applyAction.d.ts.map +1 -1
  179. package/build/types/createClient.d.ts.map +1 -1
  180. package/build/types/createMediaReferenceProperty.d.ts +4 -1
  181. package/build/types/createMediaReferenceProperty.d.ts.map +1 -1
  182. package/build/types/derivedProperties/derivedPropertyRuntimeMetadata.d.ts +6 -0
  183. package/build/types/derivedProperties/derivedPropertyRuntimeMetadata.d.ts.map +1 -0
  184. package/build/types/intellisense.test.helpers/orderBySuggestionIsRight.d.ts +1 -0
  185. package/build/types/intellisense.test.helpers/orderBySuggestionIsRight.d.ts.map +1 -0
  186. package/build/types/object/convertWireToOsdkObjects.d.ts +5 -4
  187. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  188. package/build/types/object/mediaUpload.d.ts +2 -1
  189. package/build/types/object/mediaUpload.d.ts.map +1 -1
  190. package/build/types/object/object.test.d.ts.map +1 -1
  191. package/build/types/observable/ObservableClient.d.ts +2 -2
  192. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  193. package/build/types/observable/OptimisticBuilder.d.ts +1 -0
  194. package/build/types/observable/OptimisticBuilder.d.ts.map +1 -1
  195. package/build/types/observable/internal/ActionApplication.d.ts +1 -1
  196. package/build/types/observable/internal/ActionApplication.d.ts.map +1 -1
  197. package/build/types/observable/internal/Changes.d.ts +2 -0
  198. package/build/types/observable/internal/Changes.d.ts.map +1 -1
  199. package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
  200. package/build/types/observable/internal/ObjectQuery.d.ts +1 -0
  201. package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
  202. package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
  203. package/build/types/observable/internal/Store.d.ts +2 -1
  204. package/build/types/observable/internal/Store.d.ts.map +1 -1
  205. package/build/types/observable/internal/testUtils.d.ts +1 -1
  206. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  207. package/build/types/observable/internal/tombstone.d.ts +1 -0
  208. package/build/types/observable/internal/tombstone.d.ts.map +1 -0
  209. package/build/types/public/internal.d.ts +1 -0
  210. package/build/types/public/internal.d.ts.map +1 -1
  211. package/build/types/public-utils/hydrateObjectSetFromObjectRids.d.ts +10 -0
  212. package/build/types/public-utils/hydrateObjectSetFromObjectRids.d.ts.map +1 -0
  213. package/build/types/queries/applyQuery.d.ts.map +1 -1
  214. package/build/types/tsserver.d.ts +1 -0
  215. package/build/types/tsserver.d.ts.map +1 -1
  216. package/build/types/util/UserAgent.d.ts +1 -0
  217. package/build/types/util/UserAgent.d.ts.map +1 -1
  218. package/build/types/util/extractRdpDefinition.d.ts +2 -2
  219. package/build/types/util/extractRdpDefinition.d.ts.map +1 -1
  220. package/package.json +11 -11
  221. package/build/cjs/chunk-FKI2LO2O.cjs.map +0 -1
  222. package/build/cjs/chunk-T4NIFYZS.cjs +0 -14
  223. package/build/cjs/chunk-T4NIFYZS.cjs.map +0 -1
  224. package/build/cjs/chunk-W5PFESFR.cjs +0 -604
  225. package/build/cjs/chunk-W5PFESFR.cjs.map +0 -1
@@ -1,1758 +1,18 @@
1
1
  'use strict';
2
2
 
3
- var chunkFKI2LO2O_cjs = require('./chunk-FKI2LO2O.cjs');
4
- var chunkT4NIFYZS_cjs = require('./chunk-T4NIFYZS.cjs');
5
- var chunkW5PFESFR_cjs = require('./chunk-W5PFESFR.cjs');
3
+ var chunkVZ57PNLC_cjs = require('./chunk-VZ57PNLC.cjs');
4
+ require('./chunk-YGJRXE4F.cjs');
6
5
  var api = require('@osdk/api');
7
6
  var shared_net_errors = require('@osdk/shared.net.errors');
8
- var unstable = require('@osdk/api/unstable');
9
- var client_unstable = require('@osdk/client.unstable');
10
- var invariant = require('tiny-invariant');
11
7
  var shared_client_impl = require('@osdk/shared.client.impl');
12
- var generatorConverters = require('@osdk/generator-converters');
8
+ var invariant = require('tiny-invariant');
13
9
 
14
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
11
 
16
12
  var invariant__default = /*#__PURE__*/_interopDefault(invariant);
17
13
 
18
- // src/actions/ActionValidationError.ts
19
- var ActionValidationError = class extends Error {
20
- constructor(validation) {
21
- super("Validation Error: " + JSON.stringify(validation, null, 2));
22
- this.validation = validation;
23
- }
24
- };
25
-
26
- // src/objectSet/conjureUnionType.ts
27
- function conjureUnionType(type, value) {
28
- return {
29
- type,
30
- [type]: value
31
- };
32
- }
33
-
34
- // src/ontology/makeConjureContext.ts
35
- function makeConjureContext({
36
- baseUrl,
37
- fetch: fetchFn,
38
- tokenProvider
39
- }, servicePath) {
40
- return {
41
- baseUrl,
42
- servicePath,
43
- fetchFn,
44
- tokenProvider
45
- };
46
- }
47
-
48
- // src/pageRequestAsAsyncIter.ts
49
- function getResults(x) {
50
- return x.results;
51
- }
52
- function applyPageToken(payload, {
53
- pageToken
54
- }) {
55
- return pageToken ? {
56
- ...payload,
57
- pageToken
58
- } : void 0;
59
- }
60
- async function* pageRequestAsAsyncIter(call, values, nextArgs, initialPayload) {
61
- let payload = initialPayload;
62
- while (payload) {
63
- const r = await call(payload);
64
- for (const q of values(r)) {
65
- yield q;
66
- }
67
- payload = nextArgs(payload, r);
68
- }
69
- }
70
-
71
- // src/object/SimpleCache.ts
72
- function createSimpleCache(map = /* @__PURE__ */ new Map(), fn) {
73
- function get(key) {
74
- let r = map.get(key);
75
- if (r === void 0 && fn !== void 0) {
76
- return set(key, fn(key));
77
- } else {
78
- return r;
79
- }
80
- }
81
- function set(key, value) {
82
- map.set(key, value);
83
- return value;
84
- }
85
- function remove(key) {
86
- return map.delete(key);
87
- }
88
- return {
89
- get,
90
- set,
91
- remove
92
- };
93
- }
94
- function createSimpleAsyncCache(type, fn, createCacheLocal = createSimpleCache) {
95
- const cache = createCacheLocal(type === "weak" ? /* @__PURE__ */ new WeakMap() : /* @__PURE__ */ new Map());
96
- const inProgress = createCacheLocal(type === "weak" ? /* @__PURE__ */ new WeakMap() : /* @__PURE__ */ new Map());
97
- const ret = {
98
- getOrUndefined: function getOrUndefined(key) {
99
- return cache.get(key);
100
- },
101
- get: async function get(key) {
102
- return cache.get(key) ?? inProgress.get(key) ?? ret.set(key, fn(key));
103
- },
104
- set: async function set(k, v) {
105
- try {
106
- const r = await inProgress.set(k, v);
107
- cache.set(k, r);
108
- inProgress.remove(k);
109
- return r;
110
- } catch (e) {
111
- inProgress.remove(k);
112
- throw e;
113
- }
114
- }
115
- };
116
- return ret;
117
- }
118
-
119
- // src/__unstable/ConjureSupport.ts
120
- var cachedAllOntologies;
121
- async function getOntologyVersionForRid(ctx, ontologyRid) {
122
- cachedAllOntologies ??= await client_unstable.loadAllOntologies(ctx, {});
123
- !cachedAllOntologies.ontologies[ontologyRid] ? process.env.NODE_ENV !== "production" ? invariant__default.default(false, "ontology should be loaded") : invariant__default.default(false) : void 0;
124
- return cachedAllOntologies.ontologies[ontologyRid].currentOntologyVersion;
125
- }
126
- var strongMemoAsync = (fn) => createSimpleAsyncCache("strong", fn).get;
127
- var weakMemoAsync = (fn) => createSimpleAsyncCache("weak", fn).get;
128
- var MetadataClient = class {
129
- #client;
130
- #ctx;
131
- #logger;
132
- constructor(client) {
133
- this.#client = client;
134
- this.#ctx = makeConjureContext(client, "ontology-metadata/api");
135
- this.#client.ontologyProvider.getObjectDefinition;
136
- this.#logger = this.#client.logger?.child({
137
- mcc: true
138
- });
139
- }
140
- forObjectByRid = strongMemoAsync(async (rid) => {
141
- return Promise.resolve({
142
- getPropertyMapping: this.#objectPropertyMapping.bind(this, rid),
143
- getLinkMapping: this.#objectLinkMapping.bind(this, rid),
144
- getRid: () => rid,
145
- getApiName: async () => (await this.#getConjureObjectType(rid)).apiName
146
- });
147
- });
148
- forObjectByApiName = strongMemoAsync(async (objectApiName) => {
149
- const objectDef = await this.#client.ontologyProvider.getObjectDefinition(objectApiName);
150
- return this.forObjectByRid(objectDef.rid);
151
- });
152
- #objectPropertyMapping = strongMemoAsync(async (objectTypeRid) => {
153
- const conjureObjectType = await this.#getConjureObjectType(objectTypeRid);
154
- return createObjectPropertyMapping(conjureObjectType);
155
- });
156
- #objectLinkMapping = strongMemoAsync(async (objectTypeRid) => {
157
- const linkTypes = await client_unstable.getLinkTypesForObjectTypes(this.#ctx, {
158
- includeObjectTypesWithoutSearchableDatasources: true,
159
- loadRedacted: false,
160
- objectTypeBranches: {},
161
- objectTypeVersions: {
162
- [objectTypeRid]: await this.ontologyVersion("")
163
- }
164
- });
165
- !linkTypes.linkTypes[objectTypeRid] ? process.env.NODE_ENV !== "production" ? invariant__default.default(false, "link type should be loaded") : invariant__default.default(false) : void 0;
166
- const ret = {};
167
- for (const l of linkTypes.linkTypes[objectTypeRid]) {
168
- const helper = ({
169
- apiName
170
- }, linkSide, otherObjectType) => {
171
- if (apiName) {
172
- ret[apiName] = {
173
- apiName,
174
- directedLinkTypeRid: {
175
- linkTypeRid: l.rid,
176
- linkSide
177
- },
178
- otherObjectType
179
- };
180
- }
181
- };
182
- if (l.definition.type === "oneToMany") {
183
- const {
184
- oneToMany: {
185
- objectTypeRidManySide,
186
- manyToOneLinkMetadata,
187
- objectTypeRidOneSide,
188
- oneToManyLinkMetadata
189
- }
190
- } = l.definition;
191
- if (objectTypeRidManySide === objectTypeRid) {
192
- helper(manyToOneLinkMetadata, "TARGET", objectTypeRidOneSide);
193
- }
194
- if (objectTypeRidOneSide === objectTypeRid) {
195
- helper(oneToManyLinkMetadata, "SOURCE", objectTypeRidManySide);
196
- }
197
- } else if (l.definition.type === "manyToMany") {
198
- const {
199
- manyToMany: {
200
- objectTypeRidA,
201
- objectTypeAToBLinkMetadata,
202
- objectTypeRidB,
203
- objectTypeBToALinkMetadata
204
- }
205
- } = l.definition;
206
- if (objectTypeRidA === objectTypeRid) {
207
- helper(objectTypeAToBLinkMetadata, "SOURCE", objectTypeRidB);
208
- }
209
- if (objectTypeRidB === objectTypeRid) {
210
- helper(objectTypeBToALinkMetadata, "TARGET", objectTypeRidA);
211
- }
212
- }
213
- }
214
- return ret;
215
- });
216
- #getConjureObjectType = strongMemoAsync(async (objectTypeRid) => {
217
- this.#logger?.debug(`getConjureObjectType(${objectTypeRid})`);
218
- const body = {
219
- datasourceTypes: [],
220
- objectTypes: [{
221
- identifier: {
222
- type: "objectTypeRid",
223
- objectTypeRid
224
- },
225
- versionReference: {
226
- type: "ontologyVersion",
227
- ontologyVersion: await this.ontologyVersion("")
228
- }
229
- }],
230
- linkTypes: [],
231
- sharedPropertyTypes: [],
232
- interfaceTypes: [],
233
- typeGroups: [],
234
- loadRedacted: false,
235
- includeObjectTypeCount: void 0,
236
- includeObjectTypesWithoutSearchableDatasources: true,
237
- includeEntityMetadata: void 0,
238
- actionTypes: [],
239
- includeTypeGroupEntitiesCount: void 0,
240
- entityMetadata: void 0
241
- };
242
- const entities = await client_unstable.bulkLoadOntologyEntities(this.#ctx, void 0, body);
243
- !entities.objectTypes[0]?.objectType ? process.env.NODE_ENV !== "production" ? invariant__default.default(false, "object type should be loaded") : invariant__default.default(false) : void 0;
244
- return entities.objectTypes[0].objectType;
245
- });
246
- ontologyVersion = strongMemoAsync(async (_) => getOntologyVersionForRid(this.#ctx, await this.#client.ontologyRid));
247
- };
248
- var metadataCacheClient = weakMemoAsync((client) => Promise.resolve(new MetadataClient(client)));
249
- function createObjectPropertyMapping(conjureOT) {
250
- !(conjureOT.primaryKeys.length === 1) ? process.env.NODE_ENV !== "production" ? invariant__default.default(false, `only one primary key supported, got ${conjureOT.primaryKeys.length}`) : invariant__default.default(false) : void 0;
251
- const pkRid = conjureOT.primaryKeys[0];
252
- const pkProperty = Object.values(conjureOT.propertyTypes).find((a) => a.rid === pkRid);
253
- if (!pkProperty) {
254
- throw new Error(`Could not find PK property by rid: ${pkRid}`);
255
- }
256
- const propertyIdToApiNameMapping = Object.fromEntries(Object.values(conjureOT.propertyTypes).map((property) => {
257
- return [property.id, property.apiName];
258
- }));
259
- const propertyApiNameToIdMapping = Object.fromEntries(Object.values(conjureOT.propertyTypes).map((property) => {
260
- return [property.apiName, property.id];
261
- }));
262
- return {
263
- apiName: conjureOT.apiName,
264
- id: conjureOT.id,
265
- propertyIdToApiNameMapping,
266
- propertyApiNameToIdMapping,
267
- pk: {
268
- rid: pkRid,
269
- apiName: pkProperty.apiName,
270
- type: pkProperty.type
271
- }
272
- };
273
- }
274
-
275
- // src/__unstable/createBulkLinksAsyncIterFactory.ts
276
- function createBulkLinksAsyncIterFactory(ctx) {
277
- return async function* (objs, linkTypes) {
278
- if (objs.length === 0) {
279
- return;
280
- }
281
- ctx.logger?.debug("Preparing to fetch bulk links");
282
- !objs.every((a) => a.$objectType === objs[0].$objectType) ? process.env.NODE_ENV !== "production" ? invariant__default.default(false) : invariant__default.default(false) : void 0;
283
- const mcc = await metadataCacheClient(ctx);
284
- const helper = await mcc.forObjectByApiName(objs[0].$objectType);
285
- const [objectTypeRid, propertyMapping, fullLinkMapping] = await Promise.all([helper.getRid(), helper.getPropertyMapping(), helper.getLinkMapping()]);
286
- const linkMapping = Object.fromEntries(Object.entries(fullLinkMapping).filter(([apiName]) => linkTypes.includes(apiName)));
287
- for (const linkType of linkTypes) {
288
- if (linkMapping[linkType] == null) {
289
- throw "Unable to find link type: " + linkType;
290
- }
291
- }
292
- const req = {
293
- objectSetContext: {
294
- forkRid: void 0,
295
- objectSetFilterContext: {
296
- parameterOverrides: {}
297
- },
298
- ontologyBranchRid: void 0,
299
- owningRid: void 0,
300
- reportUsage: void 0,
301
- workstateRid: void 0
302
- },
303
- responseOptions: {
304
- includeObjectSetEntities: true,
305
- includeUsageCost: false
306
- },
307
- pageSize: 1e3,
308
- pageToken: void 0,
309
- linksRequests: [{
310
- directedLinkTypes: Object.values(linkMapping).map(({
311
- directedLinkTypeRid
312
- }) => directedLinkTypeRid),
313
- objects: conjureUnionType("objects", objs.map((o) => conjureUnionType("objectLocatorV2", {
314
- objectTypeRid,
315
- objectPrimaryKey: {
316
- [propertyMapping.pk.rid]: conjureUnionType(propertyMapping.pk.type.type, o.$primaryKey)
317
- }
318
- })))
319
- }]
320
- };
321
- const bulkLinksIter = pageRequestAsAsyncIter(client_unstable.getBulkLinksPage.bind(void 0, makeConjureContext(ctx, "object-set-service/api")), getResults, applyPageToken, req);
322
- for await (const item of bulkLinksIter) {
323
- const {
324
- objectIdentifier
325
- } = item;
326
- const obj = findObject(objectIdentifier, objs);
327
- for (const link of item.links) {
328
- const ref = link.link[link.linkSide === "SOURCE" ? "objectSideB" : "objectSideA"];
329
- const pk = getPrimaryKeyOrThrow(ref);
330
- const otherObjectApiName = await (await mcc.forObjectByRid(pk.objectTypeRid)).getApiName();
331
- const mappedLink = Object.values(linkMapping).find((a) => a.directedLinkTypeRid.linkTypeRid === link.link.linkTypeRid && a.directedLinkTypeRid.linkSide === link.linkSide);
332
- if (!mappedLink) throw new Error("Could not find link type");
333
- yield {
334
- object: obj,
335
- linkApiName: mappedLink.apiName,
336
- otherObjectApiName,
337
- otherObjectPk: pk.pkValue
338
- };
339
- }
340
- }
341
- };
342
- }
343
- function findObject(objectIdentifier, objs) {
344
- const {
345
- pkValue
346
- } = getPrimaryKeyOrThrow(objectIdentifier);
347
- const obj = objs.find((o) => o.$primaryKey === pkValue);
348
- if (obj == null) {
349
- throw new Error(`Needed to find object with pk ${pkValue}} and could not`);
350
- }
351
- return obj;
352
- }
353
- function getPrimaryKeyOrThrow(ref) {
354
- if ("type" in ref && ref.type !== "objectLocatorV2") {
355
- throw new Error("We do not support looking up object by rid");
356
- }
357
- const pks = Object.entries(ref.objectLocatorV2.objectPrimaryKey);
358
- if (pks.length !== 1) {
359
- throw new Error("Unable to support this request due to multiple pks");
360
- }
361
- return {
362
- objectTypeRid: ref.objectLocatorV2.objectTypeRid,
363
- pkValue: pks[0][1][pks[0][1].type]
364
- };
365
- }
366
-
367
- // src/object/AttachmentUpload.ts
368
- function isAttachmentUpload(o) {
369
- return typeof o === `object` && "name" in o && "data" in o && o.data instanceof Blob;
370
- }
371
- function isAttachmentFile(o) {
372
- return typeof o === "object" && o instanceof Blob && "name" in o;
373
- }
374
- function createAttachmentUpload(data, name) {
375
- return {
376
- data,
377
- name
378
- };
379
- }
380
-
381
- // src/object/mediaUpload.ts
382
- function isMediaReference(o) {
383
- return typeof o === `object` && typeof o.mimeType === "string" && "reference" in o && typeof o.reference === "object" && o.reference.type === "mediaSetViewItem" && "mediaSetViewItem" in o.reference && typeof o.reference.mediaSetViewItem === "object" && typeof o.reference.mediaSetViewItem.mediaSetRid === "string" && typeof o.reference.mediaSetViewItem.mediaSetViewRid === "string" && typeof o.reference.mediaSetViewItem.mediaItemRid === "string";
384
- }
385
-
386
- // src/util/interfaceUtils.ts
387
- function isInterfaceActionParam(o) {
388
- return o != null && typeof o === "object" && "$objectType" in o && "$primaryKey" in o;
389
- }
390
-
391
- // src/util/isObjectSpecifiersObject.ts
392
- function isObjectSpecifiersObject(o) {
393
- return o && typeof o === "object" && typeof o.$apiName === "string" && o.$primaryKey != null;
394
- }
395
-
396
- // src/util/isOntologyObjectV2.ts
397
- function isOntologyObjectV2(o) {
398
- return o && typeof o === "object" && typeof o.__apiName === "string" && o.__primaryKey != null;
399
- }
400
-
401
- // src/util/isPoint.ts
402
- function isPoint(o) {
403
- return o && typeof o === "object" && "type" in o && o.type === "Point" && "coordinates" in o && o.coordinates.length === 2;
404
- }
405
-
406
- // src/util/toDataValue.ts
407
- async function toDataValue(value, client) {
408
- if (value == null) {
409
- return value;
410
- }
411
- if (Array.isArray(value) || value instanceof Set) {
412
- const values = Array.from(value);
413
- if (values.some((dataValue) => isAttachmentUpload(dataValue) || isAttachmentFile(dataValue))) {
414
- const converted = [];
415
- for (const value2 of values) {
416
- converted.push(await toDataValue(value2, client));
417
- }
418
- return converted;
419
- }
420
- const promiseArray = Array.from(value, async (innerValue) => await toDataValue(innerValue, client));
421
- return Promise.all(promiseArray);
422
- }
423
- if (isAttachmentUpload(value)) {
424
- const attachment = await chunkW5PFESFR_cjs.Attachment_exports.upload(client, value.data, {
425
- filename: value.name
426
- });
427
- return await toDataValue(attachment.rid, client);
428
- }
429
- if (isAttachmentFile(value)) {
430
- const attachment = await chunkW5PFESFR_cjs.Attachment_exports.upload(client, value, {
431
- filename: value.name
432
- });
433
- return await toDataValue(attachment.rid, client);
434
- }
435
- if (isOntologyObjectV2(value)) {
436
- return await toDataValue(value.__primaryKey, client);
437
- }
438
- if (isObjectSpecifiersObject(value)) {
439
- return await toDataValue(value.$primaryKey, client);
440
- }
441
- if (isPoint(value)) {
442
- return await toDataValue(value.coordinates.join(), client);
443
- }
444
- if (chunkFKI2LO2O_cjs.isWireObjectSet(value)) {
445
- return value;
446
- }
447
- if (chunkFKI2LO2O_cjs.isObjectSet(value)) {
448
- return chunkFKI2LO2O_cjs.getWireObjectSet(value);
449
- }
450
- if (isMediaReference(value)) {
451
- return value;
452
- }
453
- if (isInterfaceActionParam(value)) {
454
- return {
455
- objectTypeApiName: value.$objectType,
456
- primaryKeyValue: value.$primaryKey
457
- };
458
- }
459
- if (typeof value === "object") {
460
- return Object.entries(value).reduce(async (promisedAcc, [key, structValue]) => {
461
- const acc = await promisedAcc;
462
- acc[key] = await toDataValue(structValue, client);
463
- return acc;
464
- }, Promise.resolve({}));
465
- }
466
- return value;
467
- }
468
-
469
- // src/actions/applyAction.ts
470
- async function applyAction(client, action, parameters, options = {}) {
471
- const clientWithHeaders = chunkW5PFESFR_cjs.addUserAgentAndRequestContextHeaders(chunkFKI2LO2O_cjs.augmentRequestContext(client, (_) => ({
472
- finalMethodCall: "applyAction"
473
- })), action);
474
- if (Array.isArray(parameters)) {
475
- const response = await chunkW5PFESFR_cjs.Action_exports.applyBatch(clientWithHeaders, await client.ontologyRid, action.apiName, {
476
- requests: parameters ? await remapBatchActionParams(parameters, client) : [],
477
- options: {
478
- returnEdits: options?.$returnEdits ? "ALL" : "NONE"
479
- }
480
- });
481
- const edits = response.edits;
482
- return options?.$returnEdits ? edits?.type === "edits" ? remapActionResponse(response) : edits : void 0;
483
- } else {
484
- const response = await chunkW5PFESFR_cjs.Action_exports.apply(clientWithHeaders, await client.ontologyRid, action.apiName, {
485
- parameters: await remapActionParams(parameters, client),
486
- options: {
487
- mode: options?.$validateOnly ? "VALIDATE_ONLY" : "VALIDATE_AND_EXECUTE",
488
- returnEdits: options?.$returnEdits ? "ALL_V2_WITH_DELETIONS" : "NONE"
489
- }
490
- });
491
- if (options?.$validateOnly) {
492
- return response.validation;
493
- }
494
- if (response.validation?.result === "INVALID") {
495
- throw new ActionValidationError(response.validation);
496
- }
497
- const edits = response.edits;
498
- return options?.$returnEdits ? edits?.type === "edits" ? remapActionResponse(response) : edits : void 0;
499
- }
500
- }
501
- async function remapActionParams(params, client) {
502
- if (params == null) {
503
- return {};
504
- }
505
- const parameterMap = {};
506
- for (const [key, value] of Object.entries(params)) {
507
- parameterMap[key] = await toDataValue(value, client);
508
- }
509
- return parameterMap;
510
- }
511
- async function remapBatchActionParams(params, client) {
512
- const remappedParams = await Promise.all(params.map(async (param) => {
513
- return {
514
- parameters: await remapActionParams(param, client)
515
- };
516
- }));
517
- return remappedParams;
518
- }
519
- function remapActionResponse(response) {
520
- const editResponses = response?.edits;
521
- if (editResponses?.type === "edits") {
522
- const remappedActionResponse = {
523
- type: editResponses.type,
524
- deletedLinksCount: editResponses.deletedLinksCount,
525
- deletedObjectsCount: editResponses.deletedObjectsCount,
526
- addedLinks: [],
527
- deletedLinks: [],
528
- addedObjects: [],
529
- deletedObjects: [],
530
- modifiedObjects: [],
531
- editedObjectTypes: []
532
- };
533
- const editedObjectTypesSet = /* @__PURE__ */ new Set();
534
- for (const edit of editResponses.edits) {
535
- if (edit.type === "addLink" || edit.type === "deleteLink") {
536
- const osdkEdit = {
537
- linkTypeApiNameAtoB: edit.linkTypeApiNameAtoB,
538
- linkTypeApiNameBtoA: edit.linkTypeApiNameBtoA,
539
- aSideObject: edit.aSideObject,
540
- bSideObject: edit.bSideObject
541
- };
542
- edit.type === "addLink" ? remappedActionResponse.addedLinks.push(osdkEdit) : remappedActionResponse.deletedLinks?.push(osdkEdit);
543
- editedObjectTypesSet.add(edit.aSideObject.objectType);
544
- editedObjectTypesSet.add(edit.bSideObject.objectType);
545
- } else if (edit.type === "addObject" || edit.type === "deleteObject" || edit.type === "modifyObject") {
546
- const osdkEdit = {
547
- objectType: edit.objectType,
548
- primaryKey: edit.primaryKey
549
- };
550
- if (edit.type === "addObject") {
551
- remappedActionResponse.addedObjects.push(osdkEdit);
552
- } else if (edit.type === "deleteObject") {
553
- remappedActionResponse.deletedObjects?.push(osdkEdit);
554
- } else if (edit.type === "modifyObject") {
555
- remappedActionResponse.modifiedObjects.push(osdkEdit);
556
- }
557
- editedObjectTypesSet.add(edit.objectType);
558
- } else {
559
- if (process.env.NODE_ENV !== "production") {
560
- console.warn(`Unexpected edit type: ${JSON.stringify(edit)}`);
561
- }
562
- }
563
- }
564
- remappedActionResponse.editedObjectTypes = [...editedObjectTypesSet];
565
- return remappedActionResponse;
566
- }
567
- }
568
-
569
- // src/util/streamutils.ts
570
- var START_TOKEN = new Uint8Array([123, 34, 100, 97, 116, 97, 34, 58, 91]);
571
- var OBJECT_OPEN_CHAR_CODE = 123;
572
- var OBJECT_CLOSE_CHAR_CODE = 125;
573
- async function* parseStreamedResponse(asyncIterable) {
574
- const utf8decoder = new TextDecoder("utf-8");
575
- let parsedStart = false;
576
- let prevChunks = [];
577
- let openBracesCount = 0;
578
- for await (let chunk of asyncIterable) {
579
- let i = 0;
580
- if (!parsedStart) {
581
- parsedStart = true;
582
- if (startsWith(chunk, START_TOKEN)) {
583
- i = START_TOKEN.length;
584
- }
585
- }
586
- for (; i < chunk.length; i++) {
587
- while (openBracesCount === 0 && chunk[i] !== OBJECT_OPEN_CHAR_CODE && i < chunk.length) {
588
- i++;
589
- }
590
- let j = i;
591
- for (; j < chunk.length; j++) {
592
- const c = chunk[j];
593
- if (c === OBJECT_OPEN_CHAR_CODE) {
594
- openBracesCount++;
595
- } else if (c === OBJECT_CLOSE_CHAR_CODE) {
596
- openBracesCount--;
597
- if (0 === openBracesCount) {
598
- yield combineAndParse(utf8decoder, prevChunks, chunk.subarray(i, j + 1));
599
- prevChunks = [];
600
- i = j;
601
- break;
602
- }
603
- }
604
- }
605
- if (j === chunk.length) {
606
- prevChunks.push(chunk.subarray(i));
607
- break;
608
- }
609
- }
610
- }
611
- }
612
- function startsWith(a, b) {
613
- if (a.length < b.length) {
614
- return false;
615
- }
616
- for (let i = 0; i < b.length; i++) {
617
- if (a[i] !== b[i]) {
618
- return false;
619
- }
620
- }
621
- return true;
622
- }
623
- function combineAndParse(utf8decoder, prev, curr) {
624
- let str = "";
625
- for (const chunk of prev) {
626
- str += utf8decoder.decode(chunk, {
627
- stream: true
628
- });
629
- }
630
- str += utf8decoder.decode(curr);
631
- return JSON.parse(str);
632
- }
633
- async function* iterateReadableStream(readableStream) {
634
- let res = await readableStream.read();
635
- while (!res.done) {
636
- yield res.value;
637
- res = await readableStream.read();
638
- }
639
- }
640
-
641
- // src/util/timeseriesUtils.ts
642
- function getTimeRange(body) {
643
- if ("$startTime" in body || "$endTime" in body) {
644
- return {
645
- type: "absolute",
646
- startTime: body.$startTime,
647
- endTime: body.$endTime
648
- };
649
- }
650
- return body.$before ? {
651
- type: "relative",
652
- startTime: {
653
- when: "BEFORE",
654
- value: body.$before,
655
- unit: api.TimeseriesDurationMapping[body.$unit]
656
- }
657
- } : {
658
- type: "relative",
659
- endTime: {
660
- when: "AFTER",
661
- value: body.$after,
662
- unit: api.TimeseriesDurationMapping[body.$unit]
663
- }
664
- };
665
- }
666
- async function* asyncIterPointsHelper(iterator) {
667
- const reader = iterator.body?.getReader();
668
- for await (const point of parseStreamedResponse(iterateReadableStream(reader))) {
669
- yield {
670
- time: point.time,
671
- value: point.value
672
- };
673
- }
674
- }
675
-
676
- // src/createGeotimeSeriesProperty.ts
677
- var GeotimeSeriesPropertyImpl = class {
678
- #triplet;
679
- #client;
680
- constructor(client, objectApiName, primaryKey, propertyName, initialValue) {
681
- this.#client = client;
682
- this.#triplet = [objectApiName, primaryKey, propertyName];
683
- if (initialValue != null) {
684
- this.lastFetchedValue = initialValue;
685
- }
686
- }
687
- async getLatestValue() {
688
- const latestPointPromise = chunkW5PFESFR_cjs.TimeSeriesValueBankProperty_exports.getLatestValue(this.#client, await this.#client.ontologyRid, ...this.#triplet);
689
- latestPointPromise.then(
690
- (latestPoint) => this.lastFetchedValue = latestPoint,
691
- // eslint-disable-next-line no-console
692
- (err) => void console.error(err)
693
- );
694
- return latestPointPromise;
695
- }
696
- async getAllValues(query) {
697
- const allPoints = [];
698
- for await (const point of this.asyncIterValues(query)) {
699
- allPoints.push(point);
700
- }
701
- return allPoints;
702
- }
703
- async *asyncIterValues(query) {
704
- const streamPointsIterator = await chunkW5PFESFR_cjs.TimeSeriesValueBankProperty_exports.streamValues(this.#client, await this.#client.ontologyRid, ...this.#triplet, query ? {
705
- range: getTimeRange(query)
706
- } : {});
707
- for await (const timeseriesPoint of asyncIterPointsHelper(streamPointsIterator)) {
708
- yield timeseriesPoint;
709
- }
710
- }
711
- };
712
-
713
- // src/createMediaReferenceProperty.ts
714
- var MediaReferencePropertyImpl = class {
715
- #triplet;
716
- #client;
717
- constructor(args) {
718
- const {
719
- client,
720
- objectApiName,
721
- primaryKey,
722
- propertyName
723
- } = args;
724
- this.#client = client;
725
- this.#triplet = [objectApiName, primaryKey, propertyName];
726
- }
727
- async fetchContents() {
728
- return chunkW5PFESFR_cjs.MediaReferenceProperty_exports.getMediaContent(this.#client, await this.#client.ontologyRid, ...this.#triplet, {
729
- preview: true
730
- // TODO: Can turn this back off when backend is no longer in beta.
731
- });
732
- }
733
- async fetchMetadata() {
734
- const r = await chunkW5PFESFR_cjs.MediaReferenceProperty_exports.getMediaMetadata(this.#client, await this.#client.ontologyRid, ...this.#triplet, {
735
- preview: true
736
- // TODO: Can turn this back off when backend is no longer in beta.
737
- });
738
- return {
739
- path: r.path,
740
- sizeBytes: Number(r.sizeBytes),
741
- mediaType: r.mediaType
742
- };
743
- }
744
- };
745
-
746
- // src/createTimeseriesProperty.ts
747
- var TimeSeriesPropertyImpl = class {
748
- #triplet;
749
- #client;
750
- constructor(client, objectApiName, primaryKey, propertyName) {
751
- this.#client = client;
752
- this.#triplet = [objectApiName, primaryKey, propertyName];
753
- }
754
- async getFirstPoint() {
755
- return chunkW5PFESFR_cjs.TimeSeriesPropertyV2_exports.getFirstPoint(this.#client, await this.#client.ontologyRid, ...this.#triplet);
756
- }
757
- async getLastPoint() {
758
- return chunkW5PFESFR_cjs.TimeSeriesPropertyV2_exports.getLastPoint(this.#client, await this.#client.ontologyRid, ...this.#triplet);
759
- }
760
- async getAllPoints(query) {
761
- const allPoints = [];
762
- for await (const point of this.asyncIterPoints(query)) {
763
- allPoints.push(point);
764
- }
765
- return allPoints;
766
- }
767
- async *asyncIterPoints(query) {
768
- const streamPointsIterator = await chunkW5PFESFR_cjs.TimeSeriesPropertyV2_exports.streamPoints(this.#client, await this.#client.ontologyRid, ...this.#triplet, query ? {
769
- range: getTimeRange(query)
770
- } : {});
771
- for await (const timeseriesPoint of asyncIterPointsHelper(streamPointsIterator)) {
772
- yield timeseriesPoint;
773
- }
774
- }
775
- };
776
-
777
- // src/util/objectSpecifierUtils.ts
778
- function createObjectSpecifierFromPrimaryKey(objectDef, primaryKey) {
779
- return `${objectDef.apiName}:${primaryKey}`;
780
- }
781
- function extractPrimaryKeyFromObjectSpecifier(ObjectSpecifier) {
782
- return ObjectSpecifier.split(":")[1];
783
- }
784
-
785
- // src/ontology/OntologyProvider.ts
786
- var InterfaceDefinitions = Symbol("InterfaceDefinitions" );
787
-
788
- // src/object/convertWireToOsdkObjects/createOsdkInterface.ts
789
- function createOsdkInterface(underlying, interfaceDef) {
790
- const [objApiNamespace] = chunkFKI2LO2O_cjs.extractNamespace(interfaceDef.apiName);
791
- return Object.freeze(Object.defineProperties({}, {
792
- // first to minimize hidden classes
793
- [chunkT4NIFYZS_cjs.UnderlyingOsdkObject]: {
794
- value: underlying
795
- },
796
- "$apiName": {
797
- value: interfaceDef.apiName,
798
- enumerable: true
799
- },
800
- "$as": {
801
- value: underlying.$as,
802
- enumerable: false
803
- },
804
- "$objectType": {
805
- value: underlying.$objectType,
806
- enumerable: "$objectType" in underlying
807
- },
808
- "$primaryKey": {
809
- value: underlying.$primaryKey,
810
- enumerable: "$primaryKey" in underlying
811
- },
812
- "$objectSpecifier": {
813
- value: underlying.$objectSpecifier,
814
- enumerable: "$objectSpecifier" in underlying
815
- },
816
- "$title": {
817
- value: underlying.$title,
818
- enumerable: "$title" in underlying
819
- },
820
- "$rid": {
821
- value: underlying.$rid,
822
- enumerable: "$rid" in underlying
823
- },
824
- "$clone": {
825
- value: clone,
826
- enumerable: false
827
- },
828
- [chunkT4NIFYZS_cjs.InterfaceDefRef]: {
829
- value: interfaceDef
830
- },
831
- ...Object.fromEntries(Object.keys(interfaceDef.properties).map((p) => {
832
- const objDef = underlying[chunkT4NIFYZS_cjs.ObjectDefRef];
833
- const [apiNamespace, apiName] = chunkFKI2LO2O_cjs.extractNamespace(p);
834
- const targetPropName = objDef.interfaceMap[interfaceDef.apiName][p];
835
- return [apiNamespace === objApiNamespace ? apiName : p, {
836
- enumerable: targetPropName in underlying,
837
- value: underlying[targetPropName]
838
- }];
839
- }))
840
- }));
841
- function clone(update) {
842
- if (update == null) {
843
- return underlying.$clone().$as(interfaceDef);
844
- }
845
- for (const key of Object.keys(update)) {
846
- if (!(key in interfaceDef.properties)) {
847
- throw new Error(`Invalid property ${key} for interface ${interfaceDef.apiName}`);
848
- }
849
- }
850
- const remappedProps = Object.fromEntries(Object.keys(update).map((p) => mapProperty(p, update[p])).filter((x) => x != null));
851
- return underlying.$clone(remappedProps).$as(interfaceDef);
852
- }
853
- function mapProperty(propertyName, value) {
854
- const objDef = underlying[chunkT4NIFYZS_cjs.ObjectDefRef];
855
- const targetPropName = objDef.interfaceMap[interfaceDef.apiName][propertyName];
856
- if (targetPropName == null) {
857
- throw new Error(`Cannot clone interface with ${propertyName} as property is not implemented by the underlying object type ${objDef.apiName}`);
858
- }
859
- return [targetPropName, value];
860
- }
861
- }
862
-
863
- // src/object/convertWireToOsdkObjects/getDollarAs.ts
864
- var get$as = createSimpleCache(/* @__PURE__ */ new WeakMap(), $asFactory).get;
865
- var osdkObjectToInterfaceView = createSimpleCache(/* @__PURE__ */ new WeakMap(), () => /* @__PURE__ */ new Map());
866
- function $asFactory(objDef) {
867
- return function $as(targetMinDef) {
868
- let targetInterfaceApiName;
869
- if (typeof targetMinDef === "string") {
870
- if (targetMinDef === objDef.apiName) {
871
- return this[chunkT4NIFYZS_cjs.UnderlyingOsdkObject];
872
- }
873
- if (objDef.interfaceMap?.[targetMinDef] == null) {
874
- throw new Error(`Object does not implement interface '${targetMinDef}'.`);
875
- }
876
- targetInterfaceApiName = targetMinDef;
877
- } else if (targetMinDef.apiName === objDef.apiName) {
878
- return this[chunkT4NIFYZS_cjs.UnderlyingOsdkObject];
879
- } else {
880
- if (targetMinDef.type === "object") {
881
- throw new Error(`'${targetMinDef.apiName}' is not an interface nor is it '${objDef.apiName}', which is the object type.`);
882
- }
883
- targetInterfaceApiName = targetMinDef.apiName;
884
- }
885
- const def = objDef[InterfaceDefinitions][targetInterfaceApiName];
886
- if (!def) {
887
- throw new Error(`Object does not implement interface '${targetInterfaceApiName}'.`);
888
- }
889
- const underlying = this[chunkT4NIFYZS_cjs.UnderlyingOsdkObject];
890
- const existing = osdkObjectToInterfaceView.get(underlying).get(targetInterfaceApiName)?.deref();
891
- if (existing) return existing;
892
- const osdkInterface = createOsdkInterface(underlying, def.def);
893
- osdkObjectToInterfaceView.get(underlying).set(targetInterfaceApiName, new WeakRef(osdkInterface));
894
- return osdkInterface;
895
- };
896
- }
897
-
898
- // src/object/convertWireToOsdkObjects/getDollarLink.ts
899
- function get$link(holder) {
900
- const client = holder[chunkT4NIFYZS_cjs.ClientRef];
901
- const objDef = holder[chunkT4NIFYZS_cjs.ObjectDefRef];
902
- const rawObj = holder[chunkT4NIFYZS_cjs.UnderlyingOsdkObject];
903
- return Object.freeze(Object.fromEntries(Object.keys(objDef.links).map((linkName) => {
904
- const linkDef = objDef.links[linkName];
905
- const objectSet = client.objectSetFactory(objDef, client).where({
906
- [objDef.primaryKeyApiName]: rawObj.$primaryKey
907
- }).pivotTo(linkName);
908
- const value = !linkDef.multiplicity ? {
909
- fetchOne: (options) => chunkFKI2LO2O_cjs.fetchSingle(client, objDef, options ?? {}, chunkFKI2LO2O_cjs.getWireObjectSet(objectSet)),
910
- fetchOneWithErrors: (options) => chunkFKI2LO2O_cjs.fetchSingleWithErrors(client, objDef, options ?? {}, chunkFKI2LO2O_cjs.getWireObjectSet(objectSet))
911
- } : objectSet;
912
- return [linkName, value];
913
- })));
914
- }
915
-
916
- // src/object/convertWireToOsdkObjects/createOsdkObject.ts
917
- var specialPropertyTypes = /* @__PURE__ */ new Set(["attachment", "geotimeSeriesReference", "mediaReference", "numericTimeseries", "stringTimeseries", "sensorTimeseries"]);
918
- var basePropDefs = {
919
- "$as": {
920
- get: function() {
921
- return get$as(this[chunkT4NIFYZS_cjs.ObjectDefRef]);
922
- }
923
- },
924
- "$link": {
925
- get: function() {
926
- return get$link(this);
927
- }
928
- },
929
- "$clone": {
930
- value: function(update) {
931
- const rawObj = this[chunkT4NIFYZS_cjs.UnderlyingOsdkObject];
932
- const def = this[chunkT4NIFYZS_cjs.ObjectDefRef];
933
- if (update == null) {
934
- return createOsdkObject(this[chunkT4NIFYZS_cjs.ClientRef], def, {
935
- ...rawObj
936
- });
937
- }
938
- if (def.primaryKeyApiName in update && rawObj[def.primaryKeyApiName] !== update[def.primaryKeyApiName]) {
939
- throw new Error(`Cannot update ${def.apiName} object with differing primary key values `);
940
- }
941
- if (def.titleProperty in update && !("$title" in update)) {
942
- update.$title = update[def.titleProperty];
943
- }
944
- const newObject = {
945
- ...this[chunkT4NIFYZS_cjs.UnderlyingOsdkObject],
946
- ...update
947
- };
948
- return createOsdkObject(this[chunkT4NIFYZS_cjs.ClientRef], this[chunkT4NIFYZS_cjs.ObjectDefRef], newObject);
949
- }
950
- },
951
- "$objectSpecifier": {
952
- get: function() {
953
- const rawObj = this[chunkT4NIFYZS_cjs.UnderlyingOsdkObject];
954
- return createObjectSpecifierFromPrimaryKey(this[chunkT4NIFYZS_cjs.ObjectDefRef], rawObj.$primaryKey);
955
- },
956
- enumerable: true
957
- }
958
- };
959
- function createOsdkObject(client, objectDef, simpleOsdkProperties, derivedPropertyTypeByName = {}) {
960
- const rawObj = simpleOsdkProperties;
961
- Object.defineProperties(rawObj, {
962
- [chunkT4NIFYZS_cjs.UnderlyingOsdkObject]: {
963
- enumerable: false,
964
- value: simpleOsdkProperties
965
- },
966
- [chunkT4NIFYZS_cjs.ObjectDefRef]: {
967
- value: objectDef,
968
- enumerable: false
969
- },
970
- [chunkT4NIFYZS_cjs.ClientRef]: {
971
- value: client,
972
- enumerable: false
973
- },
974
- ...basePropDefs
975
- });
976
- for (const propKey of Object.keys(rawObj)) {
977
- if (propKey in objectDef.properties && typeof objectDef.properties[propKey].type === "string" && specialPropertyTypes.has(objectDef.properties[propKey].type)) {
978
- rawObj[propKey] = createSpecialProperty(client, objectDef, rawObj, propKey);
979
- } else if (propKey in derivedPropertyTypeByName && typeof derivedPropertyTypeByName[propKey].type === "string" && specialPropertyTypes.has(derivedPropertyTypeByName[propKey].type)) {
980
- const rawValue = rawObj[propKey];
981
- if (derivedPropertyTypeByName[propKey].type === "attachment") {
982
- if (Array.isArray(rawValue)) {
983
- rawObj[propKey] = rawValue.map((a) => chunkFKI2LO2O_cjs.hydrateAttachmentFromRidInternal(client, a.rid));
984
- } else {
985
- rawObj[propKey] = chunkFKI2LO2O_cjs.hydrateAttachmentFromRidInternal(client, rawValue.rid);
986
- }
987
- } else {
988
- process.env.NODE_ENV !== "production" ? invariant__default.default(false, "Derived property aggregations for Timeseries and Media are not supported") : invariant__default.default(false) ;
989
- }
990
- }
991
- }
992
- return Object.freeze(rawObj);
993
- }
994
- function createSpecialProperty(client, objectDef, rawObject, p) {
995
- const rawValue = rawObject[p];
996
- const propDef = objectDef.properties[p];
997
- if (process.env.NODE_ENV !== "production") {
998
- !(propDef != null && typeof propDef.type === "string" && specialPropertyTypes.has(propDef.type)) ? process.env.NODE_ENV !== "production" ? invariant__default.default(false) : invariant__default.default(false) : void 0;
999
- }
1000
- if (propDef.type === "attachment") {
1001
- if (Array.isArray(rawValue)) {
1002
- return rawValue.map((a) => chunkFKI2LO2O_cjs.hydrateAttachmentFromRidInternal(client, a.rid));
1003
- }
1004
- return chunkFKI2LO2O_cjs.hydrateAttachmentFromRidInternal(client, rawValue.rid);
1005
- }
1006
- if (propDef.type === "numericTimeseries" || propDef.type === "stringTimeseries" || propDef.type === "sensorTimeseries") {
1007
- return new TimeSeriesPropertyImpl(client, objectDef.apiName, rawObject[objectDef.primaryKeyApiName], p);
1008
- }
1009
- if (propDef.type === "geotimeSeriesReference") {
1010
- return new GeotimeSeriesPropertyImpl(client, objectDef.apiName, rawObject[objectDef.primaryKeyApiName], p, rawValue.type === "geotimeSeriesValue" ? {
1011
- time: rawValue.timestamp,
1012
- value: {
1013
- type: "Point",
1014
- coordinates: rawValue.position
1015
- }
1016
- } : void 0);
1017
- }
1018
- if (propDef.type === "mediaReference") {
1019
- return new MediaReferencePropertyImpl({
1020
- client,
1021
- objectApiName: objectDef.apiName,
1022
- primaryKey: rawObject[objectDef.primaryKeyApiName],
1023
- propertyName: p
1024
- });
1025
- }
1026
- }
1027
-
1028
- // src/object/convertWireToOsdkObjects.ts
1029
- async function convertWireToOsdkObjects(client, objects, interfaceApiName, forceRemoveRid = false, derivedPropertyTypesByName, selectedProps, strictNonNull = false) {
1030
- fixObjectPropertiesInPlace(objects, forceRemoveRid);
1031
- const ifaceDef = interfaceApiName ? await client.ontologyProvider.getInterfaceDefinition(interfaceApiName) : void 0;
1032
- const ifaceSelected = ifaceDef ? selectedProps ?? Object.keys(ifaceDef.properties) : void 0;
1033
- const ret = [];
1034
- for (const rawObj of objects) {
1035
- const objectDef = await client.ontologyProvider.getObjectDefinition(rawObj.$apiName);
1036
- !objectDef ? process.env.NODE_ENV !== "production" ? invariant__default.default(false, `Missing definition for '${rawObj.$apiName}'`) : invariant__default.default(false) : void 0;
1037
- let objProps;
1038
- let conforming = true;
1039
- if (ifaceDef && ifaceSelected) {
1040
- invariantInterfacesAsViews(objectDef, ifaceDef.apiName, client);
1041
- conforming &&= isConforming(client, ifaceDef, rawObj, ifaceSelected);
1042
- reframeAsObjectInPlace(objectDef, ifaceDef.apiName, rawObj);
1043
- objProps = convertInterfacePropNamesToObjectPropNames(objectDef, ifaceDef.apiName, ifaceSelected);
1044
- } else {
1045
- objProps = selectedProps ?? Object.keys(objectDef.properties);
1046
- }
1047
- conforming &&= isConforming(client, objectDef, rawObj, objProps);
1048
- if (strictNonNull === "throw" && !conforming) {
1049
- throw new Error("Unable to safely convert objects as some non nullable properties are null");
1050
- } else if (strictNonNull === "drop" && !conforming) {
1051
- continue;
1052
- }
1053
- let osdkObject = createOsdkObject(client, objectDef, rawObj, derivedPropertyTypesByName);
1054
- if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);
1055
- ret.push(osdkObject);
1056
- }
1057
- return ret;
1058
- }
1059
- async function convertWireToOsdkObjects2(client, objects, interfaceApiName, derivedPropertyTypeByName, forceRemoveRid = false, selectedProps, strictNonNull = false, interfaceToObjectTypeMappings = {}) {
1060
- fixObjectPropertiesInPlace(objects, forceRemoveRid);
1061
- const ret = [];
1062
- for (const rawObj of objects) {
1063
- const objectDef = await client.ontologyProvider.getObjectDefinition(rawObj.$apiName);
1064
- !objectDef ? process.env.NODE_ENV !== "production" ? invariant__default.default(false, `Missing definition for '${rawObj.$apiName}'`) : invariant__default.default(false) : void 0;
1065
- const interfaceToObjMapping = interfaceApiName ? interfaceToObjectTypeMappings[interfaceApiName][rawObj.$apiName] : void 0;
1066
- const ifaceSelected = interfaceApiName && interfaceToObjMapping ? selectedProps ? Object.keys(interfaceToObjMapping).filter((val) => {
1067
- selectedProps?.includes(interfaceToObjMapping[val]);
1068
- }) : [...Object.values(interfaceToObjMapping), objectDef.primaryKeyApiName] : void 0;
1069
- let objProps;
1070
- let conforming = true;
1071
- if (interfaceApiName && ifaceSelected) {
1072
- invariantInterfacesAsViews(objectDef, interfaceApiName, client);
1073
- objProps = ifaceSelected;
1074
- } else {
1075
- objProps = selectedProps ?? Object.keys(objectDef.properties);
1076
- }
1077
- conforming &&= isConforming(client, objectDef, rawObj, objProps);
1078
- if (strictNonNull === "throw" && !conforming) {
1079
- throw new Error("Unable to safely convert objects as some non nullable properties are null");
1080
- } else if (strictNonNull === "drop" && !conforming) {
1081
- continue;
1082
- }
1083
- let osdkObject = createOsdkObject(client, objectDef, rawObj, derivedPropertyTypeByName);
1084
- if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);
1085
- ret.push(osdkObject);
1086
- }
1087
- return ret;
1088
- }
1089
- function convertInterfacePropNamesToObjectPropNames(objectDef, interfaceApiName, ifacePropsToMap) {
1090
- return ifacePropsToMap.map((ifaceProp) => objectDef.interfaceMap[interfaceApiName][ifaceProp]);
1091
- }
1092
- function reframeAsObjectInPlace(objectDef, interfaceApiName, rawObj) {
1093
- const newProps = {};
1094
- for (const [sptProp, regularProp] of Object.entries(objectDef.interfaceMap[interfaceApiName])) {
1095
- if (sptProp in rawObj) {
1096
- const value = rawObj[sptProp];
1097
- delete rawObj[sptProp];
1098
- if (value !== void 0) {
1099
- newProps[regularProp] = value;
1100
- }
1101
- }
1102
- }
1103
- Object.assign(rawObj, newProps);
1104
- if (!(objectDef.primaryKeyApiName in rawObj)) {
1105
- rawObj[objectDef.primaryKeyApiName] = rawObj.$primaryKey;
1106
- }
1107
- }
1108
- function isConforming(client, def, obj, propsToCheck) {
1109
- for (const propName of propsToCheck) {
1110
- if (propName in def.properties && def.properties[propName].nullable === false && obj[propName] == null) {
1111
- if (process.env.NODE_ENV !== "production") {
1112
- client.logger?.debug({
1113
- obj: {
1114
- $apiName: obj["$apiName"],
1115
- $objectType: obj["$objectType"],
1116
- $primaryKey: obj["$primaryKey"]
1117
- }
1118
- }, `Found object that does not conform to its definition. Expected ${def.apiName}'s ${propName} to not be null.`);
1119
- }
1120
- return false;
1121
- }
1122
- }
1123
- return true;
1124
- }
1125
- function invariantInterfacesAsViews(objectDef, interfaceApiName, client) {
1126
- if (objectDef.interfaceMap?.[interfaceApiName] == null) {
1127
- const warning = "Interfaces are only supported 'as views' but your metadata object is missing the correct information. This suggests your interfaces have not been migrated to the newer version yet and you cannot use this version of the SDK.";
1128
- if (client.logger) {
1129
- client.logger.warn(warning);
1130
- } else {
1131
- console.error(`WARNING! ${warning}`);
1132
- }
1133
- throw new Error(warning);
1134
- }
1135
- }
1136
- function fixObjectPropertiesInPlace(objs, forceRemoveRid) {
1137
- for (const obj of objs) {
1138
- if (forceRemoveRid) {
1139
- delete obj.__rid;
1140
- }
1141
- if (obj.__rid) {
1142
- obj.$rid = obj.__rid;
1143
- delete obj.__rid;
1144
- }
1145
- obj.$apiName ??= obj.__apiName;
1146
- obj.$objectType = obj.$apiName;
1147
- obj.$primaryKey ??= obj.__primaryKey;
1148
- obj.$title ??= obj.__title;
1149
- delete obj.__apiName;
1150
- delete obj.__primaryKey;
1151
- delete obj.__title;
1152
- }
1153
- }
1154
-
1155
- // src/object/Cache.ts
1156
- function createClientCache(fn) {
1157
- const cache = /* @__PURE__ */ new WeakMap();
1158
- function get(client, key) {
1159
- if (cache.get(client.clientCacheKey) == null) {
1160
- cache.set(client.clientCacheKey, /* @__PURE__ */ new Map());
1161
- }
1162
- let r = cache.get(client.clientCacheKey).get(key);
1163
- if (r === void 0 && fn !== void 0) {
1164
- return set(client, key, fn(client, key));
1165
- } else {
1166
- return r;
1167
- }
1168
- }
1169
- function set(client, key, value) {
1170
- if (cache.get(client.clientCacheKey) == null) {
1171
- cache.set(client.clientCacheKey, /* @__PURE__ */ new Map());
1172
- }
1173
- cache.get(client.clientCacheKey).set(key, value);
1174
- return value;
1175
- }
1176
- function remove(client, key) {
1177
- if (cache.get(client.clientCacheKey) == null) return false;
1178
- return cache.get(client.clientCacheKey).delete(key);
1179
- }
1180
- return {
1181
- get,
1182
- set,
1183
- remove
1184
- };
1185
- }
1186
- function createAsyncClientCache(fn, createCacheLocal = createClientCache) {
1187
- const cache = createCacheLocal();
1188
- const inProgress = createCacheLocal();
1189
- const ret = {
1190
- getOrUndefined: function getOrUndefined(client, key) {
1191
- return cache.get(client, key);
1192
- },
1193
- get: async function get(client, key) {
1194
- return cache.get(client, key) ?? inProgress.get(client, key) ?? ret.set(client, key, fn(client, key));
1195
- },
1196
- set: async function set(client, k, v) {
1197
- try {
1198
- const r = await inProgress.set(client, k, v);
1199
- cache.set(client, k, r);
1200
- inProgress.remove(client, k);
1201
- return r;
1202
- } catch (e) {
1203
- inProgress.remove(client, k);
1204
- throw e;
1205
- }
1206
- }
1207
- };
1208
- return ret;
1209
- }
1210
- async function loadActionMetadata(client, actionType) {
1211
- const r = await chunkW5PFESFR_cjs.ActionTypeV2_exports.get(client, await client.ontologyRid, actionType);
1212
- return generatorConverters.wireActionTypeV2ToSdkActionMetadata(r);
1213
- }
1214
- async function loadFullObjectMetadata(client, objectType) {
1215
- const full = await chunkW5PFESFR_cjs.ObjectTypeV2_exports.getFullMetadata(client, await client.ontologyRid, objectType, {
1216
- preview: true
1217
- });
1218
- const ret = generatorConverters.wireObjectTypeFullMetadataToSdkObjectMetadata(full, true);
1219
- return {
1220
- ...ret
1221
- };
1222
- }
1223
- async function loadInterfaceMetadata(client, objectType) {
1224
- const r = await chunkW5PFESFR_cjs.OntologyInterface_exports.get(client, await client.ontologyRid, objectType, {
1225
- preview: true
1226
- });
1227
- return generatorConverters.__UNSTABLE_wireInterfaceTypeV2ToSdkObjectDefinition(r, true);
1228
- }
1229
- async function loadQueryMetadata(client, queryTypeApiNameAndVersion) {
1230
- const [apiName, version] = queryTypeApiNameAndVersion.split(":");
1231
- const r = await chunkW5PFESFR_cjs.QueryType_exports.get(client, await client.ontologyRid, apiName, {
1232
- version
1233
- });
1234
- return generatorConverters.wireQueryTypeV2ToSdkQueryMetadata(r);
1235
- }
1236
-
1237
- // src/ontology/StandardOntologyProvider.ts
1238
- var createStandardOntologyProviderFactory = (client) => {
1239
- return (client2) => {
1240
- async function loadObject(client3, key) {
1241
- const objectDef = await loadFullObjectMetadata(client3, key);
1242
- const interfaceDefs = Object.fromEntries((await Promise.all(objectDef.implements?.map((i) => ret.getInterfaceDefinition(i)) ?? [])).map((i) => [i.apiName, {
1243
- def: i,
1244
- handler: void 0
1245
- }]));
1246
- const fullObjectDef = {
1247
- ...objectDef,
1248
- [InterfaceDefinitions]: interfaceDefs
1249
- };
1250
- return fullObjectDef;
1251
- }
1252
- async function loadInterface(client3, key) {
1253
- return loadInterfaceMetadata(client3, key);
1254
- }
1255
- async function loadQuery(client3, key) {
1256
- return loadQueryMetadata(client3, key);
1257
- }
1258
- async function loadAction(client3, key) {
1259
- const r = await loadActionMetadata(client3, key);
1260
- return r;
1261
- }
1262
- function makeGetter(fn) {
1263
- const cache = createAsyncClientCache((client3, key) => fn(client3, key, false));
1264
- return async (apiName) => {
1265
- return await cache.get(client2, apiName);
1266
- };
1267
- }
1268
- function makeQueryGetter(client3, fn) {
1269
- const queryCache = createAsyncClientCache((client4, key) => {
1270
- return fn(client4, key);
1271
- });
1272
- return async (apiName, version) => {
1273
- const key = version ? `${apiName}:${version}` : apiName;
1274
- return await queryCache.get(client3, key);
1275
- };
1276
- }
1277
- const ret = {
1278
- getObjectDefinition: makeGetter(loadObject),
1279
- getInterfaceDefinition: makeGetter(loadInterface),
1280
- getActionDefinition: makeGetter(loadAction),
1281
- getQueryDefinition: makeQueryGetter(client2, loadQuery)
1282
- };
1283
- return ret;
1284
- };
1285
- };
1286
-
1287
- // src/util/UserAgent.ts
1288
- var USER_AGENT = `osdk-client/${"2.3.0-beta.1"}`;
1289
-
1290
- // src/createMinimalClient.ts
1291
- function createMinimalClient(metadata, baseUrl, tokenProvider, options = {}, fetchFn = global.fetch, objectSetFactory = chunkFKI2LO2O_cjs.createObjectSet, createOntologyProviderFactory = createStandardOntologyProviderFactory) {
1292
- if (process.env.NODE_ENV !== "production") {
1293
- try {
1294
- new URL(baseUrl);
1295
- } catch (e) {
1296
- const hint = !baseUrl.startsWith("http://") || !baseUrl.startsWith("https://") ? ". Did you forget to add 'http://' or 'https://'?" : "";
1297
- throw new Error(`Invalid stack URL: ${baseUrl}${hint}`);
1298
- }
1299
- }
1300
- const processedBaseUrl = new URL(baseUrl);
1301
- processedBaseUrl.pathname += processedBaseUrl.pathname.endsWith("/") ? "" : "/";
1302
- const minimalClient = {
1303
- ...shared_client_impl.createSharedClientContext(processedBaseUrl.toString(), tokenProvider, USER_AGENT, fetchFn),
1304
- objectSetFactory,
1305
- objectFactory: convertWireToOsdkObjects,
1306
- objectFactory2: convertWireToOsdkObjects2,
1307
- ontologyRid: metadata.ontologyRid,
1308
- logger: options.logger,
1309
- clientCacheKey: {},
1310
- requestContext: {}
1311
- };
1312
- return Object.freeze(Object.assign(minimalClient, {
1313
- ontologyProvider: createOntologyProviderFactory(options)(minimalClient)
1314
- }));
1315
- }
1316
-
1317
- // src/fetchMetadata.ts
1318
- var fetchMetadataInternal = async (client, definition) => {
1319
- if (definition.type === "object") {
1320
- const {
1321
- [InterfaceDefinitions]: interfaceDefs,
1322
- ...objectTypeDef
1323
- } = await client.ontologyProvider.getObjectDefinition(definition.apiName);
1324
- return objectTypeDef;
1325
- } else if (definition.type === "interface") {
1326
- return client.ontologyProvider.getInterfaceDefinition(definition.apiName);
1327
- } else if (definition.type === "action") {
1328
- return client.ontologyProvider.getActionDefinition(definition.apiName);
1329
- } else if (definition.type === "query") {
1330
- return client.ontologyProvider.getQueryDefinition(definition.apiName, definition.isFixedVersion ? definition.version : void 0);
1331
- } else {
1332
- throw new Error("Not implemented for given definition");
1333
- }
1334
- };
1335
-
1336
- // src/util/toDataValueQueries.ts
1337
- async function toDataValueQueries(value, client, desiredType) {
1338
- if (value == null) {
1339
- return value;
1340
- }
1341
- if (Array.isArray(value) && desiredType.multiplicity) {
1342
- const values = Array.from(value);
1343
- if (values.some((dataValue) => isAttachmentUpload(dataValue) || isAttachmentFile(dataValue))) {
1344
- const converted = [];
1345
- for (const value2 of values) {
1346
- converted.push(await toDataValueQueries(value2, client, desiredType));
1347
- }
1348
- return converted;
1349
- }
1350
- const promiseArray = Array.from(value, async (innerValue) => await toDataValueQueries(innerValue, client, desiredType));
1351
- return Promise.all(promiseArray);
1352
- }
1353
- switch (desiredType.type) {
1354
- case "attachment": {
1355
- if (isAttachmentUpload(value)) {
1356
- const attachment = await chunkW5PFESFR_cjs.Attachment_exports.upload(client, value.data, {
1357
- filename: value.name
1358
- });
1359
- return attachment.rid;
1360
- }
1361
- if (isAttachmentFile(value)) {
1362
- const attachment = await chunkW5PFESFR_cjs.Attachment_exports.upload(client, value, {
1363
- filename: value.name
1364
- });
1365
- return attachment.rid;
1366
- }
1367
- return value;
1368
- }
1369
- case "twoDimensionalAggregation": {
1370
- return {
1371
- groups: value
1372
- };
1373
- }
1374
- case "threeDimensionalAggregation": {
1375
- return {
1376
- groups: value
1377
- };
1378
- }
1379
- case "set": {
1380
- if (value instanceof Set) {
1381
- const promiseArray = Array.from(value, async (innerValue) => await toDataValueQueries(innerValue, client, desiredType["set"]));
1382
- return Promise.all(promiseArray);
1383
- }
1384
- break;
1385
- }
1386
- case "object": {
1387
- if (isObjectSpecifiersObject(value)) {
1388
- return value.$primaryKey;
1389
- }
1390
- break;
1391
- }
1392
- case "objectSet": {
1393
- if (chunkFKI2LO2O_cjs.isWireObjectSet(value)) {
1394
- return value;
1395
- }
1396
- if (chunkFKI2LO2O_cjs.isObjectSet(value)) {
1397
- return chunkFKI2LO2O_cjs.getWireObjectSet(value);
1398
- }
1399
- break;
1400
- }
1401
- case "map": {
1402
- if (typeof value === "object") {
1403
- const entrySet = [];
1404
- for (const [key, mapValue] of Object.entries(value)) {
1405
- entrySet.push({
1406
- key: desiredType.keyType.type === "object" ? extractPrimaryKeyFromObjectSpecifier(key) : await toDataValueQueries(key, client, desiredType.keyType),
1407
- value: await toDataValueQueries(mapValue, client, desiredType.valueType)
1408
- });
1409
- }
1410
- return entrySet;
1411
- }
1412
- break;
1413
- }
1414
- case "struct": {
1415
- if (typeof value === "object") {
1416
- const structMap = {};
1417
- for (const [key, structValue] of Object.entries(value)) {
1418
- structMap[key] = await toDataValueQueries(structValue, client, desiredType["struct"][key]);
1419
- }
1420
- return structMap;
1421
- }
1422
- }
1423
- case "boolean":
1424
- case "date":
1425
- case "double":
1426
- case "float":
1427
- case "integer":
1428
- case "long":
1429
- case "string":
1430
- case "timestamp":
1431
- return value;
1432
- }
1433
- return value;
1434
- }
1435
-
1436
- // src/queries/applyQuery.ts
1437
- async function applyQuery(client, query, params) {
1438
- const qd = await client.ontologyProvider.getQueryDefinition(query.apiName, query.isFixedVersion ? query.version : void 0);
1439
- const response = await chunkW5PFESFR_cjs.Query_exports.execute(chunkW5PFESFR_cjs.addUserAgentAndRequestContextHeaders(chunkFKI2LO2O_cjs.augmentRequestContext(client, (_) => ({
1440
- finalMethodCall: "applyQuery"
1441
- })), query), await client.ontologyRid, query.apiName, {
1442
- parameters: params ? await remapQueryParams(params, client, qd.parameters) : {}
1443
- }, {
1444
- version: qd.version
1445
- });
1446
- const objectOutputDefs = await getRequiredDefinitions(qd.output, client);
1447
- const remappedResponse = await remapQueryResponse(client, qd.output, response.value, objectOutputDefs);
1448
- return remappedResponse;
1449
- }
1450
- async function remapQueryParams(params, client, paramTypes) {
1451
- const parameterMap = {};
1452
- for (const [key, value] of Object.entries(params)) {
1453
- parameterMap[key] = await toDataValueQueries(value, client, paramTypes[key]);
1454
- }
1455
- return parameterMap;
1456
- }
1457
- async function remapQueryResponse(client, responseDataType, responseValue, definitions) {
1458
- if (responseValue == null) {
1459
- if (responseDataType.nullable) {
1460
- return void 0;
1461
- } else {
1462
- throw new Error("Got null response when nullable was not allowed");
1463
- }
1464
- }
1465
- if (responseDataType.multiplicity != null && responseDataType.multiplicity) {
1466
- const withoutMultiplicity = {
1467
- ...responseDataType,
1468
- multiplicity: false
1469
- };
1470
- for (let i = 0; i < responseValue.length; i++) {
1471
- responseValue[i] = await remapQueryResponse(client, withoutMultiplicity, responseValue[i], definitions);
1472
- }
1473
- return responseValue;
1474
- }
1475
- switch (responseDataType.type) {
1476
- case "union": {
1477
- throw new Error("Union return types are not yet supported");
1478
- }
1479
- case "set": {
1480
- for (let i = 0; i < responseValue.length; i++) {
1481
- responseValue[i] = await remapQueryResponse(client, responseDataType.set, responseValue[i], definitions);
1482
- }
1483
- return responseValue;
1484
- }
1485
- case "attachment": {
1486
- return chunkFKI2LO2O_cjs.hydrateAttachmentFromRidInternal(client, responseValue);
1487
- }
1488
- case "object": {
1489
- const def = definitions.get(responseDataType.object);
1490
- if (!def || def.type !== "object") {
1491
- throw new Error(`Missing definition for ${responseDataType.object}`);
1492
- }
1493
- return createQueryObjectResponse(responseValue, def);
1494
- }
1495
- case "objectSet": {
1496
- const def = definitions.get(responseDataType.objectSet);
1497
- if (!def) {
1498
- throw new Error(`Missing definition for ${responseDataType.objectSet}`);
1499
- }
1500
- if (typeof responseValue === "string") {
1501
- return chunkFKI2LO2O_cjs.createObjectSet(def, client, {
1502
- type: "intersect",
1503
- objectSets: [{
1504
- type: "base",
1505
- objectType: responseDataType.objectSet
1506
- }, {
1507
- type: "reference",
1508
- reference: responseValue
1509
- }]
1510
- });
1511
- }
1512
- return chunkFKI2LO2O_cjs.createObjectSet(def, client, responseValue);
1513
- }
1514
- case "struct": {
1515
- for (const [key, subtype] of Object.entries(responseDataType.struct)) {
1516
- if (requiresConversion(subtype)) {
1517
- responseValue[key] = await remapQueryResponse(client, subtype, responseValue[key], definitions);
1518
- }
1519
- }
1520
- return responseValue;
1521
- }
1522
- case "map": {
1523
- const map = {};
1524
- !Array.isArray(responseValue) ? process.env.NODE_ENV !== "production" ? invariant__default.default(false, "Expected array entry") : invariant__default.default(false) : void 0;
1525
- for (const entry of responseValue) {
1526
- !entry.key ? process.env.NODE_ENV !== "production" ? invariant__default.default(false, "Expected key") : invariant__default.default(false) : void 0;
1527
- !entry.value ? process.env.NODE_ENV !== "production" ? invariant__default.default(false, "Expected value") : invariant__default.default(false) : void 0;
1528
- const key = responseDataType.keyType.type === "object" ? getObjectSpecifier(entry.key, responseDataType.keyType.object, definitions) : entry.key;
1529
- const value = await remapQueryResponse(client, responseDataType.valueType, entry.value, definitions);
1530
- map[key] = value;
1531
- }
1532
- return map;
1533
- }
1534
- case "twoDimensionalAggregation": {
1535
- const result = [];
1536
- for (const {
1537
- key,
1538
- value
1539
- } of responseValue.groups) {
1540
- result.push({
1541
- key,
1542
- value
1543
- });
1544
- }
1545
- return result;
1546
- }
1547
- case "threeDimensionalAggregation": {
1548
- const result = [];
1549
- for (const {
1550
- key,
1551
- groups
1552
- } of responseValue.groups) {
1553
- const subResult = [];
1554
- for (const {
1555
- key: subKey,
1556
- value
1557
- } of groups) {
1558
- subResult.push({
1559
- key: subKey,
1560
- value
1561
- });
1562
- }
1563
- result.push({
1564
- key,
1565
- groups: subResult
1566
- });
1567
- }
1568
- return result;
1569
- }
1570
- }
1571
- return responseValue;
1572
- }
1573
- async function getRequiredDefinitions(dataType, client) {
1574
- const result = /* @__PURE__ */ new Map();
1575
- switch (dataType.type) {
1576
- case "objectSet": {
1577
- const objectDef = await client.ontologyProvider.getObjectDefinition(dataType.objectSet);
1578
- result.set(dataType.objectSet, objectDef);
1579
- break;
1580
- }
1581
- case "object": {
1582
- const objectDef = await client.ontologyProvider.getObjectDefinition(dataType.object);
1583
- result.set(dataType.object, objectDef);
1584
- break;
1585
- }
1586
- case "set": {
1587
- return getRequiredDefinitions(dataType.set, client);
1588
- }
1589
- case "map": {
1590
- for (const value of [dataType.keyType, dataType.valueType]) {
1591
- for (const [type, objectDef] of await getRequiredDefinitions(value, client)) {
1592
- result.set(type, objectDef);
1593
- }
1594
- }
1595
- break;
1596
- }
1597
- case "struct": {
1598
- for (const value of Object.values(dataType.struct)) {
1599
- for (const [type, objectDef] of await getRequiredDefinitions(value, client)) {
1600
- result.set(type, objectDef);
1601
- }
1602
- }
1603
- break;
1604
- }
1605
- }
1606
- return result;
1607
- }
1608
- function requiresConversion(dataType) {
1609
- switch (dataType.type) {
1610
- case "boolean":
1611
- case "date":
1612
- case "double":
1613
- case "float":
1614
- case "integer":
1615
- case "long":
1616
- case "string":
1617
- case "timestamp":
1618
- return false;
1619
- case "union":
1620
- return true;
1621
- case "struct":
1622
- return Object.values(dataType.struct).some(requiresConversion);
1623
- case "set":
1624
- return requiresConversion(dataType.set);
1625
- case "attachment":
1626
- case "objectSet":
1627
- case "twoDimensionalAggregation":
1628
- case "threeDimensionalAggregation":
1629
- case "object":
1630
- return true;
1631
- default:
1632
- return false;
1633
- }
1634
- }
1635
- function getObjectSpecifier(primaryKey, objectTypeApiName, definitions) {
1636
- const def = definitions.get(objectTypeApiName);
1637
- if (!def || def.type !== "object") {
1638
- throw new Error(`Missing definition for ${objectTypeApiName}`);
1639
- }
1640
- return createObjectSpecifierFromPrimaryKey(def, primaryKey);
1641
- }
1642
- function createQueryObjectResponse(primaryKey, objectDef) {
1643
- return {
1644
- $apiName: objectDef.apiName,
1645
- $title: void 0,
1646
- $objectType: objectDef.apiName,
1647
- $primaryKey: primaryKey,
1648
- $objectSpecifier: createObjectSpecifierFromPrimaryKey(objectDef, primaryKey)
1649
- };
1650
- }
1651
-
1652
- // src/createClient.ts
1653
- var ActionInvoker = class {
1654
- constructor(clientCtx, actionDef) {
1655
- this.applyAction = applyAction.bind(void 0, clientCtx, actionDef);
1656
- this.batchApplyAction = applyAction.bind(void 0, clientCtx, actionDef);
1657
- }
1658
- };
1659
- var QueryInvoker = class {
1660
- constructor(clientCtx, queryDef) {
1661
- this.executeFunction = applyQuery.bind(void 0, clientCtx, queryDef);
1662
- }
1663
- };
1664
- function createClientInternal(objectSetFactory, baseUrl, ontologyRid, tokenProvider, options = void 0, fetchFn = fetch) {
1665
- if (typeof ontologyRid === "string") {
1666
- if (!ontologyRid.startsWith("ri.")) {
1667
- throw new Error("Invalid ontology RID");
1668
- }
1669
- } else {
1670
- ontologyRid.then((ontologyRid2) => {
1671
- if (!ontologyRid2.startsWith("ri.")) {
1672
- throw new Error("Invalid ontology RID");
1673
- }
1674
- });
1675
- }
1676
- const clientCtx = createMinimalClient({
1677
- ontologyRid
1678
- }, baseUrl, tokenProvider, {
1679
- ...options,
1680
- logger: options?.logger ?? new chunkFKI2LO2O_cjs.MinimalLogger()
1681
- }, fetchFn, objectSetFactory);
1682
- function clientFn(o) {
1683
- if (o.type === "object" || o.type === "interface") {
1684
- return objectSetFactory(o, clientCtx);
1685
- } else if (o.type === "action") {
1686
- return new ActionInvoker(clientCtx, o);
1687
- } else if (o.type === "query") {
1688
- return new QueryInvoker(clientCtx, o);
1689
- } else if (o.type === "experiment") {
1690
- switch (o.name) {
1691
- case unstable.__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks.name:
1692
- return {
1693
- getBulkLinks: createBulkLinksAsyncIterFactory(clientCtx)
1694
- };
1695
- case unstable.__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid.name:
1696
- return {
1697
- fetchOneByRid: async (objectType, rid, options2) => {
1698
- return await chunkFKI2LO2O_cjs.fetchSingle(clientCtx, objectType, options2, createWithRid([rid]));
1699
- }
1700
- };
1701
- case unstable.__EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference.name:
1702
- return {
1703
- createMediaReference: async (args) => {
1704
- const {
1705
- data,
1706
- fileName,
1707
- objectType,
1708
- propertyType
1709
- } = args;
1710
- return await chunkW5PFESFR_cjs.MediaReferenceProperty_exports.upload(clientCtx, await clientCtx.ontologyRid, objectType.apiName, propertyType, data, {
1711
- mediaItemPath: fileName,
1712
- preview: true
1713
- });
1714
- }
1715
- };
1716
- case unstable.__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid.name:
1717
- return {
1718
- fetchPageByRid: async (objectOrInterfaceType, rids, options2 = {}) => {
1719
- return await chunkW5PFESFR_cjs.fetchPage(clientCtx, objectOrInterfaceType, options2, createWithRid(rids));
1720
- }
1721
- };
1722
- }
1723
- throw new Error("not implemented");
1724
- } else {
1725
- throw new Error("not implemented");
1726
- }
1727
- }
1728
- const fetchMetadata = fetchMetadataInternal.bind(void 0, clientCtx);
1729
- const symbolClientContext2 = "__osdkClientContext";
1730
- const client = Object.defineProperties(clientFn, {
1731
- [chunkW5PFESFR_cjs.symbolClientContext]: {
1732
- value: clientCtx
1733
- },
1734
- [symbolClientContext2]: {
1735
- value: clientCtx
1736
- },
1737
- [chunkW5PFESFR_cjs.additionalContext]: {
1738
- value: clientCtx
1739
- },
1740
- fetchMetadata: {
1741
- value: fetchMetadata
1742
- }
1743
- });
1744
- return client;
1745
- }
1746
- var createClient = createClientInternal.bind(void 0, chunkFKI2LO2O_cjs.createObjectSet);
1747
- function createWithRid(rids) {
1748
- const withRid = {
1749
- type: "static",
1750
- "objects": rids
1751
- };
1752
- return withRid;
1753
- }
1754
14
  function createPlatformClient(baseUrl, tokenProvider, options = void 0, fetchFn = fetch) {
1755
- return shared_client_impl.createSharedClientContext(baseUrl, tokenProvider, USER_AGENT, fetchFn);
15
+ return shared_client_impl.createSharedClientContext(baseUrl, tokenProvider, chunkVZ57PNLC_cjs.USER_AGENT, fetchFn);
1756
16
  }
1757
17
  var isoRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?$/;
1758
18
  var extractDate = (dateTime) => {
@@ -1774,6 +34,18 @@ var extractDateFromIsoString = (dateTime) => {
1774
34
  return dateTime.split("T")[0];
1775
35
  };
1776
36
 
37
+ Object.defineProperty(exports, "ActionValidationError", {
38
+ enumerable: true,
39
+ get: function () { return chunkVZ57PNLC_cjs.ActionValidationError; }
40
+ });
41
+ Object.defineProperty(exports, "createAttachmentUpload", {
42
+ enumerable: true,
43
+ get: function () { return chunkVZ57PNLC_cjs.createAttachmentUpload; }
44
+ });
45
+ Object.defineProperty(exports, "createClient", {
46
+ enumerable: true,
47
+ get: function () { return chunkVZ57PNLC_cjs.createClient; }
48
+ });
1777
49
  Object.defineProperty(exports, "isOk", {
1778
50
  enumerable: true,
1779
51
  get: function () { return api.isOk; }
@@ -1782,9 +54,6 @@ Object.defineProperty(exports, "PalantirApiError", {
1782
54
  enumerable: true,
1783
55
  get: function () { return shared_net_errors.PalantirApiError; }
1784
56
  });
1785
- exports.ActionValidationError = ActionValidationError;
1786
- exports.createAttachmentUpload = createAttachmentUpload;
1787
- exports.createClient = createClient;
1788
57
  exports.createPlatformClient = createPlatformClient;
1789
58
  exports.extractDate = extractDate;
1790
59
  exports.extractDateInLocalTime = extractDateInLocalTime;