@osdk/client 2.2.0-beta.16 → 2.2.0-beta.18

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 (147) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/build/browser/MinimalClientContext.js.map +1 -1
  3. package/build/browser/actions/actions.test.js +18 -2
  4. package/build/browser/actions/actions.test.js.map +1 -1
  5. package/build/browser/actions/applyAction.js.map +1 -1
  6. package/build/browser/createClient.js.map +1 -1
  7. package/build/browser/createMinimalClient.js.map +1 -1
  8. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +36 -13
  9. package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  10. package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js +133 -0
  11. package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
  12. package/build/browser/derivedProperties/derivedPropertyDefinitionFactory.js +94 -0
  13. package/build/browser/derivedProperties/derivedPropertyDefinitionFactory.js.map +1 -0
  14. package/build/browser/index.js.map +1 -1
  15. package/build/browser/intellisense.test.helpers/showsObjectPropertyJsdoc.js +25 -0
  16. package/build/browser/intellisense.test.helpers/showsObjectPropertyJsdoc.js.map +1 -0
  17. package/build/browser/intellisense.test.js +12 -0
  18. package/build/browser/intellisense.test.js.map +1 -1
  19. package/build/browser/logger/BaseLogger.js.map +1 -1
  20. package/build/browser/logger/BrowserLogger.js.map +1 -1
  21. package/build/browser/logger/MinimalLogger.js.map +1 -1
  22. package/build/browser/logger/TestLogger.js.map +1 -1
  23. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
  24. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  25. package/build/browser/objectSet/ObjectSet.test.js +1 -6
  26. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  27. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  28. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +4 -1
  29. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  30. package/build/browser/objectSet/createObjectSet.js +1 -1
  31. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  32. package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -1
  33. package/build/browser/observable/internal/ListQuery.js.map +1 -1
  34. package/build/browser/observable/internal/Query.js.map +1 -1
  35. package/build/browser/observable/internal/Store.js.map +1 -1
  36. package/build/browser/observable/internal/testUtils.js +2 -2
  37. package/build/browser/observable/internal/testUtils.js.map +1 -1
  38. package/build/browser/queries/applyQuery.js.map +1 -1
  39. package/build/browser/queries/queries.test.js.map +1 -1
  40. package/build/browser/queries/types.js.map +1 -1
  41. package/build/browser/tsserver.js.map +1 -1
  42. package/build/browser/util/UserAgent.js +1 -1
  43. package/build/browser/util/isPoint.js +20 -0
  44. package/build/browser/util/isPoint.js.map +1 -0
  45. package/build/browser/util/toDataValue.js +4 -0
  46. package/build/browser/util/toDataValue.js.map +1 -1
  47. package/build/cjs/{Client-DBTcM9gB.d.cts → Client-C6Gohd1t.d.cts} +6 -7
  48. package/build/cjs/{chunk-6KYD7ZWT.cjs → chunk-33GHS3X4.cjs} +141 -44
  49. package/build/cjs/chunk-33GHS3X4.cjs.map +1 -0
  50. package/build/cjs/{chunk-KAJABLKV.cjs → chunk-37QC7LR3.cjs} +14 -14
  51. package/build/cjs/{chunk-KAJABLKV.cjs.map → chunk-37QC7LR3.cjs.map} +1 -1
  52. package/build/cjs/index.cjs +55 -47
  53. package/build/cjs/index.cjs.map +1 -1
  54. package/build/cjs/index.d.cts +4 -5
  55. package/build/cjs/public/internal.cjs +8 -8
  56. package/build/cjs/public/internal.d.cts +11 -12
  57. package/build/cjs/public/unstable-do-not-use.cjs +8 -8
  58. package/build/cjs/public/unstable-do-not-use.d.cts +1 -1
  59. package/build/esm/MinimalClientContext.js.map +1 -1
  60. package/build/esm/actions/actions.test.js +18 -2
  61. package/build/esm/actions/actions.test.js.map +1 -1
  62. package/build/esm/actions/applyAction.js.map +1 -1
  63. package/build/esm/createClient.js.map +1 -1
  64. package/build/esm/createMinimalClient.js.map +1 -1
  65. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +36 -13
  66. package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
  67. package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js +133 -0
  68. package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
  69. package/build/esm/derivedProperties/derivedPropertyDefinitionFactory.js +94 -0
  70. package/build/esm/derivedProperties/derivedPropertyDefinitionFactory.js.map +1 -0
  71. package/build/esm/index.js.map +1 -1
  72. package/build/esm/intellisense.test.helpers/showsObjectPropertyJsdoc.js +25 -0
  73. package/build/esm/intellisense.test.helpers/showsObjectPropertyJsdoc.js.map +1 -0
  74. package/build/esm/intellisense.test.js +12 -0
  75. package/build/esm/intellisense.test.js.map +1 -1
  76. package/build/esm/logger/BaseLogger.js.map +1 -1
  77. package/build/esm/logger/BrowserLogger.js.map +1 -1
  78. package/build/esm/logger/MinimalLogger.js.map +1 -1
  79. package/build/esm/logger/TestLogger.js.map +1 -1
  80. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
  81. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  82. package/build/esm/objectSet/ObjectSet.test.js +1 -6
  83. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  84. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  85. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +4 -1
  86. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  87. package/build/esm/objectSet/createObjectSet.js +1 -1
  88. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  89. package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -1
  90. package/build/esm/observable/internal/ListQuery.js.map +1 -1
  91. package/build/esm/observable/internal/Query.js.map +1 -1
  92. package/build/esm/observable/internal/Store.js.map +1 -1
  93. package/build/esm/observable/internal/testUtils.js +2 -2
  94. package/build/esm/observable/internal/testUtils.js.map +1 -1
  95. package/build/esm/queries/applyQuery.js.map +1 -1
  96. package/build/esm/queries/queries.test.js.map +1 -1
  97. package/build/esm/queries/types.js.map +1 -1
  98. package/build/esm/tsserver.js.map +1 -1
  99. package/build/esm/util/UserAgent.js +1 -1
  100. package/build/esm/util/isPoint.js +20 -0
  101. package/build/esm/util/isPoint.js.map +1 -0
  102. package/build/esm/util/toDataValue.js +4 -0
  103. package/build/esm/util/toDataValue.js.map +1 -1
  104. package/build/types/MinimalClientContext.d.ts +1 -1
  105. package/build/types/MinimalClientContext.d.ts.map +1 -1
  106. package/build/types/actions/applyAction.d.ts +1 -2
  107. package/build/types/actions/applyAction.d.ts.map +1 -1
  108. package/build/types/createClient.d.ts +1 -1
  109. package/build/types/createClient.d.ts.map +1 -1
  110. package/build/types/derivedProperties/derivedPropertyDefinitionFactory.d.ts +1 -0
  111. package/build/types/derivedProperties/derivedPropertyDefinitionFactory.d.ts.map +1 -0
  112. package/build/types/index.d.ts +1 -2
  113. package/build/types/index.d.ts.map +1 -1
  114. package/build/types/intellisense.test.helpers/showsObjectPropertyJsdoc.d.ts +1 -0
  115. package/build/types/intellisense.test.helpers/showsObjectPropertyJsdoc.d.ts.map +1 -0
  116. package/build/types/logger/BaseLogger.d.ts +7 -8
  117. package/build/types/logger/BaseLogger.d.ts.map +1 -1
  118. package/build/types/logger/BrowserLogger.d.ts +1 -2
  119. package/build/types/logger/BrowserLogger.d.ts.map +1 -1
  120. package/build/types/logger/MinimalLogger.d.ts +2 -2
  121. package/build/types/logger/MinimalLogger.d.ts.map +1 -1
  122. package/build/types/logger/TestLogger.d.ts +2 -2
  123. package/build/types/logger/TestLogger.d.ts.map +1 -1
  124. package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -1
  125. package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
  126. package/build/types/observable/internal/Query.d.ts +1 -1
  127. package/build/types/observable/internal/Query.d.ts.map +1 -1
  128. package/build/types/observable/internal/Store.d.ts.map +1 -1
  129. package/build/types/observable/internal/testUtils.d.ts +1 -2
  130. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  131. package/build/types/queries/applyQuery.d.ts +4 -2
  132. package/build/types/queries/applyQuery.d.ts.map +1 -1
  133. package/build/types/queries/types.d.ts +1 -1
  134. package/build/types/queries/types.d.ts.map +1 -1
  135. package/build/types/tsserver.d.ts +1 -1
  136. package/build/types/tsserver.d.ts.map +1 -1
  137. package/build/types/util/isPoint.d.ts +1 -0
  138. package/build/types/util/isPoint.d.ts.map +1 -0
  139. package/package.json +9 -9
  140. package/build/browser/logger/Logger.js +0 -2
  141. package/build/browser/logger/Logger.js.map +0 -1
  142. package/build/cjs/Logger-a5UcHtrk.d.cts +0 -19
  143. package/build/cjs/chunk-6KYD7ZWT.cjs.map +0 -1
  144. package/build/esm/logger/Logger.js +0 -2
  145. package/build/esm/logger/Logger.js.map +0 -1
  146. package/build/types/logger/Logger.d.ts +0 -17
  147. package/build/types/logger/Logger.d.ts.map +0 -1
@@ -1,28 +1,28 @@
1
1
  'use strict';
2
2
 
3
- var chunkKAJABLKV_cjs = require('./chunk-KAJABLKV.cjs');
3
+ var chunk37QC7LR3_cjs = require('./chunk-37QC7LR3.cjs');
4
4
  var shared_net_errors = require('@osdk/shared.net.errors');
5
- var invariant5 = require('tiny-invariant');
5
+ var invariant3 = require('tiny-invariant');
6
6
  var api = require('@osdk/api');
7
7
  var WebSocket = require('isomorphic-ws');
8
8
 
9
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
10
 
11
- var invariant5__default = /*#__PURE__*/_interopDefault(invariant5);
11
+ var invariant3__default = /*#__PURE__*/_interopDefault(invariant3);
12
12
  var WebSocket__default = /*#__PURE__*/_interopDefault(WebSocket);
13
13
 
14
14
  // src/public-utils/hydrateAttachmentFromRid.ts
15
15
  function hydrateAttachmentFromRid(client, rid) {
16
- return hydrateAttachmentFromRidInternal(client[chunkKAJABLKV_cjs.additionalContext], rid);
16
+ return hydrateAttachmentFromRidInternal(client[chunk37QC7LR3_cjs.additionalContext], rid);
17
17
  }
18
18
  function hydrateAttachmentFromRidInternal(client, rid) {
19
19
  return {
20
20
  rid,
21
21
  async fetchContents() {
22
- return chunkKAJABLKV_cjs.Attachment_exports.read(client, rid);
22
+ return chunk37QC7LR3_cjs.Attachment_exports.read(client, rid);
23
23
  },
24
24
  async fetchMetadata() {
25
- const r = await chunkKAJABLKV_cjs.Attachment_exports.get(client, rid);
25
+ const r = await chunk37QC7LR3_cjs.Attachment_exports.get(client, rid);
26
26
  return {
27
27
  ...r,
28
28
  sizeBytes: Number(r.sizeBytes)
@@ -98,7 +98,7 @@ var MinimalLogger = class _MinimalLogger extends BaseLogger {
98
98
  }
99
99
  };
100
100
  async function fetchSingle(client, objectType, args, objectSet) {
101
- const result = await chunkKAJABLKV_cjs.fetchPage(client, objectType, {
101
+ const result = await chunk37QC7LR3_cjs.fetchPage(client, objectType, {
102
102
  ...args,
103
103
  $pageSize: 1
104
104
  }, objectSet);
@@ -193,7 +193,7 @@ function makeGeoFilterPolygon(coordinates, filterType, propertyIdentifier, field
193
193
  };
194
194
  }
195
195
  function handleWherePair([fieldName, filter], objectOrInterface, structFieldSelector) {
196
- !(filter != null) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Defined key values are only allowed when they are not undefined.") : invariant5__default.default(false) : undefined;
196
+ !(filter != null) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Defined key values are only allowed when they are not undefined.") : invariant3__default.default(false) : undefined;
197
197
  const propertyIdentifier = structFieldSelector != null ? {
198
198
  type: "structField",
199
199
  ...structFieldSelector,
@@ -212,10 +212,10 @@ function handleWherePair([fieldName, filter], objectOrInterface, structFieldSele
212
212
  }
213
213
  const keysOfFilter = Object.keys(filter);
214
214
  const hasDollarSign = keysOfFilter.some((key) => key.startsWith("$"));
215
- !(!hasDollarSign || keysOfFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "A WhereClause Filter with multiple clauses/fields is not allowed. Instead, use an 'or'/'and' clause to combine multiple filters.") : invariant5__default.default(false) : undefined;
215
+ !(!hasDollarSign || keysOfFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "A WhereClause Filter with multiple clauses/fields is not allowed. Instead, use an 'or'/'and' clause to combine multiple filters.") : invariant3__default.default(false) : undefined;
216
216
  if (!hasDollarSign) {
217
217
  const structFilter = Object.entries(filter);
218
- !(structFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Cannot filter on more than one struct field in the same clause, need to use an and clause") : invariant5__default.default(false) : undefined;
218
+ !(structFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Cannot filter on more than one struct field in the same clause, need to use an and clause") : invariant3__default.default(false) : undefined;
219
219
  const structFieldApiName = keysOfFilter[0];
220
220
  return handleWherePair(Object.entries(filter)[0], objectOrInterface, {
221
221
  propertyApiName: fieldName,
@@ -223,7 +223,7 @@ function handleWherePair([fieldName, filter], objectOrInterface, structFieldSele
223
223
  });
224
224
  }
225
225
  const firstKey = keysOfFilter[0];
226
- !(filter[firstKey] != null) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false) : invariant5__default.default(false) : undefined;
226
+ !(filter[firstKey] != null) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false) : invariant3__default.default(false) : undefined;
227
227
  if (firstKey === "$ne") {
228
228
  return {
229
229
  type: "not",
@@ -305,10 +305,84 @@ function fullyQualifyPropName(fieldName, objectOrInterface) {
305
305
  }
306
306
  return fieldName;
307
307
  }
308
+ function derivedPropertyDefinitionFactory(wireDefinition, definitionMap) {
309
+ const definition = {
310
+ abs() {
311
+ return derivedPropertyDefinitionFactory({
312
+ type: "absoluteValue",
313
+ property: wireDefinition
314
+ }, definitionMap);
315
+ },
316
+ negate() {
317
+ return derivedPropertyDefinitionFactory({
318
+ type: "negate",
319
+ property: wireDefinition
320
+ }, definitionMap);
321
+ },
322
+ max(value) {
323
+ return derivedPropertyDefinitionFactory({
324
+ type: "greatest",
325
+ properties: [wireDefinition, getDefinitionFromMap(value, definitionMap)]
326
+ }, definitionMap);
327
+ },
328
+ min(value) {
329
+ return derivedPropertyDefinitionFactory({
330
+ type: "least",
331
+ properties: [wireDefinition, getDefinitionFromMap(value, definitionMap)]
332
+ }, definitionMap);
333
+ },
334
+ add(value) {
335
+ return derivedPropertyDefinitionFactory({
336
+ type: "add",
337
+ properties: [wireDefinition, getDefinitionFromMap(value, definitionMap)]
338
+ }, definitionMap);
339
+ },
340
+ subtract(value) {
341
+ return derivedPropertyDefinitionFactory({
342
+ "type": "subtract",
343
+ "left": wireDefinition,
344
+ "right": getDefinitionFromMap(value, definitionMap)
345
+ }, definitionMap);
346
+ },
347
+ multiply(value) {
348
+ return derivedPropertyDefinitionFactory({
349
+ type: "multiply",
350
+ properties: [wireDefinition, getDefinitionFromMap(value, definitionMap)]
351
+ }, definitionMap);
352
+ },
353
+ divide(value) {
354
+ return derivedPropertyDefinitionFactory({
355
+ "type": "subtract",
356
+ "left": wireDefinition,
357
+ "right": getDefinitionFromMap(value, definitionMap)
358
+ }, definitionMap);
359
+ },
360
+ extractPart: (part) => {
361
+ return derivedPropertyDefinitionFactory({
362
+ type: "extract",
363
+ part,
364
+ property: wireDefinition
365
+ }, definitionMap);
366
+ },
367
+ type: {}
368
+ };
369
+ definitionMap.set(definition, wireDefinition);
370
+ return definition;
371
+ }
372
+ var getDefinitionFromMap = (arg, definitionMap) => {
373
+ if (typeof arg === "object") {
374
+ const definition = definitionMap.get(arg);
375
+ !definition ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Derived Property is not defined") : invariant3__default.default(false) : undefined;
376
+ return definition;
377
+ } else if (typeof arg === "number") {
378
+ process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Literals for derived properties are not yet supported") : invariant3__default.default(false) ;
379
+ }
380
+ process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Invalid argument type for a derived property") : invariant3__default.default(false) ;
381
+ };
308
382
 
309
383
  // src/derivedProperties/createWithPropertiesObjectSet.ts
310
- function createWithPropertiesObjectSet(objectType, objectSet, definitionMap) {
311
- const base = {
384
+ function createWithPropertiesObjectSet(objectType, objectSet, definitionMap, fromBaseObjectSet = false) {
385
+ return {
312
386
  pivotTo: (link) => {
313
387
  return createWithPropertiesObjectSet(objectType, {
314
388
  type: "searchAround",
@@ -325,7 +399,7 @@ function createWithPropertiesObjectSet(objectType, objectSet, definitionMap) {
325
399
  },
326
400
  aggregate: (aggregation, opt) => {
327
401
  const splitAggregation = aggregation.split(":");
328
- !(splitAggregation.length === 2 || splitAggregation[0] === "$count") ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Invalid aggregation format") : invariant5__default.default(false) : undefined;
402
+ !(splitAggregation.length === 2 || splitAggregation[0] === "$count") ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Invalid aggregation format") : invariant3__default.default(false) : undefined;
329
403
  const [aggregationPropertyName, aggregationOperation] = splitAggregation;
330
404
  let aggregationOperationDefinition;
331
405
  switch (aggregationOperation) {
@@ -363,34 +437,57 @@ function createWithPropertiesObjectSet(objectType, objectSet, definitionMap) {
363
437
  break;
364
438
  }
365
439
  default:
366
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Invalid aggregation operation " + aggregationOperation) : invariant5__default.default(false) ;
440
+ process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Invalid aggregation operation " + aggregationOperation) : invariant3__default.default(false) ;
367
441
  }
368
- const selectorResult = {
369
- type: {}
370
- };
371
- definitionMap.set(selectorResult, {
442
+ const wrappedObjectSet = {
372
443
  type: "selection",
373
444
  objectSet,
374
445
  operation: aggregationOperationDefinition
375
- });
446
+ };
447
+ const selectorResult = derivedPropertyDefinitionFactory(wrappedObjectSet, definitionMap);
448
+ definitionMap.set(selectorResult, wrappedObjectSet);
376
449
  return selectorResult;
377
450
  },
378
451
  selectProperty: (name) => {
379
- const selectorResult = {
380
- type: {}
381
- };
382
- definitionMap.set(selectorResult, {
452
+ if (fromBaseObjectSet) {
453
+ const wrappedObjectSet2 = {
454
+ type: "property",
455
+ apiName: name
456
+ };
457
+ const selectorResult2 = derivedPropertyDefinitionFactory(wrappedObjectSet2, definitionMap);
458
+ definitionMap.set(selectorResult2, wrappedObjectSet2);
459
+ return selectorResult2;
460
+ }
461
+ const wrappedObjectSet = {
383
462
  type: "selection",
384
463
  objectSet,
385
464
  operation: {
386
465
  type: "get",
387
466
  selectedPropertyApiName: name
388
467
  }
389
- });
468
+ };
469
+ const selectorResult = derivedPropertyDefinitionFactory(wrappedObjectSet, definitionMap);
470
+ definitionMap.set(selectorResult, wrappedObjectSet);
390
471
  return selectorResult;
472
+ },
473
+ constant: {
474
+ double: (value) => {
475
+ process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Not supported") : invariant3__default.default(false) ;
476
+ },
477
+ integer: (value) => {
478
+ process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Not supported") : invariant3__default.default(false) ;
479
+ },
480
+ long: (value) => {
481
+ process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Not supported") : invariant3__default.default(false) ;
482
+ },
483
+ datetime: (value) => {
484
+ process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Not supported") : invariant3__default.default(false) ;
485
+ },
486
+ timestamp: (value) => {
487
+ process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Not supported") : invariant3__default.default(false) ;
488
+ }
391
489
  }
392
490
  };
393
- return base;
394
491
  }
395
492
  function legacyToModernSingleAggregationResult(entry) {
396
493
  return entry.metrics.reduce((accumulator, curValue) => {
@@ -398,7 +495,7 @@ function legacyToModernSingleAggregationResult(entry) {
398
495
  if (parts[0] === "count") {
399
496
  return accumulator;
400
497
  }
401
- !(parts.length === 2) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "assumed we were getting a `${key}.${type}`") : invariant5__default.default(false) : undefined;
498
+ !(parts.length === 2) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "assumed we were getting a `${key}.${type}`") : invariant3__default.default(false) : undefined;
402
499
  const property = parts[0];
403
500
  const metricType = parts[1];
404
501
  if (!(property in accumulator)) {
@@ -484,8 +581,8 @@ function convertRange(range) {
484
581
  }
485
582
 
486
583
  // src/object/aggregate.ts
487
- async function aggregate(clientCtx, objectType, objectSet = chunkKAJABLKV_cjs.resolveBaseObjectSetType(objectType), req) {
488
- chunkKAJABLKV_cjs.resolveBaseObjectSetType(objectType);
584
+ async function aggregate(clientCtx, objectType, objectSet = chunk37QC7LR3_cjs.resolveBaseObjectSetType(objectType), req) {
585
+ chunk37QC7LR3_cjs.resolveBaseObjectSetType(objectType);
489
586
  const body = {
490
587
  aggregation: modernToLegacyAggregationClause(req.$select),
491
588
  groupBy: [],
@@ -494,13 +591,13 @@ async function aggregate(clientCtx, objectType, objectSet = chunkKAJABLKV_cjs.re
494
591
  if (req.$groupBy) {
495
592
  body.groupBy = modernToLegacyGroupByClause(req.$groupBy);
496
593
  }
497
- const result = await chunkKAJABLKV_cjs.OntologyObjectSet_exports.aggregate(chunkKAJABLKV_cjs.addUserAgentAndRequestContextHeaders(clientCtx, objectType), await clientCtx.ontologyRid, {
594
+ const result = await chunk37QC7LR3_cjs.OntologyObjectSet_exports.aggregate(chunk37QC7LR3_cjs.addUserAgentAndRequestContextHeaders(clientCtx, objectType), await clientCtx.ontologyRid, {
498
595
  objectSet,
499
596
  groupBy: body.groupBy,
500
597
  aggregation: body.aggregation
501
598
  });
502
599
  if (!req.$groupBy) {
503
- !(result.data.length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "no group by clause should mean only one data result") : invariant5__default.default(false) : undefined;
600
+ !(result.data.length === 1) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "no group by clause should mean only one data result") : invariant3__default.default(false) : undefined;
504
601
  return {
505
602
  ...aggregationToCountResult(result.data[0]),
506
603
  ...legacyToModernSingleAggregationResult(result.data[0])
@@ -596,7 +693,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
596
693
  this.#logger = client.logger?.child({}, {
597
694
  msgPrefix: "<OSW> "
598
695
  });
599
- !(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Stack must be a URL") : invariant5__default.default(false) : undefined;
696
+ !(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Stack must be a URL") : invariant3__default.default(false) : undefined;
600
697
  }
601
698
  async subscribe(objectType, objectSet, listener, properties = []) {
602
699
  const objOrInterfaceDef = objectType.type === "object" ? await this.#client.ontologyProvider.getObjectDefinition(objectType.apiName) : await this.#client.ontologyProvider.getInterfaceDefinition(objectType.apiName);
@@ -778,7 +875,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
778
875
  return;
779
876
  }
780
877
  default:
781
- process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Unexpected message type") : invariant5__default.default(false) ;
878
+ process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Unexpected message type") : invariant3__default.default(false) ;
782
879
  }
783
880
  };
784
881
  #handleMessage_objectSetChanged = async (payload) => {
@@ -843,7 +940,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
843
940
  }
844
941
  #handleMessage_refreshObjectSet = (payload) => {
845
942
  const sub = this.#subscriptions.get(payload.id);
846
- !sub ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Expected subscription id ${payload.id}`) : invariant5__default.default(false) : undefined;
943
+ !sub ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, `Expected subscription id ${payload.id}`) : invariant3__default.default(false) : undefined;
847
944
  try {
848
945
  sub.listener.onOutOfDate();
849
946
  } catch (error) {
@@ -857,7 +954,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
857
954
  responses
858
955
  } = payload;
859
956
  const subs = this.#pendingSubscriptions.get(id);
860
- !subs ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `should have a pending subscription for ${id}`) : invariant5__default.default(false) : undefined;
957
+ !subs ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, `should have a pending subscription for ${id}`) : invariant3__default.default(false) : undefined;
861
958
  this.#pendingSubscriptions.delete(id);
862
959
  for (let i = 0; i < responses.length; i++) {
863
960
  const sub = subs[i];
@@ -899,7 +996,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
899
996
  #handleMessage_subscriptionClosed(payload) {
900
997
  const sub = this.#subscriptions.get(payload.id);
901
998
  if (sub == null && this.#endedSubscriptions.has(payload.id)) return;
902
- !sub ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Expected subscription id ${payload.id}`) : invariant5__default.default(false) : undefined;
999
+ !sub ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, `Expected subscription id ${payload.id}`) : invariant3__default.default(false) : undefined;
903
1000
  this.#tryCatchOnError(sub, true, payload.cause);
904
1001
  this.#unsubscribe(sub, "error");
905
1002
  }
@@ -924,7 +1021,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
924
1021
  if (this.#subscriptions.size > 0) {
925
1022
  if (process.env.NODE_ENV !== "production") {
926
1023
  for (const s of this.#subscriptions.values()) {
927
- !(s.status !== "done" && s.status !== "error") ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "should not have done/error subscriptions still") : invariant5__default.default(false) : undefined;
1024
+ !(s.status !== "done" && s.status !== "error") ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "should not have done/error subscriptions still") : invariant3__default.default(false) : undefined;
928
1025
  }
929
1026
  }
930
1027
  for (const s of this.#subscriptions.values()) {
@@ -973,15 +1070,15 @@ function getWireObjectSet(objectSet) {
973
1070
  return objectSetDefinitions.get(objectSet);
974
1071
  }
975
1072
  var objectSetDefinitions = /* @__PURE__ */ new WeakMap();
976
- function createObjectSet(objectType, clientCtx, objectSet = chunkKAJABLKV_cjs.resolveBaseObjectSetType(objectType)) {
1073
+ function createObjectSet(objectType, clientCtx, objectSet = chunk37QC7LR3_cjs.resolveBaseObjectSetType(objectType)) {
977
1074
  const base = {
978
1075
  aggregate: aggregate.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
979
1076
  finalMethodCall: "aggregate"
980
1077
  })), objectType, objectSet),
981
- fetchPage: chunkKAJABLKV_cjs.fetchPageInternal.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
1078
+ fetchPage: chunk37QC7LR3_cjs.fetchPageInternal.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
982
1079
  finalMethodCall: "fetchPage"
983
1080
  })), objectType, objectSet),
984
- fetchPageWithErrors: chunkKAJABLKV_cjs.fetchPageWithErrorsInternal.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
1081
+ fetchPageWithErrors: chunk37QC7LR3_cjs.fetchPageWithErrorsInternal.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
985
1082
  finalMethodCall: "fetchPageWithErrors"
986
1083
  })), objectType, objectSet),
987
1084
  where: (clause) => {
@@ -1015,7 +1112,7 @@ function createObjectSet(objectType, clientCtx, objectSet = chunkKAJABLKV_cjs.re
1015
1112
  asyncIter: async function* (args) {
1016
1113
  let $nextPageToken = undefined;
1017
1114
  do {
1018
- const result = await chunkKAJABLKV_cjs.fetchPageInternal(augmentRequestContext(clientCtx, (_) => ({
1115
+ const result = await chunk37QC7LR3_cjs.fetchPageInternal(augmentRequestContext(clientCtx, (_) => ({
1019
1116
  finalMethodCall: "asyncIter"
1020
1117
  })), objectType, objectSet, {
1021
1118
  ...args,
@@ -1050,7 +1147,7 @@ function createObjectSet(objectType, clientCtx, objectSet = chunkKAJABLKV_cjs.re
1050
1147
  for (const key of Object.keys(clause)) {
1051
1148
  const derivedPropertyDefinition = clause[key](createWithPropertiesObjectSet(objectType, {
1052
1149
  type: "methodInput"
1053
- }, definitionMap));
1150
+ }, definitionMap, true));
1054
1151
  derivedProperties[key] = definitionMap.get(derivedPropertyDefinition);
1055
1152
  }
1056
1153
  return clientCtx.objectSetFactory(objectType, clientCtx, {
@@ -1101,5 +1198,5 @@ exports.hydrateAttachmentFromRid = hydrateAttachmentFromRid;
1101
1198
  exports.hydrateAttachmentFromRidInternal = hydrateAttachmentFromRidInternal;
1102
1199
  exports.isObjectSet = isObjectSet;
1103
1200
  exports.isWireObjectSet = isWireObjectSet;
1104
- //# sourceMappingURL=chunk-6KYD7ZWT.cjs.map
1105
- //# sourceMappingURL=chunk-6KYD7ZWT.cjs.map
1201
+ //# sourceMappingURL=chunk-33GHS3X4.cjs.map
1202
+ //# sourceMappingURL=chunk-33GHS3X4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/public-utils/hydrateAttachmentFromRid.ts","../../src/logger/BaseLogger.ts","../../src/logger/MinimalLogger.ts","../../src/object/fetchSingle.ts","../../src/internal/conversions/modernToLegacyWhereClause.ts","../../src/derivedProperties/derivedPropertyDefinitionFactory.ts","../../src/derivedProperties/createWithPropertiesObjectSet.ts","../../src/internal/conversions/legacyToModernSingleAggregationResult.ts","../../src/internal/conversions/modernToLegacyAggregationClause.ts","../../src/internal/conversions/modernToLegacyGroupByClause.ts","../../src/object/aggregate.ts","../../src/util/augmentRequestContext.ts","../../src/util/WireObjectSet.ts","../../src/objectSet/ObjectSetListenerWebsocket.ts","../../src/objectSet/createObjectSet.ts"],"names":["additionalContext","Attachment_exports","fetchPage","PalantirApiError","invariant","DistanceUnitMapping","wrappedObjectSet","selectorResult","DurationMapping","resolveBaseObjectSetType","OntologyObjectSet_exports","addUserAgentAndRequestContextHeaders","WebSocket","fetchPageInternal","fetchPageWithErrorsInternal"],"mappings":"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","file":"chunk-33GHS3X4.cjs","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 * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport { additionalContext } from \"../Client.js\";\n/**\n * Helper function to create an attachment type from a rid\n * @param client - An OSDK client.\n * @param rid - The rid of attachment in Foundry.\n * @returns An OSDK attachment object\n */\nexport function hydrateAttachmentFromRid(client, rid) {\n return hydrateAttachmentFromRidInternal(client[additionalContext], rid);\n}\n\n/** @internal */\nexport function hydrateAttachmentFromRidInternal(client, rid) {\n return {\n rid,\n async fetchContents() {\n return OntologiesV2.Attachments.read(client, rid);\n },\n async fetchMetadata() {\n const r = await OntologiesV2.Attachments.get(client, rid);\n return {\n ...r,\n sizeBytes: Number(r.sizeBytes)\n };\n }\n };\n}","/*\n * Copyright 2025 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\nexport function noop() {}\nconst levels = {\n trace: 10,\n debug: 20,\n info: 30,\n warn: 40,\n error: 50,\n fatal: 60\n};\nexport class BaseLogger {\n #factory;\n constructor(bindings, options = {}, factory) {\n this.bindings = bindings;\n this.options = options;\n this.#factory = factory;\n for (const k of [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"fatal\"]) {\n if (this.options?.level && !this.isLevelEnabled(k)) {\n continue;\n }\n this[k] = this.createLogMethod(k, bindings);\n }\n }\n trace = noop;\n debug = noop;\n warn = noop;\n info = noop;\n error = noop;\n fatal = noop;\n child(bindings, options) {\n return new this.#factory({\n ...this.bindings,\n ...bindings\n }, {\n level: (options ?? this.options)?.level,\n msgPrefix: [this.options?.msgPrefix, options?.msgPrefix].filter(x => x).join(\" \")\n });\n }\n isLevelEnabled(level) {\n const ourLevel = this.options?.level ?? \"info\";\n return level in levels && ourLevel in levels && levels[level] >= levels[ourLevel];\n }\n}","/*\n * Copyright 2025 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 { BaseLogger } from \"./BaseLogger.js\";\nexport class MinimalLogger extends BaseLogger {\n constructor(bindings = {}, options = {}) {\n super(bindings, {\n ...options,\n level: options.level ?? \"error\"\n }, MinimalLogger);\n }\n createLogMethod(name, bindings) {\n const msgs = [name];\n if (this.options?.msgPrefix) {\n msgs.push(this.options.msgPrefix);\n }\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(`.${bindings.methodName}()`);\n }\n return (...args) => {\n // eslint-disable-next-line no-console\n console[name === \"fatal\" ? \"error\" : name](msgs.join(\" \"), ...args);\n };\n }\n}","/*\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 { PalantirApiError } from \"@osdk/shared.net.errors\";\nimport { fetchPage } from \"./fetchPage.js\";\n\n/** @internal */\nexport async function fetchSingle(client, objectType, args, objectSet) {\n const result = await fetchPage(client, objectType, {\n ...args,\n $pageSize: 1\n }, objectSet);\n if (result.data.length !== 1 || result.nextPageToken != null) {\n throw new PalantirApiError(`Expected a single result but got ${result.data.length} instead${result.nextPageToken != null ? \" with nextPageToken set\" : \"\"}`);\n }\n return result.data[0];\n}\n\n/** @internal */\nexport async function fetchSingleWithErrors(client, objectType, args, objectSet) {\n try {\n const result = await fetchSingle(client, objectType, args, objectSet);\n return {\n value: result\n };\n } catch (e) {\n if (e instanceof Error) {\n return {\n error: e\n };\n }\n return {\n error: e\n };\n }\n}","/*\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 { DistanceUnitMapping } from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\nexport function extractNamespace(fqApiName) {\n const last = fqApiName.lastIndexOf(\".\");\n if (last === -1) return [undefined, fqApiName];\n return [fqApiName.slice(0, last), fqApiName.slice(last + 1)];\n}\n\n/** @internal */\nexport function modernToLegacyWhereClause(whereClause, objectOrInterface) {\n if (\"$and\" in whereClause) {\n return {\n type: \"and\",\n value: whereClause.$and.map(clause => modernToLegacyWhereClause(clause, objectOrInterface))\n };\n } else if (\"$or\" in whereClause) {\n return {\n type: \"or\",\n value: whereClause.$or.map(clause => modernToLegacyWhereClause(clause, objectOrInterface))\n };\n } else if (\"$not\" in whereClause) {\n return {\n type: \"not\",\n value: modernToLegacyWhereClause(whereClause.$not, objectOrInterface)\n };\n }\n const parts = Object.entries(whereClause);\n if (parts.length === 1) {\n return handleWherePair(parts[0], objectOrInterface);\n }\n return {\n type: \"and\",\n value: parts.map(v => handleWherePair(v, objectOrInterface))\n };\n}\nfunction makeGeoFilterBbox(bbox, filterType, propertyIdentifier, field) {\n return {\n type: filterType === \"$within\" ? \"withinBoundingBox\" : \"intersectsBoundingBox\",\n /**\n * This is a bit ugly, but did this so that propertyIdentifier only shows up in the return object if its defined,\n * this makes it so we don't need to go update our entire test bed either to include a field which may change in near future.\n * Once we solidify that this is the way forward, I can remove field and clean this up\n */\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: {\n topLeft: {\n type: \"Point\",\n coordinates: [bbox[0], bbox[3]]\n },\n bottomRight: {\n type: \"Point\",\n coordinates: [bbox[2], bbox[1]]\n }\n }\n };\n}\nfunction makeGeoFilterPolygon(coordinates, filterType, propertyIdentifier, field) {\n return {\n type: filterType,\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: {\n type: \"Polygon\",\n coordinates\n }\n };\n}\nfunction handleWherePair([fieldName, filter], objectOrInterface, structFieldSelector) {\n !(filter != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Defined key values are only allowed when they are not undefined.\") : invariant(false) : void 0;\n const propertyIdentifier = structFieldSelector != null ? {\n type: \"structField\",\n ...structFieldSelector,\n propertyApiName: fullyQualifyPropName(structFieldSelector.propertyApiName, objectOrInterface)\n } : undefined;\n const field = structFieldSelector == null ? fullyQualifyPropName(fieldName, objectOrInterface) : undefined;\n if (typeof filter === \"string\" || typeof filter === \"number\" || typeof filter === \"boolean\") {\n propertyIdentifier;\n return {\n type: \"eq\",\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: filter\n };\n }\n const keysOfFilter = Object.keys(filter);\n\n // If any of the keys start with `$` then they must be the only one.\n // e.g. `where({ name: { $eq: \"foo\", $ne: \"bar\" } })` is invalid currently\n const hasDollarSign = keysOfFilter.some(key => key.startsWith(\"$\"));\n !(!hasDollarSign || keysOfFilter.length === 1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"A WhereClause Filter with multiple clauses/fields is not allowed. Instead, use an 'or'/'and' clause to combine multiple filters.\") : invariant(false) : void 0;\n if (!hasDollarSign) {\n const structFilter = Object.entries(filter);\n !(structFilter.length === 1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot filter on more than one struct field in the same clause, need to use an and clause\") : invariant(false) : void 0;\n const structFieldApiName = keysOfFilter[0];\n return handleWherePair(Object.entries(filter)[0], objectOrInterface, {\n propertyApiName: fieldName,\n structFieldApiName\n });\n }\n const firstKey = keysOfFilter[0];\n !(filter[firstKey] != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n if (firstKey === \"$ne\") {\n return {\n type: \"not\",\n value: {\n type: \"eq\",\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: filter[firstKey]\n }\n };\n }\n if (firstKey === \"$within\") {\n const withinBody = filter[firstKey];\n if (Array.isArray(withinBody)) {\n return makeGeoFilterBbox(withinBody, firstKey, propertyIdentifier, field);\n } else if (\"$bbox\" in withinBody && withinBody.$bbox != null) {\n return makeGeoFilterBbox(withinBody.$bbox, firstKey, propertyIdentifier, field);\n } else if (\"$distance\" in withinBody && \"$of\" in withinBody && withinBody.$distance != null && withinBody.$of != null) {\n return {\n type: \"withinDistanceOf\",\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: {\n center: Array.isArray(withinBody.$of) ? {\n type: \"Point\",\n coordinates: withinBody.$of\n } : withinBody.$of,\n distance: {\n value: withinBody.$distance[0],\n unit: DistanceUnitMapping[withinBody.$distance[1]]\n }\n }\n };\n } else {\n const coordinates = \"$polygon\" in withinBody ? withinBody.$polygon : withinBody.coordinates;\n return makeGeoFilterPolygon(coordinates, \"withinPolygon\", propertyIdentifier, fieldName);\n }\n }\n if (firstKey === \"$intersects\") {\n const intersectsBody = filter[firstKey];\n if (Array.isArray(intersectsBody)) {\n return makeGeoFilterBbox(intersectsBody, firstKey, propertyIdentifier, field);\n } else if (\"$bbox\" in intersectsBody && intersectsBody.$bbox != null) {\n return makeGeoFilterBbox(intersectsBody.$bbox, firstKey, propertyIdentifier, field);\n } else {\n const coordinates = \"$polygon\" in intersectsBody ? intersectsBody.$polygon : intersectsBody.coordinates;\n return makeGeoFilterPolygon(coordinates, \"intersectsPolygon\", propertyIdentifier, field);\n }\n }\n if (firstKey === \"$containsAllTerms\" || firstKey === \"$containsAnyTerm\") {\n return {\n type: firstKey.substring(1),\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: typeof filter[firstKey] === \"string\" ? filter[firstKey] : filter[firstKey][\"term\"],\n fuzzy: typeof filter[firstKey] === \"string\" ? false : filter[firstKey][\"fuzzySearch\"] ?? false\n };\n }\n return {\n type: firstKey.substring(1),\n ...(propertyIdentifier != null && {\n propertyIdentifier\n }),\n field,\n value: filter[firstKey]\n };\n}\nfunction fullyQualifyPropName(fieldName, objectOrInterface) {\n if (objectOrInterface.type === \"interface\") {\n const [objApiNamespace] = extractNamespace(objectOrInterface.apiName);\n const [fieldApiNamespace, fieldShortName] = extractNamespace(fieldName);\n return fieldApiNamespace == null && objApiNamespace != null ? `${objApiNamespace}.${fieldShortName}` : fieldName;\n }\n return fieldName;\n}","/*\n * Copyright 2025 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 invariant from \"tiny-invariant\";\n\n/** @internal */\nexport function derivedPropertyDefinitionFactory(wireDefinition, definitionMap) {\n const definition = {\n abs() {\n return derivedPropertyDefinitionFactory({\n type: \"absoluteValue\",\n property: wireDefinition\n }, definitionMap);\n },\n negate() {\n return derivedPropertyDefinitionFactory({\n type: \"negate\",\n property: wireDefinition\n }, definitionMap);\n },\n max(value) {\n return derivedPropertyDefinitionFactory({\n type: \"greatest\",\n properties: [wireDefinition, getDefinitionFromMap(value, definitionMap)]\n }, definitionMap);\n },\n min(value) {\n return derivedPropertyDefinitionFactory({\n type: \"least\",\n properties: [wireDefinition, getDefinitionFromMap(value, definitionMap)]\n }, definitionMap);\n },\n add(value) {\n return derivedPropertyDefinitionFactory({\n type: \"add\",\n properties: [wireDefinition, getDefinitionFromMap(value, definitionMap)]\n }, definitionMap);\n },\n subtract(value) {\n return derivedPropertyDefinitionFactory({\n \"type\": \"subtract\",\n \"left\": wireDefinition,\n \"right\": getDefinitionFromMap(value, definitionMap)\n }, definitionMap);\n },\n multiply(value) {\n return derivedPropertyDefinitionFactory({\n type: \"multiply\",\n properties: [wireDefinition, getDefinitionFromMap(value, definitionMap)]\n }, definitionMap);\n },\n divide(value) {\n return derivedPropertyDefinitionFactory({\n \"type\": \"subtract\",\n \"left\": wireDefinition,\n \"right\": getDefinitionFromMap(value, definitionMap)\n }, definitionMap);\n },\n extractPart: part => {\n return derivedPropertyDefinitionFactory({\n type: \"extract\",\n part,\n property: wireDefinition\n }, definitionMap);\n },\n type: {}\n };\n definitionMap.set(definition, wireDefinition);\n return definition;\n}\nconst getDefinitionFromMap = (arg, definitionMap) => {\n if (typeof arg === \"object\") {\n const definition = definitionMap.get(arg);\n !definition ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Derived Property is not defined\") : invariant(false) : void 0;\n return definition;\n } else if (typeof arg === \"number\") {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Literals for derived properties are not yet supported\") : invariant(false) : void 0;\n }\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Invalid argument type for a derived property\") : invariant(false) : void 0;\n};","/*\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 invariant from \"tiny-invariant\";\nimport { modernToLegacyWhereClause } from \"../internal/conversions/modernToLegacyWhereClause.js\";\nimport { derivedPropertyDefinitionFactory } from \"./derivedPropertyDefinitionFactory.js\";\n/** @internal */\nexport function createWithPropertiesObjectSet(objectType, objectSet, definitionMap, fromBaseObjectSet = false) {\n return {\n pivotTo: link => {\n return createWithPropertiesObjectSet(objectType, {\n type: \"searchAround\",\n objectSet,\n link\n }, definitionMap);\n },\n where: clause => {\n return createWithPropertiesObjectSet(objectType, {\n type: \"filter\",\n objectSet: objectSet,\n where: modernToLegacyWhereClause(clause, objectType)\n }, definitionMap);\n },\n aggregate: (aggregation, opt) => {\n const splitAggregation = aggregation.split(\":\");\n !(splitAggregation.length === 2 || splitAggregation[0] === \"$count\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Invalid aggregation format\") : invariant(false) : void 0;\n const [aggregationPropertyName, aggregationOperation] = splitAggregation;\n let aggregationOperationDefinition;\n switch (aggregationOperation) {\n case \"sum\":\n case \"avg\":\n case \"min\":\n case \"max\":\n case \"exactDistinct\":\n case \"approximateDistinct\":\n aggregationOperationDefinition = {\n type: aggregationOperation,\n selectedPropertyApiName: aggregationPropertyName\n };\n break;\n case \"approximatePercentile\":\n aggregationOperationDefinition = {\n type: \"approximatePercentile\",\n selectedPropertyApiName: aggregationPropertyName,\n approximatePercentile: opt?.percentile ?? .5\n };\n break;\n case \"collectSet\":\n case \"collectList\":\n aggregationOperationDefinition = {\n type: aggregationOperation,\n selectedPropertyApiName: aggregationPropertyName,\n limit: opt?.limit ?? 100\n };\n break;\n case undefined:\n if (aggregationPropertyName === \"$count\") {\n aggregationOperationDefinition = {\n type: \"count\"\n };\n break;\n }\n default:\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Invalid aggregation operation \" + aggregationOperation) : invariant(false) : void 0;\n }\n const wrappedObjectSet = {\n type: \"selection\",\n objectSet: objectSet,\n operation: aggregationOperationDefinition\n };\n const selectorResult = derivedPropertyDefinitionFactory(wrappedObjectSet, definitionMap);\n definitionMap.set(selectorResult, wrappedObjectSet);\n return selectorResult;\n },\n selectProperty: name => {\n if (fromBaseObjectSet) {\n const wrappedObjectSet = {\n type: \"property\",\n apiName: name\n };\n const selectorResult = derivedPropertyDefinitionFactory(wrappedObjectSet, definitionMap);\n definitionMap.set(selectorResult, wrappedObjectSet);\n return selectorResult;\n }\n const wrappedObjectSet = {\n type: \"selection\",\n objectSet: objectSet,\n operation: {\n type: \"get\",\n selectedPropertyApiName: name\n }\n };\n const selectorResult = derivedPropertyDefinitionFactory(wrappedObjectSet, definitionMap);\n definitionMap.set(selectorResult, wrappedObjectSet);\n return selectorResult;\n },\n constant: {\n double: value => {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Not supported\") : invariant(false) : void 0;\n },\n integer: value => {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Not supported\") : invariant(false) : void 0;\n },\n long: value => {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Not supported\") : invariant(false) : void 0;\n },\n datetime: value => {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Not supported\") : invariant(false) : void 0;\n },\n timestamp: value => {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Not supported\") : invariant(false) : void 0;\n }\n }\n };\n}","/*\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 invariant from \"tiny-invariant\";\n/** @internal */\nexport function legacyToModernSingleAggregationResult(entry) {\n return entry.metrics.reduce((accumulator, curValue) => {\n const parts = curValue.name.split(\".\");\n if (parts[0] === \"count\") {\n return accumulator;\n }\n !(parts.length === 2) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"assumed we were getting a `${key}.${type}`\") : invariant(false) : void 0;\n const property = parts[0];\n const metricType = parts[1];\n if (!(property in accumulator)) {\n accumulator[property] = {}; // fixme?\n }\n accumulator[property][metricType] = curValue.value; // fixme?\n\n return accumulator;\n }, {});\n}","/*\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\nconst directionFieldMap = dir => dir === \"asc\" ? \"ASC\" : dir === \"desc\" ? \"DESC\" : undefined;\n\n/** @internal */\nexport function modernToLegacyAggregationClause(select) {\n return Object.entries(select).flatMap(([propAndMetric, aggregationType]) => {\n if (propAndMetric === \"$count\") {\n return {\n type: \"count\",\n name: \"count\",\n direction: directionFieldMap(aggregationType)\n };\n }\n const colonPos = propAndMetric.lastIndexOf(\":\");\n const property = propAndMetric.slice(0, colonPos);\n const metric = propAndMetric.slice(colonPos + 1);\n return [{\n type: metric,\n name: `${property}.${metric}`,\n direction: directionFieldMap(aggregationType),\n field: property\n }];\n });\n}","/*\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 { DurationMapping } from \"@osdk/api\";\n/** @internal */\nexport function modernToLegacyGroupByClause(groupByClause) {\n if (!groupByClause) return [];\n return Object.entries(groupByClause).flatMap(([field, type]) => {\n if (type === \"exact\") {\n return [{\n type,\n field\n }];\n } else if (\"$exactWithLimit\" in type) {\n {\n return [{\n type: \"exact\",\n field,\n maxGroupCount: type.$exactWithLimit\n }];\n }\n } else if (\"$exact\" in type) {\n return [{\n type: \"exact\",\n field,\n maxGroupCount: type.$exact?.$limit ?? undefined,\n defaultValue: type.$exact.$defaultValue ?? undefined\n }];\n } else if (\"$fixedWidth\" in type) {\n return [{\n type: \"fixedWidth\",\n field,\n fixedWidth: type.$fixedWidth\n }];\n } else if (\"$ranges\" in type) {\n return [{\n type: \"ranges\",\n field,\n ranges: type.$ranges.map(range => convertRange(range))\n }];\n } else if (\"$duration\" in type) {\n return [{\n type: \"duration\",\n field,\n value: type.$duration[0],\n unit: DurationMapping[type.$duration[1]]\n }];\n } else return [];\n });\n}\nfunction convertRange(range) {\n return {\n startValue: range[0],\n endValue: range[1]\n };\n}","/*\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 * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport { legacyToModernSingleAggregationResult } from \"../internal/conversions/legacyToModernSingleAggregationResult.js\";\nimport { modernToLegacyAggregationClause } from \"../internal/conversions/modernToLegacyAggregationClause.js\";\nimport { modernToLegacyGroupByClause } from \"../internal/conversions/modernToLegacyGroupByClause.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n\n/** @internal */\nexport async function aggregate(clientCtx, objectType, objectSet = resolveBaseObjectSetType(objectType), req) {\n const resolvedObjectSet = resolveBaseObjectSetType(objectType);\n const body = {\n aggregation: modernToLegacyAggregationClause(req.$select),\n groupBy: [],\n where: undefined\n };\n if (req.$groupBy) {\n body.groupBy = modernToLegacyGroupByClause(req.$groupBy);\n }\n const result = await OntologiesV2.OntologyObjectSets.aggregate(addUserAgentAndRequestContextHeaders(clientCtx, objectType), await clientCtx.ontologyRid, {\n objectSet,\n groupBy: body.groupBy,\n aggregation: body.aggregation\n });\n if (!req.$groupBy) {\n !(result.data.length === 1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"no group by clause should mean only one data result\") : invariant(false) : void 0;\n return {\n ...aggregationToCountResult(result.data[0]),\n ...legacyToModernSingleAggregationResult(result.data[0])\n };\n }\n const ret = result.data.map(entry => {\n return {\n $group: entry.group,\n ...aggregationToCountResult(entry),\n ...legacyToModernSingleAggregationResult(entry)\n };\n }); // fixme\n\n return ret; // FIXME\n}\nfunction aggregationToCountResult(entry) {\n for (const aggregateResult of entry.metrics) {\n if (aggregateResult.name === \"count\") {\n return {\n $count: aggregateResult.value\n };\n }\n }\n}","/*\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\n/**\nReturns a client with its `requestContext` merged with the result of applying\n`augment` to its `requestContext`.\n\nThe second argument is an `Partial<RequestContext>`-returning `augment` function\ninstead of a `RequestContext` object to make referencing the current request\ncontext easier. For example, modifying the `fetchPage` function to add its name\nto the object set's called method chain could look like:\n```\naugmentRequestContext(\n clientContext,\n ctx => ({ methodChain: [...ctx.methodChain, \"fetchPage\"] })\n)\n```\nor\n```\naugmentRequestContext(\n clientContext,\n ({ methodChain }) => ({ methodChain: [...methodChain, \"fetchPage\"] })\n)\n```\ninstead of\n```\naugmentRequestContext(\n clientContext,\n { methodChain: [...clientContext.requestContext.methodChain, \"fetchPage\"] }\n)\n```\n*/\nexport const augmentRequestContext = (client, augment) => ({\n ...client,\n requestContext: {\n ...client.requestContext,\n ...augment(client.requestContext)\n }\n});","/*\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\nconst WIRE_OBJECT_SET_TYPES = new Set([\"base\", \"filter\", \"intersect\", \"reference\", \"searchAround\", \"static\", \"subtract\", \"union\"]);\n\n/** @internal */\nexport function isWireObjectSet(o) {\n return o != null && typeof o === \"object\" && WIRE_OBJECT_SET_TYPES.has(o.type);\n}","/*\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 WebSocket from \"isomorphic-ws\";\nimport invariant from \"tiny-invariant\";\nconst MINIMUM_RECONNECT_DELAY_MS = 5 * 1000;\n\n/** Noop function to reduce conditional checks */\nfunction doNothing() {}\n\n/**\n * Converts an ObjectSetListener to one where all the functions are defined.\n */\nfunction fillOutListener({\n onChange = doNothing,\n onError = doNothing,\n onOutOfDate = doNothing,\n onSuccessfulSubscription = doNothing\n}) {\n return {\n onChange,\n onError,\n onOutOfDate,\n onSuccessfulSubscription\n };\n}\nfunction isReady(sub) {\n return sub.isReady != null;\n}\nfunction subscriptionIsDone(sub) {\n return sub.status === \"done\" || sub.status === \"error\";\n}\n\n/** @internal */\nexport class ObjectSetListenerWebsocket {\n static #instances = new WeakMap();\n // FIXME\n static getInstance(client) {\n let instance = ObjectSetListenerWebsocket.#instances.get(client.clientCacheKey);\n if (instance == null) {\n instance = new ObjectSetListenerWebsocket(client);\n ObjectSetListenerWebsocket.#instances.set(client.clientCacheKey, instance);\n }\n return instance;\n }\n #ws;\n #lastWsConnect = 0;\n #client;\n #logger;\n\n /**\n * map of requestId to all active subscriptions at the time of the request\n */\n #pendingSubscriptions = new Map();\n\n /**\n * Map of subscriptionId to Subscription. Note: the subscriptionId may be\n * temporary and not the actual subscriptionId from the server.\n */\n #subscriptions = new Map();\n #endedSubscriptions = new Set();\n #maybeDisconnectTimeout;\n\n // DO NOT CONSTRUCT DIRECTLY. ONLY EXPOSED AS A TESTING SEAM\n constructor(client, {\n minimumReconnectDelayMs = MINIMUM_RECONNECT_DELAY_MS\n } = {}) {\n this.MINIMUM_RECONNECT_DELAY_MS = minimumReconnectDelayMs;\n this.#client = client;\n this.#logger = client.logger?.child({}, {\n msgPrefix: \"<OSW> \"\n });\n !(client.baseUrl.startsWith(\"https://\") || client.baseUrl.startsWith(\"http://\")) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Stack must be a URL\") : invariant(false) : void 0;\n }\n async subscribe(objectType, objectSet, listener, properties = []) {\n const objOrInterfaceDef = objectType.type === \"object\" ? await this.#client.ontologyProvider.getObjectDefinition(objectType.apiName) : await this.#client.ontologyProvider.getInterfaceDefinition(objectType.apiName);\n let objectProperties = [];\n let referenceProperties = [];\n if (properties.length === 0) {\n properties = Object.keys(objOrInterfaceDef.properties);\n }\n objectProperties = properties.filter(p => objOrInterfaceDef.properties[p].type !== \"geotimeSeriesReference\");\n referenceProperties = properties.filter(p => objOrInterfaceDef.properties[p].type === \"geotimeSeriesReference\");\n const sub = {\n listener: fillOutListener(listener),\n objectSet,\n primaryKeyPropertyName: objOrInterfaceDef.type === \"interface\" ? undefined : objOrInterfaceDef.primaryKeyApiName,\n requestedProperties: objectProperties,\n requestedReferenceProperties: referenceProperties,\n status: \"preparing\",\n // Since we don't have a real subscription id yet but we need to keep\n // track of this reference, we can just use a random uuid.\n subscriptionId: `TMP-${nextUuid()}}`,\n interfaceApiName: objOrInterfaceDef.type === \"object\" ? undefined : objOrInterfaceDef.apiName\n };\n this.#subscriptions.set(sub.subscriptionId, sub);\n\n // actually prepares the subscription, ensures the ws is ready, and sends\n // a subscribe message. We don't want to block on this.\n void this.#initiateSubscribe(sub);\n return () => {\n this.#unsubscribe(sub);\n };\n }\n\n /**\n * Called at least once for every subscription.\n *\n * - Resets pending expiry\n * - Recreates temporary object set\n * - Triggers a full subscribe message\n *\n * @returns\n */\n async #initiateSubscribe(sub) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug(\"#initiateSubscribe()\");\n }\n try {\n await this.#ensureWebsocket();\n\n // the consumer may have already unsubscribed before we are ready to request a subscription\n // so we have to acquire the pendingSubscription after the await.\n if (subscriptionIsDone(sub)) {\n return;\n }\n sub.isReady = true;\n // if we aren't open, then this happens after we #onConnect\n if (this.#ws?.readyState === WebSocket.OPEN) {\n this.#sendSubscribeMessage();\n }\n } catch (error) {\n this.#logger?.error(error, \"Error in #initiateSubscribe\");\n this.#tryCatchOnError(sub, true, error);\n }\n }\n #sendSubscribeMessage() {\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug(\"#sendSubscribeMessage()\");\n }\n // If two calls to `.subscribe()` happen at once (or if the connection is reset),\n // we may have multiple subscriptions that don't have a subscriptionId yet,\n // so we filter those out.\n const readySubs = [...this.#subscriptions.values()].filter(isReady);\n const id = nextUuid();\n // responses come back as an array of subIds, so we need to know the sources\n this.#pendingSubscriptions.set(id, readySubs);\n\n // every subscribe message \"overwrites\" the previous ones that are not\n // re-included, so we have to reconstitute the entire list of subscriptions\n const subscribe = {\n id,\n requests: readySubs.map(({\n objectSet,\n requestedProperties,\n requestedReferenceProperties,\n interfaceApiName\n }) => {\n return {\n objectSet: objectSet,\n propertySet: requestedProperties,\n referenceSet: requestedReferenceProperties\n };\n })\n };\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug({\n payload: subscribe\n }, \"sending subscribe message\");\n }\n this.#ws?.send(JSON.stringify(subscribe));\n }\n #unsubscribe(sub, newStatus = \"done\") {\n if (subscriptionIsDone(sub)) {\n // if we are already done, we don't need to do anything\n return;\n }\n sub.status = newStatus;\n\n // make sure listeners do nothing now\n sub.listener = fillOutListener({});\n this.#subscriptions.delete(sub.subscriptionId);\n this.#endedSubscriptions.add(sub.subscriptionId);\n this.#sendSubscribeMessage();\n\n // If we have no more subscriptions, we can disconnect the websocket\n // however we should wait a bit to see if we get any more subscriptions.\n // For example, when switching between react views, you may unsubscribe\n // in the old view and subscribe in the new view. We don't need to re-establish\n // the websocket connection in that case.\n if (this.#maybeDisconnectTimeout) {\n // We reset the timeout on every unsubscribe so its always at least 15s from\n // the last time we are empty. E.g.:\n // - 0s: Subscribe(A)\n // - 10s: Unsubscribe(A)\n // - 11s: Subscribe(B)\n // - 20s: Unsubscribe(B)\n // If we do not clear out the timeout we would disconnect at 25s but that would only be\n // 5s after the last subscription was removed instead of at 35s for the desired 15s.\n clearTimeout(this.#maybeDisconnectTimeout);\n }\n this.#maybeDisconnectTimeout = setTimeout(() => {\n this.#maybeDisconnectTimeout = undefined;\n if (this.#subscriptions.size === 0) {\n this.#cycleWebsocket();\n }\n }, 15_000 /* ms */);\n }\n async #ensureWebsocket() {\n if (this.#ws == null) {\n const {\n baseUrl,\n tokenProvider\n } = this.#client;\n const url = constructWebsocketUrl(baseUrl, await this.#client.ontologyRid);\n const token = await tokenProvider();\n\n // tokenProvider is async, there could potentially be a race to create the websocket.\n // Only the first call to reach here will find a null this.#ws, the rest will bail out\n if (this.#ws == null) {\n // TODO this can probably be exponential backoff with jitter\n // don't reconnect more quickly than MINIMUM_RECONNECT_DELAY\n const nextConnectTime = (this.#lastWsConnect ?? 0) + this.MINIMUM_RECONNECT_DELAY_MS;\n if (nextConnectTime > Date.now()) {\n await new Promise(resolve => {\n setTimeout(resolve, nextConnectTime - Date.now());\n });\n }\n this.#lastWsConnect = Date.now();\n\n // we again may have lost the race after our minimum backoff time\n if (this.#ws == null) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug(\"Creating websocket\");\n }\n this.#ws = new WebSocket(url, [`Bearer-${token}`]);\n this.#ws.addEventListener(\"close\", this.#onClose);\n this.#ws.addEventListener(\"message\", this.#onMessage);\n this.#ws.addEventListener(\"open\", this.#onOpen);\n }\n }\n // Allow await-ing the websocket open event if it isn't open already.\n // This needs to happen even for callers that didn't just create this.#ws\n if (this.#ws.readyState === WebSocket.CONNECTING) {\n const ws = this.#ws;\n return new Promise((resolve, reject) => {\n function cleanup() {\n ws.removeEventListener(\"open\", open);\n ws.removeEventListener(\"error\", error);\n ws.removeEventListener(\"close\", cleanup);\n }\n function open() {\n cleanup();\n resolve();\n }\n function error(evt) {\n cleanup();\n reject(evt);\n }\n ws.addEventListener(\"open\", open);\n ws.addEventListener(\"error\", error);\n ws.addEventListener(\"close\", cleanup);\n });\n }\n }\n }\n #onOpen = () => {\n // resubscribe all of the listeners\n this.#sendSubscribeMessage();\n };\n #onMessage = async message => {\n const data = JSON.parse(message.data.toString());\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug({\n payload: data\n }, \"received message from ws\");\n }\n switch (data.type) {\n case \"objectSetChanged\":\n await this.#handleMessage_objectSetChanged(data);\n return;\n case \"refreshObjectSet\":\n this.#handleMessage_refreshObjectSet(data);\n return;\n case \"subscribeResponses\":\n this.#handleMessage_subscribeResponses(data);\n return;\n case \"subscriptionClosed\":\n {\n this.#handleMessage_subscriptionClosed(data);\n return;\n }\n default:\n const _ = data;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unexpected message type\") : invariant(false) : void 0;\n }\n };\n #handleMessage_objectSetChanged = async payload => {\n const sub = this.#subscriptions.get(payload.id);\n if (sub == null) return;\n const objectUpdates = payload.updates.filter(update => update.type === \"object\");\n const referenceUpdates = payload.updates.filter(update => update.type === \"reference\");\n const osdkObjectsWithReferenceUpdates = await Promise.all(referenceUpdates.map(async o => {\n const osdkObjectArray = await this.#client.objectFactory2(this.#client, [{\n __apiName: o.objectType,\n __primaryKey: sub.primaryKeyPropertyName != null ? o.primaryKey[sub.primaryKeyPropertyName] : undefined,\n ...o.primaryKey,\n [o.property]: o.value\n }], sub.interfaceApiName, {}, false, undefined, false, await this.#fetchInterfaceMapping(o.objectType, sub.interfaceApiName));\n const singleOsdkObject = osdkObjectArray[0] ?? undefined;\n return singleOsdkObject != null ? {\n object: singleOsdkObject,\n state: \"ADDED_OR_UPDATED\"\n } : undefined;\n }));\n for (const update of osdkObjectsWithReferenceUpdates) {\n if (update != null) {\n try {\n sub.listener.onChange?.(update);\n } catch (error) {\n this.#logger?.error(error, \"Error in onChange callback\");\n this.#tryCatchOnError(sub, false, error);\n }\n }\n }\n const osdkObjects = await Promise.all(objectUpdates.map(async o => {\n const keysToDelete = Object.keys(o.object).filter(key => sub.requestedReferenceProperties.includes(key));\n for (const key of keysToDelete) {\n delete o.object[key];\n }\n const osdkObjectArray = await this.#client.objectFactory2(this.#client, [o.object], sub.interfaceApiName, {}, false, undefined, false, await this.#fetchInterfaceMapping(o.object.__apiName, sub.interfaceApiName));\n const singleOsdkObject = osdkObjectArray[0] ?? undefined;\n return singleOsdkObject != null ? {\n object: singleOsdkObject,\n state: o.state\n } : undefined;\n }));\n for (const osdkObject of osdkObjects) {\n if (osdkObject != null) {\n try {\n sub.listener.onChange?.(osdkObject);\n } catch (error) {\n this.#logger?.error(error, \"Error in onChange callback\");\n this.#tryCatchOnError(sub, false, error);\n }\n }\n }\n };\n async #fetchInterfaceMapping(objectTypeApiName, interfaceApiName) {\n if (interfaceApiName == null) return {};\n const interfaceMap = (await this.#client.ontologyProvider.getObjectDefinition(objectTypeApiName)).interfaceMap;\n return {\n [interfaceApiName]: {\n [objectTypeApiName]: interfaceMap[interfaceApiName]\n }\n };\n }\n #handleMessage_refreshObjectSet = payload => {\n const sub = this.#subscriptions.get(payload.id);\n !sub ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Expected subscription id ${payload.id}`) : invariant(false) : void 0;\n try {\n sub.listener.onOutOfDate();\n } catch (error) {\n this.#logger?.error(error, \"Error in onOutOfDate callback\");\n this.#tryCatchOnError(sub, false, error);\n }\n };\n #handleMessage_subscribeResponses = payload => {\n const {\n id,\n responses\n } = payload;\n const subs = this.#pendingSubscriptions.get(id);\n !subs ? process.env.NODE_ENV !== \"production\" ? invariant(false, `should have a pending subscription for ${id}`) : invariant(false) : void 0;\n this.#pendingSubscriptions.delete(id);\n for (let i = 0; i < responses.length; i++) {\n const sub = subs[i];\n const response = responses[i];\n switch (response.type) {\n case \"error\":\n this.#tryCatchOnError(sub, true, response.errors);\n this.#unsubscribe(sub, \"error\");\n break;\n case \"qos\":\n // the server has requested that we tear down our websocket and reconnect to help load balance\n this.#cycleWebsocket();\n break;\n case \"success\":\n // `\"preparing\"` should only be the status on an initial subscribe.\n const shouldFireOutOfDate = sub.status === \"expired\" || sub.status === \"reconnecting\";\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug({\n shouldFireOutOfDate\n }, \"success\");\n }\n sub.status = \"subscribed\";\n if (sub.subscriptionId !== response.id) {\n // might be the temporary one\n this.#subscriptions.delete(sub.subscriptionId);\n sub.subscriptionId = response.id;\n this.#subscriptions.set(sub.subscriptionId, sub); // future messages come by this subId\n }\n try {\n if (shouldFireOutOfDate) sub.listener.onOutOfDate();else sub.listener.onSuccessfulSubscription();\n } catch (error) {\n this.#logger?.error(error, \"Error in onOutOfDate or onSuccessfulSubscription callback\");\n this.#tryCatchOnError(sub, false, error);\n }\n break;\n default:\n this.#tryCatchOnError(sub, true, response);\n }\n }\n };\n #handleMessage_subscriptionClosed(payload) {\n const sub = this.#subscriptions.get(payload.id);\n if (sub == null && this.#endedSubscriptions.has(payload.id)) return;\n !sub ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Expected subscription id ${payload.id}`) : invariant(false) : void 0;\n this.#tryCatchOnError(sub, true, payload.cause);\n this.#unsubscribe(sub, \"error\");\n }\n #onClose = event => {\n if (process.env.NODE_ENV !== \"production\") {\n this.#logger?.debug({\n event\n }, \"Received close event from ws\", event);\n }\n // TODO we should probably throttle this so we don't abuse the backend\n this.#cycleWebsocket();\n };\n #cycleWebsocket = () => {\n if (this.#ws) {\n this.#ws.removeEventListener(\"open\", this.#onOpen);\n this.#ws.removeEventListener(\"message\", this.#onMessage);\n this.#ws.removeEventListener(\"close\", this.#onClose);\n if (this.#ws.readyState !== WebSocket.CLOSING && this.#ws.readyState !== WebSocket.CLOSED) {\n this.#ws.close();\n }\n this.#ws = undefined;\n }\n\n // if we have any listeners that are still depending on us, go ahead and reopen the websocket\n if (this.#subscriptions.size > 0) {\n if (process.env.NODE_ENV !== \"production\") {\n for (const s of this.#subscriptions.values()) {\n !(s.status !== \"done\" && s.status !== \"error\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"should not have done/error subscriptions still\") : invariant(false) : void 0;\n }\n }\n for (const s of this.#subscriptions.values()) {\n if (s.status === \"subscribed\") s.status = \"reconnecting\";\n }\n\n // we don't care about the result of this (we want cycleWebsocket to be fire and forget)\n // just that it happens\n void this.#ensureWebsocket();\n }\n };\n #tryCatchOnError = (sub, subscriptionClosed, error) => {\n try {\n sub.listener.onError({\n subscriptionClosed: subscriptionClosed,\n error\n });\n } catch (onErrorError) {\n // eslint-disable-next-line no-console\n console.error(`Error encountered in an onError callback for an OSDK subscription`, onErrorError);\n // eslint-disable-next-line no-console\n console.error(`This onError call was triggered by an error in another callback`, error);\n // eslint-disable-next-line no-console\n console.error(`The subscription has been closed.`, error);\n if (!subscriptionClosed) {\n this.#logger?.error(error, \"Error in onError callback\");\n this.#unsubscribe(sub, \"error\");\n this.#tryCatchOnError(sub, true, onErrorError);\n }\n }\n };\n}\n\n/** @internal */\nexport function constructWebsocketUrl(baseUrl, ontologyRid) {\n const base = new URL(baseUrl);\n const url = new URL(`api/v2/ontologySubscriptions/ontologies/${ontologyRid}/streamSubscriptions`, base);\n url.protocol = url.protocol.replace(\"https\", \"wss\");\n return url;\n}\nlet uuidCounter = 0;\nfunction nextUuid() {\n return `00000000-0000-0000-0000-${(uuidCounter++).toString().padStart(12, \"0\")}`;\n}","/*\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 { createWithPropertiesObjectSet } from \"../derivedProperties/createWithPropertiesObjectSet.js\";\nimport { modernToLegacyWhereClause } from \"../internal/conversions/modernToLegacyWhereClause.js\";\nimport { aggregate } from \"../object/aggregate.js\";\nimport { fetchPageInternal, fetchPageWithErrorsInternal } from \"../object/fetchPage.js\";\nimport { fetchSingle, fetchSingleWithErrors } from \"../object/fetchSingle.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\nimport { isWireObjectSet } from \"../util/WireObjectSet.js\";\nimport { ObjectSetListenerWebsocket } from \"./ObjectSetListenerWebsocket.js\";\nfunction isObjectTypeDefinition(def) {\n return def.type === \"object\";\n}\n\n/* @internal */\nexport function isObjectSet(o) {\n return o != null && typeof o === \"object\" && isWireObjectSet(objectSetDefinitions.get(o));\n}\n\n/** @internal */\nexport function getWireObjectSet(objectSet) {\n return objectSetDefinitions.get(objectSet);\n}\nconst objectSetDefinitions = new WeakMap();\n\n/** @internal */\nexport function createObjectSet(objectType, clientCtx, objectSet = resolveBaseObjectSetType(objectType)) {\n const base = {\n aggregate: aggregate.bind(globalThis, augmentRequestContext(clientCtx, _ => ({\n finalMethodCall: \"aggregate\"\n })), objectType, objectSet),\n fetchPage: fetchPageInternal.bind(globalThis, augmentRequestContext(clientCtx, _ => ({\n finalMethodCall: \"fetchPage\"\n })), objectType, objectSet),\n fetchPageWithErrors: fetchPageWithErrorsInternal.bind(globalThis, augmentRequestContext(clientCtx, _ => ({\n finalMethodCall: \"fetchPageWithErrors\"\n })), objectType, objectSet),\n where: clause => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"filter\",\n objectSet: objectSet,\n where: modernToLegacyWhereClause(clause, objectType)\n });\n },\n pivotTo: function (type) {\n return createSearchAround(type)();\n },\n union: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"union\",\n objectSets: [objectSet, ...objectSets.map(os => objectSetDefinitions.get(os))]\n });\n },\n intersect: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"intersect\",\n objectSets: [objectSet, ...objectSets.map(os => objectSetDefinitions.get(os))]\n });\n },\n subtract: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"subtract\",\n objectSets: [objectSet, ...objectSets.map(os => objectSetDefinitions.get(os))]\n });\n },\n asyncIter: async function* (args) {\n let $nextPageToken = undefined;\n do {\n const result = await fetchPageInternal(augmentRequestContext(clientCtx, _ => ({\n finalMethodCall: \"asyncIter\"\n })), objectType, objectSet, {\n ...args,\n $pageSize: 10000,\n $nextPageToken\n });\n $nextPageToken = result.nextPageToken;\n for (const obj of result.data) {\n yield obj;\n }\n } while ($nextPageToken != null);\n },\n fetchOne: isObjectTypeDefinition(objectType) ? async (primaryKey, options) => {\n return await fetchSingle(augmentRequestContext(clientCtx, _ => ({\n finalMethodCall: \"fetchOne\"\n })), objectType, options, await createWithPk(clientCtx, objectType, objectSet, primaryKey));\n } : undefined,\n fetchOneWithErrors: isObjectTypeDefinition(objectType) ? async (primaryKey, options) => {\n return await fetchSingleWithErrors(augmentRequestContext(clientCtx, _ => ({\n finalMethodCall: \"fetchOneWithErrors\"\n })), objectType, options, await createWithPk(clientCtx, objectType, objectSet, primaryKey));\n } : undefined,\n subscribe: (listener, opts) => {\n const pendingSubscribe = ObjectSetListenerWebsocket.getInstance(clientCtx).subscribe(objectType, objectSet, listener, opts?.properties);\n return {\n unsubscribe: async () => (await pendingSubscribe)()\n };\n },\n withProperties: clause => {\n const definitionMap = new Map();\n const derivedProperties = {};\n for (const key of Object.keys(clause)) {\n const derivedPropertyDefinition = clause[key](createWithPropertiesObjectSet(objectType, {\n type: \"methodInput\"\n }, definitionMap, true));\n derivedProperties[key] = definitionMap.get(derivedPropertyDefinition);\n }\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"withProperties\",\n derivedProperties: derivedProperties,\n objectSet: objectSet\n });\n },\n $objectSetInternals: {\n def: objectType\n }\n };\n function createSearchAround(link) {\n return () => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"searchAround\",\n objectSet,\n link\n });\n };\n }\n objectSetDefinitions.set(base, objectSet);\n\n // we are using a type assertion because the marker symbol defined in BaseObjectSet isn't actually used\n // at runtime.\n return base;\n}\nasync function createWithPk(clientCtx, objectType, objectSet, primaryKey) {\n const objDef = await clientCtx.ontologyProvider.getObjectDefinition(objectType.apiName);\n const withPk = {\n type: \"filter\",\n objectSet: objectSet,\n where: {\n type: \"eq\",\n field: objDef.primaryKeyApiName,\n value: primaryKey\n }\n };\n return withPk;\n}"]}