@osdk/client 2.6.0-beta.1 → 2.6.0-beta.2

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 (72) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/build/browser/Client.js +1 -1
  3. package/build/browser/Client.js.map +1 -1
  4. package/build/browser/fetchMetadata.test.js +11 -0
  5. package/build/browser/fetchMetadata.test.js.map +1 -1
  6. package/build/browser/internal/conversions/modernToLegacyWhereClause.js +15 -0
  7. package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  8. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
  9. package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  10. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +4 -0
  11. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  12. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +10 -0
  13. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  14. package/build/browser/object/convertWireToOsdkObjects.test.js +12 -0
  15. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  16. package/build/browser/object/formatting/applyPropertyFormatter.js +52 -0
  17. package/build/browser/object/formatting/applyPropertyFormatter.js.map +1 -0
  18. package/build/browser/object/formatting/applyPropertyFormatter.test.js +423 -0
  19. package/build/browser/object/formatting/applyPropertyFormatter.test.js.map +1 -0
  20. package/build/browser/object/formatting/formatBoolean.js +23 -0
  21. package/build/browser/object/formatting/formatBoolean.js.map +1 -0
  22. package/build/browser/object/formatting/formatNumber.js +242 -0
  23. package/build/browser/object/formatting/formatNumber.js.map +1 -0
  24. package/build/browser/object/formatting/propertyFormattingUtils.js +39 -0
  25. package/build/browser/object/formatting/propertyFormattingUtils.js.map +1 -0
  26. package/build/browser/util/UserAgent.js +2 -2
  27. package/build/cjs/{chunk-DCEFUXFS.cjs → chunk-6L3MX4LH.cjs} +35 -15
  28. package/build/cjs/chunk-6L3MX4LH.cjs.map +1 -0
  29. package/build/cjs/{chunk-BP7BR5FZ.cjs → chunk-X7WMWKLM.cjs} +298 -54
  30. package/build/cjs/chunk-X7WMWKLM.cjs.map +1 -0
  31. package/build/cjs/index.cjs +8 -8
  32. package/build/cjs/public/internal.cjs +8 -8
  33. package/build/cjs/public/unstable-do-not-use.cjs +31 -31
  34. package/build/esm/Client.js +1 -1
  35. package/build/esm/Client.js.map +1 -1
  36. package/build/esm/fetchMetadata.test.js +11 -0
  37. package/build/esm/fetchMetadata.test.js.map +1 -1
  38. package/build/esm/internal/conversions/modernToLegacyWhereClause.js +15 -0
  39. package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  40. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
  41. package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  42. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +4 -0
  43. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  44. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +10 -0
  45. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  46. package/build/esm/object/convertWireToOsdkObjects.test.js +12 -0
  47. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  48. package/build/esm/object/formatting/applyPropertyFormatter.js +52 -0
  49. package/build/esm/object/formatting/applyPropertyFormatter.js.map +1 -0
  50. package/build/esm/object/formatting/applyPropertyFormatter.test.js +423 -0
  51. package/build/esm/object/formatting/applyPropertyFormatter.test.js.map +1 -0
  52. package/build/esm/object/formatting/formatBoolean.js +23 -0
  53. package/build/esm/object/formatting/formatBoolean.js.map +1 -0
  54. package/build/esm/object/formatting/formatNumber.js +242 -0
  55. package/build/esm/object/formatting/formatNumber.js.map +1 -0
  56. package/build/esm/object/formatting/propertyFormattingUtils.js +39 -0
  57. package/build/esm/object/formatting/propertyFormattingUtils.js.map +1 -0
  58. package/build/esm/util/UserAgent.js +2 -2
  59. package/build/types/Client.d.ts +1 -1
  60. package/build/types/object/formatting/applyPropertyFormatter.d.ts +18 -0
  61. package/build/types/object/formatting/applyPropertyFormatter.d.ts.map +1 -0
  62. package/build/types/object/formatting/applyPropertyFormatter.test.d.ts +1 -0
  63. package/build/types/object/formatting/applyPropertyFormatter.test.d.ts.map +1 -0
  64. package/build/types/object/formatting/formatBoolean.d.ts +5 -0
  65. package/build/types/object/formatting/formatBoolean.d.ts.map +1 -0
  66. package/build/types/object/formatting/formatNumber.d.ts +15 -0
  67. package/build/types/object/formatting/formatNumber.d.ts.map +1 -0
  68. package/build/types/object/formatting/propertyFormattingUtils.d.ts +10 -0
  69. package/build/types/object/formatting/propertyFormattingUtils.d.ts.map +1 -0
  70. package/package.json +7 -7
  71. package/build/cjs/chunk-BP7BR5FZ.cjs.map +0 -1
  72. package/build/cjs/chunk-DCEFUXFS.cjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkBP7BR5FZ_cjs = require('../chunk-BP7BR5FZ.cjs');
4
- var chunkDCEFUXFS_cjs = require('../chunk-DCEFUXFS.cjs');
3
+ var chunkX7WMWKLM_cjs = require('../chunk-X7WMWKLM.cjs');
4
+ var chunk6L3MX4LH_cjs = require('../chunk-6L3MX4LH.cjs');
5
5
  require('../chunk-Q7SFCCGT.cjs');
6
6
  var trie = require('@wry/trie');
7
7
  var deepEqual5 = require('fast-deep-equal');
@@ -142,7 +142,7 @@ var WhereClauseCanonicalizer = class {
142
142
  var whereCanonicalizer = new WhereClauseCanonicalizer();
143
143
  var orderByCanonicalizer = new OrderByCanonicalizer();
144
144
  function computeObjectSetCacheKey(objectSet, options) {
145
- const keyParts = ["objectSet", chunkDCEFUXFS_cjs.getWireObjectSet(objectSet)];
145
+ const keyParts = ["objectSet", chunk6L3MX4LH_cjs.getWireObjectSet(objectSet)];
146
146
  if (!options) {
147
147
  return JSON.stringify(keyParts);
148
148
  }
@@ -154,13 +154,13 @@ function computeObjectSetCacheKey(objectSet, options) {
154
154
  keyParts.push("props", propKeys);
155
155
  }
156
156
  if (options.union && options.union.length > 0) {
157
- keyParts.push("union", options.union.map((os) => chunkDCEFUXFS_cjs.getWireObjectSet(os)));
157
+ keyParts.push("union", options.union.map((os) => chunk6L3MX4LH_cjs.getWireObjectSet(os)));
158
158
  }
159
159
  if (options.intersect && options.intersect.length > 0) {
160
- keyParts.push("intersect", options.intersect.map((os) => chunkDCEFUXFS_cjs.getWireObjectSet(os)));
160
+ keyParts.push("intersect", options.intersect.map((os) => chunk6L3MX4LH_cjs.getWireObjectSet(os)));
161
161
  }
162
162
  if (options.subtract && options.subtract.length > 0) {
163
- keyParts.push("subtract", options.subtract.map((os) => chunkDCEFUXFS_cjs.getWireObjectSet(os)));
163
+ keyParts.push("subtract", options.subtract.map((os) => chunk6L3MX4LH_cjs.getWireObjectSet(os)));
164
164
  }
165
165
  if (options.pivotTo) {
166
166
  keyParts.push("pivotTo", options.pivotTo);
@@ -319,7 +319,7 @@ var OptimisticJob = class {
319
319
  return this;
320
320
  },
321
321
  createObject(type, pk, properties) {
322
- const create = store.client[chunkDCEFUXFS_cjs.additionalContext].objectFactory2(store.client[chunkDCEFUXFS_cjs.additionalContext], [{
322
+ const create = store.client[chunk6L3MX4LH_cjs.additionalContext].objectFactory2(store.client[chunk6L3MX4LH_cjs.additionalContext], [{
323
323
  $primaryKey: pk,
324
324
  $apiName: type.apiName,
325
325
  $objectType: type.apiName,
@@ -1003,7 +1003,7 @@ var Query = class {
1003
1003
  this.store = store;
1004
1004
  this.cacheKeys = store.cacheKeys;
1005
1005
  this.#subject = observable;
1006
- this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[chunkDCEFUXFS_cjs.additionalContext].logger : store.client[chunkDCEFUXFS_cjs.additionalContext].logger?.child({}, {
1006
+ this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[chunk6L3MX4LH_cjs.additionalContext].logger : store.client[chunk6L3MX4LH_cjs.additionalContext].logger?.child({}, {
1007
1007
  msgPrefix: process.env.NODE_ENV !== "production" ? `Query<${cacheKey.type}, ${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>` : "Query"
1008
1008
  }));
1009
1009
  }
@@ -1576,7 +1576,7 @@ var SpecificLinkQuery = class extends BaseListQuery {
1576
1576
  batch.changes.modified.add(this.cacheKey);
1577
1577
  }
1578
1578
  constructor(store, subject, cacheKey, opts) {
1579
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkDCEFUXFS_cjs.additionalContext].logger?.child({}, {
1579
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunk6L3MX4LH_cjs.additionalContext].logger?.child({}, {
1580
1580
  msgPrefix: `SpecificLinkQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
1581
1581
  }) : void 0);
1582
1582
  [this.#sourceApiName, this.#sourcePk, this.#linkName, this.#whereClause, this.#orderBy] = cacheKey.otherKeys;
@@ -1593,7 +1593,7 @@ var SpecificLinkQuery = class extends BaseListQuery {
1593
1593
  type: "object",
1594
1594
  apiName: this.#sourceApiName
1595
1595
  };
1596
- const sourceMetadata = await client[chunkDCEFUXFS_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
1596
+ const sourceMetadata = await client[chunk6L3MX4LH_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
1597
1597
  const sourceQuery = client(sourceObjectDef).where({
1598
1598
  [sourceMetadata.primaryKeyApiName]: this.#sourcePk
1599
1599
  });
@@ -1657,7 +1657,7 @@ var SpecificLinkQuery = class extends BaseListQuery {
1657
1657
  return this.revalidate(true);
1658
1658
  } else {
1659
1659
  return (async () => {
1660
- const sourceMetadata = await this.store.client[chunkDCEFUXFS_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
1660
+ const sourceMetadata = await this.store.client[chunk6L3MX4LH_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
1661
1661
  const linkDef = sourceMetadata.links?.[this.#linkName];
1662
1662
  if (!linkDef || linkDef.targetType !== objectType) return;
1663
1663
  const promise = this.revalidate(true);
@@ -1788,7 +1788,7 @@ var ListQuery = class extends BaseListQuery {
1788
1788
  batch.changes.registerList(this.cacheKey);
1789
1789
  }
1790
1790
  constructor(store, subject, apiName, whereClause, orderBy, cacheKey, opts) {
1791
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkDCEFUXFS_cjs.additionalContext].logger?.child({}, {
1791
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunk6L3MX4LH_cjs.additionalContext].logger?.child({}, {
1792
1792
  msgPrefix: `ListQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
1793
1793
  }) : void 0);
1794
1794
  this.apiName = apiName;
@@ -2080,7 +2080,7 @@ var InterfaceListQuery = class extends ListQuery {
2080
2080
  }
2081
2081
  extractRelevantObjects(changes) {
2082
2082
  const matchesApiName = ([, object]) => {
2083
- return this.apiName in object[chunkBP7BR5FZ_cjs.ObjectDefRef].interfaceMap;
2083
+ return this.apiName in object[chunkX7WMWKLM_cjs.ObjectDefRef].interfaceMap;
2084
2084
  };
2085
2085
  const added = Array.from(changes.addedObjects).filter(matchesApiName).map(([, object]) => object.$as(this.apiName));
2086
2086
  const modified = Array.from(changes.modifiedObjects).filter(matchesApiName).map(([, object]) => object.$as(this.apiName));
@@ -2101,7 +2101,7 @@ var InterfaceListQuery = class extends ListQuery {
2101
2101
  async function reloadDataAsFullObjects(client, data) {
2102
2102
  const groups = groupBy__default.default(data, (x) => x.$objectType);
2103
2103
  const objectTypeToPrimaryKeyToObject = Object.fromEntries(await Promise.all(Object.entries(groups).map(async ([apiName, objects]) => {
2104
- const objectDef = objects[0][chunkBP7BR5FZ_cjs.UnderlyingOsdkObject][chunkBP7BR5FZ_cjs.ObjectDefRef];
2104
+ const objectDef = objects[0][chunkX7WMWKLM_cjs.UnderlyingOsdkObject][chunkX7WMWKLM_cjs.ObjectDefRef];
2105
2105
  const where = {
2106
2106
  [objectDef.primaryKeyApiName]: {
2107
2107
  $in: objects.map((x) => x.$primaryKey)
@@ -2211,7 +2211,7 @@ var BulkObjectLoader = class {
2211
2211
  #maxEntries;
2212
2212
  constructor(client, maxWait = 25, maxEntries = 100) {
2213
2213
  this.#client = client;
2214
- this.#logger = client[chunkDCEFUXFS_cjs.additionalContext].logger;
2214
+ this.#logger = client[chunk6L3MX4LH_cjs.additionalContext].logger;
2215
2215
  this.#maxWait = maxWait;
2216
2216
  this.#maxEntries = maxEntries;
2217
2217
  }
@@ -2274,7 +2274,7 @@ var ObjectQuery = class extends Query {
2274
2274
  #apiName;
2275
2275
  #pk;
2276
2276
  constructor(store, subject, type, pk, cacheKey, opts) {
2277
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkDCEFUXFS_cjs.additionalContext].logger?.child({}, {
2277
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunk6L3MX4LH_cjs.additionalContext].logger?.child({}, {
2278
2278
  msgPrefix: `ObjectQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
2279
2279
  }) : void 0);
2280
2280
  this.#apiName = type;
@@ -2410,7 +2410,7 @@ var ObjectSetQuery = class extends BaseListQuery {
2410
2410
  #composedObjectSet;
2411
2411
  #objectTypes;
2412
2412
  constructor(store, subject, baseObjectSetWire, operations, cacheKey, opts) {
2413
- super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkDCEFUXFS_cjs.additionalContext].logger?.child({}, {
2413
+ super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunk6L3MX4LH_cjs.additionalContext].logger?.child({}, {
2414
2414
  msgPrefix: `ObjectSetQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
2415
2415
  }) : void 0);
2416
2416
  this.#baseObjectSetWire = baseObjectSetWire;
@@ -2453,7 +2453,7 @@ var ObjectSetQuery = class extends BaseListQuery {
2453
2453
  }
2454
2454
  if (opts.union) {
2455
2455
  for (const os of opts.union) {
2456
- const wire = chunkDCEFUXFS_cjs.getWireObjectSet(os);
2456
+ const wire = chunk6L3MX4LH_cjs.getWireObjectSet(os);
2457
2457
  if (wire.type) {
2458
2458
  types.add(wire.type);
2459
2459
  }
@@ -2461,7 +2461,7 @@ var ObjectSetQuery = class extends BaseListQuery {
2461
2461
  }
2462
2462
  if (opts.intersect) {
2463
2463
  for (const os of opts.intersect) {
2464
- const wire = chunkDCEFUXFS_cjs.getWireObjectSet(os);
2464
+ const wire = chunk6L3MX4LH_cjs.getWireObjectSet(os);
2465
2465
  if (wire.type) {
2466
2466
  types.add(wire.type);
2467
2467
  }
@@ -2469,7 +2469,7 @@ var ObjectSetQuery = class extends BaseListQuery {
2469
2469
  }
2470
2470
  if (opts.subtract) {
2471
2471
  for (const os of opts.subtract) {
2472
- const wire = chunkDCEFUXFS_cjs.getWireObjectSet(os);
2472
+ const wire = chunk6L3MX4LH_cjs.getWireObjectSet(os);
2473
2473
  if (wire.type) {
2474
2474
  types.add(wire.type);
2475
2475
  }
@@ -2543,7 +2543,7 @@ var ObjectSetHelper = class extends AbstractHelper {
2543
2543
  const {
2544
2544
  baseObjectSet
2545
2545
  } = options;
2546
- const baseObjectSetWire = JSON.stringify(chunkDCEFUXFS_cjs.getWireObjectSet(baseObjectSet));
2546
+ const baseObjectSetWire = JSON.stringify(chunk6L3MX4LH_cjs.getWireObjectSet(baseObjectSet));
2547
2547
  const operations = this.buildCanonicalizedOperations(options);
2548
2548
  const objectSetCacheKey = this.cacheKeys.get("objectSet", baseObjectSetWire, operations);
2549
2549
  return this.store.queries.get(objectSetCacheKey, () => {
@@ -2559,13 +2559,13 @@ var ObjectSetHelper = class extends AbstractHelper {
2559
2559
  operations.withProperties = Object.keys(options.withProperties).sort();
2560
2560
  }
2561
2561
  if (options.union && options.union.length > 0) {
2562
- operations.union = options.union.map((os) => JSON.stringify(chunkDCEFUXFS_cjs.getWireObjectSet(os)));
2562
+ operations.union = options.union.map((os) => JSON.stringify(chunk6L3MX4LH_cjs.getWireObjectSet(os)));
2563
2563
  }
2564
2564
  if (options.intersect && options.intersect.length > 0) {
2565
- operations.intersect = options.intersect.map((os) => JSON.stringify(chunkDCEFUXFS_cjs.getWireObjectSet(os)));
2565
+ operations.intersect = options.intersect.map((os) => JSON.stringify(chunk6L3MX4LH_cjs.getWireObjectSet(os)));
2566
2566
  }
2567
2567
  if (options.subtract && options.subtract.length > 0) {
2568
- operations.subtract = options.subtract.map((os) => JSON.stringify(chunkDCEFUXFS_cjs.getWireObjectSet(os)));
2568
+ operations.subtract = options.subtract.map((os) => JSON.stringify(chunk6L3MX4LH_cjs.getWireObjectSet(os)));
2569
2569
  }
2570
2570
  if (options.pivotTo) {
2571
2571
  operations.pivotTo = options.pivotTo;
@@ -2618,7 +2618,7 @@ var Store = class {
2618
2618
  subjects = this.layers.subjects;
2619
2619
  // these are hopefully temporary
2620
2620
  constructor(client) {
2621
- this.logger = client[chunkDCEFUXFS_cjs.additionalContext].logger?.child({}, {
2621
+ this.logger = client[chunk6L3MX4LH_cjs.additionalContext].logger?.child({}, {
2622
2622
  msgPrefix: "Store"
2623
2623
  });
2624
2624
  this.client = client;
@@ -2757,10 +2757,10 @@ var Store = class {
2757
2757
 
2758
2758
  // src/observable/ObservableClient.ts
2759
2759
  function createObservableClient(client) {
2760
- const tweakedClient = chunkBP7BR5FZ_cjs.createClientFromContext({
2761
- ...client[chunkDCEFUXFS_cjs.additionalContext],
2762
- fetch: shared_net_fetch.createFetchHeaderMutator(client[chunkDCEFUXFS_cjs.additionalContext].fetch, (headers) => {
2763
- headers.set("Fetch-User-Agent", [headers.get("Fetch-User-Agent"), chunkBP7BR5FZ_cjs.OBSERVABLE_USER_AGENT].filter((x) => x && x?.length > 0).join(" "));
2760
+ const tweakedClient = chunkX7WMWKLM_cjs.createClientFromContext({
2761
+ ...client[chunk6L3MX4LH_cjs.additionalContext],
2762
+ fetch: shared_net_fetch.createFetchHeaderMutator(client[chunk6L3MX4LH_cjs.additionalContext].fetch, (headers) => {
2763
+ headers.set("Fetch-User-Agent", [headers.get("Fetch-User-Agent"), chunkX7WMWKLM_cjs.OBSERVABLE_USER_AGENT].filter((x) => x && x?.length > 0).join(" "));
2764
2764
  return headers;
2765
2765
  })
2766
2766
  });
@@ -2803,11 +2803,11 @@ function getOsdkConfig(ontologyRid) {
2803
2803
 
2804
2804
  Object.defineProperty(exports, "createClientWithTransaction", {
2805
2805
  enumerable: true,
2806
- get: function () { return chunkBP7BR5FZ_cjs.createClientWithTransaction; }
2806
+ get: function () { return chunkX7WMWKLM_cjs.createClientWithTransaction; }
2807
2807
  });
2808
2808
  Object.defineProperty(exports, "augment", {
2809
2809
  enumerable: true,
2810
- get: function () { return chunkDCEFUXFS_cjs.augment; }
2810
+ get: function () { return chunk6L3MX4LH_cjs.augment; }
2811
2811
  });
2812
2812
  exports.computeObjectSetCacheKey = computeObjectSetCacheKey;
2813
2813
  exports.createObservableClient = createObservableClient;
@@ -21,7 +21,7 @@
21
21
  export const additionalContext = Symbol("additionalContext");
22
22
 
23
23
  // BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.
24
- const MaxOsdkVersion = "2.5.0";
24
+ const MaxOsdkVersion = "2.6.0";
25
25
  // END: THIS IS GENERATED CODE. DO NOT EDIT.
26
26
 
27
27
  const ErrorMessage = Symbol("ErrorMessage");
@@ -1 +1 @@
1
- {"version":3,"file":"Client.js","names":["additionalContext","Symbol","MaxOsdkVersion","ErrorMessage"],"sources":["Client.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionDefinition,\n ActionMetadata,\n CompileTimeMetadata,\n InterfaceDefinition,\n InterfaceMetadata,\n ObjectMetadata,\n ObjectSet,\n ObjectTypeDefinition,\n QueryDefinition,\n QueryMetadata,\n VersionBound,\n} from \"@osdk/api\";\nimport type {\n Experiment,\n ExperimentFns,\n MinimalObjectSet,\n} from \"@osdk/api/unstable\";\nimport type { SharedClient } from \"@osdk/shared.client2\";\nimport type { ActionSignatureFromDef } from \"./actions/applyAction.js\";\nimport type { MinimalClient } from \"./MinimalClientContext.js\";\nimport type { QuerySignatureFromDef } from \"./queries/types.js\";\nimport type { SatisfiesSemver } from \"./SatisfiesSemver.js\";\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\ntype OldSharedClient = import(\"@osdk/shared.client\").SharedClient;\n\nexport type CheckVersionBound<Q> = Q extends VersionBound<infer V> ? (\n SatisfiesSemver<V, MaxOsdkVersion> extends true ? Q\n : Q & {\n [ErrorMessage]:\n `Your SDK requires a semver compatible version with ${V}. You have ${MaxOsdkVersion}. Update your package.json`;\n }\n )\n : Q;\n\nexport interface Client extends SharedClient, OldSharedClient {\n <Q extends ObjectTypeDefinition>(\n o: Q,\n ): unknown extends CompileTimeMetadata<Q>[\"objectSet\"] ? ObjectSet<Q>\n : CompileTimeMetadata<Q>[\"objectSet\"];\n\n <Q extends (InterfaceDefinition)>(\n o: Q,\n ): unknown extends CompileTimeMetadata<Q>[\"objectSet\"] ? MinimalObjectSet<Q>\n : CompileTimeMetadata<Q>[\"objectSet\"];\n\n <Q extends ActionDefinition<any>>(\n o: Q,\n ): ActionSignatureFromDef<Q>;\n\n <Q extends QueryDefinition<any>>(\n o: Q,\n ): QuerySignatureFromDef<Q>;\n\n <Q extends Experiment<\"2.0.8\"> | Experiment<\"2.1.0\"> | Experiment<\"2.2.0\">>(\n experiment: Q,\n ): ExperimentFns<Q>;\n\n fetchMetadata<\n Q extends (\n | ObjectTypeDefinition\n | InterfaceDefinition\n | ActionDefinition<any>\n | QueryDefinition<any>\n ),\n >(o: Q): Promise<\n Q extends ObjectTypeDefinition ? ObjectMetadata\n : Q extends InterfaceDefinition ? InterfaceMetadata\n : Q extends ActionDefinition<any> ? ActionMetadata\n : Q extends QueryDefinition<any> ? QueryMetadata\n : never\n >;\n\n /** @internal */\n [additionalContext]: MinimalClient;\n}\n\n// DO NOT EXPORT FROM PACKAGE\n/** @internal */\nexport const additionalContext: unique symbol = Symbol(\"additionalContext\");\n\n// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.\nconst MaxOsdkVersion = \"2.5.0\";\n// END: THIS IS GENERATED CODE. DO NOT EDIT.\nexport type MaxOsdkVersion = typeof MaxOsdkVersion;\nconst ErrorMessage: unique symbol = Symbol(\"ErrorMessage\");\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA0BA;;AAsDA;AACA;AACA,OAAO,MAAMA,iBAAgC,GAAGC,MAAM,CAAC,mBAAmB,CAAC;;AAE3E;AACA,MAAMC,cAAc,GAAG,OAAO;AAC9B;;AAEA,MAAMC,YAA2B,GAAGF,MAAM,CAAC,cAAc,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Client.js","names":["additionalContext","Symbol","MaxOsdkVersion","ErrorMessage"],"sources":["Client.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionDefinition,\n ActionMetadata,\n CompileTimeMetadata,\n InterfaceDefinition,\n InterfaceMetadata,\n ObjectMetadata,\n ObjectSet,\n ObjectTypeDefinition,\n QueryDefinition,\n QueryMetadata,\n VersionBound,\n} from \"@osdk/api\";\nimport type {\n Experiment,\n ExperimentFns,\n MinimalObjectSet,\n} from \"@osdk/api/unstable\";\nimport type { SharedClient } from \"@osdk/shared.client2\";\nimport type { ActionSignatureFromDef } from \"./actions/applyAction.js\";\nimport type { MinimalClient } from \"./MinimalClientContext.js\";\nimport type { QuerySignatureFromDef } from \"./queries/types.js\";\nimport type { SatisfiesSemver } from \"./SatisfiesSemver.js\";\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\ntype OldSharedClient = import(\"@osdk/shared.client\").SharedClient;\n\nexport type CheckVersionBound<Q> = Q extends VersionBound<infer V> ? (\n SatisfiesSemver<V, MaxOsdkVersion> extends true ? Q\n : Q & {\n [ErrorMessage]:\n `Your SDK requires a semver compatible version with ${V}. You have ${MaxOsdkVersion}. Update your package.json`;\n }\n )\n : Q;\n\nexport interface Client extends SharedClient, OldSharedClient {\n <Q extends ObjectTypeDefinition>(\n o: Q,\n ): unknown extends CompileTimeMetadata<Q>[\"objectSet\"] ? ObjectSet<Q>\n : CompileTimeMetadata<Q>[\"objectSet\"];\n\n <Q extends (InterfaceDefinition)>(\n o: Q,\n ): unknown extends CompileTimeMetadata<Q>[\"objectSet\"] ? MinimalObjectSet<Q>\n : CompileTimeMetadata<Q>[\"objectSet\"];\n\n <Q extends ActionDefinition<any>>(\n o: Q,\n ): ActionSignatureFromDef<Q>;\n\n <Q extends QueryDefinition<any>>(\n o: Q,\n ): QuerySignatureFromDef<Q>;\n\n <Q extends Experiment<\"2.0.8\"> | Experiment<\"2.1.0\"> | Experiment<\"2.2.0\">>(\n experiment: Q,\n ): ExperimentFns<Q>;\n\n fetchMetadata<\n Q extends (\n | ObjectTypeDefinition\n | InterfaceDefinition\n | ActionDefinition<any>\n | QueryDefinition<any>\n ),\n >(o: Q): Promise<\n Q extends ObjectTypeDefinition ? ObjectMetadata\n : Q extends InterfaceDefinition ? InterfaceMetadata\n : Q extends ActionDefinition<any> ? ActionMetadata\n : Q extends QueryDefinition<any> ? QueryMetadata\n : never\n >;\n\n /** @internal */\n [additionalContext]: MinimalClient;\n}\n\n// DO NOT EXPORT FROM PACKAGE\n/** @internal */\nexport const additionalContext: unique symbol = Symbol(\"additionalContext\");\n\n// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.\nconst MaxOsdkVersion = \"2.6.0\";\n// END: THIS IS GENERATED CODE. DO NOT EDIT.\nexport type MaxOsdkVersion = typeof MaxOsdkVersion;\nconst ErrorMessage: unique symbol = Symbol(\"ErrorMessage\");\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA0BA;;AAsDA;AACA;AACA,OAAO,MAAMA,iBAAgC,GAAGC,MAAM,CAAC,mBAAmB,CAAC;;AAE3E;AACA,MAAMC,cAAc,GAAG,OAAO;AAC9B;;AAEA,MAAMC,YAA2B,GAAGF,MAAM,CAAC,cAAc,CAAC","ignoreList":[]}
@@ -85,6 +85,7 @@ describe("FetchMetadata", () => {
85
85
  "multiplicity": false,
86
86
  "nullable": true,
87
87
  "type": "string",
88
+ "valueFormatting": undefined,
88
89
  "valueTypeApiName": undefined,
89
90
  },
90
91
  "employeeId": {
@@ -93,6 +94,7 @@ describe("FetchMetadata", () => {
93
94
  "multiplicity": false,
94
95
  "nullable": false,
95
96
  "type": "integer",
97
+ "valueFormatting": undefined,
96
98
  "valueTypeApiName": undefined,
97
99
  },
98
100
  "employeeLocation": {
@@ -101,6 +103,7 @@ describe("FetchMetadata", () => {
101
103
  "multiplicity": false,
102
104
  "nullable": true,
103
105
  "type": "geotimeSeriesReference",
106
+ "valueFormatting": undefined,
104
107
  "valueTypeApiName": undefined,
105
108
  },
106
109
  "employeeSensor": {
@@ -109,6 +112,7 @@ describe("FetchMetadata", () => {
109
112
  "multiplicity": false,
110
113
  "nullable": true,
111
114
  "type": "sensorTimeseries",
115
+ "valueFormatting": undefined,
112
116
  "valueTypeApiName": undefined,
113
117
  },
114
118
  "employeeStatus": {
@@ -117,6 +121,7 @@ describe("FetchMetadata", () => {
117
121
  "multiplicity": false,
118
122
  "nullable": true,
119
123
  "type": "stringTimeseries",
124
+ "valueFormatting": undefined,
120
125
  "valueTypeApiName": undefined,
121
126
  },
122
127
  "fullName": {
@@ -125,6 +130,7 @@ describe("FetchMetadata", () => {
125
130
  "multiplicity": false,
126
131
  "nullable": true,
127
132
  "type": "string",
133
+ "valueFormatting": undefined,
128
134
  "valueTypeApiName": undefined,
129
135
  },
130
136
  "office": {
@@ -134,6 +140,7 @@ describe("FetchMetadata", () => {
134
140
  "multiplicity": false,
135
141
  "nullable": true,
136
142
  "type": "string",
143
+ "valueFormatting": undefined,
137
144
  "valueTypeApiName": undefined,
138
145
  },
139
146
  "skillSet": {
@@ -142,6 +149,7 @@ describe("FetchMetadata", () => {
142
149
  "multiplicity": false,
143
150
  "nullable": true,
144
151
  "type": "string",
152
+ "valueFormatting": undefined,
145
153
  "valueTypeApiName": undefined,
146
154
  },
147
155
  "skillSetEmbedding": {
@@ -150,6 +158,7 @@ describe("FetchMetadata", () => {
150
158
  "multiplicity": false,
151
159
  "nullable": true,
152
160
  "type": "vector",
161
+ "valueFormatting": undefined,
153
162
  "valueTypeApiName": undefined,
154
163
  },
155
164
  "startDate": {
@@ -158,6 +167,7 @@ describe("FetchMetadata", () => {
158
167
  "multiplicity": false,
159
168
  "nullable": true,
160
169
  "type": "datetime",
170
+ "valueFormatting": undefined,
161
171
  "valueTypeApiName": undefined,
162
172
  },
163
173
  },
@@ -196,6 +206,7 @@ describe("FetchMetadata", () => {
196
206
  "multiplicity": false,
197
207
  "nullable": true,
198
208
  "type": "string",
209
+ "valueFormatting": undefined,
199
210
  "valueTypeApiName": undefined,
200
211
  },
201
212
  },
@@ -1 +1 @@
1
- {"version":3,"file":"fetchMetadata.test.js","names":["$Actions","$Interfaces","$Objects","$Queries","LegacyFauxFoundry","startNodeApiServer","beforeAll","describe","expect","expectTypeOf","it","createClient","client","testSetup","apiServer","close","objectMetadata","fetchMetadata","Employee","toEqualTypeOf","toMatchInlineSnapshot","interfaceMetadata","FooInterface","actionMetadata","moveOffice","queryMetadata","queryAcceptsObject"],"sources":["fetchMetadata.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionMetadata,\n InterfaceMetadata,\n ObjectMetadata,\n QueryMetadata,\n} from \"@osdk/api\";\nimport {\n $Actions,\n $Interfaces,\n $Objects,\n $Queries,\n} from \"@osdk/client.test.ontology\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport type { Client } from \"./Client.js\";\nimport { createClient } from \"./createClient.js\";\n\ndescribe(\"FetchMetadata\", () => {\n let client: Client;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"fetches object metadata correctly\", async () => {\n const objectMetadata = await client.fetchMetadata($Objects.Employee);\n\n expectTypeOf(objectMetadata).toEqualTypeOf<\n ObjectMetadata\n >();\n\n expect(objectMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"Employee\",\n \"description\": \"A full-time or part-time \n\n employee of our firm\",\n \"displayName\": \"Employee\",\n \"icon\": {\n \"color\": \"blue\",\n \"name\": \"person\",\n \"type\": \"blueprint\",\n },\n \"implements\": [\n \"FooInterface\",\n ],\n \"interfaceMap\": {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n \"inverseInterfaceMap\": {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n \"links\": {\n \"lead\": {\n \"multiplicity\": false,\n \"targetType\": \"Employee\",\n },\n \"officeLink\": {\n \"multiplicity\": false,\n \"targetType\": \"Office\",\n },\n \"peeps\": {\n \"multiplicity\": true,\n \"targetType\": \"Employee\",\n },\n \"visitedOffices\": {\n \"multiplicity\": true,\n \"targetType\": \"Office\",\n },\n },\n \"pluralDisplayName\": \"Employees\",\n \"primaryKeyApiName\": \"employeeId\",\n \"primaryKeyType\": \"integer\",\n \"properties\": {\n \"class\": {\n \"description\": \"\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeId\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"integer\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeLocation\": {\n \"description\": \"Geotime series reference of the location of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"geotimeSeriesReference\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeSensor\": {\n \"description\": \"TimeSeries sensor of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"sensorTimeseries\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeStatus\": {\n \"description\": \"TimeSeries of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"stringTimeseries\",\n \"valueTypeApiName\": undefined,\n },\n \"fullName\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"office\": {\n \"description\": \"The unique \"ID\" of the employee's \\\\\"primary\\\\\" assigned office.\n This is some more text.\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"skillSet\": {\n \"description\": \"The skills of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"skillSetEmbedding\": {\n \"description\": \"Vectorized skill set\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"vector\",\n \"valueTypeApiName\": undefined,\n },\n \"startDate\": {\n \"description\": \"The date the employee was hired (most recently, if they were re-hired)\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"datetime\",\n \"valueTypeApiName\": undefined,\n },\n },\n \"rid\": \"ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44\",\n \"status\": \"ACTIVE\",\n \"titleProperty\": \"fullName\",\n \"type\": \"object\",\n \"visibility\": \"NORMAL\",\n }\n `);\n });\n\n it(\"fetches interface metadata correctly\", async () => {\n const interfaceMetadata = await client.fetchMetadata(\n $Interfaces.FooInterface,\n );\n\n expectTypeOf(interfaceMetadata).toEqualTypeOf<\n InterfaceMetadata\n >();\n\n expect(interfaceMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {\n \"toBar\": {\n \"multiplicity\": true,\n \"targetType\": \"interface\",\n \"targetTypeApiName\": \"BarInterface\",\n },\n },\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n }\n `);\n });\n\n it(\"fetches action metadata correctly\", async () => {\n const actionMetadata = await client.fetchMetadata(\n $Actions.moveOffice,\n );\n\n expectTypeOf(actionMetadata).toEqualTypeOf<ActionMetadata>();\n\n expect(actionMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"moveOffice\",\n \"description\": \"Update an office's physical location\",\n \"displayName\": \"move-office\",\n \"modifiedEntities\": {\n \"Office\": {\n \"created\": false,\n \"modified\": true,\n },\n },\n \"parameters\": {\n \"newAddress\": {\n \"description\": \"The office's new physical address (not necessarily shipping address)\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"newCapacity\": {\n \"description\": \"The maximum seated-at-desk capacity of the new office (maximum fire-safe capacity may be higher)\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"integer\",\n },\n \"officeId\": {\n \"description\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"string\",\n },\n \"officeNames\": {\n \"description\": \"A list of all office names\",\n \"multiplicity\": true,\n \"nullable\": true,\n \"type\": \"integer\",\n },\n },\n \"rid\": \"ri.ontology.main.action-type.9f84017d-cf17-4fa8-84c3-8e01e5d594f2\",\n \"status\": \"ACTIVE\",\n \"type\": \"action\",\n }\n `);\n });\n\n it(\"fetches query metadata correctly\", async () => {\n const queryMetadata = await client.fetchMetadata(\n $Queries.queryAcceptsObject,\n );\n\n expectTypeOf(queryMetadata).toEqualTypeOf<QueryMetadata>();\n\n expect(queryMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"queryAcceptsObject\",\n \"description\": \"description of the query that takes object types\",\n \"displayName\": \"QueryAcceptsObject\",\n \"output\": {\n \"nullable\": false,\n \"object\": \"Employee\",\n \"type\": \"object\",\n },\n \"parameters\": {\n \"object\": {\n \"description\": undefined,\n \"nullable\": false,\n \"object\": \"Employee\",\n \"type\": \"object\",\n },\n },\n \"rid\": \"ri.function-registry.main.function.9b55870a-63c7-4d48-8f06-9627c0805968\",\n \"type\": \"query\",\n \"version\": \"0.11.0\",\n }\n `);\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SACEA,QAAQ,EACRC,WAAW,EACXC,QAAQ,EACRC,QAAQ,QACH,4BAA4B;AACnC,SAASC,iBAAiB,EAAEC,kBAAkB,QAAQ,mBAAmB;AACzE,SAASC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,YAAY,EAAEC,EAAE,QAAQ,QAAQ;AAEtE,SAASC,YAAY,QAAQ,mBAAmB;AAEhDJ,QAAQ,CAAC,eAAe,EAAE,MAAM;EAC9B,IAAIK,MAAc;EAElBN,SAAS,CAAC,MAAM;IACd,MAAMO,SAAS,GAAGR,kBAAkB,CAAC,IAAID,iBAAiB,CAAC,CAAC,EAAEO,YAAY,CAAC;IAC3E,CAAC;MAAEC;IAAO,CAAC,GAAGC,SAAS;IACvB,OAAO,MAAM;MACXA,SAAS,CAACC,SAAS,CAACC,KAAK,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAClD,MAAMM,cAAc,GAAG,MAAMJ,MAAM,CAACK,aAAa,CAACf,QAAQ,CAACgB,QAAQ,CAAC;IAEpET,YAAY,CAACO,cAAc,CAAC,CAACG,aAAa,CAExC,CAAC;IAEHX,MAAM,CAACQ,cAAc,CAAC,CAACI,qBAAqB,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFV,EAAE,CAAC,sCAAsC,EAAE,YAAY;IACrD,MAAMW,iBAAiB,GAAG,MAAMT,MAAM,CAACK,aAAa,CAClDhB,WAAW,CAACqB,YACd,CAAC;IAEDb,YAAY,CAACY,iBAAiB,CAAC,CAACF,aAAa,CAE3C,CAAC;IAEHX,MAAM,CAACa,iBAAiB,CAAC,CAACD,qBAAqB,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFV,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAClD,MAAMa,cAAc,GAAG,MAAMX,MAAM,CAACK,aAAa,CAC/CjB,QAAQ,CAACwB,UACX,CAAC;IAEDf,YAAY,CAACc,cAAc,CAAC,CAACJ,aAAa,CAAiB,CAAC;IAE5DX,MAAM,CAACe,cAAc,CAAC,CAACH,qBAAqB,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFV,EAAE,CAAC,kCAAkC,EAAE,YAAY;IACjD,MAAMe,aAAa,GAAG,MAAMb,MAAM,CAACK,aAAa,CAC9Cd,QAAQ,CAACuB,kBACX,CAAC;IAEDjB,YAAY,CAACgB,aAAa,CAAC,CAACN,aAAa,CAAgB,CAAC;IAE1DX,MAAM,CAACiB,aAAa,CAAC,CAACL,qBAAqB,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"fetchMetadata.test.js","names":["$Actions","$Interfaces","$Objects","$Queries","LegacyFauxFoundry","startNodeApiServer","beforeAll","describe","expect","expectTypeOf","it","createClient","client","testSetup","apiServer","close","objectMetadata","fetchMetadata","Employee","toEqualTypeOf","toMatchInlineSnapshot","interfaceMetadata","FooInterface","actionMetadata","moveOffice","queryMetadata","queryAcceptsObject"],"sources":["fetchMetadata.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionMetadata,\n InterfaceMetadata,\n ObjectMetadata,\n QueryMetadata,\n} from \"@osdk/api\";\nimport {\n $Actions,\n $Interfaces,\n $Objects,\n $Queries,\n} from \"@osdk/client.test.ontology\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport type { Client } from \"./Client.js\";\nimport { createClient } from \"./createClient.js\";\n\ndescribe(\"FetchMetadata\", () => {\n let client: Client;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"fetches object metadata correctly\", async () => {\n const objectMetadata = await client.fetchMetadata($Objects.Employee);\n\n expectTypeOf(objectMetadata).toEqualTypeOf<\n ObjectMetadata\n >();\n\n expect(objectMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"Employee\",\n \"description\": \"A full-time or part-time \n\n employee of our firm\",\n \"displayName\": \"Employee\",\n \"icon\": {\n \"color\": \"blue\",\n \"name\": \"person\",\n \"type\": \"blueprint\",\n },\n \"implements\": [\n \"FooInterface\",\n ],\n \"interfaceMap\": {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n \"inverseInterfaceMap\": {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n \"links\": {\n \"lead\": {\n \"multiplicity\": false,\n \"targetType\": \"Employee\",\n },\n \"officeLink\": {\n \"multiplicity\": false,\n \"targetType\": \"Office\",\n },\n \"peeps\": {\n \"multiplicity\": true,\n \"targetType\": \"Employee\",\n },\n \"visitedOffices\": {\n \"multiplicity\": true,\n \"targetType\": \"Office\",\n },\n },\n \"pluralDisplayName\": \"Employees\",\n \"primaryKeyApiName\": \"employeeId\",\n \"primaryKeyType\": \"integer\",\n \"properties\": {\n \"class\": {\n \"description\": \"\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueFormatting\": undefined,\n \"valueTypeApiName\": undefined,\n },\n \"employeeId\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"integer\",\n \"valueFormatting\": undefined,\n \"valueTypeApiName\": undefined,\n },\n \"employeeLocation\": {\n \"description\": \"Geotime series reference of the location of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"geotimeSeriesReference\",\n \"valueFormatting\": undefined,\n \"valueTypeApiName\": undefined,\n },\n \"employeeSensor\": {\n \"description\": \"TimeSeries sensor of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"sensorTimeseries\",\n \"valueFormatting\": undefined,\n \"valueTypeApiName\": undefined,\n },\n \"employeeStatus\": {\n \"description\": \"TimeSeries of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"stringTimeseries\",\n \"valueFormatting\": undefined,\n \"valueTypeApiName\": undefined,\n },\n \"fullName\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueFormatting\": undefined,\n \"valueTypeApiName\": undefined,\n },\n \"office\": {\n \"description\": \"The unique \"ID\" of the employee's \\\\\"primary\\\\\" assigned office.\n This is some more text.\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueFormatting\": undefined,\n \"valueTypeApiName\": undefined,\n },\n \"skillSet\": {\n \"description\": \"The skills of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueFormatting\": undefined,\n \"valueTypeApiName\": undefined,\n },\n \"skillSetEmbedding\": {\n \"description\": \"Vectorized skill set\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"vector\",\n \"valueFormatting\": undefined,\n \"valueTypeApiName\": undefined,\n },\n \"startDate\": {\n \"description\": \"The date the employee was hired (most recently, if they were re-hired)\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"datetime\",\n \"valueFormatting\": undefined,\n \"valueTypeApiName\": undefined,\n },\n },\n \"rid\": \"ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44\",\n \"status\": \"ACTIVE\",\n \"titleProperty\": \"fullName\",\n \"type\": \"object\",\n \"visibility\": \"NORMAL\",\n }\n `);\n });\n\n it(\"fetches interface metadata correctly\", async () => {\n const interfaceMetadata = await client.fetchMetadata(\n $Interfaces.FooInterface,\n );\n\n expectTypeOf(interfaceMetadata).toEqualTypeOf<\n InterfaceMetadata\n >();\n\n expect(interfaceMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {\n \"toBar\": {\n \"multiplicity\": true,\n \"targetType\": \"interface\",\n \"targetTypeApiName\": \"BarInterface\",\n },\n },\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueFormatting\": undefined,\n \"valueTypeApiName\": undefined,\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n }\n `);\n });\n\n it(\"fetches action metadata correctly\", async () => {\n const actionMetadata = await client.fetchMetadata(\n $Actions.moveOffice,\n );\n\n expectTypeOf(actionMetadata).toEqualTypeOf<ActionMetadata>();\n\n expect(actionMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"moveOffice\",\n \"description\": \"Update an office's physical location\",\n \"displayName\": \"move-office\",\n \"modifiedEntities\": {\n \"Office\": {\n \"created\": false,\n \"modified\": true,\n },\n },\n \"parameters\": {\n \"newAddress\": {\n \"description\": \"The office's new physical address (not necessarily shipping address)\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"newCapacity\": {\n \"description\": \"The maximum seated-at-desk capacity of the new office (maximum fire-safe capacity may be higher)\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"integer\",\n },\n \"officeId\": {\n \"description\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"string\",\n },\n \"officeNames\": {\n \"description\": \"A list of all office names\",\n \"multiplicity\": true,\n \"nullable\": true,\n \"type\": \"integer\",\n },\n },\n \"rid\": \"ri.ontology.main.action-type.9f84017d-cf17-4fa8-84c3-8e01e5d594f2\",\n \"status\": \"ACTIVE\",\n \"type\": \"action\",\n }\n `);\n });\n\n it(\"fetches query metadata correctly\", async () => {\n const queryMetadata = await client.fetchMetadata(\n $Queries.queryAcceptsObject,\n );\n\n expectTypeOf(queryMetadata).toEqualTypeOf<QueryMetadata>();\n\n expect(queryMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"queryAcceptsObject\",\n \"description\": \"description of the query that takes object types\",\n \"displayName\": \"QueryAcceptsObject\",\n \"output\": {\n \"nullable\": false,\n \"object\": \"Employee\",\n \"type\": \"object\",\n },\n \"parameters\": {\n \"object\": {\n \"description\": undefined,\n \"nullable\": false,\n \"object\": \"Employee\",\n \"type\": \"object\",\n },\n },\n \"rid\": \"ri.function-registry.main.function.9b55870a-63c7-4d48-8f06-9627c0805968\",\n \"type\": \"query\",\n \"version\": \"0.11.0\",\n }\n `);\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SACEA,QAAQ,EACRC,WAAW,EACXC,QAAQ,EACRC,QAAQ,QACH,4BAA4B;AACnC,SAASC,iBAAiB,EAAEC,kBAAkB,QAAQ,mBAAmB;AACzE,SAASC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,YAAY,EAAEC,EAAE,QAAQ,QAAQ;AAEtE,SAASC,YAAY,QAAQ,mBAAmB;AAEhDJ,QAAQ,CAAC,eAAe,EAAE,MAAM;EAC9B,IAAIK,MAAc;EAElBN,SAAS,CAAC,MAAM;IACd,MAAMO,SAAS,GAAGR,kBAAkB,CAAC,IAAID,iBAAiB,CAAC,CAAC,EAAEO,YAAY,CAAC;IAC3E,CAAC;MAAEC;IAAO,CAAC,GAAGC,SAAS;IACvB,OAAO,MAAM;MACXA,SAAS,CAACC,SAAS,CAACC,KAAK,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAClD,MAAMM,cAAc,GAAG,MAAMJ,MAAM,CAACK,aAAa,CAACf,QAAQ,CAACgB,QAAQ,CAAC;IAEpET,YAAY,CAACO,cAAc,CAAC,CAACG,aAAa,CAExC,CAAC;IAEHX,MAAM,CAACQ,cAAc,CAAC,CAACI,qBAAqB,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFV,EAAE,CAAC,sCAAsC,EAAE,YAAY;IACrD,MAAMW,iBAAiB,GAAG,MAAMT,MAAM,CAACK,aAAa,CAClDhB,WAAW,CAACqB,YACd,CAAC;IAEDb,YAAY,CAACY,iBAAiB,CAAC,CAACF,aAAa,CAE3C,CAAC;IAEHX,MAAM,CAACa,iBAAiB,CAAC,CAACD,qBAAqB,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFV,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAClD,MAAMa,cAAc,GAAG,MAAMX,MAAM,CAACK,aAAa,CAC/CjB,QAAQ,CAACwB,UACX,CAAC;IAEDf,YAAY,CAACc,cAAc,CAAC,CAACJ,aAAa,CAAiB,CAAC;IAE5DX,MAAM,CAACe,cAAc,CAAC,CAACH,qBAAqB,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFV,EAAE,CAAC,kCAAkC,EAAE,YAAY;IACjD,MAAMe,aAAa,GAAG,MAAMb,MAAM,CAACK,aAAa,CAC9Cd,QAAQ,CAACuB,kBACX,CAAC;IAEDjB,YAAY,CAACgB,aAAa,CAAC,CAACN,aAAa,CAAgB,CAAC;IAE1DX,MAAM,CAACiB,aAAa,CAAC,CAACL,qBAAqB,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -185,6 +185,21 @@ function handleWherePair([fieldName, filter], objectOrInterface, structFieldSele
185
185
  fuzzy: typeof filter[firstKey] === "string" ? false : filter[firstKey]["fuzzySearch"] ?? false
186
186
  };
187
187
  }
188
+ if (firstKey === "$contains" && filter[firstKey] instanceof Object) {
189
+ const structFilter = Object.entries(filter[firstKey]);
190
+ !(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;
191
+ const structFieldApiName = structFilter[0][0];
192
+ !(structFilter[0][1] != null && Object.keys(structFilter[0][1]).length === 1 && "$eq" in structFilter[0][1]) ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot filter on a struct field in an array with anything other than a single $eq") : invariant(false) : void 0;
193
+ return {
194
+ type: "contains",
195
+ propertyIdentifier: {
196
+ type: "structField",
197
+ propertyApiName: fieldName,
198
+ structFieldApiName
199
+ },
200
+ value: structFilter[0][1]["$eq"]
201
+ };
202
+ }
188
203
  return {
189
204
  type: firstKey.substring(1),
190
205
  ...(propertyIdentifier != null && {
@@ -1 +1 @@
1
- {"version":3,"file":"modernToLegacyWhereClause.js","names":["DistanceUnitMapping","invariant","extractNamespace","fqApiName","last","lastIndexOf","undefined","slice","modernToLegacyWhereClause","whereClause","objectOrInterface","type","value","$and","map","clause","$or","$not","parts","Object","entries","length","handleWherePair","v","makeGeoFilterBbox","bbox","filterType","propertyIdentifier","field","topLeft","coordinates","bottomRight","makeGeoFilterPolygon","fieldName","filter","structFieldSelector","process","env","NODE_ENV","propertyApiName","fullyQualifyPropName","keysOfFilter","keys","hasDollarSign","some","key","startsWith","structFilter","structFieldApiName","firstKey","withinBody","Array","isArray","$bbox","$distance","$of","center","distance","unit","$polygon","intersectsBody","substring","fuzzy","objApiNamespace","apiName","fieldApiNamespace","fieldShortName"],"sources":["modernToLegacyWhereClause.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n GeoFilterOptions,\n ObjectOrInterfaceDefinition,\n PossibleWhereClauseFilters,\n WhereClause,\n} from \"@osdk/api\";\nimport { DistanceUnitMapping } from \"@osdk/api\";\n\nimport type {\n PropertyIdentifier,\n SearchJsonQueryV2,\n} from \"@osdk/foundry.ontologies\";\nimport type { BBox, Position } from \"geojson\";\nimport invariant from \"tiny-invariant\";\n\nexport function extractNamespace(\n fqApiName: string,\n): [string | undefined, string] {\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<\n T extends ObjectOrInterfaceDefinition,\n>(\n whereClause: WhereClause<T>,\n objectOrInterface: T,\n): SearchJsonQueryV2 {\n if (\"$and\" in whereClause) {\n return {\n type: \"and\",\n value: (whereClause.$and as WhereClause<T>[]).map(\n (clause) => modernToLegacyWhereClause(clause, objectOrInterface),\n ),\n };\n } else if (\"$or\" in whereClause) {\n return {\n type: \"or\",\n value: (whereClause.$or as WhereClause<T>[]).map(\n (clause) => modernToLegacyWhereClause(clause, objectOrInterface),\n ),\n };\n } else if (\"$not\" in whereClause) {\n return {\n type: \"not\",\n value: modernToLegacyWhereClause(\n whereClause.$not as WhereClause<T>,\n objectOrInterface,\n ),\n };\n }\n\n const parts = Object.entries(whereClause);\n\n if (parts.length === 1) {\n return handleWherePair(parts[0], objectOrInterface);\n }\n\n return {\n type: \"and\",\n value: parts.map<SearchJsonQueryV2>(\n v => handleWherePair(v, objectOrInterface),\n ),\n };\n}\n\nfunction makeGeoFilterBbox(\n bbox: BBox,\n filterType: \"$within\" | \"$intersects\",\n propertyIdentifier?: PropertyIdentifier,\n field?: string,\n): SearchJsonQueryV2 {\n return {\n type: filterType === \"$within\"\n ? \"withinBoundingBox\"\n : \"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 && { propertyIdentifier }),\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}\n\nfunction makeGeoFilterPolygon(\n coordinates: Position[][],\n filterType: \"intersectsPolygon\" | \"withinPolygon\",\n propertyIdentifier?: PropertyIdentifier,\n field?: string,\n): SearchJsonQueryV2 {\n return {\n type: filterType,\n ...(propertyIdentifier != null && { propertyIdentifier }),\n field,\n value: {\n type: \"Polygon\",\n coordinates,\n },\n };\n}\n\nfunction handleWherePair(\n [fieldName, filter]: [string, any],\n objectOrInterface: ObjectOrInterfaceDefinition,\n structFieldSelector?: { propertyApiName: string; structFieldApiName: string },\n): SearchJsonQueryV2 {\n invariant(\n filter != null,\n \"Defined key values are only allowed when they are not undefined.\",\n );\n\n const propertyIdentifier: PropertyIdentifier | undefined =\n structFieldSelector != null\n ? {\n type: \"structField\",\n ...structFieldSelector,\n propertyApiName: fullyQualifyPropName(\n structFieldSelector.propertyApiName,\n objectOrInterface,\n ),\n }\n : undefined;\n const field = structFieldSelector == null\n ? fullyQualifyPropName(fieldName, objectOrInterface)\n : undefined;\n\n if (\n typeof filter === \"string\" || typeof filter === \"number\"\n || typeof filter === \"boolean\"\n ) {\n propertyIdentifier;\n return {\n type: \"eq\",\n ...(propertyIdentifier != null\n && { propertyIdentifier }),\n field,\n value: filter,\n };\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 invariant(\n !hasDollarSign\n || keysOfFilter.length === 1,\n \"A WhereClause Filter with multiple clauses/fields is not allowed. Instead, use an 'or'/'and' clause to combine multiple filters.\",\n );\n\n if (!hasDollarSign) {\n const structFilter = Object.entries(filter);\n invariant(\n structFilter.length === 1,\n \"Cannot filter on more than one struct field in the same clause, need to use an and clause\",\n );\n const structFieldApiName = keysOfFilter[0];\n return handleWherePair(Object.entries(filter)[0], objectOrInterface, {\n propertyApiName: fieldName,\n structFieldApiName,\n });\n }\n\n const firstKey = keysOfFilter[0] as PossibleWhereClauseFilters;\n invariant(filter[firstKey] != null);\n\n if (firstKey === \"$ne\") {\n return {\n type: \"not\",\n value: {\n type: \"eq\",\n ...(propertyIdentifier != null && { propertyIdentifier }),\n field,\n value: filter[firstKey],\n },\n };\n }\n\n if (firstKey === \"$within\") {\n const withinBody = filter[firstKey] as GeoFilterOptions[\"$within\"];\n\n if (Array.isArray(withinBody)) {\n return makeGeoFilterBbox(withinBody, firstKey, propertyIdentifier, field);\n } else if (\"$bbox\" in withinBody && withinBody.$bbox != null) {\n return makeGeoFilterBbox(\n withinBody.$bbox,\n firstKey,\n propertyIdentifier,\n field,\n );\n } else if (\n (\"$distance\" in withinBody && \"$of\" in withinBody)\n && withinBody.$distance != null\n && withinBody.$of != null\n ) {\n return {\n type: \"withinDistanceOf\",\n ...(propertyIdentifier != null && { propertyIdentifier }),\n field,\n value: {\n center: Array.isArray(withinBody.$of)\n ? {\n type: \"Point\",\n coordinates: withinBody.$of,\n }\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)\n ? withinBody.$polygon\n : withinBody.coordinates;\n return makeGeoFilterPolygon(\n coordinates,\n \"withinPolygon\",\n propertyIdentifier,\n fieldName,\n );\n }\n }\n if (firstKey === \"$intersects\") {\n const intersectsBody = filter[firstKey] as GeoFilterOptions[\"$intersects\"];\n if (Array.isArray(intersectsBody)) {\n return makeGeoFilterBbox(\n intersectsBody,\n firstKey,\n propertyIdentifier,\n field,\n );\n } else if (\"$bbox\" in intersectsBody && intersectsBody.$bbox != null) {\n return makeGeoFilterBbox(\n intersectsBody.$bbox,\n firstKey,\n propertyIdentifier,\n field,\n );\n } else {\n const coordinates = (\"$polygon\" in intersectsBody)\n ? intersectsBody.$polygon\n : intersectsBody.coordinates;\n return makeGeoFilterPolygon(\n coordinates,\n \"intersectsPolygon\",\n propertyIdentifier,\n field,\n );\n }\n }\n\n if (firstKey === \"$containsAllTerms\" || firstKey === \"$containsAnyTerm\") {\n return {\n type: firstKey.substring(1) as DropDollarSign<typeof firstKey>,\n ...(propertyIdentifier != null && { propertyIdentifier }),\n field,\n value: typeof filter[firstKey] === \"string\"\n ? filter[firstKey]\n : filter[firstKey][\"term\"],\n fuzzy: typeof filter[firstKey] === \"string\"\n ? false\n : filter[firstKey][\"fuzzySearch\"] ?? false,\n };\n }\n\n return {\n type: firstKey.substring(1) as DropDollarSign<typeof firstKey>,\n ...(propertyIdentifier != null && { propertyIdentifier }),\n field,\n value: filter[firstKey] as any,\n };\n}\n\ntype DropDollarSign<T extends `$${string}`> = T extends `$${infer U}` ? U\n : never;\n\nfunction fullyQualifyPropName(\n fieldName: string,\n objectOrInterface: ObjectOrInterfaceDefinition,\n) {\n if (objectOrInterface.type === \"interface\") {\n const [objApiNamespace] = extractNamespace(objectOrInterface.apiName);\n const [fieldApiNamespace, fieldShortName] = extractNamespace(fieldName);\n return (fieldApiNamespace == null && objApiNamespace != null)\n ? `${objApiNamespace}.${fieldShortName}`\n : fieldName;\n }\n return fieldName;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"modernToLegacyWhereClause.js","names":["DistanceUnitMapping","invariant","extractNamespace","fqApiName","last","lastIndexOf","undefined","slice","modernToLegacyWhereClause","whereClause","objectOrInterface","type","value","$and","map","clause","$or","$not","parts","Object","entries","length","handleWherePair","v","makeGeoFilterBbox","bbox","filterType","propertyIdentifier","field","topLeft","coordinates","bottomRight","makeGeoFilterPolygon","fieldName","filter","structFieldSelector","process","env","NODE_ENV","propertyApiName","fullyQualifyPropName","keysOfFilter","keys","hasDollarSign","some","key","startsWith","structFilter","structFieldApiName","firstKey","withinBody","Array","isArray","$bbox","$distance","$of","center","distance","unit","$polygon","intersectsBody","substring","fuzzy","objApiNamespace","apiName","fieldApiNamespace","fieldShortName"],"sources":["modernToLegacyWhereClause.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n GeoFilterOptions,\n ObjectOrInterfaceDefinition,\n PossibleWhereClauseFilters,\n WhereClause,\n} from \"@osdk/api\";\nimport { DistanceUnitMapping } from \"@osdk/api\";\n\nimport type {\n PropertyIdentifier,\n SearchJsonQueryV2,\n} from \"@osdk/foundry.ontologies\";\nimport type { BBox, Position } from \"geojson\";\nimport invariant from \"tiny-invariant\";\n\nexport function extractNamespace(\n fqApiName: string,\n): [string | undefined, string] {\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<\n T extends ObjectOrInterfaceDefinition,\n>(\n whereClause: WhereClause<T>,\n objectOrInterface: T,\n): SearchJsonQueryV2 {\n if (\"$and\" in whereClause) {\n return {\n type: \"and\",\n value: (whereClause.$and as WhereClause<T>[]).map(\n (clause) => modernToLegacyWhereClause(clause, objectOrInterface),\n ),\n };\n } else if (\"$or\" in whereClause) {\n return {\n type: \"or\",\n value: (whereClause.$or as WhereClause<T>[]).map(\n (clause) => modernToLegacyWhereClause(clause, objectOrInterface),\n ),\n };\n } else if (\"$not\" in whereClause) {\n return {\n type: \"not\",\n value: modernToLegacyWhereClause(\n whereClause.$not as WhereClause<T>,\n objectOrInterface,\n ),\n };\n }\n\n const parts = Object.entries(whereClause);\n\n if (parts.length === 1) {\n return handleWherePair(parts[0], objectOrInterface);\n }\n\n return {\n type: \"and\",\n value: parts.map<SearchJsonQueryV2>(\n v => handleWherePair(v, objectOrInterface),\n ),\n };\n}\n\nfunction makeGeoFilterBbox(\n bbox: BBox,\n filterType: \"$within\" | \"$intersects\",\n propertyIdentifier?: PropertyIdentifier,\n field?: string,\n): SearchJsonQueryV2 {\n return {\n type: filterType === \"$within\"\n ? \"withinBoundingBox\"\n : \"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 && { propertyIdentifier }),\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}\n\nfunction makeGeoFilterPolygon(\n coordinates: Position[][],\n filterType: \"intersectsPolygon\" | \"withinPolygon\",\n propertyIdentifier?: PropertyIdentifier,\n field?: string,\n): SearchJsonQueryV2 {\n return {\n type: filterType,\n ...(propertyIdentifier != null && { propertyIdentifier }),\n field,\n value: {\n type: \"Polygon\",\n coordinates,\n },\n };\n}\n\nfunction handleWherePair(\n [fieldName, filter]: [string, any],\n objectOrInterface: ObjectOrInterfaceDefinition,\n structFieldSelector?: { propertyApiName: string; structFieldApiName: string },\n): SearchJsonQueryV2 {\n invariant(\n filter != null,\n \"Defined key values are only allowed when they are not undefined.\",\n );\n\n const propertyIdentifier: PropertyIdentifier | undefined =\n structFieldSelector != null\n ? {\n type: \"structField\",\n ...structFieldSelector,\n propertyApiName: fullyQualifyPropName(\n structFieldSelector.propertyApiName,\n objectOrInterface,\n ),\n }\n : undefined;\n const field = structFieldSelector == null\n ? fullyQualifyPropName(fieldName, objectOrInterface)\n : undefined;\n\n if (\n typeof filter === \"string\" || typeof filter === \"number\"\n || typeof filter === \"boolean\"\n ) {\n propertyIdentifier;\n return {\n type: \"eq\",\n ...(propertyIdentifier != null\n && { propertyIdentifier }),\n field,\n value: filter,\n };\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 invariant(\n !hasDollarSign\n || keysOfFilter.length === 1,\n \"A WhereClause Filter with multiple clauses/fields is not allowed. Instead, use an 'or'/'and' clause to combine multiple filters.\",\n );\n\n if (!hasDollarSign) {\n const structFilter = Object.entries(filter);\n invariant(\n structFilter.length === 1,\n \"Cannot filter on more than one struct field in the same clause, need to use an and clause\",\n );\n const structFieldApiName = keysOfFilter[0];\n return handleWherePair(Object.entries(filter)[0], objectOrInterface, {\n propertyApiName: fieldName,\n structFieldApiName,\n });\n }\n\n const firstKey = keysOfFilter[0] as PossibleWhereClauseFilters;\n invariant(filter[firstKey] != null);\n\n if (firstKey === \"$ne\") {\n return {\n type: \"not\",\n value: {\n type: \"eq\",\n ...(propertyIdentifier != null && { propertyIdentifier }),\n field,\n value: filter[firstKey],\n },\n };\n }\n\n if (firstKey === \"$within\") {\n const withinBody = filter[firstKey] as GeoFilterOptions[\"$within\"];\n\n if (Array.isArray(withinBody)) {\n return makeGeoFilterBbox(withinBody, firstKey, propertyIdentifier, field);\n } else if (\"$bbox\" in withinBody && withinBody.$bbox != null) {\n return makeGeoFilterBbox(\n withinBody.$bbox,\n firstKey,\n propertyIdentifier,\n field,\n );\n } else if (\n (\"$distance\" in withinBody && \"$of\" in withinBody)\n && withinBody.$distance != null\n && withinBody.$of != null\n ) {\n return {\n type: \"withinDistanceOf\",\n ...(propertyIdentifier != null && { propertyIdentifier }),\n field,\n value: {\n center: Array.isArray(withinBody.$of)\n ? {\n type: \"Point\",\n coordinates: withinBody.$of,\n }\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)\n ? withinBody.$polygon\n : withinBody.coordinates;\n return makeGeoFilterPolygon(\n coordinates,\n \"withinPolygon\",\n propertyIdentifier,\n fieldName,\n );\n }\n }\n if (firstKey === \"$intersects\") {\n const intersectsBody = filter[firstKey] as GeoFilterOptions[\"$intersects\"];\n if (Array.isArray(intersectsBody)) {\n return makeGeoFilterBbox(\n intersectsBody,\n firstKey,\n propertyIdentifier,\n field,\n );\n } else if (\"$bbox\" in intersectsBody && intersectsBody.$bbox != null) {\n return makeGeoFilterBbox(\n intersectsBody.$bbox,\n firstKey,\n propertyIdentifier,\n field,\n );\n } else {\n const coordinates = (\"$polygon\" in intersectsBody)\n ? intersectsBody.$polygon\n : intersectsBody.coordinates;\n return makeGeoFilterPolygon(\n coordinates,\n \"intersectsPolygon\",\n propertyIdentifier,\n field,\n );\n }\n }\n\n if (firstKey === \"$containsAllTerms\" || firstKey === \"$containsAnyTerm\") {\n return {\n type: firstKey.substring(1) as DropDollarSign<typeof firstKey>,\n ...(propertyIdentifier != null && { propertyIdentifier }),\n field,\n value: typeof filter[firstKey] === \"string\"\n ? filter[firstKey]\n : filter[firstKey][\"term\"],\n fuzzy: typeof filter[firstKey] === \"string\"\n ? false\n : filter[firstKey][\"fuzzySearch\"] ?? false,\n };\n }\n\n if (firstKey === \"$contains\" && filter[firstKey] instanceof Object) {\n const structFilter: [string, any][] = Object.entries(filter[firstKey]);\n invariant(\n structFilter.length === 1,\n \"Cannot filter on more than one struct field in the same clause, need to use an and clause\",\n );\n const structFieldApiName = structFilter[0][0];\n invariant(\n structFilter[0][1] != null\n && Object.keys(structFilter[0][1]).length === 1\n && \"$eq\" in structFilter[0][1],\n \"Cannot filter on a struct field in an array with anything other than a single $eq\",\n );\n return {\n type: \"contains\",\n propertyIdentifier: {\n type: \"structField\",\n propertyApiName: fieldName,\n structFieldApiName,\n },\n value: structFilter[0][1][\"$eq\"],\n };\n }\n\n return {\n type: firstKey.substring(1) as DropDollarSign<typeof firstKey>,\n ...(propertyIdentifier != null && { propertyIdentifier }),\n field,\n value: filter[firstKey] as any,\n };\n}\n\ntype DropDollarSign<T extends `$${string}`> = T extends `$${infer U}` ? U\n : never;\n\nfunction fullyQualifyPropName(\n fieldName: string,\n objectOrInterface: ObjectOrInterfaceDefinition,\n) {\n if (objectOrInterface.type === \"interface\") {\n const [objApiNamespace] = extractNamespace(objectOrInterface.apiName);\n const [fieldApiNamespace, fieldShortName] = extractNamespace(fieldName);\n return (fieldApiNamespace == null && objApiNamespace != null)\n ? `${objApiNamespace}.${fieldShortName}`\n : fieldName;\n }\n return fieldName;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseHolder.js","names":[],"sources":["BaseHolder.ts"],"sourcesContent":["/*\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 type {\n ObjectMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSpecifier,\n} from \"@osdk/api\";\nimport type { InterfaceHolder } from \"./InterfaceHolder.js\";\nimport type { UnderlyingOsdkObject } from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\n\nexport interface BaseHolder {\n readonly [UnderlyingOsdkObject]: ObjectHolder;\n\n readonly $apiName: string;\n readonly $objectType: string;\n readonly $primaryKey: string | number;\n readonly $title: string | undefined;\n readonly $objectSpecifier: ObjectSpecifier<any>;\n\n readonly \"$as\": (\n newDef: string | ObjectOrInterfaceDefinition,\n ) => ObjectHolder | InterfaceHolder;\n\n readonly \"$clone\": (\n newProps?: Record<string, any>,\n ) => this;\n\n readonly \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\": {\n readonly ObjectMetadata: ObjectMetadata;\n };\n\n // [key: `$$${string}`]: any;\n // Unlike SimpleOsdkProperties, all of our remaining types are unknown as the full\n // union is basically `any` when you consider the above fields.\n [key: string]: unknown;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"BaseHolder.js","names":[],"sources":["BaseHolder.ts"],"sourcesContent":["/*\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 type {\n ObjectMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSpecifier,\n} from \"@osdk/api\";\nimport type { FormatPropertyOptions } from \"../formatting/applyPropertyFormatter.js\";\nimport type { InterfaceHolder } from \"./InterfaceHolder.js\";\nimport type { UnderlyingOsdkObject } from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\n\nexport interface BaseHolder {\n readonly [UnderlyingOsdkObject]: ObjectHolder;\n\n readonly $apiName: string;\n readonly $objectType: string;\n readonly $primaryKey: string | number;\n readonly $title: string | undefined;\n readonly $objectSpecifier: ObjectSpecifier<any>;\n\n readonly \"$as\": (\n newDef: string | ObjectOrInterfaceDefinition,\n ) => ObjectHolder | InterfaceHolder;\n\n readonly \"$clone\": (\n newProps?: Record<string, any>,\n ) => this;\n\n readonly \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\": {\n readonly ObjectMetadata: ObjectMetadata;\n };\n\n readonly \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue\": <\n PropertyApiName extends string,\n >(\n propertyApiName: PropertyApiName,\n options?: FormatPropertyOptions,\n ) => string | undefined;\n\n // [key: `$$${string}`]: any;\n // Unlike SimpleOsdkProperties, all of our remaining types are unknown as the full\n // union is basically `any` when you consider the above fields.\n [key: string]: unknown;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"InterfaceHolder.js","names":[],"sources":["InterfaceHolder.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { InterfaceMetadata, ObjectMetadata, Osdk } from \"@osdk/api\";\nimport type { BaseHolder } from \"./BaseHolder.js\";\nimport type { InterfaceDefRef } from \"./InternalSymbols.js\";\n\n/** @internal */\nexport interface InterfaceHolder<\n _Q extends Osdk.Instance<any> = never,\n> extends BaseHolder {\n [InterfaceDefRef]: InterfaceMetadata;\n\n readonly \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\": {\n readonly ObjectMetadata: ObjectMetadata;\n readonly InterfaceMetadata: InterfaceMetadata;\n };\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"InterfaceHolder.js","names":[],"sources":["InterfaceHolder.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { InterfaceMetadata, ObjectMetadata, Osdk } from \"@osdk/api\";\nimport type { FormatPropertyOptions } from \"../formatting/applyPropertyFormatter.js\";\nimport type { BaseHolder } from \"./BaseHolder.js\";\nimport type { InterfaceDefRef } from \"./InternalSymbols.js\";\n\n/** @internal */\nexport interface InterfaceHolder<\n _Q extends Osdk.Instance<any> = never,\n> extends BaseHolder {\n [InterfaceDefRef]: InterfaceMetadata;\n\n readonly \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\": {\n readonly ObjectMetadata: ObjectMetadata;\n readonly InterfaceMetadata: InterfaceMetadata;\n };\n\n readonly \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue\": <\n PropertyApiName extends string,\n >(\n propertyApiName: PropertyApiName,\n options?: FormatPropertyOptions,\n ) => string | undefined;\n}\n"],"mappings":"","ignoreList":[]}
@@ -64,6 +64,10 @@ export function createOsdkInterface(underlying, interfaceDef) {
64
64
  },
65
65
  enumerable: false
66
66
  },
67
+ "$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue": {
68
+ value: underlying.$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue,
69
+ enumerable: false
70
+ },
67
71
  "$link": {
68
72
  get: function () {
69
73
  return get$linkForInterface(this);
@@ -1 +1 @@
1
- {"version":3,"file":"createOsdkInterface.js","names":["extractNamespace","get$linkForInterface","InterfaceDefRef","ObjectDefRef","UnderlyingOsdkObject","createOsdkInterface","underlying","interfaceDef","objApiNamespace","apiName","Object","freeze","defineProperties","value","enumerable","$as","$objectType","$primaryKey","$objectSpecifier","$title","$rid","clone","get","fromEntries","keys","properties","map","p","objDef","apiNamespace","targetPropName","interfaceMap","update","$clone","key","Error","remappedProps","mapProperty","filter","x","propertyName"],"sources":["createOsdkInterface.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { InterfaceMetadata } from \"@osdk/api\";\nimport { extractNamespace } from \"../../internal/conversions/modernToLegacyWhereClause.js\";\nimport type { FetchedObjectTypeDefinition } from \"../../ontology/OntologyProvider.js\";\nimport { get$linkForInterface } from \"./getDollarLink.js\";\nimport type { InterfaceHolder } from \"./InterfaceHolder.js\";\nimport {\n InterfaceDefRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\nexport function createOsdkInterface<\n Q extends FetchedObjectTypeDefinition,\n>(\n underlying: ObjectHolder,\n interfaceDef: InterfaceMetadata,\n): InterfaceHolder {\n const [objApiNamespace] = extractNamespace(interfaceDef.apiName);\n\n return Object.freeze(\n Object.defineProperties({}, {\n // first to minimize hidden classes\n [UnderlyingOsdkObject]: { value: underlying },\n\n \"$apiName\": { value: interfaceDef.apiName, enumerable: true },\n \"$as\": {\n value: underlying.$as,\n enumerable: false,\n },\n \"$objectType\": {\n value: underlying.$objectType,\n enumerable: \"$objectType\" in underlying,\n },\n \"$primaryKey\": {\n value: underlying.$primaryKey,\n enumerable: \"$primaryKey\" in underlying,\n },\n \"$objectSpecifier\": {\n value: underlying.$objectSpecifier,\n enumerable: \"$objectSpecifier\" in underlying,\n },\n \"$title\": {\n value: underlying.$title,\n enumerable: \"$title\" in underlying,\n },\n \"$rid\": {\n value: (underlying as any).$rid,\n enumerable: \"$rid\" in underlying,\n },\n \"$clone\": {\n value: clone,\n enumerable: false,\n },\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\": {\n value: {\n \"ObjectMetadata\": underlying[ObjectDefRef],\n \"InterfaceMetadata\": interfaceDef,\n },\n enumerable: false,\n },\n\n \"$link\": {\n get: function(this: InterfaceHolder) {\n return get$linkForInterface(this);\n },\n },\n\n [InterfaceDefRef]: { value: interfaceDef },\n\n ...Object.fromEntries(\n Object.keys(interfaceDef.properties).map(p => {\n const objDef = underlying[ObjectDefRef];\n\n const [apiNamespace, apiName] = extractNamespace(p);\n\n const targetPropName = objDef\n .interfaceMap![interfaceDef.apiName][p];\n\n return [apiNamespace === objApiNamespace ? apiName : p, {\n enumerable: targetPropName in underlying,\n value: underlying[targetPropName as keyof typeof underlying],\n }];\n }),\n ),\n }) as InterfaceHolder,\n );\n function clone(update: Record<string, any> | undefined) {\n if (update == null) {\n return underlying.$clone().$as(interfaceDef);\n }\n\n for (const key of Object.keys(update)) {\n if (!(key in interfaceDef.properties)) {\n throw new Error(\n `Invalid property ${key} for interface ${interfaceDef.apiName}`,\n );\n }\n }\n\n const remappedProps = Object.fromEntries(\n Object.keys(update).map(p => mapProperty(p, update[p])).filter(x =>\n x != null\n ),\n );\n\n return underlying.$clone(remappedProps).$as(interfaceDef);\n }\n function mapProperty(propertyName: string, value: any) {\n const objDef = underlying[ObjectDefRef];\n const targetPropName =\n objDef.interfaceMap![interfaceDef.apiName][propertyName];\n // If the underlying object does not implement the SPT, throw errors\n if (targetPropName == null) {\n throw new Error(\n `Cannot clone interface with ${propertyName} as property is not implemented by the underlying object type ${objDef.apiName}`,\n );\n }\n return [targetPropName, value];\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createOsdkInterface.js","names":["extractNamespace","get$linkForInterface","InterfaceDefRef","ObjectDefRef","UnderlyingOsdkObject","createOsdkInterface","underlying","interfaceDef","objApiNamespace","apiName","Object","freeze","defineProperties","value","enumerable","$as","$objectType","$primaryKey","$objectSpecifier","$title","$rid","clone","$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue","get","fromEntries","keys","properties","map","p","objDef","apiNamespace","targetPropName","interfaceMap","update","$clone","key","Error","remappedProps","mapProperty","filter","x","propertyName"],"sources":["createOsdkInterface.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { InterfaceMetadata } from \"@osdk/api\";\nimport { extractNamespace } from \"../../internal/conversions/modernToLegacyWhereClause.js\";\nimport type { FetchedObjectTypeDefinition } from \"../../ontology/OntologyProvider.js\";\nimport { get$linkForInterface } from \"./getDollarLink.js\";\nimport type { InterfaceHolder } from \"./InterfaceHolder.js\";\nimport {\n InterfaceDefRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"./InternalSymbols.js\";\nimport type { ObjectHolder } from \"./ObjectHolder.js\";\n\n/** @internal */\nexport function createOsdkInterface<\n Q extends FetchedObjectTypeDefinition,\n>(\n underlying: ObjectHolder,\n interfaceDef: InterfaceMetadata,\n): InterfaceHolder {\n const [objApiNamespace] = extractNamespace(interfaceDef.apiName);\n\n return Object.freeze(\n Object.defineProperties({}, {\n // first to minimize hidden classes\n [UnderlyingOsdkObject]: { value: underlying },\n\n \"$apiName\": { value: interfaceDef.apiName, enumerable: true },\n \"$as\": {\n value: underlying.$as,\n enumerable: false,\n },\n \"$objectType\": {\n value: underlying.$objectType,\n enumerable: \"$objectType\" in underlying,\n },\n \"$primaryKey\": {\n value: underlying.$primaryKey,\n enumerable: \"$primaryKey\" in underlying,\n },\n \"$objectSpecifier\": {\n value: underlying.$objectSpecifier,\n enumerable: \"$objectSpecifier\" in underlying,\n },\n \"$title\": {\n value: underlying.$title,\n enumerable: \"$title\" in underlying,\n },\n \"$rid\": {\n value: (underlying as any).$rid,\n enumerable: \"$rid\" in underlying,\n },\n \"$clone\": {\n value: clone,\n enumerable: false,\n },\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\": {\n value: {\n \"ObjectMetadata\": underlying[ObjectDefRef],\n \"InterfaceMetadata\": interfaceDef,\n },\n enumerable: false,\n },\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue\": {\n value: underlying.$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue,\n enumerable: false,\n },\n\n \"$link\": {\n get: function(this: InterfaceHolder) {\n return get$linkForInterface(this);\n },\n },\n\n [InterfaceDefRef]: { value: interfaceDef },\n\n ...Object.fromEntries(\n Object.keys(interfaceDef.properties).map(p => {\n const objDef = underlying[ObjectDefRef];\n\n const [apiNamespace, apiName] = extractNamespace(p);\n\n const targetPropName = objDef\n .interfaceMap![interfaceDef.apiName][p];\n\n return [apiNamespace === objApiNamespace ? apiName : p, {\n enumerable: targetPropName in underlying,\n value: underlying[targetPropName as keyof typeof underlying],\n }];\n }),\n ),\n }) as InterfaceHolder,\n );\n function clone(update: Record<string, any> | undefined) {\n if (update == null) {\n return underlying.$clone().$as(interfaceDef);\n }\n\n for (const key of Object.keys(update)) {\n if (!(key in interfaceDef.properties)) {\n throw new Error(\n `Invalid property ${key} for interface ${interfaceDef.apiName}`,\n );\n }\n }\n\n const remappedProps = Object.fromEntries(\n Object.keys(update).map(p => mapProperty(p, update[p])).filter(x =>\n x != null\n ),\n );\n\n return underlying.$clone(remappedProps).$as(interfaceDef);\n }\n function mapProperty(propertyName: string, value: any) {\n const objDef = underlying[ObjectDefRef];\n const targetPropName =\n objDef.interfaceMap![interfaceDef.apiName][propertyName];\n // If the underlying object does not implement the SPT, throw errors\n if (targetPropName == null) {\n throw new Error(\n `Cannot clone interface with ${propertyName} as property is not implemented by the underlying object type ${objDef.apiName}`,\n );\n }\n return [targetPropName, value];\n }\n}\n"],"mappings":"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","ignoreList":[]}