@osdk/client 2.8.0-beta.5 → 2.8.0-beta.7

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 (113) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/build/browser/observable/internal/AbstractHelper.js +37 -2
  3. package/build/browser/observable/internal/AbstractHelper.js.map +1 -1
  4. package/build/browser/observable/internal/AbstractHelper.test.js +114 -0
  5. package/build/browser/observable/internal/AbstractHelper.test.js.map +1 -0
  6. package/build/browser/observable/internal/CacheKeys.js +19 -8
  7. package/build/browser/observable/internal/CacheKeys.js.map +1 -1
  8. package/build/browser/observable/internal/ListQueryView.js +8 -3
  9. package/build/browser/observable/internal/ListQueryView.js.map +1 -1
  10. package/build/browser/observable/internal/ObservableClientImpl.js +104 -17
  11. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  12. package/build/browser/observable/internal/RdpCanonicalizer.test.js +23 -7
  13. package/build/browser/observable/internal/RdpCanonicalizer.test.js.map +1 -1
  14. package/build/browser/observable/internal/Store.js +18 -1
  15. package/build/browser/observable/internal/Store.js.map +1 -1
  16. package/build/browser/observable/internal/Store.test.js +184 -0
  17. package/build/browser/observable/internal/Store.test.js.map +1 -1
  18. package/build/browser/observable/internal/actions/ActionApplication.js +8 -6
  19. package/build/browser/observable/internal/actions/ActionApplication.js.map +1 -1
  20. package/build/browser/observable/internal/base-list/BaseListQuery.js +5 -6
  21. package/build/browser/observable/internal/base-list/BaseListQuery.js.map +1 -1
  22. package/build/browser/observable/internal/list/ListQuery.test.js +154 -0
  23. package/build/browser/observable/internal/list/ListQuery.test.js.map +1 -1
  24. package/build/browser/observable/internal/list/ObjectListQuery.js +15 -4
  25. package/build/browser/observable/internal/list/ObjectListQuery.js.map +1 -1
  26. package/build/browser/observable/internal/object/ObjectsHelper.js +9 -2
  27. package/build/browser/observable/internal/object/ObjectsHelper.js.map +1 -1
  28. package/build/browser/observable/internal/object/ObjectsHelper.test.js +200 -0
  29. package/build/browser/observable/internal/object/ObjectsHelper.test.js.map +1 -0
  30. package/build/browser/observable/internal/objectset/ObjectSetCacheKey.js.map +1 -1
  31. package/build/browser/observable/internal/objectset/ObjectSetHelper.js +3 -2
  32. package/build/browser/observable/internal/objectset/ObjectSetHelper.js.map +1 -1
  33. package/build/browser/observable/internal/objectset/ObjectSetHelper.test.js +94 -0
  34. package/build/browser/observable/internal/objectset/ObjectSetHelper.test.js.map +1 -0
  35. package/build/browser/observable/internal/objectset/ObjectSetQuery.js +3 -0
  36. package/build/browser/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
  37. package/build/browser/observable/internal/utils/rdpFieldOperations.js +7 -2
  38. package/build/browser/observable/internal/utils/rdpFieldOperations.js.map +1 -1
  39. package/build/browser/observable/internal/utils/rdpFieldOperations.test.js +55 -0
  40. package/build/browser/observable/internal/utils/rdpFieldOperations.test.js.map +1 -1
  41. package/build/browser/util/UserAgent.js +2 -2
  42. package/build/cjs/{chunk-LESMKESG.cjs → chunk-7K7TSF7C.cjs} +4 -4
  43. package/build/cjs/{chunk-LESMKESG.cjs.map → chunk-7K7TSF7C.cjs.map} +1 -1
  44. package/build/cjs/index.cjs +7 -7
  45. package/build/cjs/public/unstable-do-not-use.cjs +232 -76
  46. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  47. package/build/esm/observable/internal/AbstractHelper.js +37 -2
  48. package/build/esm/observable/internal/AbstractHelper.js.map +1 -1
  49. package/build/esm/observable/internal/AbstractHelper.test.js +114 -0
  50. package/build/esm/observable/internal/AbstractHelper.test.js.map +1 -0
  51. package/build/esm/observable/internal/CacheKeys.js +19 -8
  52. package/build/esm/observable/internal/CacheKeys.js.map +1 -1
  53. package/build/esm/observable/internal/ListQueryView.js +8 -3
  54. package/build/esm/observable/internal/ListQueryView.js.map +1 -1
  55. package/build/esm/observable/internal/ObservableClientImpl.js +104 -17
  56. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  57. package/build/esm/observable/internal/RdpCanonicalizer.test.js +23 -7
  58. package/build/esm/observable/internal/RdpCanonicalizer.test.js.map +1 -1
  59. package/build/esm/observable/internal/Store.js +18 -1
  60. package/build/esm/observable/internal/Store.js.map +1 -1
  61. package/build/esm/observable/internal/Store.test.js +184 -0
  62. package/build/esm/observable/internal/Store.test.js.map +1 -1
  63. package/build/esm/observable/internal/actions/ActionApplication.js +8 -6
  64. package/build/esm/observable/internal/actions/ActionApplication.js.map +1 -1
  65. package/build/esm/observable/internal/base-list/BaseListQuery.js +5 -6
  66. package/build/esm/observable/internal/base-list/BaseListQuery.js.map +1 -1
  67. package/build/esm/observable/internal/list/ListQuery.test.js +154 -0
  68. package/build/esm/observable/internal/list/ListQuery.test.js.map +1 -1
  69. package/build/esm/observable/internal/list/ObjectListQuery.js +15 -4
  70. package/build/esm/observable/internal/list/ObjectListQuery.js.map +1 -1
  71. package/build/esm/observable/internal/object/ObjectsHelper.js +9 -2
  72. package/build/esm/observable/internal/object/ObjectsHelper.js.map +1 -1
  73. package/build/esm/observable/internal/object/ObjectsHelper.test.js +200 -0
  74. package/build/esm/observable/internal/object/ObjectsHelper.test.js.map +1 -0
  75. package/build/esm/observable/internal/objectset/ObjectSetCacheKey.js.map +1 -1
  76. package/build/esm/observable/internal/objectset/ObjectSetHelper.js +3 -2
  77. package/build/esm/observable/internal/objectset/ObjectSetHelper.js.map +1 -1
  78. package/build/esm/observable/internal/objectset/ObjectSetHelper.test.js +94 -0
  79. package/build/esm/observable/internal/objectset/ObjectSetHelper.test.js.map +1 -0
  80. package/build/esm/observable/internal/objectset/ObjectSetQuery.js +3 -0
  81. package/build/esm/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
  82. package/build/esm/observable/internal/utils/rdpFieldOperations.js +7 -2
  83. package/build/esm/observable/internal/utils/rdpFieldOperations.js.map +1 -1
  84. package/build/esm/observable/internal/utils/rdpFieldOperations.test.js +55 -0
  85. package/build/esm/observable/internal/utils/rdpFieldOperations.test.js.map +1 -1
  86. package/build/esm/util/UserAgent.js +2 -2
  87. package/build/types/observable/internal/AbstractHelper.d.ts.map +1 -1
  88. package/build/types/observable/internal/AbstractHelper.test.d.ts +1 -0
  89. package/build/types/observable/internal/AbstractHelper.test.d.ts.map +1 -0
  90. package/build/types/observable/internal/CacheKeys.d.ts +5 -0
  91. package/build/types/observable/internal/CacheKeys.d.ts.map +1 -1
  92. package/build/types/observable/internal/ListQueryView.d.ts.map +1 -1
  93. package/build/types/observable/internal/Store.d.ts.map +1 -1
  94. package/build/types/observable/internal/Store.test.d.ts.map +1 -1
  95. package/build/types/observable/internal/actions/ActionApplication.d.ts.map +1 -1
  96. package/build/types/observable/internal/base-list/BaseListQuery.d.ts +1 -0
  97. package/build/types/observable/internal/base-list/BaseListQuery.d.ts.map +1 -1
  98. package/build/types/observable/internal/list/ObjectListQuery.d.ts.map +1 -1
  99. package/build/types/observable/internal/object/ObjectsHelper.d.ts +5 -1
  100. package/build/types/observable/internal/object/ObjectsHelper.d.ts.map +1 -1
  101. package/build/types/observable/internal/object/ObjectsHelper.test.d.ts +1 -0
  102. package/build/types/observable/internal/object/ObjectsHelper.test.d.ts.map +1 -0
  103. package/build/types/observable/internal/objectset/ObjectSetCacheKey.d.ts +2 -1
  104. package/build/types/observable/internal/objectset/ObjectSetCacheKey.d.ts.map +1 -1
  105. package/build/types/observable/internal/objectset/ObjectSetHelper.d.ts +3 -1
  106. package/build/types/observable/internal/objectset/ObjectSetHelper.d.ts.map +1 -1
  107. package/build/types/observable/internal/objectset/ObjectSetHelper.test.d.ts +1 -0
  108. package/build/types/observable/internal/objectset/ObjectSetHelper.test.d.ts.map +1 -0
  109. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts +2 -0
  110. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts.map +1 -1
  111. package/package.json +8 -8
  112. package/build/cjs/delay-W2TSML2P.cjs +0 -75
  113. package/build/cjs/delay-W2TSML2P.cjs.map +0 -1
@@ -18,10 +18,11 @@ import { getWireObjectSet } from "../../../objectSet/createObjectSet.js";
18
18
  import { AbstractHelper } from "../AbstractHelper.js";
19
19
  import { ObjectSetQuery } from "./ObjectSetQuery.js";
20
20
  export class ObjectSetHelper extends AbstractHelper {
21
- constructor(store, cacheKeys, whereCanonicalizer, orderByCanonicalizer) {
21
+ constructor(store, cacheKeys, whereCanonicalizer, orderByCanonicalizer, rdpCanonicalizer) {
22
22
  super(store, cacheKeys);
23
23
  this.whereCanonicalizer = whereCanonicalizer;
24
24
  this.orderByCanonicalizer = orderByCanonicalizer;
25
+ this.rdpCanonicalizer = rdpCanonicalizer;
25
26
  }
26
27
  observe(options, subFn) {
27
28
  const ret = super.observe(options, subFn);
@@ -47,7 +48,7 @@ export class ObjectSetHelper extends AbstractHelper {
47
48
  operations.where = this.whereCanonicalizer.canonicalize(options.where);
48
49
  }
49
50
  if (options.withProperties) {
50
- operations.withProperties = Object.keys(options.withProperties).sort();
51
+ operations.withProperties = this.rdpCanonicalizer.canonicalize(options.withProperties);
51
52
  }
52
53
  if (options.union && options.union.length > 0) {
53
54
  operations.union = options.union.map(os => JSON.stringify(getWireObjectSet(os)));
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectSetHelper.js","names":["getWireObjectSet","AbstractHelper","ObjectSetQuery","ObjectSetHelper","constructor","store","cacheKeys","whereCanonicalizer","orderByCanonicalizer","observe","options","subFn","ret","streamUpdates","query","registerStreamUpdates","subscription","getQuery","baseObjectSet","baseObjectSetWire","JSON","stringify","operations","buildCanonicalizedOperations","objectSetCacheKey","get","queries","subjects","where","canonicalize","withProperties","Object","keys","sort","union","length","map","os","intersect","subtract","pivotTo","orderBy","pageSize"],"sources":["ObjectSetHelper.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 { getWireObjectSet } from \"../../../objectSet/createObjectSet.js\";\nimport type { ObjectSetPayload } from \"../../ObjectSetPayload.js\";\nimport type { Observer } from \"../../ObservableClient/common.js\";\nimport { AbstractHelper } from \"../AbstractHelper.js\";\nimport type { CacheKeys } from \"../CacheKeys.js\";\nimport type { Canonical } from \"../Canonical.js\";\nimport type { KnownCacheKey } from \"../KnownCacheKey.js\";\nimport type { OrderByCanonicalizer } from \"../OrderByCanonicalizer.js\";\nimport type { QuerySubscription } from \"../QuerySubscription.js\";\nimport type { Store } from \"../Store.js\";\nimport type { WhereClauseCanonicalizer } from \"../WhereClauseCanonicalizer.js\";\nimport type {\n ObjectSetCacheKey,\n ObjectSetOperations,\n} from \"./ObjectSetCacheKey.js\";\nimport { ObjectSetQuery } from \"./ObjectSetQuery.js\";\nimport type { ObjectSetQueryOptions } from \"./ObjectSetQueryOptions.js\";\n\nexport class ObjectSetHelper extends AbstractHelper<\n ObjectSetQuery,\n ObjectSetQueryOptions\n> {\n whereCanonicalizer: WhereClauseCanonicalizer;\n orderByCanonicalizer: OrderByCanonicalizer;\n\n constructor(\n store: Store,\n cacheKeys: CacheKeys<KnownCacheKey>,\n whereCanonicalizer: WhereClauseCanonicalizer,\n orderByCanonicalizer: OrderByCanonicalizer,\n ) {\n super(store, cacheKeys);\n\n this.whereCanonicalizer = whereCanonicalizer;\n this.orderByCanonicalizer = orderByCanonicalizer;\n }\n\n observe(\n options: ObjectSetQueryOptions,\n subFn: Observer<ObjectSetPayload>,\n ): QuerySubscription<ObjectSetQuery> {\n const ret = super.observe(options, subFn);\n\n if (options.streamUpdates) {\n ret.query.registerStreamUpdates(ret.subscription);\n }\n return ret;\n }\n\n getQuery(options: ObjectSetQueryOptions): ObjectSetQuery {\n const { baseObjectSet } = options;\n const baseObjectSetWire = JSON.stringify(getWireObjectSet(baseObjectSet));\n const operations = this.buildCanonicalizedOperations(options);\n\n const objectSetCacheKey = this.cacheKeys.get<ObjectSetCacheKey>(\n \"objectSet\",\n baseObjectSetWire,\n operations,\n );\n\n return this.store.queries.get(objectSetCacheKey, () => {\n return new ObjectSetQuery(\n this.store,\n this.store.subjects.get(objectSetCacheKey),\n baseObjectSetWire,\n operations,\n objectSetCacheKey,\n options,\n );\n });\n }\n\n private buildCanonicalizedOperations(\n options: ObjectSetQueryOptions,\n ): Canonical<ObjectSetOperations> {\n const operations: ObjectSetOperations = {};\n\n if (options.where) {\n operations.where = this.whereCanonicalizer.canonicalize(options.where);\n }\n\n if (options.withProperties) {\n operations.withProperties = Object.keys(options.withProperties).sort();\n }\n\n if (options.union && options.union.length > 0) {\n operations.union = options.union.map(os =>\n JSON.stringify(getWireObjectSet(os))\n );\n }\n\n if (options.intersect && options.intersect.length > 0) {\n operations.intersect = options.intersect.map(os =>\n JSON.stringify(getWireObjectSet(os))\n );\n }\n\n if (options.subtract && options.subtract.length > 0) {\n operations.subtract = options.subtract.map(os =>\n JSON.stringify(getWireObjectSet(os))\n );\n }\n\n if (options.pivotTo) {\n operations.pivotTo = options.pivotTo as string;\n }\n\n if (options.orderBy) {\n operations.orderBy = this.orderByCanonicalizer.canonicalize(\n options.orderBy,\n );\n }\n\n if (options.pageSize) {\n operations.pageSize = options.pageSize;\n }\n\n return operations as Canonical<ObjectSetOperations>;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ObjectSetHelper.js","names":["getWireObjectSet","AbstractHelper","ObjectSetQuery","ObjectSetHelper","constructor","store","cacheKeys","whereCanonicalizer","orderByCanonicalizer","rdpCanonicalizer","observe","options","subFn","ret","streamUpdates","query","registerStreamUpdates","subscription","getQuery","baseObjectSet","baseObjectSetWire","JSON","stringify","operations","buildCanonicalizedOperations","objectSetCacheKey","get","queries","subjects","where","canonicalize","withProperties","union","length","map","os","intersect","subtract","pivotTo","orderBy","pageSize"],"sources":["ObjectSetHelper.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 { getWireObjectSet } from \"../../../objectSet/createObjectSet.js\";\nimport type { ObjectSetPayload } from \"../../ObjectSetPayload.js\";\nimport type { Observer } from \"../../ObservableClient/common.js\";\nimport { AbstractHelper } from \"../AbstractHelper.js\";\nimport type { CacheKeys } from \"../CacheKeys.js\";\nimport type { Canonical } from \"../Canonical.js\";\nimport type { KnownCacheKey } from \"../KnownCacheKey.js\";\nimport type { OrderByCanonicalizer } from \"../OrderByCanonicalizer.js\";\nimport type { QuerySubscription } from \"../QuerySubscription.js\";\nimport type { RdpCanonicalizer } from \"../RdpCanonicalizer.js\";\nimport type { Store } from \"../Store.js\";\nimport type { WhereClauseCanonicalizer } from \"../WhereClauseCanonicalizer.js\";\nimport type {\n ObjectSetCacheKey,\n ObjectSetOperations,\n} from \"./ObjectSetCacheKey.js\";\nimport { ObjectSetQuery } from \"./ObjectSetQuery.js\";\nimport type { ObjectSetQueryOptions } from \"./ObjectSetQueryOptions.js\";\n\nexport class ObjectSetHelper extends AbstractHelper<\n ObjectSetQuery,\n ObjectSetQueryOptions\n> {\n whereCanonicalizer: WhereClauseCanonicalizer;\n orderByCanonicalizer: OrderByCanonicalizer;\n rdpCanonicalizer: RdpCanonicalizer;\n\n constructor(\n store: Store,\n cacheKeys: CacheKeys<KnownCacheKey>,\n whereCanonicalizer: WhereClauseCanonicalizer,\n orderByCanonicalizer: OrderByCanonicalizer,\n rdpCanonicalizer: RdpCanonicalizer,\n ) {\n super(store, cacheKeys);\n\n this.whereCanonicalizer = whereCanonicalizer;\n this.orderByCanonicalizer = orderByCanonicalizer;\n this.rdpCanonicalizer = rdpCanonicalizer;\n }\n\n observe(\n options: ObjectSetQueryOptions,\n subFn: Observer<ObjectSetPayload>,\n ): QuerySubscription<ObjectSetQuery> {\n const ret = super.observe(options, subFn);\n\n if (options.streamUpdates) {\n ret.query.registerStreamUpdates(ret.subscription);\n }\n return ret;\n }\n\n getQuery(options: ObjectSetQueryOptions): ObjectSetQuery {\n const { baseObjectSet } = options;\n const baseObjectSetWire = JSON.stringify(getWireObjectSet(baseObjectSet));\n const operations = this.buildCanonicalizedOperations(options);\n\n const objectSetCacheKey = this.cacheKeys.get<ObjectSetCacheKey>(\n \"objectSet\",\n baseObjectSetWire,\n operations,\n );\n\n return this.store.queries.get(objectSetCacheKey, () => {\n return new ObjectSetQuery(\n this.store,\n this.store.subjects.get(objectSetCacheKey),\n baseObjectSetWire,\n operations,\n objectSetCacheKey,\n options,\n );\n });\n }\n\n private buildCanonicalizedOperations(\n options: ObjectSetQueryOptions,\n ): Canonical<ObjectSetOperations> {\n const operations: ObjectSetOperations = {};\n\n if (options.where) {\n operations.where = this.whereCanonicalizer.canonicalize(options.where);\n }\n\n if (options.withProperties) {\n operations.withProperties = this.rdpCanonicalizer.canonicalize(\n options.withProperties,\n );\n }\n\n if (options.union && options.union.length > 0) {\n operations.union = options.union.map(os =>\n JSON.stringify(getWireObjectSet(os))\n );\n }\n\n if (options.intersect && options.intersect.length > 0) {\n operations.intersect = options.intersect.map(os =>\n JSON.stringify(getWireObjectSet(os))\n );\n }\n\n if (options.subtract && options.subtract.length > 0) {\n operations.subtract = options.subtract.map(os =>\n JSON.stringify(getWireObjectSet(os))\n );\n }\n\n if (options.pivotTo) {\n operations.pivotTo = options.pivotTo as string;\n }\n\n if (options.orderBy) {\n operations.orderBy = this.orderByCanonicalizer.canonicalize(\n options.orderBy,\n );\n }\n\n if (options.pageSize) {\n operations.pageSize = options.pageSize;\n }\n\n return operations as Canonical<ObjectSetOperations>;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,gBAAgB,QAAQ,uCAAuC;AAGxE,SAASC,cAAc,QAAQ,sBAAsB;AAarD,SAASC,cAAc,QAAQ,qBAAqB;AAGpD,OAAO,MAAMC,eAAe,SAASF,cAAc,CAGjD;EAKAG,WAAWA,CACTC,KAAY,EACZC,SAAmC,EACnCC,kBAA4C,EAC5CC,oBAA0C,EAC1CC,gBAAkC,EAClC;IACA,KAAK,CAACJ,KAAK,EAAEC,SAAS,CAAC;IAEvB,IAAI,CAACC,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACC,oBAAoB,GAAGA,oBAAoB;IAChD,IAAI,CAACC,gBAAgB,GAAGA,gBAAgB;EAC1C;EAEAC,OAAOA,CACLC,OAA8B,EAC9BC,KAAiC,EACE;IACnC,MAAMC,GAAG,GAAG,KAAK,CAACH,OAAO,CAACC,OAAO,EAAEC,KAAK,CAAC;IAEzC,IAAID,OAAO,CAACG,aAAa,EAAE;MACzBD,GAAG,CAACE,KAAK,CAACC,qBAAqB,CAACH,GAAG,CAACI,YAAY,CAAC;IACnD;IACA,OAAOJ,GAAG;EACZ;EAEAK,QAAQA,CAACP,OAA8B,EAAkB;IACvD,MAAM;MAAEQ;IAAc,CAAC,GAAGR,OAAO;IACjC,MAAMS,iBAAiB,GAAGC,IAAI,CAACC,SAAS,CAACtB,gBAAgB,CAACmB,aAAa,CAAC,CAAC;IACzE,MAAMI,UAAU,GAAG,IAAI,CAACC,4BAA4B,CAACb,OAAO,CAAC;IAE7D,MAAMc,iBAAiB,GAAG,IAAI,CAACnB,SAAS,CAACoB,GAAG,CAC1C,WAAW,EACXN,iBAAiB,EACjBG,UACF,CAAC;IAED,OAAO,IAAI,CAAClB,KAAK,CAACsB,OAAO,CAACD,GAAG,CAACD,iBAAiB,EAAE,MAAM;MACrD,OAAO,IAAIvB,cAAc,CACvB,IAAI,CAACG,KAAK,EACV,IAAI,CAACA,KAAK,CAACuB,QAAQ,CAACF,GAAG,CAACD,iBAAiB,CAAC,EAC1CL,iBAAiB,EACjBG,UAAU,EACVE,iBAAiB,EACjBd,OACF,CAAC;IACH,CAAC,CAAC;EACJ;EAEQa,4BAA4BA,CAClCb,OAA8B,EACE;IAChC,MAAMY,UAA+B,GAAG,CAAC,CAAC;IAE1C,IAAIZ,OAAO,CAACkB,KAAK,EAAE;MACjBN,UAAU,CAACM,KAAK,GAAG,IAAI,CAACtB,kBAAkB,CAACuB,YAAY,CAACnB,OAAO,CAACkB,KAAK,CAAC;IACxE;IAEA,IAAIlB,OAAO,CAACoB,cAAc,EAAE;MAC1BR,UAAU,CAACQ,cAAc,GAAG,IAAI,CAACtB,gBAAgB,CAACqB,YAAY,CAC5DnB,OAAO,CAACoB,cACV,CAAC;IACH;IAEA,IAAIpB,OAAO,CAACqB,KAAK,IAAIrB,OAAO,CAACqB,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;MAC7CV,UAAU,CAACS,KAAK,GAAGrB,OAAO,CAACqB,KAAK,CAACE,GAAG,CAACC,EAAE,IACrCd,IAAI,CAACC,SAAS,CAACtB,gBAAgB,CAACmC,EAAE,CAAC,CACrC,CAAC;IACH;IAEA,IAAIxB,OAAO,CAACyB,SAAS,IAAIzB,OAAO,CAACyB,SAAS,CAACH,MAAM,GAAG,CAAC,EAAE;MACrDV,UAAU,CAACa,SAAS,GAAGzB,OAAO,CAACyB,SAAS,CAACF,GAAG,CAACC,EAAE,IAC7Cd,IAAI,CAACC,SAAS,CAACtB,gBAAgB,CAACmC,EAAE,CAAC,CACrC,CAAC;IACH;IAEA,IAAIxB,OAAO,CAAC0B,QAAQ,IAAI1B,OAAO,CAAC0B,QAAQ,CAACJ,MAAM,GAAG,CAAC,EAAE;MACnDV,UAAU,CAACc,QAAQ,GAAG1B,OAAO,CAAC0B,QAAQ,CAACH,GAAG,CAACC,EAAE,IAC3Cd,IAAI,CAACC,SAAS,CAACtB,gBAAgB,CAACmC,EAAE,CAAC,CACrC,CAAC;IACH;IAEA,IAAIxB,OAAO,CAAC2B,OAAO,EAAE;MACnBf,UAAU,CAACe,OAAO,GAAG3B,OAAO,CAAC2B,OAAiB;IAChD;IAEA,IAAI3B,OAAO,CAAC4B,OAAO,EAAE;MACnBhB,UAAU,CAACgB,OAAO,GAAG,IAAI,CAAC/B,oBAAoB,CAACsB,YAAY,CACzDnB,OAAO,CAAC4B,OACV,CAAC;IACH;IAEA,IAAI5B,OAAO,CAAC6B,QAAQ,EAAE;MACpBjB,UAAU,CAACiB,QAAQ,GAAG7B,OAAO,CAAC6B,QAAQ;IACxC;IAEA,OAAOjB,UAAU;EACnB;AACF","ignoreList":[]}
@@ -0,0 +1,94 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { Employee } from "@osdk/client.test.ontology";
18
+ import { FauxFoundry, ontologies, startNodeApiServer } from "@osdk/shared.test";
19
+ import { beforeAll, beforeEach, describe, expect, it } from "vitest";
20
+ import { createClient } from "../../../createClient.js";
21
+ import { Store } from "../Store.js";
22
+ describe("ObjectSetHelper RDP canonicalization", () => {
23
+ let client;
24
+ let store;
25
+ beforeAll(() => {
26
+ const testSetup = startNodeApiServer(new FauxFoundry("https://stack.palantir.com/"), createClient);
27
+ client = testSetup.client;
28
+ const fauxOntology = testSetup.fauxFoundry.getDefaultOntology();
29
+ ontologies.addEmployeeOntology(fauxOntology);
30
+ return () => {
31
+ testSetup.apiServer.close();
32
+ };
33
+ });
34
+ beforeEach(() => {
35
+ store = new Store(client);
36
+ return () => {
37
+ store = undefined;
38
+ };
39
+ });
40
+ it("getQuery returns same rdpConfig reference for structurally identical withProperties", () => {
41
+ const withProperties1 = {
42
+ derivedAddress: base => base.pivotTo("lead").selectProperty("employeeId"),
43
+ derivedName: base => base.pivotTo("lead").selectProperty("fullName")
44
+ };
45
+ const withProperties2 = {
46
+ derivedAddress: base => base.pivotTo("lead").selectProperty("employeeId"),
47
+ derivedName: base => base.pivotTo("lead").selectProperty("fullName")
48
+ };
49
+
50
+ // Precondition: the two configs are distinct objects
51
+ expect(withProperties1).not.toBe(withProperties2);
52
+ const query1 = store.objectSets.getQuery({
53
+ baseObjectSet: client(Employee),
54
+ withProperties: withProperties1,
55
+ mode: "offline"
56
+ });
57
+ const query2 = store.objectSets.getQuery({
58
+ baseObjectSet: client(Employee),
59
+ withProperties: withProperties2,
60
+ mode: "offline"
61
+ });
62
+
63
+ // The canonical RDP reference should be identical
64
+ expect(query1.rdpConfig).toBe(query2.rdpConfig);
65
+ expect(query1.rdpConfig).not.toBeNull();
66
+ });
67
+ it("getQuery returns distinct rdpConfig references for different withProperties", () => {
68
+ const queryA = store.objectSets.getQuery({
69
+ baseObjectSet: client(Employee),
70
+ withProperties: {
71
+ derivedAddress: base => base.pivotTo("lead").selectProperty("employeeId")
72
+ },
73
+ mode: "offline"
74
+ });
75
+ const queryB = store.objectSets.getQuery({
76
+ baseObjectSet: client(Employee),
77
+ withProperties: {
78
+ derivedName: base => base.pivotTo("lead").selectProperty("fullName")
79
+ },
80
+ mode: "offline"
81
+ });
82
+
83
+ // Different RDP structures should produce different canonical references
84
+ expect(queryA.rdpConfig).not.toBe(queryB.rdpConfig);
85
+ });
86
+ it("getQuery returns null rdpConfig when withProperties is not specified", () => {
87
+ const query = store.objectSets.getQuery({
88
+ baseObjectSet: client(Employee),
89
+ mode: "offline"
90
+ });
91
+ expect(query.rdpConfig).toBeNull();
92
+ });
93
+ });
94
+ //# sourceMappingURL=ObjectSetHelper.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectSetHelper.test.js","names":["Employee","FauxFoundry","ontologies","startNodeApiServer","beforeAll","beforeEach","describe","expect","it","createClient","Store","client","store","testSetup","fauxOntology","fauxFoundry","getDefaultOntology","addEmployeeOntology","apiServer","close","undefined","withProperties1","derivedAddress","base","pivotTo","selectProperty","derivedName","withProperties2","not","toBe","query1","objectSets","getQuery","baseObjectSet","withProperties","mode","query2","rdpConfig","toBeNull","queryA","queryB","query"],"sources":["ObjectSetHelper.test.ts"],"sourcesContent":["/*\n * Copyright 2026 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 { DerivedProperty, ObjectSet } from \"@osdk/api\";\nimport { Employee } from \"@osdk/client.test.ontology\";\nimport { FauxFoundry, ontologies, startNodeApiServer } from \"@osdk/shared.test\";\nimport { beforeAll, beforeEach, describe, expect, it } from \"vitest\";\nimport type { Client } from \"../../../Client.js\";\nimport { createClient } from \"../../../createClient.js\";\nimport { Store } from \"../Store.js\";\n\ndescribe(\"ObjectSetHelper RDP canonicalization\", () => {\n let client: Client;\n let store: Store;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(\n new FauxFoundry(\"https://stack.palantir.com/\"),\n createClient,\n );\n client = testSetup.client;\n\n const fauxOntology = testSetup.fauxFoundry.getDefaultOntology();\n ontologies.addEmployeeOntology(fauxOntology);\n\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n beforeEach(() => {\n store = new Store(client);\n return () => {\n store = undefined!;\n };\n });\n\n it(\"getQuery returns same rdpConfig reference for structurally identical withProperties\", () => {\n const withProperties1: DerivedProperty.Clause<typeof Employee> = {\n derivedAddress: (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n derivedName: (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n };\n const withProperties2: DerivedProperty.Clause<typeof Employee> = {\n derivedAddress: (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n derivedName: (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n };\n\n // Precondition: the two configs are distinct objects\n expect(withProperties1).not.toBe(withProperties2);\n\n const query1 = store.objectSets.getQuery({\n baseObjectSet: client(Employee) as ObjectSet<any>,\n withProperties: withProperties1,\n mode: \"offline\",\n });\n const query2 = store.objectSets.getQuery({\n baseObjectSet: client(Employee) as ObjectSet<any>,\n withProperties: withProperties2,\n mode: \"offline\",\n });\n\n // The canonical RDP reference should be identical\n expect(query1.rdpConfig).toBe(query2.rdpConfig);\n expect(query1.rdpConfig).not.toBeNull();\n });\n\n it(\"getQuery returns distinct rdpConfig references for different withProperties\", () => {\n const withPropertiesA: DerivedProperty.Clause<typeof Employee> = {\n derivedAddress: (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n };\n const withPropertiesB: DerivedProperty.Clause<typeof Employee> = {\n derivedName: (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n };\n\n const queryA = store.objectSets.getQuery({\n baseObjectSet: client(Employee) as ObjectSet<any>,\n withProperties: withPropertiesA,\n mode: \"offline\",\n });\n const queryB = store.objectSets.getQuery({\n baseObjectSet: client(Employee) as ObjectSet<any>,\n withProperties: withPropertiesB,\n mode: \"offline\",\n });\n\n // Different RDP structures should produce different canonical references\n expect(queryA.rdpConfig).not.toBe(queryB.rdpConfig);\n });\n\n it(\"getQuery returns null rdpConfig when withProperties is not specified\", () => {\n const query = store.objectSets.getQuery({\n baseObjectSet: client(Employee) as ObjectSet<any>,\n mode: \"offline\",\n });\n\n expect(query.rdpConfig).toBeNull();\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -40,6 +40,9 @@ export class ObjectSetQuery extends BaseListQuery {
40
40
  this.minResultsToLoad = opts.pageSize || 0;
41
41
  }
42
42
  }
43
+ get rdpConfig() {
44
+ return this.#operations.withProperties ?? null;
45
+ }
43
46
  #composeObjectSet(opts) {
44
47
  let result = opts.baseObjectSet;
45
48
  if (opts.withProperties) {
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectSetQuery.js","names":["additionalContext","getWireObjectSet","BaseListQuery","getObjectTypesThatInvalidate","OrderBySortingStrategy","ObjectSetQuery","baseObjectSetWire","operations","composedObjectSet","objectTypes","constructor","store","subject","cacheKey","opts","process","env","NODE_ENV","client","logger","child","msgPrefix","otherKeys","map","x","JSON","stringify","join","undefined","composeObjectSet","extractObjectTypes","autoFetchMore","minResultsToLoad","Number","MAX_SAFE_INTEGER","Math","max","pageSize","#composeObjectSet","result","baseObjectSet","withProperties","where","union","length","intersect","subtract","pivotTo","#extractObjectTypes","types","Set","baseWire","parse","type","add","os","wire","registerCacheChanges","batch","changes","registerObjectSet","fetchPageData","signal","orderBy","Object","keys","sortingStrategy","wireObjectSet","resultType","apiName","resp","fetchPage","$nextPageToken","nextPageToken","$pageSize","getEffectiveFetchPageSize","$includeRid","$orderBy","aborted","Error","handleFetchError","error","_status","subjects","get","existingTotalCount","read","value","totalCount","writeToStore","data","registerStreamUpdates","sub","createWebsocketSubscription","invalidateObjectType","objectType","has","modified","revalidate","Promise","resolve","createPayload","params","resolvedList","resolvedData","isOptimistic","fetchMore","hasMore","status","lastUpdated","objectSet"],"sources":["ObjectSetQuery.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 { ObjectSet, Osdk, PageResult } from \"@osdk/api\";\nimport type { Observable, Subscription } from \"rxjs\";\nimport { additionalContext } from \"../../../Client.js\";\nimport { getWireObjectSet } from \"../../../objectSet/createObjectSet.js\";\nimport type { ObjectSetPayload } from \"../../ObjectSetPayload.js\";\nimport type { Status } from \"../../ObservableClient/common.js\";\nimport { BaseListQuery } from \"../base-list/BaseListQuery.js\";\nimport type { BatchContext } from \"../BatchContext.js\";\nimport type { Canonical } from \"../Canonical.js\";\nimport type { Changes } from \"../Changes.js\";\nimport { getObjectTypesThatInvalidate } from \"../getObjectTypesThatInvalidate.js\";\nimport type { Entry } from \"../Layer.js\";\nimport { OrderBySortingStrategy } from \"../sorting/SortingStrategy.js\";\nimport type { Store } from \"../Store.js\";\nimport type { SubjectPayload } from \"../SubjectPayload.js\";\nimport type {\n ObjectSetCacheKey,\n ObjectSetOperations,\n} from \"./ObjectSetCacheKey.js\";\nimport type { ObjectSetQueryOptions } from \"./ObjectSetQueryOptions.js\";\n\nexport class ObjectSetQuery extends BaseListQuery<\n ObjectSetCacheKey,\n ObjectSetPayload,\n ObjectSetQueryOptions\n> {\n #baseObjectSetWire: string;\n #operations: Canonical<ObjectSetOperations>;\n #composedObjectSet: ObjectSet<any, any>;\n #objectTypes: Set<string>;\n\n constructor(\n store: Store,\n subject: Observable<SubjectPayload<ObjectSetCacheKey>>,\n baseObjectSetWire: string,\n operations: Canonical<ObjectSetOperations>,\n cacheKey: ObjectSetCacheKey,\n opts: ObjectSetQueryOptions,\n ) {\n super(\n store,\n subject,\n opts,\n cacheKey,\n process.env.NODE_ENV !== \"production\"\n ? (\n store.client[additionalContext].logger?.child({}, {\n msgPrefix: `ObjectSetQuery<${\n cacheKey.otherKeys.map(x => JSON.stringify(x)).join(\", \")\n }>`,\n })\n )\n : undefined,\n );\n\n this.#baseObjectSetWire = baseObjectSetWire;\n this.#operations = operations;\n this.#composedObjectSet = this.#composeObjectSet(opts);\n this.#objectTypes = this.#extractObjectTypes(opts);\n\n if (opts.autoFetchMore === true) {\n this.minResultsToLoad = Number.MAX_SAFE_INTEGER;\n } else if (typeof opts.autoFetchMore === \"number\") {\n this.minResultsToLoad = Math.max(0, opts.autoFetchMore);\n } else {\n this.minResultsToLoad = opts.pageSize || 0;\n }\n }\n\n #composeObjectSet(opts: ObjectSetQueryOptions): ObjectSet<any, any> {\n let result = opts.baseObjectSet;\n\n if (opts.withProperties) {\n result = result.withProperties(opts.withProperties);\n }\n if (opts.where) {\n result = result.where(opts.where);\n }\n if (opts.union && opts.union.length > 0) {\n result = result.union(...opts.union);\n }\n if (opts.intersect && opts.intersect.length > 0) {\n result = result.intersect(...opts.intersect);\n }\n if (opts.subtract && opts.subtract.length > 0) {\n result = result.subtract(...opts.subtract);\n }\n if (opts.pivotTo) {\n result = result.pivotTo(opts.pivotTo);\n }\n\n return result;\n }\n\n #extractObjectTypes(opts: ObjectSetQueryOptions): Set<string> {\n const types = new Set<string>();\n const baseWire = JSON.parse(this.#baseObjectSetWire);\n if (baseWire.type) {\n types.add(baseWire.type);\n }\n\n if (opts.union) {\n for (const os of opts.union) {\n const wire = getWireObjectSet(os);\n if (wire.type) {\n types.add(wire.type);\n }\n }\n }\n\n if (opts.intersect) {\n for (const os of opts.intersect) {\n const wire = getWireObjectSet(os);\n if (wire.type) {\n types.add(wire.type);\n }\n }\n }\n\n if (opts.subtract) {\n for (const os of opts.subtract) {\n const wire = getWireObjectSet(os);\n if (wire.type) {\n types.add(wire.type);\n }\n }\n }\n\n return types;\n }\n\n /**\n * Register changes to the cache specific to ObjectSetQuery\n */\n protected registerCacheChanges(batch: BatchContext): void {\n batch.changes.registerObjectSet(this.cacheKey);\n }\n\n /**\n * Implements fetchPageData from BaseListQuery template method\n * Fetches a page of data from the composed ObjectSet\n */\n protected async fetchPageData(\n signal: AbortSignal | undefined,\n ): Promise<PageResult<Osdk.Instance<any>>> {\n if (\n this.#operations.orderBy\n && Object.keys(this.#operations.orderBy).length > 0\n && !(this.sortingStrategy instanceof OrderBySortingStrategy)\n ) {\n const wireObjectSet = getWireObjectSet(this.#composedObjectSet);\n const { resultType } = await getObjectTypesThatInvalidate(\n this.store.client[additionalContext],\n wireObjectSet,\n );\n this.sortingStrategy = new OrderBySortingStrategy(\n resultType.apiName,\n this.#operations.orderBy,\n );\n }\n\n // Fetch the data with pagination\n const resp = await this.#composedObjectSet.fetchPage({\n $nextPageToken: this.nextPageToken,\n $pageSize: this.getEffectiveFetchPageSize(),\n $includeRid: true,\n // OrderBy is already applied in the composed ObjectSet\n ...(this.#operations.orderBy\n && Object.keys(this.#operations.orderBy).length > 0\n ? { $orderBy: this.#operations.orderBy }\n : {}),\n });\n\n if (signal?.aborted) {\n throw new Error(\"Aborted\");\n }\n\n this.nextPageToken = resp.nextPageToken;\n\n return resp;\n }\n\n protected handleFetchError(\n error: unknown,\n _status: Status,\n batch: BatchContext,\n ): Entry<ObjectSetCacheKey> {\n this.logger?.error(\"error\", error);\n this.store.subjects.get(this.cacheKey).error(error);\n\n const existingTotalCount = batch.read(this.cacheKey)?.value?.totalCount;\n return this.writeToStore(\n { data: [], totalCount: existingTotalCount },\n \"error\",\n batch,\n );\n }\n\n registerStreamUpdates(sub: Subscription): void {\n this.createWebsocketSubscription(\n this.#composedObjectSet,\n sub,\n \"observeObjectSet\",\n );\n }\n\n invalidateObjectType = async (\n objectType: string,\n changes: Changes | undefined,\n ): Promise<void> => {\n if (this.#objectTypes.has(objectType)) {\n changes?.modified.add(this.cacheKey);\n return this.revalidate(true);\n }\n return Promise.resolve();\n };\n\n protected createPayload(\n params: {\n resolvedData: any[];\n isOptimistic: boolean;\n status: Status;\n lastUpdated: number;\n totalCount?: string;\n },\n ): ObjectSetPayload {\n return {\n resolvedList: params.resolvedData,\n isOptimistic: params.isOptimistic,\n fetchMore: this.fetchMore,\n hasMore: this.nextPageToken != null,\n status: params.status,\n lastUpdated: params.lastUpdated,\n objectSet: this.#composedObjectSet,\n totalCount: params.totalCount,\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ObjectSetQuery.js","names":["additionalContext","getWireObjectSet","BaseListQuery","getObjectTypesThatInvalidate","OrderBySortingStrategy","ObjectSetQuery","baseObjectSetWire","operations","composedObjectSet","objectTypes","constructor","store","subject","cacheKey","opts","process","env","NODE_ENV","client","logger","child","msgPrefix","otherKeys","map","x","JSON","stringify","join","undefined","composeObjectSet","extractObjectTypes","autoFetchMore","minResultsToLoad","Number","MAX_SAFE_INTEGER","Math","max","pageSize","rdpConfig","withProperties","#composeObjectSet","result","baseObjectSet","where","union","length","intersect","subtract","pivotTo","#extractObjectTypes","types","Set","baseWire","parse","type","add","os","wire","registerCacheChanges","batch","changes","registerObjectSet","fetchPageData","signal","orderBy","Object","keys","sortingStrategy","wireObjectSet","resultType","apiName","resp","fetchPage","$nextPageToken","nextPageToken","$pageSize","getEffectiveFetchPageSize","$includeRid","$orderBy","aborted","Error","handleFetchError","error","_status","subjects","get","existingTotalCount","read","value","totalCount","writeToStore","data","registerStreamUpdates","sub","createWebsocketSubscription","invalidateObjectType","objectType","has","modified","revalidate","Promise","resolve","createPayload","params","resolvedList","resolvedData","isOptimistic","fetchMore","hasMore","status","lastUpdated","objectSet"],"sources":["ObjectSetQuery.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 { ObjectSet, Osdk, PageResult } from \"@osdk/api\";\nimport type { Observable, Subscription } from \"rxjs\";\nimport { additionalContext } from \"../../../Client.js\";\nimport { getWireObjectSet } from \"../../../objectSet/createObjectSet.js\";\nimport type { ObjectSetPayload } from \"../../ObjectSetPayload.js\";\nimport type { Status } from \"../../ObservableClient/common.js\";\nimport { BaseListQuery } from \"../base-list/BaseListQuery.js\";\nimport type { BatchContext } from \"../BatchContext.js\";\nimport type { Canonical } from \"../Canonical.js\";\nimport type { Changes } from \"../Changes.js\";\nimport { getObjectTypesThatInvalidate } from \"../getObjectTypesThatInvalidate.js\";\nimport type { Entry } from \"../Layer.js\";\nimport type { Rdp } from \"../RdpCanonicalizer.js\";\nimport { OrderBySortingStrategy } from \"../sorting/SortingStrategy.js\";\nimport type { Store } from \"../Store.js\";\nimport type { SubjectPayload } from \"../SubjectPayload.js\";\nimport type {\n ObjectSetCacheKey,\n ObjectSetOperations,\n} from \"./ObjectSetCacheKey.js\";\nimport type { ObjectSetQueryOptions } from \"./ObjectSetQueryOptions.js\";\n\nexport class ObjectSetQuery extends BaseListQuery<\n ObjectSetCacheKey,\n ObjectSetPayload,\n ObjectSetQueryOptions\n> {\n #baseObjectSetWire: string;\n #operations: Canonical<ObjectSetOperations>;\n #composedObjectSet: ObjectSet<any, any>;\n #objectTypes: Set<string>;\n\n constructor(\n store: Store,\n subject: Observable<SubjectPayload<ObjectSetCacheKey>>,\n baseObjectSetWire: string,\n operations: Canonical<ObjectSetOperations>,\n cacheKey: ObjectSetCacheKey,\n opts: ObjectSetQueryOptions,\n ) {\n super(\n store,\n subject,\n opts,\n cacheKey,\n process.env.NODE_ENV !== \"production\"\n ? (\n store.client[additionalContext].logger?.child({}, {\n msgPrefix: `ObjectSetQuery<${\n cacheKey.otherKeys.map(x => JSON.stringify(x)).join(\", \")\n }>`,\n })\n )\n : undefined,\n );\n\n this.#baseObjectSetWire = baseObjectSetWire;\n this.#operations = operations;\n this.#composedObjectSet = this.#composeObjectSet(opts);\n this.#objectTypes = this.#extractObjectTypes(opts);\n if (opts.autoFetchMore === true) {\n this.minResultsToLoad = Number.MAX_SAFE_INTEGER;\n } else if (typeof opts.autoFetchMore === \"number\") {\n this.minResultsToLoad = Math.max(0, opts.autoFetchMore);\n } else {\n this.minResultsToLoad = opts.pageSize || 0;\n }\n }\n\n public override get rdpConfig(): Canonical<Rdp> | null {\n return this.#operations.withProperties ?? null;\n }\n\n #composeObjectSet(opts: ObjectSetQueryOptions): ObjectSet<any, any> {\n let result = opts.baseObjectSet;\n\n if (opts.withProperties) {\n result = result.withProperties(opts.withProperties);\n }\n if (opts.where) {\n result = result.where(opts.where);\n }\n if (opts.union && opts.union.length > 0) {\n result = result.union(...opts.union);\n }\n if (opts.intersect && opts.intersect.length > 0) {\n result = result.intersect(...opts.intersect);\n }\n if (opts.subtract && opts.subtract.length > 0) {\n result = result.subtract(...opts.subtract);\n }\n if (opts.pivotTo) {\n result = result.pivotTo(opts.pivotTo);\n }\n\n return result;\n }\n\n #extractObjectTypes(opts: ObjectSetQueryOptions): Set<string> {\n const types = new Set<string>();\n const baseWire = JSON.parse(this.#baseObjectSetWire);\n if (baseWire.type) {\n types.add(baseWire.type);\n }\n\n if (opts.union) {\n for (const os of opts.union) {\n const wire = getWireObjectSet(os);\n if (wire.type) {\n types.add(wire.type);\n }\n }\n }\n\n if (opts.intersect) {\n for (const os of opts.intersect) {\n const wire = getWireObjectSet(os);\n if (wire.type) {\n types.add(wire.type);\n }\n }\n }\n\n if (opts.subtract) {\n for (const os of opts.subtract) {\n const wire = getWireObjectSet(os);\n if (wire.type) {\n types.add(wire.type);\n }\n }\n }\n\n return types;\n }\n\n /**\n * Register changes to the cache specific to ObjectSetQuery\n */\n protected registerCacheChanges(batch: BatchContext): void {\n batch.changes.registerObjectSet(this.cacheKey);\n }\n\n /**\n * Implements fetchPageData from BaseListQuery template method\n * Fetches a page of data from the composed ObjectSet\n */\n protected async fetchPageData(\n signal: AbortSignal | undefined,\n ): Promise<PageResult<Osdk.Instance<any>>> {\n if (\n this.#operations.orderBy\n && Object.keys(this.#operations.orderBy).length > 0\n && !(this.sortingStrategy instanceof OrderBySortingStrategy)\n ) {\n const wireObjectSet = getWireObjectSet(this.#composedObjectSet);\n const { resultType } = await getObjectTypesThatInvalidate(\n this.store.client[additionalContext],\n wireObjectSet,\n );\n this.sortingStrategy = new OrderBySortingStrategy(\n resultType.apiName,\n this.#operations.orderBy,\n );\n }\n\n // Fetch the data with pagination\n const resp = await this.#composedObjectSet.fetchPage({\n $nextPageToken: this.nextPageToken,\n $pageSize: this.getEffectiveFetchPageSize(),\n $includeRid: true,\n // OrderBy is already applied in the composed ObjectSet\n ...(this.#operations.orderBy\n && Object.keys(this.#operations.orderBy).length > 0\n ? { $orderBy: this.#operations.orderBy }\n : {}),\n });\n\n if (signal?.aborted) {\n throw new Error(\"Aborted\");\n }\n\n this.nextPageToken = resp.nextPageToken;\n\n return resp;\n }\n\n protected handleFetchError(\n error: unknown,\n _status: Status,\n batch: BatchContext,\n ): Entry<ObjectSetCacheKey> {\n this.logger?.error(\"error\", error);\n this.store.subjects.get(this.cacheKey).error(error);\n\n const existingTotalCount = batch.read(this.cacheKey)?.value?.totalCount;\n return this.writeToStore(\n { data: [], totalCount: existingTotalCount },\n \"error\",\n batch,\n );\n }\n\n registerStreamUpdates(sub: Subscription): void {\n this.createWebsocketSubscription(\n this.#composedObjectSet,\n sub,\n \"observeObjectSet\",\n );\n }\n\n invalidateObjectType = async (\n objectType: string,\n changes: Changes | undefined,\n ): Promise<void> => {\n if (this.#objectTypes.has(objectType)) {\n changes?.modified.add(this.cacheKey);\n return this.revalidate(true);\n }\n return Promise.resolve();\n };\n\n protected createPayload(\n params: {\n resolvedData: any[];\n isOptimistic: boolean;\n status: Status;\n lastUpdated: number;\n totalCount?: string;\n },\n ): ObjectSetPayload {\n return {\n resolvedList: params.resolvedData,\n isOptimistic: params.isOptimistic,\n fetchMore: this.fetchMore,\n hasMore: this.nextPageToken != null,\n status: params.status,\n lastUpdated: params.lastUpdated,\n objectSet: this.#composedObjectSet,\n totalCount: params.totalCount,\n };\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,iBAAiB,QAAQ,oBAAoB;AACtD,SAASC,gBAAgB,QAAQ,uCAAuC;AAGxE,SAASC,aAAa,QAAQ,+BAA+B;AAI7D,SAASC,4BAA4B,QAAQ,oCAAoC;AAGjF,SAASC,sBAAsB,QAAQ,+BAA+B;AAStE,OAAO,MAAMC,cAAc,SAASH,aAAa,CAI/C;EACA,CAACI,iBAAiB;EAClB,CAACC,UAAU;EACX,CAACC,iBAAiB;EAClB,CAACC,WAAW;EAEZC,WAAWA,CACTC,KAAY,EACZC,OAAsD,EACtDN,iBAAyB,EACzBC,UAA0C,EAC1CM,QAA2B,EAC3BC,IAA2B,EAC3B;IACA,KAAK,CACHH,KAAK,EACLC,OAAO,EACPE,IAAI,EACJD,QAAQ,EACRE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAEjCN,KAAK,CAACO,MAAM,CAAClB,iBAAiB,CAAC,CAACmB,MAAM,EAAEC,KAAK,CAAC,CAAC,CAAC,EAAE;MAChDC,SAAS,EAAE,kBACTR,QAAQ,CAACS,SAAS,CAACC,GAAG,CAACC,CAAC,IAAIC,IAAI,CAACC,SAAS,CAACF,CAAC,CAAC,CAAC,CAACG,IAAI,CAAC,IAAI,CAAC;IAE7D,CAAC,CAAC,GAEFC,SACN,CAAC;IAED,IAAI,CAAC,CAACtB,iBAAiB,GAAGA,iBAAiB;IAC3C,IAAI,CAAC,CAACC,UAAU,GAAGA,UAAU;IAC7B,IAAI,CAAC,CAACC,iBAAiB,GAAG,IAAI,CAAC,CAACqB,gBAAgB,CAACf,IAAI,CAAC;IACtD,IAAI,CAAC,CAACL,WAAW,GAAG,IAAI,CAAC,CAACqB,kBAAkB,CAAChB,IAAI,CAAC;IAClD,IAAIA,IAAI,CAACiB,aAAa,KAAK,IAAI,EAAE;MAC/B,IAAI,CAACC,gBAAgB,GAAGC,MAAM,CAACC,gBAAgB;IACjD,CAAC,MAAM,IAAI,OAAOpB,IAAI,CAACiB,aAAa,KAAK,QAAQ,EAAE;MACjD,IAAI,CAACC,gBAAgB,GAAGG,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEtB,IAAI,CAACiB,aAAa,CAAC;IACzD,CAAC,MAAM;MACL,IAAI,CAACC,gBAAgB,GAAGlB,IAAI,CAACuB,QAAQ,IAAI,CAAC;IAC5C;EACF;EAEA,IAAoBC,SAASA,CAAA,EAA0B;IACrD,OAAO,IAAI,CAAC,CAAC/B,UAAU,CAACgC,cAAc,IAAI,IAAI;EAChD;EAEA,CAACV,gBAAgBW,CAAC1B,IAA2B,EAAuB;IAClE,IAAI2B,MAAM,GAAG3B,IAAI,CAAC4B,aAAa;IAE/B,IAAI5B,IAAI,CAACyB,cAAc,EAAE;MACvBE,MAAM,GAAGA,MAAM,CAACF,cAAc,CAACzB,IAAI,CAACyB,cAAc,CAAC;IACrD;IACA,IAAIzB,IAAI,CAAC6B,KAAK,EAAE;MACdF,MAAM,GAAGA,MAAM,CAACE,KAAK,CAAC7B,IAAI,CAAC6B,KAAK,CAAC;IACnC;IACA,IAAI7B,IAAI,CAAC8B,KAAK,IAAI9B,IAAI,CAAC8B,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;MACvCJ,MAAM,GAAGA,MAAM,CAACG,KAAK,CAAC,GAAG9B,IAAI,CAAC8B,KAAK,CAAC;IACtC;IACA,IAAI9B,IAAI,CAACgC,SAAS,IAAIhC,IAAI,CAACgC,SAAS,CAACD,MAAM,GAAG,CAAC,EAAE;MAC/CJ,MAAM,GAAGA,MAAM,CAACK,SAAS,CAAC,GAAGhC,IAAI,CAACgC,SAAS,CAAC;IAC9C;IACA,IAAIhC,IAAI,CAACiC,QAAQ,IAAIjC,IAAI,CAACiC,QAAQ,CAACF,MAAM,GAAG,CAAC,EAAE;MAC7CJ,MAAM,GAAGA,MAAM,CAACM,QAAQ,CAAC,GAAGjC,IAAI,CAACiC,QAAQ,CAAC;IAC5C;IACA,IAAIjC,IAAI,CAACkC,OAAO,EAAE;MAChBP,MAAM,GAAGA,MAAM,CAACO,OAAO,CAAClC,IAAI,CAACkC,OAAO,CAAC;IACvC;IAEA,OAAOP,MAAM;EACf;EAEA,CAACX,kBAAkBmB,CAACnC,IAA2B,EAAe;IAC5D,MAAMoC,KAAK,GAAG,IAAIC,GAAG,CAAS,CAAC;IAC/B,MAAMC,QAAQ,GAAG3B,IAAI,CAAC4B,KAAK,CAAC,IAAI,CAAC,CAAC/C,iBAAiB,CAAC;IACpD,IAAI8C,QAAQ,CAACE,IAAI,EAAE;MACjBJ,KAAK,CAACK,GAAG,CAACH,QAAQ,CAACE,IAAI,CAAC;IAC1B;IAEA,IAAIxC,IAAI,CAAC8B,KAAK,EAAE;MACd,KAAK,MAAMY,EAAE,IAAI1C,IAAI,CAAC8B,KAAK,EAAE;QAC3B,MAAMa,IAAI,GAAGxD,gBAAgB,CAACuD,EAAE,CAAC;QACjC,IAAIC,IAAI,CAACH,IAAI,EAAE;UACbJ,KAAK,CAACK,GAAG,CAACE,IAAI,CAACH,IAAI,CAAC;QACtB;MACF;IACF;IAEA,IAAIxC,IAAI,CAACgC,SAAS,EAAE;MAClB,KAAK,MAAMU,EAAE,IAAI1C,IAAI,CAACgC,SAAS,EAAE;QAC/B,MAAMW,IAAI,GAAGxD,gBAAgB,CAACuD,EAAE,CAAC;QACjC,IAAIC,IAAI,CAACH,IAAI,EAAE;UACbJ,KAAK,CAACK,GAAG,CAACE,IAAI,CAACH,IAAI,CAAC;QACtB;MACF;IACF;IAEA,IAAIxC,IAAI,CAACiC,QAAQ,EAAE;MACjB,KAAK,MAAMS,EAAE,IAAI1C,IAAI,CAACiC,QAAQ,EAAE;QAC9B,MAAMU,IAAI,GAAGxD,gBAAgB,CAACuD,EAAE,CAAC;QACjC,IAAIC,IAAI,CAACH,IAAI,EAAE;UACbJ,KAAK,CAACK,GAAG,CAACE,IAAI,CAACH,IAAI,CAAC;QACtB;MACF;IACF;IAEA,OAAOJ,KAAK;EACd;;EAEA;AACF;AACA;EACYQ,oBAAoBA,CAACC,KAAmB,EAAQ;IACxDA,KAAK,CAACC,OAAO,CAACC,iBAAiB,CAAC,IAAI,CAAChD,QAAQ,CAAC;EAChD;;EAEA;AACF;AACA;AACA;EACE,MAAgBiD,aAAaA,CAC3BC,MAA+B,EACU;IACzC,IACE,IAAI,CAAC,CAACxD,UAAU,CAACyD,OAAO,IACrBC,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC3D,UAAU,CAACyD,OAAO,CAAC,CAACnB,MAAM,GAAG,CAAC,IAChD,EAAE,IAAI,CAACsB,eAAe,YAAY/D,sBAAsB,CAAC,EAC5D;MACA,MAAMgE,aAAa,GAAGnE,gBAAgB,CAAC,IAAI,CAAC,CAACO,iBAAiB,CAAC;MAC/D,MAAM;QAAE6D;MAAW,CAAC,GAAG,MAAMlE,4BAA4B,CACvD,IAAI,CAACQ,KAAK,CAACO,MAAM,CAAClB,iBAAiB,CAAC,EACpCoE,aACF,CAAC;MACD,IAAI,CAACD,eAAe,GAAG,IAAI/D,sBAAsB,CAC/CiE,UAAU,CAACC,OAAO,EAClB,IAAI,CAAC,CAAC/D,UAAU,CAACyD,OACnB,CAAC;IACH;;IAEA;IACA,MAAMO,IAAI,GAAG,MAAM,IAAI,CAAC,CAAC/D,iBAAiB,CAACgE,SAAS,CAAC;MACnDC,cAAc,EAAE,IAAI,CAACC,aAAa;MAClCC,SAAS,EAAE,IAAI,CAACC,yBAAyB,CAAC,CAAC;MAC3CC,WAAW,EAAE,IAAI;MACjB;MACA,IAAI,IAAI,CAAC,CAACtE,UAAU,CAACyD,OAAO,IACrBC,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC3D,UAAU,CAACyD,OAAO,CAAC,CAACnB,MAAM,GAAG,CAAC,GACnD;QAAEiC,QAAQ,EAAE,IAAI,CAAC,CAACvE,UAAU,CAACyD;MAAQ,CAAC,GACtC,CAAC,CAAC;IACR,CAAC,CAAC;IAEF,IAAID,MAAM,EAAEgB,OAAO,EAAE;MACnB,MAAM,IAAIC,KAAK,CAAC,SAAS,CAAC;IAC5B;IAEA,IAAI,CAACN,aAAa,GAAGH,IAAI,CAACG,aAAa;IAEvC,OAAOH,IAAI;EACb;EAEUU,gBAAgBA,CACxBC,KAAc,EACdC,OAAe,EACfxB,KAAmB,EACO;IAC1B,IAAI,CAACxC,MAAM,EAAE+D,KAAK,CAAC,OAAO,EAAEA,KAAK,CAAC;IAClC,IAAI,CAACvE,KAAK,CAACyE,QAAQ,CAACC,GAAG,CAAC,IAAI,CAACxE,QAAQ,CAAC,CAACqE,KAAK,CAACA,KAAK,CAAC;IAEnD,MAAMI,kBAAkB,GAAG3B,KAAK,CAAC4B,IAAI,CAAC,IAAI,CAAC1E,QAAQ,CAAC,EAAE2E,KAAK,EAAEC,UAAU;IACvE,OAAO,IAAI,CAACC,YAAY,CACtB;MAAEC,IAAI,EAAE,EAAE;MAAEF,UAAU,EAAEH;IAAmB,CAAC,EAC5C,OAAO,EACP3B,KACF,CAAC;EACH;EAEAiC,qBAAqBA,CAACC,GAAiB,EAAQ;IAC7C,IAAI,CAACC,2BAA2B,CAC9B,IAAI,CAAC,CAACtF,iBAAiB,EACvBqF,GAAG,EACH,kBACF,CAAC;EACH;EAEAE,oBAAoB,GAAG,MAAAA,CACrBC,UAAkB,EAClBpC,OAA4B,KACV;IAClB,IAAI,IAAI,CAAC,CAACnD,WAAW,CAACwF,GAAG,CAACD,UAAU,CAAC,EAAE;MACrCpC,OAAO,EAAEsC,QAAQ,CAAC3C,GAAG,CAAC,IAAI,CAAC1C,QAAQ,CAAC;MACpC,OAAO,IAAI,CAACsF,UAAU,CAAC,IAAI,CAAC;IAC9B;IACA,OAAOC,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B,CAAC;EAESC,aAAaA,CACrBC,MAMC,EACiB;IAClB,OAAO;MACLC,YAAY,EAAED,MAAM,CAACE,YAAY;MACjCC,YAAY,EAAEH,MAAM,CAACG,YAAY;MACjCC,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBC,OAAO,EAAE,IAAI,CAAClC,aAAa,IAAI,IAAI;MACnCmC,MAAM,EAAEN,MAAM,CAACM,MAAM;MACrBC,WAAW,EAAEP,MAAM,CAACO,WAAW;MAC/BC,SAAS,EAAE,IAAI,CAAC,CAACvG,iBAAiB;MAClCiF,UAAU,EAAEc,MAAM,CAACd;IACrB,CAAC;EACH;AACF","ignoreList":[]}
@@ -97,8 +97,13 @@ export function mergeObjectFields(sourceValue, sourceRdpFields, targetRdpFields,
97
97
  if (targetCurrentValue) {
98
98
  const targetUnderlying = targetCurrentValue[UnderlyingOsdkObject];
99
99
  for (const field of targetRdpFields) {
100
- if (!sourceRdpFields.has(field) && field in targetUnderlying) {
101
- newProps[field] = targetUnderlying[field];
100
+ if (field in targetUnderlying) {
101
+ // Preserve target's value when:
102
+ // 1. Source doesn't have this RDP field at all, OR
103
+ // 2. Source hasn't provided the value (undefined)
104
+ if (!sourceRdpFields.has(field) || newProps[field] === undefined) {
105
+ newProps[field] = targetUnderlying[field];
106
+ }
102
107
  }
103
108
  }
104
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rdpFieldOperations.js","names":["createOsdkObject","ClientRef","ObjectDefRef","UnderlyingOsdkObject","extractRdpFieldNames","rdpConfig","Set","Object","keys","stripRdpFields","value","rdpFields","size","underlying","objectDef","newProps","$apiName","$objectType","$primaryKey","$title","$rid","key","properties","has","isSuperset","superset","subset","field","filterToRdpFields","rdpFieldsToKeep","sourceRdpFields","isRdpField","mergeObjectFields","sourceValue","targetRdpFields","targetCurrentValue","sourceUnderlying","targetUnderlying"],"sources":["rdpFieldOperations.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 { createOsdkObject } from \"../../../object/convertWireToOsdkObjects/createOsdkObject.js\";\nimport {\n ClientRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"../../../object/convertWireToOsdkObjects/InternalSymbols.js\";\nimport type { ObjectHolder } from \"../../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { SimpleOsdkProperties } from \"../../../object/SimpleOsdkProperties.js\";\nimport type { Canonical } from \"../Canonical.js\";\nimport type { Rdp } from \"../RdpCanonicalizer.js\";\n\nexport function extractRdpFieldNames(\n rdpConfig: Canonical<Rdp> | undefined,\n): ReadonlySet<string> {\n if (!rdpConfig) {\n return new Set();\n }\n return new Set(Object.keys(rdpConfig));\n}\n\nfunction stripRdpFields(\n value: ObjectHolder,\n rdpFields: ReadonlySet<string>,\n): ObjectHolder {\n if (rdpFields.size === 0) {\n return value;\n }\n\n const underlying = value[UnderlyingOsdkObject] as SimpleOsdkProperties;\n const objectDef = value[ObjectDefRef];\n\n const newProps: SimpleOsdkProperties = {\n $apiName: underlying.$apiName,\n $objectType: underlying.$objectType,\n $primaryKey: underlying.$primaryKey,\n $title: underlying.$title,\n $rid: underlying.$rid,\n };\n\n for (const key of Object.keys(underlying)) {\n if (key in objectDef.properties && !rdpFields.has(key)) {\n newProps[key] = underlying[key];\n }\n }\n\n return createOsdkObject(value[ClientRef], objectDef, newProps);\n}\n\nfunction isSuperset(\n superset: ReadonlySet<string>,\n subset: ReadonlySet<string>,\n): boolean {\n for (const field of subset) {\n if (!superset.has(field)) {\n return false;\n }\n }\n return true;\n}\n\nfunction filterToRdpFields(\n value: ObjectHolder,\n rdpFieldsToKeep: ReadonlySet<string>,\n sourceRdpFields: ReadonlySet<string>,\n): ObjectHolder {\n const underlying = value[UnderlyingOsdkObject] as SimpleOsdkProperties;\n const objectDef = value[ObjectDefRef];\n\n const newProps: SimpleOsdkProperties = {\n $apiName: underlying.$apiName,\n $objectType: underlying.$objectType,\n $primaryKey: underlying.$primaryKey,\n $title: underlying.$title,\n $rid: underlying.$rid,\n };\n\n for (const key of Object.keys(underlying)) {\n if (key in objectDef.properties) {\n const isRdpField = sourceRdpFields.has(key);\n if (!isRdpField || rdpFieldsToKeep.has(key)) {\n newProps[key] = underlying[key];\n }\n }\n }\n\n return createOsdkObject(value[ClientRef], objectDef, newProps);\n}\n\nexport function mergeObjectFields(\n sourceValue: ObjectHolder,\n sourceRdpFields: ReadonlySet<string>,\n targetRdpFields: ReadonlySet<string>,\n targetCurrentValue: ObjectHolder | undefined,\n): ObjectHolder {\n if (targetRdpFields.size === 0) {\n return stripRdpFields(sourceValue, sourceRdpFields);\n }\n\n if (isSuperset(sourceRdpFields, targetRdpFields)) {\n if (sourceRdpFields.size === targetRdpFields.size) {\n return sourceValue;\n }\n return filterToRdpFields(sourceValue, targetRdpFields, sourceRdpFields);\n }\n\n const sourceUnderlying =\n sourceValue[UnderlyingOsdkObject] as SimpleOsdkProperties;\n const objectDef = sourceValue[ObjectDefRef];\n\n const newProps: SimpleOsdkProperties = {\n $apiName: sourceUnderlying.$apiName,\n $objectType: sourceUnderlying.$objectType,\n $primaryKey: sourceUnderlying.$primaryKey,\n $title: sourceUnderlying.$title,\n $rid: sourceUnderlying.$rid,\n };\n\n for (const key of Object.keys(sourceUnderlying)) {\n if (\n key in objectDef.properties\n && (!sourceRdpFields.has(key) || targetRdpFields.has(key))\n ) {\n newProps[key] = sourceUnderlying[key];\n }\n }\n\n if (targetCurrentValue) {\n const targetUnderlying =\n targetCurrentValue[UnderlyingOsdkObject] as SimpleOsdkProperties;\n for (const field of targetRdpFields) {\n if (!sourceRdpFields.has(field) && field in targetUnderlying) {\n newProps[field] = targetUnderlying[field];\n }\n }\n }\n\n return createOsdkObject(\n sourceValue[ClientRef],\n objectDef,\n newProps,\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"rdpFieldOperations.js","names":["createOsdkObject","ClientRef","ObjectDefRef","UnderlyingOsdkObject","extractRdpFieldNames","rdpConfig","Set","Object","keys","stripRdpFields","value","rdpFields","size","underlying","objectDef","newProps","$apiName","$objectType","$primaryKey","$title","$rid","key","properties","has","isSuperset","superset","subset","field","filterToRdpFields","rdpFieldsToKeep","sourceRdpFields","isRdpField","mergeObjectFields","sourceValue","targetRdpFields","targetCurrentValue","sourceUnderlying","targetUnderlying","undefined"],"sources":["rdpFieldOperations.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 { createOsdkObject } from \"../../../object/convertWireToOsdkObjects/createOsdkObject.js\";\nimport {\n ClientRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"../../../object/convertWireToOsdkObjects/InternalSymbols.js\";\nimport type { ObjectHolder } from \"../../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { SimpleOsdkProperties } from \"../../../object/SimpleOsdkProperties.js\";\nimport type { Canonical } from \"../Canonical.js\";\nimport type { Rdp } from \"../RdpCanonicalizer.js\";\n\nexport function extractRdpFieldNames(\n rdpConfig: Canonical<Rdp> | undefined,\n): ReadonlySet<string> {\n if (!rdpConfig) {\n return new Set();\n }\n return new Set(Object.keys(rdpConfig));\n}\n\nfunction stripRdpFields(\n value: ObjectHolder,\n rdpFields: ReadonlySet<string>,\n): ObjectHolder {\n if (rdpFields.size === 0) {\n return value;\n }\n\n const underlying = value[UnderlyingOsdkObject] as SimpleOsdkProperties;\n const objectDef = value[ObjectDefRef];\n\n const newProps: SimpleOsdkProperties = {\n $apiName: underlying.$apiName,\n $objectType: underlying.$objectType,\n $primaryKey: underlying.$primaryKey,\n $title: underlying.$title,\n $rid: underlying.$rid,\n };\n\n for (const key of Object.keys(underlying)) {\n if (key in objectDef.properties && !rdpFields.has(key)) {\n newProps[key] = underlying[key];\n }\n }\n\n return createOsdkObject(value[ClientRef], objectDef, newProps);\n}\n\nfunction isSuperset(\n superset: ReadonlySet<string>,\n subset: ReadonlySet<string>,\n): boolean {\n for (const field of subset) {\n if (!superset.has(field)) {\n return false;\n }\n }\n return true;\n}\n\nfunction filterToRdpFields(\n value: ObjectHolder,\n rdpFieldsToKeep: ReadonlySet<string>,\n sourceRdpFields: ReadonlySet<string>,\n): ObjectHolder {\n const underlying = value[UnderlyingOsdkObject] as SimpleOsdkProperties;\n const objectDef = value[ObjectDefRef];\n\n const newProps: SimpleOsdkProperties = {\n $apiName: underlying.$apiName,\n $objectType: underlying.$objectType,\n $primaryKey: underlying.$primaryKey,\n $title: underlying.$title,\n $rid: underlying.$rid,\n };\n\n for (const key of Object.keys(underlying)) {\n if (key in objectDef.properties) {\n const isRdpField = sourceRdpFields.has(key);\n if (!isRdpField || rdpFieldsToKeep.has(key)) {\n newProps[key] = underlying[key];\n }\n }\n }\n\n return createOsdkObject(value[ClientRef], objectDef, newProps);\n}\n\nexport function mergeObjectFields(\n sourceValue: ObjectHolder,\n sourceRdpFields: ReadonlySet<string>,\n targetRdpFields: ReadonlySet<string>,\n targetCurrentValue: ObjectHolder | undefined,\n): ObjectHolder {\n if (targetRdpFields.size === 0) {\n return stripRdpFields(sourceValue, sourceRdpFields);\n }\n\n if (isSuperset(sourceRdpFields, targetRdpFields)) {\n if (sourceRdpFields.size === targetRdpFields.size) {\n return sourceValue;\n }\n return filterToRdpFields(sourceValue, targetRdpFields, sourceRdpFields);\n }\n\n const sourceUnderlying =\n sourceValue[UnderlyingOsdkObject] as SimpleOsdkProperties;\n const objectDef = sourceValue[ObjectDefRef];\n\n const newProps: SimpleOsdkProperties = {\n $apiName: sourceUnderlying.$apiName,\n $objectType: sourceUnderlying.$objectType,\n $primaryKey: sourceUnderlying.$primaryKey,\n $title: sourceUnderlying.$title,\n $rid: sourceUnderlying.$rid,\n };\n\n for (const key of Object.keys(sourceUnderlying)) {\n if (\n key in objectDef.properties\n && (!sourceRdpFields.has(key) || targetRdpFields.has(key))\n ) {\n newProps[key] = sourceUnderlying[key];\n }\n }\n\n if (targetCurrentValue) {\n const targetUnderlying =\n targetCurrentValue[UnderlyingOsdkObject] as SimpleOsdkProperties;\n for (const field of targetRdpFields) {\n if (field in targetUnderlying) {\n // Preserve target's value when:\n // 1. Source doesn't have this RDP field at all, OR\n // 2. Source hasn't provided the value (undefined)\n if (\n !sourceRdpFields.has(field)\n || newProps[field] === undefined\n ) {\n newProps[field] = targetUnderlying[field];\n }\n }\n }\n }\n\n return createOsdkObject(\n sourceValue[ClientRef],\n objectDef,\n newProps,\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -155,6 +155,61 @@ describe("rdpFieldOperations", () => {
155
155
  expect(underlying.rdpField1).toBe("source-rdp1");
156
156
  expect(underlying.rdpField2).toBe(999);
157
157
  });
158
+ it("mergeObjectFields preserves target RDP value when source has undefined for shared field", () => {
159
+ const source = createTestObject({
160
+ employeeId: 50030,
161
+ fullName: "John Doe",
162
+ rdpField1: undefined
163
+ });
164
+ const target = createTestObject({
165
+ employeeId: 50030,
166
+ rdpField1: "existing-value",
167
+ rdpField2: 999
168
+ });
169
+ const result = mergeObjectFields(source, new Set(["rdpField1"]), new Set(["rdpField1", "rdpField2"]), target);
170
+ assertValidObjectHolder(result);
171
+ const underlying = getUnderlyingProps(result);
172
+ expect(underlying.employeeId).toBe(50030);
173
+ expect(underlying.fullName).toBe("John Doe");
174
+ // Target's non-null value should be preserved when source has undefined
175
+ expect(underlying.rdpField1).toBe("existing-value");
176
+ expect(underlying.rdpField2).toBe(999);
177
+ });
178
+ it("mergeObjectFields uses source RDP value when both source and target have non-null", () => {
179
+ const source = createTestObject({
180
+ employeeId: 50030,
181
+ fullName: "John Doe",
182
+ rdpField1: "source-value"
183
+ });
184
+ const target = createTestObject({
185
+ employeeId: 50030,
186
+ rdpField1: "target-value",
187
+ rdpField2: 999
188
+ });
189
+ const result = mergeObjectFields(source, new Set(["rdpField1"]), new Set(["rdpField1", "rdpField2"]), target);
190
+ assertValidObjectHolder(result);
191
+ const underlying = getUnderlyingProps(result);
192
+ // Source's non-null value takes precedence when both are non-null
193
+ expect(underlying.rdpField1).toBe("source-value");
194
+ expect(underlying.rdpField2).toBe(999);
195
+ });
196
+ it("mergeObjectFields propagates null RDP values from source", () => {
197
+ const source = createTestObject({
198
+ employeeId: 50030,
199
+ fullName: "John Doe",
200
+ rdpField1: null
201
+ });
202
+ const target = createTestObject({
203
+ employeeId: 50030,
204
+ rdpField1: "target-value",
205
+ rdpField2: 999
206
+ });
207
+ const result = mergeObjectFields(source, new Set(["rdpField1"]), new Set(["rdpField1", "rdpField2"]), target);
208
+ assertValidObjectHolder(result);
209
+ const underlying = getUnderlyingProps(result);
210
+ expect(underlying.rdpField1).toBeNull();
211
+ expect(underlying.rdpField2).toBe(999);
212
+ });
158
213
  it("mergeObjectFields handles undefined target", () => {
159
214
  const source = createTestObject({
160
215
  employeeId: 50030,
@@ -1 +1 @@
1
- {"version":3,"file":"rdpFieldOperations.test.js","names":["describe","expect","it","createOsdkObject","ClientRef","ObjectDefRef","UnderlyingOsdkObject","InterfaceDefinitions","extractRdpFieldNames","mergeObjectFields","mockClient","employeeObjectDef","apiName","type","primaryKeyApiName","primaryKeyType","titleProperty","rid","displayName","description","undefined","icon","visibility","pluralDisplayName","status","interfaceMap","inverseInterfaceMap","links","implements","properties","employeeId","fullName","office","rdpField1","rdpField2","rdpField3","createTestObject","props","$apiName","$objectType","$primaryKey","$title","assertValidObjectHolder","obj","toBeDefined","toBe","Object","isFrozen","getUnderlyingProps","toEqual","Set","source","result","underlying","toBeUndefined","rdpFields","target"],"sources":["rdpFieldOperations.test.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 { describe, expect, it } from \"vitest\";\nimport type { MinimalClient } from \"../../../MinimalClientContext.js\";\nimport { createOsdkObject } from \"../../../object/convertWireToOsdkObjects/createOsdkObject.js\";\nimport {\n ClientRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"../../../object/convertWireToOsdkObjects/InternalSymbols.js\";\nimport type { ObjectHolder } from \"../../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { SimpleOsdkProperties } from \"../../../object/SimpleOsdkProperties.js\";\nimport type { FetchedObjectTypeDefinition } from \"../../../ontology/OntologyProvider.js\";\nimport { InterfaceDefinitions } from \"../../../ontology/OntologyProvider.js\";\nimport {\n extractRdpFieldNames,\n mergeObjectFields,\n} from \"./rdpFieldOperations.js\";\n\nconst mockClient = {} as MinimalClient;\n\nconst employeeObjectDef = {\n apiName: \"Employee\",\n type: \"object\",\n primaryKeyApiName: \"employeeId\",\n primaryKeyType: \"integer\",\n titleProperty: \"fullName\",\n rid: \"\",\n displayName: \"\",\n description: undefined,\n icon: undefined,\n visibility: undefined,\n pluralDisplayName: \"\",\n status: \"ACTIVE\",\n interfaceMap: {},\n inverseInterfaceMap: {},\n links: {},\n implements: [],\n [InterfaceDefinitions]: {},\n properties: {\n employeeId: { type: \"integer\" },\n fullName: { type: \"string\" },\n office: { type: \"string\" },\n rdpField1: { type: \"string\" },\n rdpField2: { type: \"double\" },\n rdpField3: { type: \"string\" },\n },\n} satisfies FetchedObjectTypeDefinition;\n\nfunction createTestObject(\n props: Partial<SimpleOsdkProperties>,\n): ObjectHolder {\n const defaultProps: SimpleOsdkProperties = {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50030,\n $title: \"John Doe\",\n };\n return createOsdkObject(mockClient, employeeObjectDef, {\n ...defaultProps,\n ...props,\n });\n}\n\nfunction assertValidObjectHolder(obj: ObjectHolder): void {\n expect(obj[UnderlyingOsdkObject]).toBeDefined();\n expect(obj[ObjectDefRef]).toBeDefined();\n expect(obj[ClientRef]).toBeDefined();\n expect(obj[ClientRef]).toBe(mockClient);\n expect(obj[ObjectDefRef]).toBe(employeeObjectDef);\n expect(Object.isFrozen(obj)).toBe(true);\n}\n\nfunction getUnderlyingProps(obj: ObjectHolder): SimpleOsdkProperties {\n return obj[UnderlyingOsdkObject] as SimpleOsdkProperties;\n}\n\ndescribe(\"rdpFieldOperations\", () => {\n it(\"extractRdpFieldNames returns empty set for undefined\", () => {\n expect(extractRdpFieldNames(undefined)).toEqual(new Set());\n });\n\n it(\"mergeObjectFields returns same object when source has no rdp fields\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n });\n\n const result = mergeObjectFields(source, new Set(), new Set(), undefined);\n\n expect(result).toBe(source);\n });\n\n it(\"mergeObjectFields strips rdp fields from source\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n rdpField1: \"rdp-value-1\",\n rdpField2: 42,\n });\n\n const result = mergeObjectFields(\n source,\n new Set([\"rdpField1\", \"rdpField2\"]),\n new Set(),\n undefined,\n );\n\n assertValidObjectHolder(result);\n const underlying = getUnderlyingProps(result);\n expect(underlying.employeeId).toBe(50030);\n expect(underlying.fullName).toBe(\"John Doe\");\n expect(underlying.rdpField1).toBeUndefined();\n expect(underlying.rdpField2).toBeUndefined();\n });\n\n it(\"mergeObjectFields returns source unchanged when rdp field sets are equal\", () => {\n const source = createTestObject({\n employeeId: 50030,\n rdpField1: \"value\",\n rdpField2: 42,\n });\n const rdpFields = new Set([\"rdpField1\", \"rdpField2\"]);\n\n const result = mergeObjectFields(source, rdpFields, rdpFields, undefined);\n\n expect(result).toBe(source);\n });\n\n it(\"mergeObjectFields filters to target rdp fields when source is strict superset\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n rdpField1: \"value1\",\n rdpField2: 42,\n rdpField3: \"value3\",\n });\n\n const result = mergeObjectFields(\n source,\n new Set([\"rdpField1\", \"rdpField2\", \"rdpField3\"]),\n new Set([\"rdpField1\"]),\n undefined,\n );\n\n assertValidObjectHolder(result);\n const underlying = getUnderlyingProps(result);\n expect(underlying.employeeId).toBe(50030);\n expect(underlying.fullName).toBe(\"John Doe\");\n expect(underlying.rdpField1).toBe(\"value1\");\n expect(underlying.rdpField2).toBeUndefined();\n expect(underlying.rdpField3).toBeUndefined();\n });\n\n it(\"mergeObjectFields merges source and target rdp fields\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n office: \"NYC\",\n rdpField1: \"source-rdp1\",\n });\n const target = createTestObject({\n employeeId: 50030,\n rdpField2: 999,\n });\n\n const result = mergeObjectFields(\n source,\n new Set([\"rdpField1\"]),\n new Set([\"rdpField1\", \"rdpField2\"]),\n target,\n );\n\n assertValidObjectHolder(result);\n const underlying = getUnderlyingProps(result);\n expect(underlying.employeeId).toBe(50030);\n expect(underlying.fullName).toBe(\"John Doe\");\n expect(underlying.office).toBe(\"NYC\");\n expect(underlying.rdpField1).toBe(\"source-rdp1\");\n expect(underlying.rdpField2).toBe(999);\n });\n\n it(\"mergeObjectFields handles undefined target\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n rdpField1: \"source-rdp1\",\n });\n\n const result = mergeObjectFields(\n source,\n new Set([\"rdpField1\"]),\n new Set([\"rdpField1\", \"rdpField2\"]),\n undefined,\n );\n\n assertValidObjectHolder(result);\n const underlying = getUnderlyingProps(result);\n expect(underlying.employeeId).toBe(50030);\n expect(underlying.rdpField1).toBe(\"source-rdp1\");\n expect(underlying.rdpField2).toBeUndefined();\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"rdpFieldOperations.test.js","names":["describe","expect","it","createOsdkObject","ClientRef","ObjectDefRef","UnderlyingOsdkObject","InterfaceDefinitions","extractRdpFieldNames","mergeObjectFields","mockClient","employeeObjectDef","apiName","type","primaryKeyApiName","primaryKeyType","titleProperty","rid","displayName","description","undefined","icon","visibility","pluralDisplayName","status","interfaceMap","inverseInterfaceMap","links","implements","properties","employeeId","fullName","office","rdpField1","rdpField2","rdpField3","createTestObject","props","$apiName","$objectType","$primaryKey","$title","assertValidObjectHolder","obj","toBeDefined","toBe","Object","isFrozen","getUnderlyingProps","toEqual","Set","source","result","underlying","toBeUndefined","rdpFields","target","toBeNull"],"sources":["rdpFieldOperations.test.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 { describe, expect, it } from \"vitest\";\nimport type { MinimalClient } from \"../../../MinimalClientContext.js\";\nimport { createOsdkObject } from \"../../../object/convertWireToOsdkObjects/createOsdkObject.js\";\nimport {\n ClientRef,\n ObjectDefRef,\n UnderlyingOsdkObject,\n} from \"../../../object/convertWireToOsdkObjects/InternalSymbols.js\";\nimport type { ObjectHolder } from \"../../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { SimpleOsdkProperties } from \"../../../object/SimpleOsdkProperties.js\";\nimport type { FetchedObjectTypeDefinition } from \"../../../ontology/OntologyProvider.js\";\nimport { InterfaceDefinitions } from \"../../../ontology/OntologyProvider.js\";\nimport {\n extractRdpFieldNames,\n mergeObjectFields,\n} from \"./rdpFieldOperations.js\";\n\nconst mockClient = {} as MinimalClient;\n\nconst employeeObjectDef = {\n apiName: \"Employee\",\n type: \"object\",\n primaryKeyApiName: \"employeeId\",\n primaryKeyType: \"integer\",\n titleProperty: \"fullName\",\n rid: \"\",\n displayName: \"\",\n description: undefined,\n icon: undefined,\n visibility: undefined,\n pluralDisplayName: \"\",\n status: \"ACTIVE\",\n interfaceMap: {},\n inverseInterfaceMap: {},\n links: {},\n implements: [],\n [InterfaceDefinitions]: {},\n properties: {\n employeeId: { type: \"integer\" },\n fullName: { type: \"string\" },\n office: { type: \"string\" },\n rdpField1: { type: \"string\" },\n rdpField2: { type: \"double\" },\n rdpField3: { type: \"string\" },\n },\n} satisfies FetchedObjectTypeDefinition;\n\nfunction createTestObject(\n props: Partial<SimpleOsdkProperties>,\n): ObjectHolder {\n const defaultProps: SimpleOsdkProperties = {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50030,\n $title: \"John Doe\",\n };\n return createOsdkObject(mockClient, employeeObjectDef, {\n ...defaultProps,\n ...props,\n });\n}\n\nfunction assertValidObjectHolder(obj: ObjectHolder): void {\n expect(obj[UnderlyingOsdkObject]).toBeDefined();\n expect(obj[ObjectDefRef]).toBeDefined();\n expect(obj[ClientRef]).toBeDefined();\n expect(obj[ClientRef]).toBe(mockClient);\n expect(obj[ObjectDefRef]).toBe(employeeObjectDef);\n expect(Object.isFrozen(obj)).toBe(true);\n}\n\nfunction getUnderlyingProps(obj: ObjectHolder): SimpleOsdkProperties {\n return obj[UnderlyingOsdkObject] as SimpleOsdkProperties;\n}\n\ndescribe(\"rdpFieldOperations\", () => {\n it(\"extractRdpFieldNames returns empty set for undefined\", () => {\n expect(extractRdpFieldNames(undefined)).toEqual(new Set());\n });\n\n it(\"mergeObjectFields returns same object when source has no rdp fields\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n });\n\n const result = mergeObjectFields(source, new Set(), new Set(), undefined);\n\n expect(result).toBe(source);\n });\n\n it(\"mergeObjectFields strips rdp fields from source\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n rdpField1: \"rdp-value-1\",\n rdpField2: 42,\n });\n\n const result = mergeObjectFields(\n source,\n new Set([\"rdpField1\", \"rdpField2\"]),\n new Set(),\n undefined,\n );\n\n assertValidObjectHolder(result);\n const underlying = getUnderlyingProps(result);\n expect(underlying.employeeId).toBe(50030);\n expect(underlying.fullName).toBe(\"John Doe\");\n expect(underlying.rdpField1).toBeUndefined();\n expect(underlying.rdpField2).toBeUndefined();\n });\n\n it(\"mergeObjectFields returns source unchanged when rdp field sets are equal\", () => {\n const source = createTestObject({\n employeeId: 50030,\n rdpField1: \"value\",\n rdpField2: 42,\n });\n const rdpFields = new Set([\"rdpField1\", \"rdpField2\"]);\n\n const result = mergeObjectFields(source, rdpFields, rdpFields, undefined);\n\n expect(result).toBe(source);\n });\n\n it(\"mergeObjectFields filters to target rdp fields when source is strict superset\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n rdpField1: \"value1\",\n rdpField2: 42,\n rdpField3: \"value3\",\n });\n\n const result = mergeObjectFields(\n source,\n new Set([\"rdpField1\", \"rdpField2\", \"rdpField3\"]),\n new Set([\"rdpField1\"]),\n undefined,\n );\n\n assertValidObjectHolder(result);\n const underlying = getUnderlyingProps(result);\n expect(underlying.employeeId).toBe(50030);\n expect(underlying.fullName).toBe(\"John Doe\");\n expect(underlying.rdpField1).toBe(\"value1\");\n expect(underlying.rdpField2).toBeUndefined();\n expect(underlying.rdpField3).toBeUndefined();\n });\n\n it(\"mergeObjectFields merges source and target rdp fields\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n office: \"NYC\",\n rdpField1: \"source-rdp1\",\n });\n const target = createTestObject({\n employeeId: 50030,\n rdpField2: 999,\n });\n\n const result = mergeObjectFields(\n source,\n new Set([\"rdpField1\"]),\n new Set([\"rdpField1\", \"rdpField2\"]),\n target,\n );\n\n assertValidObjectHolder(result);\n const underlying = getUnderlyingProps(result);\n expect(underlying.employeeId).toBe(50030);\n expect(underlying.fullName).toBe(\"John Doe\");\n expect(underlying.office).toBe(\"NYC\");\n expect(underlying.rdpField1).toBe(\"source-rdp1\");\n expect(underlying.rdpField2).toBe(999);\n });\n\n it(\"mergeObjectFields preserves target RDP value when source has undefined for shared field\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n rdpField1: undefined,\n });\n const target = createTestObject({\n employeeId: 50030,\n rdpField1: \"existing-value\",\n rdpField2: 999,\n });\n\n const result = mergeObjectFields(\n source,\n new Set([\"rdpField1\"]),\n new Set([\"rdpField1\", \"rdpField2\"]),\n target,\n );\n\n assertValidObjectHolder(result);\n const underlying = getUnderlyingProps(result);\n expect(underlying.employeeId).toBe(50030);\n expect(underlying.fullName).toBe(\"John Doe\");\n // Target's non-null value should be preserved when source has undefined\n expect(underlying.rdpField1).toBe(\"existing-value\");\n expect(underlying.rdpField2).toBe(999);\n });\n\n it(\"mergeObjectFields uses source RDP value when both source and target have non-null\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n rdpField1: \"source-value\",\n });\n const target = createTestObject({\n employeeId: 50030,\n rdpField1: \"target-value\",\n rdpField2: 999,\n });\n\n const result = mergeObjectFields(\n source,\n new Set([\"rdpField1\"]),\n new Set([\"rdpField1\", \"rdpField2\"]),\n target,\n );\n\n assertValidObjectHolder(result);\n const underlying = getUnderlyingProps(result);\n // Source's non-null value takes precedence when both are non-null\n expect(underlying.rdpField1).toBe(\"source-value\");\n expect(underlying.rdpField2).toBe(999);\n });\n\n it(\"mergeObjectFields propagates null RDP values from source\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n rdpField1: null as unknown as string,\n });\n const target = createTestObject({\n employeeId: 50030,\n rdpField1: \"target-value\",\n rdpField2: 999,\n });\n\n const result = mergeObjectFields(\n source,\n new Set([\"rdpField1\"]),\n new Set([\"rdpField1\", \"rdpField2\"]),\n target,\n );\n\n assertValidObjectHolder(result);\n const underlying = getUnderlyingProps(result);\n expect(underlying.rdpField1).toBeNull();\n expect(underlying.rdpField2).toBe(999);\n });\n\n it(\"mergeObjectFields handles undefined target\", () => {\n const source = createTestObject({\n employeeId: 50030,\n fullName: \"John Doe\",\n rdpField1: \"source-rdp1\",\n });\n\n const result = mergeObjectFields(\n source,\n new Set([\"rdpField1\"]),\n new Set([\"rdpField1\", \"rdpField2\"]),\n undefined,\n );\n\n assertValidObjectHolder(result);\n const underlying = getUnderlyingProps(result);\n expect(underlying.employeeId).toBe(50030);\n expect(underlying.rdpField1).toBe(\"source-rdp1\");\n expect(underlying.rdpField2).toBeUndefined();\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- export const USER_AGENT = `osdk-client/${"2.8.0-beta.5"}`;
18
- export const OBSERVABLE_USER_AGENT = `osdk-observable-client/${"2.8.0-beta.5"}`;
17
+ export const USER_AGENT = `osdk-client/${"2.8.0-beta.7"}`;
18
+ export const OBSERVABLE_USER_AGENT = `osdk-observable-client/${"2.8.0-beta.7"}`;
19
19
  //# sourceMappingURL=UserAgent.js.map
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,sBACA,gBACK,+BAAgC;AAEvC,cAAc,iBAAiB,gBAAiB;AAChD,cAAc,qBAAqB,oBAAqB;AAExD,cAAc,aAAa,YAAa;AACxC,SAAS,yBAAyB,wBAAyB;AAC3D,cAAc,aAAa,YAAa;AA+BxC,OAAO,uBAAe;CACpB,eAAe,MAAM,oBAAoB;CACzC,wBAAwB;EACxB;CACA,mBAAmB,OAAO;CAC1B,mBAAmB,WAAW,UAAU;CAExC,YAAYA,OAAO,OAAOC,WAAW,UAAU;CAK/C,QACEC,SAAS,iBACTC,OAAO,SACL,eAAe,iBAAiB,gBAAgB,mBAEjD,kBAAkB;CAKrB,SAAS,SAASD,SAAS,kBAAkB;CAE7C,UAAU,WACR,iBAAiB,eAAe,iBAAiB,UAAU,YAE3DE,OAAO,QACPF,SAAS,iBACTG,OAAO,SAAS,WACf,kBAAkB;AAgDtB","names":["store: Store","cacheKeys: CacheKeys<KnownCacheKey>","options: TObserveOptions","subFn: Observer<\n TQuery extends Query<any, infer PAYLOAD, any> ? PAYLOAD : never\n >","query: TQuery","subFn: Observer<PAYLOAD>"],"sources":["../../../../src/observable/internal/AbstractHelper.ts"],"version":3,"file":"AbstractHelper.d.ts"}
1
+ {"mappings":"AAgBA,cACE,sBACA,gBACK,+BAAgC;AAEvC,cAAc,iBAAiB,gBAAiB;AAChD,cAAc,qBAAqB,oBAAqB;AAExD,cAAc,aAAa,YAAa;AACxC,SAAS,yBAAyB,wBAAyB;AAC3D,cAAc,aAAa,YAAa;AA+BxC,OAAO,uBAAe;CACpB,eAAe,MAAM,oBAAoB;CACzC,wBAAwB;EACxB;CACA,mBAAmB,OAAO;CAC1B,mBAAmB,WAAW,UAAU;CAExC,YAAYA,OAAO,OAAOC,WAAW,UAAU;CAK/C,QACEC,SAAS,iBACTC,OAAO,SACL,eAAe,iBAAiB,gBAAgB,mBAEjD,kBAAkB;CAKrB,SAAS,SAASD,SAAS,kBAAkB;CAE7C,UAAU,WACR,iBAAiB,eAAe,iBAAiB,UAAU,YAE3DE,OAAO,QACPF,SAAS,iBACTG,OAAO,SAAS,WACf,kBAAkB;AA2FtB","names":["store: Store","cacheKeys: CacheKeys<KnownCacheKey>","options: TObserveOptions","subFn: Observer<\n TQuery extends Query<any, infer PAYLOAD, any> ? PAYLOAD : never\n >","query: TQuery","subFn: Observer<PAYLOAD>"],"sources":["../../../../src/observable/internal/AbstractHelper.ts"],"version":3,"file":"AbstractHelper.d.ts"}
@@ -0,0 +1 @@
1
+ {"mappings":"","names":[],"sources":["../../../../src/observable/internal/AbstractHelper.test.ts"],"version":3,"file":"AbstractHelper.test.d.ts"}
@@ -10,6 +10,11 @@ export declare class CacheKeys<TCacheKey extends CacheKey> {
10
10
  onDestroy?: (cacheKey: TCacheKey) => void
11
11
  });
12
12
  get<K extends TCacheKey>(type: K["type"], ...args: K["__cacheKey"]["args"]): K;
13
+ /**
14
+ * Look up an existing cache key without creating or registering it.
15
+ * Returns undefined if the key does not exist in the trie.
16
+ */
17
+ peek<K extends TCacheKey>(type: K["type"], ...args: K["__cacheKey"]["args"]): K | undefined;
13
18
  retain(cacheKey: TCacheKey): void;
14
19
  release(cacheKey: TCacheKey): void;
15
20
  }
@@ -1 +1 @@
1
- {"mappings":"AAkBA,cAAc,gBAAgB,eAAgB;;;;;AAO9C,OAAO,cAAM,UAAU,kBAAkB,UAAU;;CAwCjD,YACE,EAAE,UAAU,WAGX,EAHwB;EACvB,YAAYA,UAAU;EACtB,aAAaA,UAAU;CACxB;CAwBH,IAAI,UAAU,WACZC,MAAM,EAAE,SACR,GAAG,MAAM,EAAE,cAAc,UACxB;CAkCH,OAAOD,UAAU;CAIjB,QAAQA,UAAU;AAgBnB","names":["cacheKey: TCacheKey","type: K[\"type\"]"],"sources":["../../../../src/observable/internal/CacheKeys.ts"],"version":3,"file":"CacheKeys.d.ts"}
1
+ {"mappings":"AAkBA,cAAc,gBAAgB,eAAgB;;;;;AAO9C,OAAO,cAAM,UAAU,kBAAkB,UAAU;;CAwCjD,YACE,EAAE,UAAU,WAGX,EAHwB;EACvB,YAAYA,UAAU;EACtB,aAAaA,UAAU;CACxB;CAwBH,IAAI,UAAU,WACZC,MAAM,EAAE,SACR,GAAG,MAAM,EAAE,cAAc,UACxB;;;;;CA4BH,KAAK,UAAU,WACbA,MAAM,EAAE,SACR,GAAG,MAAM,EAAE,cAAc,UACxB;CAsBH,OAAOD,UAAU;CAIjB,QAAQA,UAAU;AAgBnB","names":["cacheKey: TCacheKey","type: K[\"type\"]"],"sources":["../../../../src/observable/internal/CacheKeys.ts"],"version":3,"file":"CacheKeys.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,oBAAoB,MAAO;AACzC,cAAc,gBAAgB,+BAAgC;AAC9D,cAAc,4BAA4B,8BAA+B;;;;;AAMzE,iBAAiB,oBAAoB,gBAAgB,sBAAsB;CACzE,UAAUA,UAAU,SAAS,WAAW;CACxC,sBAAsBC,gBAAgBC;CACtC,wBAAwBD;CACxB;CACA;CACA;CACA,aAAa;AACd;AAgBD,OAAO,cAAM,cAAc,gBAAgB,sBAAsB;;CAU/D,YACEE,OAAO,oBAAoB,UAC3BD,kBACAE;CAmBF,UAAUJ,UAAU,SAAS,WAAW;AA8DzC","names":["observer: Observer<PAYLOAD>","viewId: string","pageSize: number","query: ListQueryViewTarget<PAYLOAD>","autoFetchMore?: boolean | number"],"sources":["../../../../src/observable/internal/ListQueryView.ts"],"version":3,"file":"ListQueryView.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,oBAAoB,MAAO;AACzC,cAAc,gBAAgB,+BAAgC;AAC9D,cAAc,4BAA4B,8BAA+B;;;;;AAMzE,iBAAiB,oBAAoB,gBAAgB,sBAAsB;CACzE,UAAUA,UAAU,SAAS,WAAW;CACxC,sBAAsBC,gBAAgBC;CACtC,wBAAwBD;CACxB;CACA;CACA;CACA,aAAa;AACd;AAgBD,OAAO,cAAM,cAAc,gBAAgB,sBAAsB;;CAW/D,YACEE,OAAO,oBAAoB,UAC3BD,kBACAE;CAmBF,UAAUJ,UAAU,SAAS,WAAW;AA0EzC","names":["observer: Observer<PAYLOAD>","viewId: string","pageSize: number","query: ListQueryViewTarget<PAYLOAD>","autoFetchMore?: boolean | number"],"sources":["../../../../src/observable/internal/ListQueryView.ts"],"version":3,"file":"ListQueryView.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,kBACA,oBACA,0BAEA,sBACA,MACA,gBACA,uBACK,WAAY;AAEnB,cAAc,8BAA8B,8BAA+B;AAC3E,cAAiC,cAAc,iBAAkB;AAEjE,cAAc,yBAAyB,yBAA0B;AAMjE,SAAS,0BAA0B,qCAAsC;AACzE,cAAc,oBAAoB,mBAAoB;AAEtD,SAAS,iBAAiB,gBAAiB;AAE3C,cACO,eAGA,cAAe;AACtB,SAAS,uBAAuB,+BAAgC;AAChE,SAAS,8BAA8B,6BAA8B;AACrE,cAAc,qBAAqB,oBAAqB;AACxD,cAAc,aAAa,YAAa;AACxC,SAAS,cAAc,aAAc;AACrC,SAAS,mBAAmB,wBAAyB;AAKrD,SAAS,mBAAmB,uBAAwB;AAKpD,SAAS,8BAA8B,oCAAqC;AAC5E,SAAS,qBAAqB,2BAA4B;AAC1D,SAAS,uBAAuB,gCAAiC;AACjE,cAAc,oBAAoB,mBAAoB;AACtD,SAAS,4BAA4B,2BAA4B;AACjE,SAAS,0BAA0B,yBAA0B;AAC7D,SAAS,eAAe,cAAe;AACvC,SAAmB,wBAAwB,uBAAwB;AACnE,SAAS,4BAA4B,2BAA4B;AACjE,cAAc,gBAAgB,eAAgB;AAC9C,SAAS,gCAAgC,+BAAgC;AAEzE,yBAAiB;WACE,mBAAmB;EAClC,oBAAoBA,KAAK;CAC1B;;;;;;;;AAeH,OAAO,cAAM,MAAM;;CACjB,SAAS,oBAAoB;CAE7B,SAAS,sBAAsB;CAE/B,SAAS,kBAAkB;CAC3B,SAAS,wBAAwB;CAEjC,SAAS,oBAAoB;CAC7B,SAAS,sBAAsB;CAG/B,SAAS,QAAQ;CAKjB,SAAS,WAAW,UAAU;CAC9B,SAAS,SAAS;CAClB,SAAS,wBAAwB;CAGjC,SAAS,QAAQ;CAIjB,SAAS,UAAU;CAGnB,SAAS,cAAc;CACvB,SAAS,WAAW;CACpB,SAAS,OAAO;CAChB,SAAS,SAAS;CAClB,SAAS,OAAO;CAChB,SAAS,YAAY;CAErB,YAAYC,QAAQ;CAsEpB,cAAc,UAAU,uBACtBC,QAAQ,GACRC,MACI,WAAW,uBAAuB,GAAG,gBAAgB,KACrD,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,KAC/DC,OAAO,MAAM,uBACV,QAAQ;CAIb,iBAAiB,UAAU,uBACzBF,QAAQ,GACRG,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,OACxD,QAAQ;CAQb,AAAO,SAAS,UAAU,eACxBC,UAAU,IACT,MAAM;CAIT,MAAM,GACJ,EAAE,cAAc,SAGf,EAHmD;EAClD,eAAe;EACf,UAAU;CACX,GACDC,UAAUC,cAAc,iBAAiB,IACxC;EACD,aAAa;EACb,QAAQ;EACR,SAAS;CACV;CAID,AAAO,iBAAiB,UAAU,sBAChCC,SAAS,EAAE,aAAa,GACxBC,IAAI,eAAe,KAClB;;;;;;;;;;;;CA8OH,AAAO,qBAAqB,UAAU,sBACpCD,SAAS,EAAE,aAAa,GACxBE,SAAS,sBACR;CA0BH,AAAa,iBAAiB;CAY9B,AAAa,kBACXC,SACI,KAAK,SAAS,wBACd,cAAc,KAAK,SAAS,yBAC/B;CAYH,AAAa,mBACXC,kBAAkB,0BAClBC,SAAS,0BACR;CAIH,AAAa,4BACXC,iBACAC,8BACC;AAGJ","names":["ctx: OptimisticBuilder","client: Client","action: Q","args:\n | Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]\n | Array<Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]>","opts?: Store.ApplyActionOptions","args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]","cacheKey: K","batchFn: (batchContext: BatchContext) => X","batchContext: BatchContext","apiName: T[\"apiName\"] | T","pk: PrimaryKeyType<T>","changes: Changes | undefined","objects:\n | Osdk.Instance<ObjectTypeDefinition>\n | ReadonlyArray<Osdk.Instance<ObjectTypeDefinition>>","apiName: string | QueryDefinition<unknown>","params?: Record<string, unknown>","apiName: string","primaryKey: string | number"],"sources":["../../../../src/observable/internal/Store.ts"],"version":3,"file":"Store.d.ts"}
1
+ {"mappings":"AAgBA,cACE,kBACA,oBACA,0BAEA,sBACA,MACA,gBACA,uBACK,WAAY;AAEnB,cAAc,8BAA8B,8BAA+B;AAC3E,cAAiC,cAAc,iBAAkB;AAEjE,cAAc,yBAAyB,yBAA0B;AAMjE,SAAS,0BAA0B,qCAAsC;AACzE,cAAc,oBAAoB,mBAAoB;AAEtD,SAAS,iBAAiB,gBAAiB;AAE3C,cACO,eAGA,cAAe;AACtB,SAAS,uBAAuB,+BAAgC;AAChE,SAAS,8BAA8B,6BAA8B;AACrE,cAAc,qBAAqB,oBAAqB;AACxD,cAAc,aAAa,YAAa;AACxC,SAAS,cAAc,aAAc;AACrC,SAAS,mBAAmB,wBAAyB;AAKrD,SAAS,mBAAmB,uBAAwB;AAKpD,SAAS,8BAA8B,oCAAqC;AAC5E,SAAS,qBAAqB,2BAA4B;AAC1D,SAAS,uBAAuB,gCAAiC;AACjE,cAAc,oBAAoB,mBAAoB;AACtD,SAAS,4BAA4B,2BAA4B;AACjE,SAAS,0BAA0B,yBAA0B;AAC7D,SAAS,eAAe,cAAe;AACvC,SAAmB,wBAAwB,uBAAwB;AACnE,SAAS,4BAA4B,2BAA4B;AACjE,cAAc,gBAAgB,eAAgB;AAC9C,SAAS,gCAAgC,+BAAgC;AAEzE,yBAAiB;WACE,mBAAmB;EAClC,oBAAoBA,KAAK;CAC1B;;;;;;;;AAeH,OAAO,cAAM,MAAM;;CACjB,SAAS,oBAAoB;CAE7B,SAAS,sBAAsB;CAE/B,SAAS,kBAAkB;CAC3B,SAAS,wBAAwB;CAEjC,SAAS,oBAAoB;CAC7B,SAAS,sBAAsB;CAG/B,SAAS,QAAQ;CAKjB,SAAS,WAAW,UAAU;CAC9B,SAAS,SAAS;CAclB,SAAS,wBAAwB;CAGjC,SAAS,QAAQ;CAIjB,SAAS,UAAU;CAGnB,SAAS,cAAc;CACvB,SAAS,WAAW;CACpB,SAAS,OAAO;CAChB,SAAS,SAAS;CAClB,SAAS,OAAO;CAChB,SAAS,YAAY;CAErB,YAAYC,QAAQ;CAuEpB,cAAc,UAAU,uBACtBC,QAAQ,GACRC,MACI,WAAW,uBAAuB,GAAG,gBAAgB,KACrD,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,KAC/DC,OAAO,MAAM,uBACV,QAAQ;CAIb,iBAAiB,UAAU,uBACzBF,QAAQ,GACRG,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,OACxD,QAAQ;CAQb,AAAO,SAAS,UAAU,eACxBC,UAAU,IACT,MAAM;CAIT,MAAM,GACJ,EAAE,cAAc,SAGf,EAHmD;EAClD,eAAe;EACf,UAAU;CACX,GACDC,UAAUC,cAAc,iBAAiB,IACxC;EACD,aAAa;EACb,QAAQ;EACR,SAAS;CACV;CAID,AAAO,iBAAiB,UAAU,sBAChCC,SAAS,EAAE,aAAa,GACxBC,IAAI,eAAe,KAClB;;;;;;;;;;;;CAmPH,AAAO,qBAAqB,UAAU,sBACpCD,SAAS,EAAE,aAAa,GACxBE,SAAS,sBACR;CA0BH,AAAa,iBAAiB;CAY9B,AAAa,kBACXC,SACI,KAAK,SAAS,wBACd,cAAc,KAAK,SAAS,yBAC/B;CAYH,AAAa,mBACXC,kBAAkB,0BAClBC,SAAS,0BACR;CAIH,AAAa,4BACXC,iBACAC,8BACC;AAGJ","names":["ctx: OptimisticBuilder","client: Client","action: Q","args:\n | Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]\n | Array<Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]>","opts?: Store.ApplyActionOptions","args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]","cacheKey: K","batchFn: (batchContext: BatchContext) => X","batchContext: BatchContext","apiName: T[\"apiName\"] | T","pk: PrimaryKeyType<T>","changes: Changes | undefined","objects:\n | Osdk.Instance<ObjectTypeDefinition>\n | ReadonlyArray<Osdk.Instance<ObjectTypeDefinition>>","apiName: string | QueryDefinition<unknown>","params?: Record<string, unknown>","apiName: string","primaryKey: string | number"],"sources":["../../../../src/observable/internal/Store.ts"],"version":3,"file":"Store.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,YAAY,WAAY;AA8BtC,cAAc,wBAAwB,8DAA+D;AAKrG,cAAc,oBAAoB,uDAAwD;AAkjE1F,OAAO,iBAAS,UACdA,GAAG,oBAAoB,KAAK,gBAC3B","names":["x: ObjectHolder<any> | Osdk.Instance<any>"],"sources":["../../../../src/observable/internal/Store.test.ts"],"version":3,"file":"Store.test.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,YAAY,WAAY;AA8BtC,cAAc,wBAAwB,8DAA+D;AAKrG,cAAc,oBAAoB,uDAAwD;AAixE1F,OAAO,iBAAS,UACdA,GAAG,oBAAoB,KAAK,gBAC3B","names":["x: ObjectHolder<any> | Osdk.Instance<any>"],"sources":["../../../../src/observable/internal/Store.test.ts"],"version":3,"file":"Store.test.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,kBACA,0BAEK,WAAY;AACnB,cAAc,8BAA8B,iCAAkC;AAG9E,cAAc,aAAa,aAAc;AAKzC,OAAO,cAAM,kBAAkB;;CACjB;CAAZ,YAAoBA,OAAO;CAE3B,cAAc,UAAU,uBACtBC,QAAQ,GACRC,MACI,WAAW,uBAAuB,GAAG,gBAAgB,KACrD,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,KAC/DC,OAAO,MAAM,uBACV,QAAQ;AA4Gd","names":["store: Store","action: Q","args:\n | Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]\n | Array<Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]>","opts?: Store.ApplyActionOptions"],"sources":["../../../../../src/observable/internal/actions/ActionApplication.ts"],"version":3,"file":"ActionApplication.d.ts"}
1
+ {"mappings":"AAgBA,cACE,kBACA,0BAEK,WAAY;AACnB,cAAc,8BAA8B,iCAAkC;AAE9E,cAAc,aAAa,aAAc;AAKzC,OAAO,cAAM,kBAAkB;;CACjB;CAAZ,YAAoBA,OAAO;CAE3B,cAAc,UAAU,uBACtBC,QAAQ,GACRC,MACI,WAAW,uBAAuB,GAAG,gBAAgB,KACrD,MAAM,WAAW,uBAAuB,GAAG,gBAAgB,KAC/DC,OAAO,MAAM,uBACV,QAAQ;AA+Gd","names":["store: Store","action: Q","args:\n | Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]\n | Array<Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]>","opts?: Store.ApplyActionOptions"],"sources":["../../../../../src/observable/internal/actions/ActionApplication.ts"],"version":3,"file":"ActionApplication.d.ts"}
@@ -20,6 +20,7 @@ export interface BaseListPayloadShape {
20
20
  resolvedList: readonly unknown[];
21
21
  hasMore: boolean;
22
22
  fetchMore: () => Promise<void>;
23
+ status: Status;
23
24
  }
24
25
  /**
25
26
  * Options that include pageSize for list-like queries.
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,WACA,sBACA,MACA,kBACK,WAAY;AAEnB,cAAc,aAAa,YAAY,oBAAoB,MAAO;AAClE,cACE,sBACA,cACK,kCAAmC;AAC1C,cAAc,oBAAoB,oBAAqB;AACvD,cAAc,gBAA+C,gBAAiB;AAC9E,cAAc,iBAAiB,iBAAkB;AAEjD,cAAc,aAAa,aAAc;AAEzC,cAAc,sBAAsB,6BAA8B;AAClE,SAAS,aAAa,aAAc;AACpC,cAAc,WAAW,wBAAyB;AAClD,cAAc,uBAAuB,+BAAgC;AAErE,cAAc,sBAAsB,sBAAuB;AAC3D,cAAc,oBAAoB,0BAA2B;AAC7D,cACE,6BACA,6BACK,0BAA2B;;;;;AAQlC,iBAAiB,qBAAqB;CACpC;CACA;CACA,iBAAiB;AAClB;;;;;AAMD,iBAAiB,6BAA6B,qBAAqB;CACjE;AACD;;;;;AAMD,OAAO,uBAAe;CACpB,YAAY,cAAc;CAC1B,gBAAgB;CAChB,UAAU;UACF,MAAM,KAAK,SAAS,GAAG;;;;;;CAK/B,UAAU,iBAAiB;;;;CAK3B,IAAW,aAAa,UAAU;;;;;CASlC,UAAU;;;;;CAMV,UAAU,mBAAmB;CAE7B,UAAU;;;;;;;;;;;;CAuBV,AAAO,YAAY,UAAU,iBAAiB,KAAK,eACjDA,OAAO,KACPC,QAAQ,QACRC,OAAO,cACPC,kBACAC,sBACC,MAAM;;;;;;;CA2CT,aACEC,MAAM,uBACNJ,QAAQ,QACRC,OAAO,eACN,MAAM;;;;;CAwCT,mBAAmB,qBAAqBA,OAAO;CA2C/C;;;;;;;;;CAmBA,UAAU,cACRI,QAAQ,8BACP;;;;;;;;CAmBH,UAAU,mBACRC,SAAS,WAAW,eAAe,QAClC,YAAY;;;;CAWf,UAAU;;;;;CASV,iBAAgB;;;;;CAoChB,sBAAsBC,gBAAgBC;;;;;CAQtC,wBAAwBD;;;;;CAQxB;;;;CAUA;;;;CAUA;;;;;CAQA;;;;;;CAWA,UAAU;;;;;;CAOV,UAAgB,kBAAkB;;;;;;;;;CA2ClC,UAAgB,mBACdP,QAAQ,QACRS,QAAQ,0BACP,QAAQ,MAAM;;;;;;;CA0EjB,mBAAmB,cACjBA,QAAQ,0BACP,QAAQ,WAAW,KAAK;;;;;;;;;;CAW3B,UAAU,iBACRC,iBACAC,SAAS,QACTV,OAAO,eACN,MAAM;;;;;;;CAeT,UAAU,eACRW,iBAAiB,kBACjBX,OAAO,eACN;;;;;;;;;;CAaH,UAAU,iBAAiB,UAAU,iBAAiB,KAAK,eACzDF,OAAO,KACPc,SAAS;EACP;EACA,QAAQ;CACT,GACDZ,OAAO,eACN,MAAM;;;;;;;;;CA+DT,UAAU,4BACRa,WAAW,gBACXC,KAAK,cACLC;;;;CAoCF,UAAU;;;;CASV,UAAU;;;;CASV,UAAU,WAAWC,QAAQ;EAC3B;EACA;CACD;;;;;;;CAeD,UAAU,YACR,EAAE,QAAQ,OAAmD,EAA1C,aAAa;;;;;;;;CAiClC,UAAU,aACRC,QAAQ,KAAK,SAAS,qCAAqC,CAAE;AAkBhE","names":["items: T[]","status: Status","batch: BatchContext","append: boolean","totalCount?: string","data: CollectionStorageData","params: CollectionConnectableParams","subject: Observable<SubjectPayload<KEY>>","viewId: string","pageSize: number","signal: AbortSignal | undefined","_error: unknown","_status: Status","objectCacheKeys: ObjectCacheKey[]","options: {\n append?: boolean;\n status: Status;\n }","objectSet: ObjectSet<any>","sub: Subscription","methodName: string","errors: {\n subscriptionClosed: boolean;\n error: unknown;\n }","object: Osdk.Instance<ObjectTypeDefinition, never, string, {}>"],"sources":["../../../../../src/observable/internal/base-list/BaseListQuery.ts"],"version":3,"file":"BaseListQuery.d.ts"}
1
+ {"mappings":"AAgBA,cACE,WACA,sBACA,MACA,kBACK,WAAY;AAEnB,cAAc,aAAa,YAAY,oBAAoB,MAAO;AAClE,cACE,sBACA,cACK,kCAAmC;AAC1C,cAAc,oBAAoB,oBAAqB;AACvD,cAAc,gBAA+C,gBAAiB;AAC9E,cAAc,iBAAiB,iBAAkB;AAEjD,cAAc,aAAa,aAAc;AAEzC,cAAc,sBAAsB,6BAA8B;AAClE,SAAS,aAAa,aAAc;AACpC,cAAc,WAAW,wBAAyB;AAClD,cAAc,uBAAuB,+BAAgC;AAErE,cAAc,sBAAsB,sBAAuB;AAC3D,cAAc,oBAAoB,0BAA2B;AAC7D,cACE,6BACA,6BACK,0BAA2B;;;;;AAQlC,iBAAiB,qBAAqB;CACpC;CACA;CACA,iBAAiB;CACjB,QAAQ;AACT;;;;;AAMD,iBAAiB,6BAA6B,qBAAqB;CACjE;AACD;;;;;AAMD,OAAO,uBAAe;CACpB,YAAY,cAAc;CAC1B,gBAAgB;CAChB,UAAU;UACF,MAAM,KAAK,SAAS,GAAG;;;;;;CAK/B,UAAU,iBAAiB;;;;CAK3B,IAAW,aAAa,UAAU;;;;;CASlC,UAAU;;;;;CAMV,UAAU,mBAAmB;CAE7B,UAAU;;;;;;;;;;;;CAuBV,AAAO,YAAY,UAAU,iBAAiB,KAAK,eACjDA,OAAO,KACPC,QAAQ,QACRC,OAAO,cACPC,kBACAC,sBACC,MAAM;;;;;;;CA2CT,aACEC,MAAM,uBACNJ,QAAQ,QACRC,OAAO,eACN,MAAM;;;;;CAwCT,mBAAmB,qBAAqBA,OAAO;CA2C/C;;;;;;;;;CAmBA,UAAU,cACRI,QAAQ,8BACP;;;;;;;;CAmBH,UAAU,mBACRC,SAAS,WAAW,eAAe,QAClC,YAAY;;;;CAWf,UAAU;;;;;CASV,iBAAgB;;;;;CAkChB,sBAAsBC,gBAAgBC;;;;;CAQtC,wBAAwBD;;;;;CAQxB;;;;CAUA;;;;CAUA;;;;;CAQA;;;;;;CAWA,UAAU;;;;;;CAOV,UAAgB,kBAAkB;;;;;;;;;CA2ClC,UAAgB,mBACdP,QAAQ,QACRS,QAAQ,0BACP,QAAQ,MAAM;;;;;;;CA0EjB,mBAAmB,cACjBA,QAAQ,0BACP,QAAQ,WAAW,KAAK;;;;;;;;;;CAW3B,UAAU,iBACRC,iBACAC,SAAS,QACTV,OAAO,eACN,MAAM;;;;;;;CAeT,UAAU,eACRW,iBAAiB,kBACjBX,OAAO,eACN;;;;;;;;;;CAaH,UAAU,iBAAiB,UAAU,iBAAiB,KAAK,eACzDF,OAAO,KACPc,SAAS;EACP;EACA,QAAQ;CACT,GACDZ,OAAO,eACN,MAAM;;;;;;;;;CA+DT,UAAU,4BACRa,WAAW,gBACXC,KAAK,cACLC;;;;CAoCF,UAAU;;;;CASV,UAAU;;;;CASV,UAAU,WAAWC,QAAQ;EAC3B;EACA;CACD;;;;;;;CAeD,UAAU,YACR,EAAE,QAAQ,OAAmD,EAA1C,aAAa;;;;;;;;CAiClC,UAAU,aACRC,QAAQ,KAAK,SAAS,qCAAqC,CAAE;AAoBhE","names":["items: T[]","status: Status","batch: BatchContext","append: boolean","totalCount?: string","data: CollectionStorageData","params: CollectionConnectableParams","subject: Observable<SubjectPayload<KEY>>","viewId: string","pageSize: number","signal: AbortSignal | undefined","_error: unknown","_status: Status","objectCacheKeys: ObjectCacheKey[]","options: {\n append?: boolean;\n status: Status;\n }","objectSet: ObjectSet<any>","sub: Subscription","methodName: string","errors: {\n subscriptionClosed: boolean;\n error: unknown;\n }","object: Osdk.Instance<ObjectTypeDefinition, never, string, {}>"],"sources":["../../../../../src/observable/internal/base-list/BaseListQuery.ts"],"version":3,"file":"BaseListQuery.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAEE,WACA,sBACA,YACK,WAAY;AAEnB,cAAc,uBAAuB,6DAA8D;AACnG,cAAc,oBAAoB,0DAA2D;AAC7F,cAAc,eAAe,eAAgB;AAC7C,cAAc,aAAa,aAAc;AACzC,SAGE,iBAIK,gBAAiB;KAEnB,+BAA+B,OAAO,UAAU,YAAY;CAC/D,MAAM,eAAe;CACrB,eAAe,KAAK,eAAe;CACnC,cAAc,KAAK,eAAe;AACnC;AAED,OAAO,cAAM,wBAAwB,UAAU;CAC7C,UAAU,gBAAgBA,OAAO,QAAQ,UAAU;CA4FnD,AAAM,qBAAqBC,kBAAkB;CAM7C,UAAU,uBACRC,MAAM,KAAK,kBACV,QAAQ,KAAK;CAIhB,UAAU,uBACRC,SAAS,UACR;AAgBJ","names":["store: Store","apiName: string","data: Osdk.Instance<any>[]","changes: Changes"],"sources":["../../../../../src/observable/internal/list/ObjectListQuery.ts"],"version":3,"file":"ObjectListQuery.d.ts"}
1
+ {"mappings":"AAgBA,cAEE,WACA,sBACA,YACK,WAAY;AAEnB,cAAc,uBAAuB,6DAA8D;AACnG,cAAc,oBAAoB,0DAA2D;AAC7F,cAAc,eAAe,eAAgB;AAC7C,cAAc,aAAa,aAAc;AACzC,SAGE,iBAIK,gBAAiB;KAEnB,+BAA+B,OAAO,UAAU,YAAY;CAC/D,MAAM,eAAe;CACrB,eAAe,KAAK,eAAe;CACnC,cAAc,KAAK,eAAe;AACnC;AAED,OAAO,cAAM,wBAAwB,UAAU;CAC7C,UAAU,gBAAgBA,OAAO,QAAQ,UAAU;CAwGnD,AAAM,qBAAqBC,kBAAkB;CAM7C,UAAU,uBACRC,MAAM,KAAK,kBACV,QAAQ,KAAK;CAIhB,UAAU,uBACRC,SAAS,UACR;AAgBJ","names":["store: Store","apiName: string","data: Osdk.Instance<any>[]","changes: Changes"],"sources":["../../../../../src/observable/internal/list/ObjectListQuery.ts"],"version":3,"file":"ObjectListQuery.d.ts"}