@osdk/client 2.5.0-beta.8 → 2.6.0-beta.1

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 (193) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/build/browser/MinimalClientContext.js.map +1 -1
  3. package/build/browser/createMinimalClient.js +2 -1
  4. package/build/browser/createMinimalClient.js.map +1 -1
  5. package/build/browser/definitions/LinkDefinitions.test.js.map +1 -1
  6. package/build/browser/fetchMetadata.test.js +4 -0
  7. package/build/browser/fetchMetadata.test.js.map +1 -1
  8. package/build/browser/index.js +1 -1
  9. package/build/browser/index.js.map +1 -1
  10. package/build/browser/object/convertWireToOsdkObjects.test.js +5 -1
  11. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  12. package/build/browser/object/fetchPage.js +77 -29
  13. package/build/browser/object/fetchPage.js.map +1 -1
  14. package/build/browser/object/fetchPage.test.js +35 -1
  15. package/build/browser/object/fetchPage.test.js.map +1 -1
  16. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +31 -9
  17. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  18. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +69 -4
  19. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  20. package/build/browser/objectSet/createObjectSet.js +11 -0
  21. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  22. package/build/browser/observable/ObjectSetPayload.js +2 -0
  23. package/build/browser/observable/ObjectSetPayload.js.map +1 -0
  24. package/build/browser/observable/ObservableClient.js.map +1 -1
  25. package/build/browser/observable/computeObjectSetCacheKey.js +64 -0
  26. package/build/browser/observable/computeObjectSetCacheKey.js.map +1 -0
  27. package/build/browser/observable/internal/Changes.js +3 -0
  28. package/build/browser/observable/internal/Changes.js.map +1 -1
  29. package/build/browser/observable/internal/KnownCacheKey.js.map +1 -1
  30. package/build/browser/observable/internal/ObservableClientImpl.js +17 -0
  31. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  32. package/build/browser/observable/internal/Query.js +18 -1
  33. package/build/browser/observable/internal/Query.js.map +1 -1
  34. package/build/browser/observable/internal/Store.invalidation.test.js +165 -0
  35. package/build/browser/observable/internal/Store.invalidation.test.js.map +1 -1
  36. package/build/browser/observable/internal/Store.js +23 -0
  37. package/build/browser/observable/internal/Store.js.map +1 -1
  38. package/build/browser/observable/internal/list/InterfaceListQuery.js +83 -0
  39. package/build/browser/observable/internal/list/InterfaceListQuery.js.map +1 -0
  40. package/build/browser/observable/internal/list/ListQuery.js +33 -108
  41. package/build/browser/observable/internal/list/ListQuery.js.map +1 -1
  42. package/build/browser/observable/internal/list/ListsHelper.js +4 -2
  43. package/build/browser/observable/internal/list/ListsHelper.js.map +1 -1
  44. package/build/browser/observable/internal/list/ObjectListQuery.js +48 -0
  45. package/build/browser/observable/internal/list/ObjectListQuery.js.map +1 -0
  46. package/build/browser/observable/internal/objectMatchesWhereClause.test.js +2 -1
  47. package/build/browser/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  48. package/build/browser/observable/internal/objectset/ObjectSetCacheKey.js +2 -0
  49. package/build/browser/observable/internal/objectset/ObjectSetCacheKey.js.map +1 -0
  50. package/build/browser/observable/internal/objectset/ObjectSetHelper.js +69 -0
  51. package/build/browser/observable/internal/objectset/ObjectSetHelper.js.map +1 -0
  52. package/build/browser/observable/internal/objectset/ObjectSetQuery.js +151 -0
  53. package/build/browser/observable/internal/objectset/ObjectSetQuery.js.map +1 -0
  54. package/build/browser/observable/internal/objectset/ObjectSetQueryOptions.js +2 -0
  55. package/build/browser/observable/internal/objectset/ObjectSetQueryOptions.js.map +1 -0
  56. package/build/browser/observable/internal/testUtils.js +2 -1
  57. package/build/browser/observable/internal/testUtils.js.map +1 -1
  58. package/build/browser/public/unstable-do-not-use.js +1 -0
  59. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  60. package/build/browser/queries/applyQuery.js +5 -4
  61. package/build/browser/queries/applyQuery.js.map +1 -1
  62. package/build/browser/util/UserAgent.js +2 -2
  63. package/build/browser/util/exponentialBackoff.js +51 -0
  64. package/build/browser/util/exponentialBackoff.js.map +1 -0
  65. package/build/browser/util/exponentialBackoff.test.js +81 -0
  66. package/build/browser/util/exponentialBackoff.test.js.map +1 -0
  67. package/build/browser/util/extractObjectOrInterfaceType.js +5 -1
  68. package/build/browser/util/extractObjectOrInterfaceType.js.map +1 -1
  69. package/build/browser/util/extractObjectOrInterfaceType.test.js +21 -2
  70. package/build/browser/util/extractObjectOrInterfaceType.test.js.map +1 -1
  71. package/build/cjs/{chunk-XCZOFC4A.cjs → chunk-BP7BR5FZ.cjs} +61 -59
  72. package/build/cjs/chunk-BP7BR5FZ.cjs.map +1 -0
  73. package/build/cjs/{chunk-5KDG5ZET.cjs → chunk-DCEFUXFS.cjs} +341 -229
  74. package/build/cjs/chunk-DCEFUXFS.cjs.map +1 -0
  75. package/build/cjs/index.cjs +11 -7
  76. package/build/cjs/index.d.cts +8 -1
  77. package/build/cjs/public/internal.cjs +8 -8
  78. package/build/cjs/public/unstable-do-not-use.cjs +536 -240
  79. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  80. package/build/cjs/public/unstable-do-not-use.d.cts +78 -6
  81. package/build/esm/MinimalClientContext.js.map +1 -1
  82. package/build/esm/createMinimalClient.js +2 -1
  83. package/build/esm/createMinimalClient.js.map +1 -1
  84. package/build/esm/definitions/LinkDefinitions.test.js.map +1 -1
  85. package/build/esm/fetchMetadata.test.js +4 -0
  86. package/build/esm/fetchMetadata.test.js.map +1 -1
  87. package/build/esm/index.js +1 -1
  88. package/build/esm/index.js.map +1 -1
  89. package/build/esm/object/convertWireToOsdkObjects.test.js +5 -1
  90. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  91. package/build/esm/object/fetchPage.js +77 -29
  92. package/build/esm/object/fetchPage.js.map +1 -1
  93. package/build/esm/object/fetchPage.test.js +35 -1
  94. package/build/esm/object/fetchPage.test.js.map +1 -1
  95. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +31 -9
  96. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  97. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +69 -4
  98. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  99. package/build/esm/objectSet/createObjectSet.js +11 -0
  100. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  101. package/build/esm/observable/ObjectSetPayload.js +2 -0
  102. package/build/esm/observable/ObjectSetPayload.js.map +1 -0
  103. package/build/esm/observable/ObservableClient.js.map +1 -1
  104. package/build/esm/observable/computeObjectSetCacheKey.js +64 -0
  105. package/build/esm/observable/computeObjectSetCacheKey.js.map +1 -0
  106. package/build/esm/observable/internal/Changes.js +3 -0
  107. package/build/esm/observable/internal/Changes.js.map +1 -1
  108. package/build/esm/observable/internal/KnownCacheKey.js.map +1 -1
  109. package/build/esm/observable/internal/ObservableClientImpl.js +17 -0
  110. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  111. package/build/esm/observable/internal/Query.js +18 -1
  112. package/build/esm/observable/internal/Query.js.map +1 -1
  113. package/build/esm/observable/internal/Store.invalidation.test.js +165 -0
  114. package/build/esm/observable/internal/Store.invalidation.test.js.map +1 -1
  115. package/build/esm/observable/internal/Store.js +23 -0
  116. package/build/esm/observable/internal/Store.js.map +1 -1
  117. package/build/esm/observable/internal/list/InterfaceListQuery.js +83 -0
  118. package/build/esm/observable/internal/list/InterfaceListQuery.js.map +1 -0
  119. package/build/esm/observable/internal/list/ListQuery.js +33 -108
  120. package/build/esm/observable/internal/list/ListQuery.js.map +1 -1
  121. package/build/esm/observable/internal/list/ListsHelper.js +4 -2
  122. package/build/esm/observable/internal/list/ListsHelper.js.map +1 -1
  123. package/build/esm/observable/internal/list/ObjectListQuery.js +48 -0
  124. package/build/esm/observable/internal/list/ObjectListQuery.js.map +1 -0
  125. package/build/esm/observable/internal/objectMatchesWhereClause.test.js +2 -1
  126. package/build/esm/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  127. package/build/esm/observable/internal/objectset/ObjectSetCacheKey.js +2 -0
  128. package/build/esm/observable/internal/objectset/ObjectSetCacheKey.js.map +1 -0
  129. package/build/esm/observable/internal/objectset/ObjectSetHelper.js +69 -0
  130. package/build/esm/observable/internal/objectset/ObjectSetHelper.js.map +1 -0
  131. package/build/esm/observable/internal/objectset/ObjectSetQuery.js +151 -0
  132. package/build/esm/observable/internal/objectset/ObjectSetQuery.js.map +1 -0
  133. package/build/esm/observable/internal/objectset/ObjectSetQueryOptions.js +2 -0
  134. package/build/esm/observable/internal/objectset/ObjectSetQueryOptions.js.map +1 -0
  135. package/build/esm/observable/internal/testUtils.js +2 -1
  136. package/build/esm/observable/internal/testUtils.js.map +1 -1
  137. package/build/esm/public/unstable-do-not-use.js +1 -0
  138. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  139. package/build/esm/queries/applyQuery.js +5 -4
  140. package/build/esm/queries/applyQuery.js.map +1 -1
  141. package/build/esm/util/UserAgent.js +2 -2
  142. package/build/esm/util/exponentialBackoff.js +51 -0
  143. package/build/esm/util/exponentialBackoff.js.map +1 -0
  144. package/build/esm/util/exponentialBackoff.test.js +81 -0
  145. package/build/esm/util/exponentialBackoff.test.js.map +1 -0
  146. package/build/esm/util/extractObjectOrInterfaceType.js +5 -1
  147. package/build/esm/util/extractObjectOrInterfaceType.js.map +1 -1
  148. package/build/esm/util/extractObjectOrInterfaceType.test.js +21 -2
  149. package/build/esm/util/extractObjectOrInterfaceType.test.js.map +1 -1
  150. package/build/types/MinimalClientContext.d.ts +1 -0
  151. package/build/types/MinimalClientContext.d.ts.map +1 -1
  152. package/build/types/index.d.ts +1 -1
  153. package/build/types/index.d.ts.map +1 -1
  154. package/build/types/observable/ObjectSetPayload.d.ts +5 -0
  155. package/build/types/observable/ObjectSetPayload.d.ts.map +1 -0
  156. package/build/types/observable/ObservableClient.d.ts +54 -1
  157. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  158. package/build/types/observable/computeObjectSetCacheKey.d.ts +16 -0
  159. package/build/types/observable/computeObjectSetCacheKey.d.ts.map +1 -0
  160. package/build/types/observable/internal/Changes.d.ts +5 -3
  161. package/build/types/observable/internal/Changes.d.ts.map +1 -1
  162. package/build/types/observable/internal/KnownCacheKey.d.ts +2 -1
  163. package/build/types/observable/internal/KnownCacheKey.d.ts.map +1 -1
  164. package/build/types/observable/internal/Query.d.ts.map +1 -1
  165. package/build/types/observable/internal/Store.d.ts +5 -1
  166. package/build/types/observable/internal/Store.d.ts.map +1 -1
  167. package/build/types/observable/internal/list/InterfaceListQuery.d.ts +18 -0
  168. package/build/types/observable/internal/list/InterfaceListQuery.d.ts.map +1 -0
  169. package/build/types/observable/internal/list/ListQuery.d.ts +37 -6
  170. package/build/types/observable/internal/list/ListQuery.d.ts.map +1 -1
  171. package/build/types/observable/internal/list/ListsHelper.d.ts +1 -1
  172. package/build/types/observable/internal/list/ListsHelper.d.ts.map +1 -1
  173. package/build/types/observable/internal/list/ObjectListQuery.d.ts +18 -0
  174. package/build/types/observable/internal/list/ObjectListQuery.d.ts.map +1 -0
  175. package/build/types/observable/internal/objectset/ObjectSetCacheKey.d.ts +16 -0
  176. package/build/types/observable/internal/objectset/ObjectSetCacheKey.d.ts.map +1 -0
  177. package/build/types/observable/internal/objectset/ObjectSetHelper.d.ts +19 -0
  178. package/build/types/observable/internal/objectset/ObjectSetHelper.d.ts.map +1 -0
  179. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts +34 -0
  180. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts.map +1 -0
  181. package/build/types/observable/internal/objectset/ObjectSetQueryOptions.d.ts +18 -0
  182. package/build/types/observable/internal/objectset/ObjectSetQueryOptions.d.ts.map +1 -0
  183. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  184. package/build/types/public/unstable-do-not-use.d.ts +2 -1
  185. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  186. package/build/types/queries/applyQuery.d.ts.map +1 -1
  187. package/build/types/util/exponentialBackoff.d.ts +14 -0
  188. package/build/types/util/exponentialBackoff.d.ts.map +1 -0
  189. package/build/types/util/exponentialBackoff.test.d.ts +1 -0
  190. package/build/types/util/exponentialBackoff.test.d.ts.map +1 -0
  191. package/package.json +11 -11
  192. package/build/cjs/chunk-5KDG5ZET.cjs.map +0 -1
  193. package/build/cjs/chunk-XCZOFC4A.cjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { ObjectOrInterfaceDefinition, PropertyKeys, Augment, ObjectTypeDefinition, InterfaceDefinition, CompileTimeMetadata, PrimaryKeyType, WhereClause, Osdk, ActionDefinition, ActionValidationResponse } from '@osdk/api';
1
+ import { ObjectOrInterfaceDefinition, PropertyKeys, Augment, ObjectTypeDefinition, InterfaceDefinition, WirePropertyTypes, WhereClause, DerivedProperty, ObjectSet, LinkNames, BaseObjectSet, CompileTimeMetadata, PrimaryKeyType, Osdk, ActionDefinition, ActionValidationResponse } from '@osdk/api';
2
2
  import { C as Client, A as ActionSignatureFromDef } from '../Client-CF85LpFu.cjs';
3
3
  export { a as createClientWithTransaction } from '../createClient-mOlFts15.cjs';
4
4
  import '@osdk/shared.client';
@@ -7,10 +7,6 @@ import '@osdk/shared.client2';
7
7
 
8
8
  declare function augment<Q extends ObjectOrInterfaceDefinition, T extends PropertyKeys<Q>>(type: Q, ...properties: T[]): Augment<Q, T>;
9
9
 
10
- type Canonical<T> = T & {
11
- __canonical: true;
12
- };
13
-
14
10
  /**
15
11
  * Represents the current state of an observation.
16
12
  *
@@ -80,6 +76,36 @@ type OrderBy$1<Q extends ObjectTypeDefinition | InterfaceDefinition> = {
80
76
  */
81
77
  type InvalidationMode = "in-place" | "wait" | "reset";
82
78
 
79
+ interface ObserveObjectSetOptions<Q extends ObjectTypeDefinition, RDPs extends Record<string, WirePropertyTypes | undefined | Array<WirePropertyTypes>> = {}> extends CommonObserveOptions {
80
+ where?: WhereClause<Q>;
81
+ withProperties?: {
82
+ [K in keyof RDPs]: DerivedProperty.Creator<Q, RDPs[K]>;
83
+ };
84
+ union?: ObjectSet<Q>[];
85
+ intersect?: ObjectSet<Q>[];
86
+ subtract?: ObjectSet<Q>[];
87
+ pivotTo?: LinkNames<Q>;
88
+ pageSize?: number;
89
+ orderBy?: {
90
+ [K in PropertyKeys<Q>]?: "asc" | "desc";
91
+ };
92
+ }
93
+
94
+ /**
95
+ * Computes a stable cache key for an ObjectSet with options.
96
+ *
97
+ * Note: dedupeInterval is excluded as it doesn't affect the data, only the refresh rate.
98
+ *
99
+ * @param objectSet - The base ObjectSet
100
+ * @param options - Optional observation options (where, orderBy, etc.)
101
+ * @returns A stable string key representing the ObjectSet and options
102
+ */
103
+ declare function computeObjectSetCacheKey<T extends ObjectTypeDefinition, BaseRDPs extends Record<string, WirePropertyTypes | undefined | Array<WirePropertyTypes>> | BaseObjectSet<T> = never, RDPs extends Record<string, WirePropertyTypes | undefined | Array<WirePropertyTypes>> = {}>(objectSet: ObjectSet<T, BaseRDPs>, options?: ObserveObjectSetOptions<T, RDPs>): string;
104
+
105
+ type Canonical<T> = T & {
106
+ __canonical: true;
107
+ };
108
+
83
109
  interface Unsubscribable$1 {
84
110
  unsubscribe: () => void;
85
111
  }
@@ -140,6 +166,15 @@ interface ObserveObjectsArgs<T extends ObjectTypeDefinition | InterfaceDefinitio
140
166
  hasMore: boolean;
141
167
  status: Status;
142
168
  }
169
+ interface ObserveObjectSetArgs<T extends ObjectTypeDefinition | InterfaceDefinition, RDPs extends Record<string, WirePropertyTypes | undefined | Array<WirePropertyTypes>> = {}> {
170
+ resolvedList: Array<Osdk.Instance<T, "$allBaseProperties", PropertyKeys<T>, RDPs>>;
171
+ isOptimistic: boolean;
172
+ lastUpdated: number;
173
+ fetchMore: () => Promise<void>;
174
+ hasMore: boolean;
175
+ status: Status;
176
+ objectSet: ObjectSet<T, RDPs>;
177
+ }
143
178
  declare namespace ObservableClient {
144
179
  interface ApplyActionOptions {
145
180
  optimisticUpdate?: (ctx: OptimisticBuilder) => void;
@@ -186,6 +221,22 @@ interface ObservableClient extends ObserveLinks {
186
221
  * - Automatic updates when any matching object changes
187
222
  */
188
223
  observeList<T extends ObjectTypeDefinition | InterfaceDefinition>(options: ObserveListOptions<T>, subFn: Observer<ObserveObjectsArgs<T>>): Unsubscribable;
224
+ /**
225
+ * Observe an ObjectSet with automatic updates when matching objects change.
226
+ *
227
+ * @param baseObjectSet - The base ObjectSet to observe
228
+ * @param options - Options for transforming and observing the ObjectSet
229
+ * @param subFn - Observer that receives ObjectSet state updates
230
+ * @returns Subscription that can be unsubscribed to stop updates
231
+ *
232
+ * Supports all ObjectSet operations:
233
+ * - Filtering with where clauses
234
+ * - Derived properties with withProperties
235
+ * - Set operations (union, intersect, subtract)
236
+ * - Link traversal with pivotTo
237
+ * - Sorting and pagination
238
+ */
239
+ observeObjectSet<T extends ObjectTypeDefinition, RDPs extends Record<string, WirePropertyTypes | undefined | Array<WirePropertyTypes>> = {}>(baseObjectSet: ObjectSet<T>, options: ObserveObjectSetOptions<T, RDPs>, subFn: Observer<ObserveObjectSetArgs<T, RDPs>>): Unsubscribable;
189
240
  /**
190
241
  * Execute an action with optional optimistic updates.
191
242
  *
@@ -214,6 +265,27 @@ interface ObservableClient extends ObserveLinks {
214
265
  * - Enable/disable action buttons based on validity
215
266
  */
216
267
  validateAction: <Q extends ActionDefinition<any>>(action: Q, args: Parameters<ActionSignatureFromDef<Q>["applyAction"]>[0]) => Promise<ActionValidationResponse>;
268
+ /**
269
+ * Invalidates the entire cache, forcing all queries to refetch.
270
+ * Use sparingly as this can cause significant network traffic.
271
+ */
272
+ invalidateAll(): Promise<void>;
273
+ /**
274
+ * Invalidates specific objects in the cache.
275
+ * @param objects - Single object or array of objects to invalidate
276
+ */
277
+ invalidateObjects(objects: Osdk.Instance<ObjectTypeDefinition> | ReadonlyArray<Osdk.Instance<ObjectTypeDefinition>>): Promise<void>;
278
+ /**
279
+ * Invalidates all cached data for a specific object type.
280
+ * This includes:
281
+ * - All objects of the specified type
282
+ * - All lists containing objects of this type
283
+ * - All links where the source is of this type
284
+ *
285
+ * @param type - Object type definition or API name string
286
+ * @returns Promise that resolves when invalidation is complete
287
+ */
288
+ invalidateObjectType<T extends ObjectTypeDefinition>(type: T | T["apiName"]): Promise<void>;
217
289
  canonicalizeWhereClause: <T extends ObjectTypeDefinition | InterfaceDefinition>(where: WhereClause<T>) => Canonical<WhereClause<T>>;
218
290
  }
219
291
  declare function createObservableClient(client: Client): ObservableClient;
@@ -230,4 +302,4 @@ interface OsdkConfig {
230
302
  }
231
303
  declare function getOsdkConfig(ontologyRid: string): OsdkConfig;
232
304
 
233
- export { ActionSignatureFromDef, ObservableClient, ObserveLinks, type ObserveObjectArgs, type ObserveObjectsArgs, type Observer, type OsdkConfig, type Unsubscribable, augment, createObservableClient, getMetaTagContent, getOsdkConfig };
305
+ export { ActionSignatureFromDef, ObservableClient, ObserveLinks, type ObserveObjectArgs, type ObserveObjectSetArgs, type ObserveObjectsArgs, type Observer, type OsdkConfig, type Unsubscribable, augment, computeObjectSetCacheKey, createObservableClient, getMetaTagContent, getOsdkConfig };
@@ -1 +1 @@
1
- {"version":3,"file":"MinimalClientContext.js","names":[],"sources":["MinimalClientContext.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport type { SharedClientContext } from \"@osdk/shared.client2\";\nimport type {\n convertWireToOsdkObjects,\n convertWireToOsdkObjects2,\n} from \"./object/convertWireToOsdkObjects.js\";\nimport type { ObjectSetFactory } from \"./objectSet/ObjectSetFactory.js\";\nimport type { OntologyProvider } from \"./ontology/OntologyProvider.js\";\n\ndeclare const tag: unique symbol;\n\nexport type ClientCacheKey = {} & { readonly [tag]: void };\n\nexport type RequestContext = {\n finalMethodCall?: string;\n};\n\nexport interface MinimalClient extends SharedClientContext {\n ontologyRid: string | Promise<string>;\n ontologyProvider: OntologyProvider;\n logger?: Logger;\n transactionRid?: string;\n branch?: string;\n /** @internal */\n objectSetFactory: ObjectSetFactory<any, any>;\n /** @internal */\n objectFactory: typeof convertWireToOsdkObjects;\n /** @internal */\n objectFactory2: typeof convertWireToOsdkObjects2;\n\n clientCacheKey: ClientCacheKey;\n requestContext: RequestContext;\n}\n\nexport type MinimalClientParams = {\n metadata: MinimalClientMetadata;\n provider: OntologyProvider;\n};\n\nexport interface MinimalClientMetadata {\n ontologyRid: string | Promise<string>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"MinimalClientContext.js","names":[],"sources":["MinimalClientContext.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport type { SharedClientContext } from \"@osdk/shared.client2\";\nimport type {\n convertWireToOsdkObjects,\n convertWireToOsdkObjects2,\n} from \"./object/convertWireToOsdkObjects.js\";\nimport type { ObjectSetFactory } from \"./objectSet/ObjectSetFactory.js\";\nimport type { OntologyProvider } from \"./ontology/OntologyProvider.js\";\n\ndeclare const tag: unique symbol;\n\nexport type ClientCacheKey = {} & { readonly [tag]: void };\n\nexport type RequestContext = {\n finalMethodCall?: string;\n};\n\nexport interface MinimalClient extends SharedClientContext {\n ontologyRid: string | Promise<string>;\n ontologyProvider: OntologyProvider;\n logger?: Logger;\n transactionRid?: string;\n branch?: string;\n /** @internal */\n objectSetFactory: ObjectSetFactory<any, any>;\n /** @internal */\n objectFactory: typeof convertWireToOsdkObjects;\n /** @internal */\n objectFactory2: typeof convertWireToOsdkObjects2;\n\n clientCacheKey: ClientCacheKey;\n requestContext: RequestContext;\n asTypeInterfaceOrObjectMapping: Record<string, \"object\" | \"interface\">;\n}\n\nexport type MinimalClientParams = {\n metadata: MinimalClientMetadata;\n provider: OntologyProvider;\n};\n\nexport interface MinimalClientMetadata {\n ontologyRid: string | Promise<string>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -42,7 +42,8 @@ export function createMinimalClient(metadata, baseUrl, tokenProvider, options =
42
42
  transactionRid: options.transactionRid,
43
43
  clientCacheKey: {},
44
44
  requestContext: {},
45
- branch: options.branch
45
+ branch: options.branch,
46
+ asTypeInterfaceOrObjectMapping: {}
46
47
  };
47
48
  return Object.freeze(Object.assign(minimalClient, {
48
49
  ontologyProvider: createOntologyProviderFactory(options)(minimalClient)
@@ -1 +1 @@
1
- {"version":3,"file":"createMinimalClient.js","names":["createSharedClientContext","convertWireToOsdkObjects","convertWireToOsdkObjects2","createObjectSet","createStandardOntologyProviderFactory","USER_AGENT","createMinimalClient","metadata","baseUrl","tokenProvider","options","fetchFn","global","fetch","objectSetFactory","createOntologyProviderFactory","process","env","NODE_ENV","URL","e","hint","startsWith","Error","processedBaseUrl","pathname","endsWith","minimalClient","toString","objectFactory","objectFactory2","ontologyRid","logger","transactionRid","clientCacheKey","requestContext","branch","Object","freeze","assign","ontologyProvider"],"sources":["createMinimalClient.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport { createSharedClientContext } from \"@osdk/shared.client.impl\";\nimport type {\n ClientCacheKey,\n MinimalClient,\n MinimalClientParams,\n} from \"./MinimalClientContext.js\";\nimport {\n convertWireToOsdkObjects,\n convertWireToOsdkObjects2,\n} from \"./object/convertWireToOsdkObjects.js\";\nimport { createObjectSet } from \"./objectSet/createObjectSet.js\";\nimport type { ObjectSetFactory } from \"./objectSet/ObjectSetFactory.js\";\nimport type { OntologyProvider } from \"./ontology/OntologyProvider.js\";\nimport {\n createStandardOntologyProviderFactory,\n type OntologyCachingOptions,\n} from \"./ontology/StandardOntologyProvider.js\";\nimport { USER_AGENT } from \"./util/UserAgent.js\";\n\n/** @internal */\nexport function createMinimalClient(\n metadata: MinimalClientParams[\"metadata\"],\n baseUrl: string,\n tokenProvider: () => Promise<string>,\n options: OntologyCachingOptions & {\n logger?: Logger;\n transactionRid?: string;\n branch?: string;\n } = {},\n fetchFn: (\n input: Request | URL | string,\n init?: RequestInit | undefined,\n ) => Promise<Response> = global.fetch,\n objectSetFactory: ObjectSetFactory<any, any> = createObjectSet,\n createOntologyProviderFactory: (\n a: OntologyCachingOptions & { logger?: Logger },\n ) => (minimalClient: MinimalClient) => OntologyProvider =\n createStandardOntologyProviderFactory,\n) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n new URL(baseUrl);\n } catch (e) {\n const hint =\n !baseUrl.startsWith(\"http://\") || !baseUrl.startsWith(\"https://\")\n ? \". Did you forget to add 'http://' or 'https://'?\"\n : \"\";\n throw new Error(`Invalid stack URL: ${baseUrl}${hint}`);\n }\n }\n const processedBaseUrl = new URL(baseUrl);\n processedBaseUrl.pathname += processedBaseUrl.pathname.endsWith(\"/\")\n ? \"\"\n : \"/\";\n const minimalClient: MinimalClient = {\n ...createSharedClientContext(\n processedBaseUrl.toString(),\n tokenProvider,\n USER_AGENT,\n fetchFn,\n ),\n objectSetFactory,\n objectFactory: convertWireToOsdkObjects,\n objectFactory2: convertWireToOsdkObjects2,\n ontologyRid: metadata.ontologyRid,\n logger: options.logger,\n transactionRid: options.transactionRid,\n clientCacheKey: {} as ClientCacheKey,\n requestContext: {},\n branch: options.branch,\n } satisfies Omit<\n MinimalClient,\n \"ontologyProvider\"\n > as any;\n\n return Object.freeze(Object.assign(minimalClient, {\n ontologyProvider: createOntologyProviderFactory(\n options,\n )(minimalClient),\n }));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,yBAAyB,QAAQ,0BAA0B;AAMpE,SACEC,wBAAwB,EACxBC,yBAAyB,QACpB,sCAAsC;AAC7C,SAASC,eAAe,QAAQ,gCAAgC;AAGhE,SACEC,qCAAqC,QAEhC,wCAAwC;AAC/C,SAASC,UAAU,QAAQ,qBAAqB;;AAEhD;AACA,OAAO,SAASC,mBAAmBA,CACjCC,QAAyC,EACzCC,OAAe,EACfC,aAAoC,EACpCC,OAIC,GAAG,CAAC,CAAC,EACNC,OAGsB,GAAGC,MAAM,CAACC,KAAK,EACrCC,gBAA4C,GAAGX,eAAe,EAC9DY,6BAEuD,GACrDX,qCAAqC,EACvC;EACA,IAAIY,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC,IAAI;MACF,IAAIC,GAAG,CAACX,OAAO,CAAC;IAClB,CAAC,CAAC,OAAOY,CAAC,EAAE;MACV,MAAMC,IAAI,GACR,CAACb,OAAO,CAACc,UAAU,CAAC,SAAS,CAAC,IAAI,CAACd,OAAO,CAACc,UAAU,CAAC,UAAU,CAAC,GAC7D,kDAAkD,GAClD,EAAE;MACR,MAAM,IAAIC,KAAK,CAAC,sBAAsBf,OAAO,GAAGa,IAAI,EAAE,CAAC;IACzD;EACF;EACA,MAAMG,gBAAgB,GAAG,IAAIL,GAAG,CAACX,OAAO,CAAC;EACzCgB,gBAAgB,CAACC,QAAQ,IAAID,gBAAgB,CAACC,QAAQ,CAACC,QAAQ,CAAC,GAAG,CAAC,GAChE,EAAE,GACF,GAAG;EACP,MAAMC,aAA4B,GAAG;IACnC,GAAG3B,yBAAyB,CAC1BwB,gBAAgB,CAACI,QAAQ,CAAC,CAAC,EAC3BnB,aAAa,EACbJ,UAAU,EACVM,OACF,CAAC;IACDG,gBAAgB;IAChBe,aAAa,EAAE5B,wBAAwB;IACvC6B,cAAc,EAAE5B,yBAAyB;IACzC6B,WAAW,EAAExB,QAAQ,CAACwB,WAAW;IACjCC,MAAM,EAAEtB,OAAO,CAACsB,MAAM;IACtBC,cAAc,EAAEvB,OAAO,CAACuB,cAAc;IACtCC,cAAc,EAAE,CAAC,CAAmB;IACpCC,cAAc,EAAE,CAAC,CAAC;IAClBC,MAAM,EAAE1B,OAAO,CAAC0B;EAClB,CAGQ;EAER,OAAOC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAACZ,aAAa,EAAE;IAChDa,gBAAgB,EAAEzB,6BAA6B,CAC7CL,OACF,CAAC,CAACiB,aAAa;EACjB,CAAC,CAAC,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"file":"createMinimalClient.js","names":["createSharedClientContext","convertWireToOsdkObjects","convertWireToOsdkObjects2","createObjectSet","createStandardOntologyProviderFactory","USER_AGENT","createMinimalClient","metadata","baseUrl","tokenProvider","options","fetchFn","global","fetch","objectSetFactory","createOntologyProviderFactory","process","env","NODE_ENV","URL","e","hint","startsWith","Error","processedBaseUrl","pathname","endsWith","minimalClient","toString","objectFactory","objectFactory2","ontologyRid","logger","transactionRid","clientCacheKey","requestContext","branch","asTypeInterfaceOrObjectMapping","Object","freeze","assign","ontologyProvider"],"sources":["createMinimalClient.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport { createSharedClientContext } from \"@osdk/shared.client.impl\";\nimport type {\n ClientCacheKey,\n MinimalClient,\n MinimalClientParams,\n} from \"./MinimalClientContext.js\";\nimport {\n convertWireToOsdkObjects,\n convertWireToOsdkObjects2,\n} from \"./object/convertWireToOsdkObjects.js\";\nimport { createObjectSet } from \"./objectSet/createObjectSet.js\";\nimport type { ObjectSetFactory } from \"./objectSet/ObjectSetFactory.js\";\nimport type { OntologyProvider } from \"./ontology/OntologyProvider.js\";\nimport {\n createStandardOntologyProviderFactory,\n type OntologyCachingOptions,\n} from \"./ontology/StandardOntologyProvider.js\";\nimport { USER_AGENT } from \"./util/UserAgent.js\";\n\n/** @internal */\nexport function createMinimalClient(\n metadata: MinimalClientParams[\"metadata\"],\n baseUrl: string,\n tokenProvider: () => Promise<string>,\n options: OntologyCachingOptions & {\n logger?: Logger;\n transactionRid?: string;\n branch?: string;\n } = {},\n fetchFn: (\n input: Request | URL | string,\n init?: RequestInit | undefined,\n ) => Promise<Response> = global.fetch,\n objectSetFactory: ObjectSetFactory<any, any> = createObjectSet,\n createOntologyProviderFactory: (\n a: OntologyCachingOptions & { logger?: Logger },\n ) => (minimalClient: MinimalClient) => OntologyProvider =\n createStandardOntologyProviderFactory,\n) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n new URL(baseUrl);\n } catch (e) {\n const hint =\n !baseUrl.startsWith(\"http://\") || !baseUrl.startsWith(\"https://\")\n ? \". Did you forget to add 'http://' or 'https://'?\"\n : \"\";\n throw new Error(`Invalid stack URL: ${baseUrl}${hint}`);\n }\n }\n const processedBaseUrl = new URL(baseUrl);\n processedBaseUrl.pathname += processedBaseUrl.pathname.endsWith(\"/\")\n ? \"\"\n : \"/\";\n const minimalClient: MinimalClient = {\n ...createSharedClientContext(\n processedBaseUrl.toString(),\n tokenProvider,\n USER_AGENT,\n fetchFn,\n ),\n objectSetFactory,\n objectFactory: convertWireToOsdkObjects,\n objectFactory2: convertWireToOsdkObjects2,\n ontologyRid: metadata.ontologyRid,\n logger: options.logger,\n transactionRid: options.transactionRid,\n clientCacheKey: {} as ClientCacheKey,\n requestContext: {},\n branch: options.branch,\n asTypeInterfaceOrObjectMapping: {},\n } satisfies Omit<\n MinimalClient,\n \"ontologyProvider\"\n > as any;\n\n return Object.freeze(Object.assign(minimalClient, {\n ontologyProvider: createOntologyProviderFactory(\n options,\n )(minimalClient),\n }));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,yBAAyB,QAAQ,0BAA0B;AAMpE,SACEC,wBAAwB,EACxBC,yBAAyB,QACpB,sCAAsC;AAC7C,SAASC,eAAe,QAAQ,gCAAgC;AAGhE,SACEC,qCAAqC,QAEhC,wCAAwC;AAC/C,SAASC,UAAU,QAAQ,qBAAqB;;AAEhD;AACA,OAAO,SAASC,mBAAmBA,CACjCC,QAAyC,EACzCC,OAAe,EACfC,aAAoC,EACpCC,OAIC,GAAG,CAAC,CAAC,EACNC,OAGsB,GAAGC,MAAM,CAACC,KAAK,EACrCC,gBAA4C,GAAGX,eAAe,EAC9DY,6BAEuD,GACrDX,qCAAqC,EACvC;EACA,IAAIY,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC,IAAI;MACF,IAAIC,GAAG,CAACX,OAAO,CAAC;IAClB,CAAC,CAAC,OAAOY,CAAC,EAAE;MACV,MAAMC,IAAI,GACR,CAACb,OAAO,CAACc,UAAU,CAAC,SAAS,CAAC,IAAI,CAACd,OAAO,CAACc,UAAU,CAAC,UAAU,CAAC,GAC7D,kDAAkD,GAClD,EAAE;MACR,MAAM,IAAIC,KAAK,CAAC,sBAAsBf,OAAO,GAAGa,IAAI,EAAE,CAAC;IACzD;EACF;EACA,MAAMG,gBAAgB,GAAG,IAAIL,GAAG,CAACX,OAAO,CAAC;EACzCgB,gBAAgB,CAACC,QAAQ,IAAID,gBAAgB,CAACC,QAAQ,CAACC,QAAQ,CAAC,GAAG,CAAC,GAChE,EAAE,GACF,GAAG;EACP,MAAMC,aAA4B,GAAG;IACnC,GAAG3B,yBAAyB,CAC1BwB,gBAAgB,CAACI,QAAQ,CAAC,CAAC,EAC3BnB,aAAa,EACbJ,UAAU,EACVM,OACF,CAAC;IACDG,gBAAgB;IAChBe,aAAa,EAAE5B,wBAAwB;IACvC6B,cAAc,EAAE5B,yBAAyB;IACzC6B,WAAW,EAAExB,QAAQ,CAACwB,WAAW;IACjCC,MAAM,EAAEtB,OAAO,CAACsB,MAAM;IACtBC,cAAc,EAAEvB,OAAO,CAACuB,cAAc;IACtCC,cAAc,EAAE,CAAC,CAAmB;IACpCC,cAAc,EAAE,CAAC,CAAC;IAClBC,MAAM,EAAE1B,OAAO,CAAC0B,MAAM;IACtBC,8BAA8B,EAAE,CAAC;EACnC,CAGQ;EAER,OAAOC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAACb,aAAa,EAAE;IAChDc,gBAAgB,EAAE1B,6BAA6B,CAC7CL,OACF,CAAC,CAACiB,aAAa;EACjB,CAAC,CAAC,CAAC;AACL","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkDefinitions.test.js","names":["describe","expectTypeOf","it","toEqualTypeOf","branded"],"sources":["LinkDefinitions.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n OsdkObjectLinksObject,\n SelectArg,\n SingleLinkAccessor,\n} from \"@osdk/api\";\nimport type {\n Employee,\n equipment,\n Office,\n Person,\n} from \"@osdk/client.test.ontology\";\nimport { describe, expectTypeOf, it } from \"vitest\";\n\ndescribe(\"LinkDefinitions\", () => {\n describe(\"OsdkObjectLinkObject\", () => {\n it(\"is correctly absent on types with no links\", () => {\n expectTypeOf<OsdkObjectLinksObject<equipment>>()\n .toEqualTypeOf<never>();\n });\n\n it(\"populates on types with links\", () => {\n expectTypeOf<OsdkObjectLinksObject<Employee>>()\n .toEqualTypeOf<\n {\n readonly lead: SingleLinkAccessor<Employee>;\n readonly officeLink: SingleLinkAccessor<Office>;\n readonly peeps: ObjectSet<Employee>;\n }\n >();\n });\n\n describe(\"SingletonLinkAccessor\", () => {\n it(\"infers select properly\", () => {\n // this helper lets us get return types of functions that are generic\n class Helper<\n T extends ObjectTypeDefinition,\n const A extends SelectArg<T>,\n > {\n constructor(private accessor: SingleLinkAccessor<T>) {}\n\n public fetchOne() {\n return this.accessor.fetchOne<A>();\n }\n }\n\n type PersonDef = Person;\n\n // // e.g. .lead.fetchOne({});\n expectTypeOf<Awaited<ReturnType<Helper<PersonDef, {}>[\"fetchOne\"]>>>()\n .branded.toEqualTypeOf<Osdk<PersonDef>>();\n\n // e.g. .lead.fetchOne();\n expectTypeOf<\n Awaited<\n ReturnType<Helper<PersonDef, SelectArg<PersonDef>>[\"fetchOne\"]>\n >\n >().branded\n .toEqualTypeOf<Osdk<PersonDef>>();\n\n // e.g. .lead.fetchOne({ select: [] });\n expectTypeOf<\n Awaited<\n ReturnType<Helper<PersonDef, { $select: [] }>[\"fetchOne\"]>\n >\n >().branded\n .toEqualTypeOf<Osdk<PersonDef>>();\n\n // e.g. .lead.fetchOne({ select: [\"name\"] });\n expectTypeOf<\n Awaited<\n ReturnType<Helper<PersonDef, { $select: [\"name\"] }>[\"fetchOne\"]>\n >\n >()\n .toEqualTypeOf<Osdk<PersonDef, \"name\">>();\n });\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBA,SAASA,QAAQ,EAAEC,YAAY,EAAEC,EAAE,QAAQ,QAAQ;AAEnDF,QAAQ,CAAC,iBAAiB,EAAE,MAAM;EAChCA,QAAQ,CAAC,sBAAsB,EAAE,MAAM;IACrCE,EAAE,CAAC,4CAA4C,EAAE,MAAM;MACrDD,YAAY,CAAmC,CAAC,CAC7CE,aAAa,CAAQ,CAAC;IAC3B,CAAC,CAAC;IAEFD,EAAE,CAAC,+BAA+B,EAAE,MAAM;MACxCD,YAAY,CAAkC,CAAC,CAC5CE,aAAa,CAMZ,CAAC;IACP,CAAC,CAAC;IAEFH,QAAQ,CAAC,uBAAuB,EAAE,MAAM;MACtCE,EAAE,CAAC,wBAAwB,EAAE,MAAM;QACjC;;QAcA;QACAD,YAAY,CAAyD,CAAC,CACnEG,OAAO,CAACD,aAAa,CAAkB,CAAC;;QAE3C;QACAF,YAAY,CAIV,CAAC,CAACG,OAAO,CACRD,aAAa,CAAkB,CAAC;;QAEnC;QACAF,YAAY,CAIV,CAAC,CAACG,OAAO,CACRD,aAAa,CAAkB,CAAC;;QAEnC;QACAF,YAAY,CAIV,CAAC,CACAE,aAAa,CAA0B,CAAC;MAC7C,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"LinkDefinitions.test.js","names":["describe","expectTypeOf","it","toEqualTypeOf","branded"],"sources":["LinkDefinitions.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n OsdkObjectLinksObject,\n SelectArg,\n SingleLinkAccessor,\n} from \"@osdk/api\";\nimport type {\n Employee,\n equipment,\n Office,\n Person,\n} from \"@osdk/client.test.ontology\";\nimport { describe, expectTypeOf, it } from \"vitest\";\n\ndescribe(\"LinkDefinitions\", () => {\n describe(\"OsdkObjectLinkObject\", () => {\n it(\"is correctly absent on types with no links\", () => {\n expectTypeOf<OsdkObjectLinksObject<equipment>>()\n .toEqualTypeOf<never>();\n });\n\n it(\"populates on types with links\", () => {\n expectTypeOf<OsdkObjectLinksObject<Employee>>()\n .toEqualTypeOf<\n {\n readonly lead: SingleLinkAccessor<Employee>;\n readonly officeLink: SingleLinkAccessor<Office>;\n readonly peeps: ObjectSet<Employee>;\n readonly visitedOffices: ObjectSet<Office>;\n }\n >();\n });\n\n describe(\"SingletonLinkAccessor\", () => {\n it(\"infers select properly\", () => {\n // this helper lets us get return types of functions that are generic\n class Helper<\n T extends ObjectTypeDefinition,\n const A extends SelectArg<T>,\n > {\n constructor(private accessor: SingleLinkAccessor<T>) {}\n\n public fetchOne() {\n return this.accessor.fetchOne<A>();\n }\n }\n\n type PersonDef = Person;\n\n // // e.g. .lead.fetchOne({});\n expectTypeOf<Awaited<ReturnType<Helper<PersonDef, {}>[\"fetchOne\"]>>>()\n .branded.toEqualTypeOf<Osdk<PersonDef>>();\n\n // e.g. .lead.fetchOne();\n expectTypeOf<\n Awaited<\n ReturnType<Helper<PersonDef, SelectArg<PersonDef>>[\"fetchOne\"]>\n >\n >().branded\n .toEqualTypeOf<Osdk<PersonDef>>();\n\n // e.g. .lead.fetchOne({ select: [] });\n expectTypeOf<\n Awaited<\n ReturnType<Helper<PersonDef, { $select: [] }>[\"fetchOne\"]>\n >\n >().branded\n .toEqualTypeOf<Osdk<PersonDef>>();\n\n // e.g. .lead.fetchOne({ select: [\"name\"] });\n expectTypeOf<\n Awaited<\n ReturnType<Helper<PersonDef, { $select: [\"name\"] }>[\"fetchOne\"]>\n >\n >()\n .toEqualTypeOf<Osdk<PersonDef, \"name\">>();\n });\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBA,SAASA,QAAQ,EAAEC,YAAY,EAAEC,EAAE,QAAQ,QAAQ;AAEnDF,QAAQ,CAAC,iBAAiB,EAAE,MAAM;EAChCA,QAAQ,CAAC,sBAAsB,EAAE,MAAM;IACrCE,EAAE,CAAC,4CAA4C,EAAE,MAAM;MACrDD,YAAY,CAAmC,CAAC,CAC7CE,aAAa,CAAQ,CAAC;IAC3B,CAAC,CAAC;IAEFD,EAAE,CAAC,+BAA+B,EAAE,MAAM;MACxCD,YAAY,CAAkC,CAAC,CAC5CE,aAAa,CAOZ,CAAC;IACP,CAAC,CAAC;IAEFH,QAAQ,CAAC,uBAAuB,EAAE,MAAM;MACtCE,EAAE,CAAC,wBAAwB,EAAE,MAAM;QACjC;;QAcA;QACAD,YAAY,CAAyD,CAAC,CACnEG,OAAO,CAACD,aAAa,CAAkB,CAAC;;QAE3C;QACAF,YAAY,CAIV,CAAC,CAACG,OAAO,CACRD,aAAa,CAAkB,CAAC;;QAEnC;QACAF,YAAY,CAIV,CAAC,CAACG,OAAO,CACRD,aAAa,CAAkB,CAAC;;QAEnC;QACAF,YAAY,CAIV,CAAC,CACAE,aAAa,CAA0B,CAAC;MAC7C,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -70,6 +70,10 @@ describe("FetchMetadata", () => {
70
70
  "multiplicity": true,
71
71
  "targetType": "Employee",
72
72
  },
73
+ "visitedOffices": {
74
+ "multiplicity": true,
75
+ "targetType": "Office",
76
+ },
73
77
  },
74
78
  "pluralDisplayName": "Employees",
75
79
  "primaryKeyApiName": "employeeId",
@@ -1 +1 @@
1
- {"version":3,"file":"fetchMetadata.test.js","names":["$Actions","$Interfaces","$Objects","$Queries","LegacyFauxFoundry","startNodeApiServer","beforeAll","describe","expect","expectTypeOf","it","createClient","client","testSetup","apiServer","close","objectMetadata","fetchMetadata","Employee","toEqualTypeOf","toMatchInlineSnapshot","interfaceMetadata","FooInterface","actionMetadata","moveOffice","queryMetadata","queryAcceptsObject"],"sources":["fetchMetadata.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionMetadata,\n InterfaceMetadata,\n ObjectMetadata,\n QueryMetadata,\n} from \"@osdk/api\";\nimport {\n $Actions,\n $Interfaces,\n $Objects,\n $Queries,\n} from \"@osdk/client.test.ontology\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport type { Client } from \"./Client.js\";\nimport { createClient } from \"./createClient.js\";\n\ndescribe(\"FetchMetadata\", () => {\n let client: Client;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"fetches object metadata correctly\", async () => {\n const objectMetadata = await client.fetchMetadata($Objects.Employee);\n\n expectTypeOf(objectMetadata).toEqualTypeOf<\n ObjectMetadata\n >();\n\n expect(objectMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"Employee\",\n \"description\": \"A full-time or part-time \n\n employee of our firm\",\n \"displayName\": \"Employee\",\n \"icon\": {\n \"color\": \"blue\",\n \"name\": \"person\",\n \"type\": \"blueprint\",\n },\n \"implements\": [\n \"FooInterface\",\n ],\n \"interfaceMap\": {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n \"inverseInterfaceMap\": {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n \"links\": {\n \"lead\": {\n \"multiplicity\": false,\n \"targetType\": \"Employee\",\n },\n \"officeLink\": {\n \"multiplicity\": false,\n \"targetType\": \"Office\",\n },\n \"peeps\": {\n \"multiplicity\": true,\n \"targetType\": \"Employee\",\n },\n },\n \"pluralDisplayName\": \"Employees\",\n \"primaryKeyApiName\": \"employeeId\",\n \"primaryKeyType\": \"integer\",\n \"properties\": {\n \"class\": {\n \"description\": \"\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeId\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"integer\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeLocation\": {\n \"description\": \"Geotime series reference of the location of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"geotimeSeriesReference\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeSensor\": {\n \"description\": \"TimeSeries sensor of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"sensorTimeseries\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeStatus\": {\n \"description\": \"TimeSeries of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"stringTimeseries\",\n \"valueTypeApiName\": undefined,\n },\n \"fullName\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"office\": {\n \"description\": \"The unique \"ID\" of the employee's \\\\\"primary\\\\\" assigned office.\n This is some more text.\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"skillSet\": {\n \"description\": \"The skills of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"skillSetEmbedding\": {\n \"description\": \"Vectorized skill set\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"vector\",\n \"valueTypeApiName\": undefined,\n },\n \"startDate\": {\n \"description\": \"The date the employee was hired (most recently, if they were re-hired)\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"datetime\",\n \"valueTypeApiName\": undefined,\n },\n },\n \"rid\": \"ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44\",\n \"status\": \"ACTIVE\",\n \"titleProperty\": \"fullName\",\n \"type\": \"object\",\n \"visibility\": \"NORMAL\",\n }\n `);\n });\n\n it(\"fetches interface metadata correctly\", async () => {\n const interfaceMetadata = await client.fetchMetadata(\n $Interfaces.FooInterface,\n );\n\n expectTypeOf(interfaceMetadata).toEqualTypeOf<\n InterfaceMetadata\n >();\n\n expect(interfaceMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {\n \"toBar\": {\n \"multiplicity\": true,\n \"targetType\": \"interface\",\n \"targetTypeApiName\": \"BarInterface\",\n },\n },\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n }\n `);\n });\n\n it(\"fetches action metadata correctly\", async () => {\n const actionMetadata = await client.fetchMetadata(\n $Actions.moveOffice,\n );\n\n expectTypeOf(actionMetadata).toEqualTypeOf<ActionMetadata>();\n\n expect(actionMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"moveOffice\",\n \"description\": \"Update an office's physical location\",\n \"displayName\": \"move-office\",\n \"modifiedEntities\": {\n \"Office\": {\n \"created\": false,\n \"modified\": true,\n },\n },\n \"parameters\": {\n \"newAddress\": {\n \"description\": \"The office's new physical address (not necessarily shipping address)\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"newCapacity\": {\n \"description\": \"The maximum seated-at-desk capacity of the new office (maximum fire-safe capacity may be higher)\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"integer\",\n },\n \"officeId\": {\n \"description\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"string\",\n },\n \"officeNames\": {\n \"description\": \"A list of all office names\",\n \"multiplicity\": true,\n \"nullable\": true,\n \"type\": \"integer\",\n },\n },\n \"rid\": \"ri.ontology.main.action-type.9f84017d-cf17-4fa8-84c3-8e01e5d594f2\",\n \"status\": \"ACTIVE\",\n \"type\": \"action\",\n }\n `);\n });\n\n it(\"fetches query metadata correctly\", async () => {\n const queryMetadata = await client.fetchMetadata(\n $Queries.queryAcceptsObject,\n );\n\n expectTypeOf(queryMetadata).toEqualTypeOf<QueryMetadata>();\n\n expect(queryMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"queryAcceptsObject\",\n \"description\": \"description of the query that takes object types\",\n \"displayName\": \"QueryAcceptsObject\",\n \"output\": {\n \"nullable\": false,\n \"object\": \"Employee\",\n \"type\": \"object\",\n },\n \"parameters\": {\n \"object\": {\n \"description\": undefined,\n \"nullable\": false,\n \"object\": \"Employee\",\n \"type\": \"object\",\n },\n },\n \"rid\": \"ri.function-registry.main.function.9b55870a-63c7-4d48-8f06-9627c0805968\",\n \"type\": \"query\",\n \"version\": \"0.11.0\",\n }\n `);\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SACEA,QAAQ,EACRC,WAAW,EACXC,QAAQ,EACRC,QAAQ,QACH,4BAA4B;AACnC,SAASC,iBAAiB,EAAEC,kBAAkB,QAAQ,mBAAmB;AACzE,SAASC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,YAAY,EAAEC,EAAE,QAAQ,QAAQ;AAEtE,SAASC,YAAY,QAAQ,mBAAmB;AAEhDJ,QAAQ,CAAC,eAAe,EAAE,MAAM;EAC9B,IAAIK,MAAc;EAElBN,SAAS,CAAC,MAAM;IACd,MAAMO,SAAS,GAAGR,kBAAkB,CAAC,IAAID,iBAAiB,CAAC,CAAC,EAAEO,YAAY,CAAC;IAC3E,CAAC;MAAEC;IAAO,CAAC,GAAGC,SAAS;IACvB,OAAO,MAAM;MACXA,SAAS,CAACC,SAAS,CAACC,KAAK,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAClD,MAAMM,cAAc,GAAG,MAAMJ,MAAM,CAACK,aAAa,CAACf,QAAQ,CAACgB,QAAQ,CAAC;IAEpET,YAAY,CAACO,cAAc,CAAC,CAACG,aAAa,CAExC,CAAC;IAEHX,MAAM,CAACQ,cAAc,CAAC,CAACI,qBAAqB,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFV,EAAE,CAAC,sCAAsC,EAAE,YAAY;IACrD,MAAMW,iBAAiB,GAAG,MAAMT,MAAM,CAACK,aAAa,CAClDhB,WAAW,CAACqB,YACd,CAAC;IAEDb,YAAY,CAACY,iBAAiB,CAAC,CAACF,aAAa,CAE3C,CAAC;IAEHX,MAAM,CAACa,iBAAiB,CAAC,CAACD,qBAAqB,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFV,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAClD,MAAMa,cAAc,GAAG,MAAMX,MAAM,CAACK,aAAa,CAC/CjB,QAAQ,CAACwB,UACX,CAAC;IAEDf,YAAY,CAACc,cAAc,CAAC,CAACJ,aAAa,CAAiB,CAAC;IAE5DX,MAAM,CAACe,cAAc,CAAC,CAACH,qBAAqB,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFV,EAAE,CAAC,kCAAkC,EAAE,YAAY;IACjD,MAAMe,aAAa,GAAG,MAAMb,MAAM,CAACK,aAAa,CAC9Cd,QAAQ,CAACuB,kBACX,CAAC;IAEDjB,YAAY,CAACgB,aAAa,CAAC,CAACN,aAAa,CAAgB,CAAC;IAE1DX,MAAM,CAACiB,aAAa,CAAC,CAACL,qBAAqB,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"fetchMetadata.test.js","names":["$Actions","$Interfaces","$Objects","$Queries","LegacyFauxFoundry","startNodeApiServer","beforeAll","describe","expect","expectTypeOf","it","createClient","client","testSetup","apiServer","close","objectMetadata","fetchMetadata","Employee","toEqualTypeOf","toMatchInlineSnapshot","interfaceMetadata","FooInterface","actionMetadata","moveOffice","queryMetadata","queryAcceptsObject"],"sources":["fetchMetadata.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionMetadata,\n InterfaceMetadata,\n ObjectMetadata,\n QueryMetadata,\n} from \"@osdk/api\";\nimport {\n $Actions,\n $Interfaces,\n $Objects,\n $Queries,\n} from \"@osdk/client.test.ontology\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport type { Client } from \"./Client.js\";\nimport { createClient } from \"./createClient.js\";\n\ndescribe(\"FetchMetadata\", () => {\n let client: Client;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"fetches object metadata correctly\", async () => {\n const objectMetadata = await client.fetchMetadata($Objects.Employee);\n\n expectTypeOf(objectMetadata).toEqualTypeOf<\n ObjectMetadata\n >();\n\n expect(objectMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"Employee\",\n \"description\": \"A full-time or part-time \n\n employee of our firm\",\n \"displayName\": \"Employee\",\n \"icon\": {\n \"color\": \"blue\",\n \"name\": \"person\",\n \"type\": \"blueprint\",\n },\n \"implements\": [\n \"FooInterface\",\n ],\n \"interfaceMap\": {\n \"FooInterface\": {\n \"fooSpt\": \"fullName\",\n },\n },\n \"inverseInterfaceMap\": {\n \"FooInterface\": {\n \"fullName\": \"fooSpt\",\n },\n },\n \"links\": {\n \"lead\": {\n \"multiplicity\": false,\n \"targetType\": \"Employee\",\n },\n \"officeLink\": {\n \"multiplicity\": false,\n \"targetType\": \"Office\",\n },\n \"peeps\": {\n \"multiplicity\": true,\n \"targetType\": \"Employee\",\n },\n \"visitedOffices\": {\n \"multiplicity\": true,\n \"targetType\": \"Office\",\n },\n },\n \"pluralDisplayName\": \"Employees\",\n \"primaryKeyApiName\": \"employeeId\",\n \"primaryKeyType\": \"integer\",\n \"properties\": {\n \"class\": {\n \"description\": \"\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeId\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"integer\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeLocation\": {\n \"description\": \"Geotime series reference of the location of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"geotimeSeriesReference\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeSensor\": {\n \"description\": \"TimeSeries sensor of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"sensorTimeseries\",\n \"valueTypeApiName\": undefined,\n },\n \"employeeStatus\": {\n \"description\": \"TimeSeries of the status of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"stringTimeseries\",\n \"valueTypeApiName\": undefined,\n },\n \"fullName\": {\n \"description\": undefined,\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"office\": {\n \"description\": \"The unique \"ID\" of the employee's \\\\\"primary\\\\\" assigned office.\n This is some more text.\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"skillSet\": {\n \"description\": \"The skills of the employee\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n \"skillSetEmbedding\": {\n \"description\": \"Vectorized skill set\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"vector\",\n \"valueTypeApiName\": undefined,\n },\n \"startDate\": {\n \"description\": \"The date the employee was hired (most recently, if they were re-hired)\",\n \"displayName\": undefined,\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"datetime\",\n \"valueTypeApiName\": undefined,\n },\n },\n \"rid\": \"ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44\",\n \"status\": \"ACTIVE\",\n \"titleProperty\": \"fullName\",\n \"type\": \"object\",\n \"visibility\": \"NORMAL\",\n }\n `);\n });\n\n it(\"fetches interface metadata correctly\", async () => {\n const interfaceMetadata = await client.fetchMetadata(\n $Interfaces.FooInterface,\n );\n\n expectTypeOf(interfaceMetadata).toEqualTypeOf<\n InterfaceMetadata\n >();\n\n expect(interfaceMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"FooInterface\",\n \"description\": \"Interface for Foo\",\n \"displayName\": \"Foo Interface\",\n \"implementedBy\": [\n \"Employee\",\n \"Person\",\n ],\n \"implements\": [],\n \"links\": {\n \"toBar\": {\n \"multiplicity\": true,\n \"targetType\": \"interface\",\n \"targetTypeApiName\": \"BarInterface\",\n },\n },\n \"properties\": {\n \"fooSpt\": {\n \"description\": \"A foo\",\n \"displayName\": \"Foo\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n \"valueTypeApiName\": undefined,\n },\n },\n \"rid\": \"ri.interface.main.interface.1\",\n \"type\": \"interface\",\n }\n `);\n });\n\n it(\"fetches action metadata correctly\", async () => {\n const actionMetadata = await client.fetchMetadata(\n $Actions.moveOffice,\n );\n\n expectTypeOf(actionMetadata).toEqualTypeOf<ActionMetadata>();\n\n expect(actionMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"moveOffice\",\n \"description\": \"Update an office's physical location\",\n \"displayName\": \"move-office\",\n \"modifiedEntities\": {\n \"Office\": {\n \"created\": false,\n \"modified\": true,\n },\n },\n \"parameters\": {\n \"newAddress\": {\n \"description\": \"The office's new physical address (not necessarily shipping address)\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"string\",\n },\n \"newCapacity\": {\n \"description\": \"The maximum seated-at-desk capacity of the new office (maximum fire-safe capacity may be higher)\",\n \"multiplicity\": false,\n \"nullable\": true,\n \"type\": \"integer\",\n },\n \"officeId\": {\n \"description\": undefined,\n \"multiplicity\": false,\n \"nullable\": false,\n \"type\": \"string\",\n },\n \"officeNames\": {\n \"description\": \"A list of all office names\",\n \"multiplicity\": true,\n \"nullable\": true,\n \"type\": \"integer\",\n },\n },\n \"rid\": \"ri.ontology.main.action-type.9f84017d-cf17-4fa8-84c3-8e01e5d594f2\",\n \"status\": \"ACTIVE\",\n \"type\": \"action\",\n }\n `);\n });\n\n it(\"fetches query metadata correctly\", async () => {\n const queryMetadata = await client.fetchMetadata(\n $Queries.queryAcceptsObject,\n );\n\n expectTypeOf(queryMetadata).toEqualTypeOf<QueryMetadata>();\n\n expect(queryMetadata).toMatchInlineSnapshot(`\n {\n \"apiName\": \"queryAcceptsObject\",\n \"description\": \"description of the query that takes object types\",\n \"displayName\": \"QueryAcceptsObject\",\n \"output\": {\n \"nullable\": false,\n \"object\": \"Employee\",\n \"type\": \"object\",\n },\n \"parameters\": {\n \"object\": {\n \"description\": undefined,\n \"nullable\": false,\n \"object\": \"Employee\",\n \"type\": \"object\",\n },\n },\n \"rid\": \"ri.function-registry.main.function.9b55870a-63c7-4d48-8f06-9627c0805968\",\n \"type\": \"query\",\n \"version\": \"0.11.0\",\n }\n `);\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SACEA,QAAQ,EACRC,WAAW,EACXC,QAAQ,EACRC,QAAQ,QACH,4BAA4B;AACnC,SAASC,iBAAiB,EAAEC,kBAAkB,QAAQ,mBAAmB;AACzE,SAASC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,YAAY,EAAEC,EAAE,QAAQ,QAAQ;AAEtE,SAASC,YAAY,QAAQ,mBAAmB;AAEhDJ,QAAQ,CAAC,eAAe,EAAE,MAAM;EAC9B,IAAIK,MAAc;EAElBN,SAAS,CAAC,MAAM;IACd,MAAMO,SAAS,GAAGR,kBAAkB,CAAC,IAAID,iBAAiB,CAAC,CAAC,EAAEO,YAAY,CAAC;IAC3E,CAAC;MAAEC;IAAO,CAAC,GAAGC,SAAS;IACvB,OAAO,MAAM;MACXA,SAAS,CAACC,SAAS,CAACC,KAAK,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAClD,MAAMM,cAAc,GAAG,MAAMJ,MAAM,CAACK,aAAa,CAACf,QAAQ,CAACgB,QAAQ,CAAC;IAEpET,YAAY,CAACO,cAAc,CAAC,CAACG,aAAa,CAExC,CAAC;IAEHX,MAAM,CAACQ,cAAc,CAAC,CAACI,qBAAqB,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFV,EAAE,CAAC,sCAAsC,EAAE,YAAY;IACrD,MAAMW,iBAAiB,GAAG,MAAMT,MAAM,CAACK,aAAa,CAClDhB,WAAW,CAACqB,YACd,CAAC;IAEDb,YAAY,CAACY,iBAAiB,CAAC,CAACF,aAAa,CAE3C,CAAC;IAEHX,MAAM,CAACa,iBAAiB,CAAC,CAACD,qBAAqB,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFV,EAAE,CAAC,mCAAmC,EAAE,YAAY;IAClD,MAAMa,cAAc,GAAG,MAAMX,MAAM,CAACK,aAAa,CAC/CjB,QAAQ,CAACwB,UACX,CAAC;IAEDf,YAAY,CAACc,cAAc,CAAC,CAACJ,aAAa,CAAiB,CAAC;IAE5DX,MAAM,CAACe,cAAc,CAAC,CAACH,qBAAqB,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFV,EAAE,CAAC,kCAAkC,EAAE,YAAY;IACjD,MAAMe,aAAa,GAAG,MAAMb,MAAM,CAACK,aAAa,CAC9Cd,QAAQ,CAACuB,kBACX,CAAC;IAEDjB,YAAY,CAACgB,aAAa,CAAC,CAACN,aAAa,CAAgB,CAAC;IAE1DX,MAAM,CAACiB,aAAa,CAAC,CAACL,qBAAqB,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -23,5 +23,5 @@ export { createClient } from "./createClient.js";
23
23
  export { createPlatformClient } from "./createPlatformClient.js";
24
24
  export { createAttachmentUpload } from "./object/AttachmentUpload.js";
25
25
  export { extractDate, extractDateInLocalTime, extractDateInUTC } from "./util/datetimeConverters.js";
26
- export { createObjectSpecifierFromPrimaryKey } from "./util/objectSpecifierUtils.js";
26
+ export { createObjectSpecifierFromPrimaryKey, extractPrimaryKeyFromObjectSpecifier } from "./util/objectSpecifierUtils.js";
27
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["isOk","NULL_VALUE","PalantirApiError","ActionValidationError","createClient","createPlatformClient","createAttachmentUpload","extractDate","extractDateInLocalTime","extractDateInUTC","createObjectSpecifierFromPrimaryKey"],"sources":["index.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\nexport { isOk, NULL_VALUE } from \"@osdk/api\";\nexport type {\n ActionDefinition,\n ActionEditResponse,\n ActionMetadata,\n ActionParam,\n ActionReturnTypeForOptions,\n ActionValidationResponse,\n ApplyActionOptions,\n ApplyBatchActionOptions,\n Attachment,\n CompileTimeMetadata,\n InterfaceDefinition,\n InterfaceMetadata,\n Logger,\n ObjectMetadata,\n ObjectSet,\n ObjectSpecifier,\n ObjectTypeDefinition,\n Osdk,\n OsdkObject,\n OsdkObjectCreatePropertyType,\n OsdkObjectPropertyType,\n PageResult,\n PropertyDef,\n PropertyKeys,\n PropertyValueWireToClient,\n QueryDefinition,\n QueryParam,\n QueryResult,\n Range,\n Result,\n SingleLinkAccessor,\n ThreeDimensionalAggregation,\n TwoDimensionalAggregation,\n VersionBound,\n WhereClause,\n} from \"@osdk/api\";\nexport { PalantirApiError } from \"@osdk/shared.net.errors\";\n\nexport { ActionValidationError } from \"./actions/ActionValidationError.js\";\nexport type { Client } from \"./Client.js\";\nexport { createClient } from \"./createClient.js\";\nexport { createPlatformClient } from \"./createPlatformClient.js\";\nexport type { PlatformClient } from \"./createPlatformClient.js\";\nexport { createAttachmentUpload } from \"./object/AttachmentUpload.js\";\nexport type { ResultOrError } from \"./ResultOrError.js\";\n\nexport {\n extractDate,\n extractDateInLocalTime,\n extractDateInUTC,\n} from \"./util/datetimeConverters.js\";\n\nexport { createObjectSpecifierFromPrimaryKey } from \"./util/objectSpecifierUtils.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,SAASA,IAAI,EAAEC,UAAU,QAAQ,WAAW;AAsC5C,SAASC,gBAAgB,QAAQ,yBAAyB;AAE1D,SAASC,qBAAqB,QAAQ,oCAAoC;AAE1E,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,oBAAoB,QAAQ,2BAA2B;AAEhE,SAASC,sBAAsB,QAAQ,8BAA8B;AAGrE,SACEC,WAAW,EACXC,sBAAsB,EACtBC,gBAAgB,QACX,8BAA8B;AAErC,SAASC,mCAAmC,QAAQ,gCAAgC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["isOk","NULL_VALUE","PalantirApiError","ActionValidationError","createClient","createPlatformClient","createAttachmentUpload","extractDate","extractDateInLocalTime","extractDateInUTC","createObjectSpecifierFromPrimaryKey","extractPrimaryKeyFromObjectSpecifier"],"sources":["index.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\nexport { isOk, NULL_VALUE } from \"@osdk/api\";\nexport type {\n ActionDefinition,\n ActionEditResponse,\n ActionMetadata,\n ActionParam,\n ActionReturnTypeForOptions,\n ActionValidationResponse,\n ApplyActionOptions,\n ApplyBatchActionOptions,\n Attachment,\n CompileTimeMetadata,\n InterfaceDefinition,\n InterfaceMetadata,\n Logger,\n ObjectMetadata,\n ObjectSet,\n ObjectSpecifier,\n ObjectTypeDefinition,\n Osdk,\n OsdkObject,\n OsdkObjectCreatePropertyType,\n OsdkObjectPropertyType,\n PageResult,\n PropertyDef,\n PropertyKeys,\n PropertyValueWireToClient,\n QueryDefinition,\n QueryParam,\n QueryResult,\n Range,\n Result,\n SingleLinkAccessor,\n ThreeDimensionalAggregation,\n TwoDimensionalAggregation,\n VersionBound,\n WhereClause,\n} from \"@osdk/api\";\nexport { PalantirApiError } from \"@osdk/shared.net.errors\";\n\nexport { ActionValidationError } from \"./actions/ActionValidationError.js\";\nexport type { Client } from \"./Client.js\";\nexport { createClient } from \"./createClient.js\";\nexport { createPlatformClient } from \"./createPlatformClient.js\";\nexport type { PlatformClient } from \"./createPlatformClient.js\";\nexport { createAttachmentUpload } from \"./object/AttachmentUpload.js\";\nexport type { ResultOrError } from \"./ResultOrError.js\";\n\nexport {\n extractDate,\n extractDateInLocalTime,\n extractDateInUTC,\n} from \"./util/datetimeConverters.js\";\n\nexport {\n createObjectSpecifierFromPrimaryKey,\n extractPrimaryKeyFromObjectSpecifier,\n} from \"./util/objectSpecifierUtils.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,SAASA,IAAI,EAAEC,UAAU,QAAQ,WAAW;AAsC5C,SAASC,gBAAgB,QAAQ,yBAAyB;AAE1D,SAASC,qBAAqB,QAAQ,oCAAoC;AAE1E,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,oBAAoB,QAAQ,2BAA2B;AAEhE,SAASC,sBAAsB,QAAQ,8BAA8B;AAGrE,SACEC,WAAW,EACXC,sBAAsB,EACtBC,gBAAgB,QACX,8BAA8B;AAErC,SACEC,mCAAmC,EACnCC,oCAAoC,QAC/B,gCAAgC","ignoreList":[]}
@@ -46,7 +46,7 @@ describe("convertWireToOsdkObjects", () => {
46
46
  } = await client(Employee).fetchPage();
47
47
  expect(Object.keys(employee).sort()).toEqual(["employeeId", "$title", "fullName", "office", "class", "startDate", "employeeSensor", "employeeStatus", "$apiName", "$objectType", "$primaryKey", "$objectSpecifier", "employeeLocation"].sort());
48
48
  expect(Object.keys(employee.$as)).toEqual([]);
49
- expect(Object.keys(employee.$link)).toEqual(["lead", "officeLink", "peeps"]);
49
+ expect(Object.keys(employee.$link)).toEqual(["lead", "officeLink", "peeps", "visitedOffices"]);
50
50
  const asFoo = employee.$as(FooInterface);
51
51
  expect(Object.keys(asFoo.$link)).toEqual(["toBar"]);
52
52
  });
@@ -484,6 +484,10 @@ describe("convertWireToOsdkObjects", () => {
484
484
  "multiplicity": true,
485
485
  "targetType": "Employee",
486
486
  },
487
+ "visitedOffices": {
488
+ "multiplicity": true,
489
+ "targetType": "Office",
490
+ },
487
491
  },
488
492
  "pluralDisplayName": "Employees",
489
493
  "primaryKeyApiName": "employeeId",