@osdk/client 2.7.0-beta.7 → 2.7.0-beta.9

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 (67) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/build/browser/MinimalClientContext.js.map +1 -1
  3. package/build/browser/createClient.js +4 -3
  4. package/build/browser/createClient.js.map +1 -1
  5. package/build/browser/createClient.test.js +1 -1
  6. package/build/browser/createClient.test.js.map +1 -1
  7. package/build/browser/createMinimalClient.js.map +1 -1
  8. package/build/browser/object/aggregate.js +3 -0
  9. package/build/browser/object/aggregate.js.map +1 -1
  10. package/build/browser/object/fetchPage.js +12 -0
  11. package/build/browser/object/fetchPage.js.map +1 -1
  12. package/build/browser/observable/internal/Store.test.js +49 -1
  13. package/build/browser/observable/internal/Store.test.js.map +1 -1
  14. package/build/browser/observable/internal/list/ListQuery.js +17 -2
  15. package/build/browser/observable/internal/list/ListQuery.js.map +1 -1
  16. package/build/browser/observable/internal/objectset/ObjectSetQuery.js +9 -7
  17. package/build/browser/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
  18. package/build/browser/observable/internal/utils/rdpFieldOperations.test.js +172 -0
  19. package/build/browser/observable/internal/utils/rdpFieldOperations.test.js.map +1 -0
  20. package/build/browser/queries/applyQuery.js +3 -0
  21. package/build/browser/queries/applyQuery.js.map +1 -1
  22. package/build/browser/util/UserAgent.js +2 -2
  23. package/build/cjs/{chunk-UAJMOJN3.cjs → chunk-IQJTM3KW.cjs} +70 -66
  24. package/build/cjs/chunk-IQJTM3KW.cjs.map +1 -0
  25. package/build/cjs/{chunk-PUP56SUU.cjs → chunk-PARVKNVB.cjs} +17 -2
  26. package/build/cjs/chunk-PARVKNVB.cjs.map +1 -0
  27. package/build/cjs/{createClient-CPUYdECn.d.cts → createClient-D5G3qzAO.d.cts} +1 -1
  28. package/build/cjs/index.cjs +8 -8
  29. package/build/cjs/index.d.cts +1 -1
  30. package/build/cjs/public/internal.cjs +8 -8
  31. package/build/cjs/public/unstable-do-not-use.cjs +231 -63
  32. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  33. package/build/cjs/public/unstable-do-not-use.d.cts +1 -1
  34. package/build/esm/MinimalClientContext.js.map +1 -1
  35. package/build/esm/createClient.js +4 -3
  36. package/build/esm/createClient.js.map +1 -1
  37. package/build/esm/createClient.test.js +1 -1
  38. package/build/esm/createClient.test.js.map +1 -1
  39. package/build/esm/createMinimalClient.js.map +1 -1
  40. package/build/esm/object/aggregate.js +3 -0
  41. package/build/esm/object/aggregate.js.map +1 -1
  42. package/build/esm/object/fetchPage.js +12 -0
  43. package/build/esm/object/fetchPage.js.map +1 -1
  44. package/build/esm/observable/internal/Store.test.js +49 -1
  45. package/build/esm/observable/internal/Store.test.js.map +1 -1
  46. package/build/esm/observable/internal/list/ListQuery.js +17 -2
  47. package/build/esm/observable/internal/list/ListQuery.js.map +1 -1
  48. package/build/esm/observable/internal/objectset/ObjectSetQuery.js +9 -7
  49. package/build/esm/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
  50. package/build/esm/observable/internal/utils/rdpFieldOperations.test.js +172 -0
  51. package/build/esm/observable/internal/utils/rdpFieldOperations.test.js.map +1 -0
  52. package/build/esm/queries/applyQuery.js +3 -0
  53. package/build/esm/queries/applyQuery.js.map +1 -1
  54. package/build/esm/util/UserAgent.js +2 -2
  55. package/build/types/MinimalClientContext.d.ts +1 -1
  56. package/build/types/MinimalClientContext.d.ts.map +1 -1
  57. package/build/types/createClient.d.ts +1 -1
  58. package/build/types/createClient.d.ts.map +1 -1
  59. package/build/types/observable/internal/Store.test.d.ts.map +1 -1
  60. package/build/types/observable/internal/list/ListQuery.d.ts.map +1 -1
  61. package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts.map +1 -1
  62. package/build/types/observable/internal/utils/rdpFieldOperations.test.d.ts +1 -0
  63. package/build/types/observable/internal/utils/rdpFieldOperations.test.d.ts.map +1 -0
  64. package/build/types/queries/applyQuery.d.ts.map +1 -1
  65. package/package.json +5 -5
  66. package/build/cjs/chunk-PUP56SUU.cjs.map +0 -1
  67. package/build/cjs/chunk-UAJMOJN3.cjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @osdk/client
2
2
 
3
+ ## 2.7.0-beta.9
4
+
5
+ ### Minor Changes
6
+
7
+ - 6b27d8a: fix sorting strategy initialization for ListQuery and ObjectSetQuery
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [8381ac2]
12
+ - Updated dependencies [c95f3bc]
13
+ - @osdk/client.unstable@2.7.0-beta.9
14
+ - @osdk/api@2.7.0-beta.9
15
+ - @osdk/generator-converters@2.7.0-beta.9
16
+
17
+ ## 2.7.0-beta.8
18
+
19
+ ### Minor Changes
20
+
21
+ - c6124eb: Add ability to flush edits to transactions
22
+
23
+ ### Patch Changes
24
+
25
+ - @osdk/api@2.7.0-beta.8
26
+ - @osdk/client.unstable@2.7.0-beta.8
27
+ - @osdk/generator-converters@2.7.0-beta.8
28
+
3
29
  ## 2.7.0-beta.7
4
30
 
5
31
  ### Minor Changes
@@ -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 transactionId?: 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 narrowTypeInterfaceOrObjectMapping: 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":[]}
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 branch?: string;\n /** @internal */\n objectSetFactory: ObjectSetFactory<any, any>;\n /** @internal */\n objectFactory: typeof convertWireToOsdkObjects;\n /** @internal */\n objectFactory2: typeof convertWireToOsdkObjects2;\n /** @internal */\n\n transactionId?: string;\n flushEdits?: () => Promise<void>;\n\n clientCacheKey: ClientCacheKey;\n requestContext: RequestContext;\n narrowTypeInterfaceOrObjectMapping: 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":[]}
@@ -51,7 +51,7 @@ class QueryInvoker {
51
51
  }
52
52
 
53
53
  /** @internal */
54
- export function createClientInternal(objectSetFactory, transactionRid, baseUrl, ontologyRid, tokenProvider, options = undefined, fetchFn = fetch) {
54
+ export function createClientInternal(objectSetFactory, transactionRid, flushEdits, baseUrl, ontologyRid, tokenProvider, options = undefined, fetchFn = fetch) {
55
55
  if (typeof ontologyRid === "string") {
56
56
  if (!ontologyRid.startsWith("ri.")) {
57
57
  throw new Error("Invalid ontology RID");
@@ -71,6 +71,7 @@ export function createClientInternal(objectSetFactory, transactionRid, baseUrl,
71
71
  ...options,
72
72
  logger: options?.logger ?? new MinimalLogger(),
73
73
  transactionId: transactionRid,
74
+ flushEdits,
74
75
  branch: options?.branch
75
76
  }, fetchFn, objectSetFactory);
76
77
  return createClientFromContext(clientCtx);
@@ -145,8 +146,8 @@ export function createClientFromContext(clientCtx) {
145
146
  });
146
147
  return client;
147
148
  }
148
- export const createClient = createClientInternal.bind(undefined, createObjectSet, undefined);
149
- export const createClientWithTransaction = (transactionRid, ...args) => createClientInternal(createObjectSet, transactionRid, ...args);
149
+ export const createClient = createClientInternal.bind(undefined, createObjectSet, undefined, undefined);
150
+ export const createClientWithTransaction = (transactionRid, flushEdits, ...args) => createClientInternal(createObjectSet, transactionRid, flushEdits, ...args);
150
151
  function createWithRid(rids) {
151
152
  return {
152
153
  type: "static",
@@ -1 +1 @@
1
- {"version":3,"file":"createClient.js","names":["__EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference","__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid","__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid","__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks","OntologiesV2","symbolClientContext","oldSymbolClientContext","createBulkLinksAsyncIterFactory","applyAction","additionalContext","createMinimalClient","fetchMetadataInternal","MinimalLogger","fetchPage","fetchStaticRidPage","fetchSingle","createObjectSet","applyQuery","ActionInvoker","constructor","clientCtx","actionDef","bind","undefined","batchApplyAction","QueryInvoker","queryDef","executeFunction","createClientInternal","objectSetFactory","transactionRid","baseUrl","ontologyRid","tokenProvider","options","fetchFn","fetch","startsWith","Error","then","logger","transactionId","branch","createClientFromContext","fetchMetadata","client","Object","defineProperties","o","type","name","getBulkLinks","fetchOneByRid","objectType","rid","createWithRid","createMediaReference","args","data","fileName","propertyType","MediaReferenceProperties","upload","apiName","mediaItemPath","preview","fetchPageByRid","objectOrInterfaceType","rids","fetchPageByRidNoType","value","createClient","createClientWithTransaction"],"sources":["createClient.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 ActionDefinition,\n FetchPageArgs,\n InterfaceDefinition,\n Logger,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n PropertyKeys,\n QueryDefinition,\n SelectArg,\n} from \"@osdk/api\";\nimport type {\n Experiment,\n ExperimentFns,\n MinimalObjectSet,\n} from \"@osdk/api/unstable\";\nimport {\n __EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks,\n} from \"@osdk/api/unstable\";\nimport type { ObjectSet as WireObjectSet } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport { symbolClientContext as oldSymbolClientContext } from \"@osdk/shared.client\";\nimport { createBulkLinksAsyncIterFactory } from \"./__unstable/createBulkLinksAsyncIterFactory.js\";\nimport type { ActionSignatureFromDef } from \"./actions/applyAction.js\";\nimport { applyAction } from \"./actions/applyAction.js\";\nimport { additionalContext, type Client } from \"./Client.js\";\nimport { createMinimalClient } from \"./createMinimalClient.js\";\nimport { fetchMetadataInternal } from \"./fetchMetadata.js\";\nimport { MinimalLogger } from \"./logger/MinimalLogger.js\";\nimport type { MinimalClient } from \"./MinimalClientContext.js\";\nimport { fetchPage, fetchStaticRidPage } from \"./object/fetchPage.js\";\nimport { fetchSingle } from \"./object/fetchSingle.js\";\nimport { createObjectSet } from \"./objectSet/createObjectSet.js\";\nimport type { ObjectSetFactory } from \"./objectSet/ObjectSetFactory.js\";\nimport { applyQuery } from \"./queries/applyQuery.js\";\nimport type { QuerySignatureFromDef } from \"./queries/types.js\";\n\n// We import it this way to keep compatible with CJS. If we referenced the\n// value of `symbolClientContext` directly, then we would have to a dynamic import\n// in `createClientInternal` which would make it async and a break.\n// Since this is just a string in `@osdk/shared.client2` instead of a symbol,\n// we can safely perform this trick.\ntype newSymbolClientContext =\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports\n typeof import(\"@osdk/shared.client2\").symbolClientContext;\n\nclass ActionInvoker<Q extends ActionDefinition<any>>\n implements ActionSignatureFromDef<Q>\n{\n constructor(\n clientCtx: MinimalClient,\n actionDef: ActionDefinition<any>,\n ) {\n // We type the property as a generic function as binding `applyAction`\n // doesn't return a type thats all that useful anyway\n // The implements covers us for the most part here as this exact type doesn't\n // escape this file\n this.applyAction = applyAction.bind(undefined, clientCtx, actionDef);\n this.batchApplyAction = applyAction.bind(undefined, clientCtx, actionDef);\n }\n\n applyAction: (...args: any[]) => any;\n batchApplyAction: (...args: any[]) => any;\n}\n\nclass QueryInvoker<Q extends QueryDefinition<any>>\n implements QuerySignatureFromDef<Q>\n{\n constructor(\n clientCtx: MinimalClient,\n queryDef: QueryDefinition<any>,\n ) {\n this.executeFunction = applyQuery.bind(undefined, clientCtx, queryDef);\n }\n\n executeFunction: (...args: any[]) => any;\n}\n\n/** @internal */\nexport function createClientInternal(\n objectSetFactory: ObjectSetFactory<any, any>,\n transactionRid: string | undefined,\n baseUrl: string,\n ontologyRid: string | Promise<string>,\n tokenProvider: () => Promise<string>,\n options: { logger?: Logger; branch?: string } | undefined = undefined,\n fetchFn: typeof globalThis.fetch = fetch,\n): Client {\n if (typeof ontologyRid === \"string\") {\n if (!ontologyRid.startsWith(\"ri.\")) {\n throw new Error(\"Invalid ontology RID\");\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n ontologyRid.then((ontologyRid) => {\n if (!ontologyRid.startsWith(\"ri.\")) {\n // FIXME this promise is not await so this just shows up as an unhandled promise rejection\n throw new Error(\"Invalid ontology RID\");\n }\n });\n }\n\n const clientCtx: MinimalClient = createMinimalClient(\n { ontologyRid },\n baseUrl,\n tokenProvider,\n {\n ...options,\n logger: options?.logger ?? new MinimalLogger(),\n transactionId: transactionRid,\n branch: options?.branch,\n },\n fetchFn,\n objectSetFactory,\n );\n\n return createClientFromContext(clientCtx);\n}\n\n/**\n * @internal\n */\nexport function createClientFromContext(clientCtx: MinimalClient) {\n function clientFn<\n T extends\n | ObjectOrInterfaceDefinition\n | ActionDefinition<any>\n | QueryDefinition<any>\n | Experiment<\"2.0.8\">\n | Experiment<\"2.1.0\">,\n >(o: T): T extends ObjectTypeDefinition ? ObjectSet<T>\n : T extends InterfaceDefinition ? MinimalObjectSet<T>\n : T extends ActionDefinition<any> ? ActionSignatureFromDef<T>\n : T extends QueryDefinition<any> ? QuerySignatureFromDef<T>\n : T extends Experiment<\"2.0.8\"> | Experiment<\"2.1.0\">\n ? { invoke: ExperimentFns<T> }\n : never\n {\n if (o.type === \"object\" || o.type === \"interface\") {\n return clientCtx.objectSetFactory(o, clientCtx) as any;\n } else if (o.type === \"action\") {\n return new ActionInvoker(\n clientCtx,\n o,\n ) as (T extends ActionDefinition<any>\n // first `as` to the action definition for our \"real\" typecheck\n ? ActionSignatureFromDef<T>\n : never) as any; // then as any for dealing with the conditional return value\n } else if (o.type === \"query\") {\n return new QueryInvoker(\n clientCtx,\n o,\n ) as (T extends QueryDefinition<any> ? QuerySignatureFromDef<T>\n : never) as any;\n } else if (o.type === \"experiment\") {\n switch (o.name) {\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks.name:\n return {\n getBulkLinks: createBulkLinksAsyncIterFactory(\n clientCtx,\n ),\n } as any;\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid.name:\n return {\n fetchOneByRid: async <\n Q extends ObjectOrInterfaceDefinition,\n const L extends PropertyKeys<Q>,\n const R extends boolean,\n const S extends false | \"throw\" = NullabilityAdherence.Default,\n >(\n objectType: Q,\n rid: string,\n options: SelectArg<Q, L, R, S>,\n ) => {\n return await fetchSingle(\n clientCtx,\n objectType,\n options,\n createWithRid(\n [rid],\n ),\n ) as Osdk<Q>;\n },\n } as any;\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference.name:\n return {\n createMediaReference: async <\n Q extends ObjectTypeDefinition,\n const L extends PropertyKeys.Filtered<Q, \"mediaReference\">,\n >(args: {\n data: Blob;\n fileName: string;\n objectType: Q;\n propertyType: L;\n }) => {\n const { data, fileName, objectType, propertyType } = args;\n return await OntologiesV2.MediaReferenceProperties.upload(\n clientCtx,\n await clientCtx.ontologyRid,\n objectType.apiName,\n propertyType as string,\n data,\n {\n mediaItemPath: fileName,\n preview: true,\n },\n );\n },\n } as any;\n\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid.name:\n return {\n fetchPageByRid: async <\n Q extends ObjectOrInterfaceDefinition,\n const L extends PropertyKeys<Q>,\n const R extends boolean,\n const S extends false | \"throw\" = NullabilityAdherence.Default,\n >(\n objectOrInterfaceType: Q,\n rids: string[],\n options: FetchPageArgs<Q, L, R, any, S> = {},\n ) => {\n return await fetchPage(\n clientCtx,\n objectOrInterfaceType,\n options,\n createWithRid(rids),\n );\n },\n fetchPageByRidNoType: async <\n const R extends boolean,\n const S extends NullabilityAdherence,\n const T extends boolean,\n >(\n rids: readonly string[],\n options?: FetchPageArgs<\n ObjectOrInterfaceDefinition,\n any,\n R,\n any,\n S,\n T\n >,\n ) => {\n return await fetchStaticRidPage(\n clientCtx,\n rids,\n options ?? {},\n );\n },\n } as any;\n }\n\n throw new Error(\"not implemented\");\n } else {\n throw new Error(\"not implemented\");\n }\n }\n\n const fetchMetadata = fetchMetadataInternal.bind(\n undefined,\n clientCtx,\n );\n\n const symbolClientContext: newSymbolClientContext = \"__osdkClientContext\";\n\n const client: Client = Object.defineProperties<Client>(\n clientFn as Client,\n {\n [oldSymbolClientContext]: {\n value: clientCtx,\n },\n [symbolClientContext]: {\n value: clientCtx,\n },\n [additionalContext]: {\n value: clientCtx,\n },\n fetchMetadata: {\n value: fetchMetadata,\n },\n } satisfies Record<keyof Client, PropertyDescriptor>,\n );\n\n return client;\n}\n\nexport const createClient: (\n baseUrl: string,\n ontologyRid: string | Promise<string>,\n tokenProvider: () => Promise<string>,\n options?: {\n logger?: Logger;\n branch?: string;\n } | undefined,\n fetchFn?: typeof fetch | undefined,\n) => Client = createClientInternal.bind(\n undefined,\n createObjectSet,\n undefined,\n);\n\nexport const createClientWithTransaction: (\n transactionRid: string,\n ...args: Parameters<typeof createClient>\n) => Client = (transactionRid, ...args) =>\n createClientInternal(\n createObjectSet,\n transactionRid,\n ...args,\n ) as Client;\n\nfunction createWithRid(\n rids: string[],\n) {\n const withRid: WireObjectSet = {\n type: \"static\",\n \"objects\": rids,\n };\n\n return withRid;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createClient.js","names":["__EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference","__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid","__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid","__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks","OntologiesV2","symbolClientContext","oldSymbolClientContext","createBulkLinksAsyncIterFactory","applyAction","additionalContext","createMinimalClient","fetchMetadataInternal","MinimalLogger","fetchPage","fetchStaticRidPage","fetchSingle","createObjectSet","applyQuery","ActionInvoker","constructor","clientCtx","actionDef","bind","undefined","batchApplyAction","QueryInvoker","queryDef","executeFunction","createClientInternal","objectSetFactory","transactionRid","flushEdits","baseUrl","ontologyRid","tokenProvider","options","fetchFn","fetch","startsWith","Error","then","logger","transactionId","branch","createClientFromContext","fetchMetadata","client","Object","defineProperties","o","type","name","getBulkLinks","fetchOneByRid","objectType","rid","createWithRid","createMediaReference","args","data","fileName","propertyType","MediaReferenceProperties","upload","apiName","mediaItemPath","preview","fetchPageByRid","objectOrInterfaceType","rids","fetchPageByRidNoType","value","createClient","createClientWithTransaction"],"sources":["createClient.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 ActionDefinition,\n FetchPageArgs,\n InterfaceDefinition,\n Logger,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n PropertyKeys,\n QueryDefinition,\n SelectArg,\n} from \"@osdk/api\";\nimport type {\n Experiment,\n ExperimentFns,\n MinimalObjectSet,\n} from \"@osdk/api/unstable\";\nimport {\n __EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks,\n} from \"@osdk/api/unstable\";\nimport type { ObjectSet as WireObjectSet } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport { symbolClientContext as oldSymbolClientContext } from \"@osdk/shared.client\";\nimport { createBulkLinksAsyncIterFactory } from \"./__unstable/createBulkLinksAsyncIterFactory.js\";\nimport type { ActionSignatureFromDef } from \"./actions/applyAction.js\";\nimport { applyAction } from \"./actions/applyAction.js\";\nimport { additionalContext, type Client } from \"./Client.js\";\nimport { createMinimalClient } from \"./createMinimalClient.js\";\nimport { fetchMetadataInternal } from \"./fetchMetadata.js\";\nimport { MinimalLogger } from \"./logger/MinimalLogger.js\";\nimport type { MinimalClient } from \"./MinimalClientContext.js\";\nimport { fetchPage, fetchStaticRidPage } from \"./object/fetchPage.js\";\nimport { fetchSingle } from \"./object/fetchSingle.js\";\nimport { createObjectSet } from \"./objectSet/createObjectSet.js\";\nimport type { ObjectSetFactory } from \"./objectSet/ObjectSetFactory.js\";\nimport { applyQuery } from \"./queries/applyQuery.js\";\nimport type { QuerySignatureFromDef } from \"./queries/types.js\";\n\n// We import it this way to keep compatible with CJS. If we referenced the\n// value of `symbolClientContext` directly, then we would have to a dynamic import\n// in `createClientInternal` which would make it async and a break.\n// Since this is just a string in `@osdk/shared.client2` instead of a symbol,\n// we can safely perform this trick.\ntype newSymbolClientContext =\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports\n typeof import(\"@osdk/shared.client2\").symbolClientContext;\n\nclass ActionInvoker<Q extends ActionDefinition<any>>\n implements ActionSignatureFromDef<Q>\n{\n constructor(\n clientCtx: MinimalClient,\n actionDef: ActionDefinition<any>,\n ) {\n // We type the property as a generic function as binding `applyAction`\n // doesn't return a type thats all that useful anyway\n // The implements covers us for the most part here as this exact type doesn't\n // escape this file\n this.applyAction = applyAction.bind(undefined, clientCtx, actionDef);\n this.batchApplyAction = applyAction.bind(undefined, clientCtx, actionDef);\n }\n\n applyAction: (...args: any[]) => any;\n batchApplyAction: (...args: any[]) => any;\n}\n\nclass QueryInvoker<Q extends QueryDefinition<any>>\n implements QuerySignatureFromDef<Q>\n{\n constructor(\n clientCtx: MinimalClient,\n queryDef: QueryDefinition<any>,\n ) {\n this.executeFunction = applyQuery.bind(undefined, clientCtx, queryDef);\n }\n\n executeFunction: (...args: any[]) => any;\n}\n\n/** @internal */\nexport function createClientInternal(\n objectSetFactory: ObjectSetFactory<any, any>,\n transactionRid: string | undefined,\n flushEdits: (() => Promise<void>) | undefined,\n baseUrl: string,\n ontologyRid: string | Promise<string>,\n tokenProvider: () => Promise<string>,\n options: { logger?: Logger; branch?: string } | undefined = undefined,\n fetchFn: typeof globalThis.fetch = fetch,\n): Client {\n if (typeof ontologyRid === \"string\") {\n if (!ontologyRid.startsWith(\"ri.\")) {\n throw new Error(\"Invalid ontology RID\");\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n ontologyRid.then((ontologyRid) => {\n if (!ontologyRid.startsWith(\"ri.\")) {\n // FIXME this promise is not await so this just shows up as an unhandled promise rejection\n throw new Error(\"Invalid ontology RID\");\n }\n });\n }\n\n const clientCtx: MinimalClient = createMinimalClient(\n { ontologyRid },\n baseUrl,\n tokenProvider,\n {\n ...options,\n logger: options?.logger ?? new MinimalLogger(),\n transactionId: transactionRid,\n flushEdits,\n branch: options?.branch,\n },\n fetchFn,\n objectSetFactory,\n );\n\n return createClientFromContext(clientCtx);\n}\n\n/**\n * @internal\n */\nexport function createClientFromContext(clientCtx: MinimalClient) {\n function clientFn<\n T extends\n | ObjectOrInterfaceDefinition\n | ActionDefinition<any>\n | QueryDefinition<any>\n | Experiment<\"2.0.8\">\n | Experiment<\"2.1.0\">,\n >(o: T): T extends ObjectTypeDefinition ? ObjectSet<T>\n : T extends InterfaceDefinition ? MinimalObjectSet<T>\n : T extends ActionDefinition<any> ? ActionSignatureFromDef<T>\n : T extends QueryDefinition<any> ? QuerySignatureFromDef<T>\n : T extends Experiment<\"2.0.8\"> | Experiment<\"2.1.0\">\n ? { invoke: ExperimentFns<T> }\n : never\n {\n if (o.type === \"object\" || o.type === \"interface\") {\n return clientCtx.objectSetFactory(o, clientCtx) as any;\n } else if (o.type === \"action\") {\n return new ActionInvoker(\n clientCtx,\n o,\n ) as (T extends ActionDefinition<any>\n // first `as` to the action definition for our \"real\" typecheck\n ? ActionSignatureFromDef<T>\n : never) as any; // then as any for dealing with the conditional return value\n } else if (o.type === \"query\") {\n return new QueryInvoker(\n clientCtx,\n o,\n ) as (T extends QueryDefinition<any> ? QuerySignatureFromDef<T>\n : never) as any;\n } else if (o.type === \"experiment\") {\n switch (o.name) {\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks.name:\n return {\n getBulkLinks: createBulkLinksAsyncIterFactory(\n clientCtx,\n ),\n } as any;\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid.name:\n return {\n fetchOneByRid: async <\n Q extends ObjectOrInterfaceDefinition,\n const L extends PropertyKeys<Q>,\n const R extends boolean,\n const S extends false | \"throw\" = NullabilityAdherence.Default,\n >(\n objectType: Q,\n rid: string,\n options: SelectArg<Q, L, R, S>,\n ) => {\n return await fetchSingle(\n clientCtx,\n objectType,\n options,\n createWithRid(\n [rid],\n ),\n ) as Osdk<Q>;\n },\n } as any;\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference.name:\n return {\n createMediaReference: async <\n Q extends ObjectTypeDefinition,\n const L extends PropertyKeys.Filtered<Q, \"mediaReference\">,\n >(args: {\n data: Blob;\n fileName: string;\n objectType: Q;\n propertyType: L;\n }) => {\n const { data, fileName, objectType, propertyType } = args;\n return await OntologiesV2.MediaReferenceProperties.upload(\n clientCtx,\n await clientCtx.ontologyRid,\n objectType.apiName,\n propertyType as string,\n data,\n {\n mediaItemPath: fileName,\n preview: true,\n },\n );\n },\n } as any;\n\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid.name:\n return {\n fetchPageByRid: async <\n Q extends ObjectOrInterfaceDefinition,\n const L extends PropertyKeys<Q>,\n const R extends boolean,\n const S extends false | \"throw\" = NullabilityAdherence.Default,\n >(\n objectOrInterfaceType: Q,\n rids: string[],\n options: FetchPageArgs<Q, L, R, any, S> = {},\n ) => {\n return await fetchPage(\n clientCtx,\n objectOrInterfaceType,\n options,\n createWithRid(rids),\n );\n },\n fetchPageByRidNoType: async <\n const R extends boolean,\n const S extends NullabilityAdherence,\n const T extends boolean,\n >(\n rids: readonly string[],\n options?: FetchPageArgs<\n ObjectOrInterfaceDefinition,\n any,\n R,\n any,\n S,\n T\n >,\n ) => {\n return await fetchStaticRidPage(\n clientCtx,\n rids,\n options ?? {},\n );\n },\n } as any;\n }\n\n throw new Error(\"not implemented\");\n } else {\n throw new Error(\"not implemented\");\n }\n }\n\n const fetchMetadata = fetchMetadataInternal.bind(\n undefined,\n clientCtx,\n );\n\n const symbolClientContext: newSymbolClientContext = \"__osdkClientContext\";\n\n const client: Client = Object.defineProperties<Client>(\n clientFn as Client,\n {\n [oldSymbolClientContext]: {\n value: clientCtx,\n },\n [symbolClientContext]: {\n value: clientCtx,\n },\n [additionalContext]: {\n value: clientCtx,\n },\n fetchMetadata: {\n value: fetchMetadata,\n },\n } satisfies Record<keyof Client, PropertyDescriptor>,\n );\n\n return client;\n}\n\nexport const createClient: (\n baseUrl: string,\n ontologyRid: string | Promise<string>,\n tokenProvider: () => Promise<string>,\n options?: {\n logger?: Logger;\n branch?: string;\n } | undefined,\n fetchFn?: typeof fetch | undefined,\n) => Client = createClientInternal.bind(\n undefined,\n createObjectSet,\n undefined,\n undefined,\n);\n\nexport const createClientWithTransaction: (\n transactionId: string,\n flushEdits: () => Promise<void>,\n ...args: Parameters<typeof createClient>\n) => Client = (transactionRid, flushEdits, ...args) =>\n createClientInternal(\n createObjectSet,\n transactionRid,\n flushEdits,\n ...args,\n ) as Client;\n\nfunction createWithRid(\n rids: string[],\n) {\n const withRid: WireObjectSet = {\n type: \"static\",\n \"objects\": rids,\n };\n\n return withRid;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -77,7 +77,7 @@ describe(createClient, () => {
77
77
  describe("client created with transactionId forwards to requests", () => {
78
78
  it("forwards transactionId in fetchPage", async () => {
79
79
  const transactionId = "test-transaction-id";
80
- const clientWithTransaction = createClientWithTransaction(transactionId, "https://mock.com", ontologyRid, async () => "Token", {}, fetchFunction);
80
+ const clientWithTransaction = createClientWithTransaction(transactionId, async () => {}, "https://mock.com", ontologyRid, async () => "Token", {}, fetchFunction);
81
81
  mockFetchResponse(fetchFunction, {
82
82
  data: []
83
83
  });
@@ -1 +1 @@
1
- {"version":3,"file":"createClient.test.js","names":["BarInterface","SharedClientContext","beforeEach","describe","expect","it","vi","metadataCacheClient","createClient","createClientWithTransaction","MakeConjureContext","USER_AGENT","mockFetchResponse","fetch","response","mockResolvedValueOnce","json","Promise","resolve","blob","status","ok","fetchFunction","client","ontologyRid","fn","undefined","data","getUserAgentPartsFromMockedFetch","userAgent","mock","calls","headers","get","parts","split","fetchPage","toHaveBeenCalledTimes","toEqual","osdkMetadata","extraUserAgent","spy","spyOn","toBe","conjureContextSpy","baseUrl","ontologyProvider","getObjectDefinition","results","value","transactionId","clientWithTransaction","url","toBeDefined","parsedUrl","URL","someParam","searchParams"],"sources":["createClient.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 { BarInterface } from \"@osdk/client.test.ontology\";\nimport * as SharedClientContext from \"@osdk/shared.client.impl\";\nimport type { MockedFunction } from \"vitest\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { metadataCacheClient } from \"./__unstable/ConjureSupport.js\";\nimport type { Client } from \"./Client.js\";\nimport { createClient, createClientWithTransaction } from \"./createClient.js\";\nimport * as MakeConjureContext from \"./ontology/makeConjureContext.js\";\nimport { USER_AGENT } from \"./util/UserAgent.js\";\n\nexport function mockFetchResponse(\n fetch: MockedFunction<typeof globalThis.fetch>,\n response: any,\n): void {\n fetch.mockResolvedValueOnce({\n json: () => Promise.resolve(response),\n blob: () => Promise.resolve(response),\n status: 200,\n ok: true,\n } as any);\n}\n\ndescribe(createClient, () => {\n const validOlderVersion = \"0.13.0\" as const;\n const validCurrentVersion = \"0.14.0\" as const;\n const invalidFutureVersion = \"100.100.100\" as const;\n\n let fetchFunction: MockedFunction<typeof globalThis.fetch>;\n let client: Client;\n\n const ontologyRid = \"ri.not.important\";\n\n beforeEach(() => {\n fetchFunction = vi.fn();\n\n client = createClient(\n \"https://mock.com\",\n ontologyRid,\n async () => \"Token\",\n undefined,\n fetchFunction,\n );\n\n mockFetchResponse(fetchFunction, { data: [] });\n });\n\n describe(\"user agent passing\", () => {\n function getUserAgentPartsFromMockedFetch() {\n const userAgent = (fetchFunction.mock.calls[0][1]?.headers as Headers)\n .get(\n \"Fetch-User-Agent\",\n );\n const parts = userAgent?.split(\" \") ?? [];\n return parts;\n }\n\n it(\"works for objects\", async () => {\n await client(BarInterface).fetchPage();\n expect(fetchFunction).toHaveBeenCalledTimes(1);\n\n const parts = getUserAgentPartsFromMockedFetch();\n expect(parts).toEqual([\n ...BarInterface.osdkMetadata!\n .extraUserAgent\n .split(\" \"),\n USER_AGENT,\n ]);\n });\n });\n\n describe(\"check url formatting\", () => {\n it(\"urls are correctly formatted\", async () => {\n const spy = vi.spyOn(SharedClientContext, \"createSharedClientContext\");\n const client = createClient(\n \"https://mock.com\",\n ontologyRid,\n async () => \"Token\",\n undefined,\n fetchFunction,\n );\n expect(spy.mock.calls[0][0]).toBe(\"https://mock.com/\");\n\n createClient(\n \"https://mock1.com/\",\n ontologyRid,\n async () => \"Token\",\n undefined,\n fetchFunction,\n );\n expect(spy.mock.calls[1][0]).toBe(\"https://mock1.com/\");\n\n createClient(\n \"https://mock2.com/stuff/first/foo\",\n ontologyRid,\n async () => \"Token\",\n undefined,\n fetchFunction,\n );\n expect(spy.mock.calls[2][0]).toBe(\"https://mock2.com/stuff/first/foo/\");\n\n createClient(\n \"https://mock3.com/stuff/first/foo/\",\n ontologyRid,\n async () => \"Token\",\n undefined,\n fetchFunction,\n );\n expect(spy.mock.calls[3][0]).toBe(\"https://mock3.com/stuff/first/foo/\");\n\n const conjureContextSpy = vi.spyOn(\n MakeConjureContext,\n \"makeConjureContext\",\n );\n\n void metadataCacheClient(\n {\n baseUrl: \"https://mock4.com/\",\n ontologyProvider: { getObjectDefinition: async () => ({}) },\n } as any,\n );\n\n expect(\n conjureContextSpy.mock.results[0].value[\"baseUrl\"]\n + conjureContextSpy.mock.results[0].value[\"servicePath\"],\n ).toBe(\"https://mock4.com/ontology-metadata/api\");\n });\n });\n\n describe(\"client created with transactionId forwards to requests\", () => {\n it(\"forwards transactionId in fetchPage\", async () => {\n const transactionId = \"test-transaction-id\";\n const clientWithTransaction = createClientWithTransaction(\n transactionId,\n \"https://mock.com\",\n ontologyRid,\n async () => \"Token\",\n {},\n fetchFunction,\n );\n\n mockFetchResponse(fetchFunction, { data: [] });\n\n await clientWithTransaction(BarInterface).fetchPage();\n\n expect(fetchFunction).toHaveBeenCalledTimes(1);\n const url = fetchFunction.mock.calls[0][0];\n expect(url).toBeDefined();\n\n const parsedUrl = new URL(url as string, \"https://mock.com\");\n const someParam = parsedUrl.searchParams.get(\"transactionId\");\n\n // Example: Assert a param\n expect(someParam).toBe(transactionId);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createClient.test.js","names":["BarInterface","SharedClientContext","beforeEach","describe","expect","it","vi","metadataCacheClient","createClient","createClientWithTransaction","MakeConjureContext","USER_AGENT","mockFetchResponse","fetch","response","mockResolvedValueOnce","json","Promise","resolve","blob","status","ok","fetchFunction","client","ontologyRid","fn","undefined","data","getUserAgentPartsFromMockedFetch","userAgent","mock","calls","headers","get","parts","split","fetchPage","toHaveBeenCalledTimes","toEqual","osdkMetadata","extraUserAgent","spy","spyOn","toBe","conjureContextSpy","baseUrl","ontologyProvider","getObjectDefinition","results","value","transactionId","clientWithTransaction","url","toBeDefined","parsedUrl","URL","someParam","searchParams"],"sources":["createClient.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 { BarInterface } from \"@osdk/client.test.ontology\";\nimport * as SharedClientContext from \"@osdk/shared.client.impl\";\nimport type { MockedFunction } from \"vitest\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { metadataCacheClient } from \"./__unstable/ConjureSupport.js\";\nimport type { Client } from \"./Client.js\";\nimport { createClient, createClientWithTransaction } from \"./createClient.js\";\nimport * as MakeConjureContext from \"./ontology/makeConjureContext.js\";\nimport { USER_AGENT } from \"./util/UserAgent.js\";\n\nexport function mockFetchResponse(\n fetch: MockedFunction<typeof globalThis.fetch>,\n response: any,\n): void {\n fetch.mockResolvedValueOnce({\n json: () => Promise.resolve(response),\n blob: () => Promise.resolve(response),\n status: 200,\n ok: true,\n } as any);\n}\n\ndescribe(createClient, () => {\n const validOlderVersion = \"0.13.0\" as const;\n const validCurrentVersion = \"0.14.0\" as const;\n const invalidFutureVersion = \"100.100.100\" as const;\n\n let fetchFunction: MockedFunction<typeof globalThis.fetch>;\n let client: Client;\n\n const ontologyRid = \"ri.not.important\";\n\n beforeEach(() => {\n fetchFunction = vi.fn();\n\n client = createClient(\n \"https://mock.com\",\n ontologyRid,\n async () => \"Token\",\n undefined,\n fetchFunction,\n );\n\n mockFetchResponse(fetchFunction, { data: [] });\n });\n\n describe(\"user agent passing\", () => {\n function getUserAgentPartsFromMockedFetch() {\n const userAgent = (fetchFunction.mock.calls[0][1]?.headers as Headers)\n .get(\n \"Fetch-User-Agent\",\n );\n const parts = userAgent?.split(\" \") ?? [];\n return parts;\n }\n\n it(\"works for objects\", async () => {\n await client(BarInterface).fetchPage();\n expect(fetchFunction).toHaveBeenCalledTimes(1);\n\n const parts = getUserAgentPartsFromMockedFetch();\n expect(parts).toEqual([\n ...BarInterface.osdkMetadata!\n .extraUserAgent\n .split(\" \"),\n USER_AGENT,\n ]);\n });\n });\n\n describe(\"check url formatting\", () => {\n it(\"urls are correctly formatted\", async () => {\n const spy = vi.spyOn(SharedClientContext, \"createSharedClientContext\");\n const client = createClient(\n \"https://mock.com\",\n ontologyRid,\n async () => \"Token\",\n undefined,\n fetchFunction,\n );\n expect(spy.mock.calls[0][0]).toBe(\"https://mock.com/\");\n\n createClient(\n \"https://mock1.com/\",\n ontologyRid,\n async () => \"Token\",\n undefined,\n fetchFunction,\n );\n expect(spy.mock.calls[1][0]).toBe(\"https://mock1.com/\");\n\n createClient(\n \"https://mock2.com/stuff/first/foo\",\n ontologyRid,\n async () => \"Token\",\n undefined,\n fetchFunction,\n );\n expect(spy.mock.calls[2][0]).toBe(\"https://mock2.com/stuff/first/foo/\");\n\n createClient(\n \"https://mock3.com/stuff/first/foo/\",\n ontologyRid,\n async () => \"Token\",\n undefined,\n fetchFunction,\n );\n expect(spy.mock.calls[3][0]).toBe(\"https://mock3.com/stuff/first/foo/\");\n\n const conjureContextSpy = vi.spyOn(\n MakeConjureContext,\n \"makeConjureContext\",\n );\n\n void metadataCacheClient(\n {\n baseUrl: \"https://mock4.com/\",\n ontologyProvider: { getObjectDefinition: async () => ({}) },\n } as any,\n );\n\n expect(\n conjureContextSpy.mock.results[0].value[\"baseUrl\"]\n + conjureContextSpy.mock.results[0].value[\"servicePath\"],\n ).toBe(\"https://mock4.com/ontology-metadata/api\");\n });\n });\n\n describe(\"client created with transactionId forwards to requests\", () => {\n it(\"forwards transactionId in fetchPage\", async () => {\n const transactionId = \"test-transaction-id\";\n const clientWithTransaction = createClientWithTransaction(\n transactionId,\n async () => {},\n \"https://mock.com\",\n ontologyRid,\n async () => \"Token\",\n {},\n fetchFunction,\n );\n\n mockFetchResponse(fetchFunction, { data: [] });\n\n await clientWithTransaction(BarInterface).fetchPage();\n\n expect(fetchFunction).toHaveBeenCalledTimes(1);\n const url = fetchFunction.mock.calls[0][0];\n expect(url).toBeDefined();\n\n const parsedUrl = new URL(url as string, \"https://mock.com\");\n const someParam = parsedUrl.searchParams.get(\"transactionId\");\n\n // Example: Assert a param\n expect(someParam).toBe(transactionId);\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,YAAY,QAAQ,4BAA4B;AACzD,OAAO,KAAKC,mBAAmB,MAAM,0BAA0B;AAE/D,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ,QAAQ;AAC7D,SAASC,mBAAmB,QAAQ,gCAAgC;AAEpE,SAASC,YAAY,EAAEC,2BAA2B,QAAQ,mBAAmB;AAC7E,OAAO,KAAKC,kBAAkB,MAAM,kCAAkC;AACtE,SAASC,UAAU,QAAQ,qBAAqB;AAEhD,OAAO,SAASC,iBAAiBA,CAC/BC,KAA8C,EAC9CC,QAAa,EACP;EACND,KAAK,CAACE,qBAAqB,CAAC;IAC1BC,IAAI,EAAEA,CAAA,KAAMC,OAAO,CAACC,OAAO,CAACJ,QAAQ,CAAC;IACrCK,IAAI,EAAEA,CAAA,KAAMF,OAAO,CAACC,OAAO,CAACJ,QAAQ,CAAC;IACrCM,MAAM,EAAE,GAAG;IACXC,EAAE,EAAE;EACN,CAAQ,CAAC;AACX;AAEAlB,QAAQ,CAACK,YAAY,EAAE,MAAM;EAK3B,IAAIc,aAAsD;EAC1D,IAAIC,MAAc;EAElB,MAAMC,WAAW,GAAG,kBAAkB;EAEtCtB,UAAU,CAAC,MAAM;IACfoB,aAAa,GAAGhB,EAAE,CAACmB,EAAE,CAAC,CAAC;IAEvBF,MAAM,GAAGf,YAAY,CACnB,kBAAkB,EAClBgB,WAAW,EACX,YAAY,OAAO,EACnBE,SAAS,EACTJ,aACF,CAAC;IAEDV,iBAAiB,CAACU,aAAa,EAAE;MAAEK,IAAI,EAAE;IAAG,CAAC,CAAC;EAChD,CAAC,CAAC;EAEFxB,QAAQ,CAAC,oBAAoB,EAAE,MAAM;IACnC,SAASyB,gCAAgCA,CAAA,EAAG;MAC1C,MAAMC,SAAS,GAAG,CAACP,aAAa,CAACQ,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEC,OAAO,EACvDC,GAAG,CACF,kBACF,CAAC;MACH,MAAMC,KAAK,GAAGL,SAAS,EAAEM,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;MACzC,OAAOD,KAAK;IACd;IAEA7B,EAAE,CAAC,mBAAmB,EAAE,YAAY;MAClC,MAAMkB,MAAM,CAACvB,YAAY,CAAC,CAACoC,SAAS,CAAC,CAAC;MACtChC,MAAM,CAACkB,aAAa,CAAC,CAACe,qBAAqB,CAAC,CAAC,CAAC;MAE9C,MAAMH,KAAK,GAAGN,gCAAgC,CAAC,CAAC;MAChDxB,MAAM,CAAC8B,KAAK,CAAC,CAACI,OAAO,CAAC,CACpB,GAAGtC,YAAY,CAACuC,YAAY,CACzBC,cAAc,CACdL,KAAK,CAAC,GAAG,CAAC,EACbxB,UAAU,CACX,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFR,QAAQ,CAAC,sBAAsB,EAAE,MAAM;IACrCE,EAAE,CAAC,8BAA8B,EAAE,YAAY;MAC7C,MAAMoC,GAAG,GAAGnC,EAAE,CAACoC,KAAK,CAACzC,mBAAmB,EAAE,2BAA2B,CAAC;MACtE,MAAMsB,MAAM,GAAGf,YAAY,CACzB,kBAAkB,EAClBgB,WAAW,EACX,YAAY,OAAO,EACnBE,SAAS,EACTJ,aACF,CAAC;MACDlB,MAAM,CAACqC,GAAG,CAACX,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACY,IAAI,CAAC,mBAAmB,CAAC;MAEtDnC,YAAY,CACV,oBAAoB,EACpBgB,WAAW,EACX,YAAY,OAAO,EACnBE,SAAS,EACTJ,aACF,CAAC;MACDlB,MAAM,CAACqC,GAAG,CAACX,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACY,IAAI,CAAC,oBAAoB,CAAC;MAEvDnC,YAAY,CACV,mCAAmC,EACnCgB,WAAW,EACX,YAAY,OAAO,EACnBE,SAAS,EACTJ,aACF,CAAC;MACDlB,MAAM,CAACqC,GAAG,CAACX,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACY,IAAI,CAAC,oCAAoC,CAAC;MAEvEnC,YAAY,CACV,oCAAoC,EACpCgB,WAAW,EACX,YAAY,OAAO,EACnBE,SAAS,EACTJ,aACF,CAAC;MACDlB,MAAM,CAACqC,GAAG,CAACX,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACY,IAAI,CAAC,oCAAoC,CAAC;MAEvE,MAAMC,iBAAiB,GAAGtC,EAAE,CAACoC,KAAK,CAChChC,kBAAkB,EAClB,oBACF,CAAC;MAED,KAAKH,mBAAmB,CACtB;QACEsC,OAAO,EAAE,oBAAoB;QAC7BC,gBAAgB,EAAE;UAAEC,mBAAmB,EAAE,MAAAA,CAAA,MAAa,CAAC,CAAC;QAAE;MAC5D,CACF,CAAC;MAED3C,MAAM,CACJwC,iBAAiB,CAACd,IAAI,CAACkB,OAAO,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC,SAAS,CAAC,GAC9CL,iBAAiB,CAACd,IAAI,CAACkB,OAAO,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC,aAAa,CAC3D,CAAC,CAACN,IAAI,CAAC,yCAAyC,CAAC;IACnD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFxC,QAAQ,CAAC,wDAAwD,EAAE,MAAM;IACvEE,EAAE,CAAC,qCAAqC,EAAE,YAAY;MACpD,MAAM6C,aAAa,GAAG,qBAAqB;MAC3C,MAAMC,qBAAqB,GAAG1C,2BAA2B,CACvDyC,aAAa,EACb,YAAY,CAAC,CAAC,EACd,kBAAkB,EAClB1B,WAAW,EACX,YAAY,OAAO,EACnB,CAAC,CAAC,EACFF,aACF,CAAC;MAEDV,iBAAiB,CAACU,aAAa,EAAE;QAAEK,IAAI,EAAE;MAAG,CAAC,CAAC;MAE9C,MAAMwB,qBAAqB,CAACnD,YAAY,CAAC,CAACoC,SAAS,CAAC,CAAC;MAErDhC,MAAM,CAACkB,aAAa,CAAC,CAACe,qBAAqB,CAAC,CAAC,CAAC;MAC9C,MAAMe,GAAG,GAAG9B,aAAa,CAACQ,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MAC1C3B,MAAM,CAACgD,GAAG,CAAC,CAACC,WAAW,CAAC,CAAC;MAEzB,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAACH,GAAG,EAAY,kBAAkB,CAAC;MAC5D,MAAMI,SAAS,GAAGF,SAAS,CAACG,YAAY,CAACxB,GAAG,CAAC,eAAe,CAAC;;MAE7D;MACA7B,MAAM,CAACoD,SAAS,CAAC,CAACb,IAAI,CAACO,aAAa,CAAC;IACvC,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -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","transactionId","clientCacheKey","requestContext","branch","narrowTypeInterfaceOrObjectMapping","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 transactionId?: 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 transactionId: options.transactionId,\n clientCacheKey: {} as ClientCacheKey,\n requestContext: {},\n branch: options.branch,\n narrowTypeInterfaceOrObjectMapping: {},\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,aAAa,EAAEvB,OAAO,CAACuB,aAAa;IACpCC,cAAc,EAAE,CAAC,CAAmB;IACpCC,cAAc,EAAE,CAAC,CAAC;IAClBC,MAAM,EAAE1B,OAAO,CAAC0B,MAAM;IACtBC,kCAAkC,EAAE,CAAC;EACvC,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
+ {"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","transactionId","clientCacheKey","requestContext","branch","narrowTypeInterfaceOrObjectMapping","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 transactionId?: string;\n flushEdits?: () => Promise<void>;\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 transactionId: options.transactionId,\n clientCacheKey: {} as ClientCacheKey,\n requestContext: {},\n branch: options.branch,\n narrowTypeInterfaceOrObjectMapping: {},\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,OAKC,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,aAAa,EAAEvB,OAAO,CAACuB,aAAa;IACpCC,cAAc,EAAE,CAAC,CAAmB;IACpCC,cAAc,EAAE,CAAC,CAAC;IAClBC,MAAM,EAAE1B,OAAO,CAAC0B,MAAM;IACtBC,kCAAkC,EAAE,CAAC;EACvC,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":[]}
@@ -33,6 +33,9 @@ export async function aggregate(clientCtx, objectType, objectSet = resolveBaseOb
33
33
  if (req.$groupBy) {
34
34
  body.groupBy = modernToLegacyGroupByClause(req.$groupBy);
35
35
  }
36
+ if (clientCtx.flushEdits != null) {
37
+ await clientCtx.flushEdits();
38
+ }
36
39
  const result = await OntologiesV2.OntologyObjectSets.aggregate(addUserAgentAndRequestContextHeaders(clientCtx, objectType), await clientCtx.ontologyRid, {
37
40
  objectSet,
38
41
  groupBy: body.groupBy,
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.js","names":["OntologiesV2","invariant","legacyToModernSingleAggregationResult","modernToLegacyAggregationClause","modernToLegacyGroupByClause","addUserAgentAndRequestContextHeaders","resolveBaseObjectSetType","aggregate","clientCtx","objectType","objectSet","req","body","aggregation","$select","groupBy","where","undefined","$groupBy","result","OntologyObjectSets","ontologyRid","branch","transactionId","data","length","process","env","NODE_ENV","aggregationToCountResult","ret","map","entry","$group","group","aggregateResult","metrics","name","$count","value"],"sources":["aggregate.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 AggregateOpts,\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy,\n AggregationResultsWithGroups,\n AggregationsResults,\n ObjectOrInterfaceDefinition,\n} from \"@osdk/api\";\nimport type {\n AggregateObjectsRequestV2,\n AggregateObjectsResponseV2,\n ObjectSet,\n} from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport { legacyToModernSingleAggregationResult } from \"../internal/conversions/legacyToModernSingleAggregationResult.js\";\nimport { modernToLegacyAggregationClause } from \"../internal/conversions/modernToLegacyAggregationClause.js\";\nimport { modernToLegacyGroupByClause } from \"../internal/conversions/modernToLegacyGroupByClause.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport type { ArrayElement } from \"../util/ArrayElement.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n\n/** @internal */\nexport async function aggregate<\n Q extends ObjectOrInterfaceDefinition,\n AO extends AggregateOpts<Q>,\n>(\n clientCtx: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n req: AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy<Q, AO>,\n): Promise<AggregationsResults<Q, AO>> {\n const resolvedObjectSet = resolveBaseObjectSetType(objectType);\n const body: AggregateObjectsRequestV2 = {\n aggregation: modernToLegacyAggregationClause<AO[\"$select\"]>(\n req.$select,\n ),\n groupBy: [],\n where: undefined,\n };\n\n if (req.$groupBy) {\n body.groupBy = modernToLegacyGroupByClause(req.$groupBy);\n }\n\n const result = await OntologiesV2.OntologyObjectSets.aggregate(\n addUserAgentAndRequestContextHeaders(clientCtx, objectType),\n await clientCtx.ontologyRid,\n {\n objectSet,\n groupBy: body.groupBy,\n aggregation: body.aggregation,\n },\n { branch: clientCtx.branch, transactionId: clientCtx.transactionId },\n );\n\n if (!req.$groupBy) {\n invariant(\n result.data.length === 1,\n \"no group by clause should mean only one data result\",\n );\n\n return {\n ...aggregationToCountResult(result.data[0]),\n ...legacyToModernSingleAggregationResult(\n result.data[0],\n ),\n } as any;\n }\n\n const ret: AggregationResultsWithGroups<Q, AO[\"$select\"], any> = result.data\n .map((entry) => {\n return {\n $group: entry.group as any,\n ...aggregationToCountResult(entry),\n ...legacyToModernSingleAggregationResult(entry),\n };\n }) as any; // fixme\n\n return ret as any; // FIXME\n}\n\nfunction aggregationToCountResult(\n entry: ArrayElement<AggregateObjectsResponseV2[\"data\"]>,\n): { $count: number } | undefined {\n for (const aggregateResult of entry.metrics) {\n if (aggregateResult.name === \"count\") {\n return { $count: aggregateResult.value };\n }\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA,OAAO,KAAKA,YAAY,MAAM,0BAA0B;AACxD,OAAOC,SAAS,MAAM,gBAAgB;AACtC,SAASC,qCAAqC,QAAQ,kEAAkE;AACxH,SAASC,+BAA+B,QAAQ,4DAA4D;AAC5G,SAASC,2BAA2B,QAAQ,wDAAwD;AAEpG,SAASC,oCAAoC,QAAQ,iDAAiD;AAEtG,SAASC,wBAAwB,QAAQ,2BAA2B;;AAEpE;AACA,OAAO,eAAeC,SAASA,CAI7BC,SAAwB,EACxBC,UAAa,EACbC,SAAoB,GAAGJ,wBAAwB,CAACG,UAAU,CAAC,EAC3DE,GAA0E,EACrC;EACXL,wBAAwB,CAACG,UAAU,CAAC;EAC9D,MAAMG,IAA+B,GAAG;IACtCC,WAAW,EAAEV,+BAA+B,CAC1CQ,GAAG,CAACG,OACN,CAAC;IACDC,OAAO,EAAE,EAAE;IACXC,KAAK,EAAEC;EACT,CAAC;EAED,IAAIN,GAAG,CAACO,QAAQ,EAAE;IAChBN,IAAI,CAACG,OAAO,GAAGX,2BAA2B,CAACO,GAAG,CAACO,QAAQ,CAAC;EAC1D;EAEA,MAAMC,MAAM,GAAG,MAAMnB,YAAY,CAACoB,kBAAkB,CAACb,SAAS,CAC5DF,oCAAoC,CAACG,SAAS,EAAEC,UAAU,CAAC,EAC3D,MAAMD,SAAS,CAACa,WAAW,EAC3B;IACEX,SAAS;IACTK,OAAO,EAAEH,IAAI,CAACG,OAAO;IACrBF,WAAW,EAAED,IAAI,CAACC;EACpB,CAAC,EACD;IAAES,MAAM,EAAEd,SAAS,CAACc,MAAM;IAAEC,aAAa,EAAEf,SAAS,CAACe;EAAc,CACrE,CAAC;EAED,IAAI,CAACZ,GAAG,CAACO,QAAQ,EAAE;IACjB,EACEC,MAAM,CAACK,IAAI,CAACC,MAAM,KAAK,CAAC,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1B3B,SAAS,QAEP,qDAAqD,IAFvDA,SAAS;IAKT,OAAO;MACL,GAAG4B,wBAAwB,CAACV,MAAM,CAACK,IAAI,CAAC,CAAC,CAAC,CAAC;MAC3C,GAAGtB,qCAAqC,CACtCiB,MAAM,CAACK,IAAI,CAAC,CAAC,CACf;IACF,CAAC;EACH;EAEA,MAAMM,GAAwD,GAAGX,MAAM,CAACK,IAAI,CACzEO,GAAG,CAAEC,KAAK,IAAK;IACd,OAAO;MACLC,MAAM,EAAED,KAAK,CAACE,KAAY;MAC1B,GAAGL,wBAAwB,CAACG,KAAK,CAAC;MAClC,GAAG9B,qCAAqC,CAAC8B,KAAK;IAChD,CAAC;EACH,CAAC,CAAQ,CAAC,CAAC;;EAEb,OAAOF,GAAG,CAAQ,CAAC;AACrB;AAEA,SAASD,wBAAwBA,CAC/BG,KAAuD,EACvB;EAChC,KAAK,MAAMG,eAAe,IAAIH,KAAK,CAACI,OAAO,EAAE;IAC3C,IAAID,eAAe,CAACE,IAAI,KAAK,OAAO,EAAE;MACpC,OAAO;QAAEC,MAAM,EAAEH,eAAe,CAACI;MAAM,CAAC;IAC1C;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"aggregate.js","names":["OntologiesV2","invariant","legacyToModernSingleAggregationResult","modernToLegacyAggregationClause","modernToLegacyGroupByClause","addUserAgentAndRequestContextHeaders","resolveBaseObjectSetType","aggregate","clientCtx","objectType","objectSet","req","body","aggregation","$select","groupBy","where","undefined","$groupBy","flushEdits","result","OntologyObjectSets","ontologyRid","branch","transactionId","data","length","process","env","NODE_ENV","aggregationToCountResult","ret","map","entry","$group","group","aggregateResult","metrics","name","$count","value"],"sources":["aggregate.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 AggregateOpts,\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy,\n AggregationResultsWithGroups,\n AggregationsResults,\n ObjectOrInterfaceDefinition,\n} from \"@osdk/api\";\nimport type {\n AggregateObjectsRequestV2,\n AggregateObjectsResponseV2,\n ObjectSet,\n} from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport { legacyToModernSingleAggregationResult } from \"../internal/conversions/legacyToModernSingleAggregationResult.js\";\nimport { modernToLegacyAggregationClause } from \"../internal/conversions/modernToLegacyAggregationClause.js\";\nimport { modernToLegacyGroupByClause } from \"../internal/conversions/modernToLegacyGroupByClause.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport type { ArrayElement } from \"../util/ArrayElement.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n\n/** @internal */\nexport async function aggregate<\n Q extends ObjectOrInterfaceDefinition,\n AO extends AggregateOpts<Q>,\n>(\n clientCtx: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n req: AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy<Q, AO>,\n): Promise<AggregationsResults<Q, AO>> {\n const resolvedObjectSet = resolveBaseObjectSetType(objectType);\n const body: AggregateObjectsRequestV2 = {\n aggregation: modernToLegacyAggregationClause<AO[\"$select\"]>(\n req.$select,\n ),\n groupBy: [],\n where: undefined,\n };\n\n if (req.$groupBy) {\n body.groupBy = modernToLegacyGroupByClause(req.$groupBy);\n }\n\n if (clientCtx.flushEdits != null) {\n await clientCtx.flushEdits();\n }\n\n const result = await OntologiesV2.OntologyObjectSets.aggregate(\n addUserAgentAndRequestContextHeaders(clientCtx, objectType),\n await clientCtx.ontologyRid,\n {\n objectSet,\n groupBy: body.groupBy,\n aggregation: body.aggregation,\n },\n { branch: clientCtx.branch, transactionId: clientCtx.transactionId },\n );\n\n if (!req.$groupBy) {\n invariant(\n result.data.length === 1,\n \"no group by clause should mean only one data result\",\n );\n\n return {\n ...aggregationToCountResult(result.data[0]),\n ...legacyToModernSingleAggregationResult(\n result.data[0],\n ),\n } as any;\n }\n\n const ret: AggregationResultsWithGroups<Q, AO[\"$select\"], any> = result.data\n .map((entry) => {\n return {\n $group: entry.group as any,\n ...aggregationToCountResult(entry),\n ...legacyToModernSingleAggregationResult(entry),\n };\n }) as any; // fixme\n\n return ret as any; // FIXME\n}\n\nfunction aggregationToCountResult(\n entry: ArrayElement<AggregateObjectsResponseV2[\"data\"]>,\n): { $count: number } | undefined {\n for (const aggregateResult of entry.metrics) {\n if (aggregateResult.name === \"count\") {\n return { $count: aggregateResult.value };\n }\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA,OAAO,KAAKA,YAAY,MAAM,0BAA0B;AACxD,OAAOC,SAAS,MAAM,gBAAgB;AACtC,SAASC,qCAAqC,QAAQ,kEAAkE;AACxH,SAASC,+BAA+B,QAAQ,4DAA4D;AAC5G,SAASC,2BAA2B,QAAQ,wDAAwD;AAEpG,SAASC,oCAAoC,QAAQ,iDAAiD;AAEtG,SAASC,wBAAwB,QAAQ,2BAA2B;;AAEpE;AACA,OAAO,eAAeC,SAASA,CAI7BC,SAAwB,EACxBC,UAAa,EACbC,SAAoB,GAAGJ,wBAAwB,CAACG,UAAU,CAAC,EAC3DE,GAA0E,EACrC;EACXL,wBAAwB,CAACG,UAAU,CAAC;EAC9D,MAAMG,IAA+B,GAAG;IACtCC,WAAW,EAAEV,+BAA+B,CAC1CQ,GAAG,CAACG,OACN,CAAC;IACDC,OAAO,EAAE,EAAE;IACXC,KAAK,EAAEC;EACT,CAAC;EAED,IAAIN,GAAG,CAACO,QAAQ,EAAE;IAChBN,IAAI,CAACG,OAAO,GAAGX,2BAA2B,CAACO,GAAG,CAACO,QAAQ,CAAC;EAC1D;EAEA,IAAIV,SAAS,CAACW,UAAU,IAAI,IAAI,EAAE;IAChC,MAAMX,SAAS,CAACW,UAAU,CAAC,CAAC;EAC9B;EAEA,MAAMC,MAAM,GAAG,MAAMpB,YAAY,CAACqB,kBAAkB,CAACd,SAAS,CAC5DF,oCAAoC,CAACG,SAAS,EAAEC,UAAU,CAAC,EAC3D,MAAMD,SAAS,CAACc,WAAW,EAC3B;IACEZ,SAAS;IACTK,OAAO,EAAEH,IAAI,CAACG,OAAO;IACrBF,WAAW,EAAED,IAAI,CAACC;EACpB,CAAC,EACD;IAAEU,MAAM,EAAEf,SAAS,CAACe,MAAM;IAAEC,aAAa,EAAEhB,SAAS,CAACgB;EAAc,CACrE,CAAC;EAED,IAAI,CAACb,GAAG,CAACO,QAAQ,EAAE;IACjB,EACEE,MAAM,CAACK,IAAI,CAACC,MAAM,KAAK,CAAC,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1B5B,SAAS,QAEP,qDAAqD,IAFvDA,SAAS;IAKT,OAAO;MACL,GAAG6B,wBAAwB,CAACV,MAAM,CAACK,IAAI,CAAC,CAAC,CAAC,CAAC;MAC3C,GAAGvB,qCAAqC,CACtCkB,MAAM,CAACK,IAAI,CAAC,CAAC,CACf;IACF,CAAC;EACH;EAEA,MAAMM,GAAwD,GAAGX,MAAM,CAACK,IAAI,CACzEO,GAAG,CAAEC,KAAK,IAAK;IACd,OAAO;MACLC,MAAM,EAAED,KAAK,CAACE,KAAY;MAC1B,GAAGL,wBAAwB,CAACG,KAAK,CAAC;MAClC,GAAG/B,qCAAqC,CAAC+B,KAAK;IAChD,CAAC;EACH,CAAC,CAAQ,CAAC,CAAC;;EAEb,OAAOF,GAAG,CAAQ,CAAC;AACrB;AAEA,SAASD,wBAAwBA,CAC/BG,KAAuD,EACvB;EAChC,KAAK,MAAMG,eAAe,IAAIH,KAAK,CAACI,OAAO,EAAE;IAC3C,IAAID,eAAe,CAACE,IAAI,KAAK,OAAO,EAAE;MACpC,OAAO;QAAEC,MAAM,EAAEH,eAAe,CAACI;MAAM,CAAC;IAC1C;EACF;AACF","ignoreList":[]}
@@ -72,6 +72,9 @@ export async function fetchStaticRidPage(client, rids, args, useSnapshot = false
72
72
  type: "object",
73
73
  apiName: ""
74
74
  });
75
+ if (client.flushEdits != null) {
76
+ await client.flushEdits();
77
+ }
75
78
  const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(addUserAgentAndRequestContextHeaders(client, {
76
79
  osdkMetadata: undefined
77
80
  }), await client.ontologyRid, requestBody, {
@@ -101,6 +104,9 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet, useSna
101
104
  const remapped = remapPropertyNames(interfaceType, requestBody.selectedSharedPropertyTypes);
102
105
  requestBody.selectedSharedPropertyTypes = Array.from(remapped);
103
106
  }
107
+ if (client.flushEdits != null) {
108
+ await client.flushEdits();
109
+ }
104
110
  const result = await OntologiesV2.OntologyInterfaces.search(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, interfaceType.apiName, requestBody, {
105
111
  preview: true
106
112
  });
@@ -118,6 +124,9 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet, useSna
118
124
  excludeRid: !args?.$includeRid,
119
125
  snapshot: useSnapshot
120
126
  }, client, interfaceType);
127
+ if (client.flushEdits != null) {
128
+ await client.flushEdits();
129
+ }
121
130
  const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, requestBody, {
122
131
  preview: true,
123
132
  branch: client.branch,
@@ -246,6 +255,9 @@ export async function fetchObjectPage(client, objectType, args, objectSet, useSn
246
255
  excludeRid: !args?.$includeRid,
247
256
  snapshot: useSnapshot
248
257
  }, client, objectType);
258
+ if (client.flushEdits != null) {
259
+ await client.flushEdits();
260
+ }
249
261
  const r = await OntologiesV2.OntologyObjectSets.load(addUserAgentAndRequestContextHeaders(client, objectType), await client.ontologyRid, requestBody, {
250
262
  branch: client.branch,
251
263
  transactionId: client.transactionId
@@ -1 +1 @@
1
- {"version":3,"file":"fetchPage.js","names":["OntologiesV2","extractNamespace","addUserAgentAndRequestContextHeaders","extractObjectOrInterfaceType","extractRdpDefinition","resolveBaseObjectSetType","augment","type","properties","apiName","objectSetToSearchJsonV2","objectSet","expectedApiName","existingWhere","undefined","objectType","Error","interfaceType","where","value","resolveInterfaceObjectSet","interfaceTypeApiName","args","$includeAllBaseObjectProperties","objectSets","includeAllBaseObjectProperties","fetchStaticRidPage","client","rids","useSnapshot","requestBody","applyFetchArgs","objects","select","$select","excludeRid","$includeRid","snapshot","result","OntologyObjectSets","loadMultipleObjectTypes","osdkMetadata","ontologyRid","preview","transactionId","Promise","resolve","data","objectFactory2","interfaceToObjectTypeMappings","interfaceToObjectTypeMappingsV2","nextPageToken","totalCount","fetchInterfacePage","$__UNSTABLE_useOldInterfaceApis","baseRequestBody","augmentedProperties","augmentedSharedPropertyTypes","augmentedInterfacePropertyTypes","otherInterfaceTypes","selectedObjectTypes","selectedSharedPropertyTypes","selectedInterfacePropertyTypes","length","remapped","remapPropertyNames","Array","from","OntologyInterfaces","search","objectFactory","extractedInterfaceTypeApiName","resolvedInterfaceObjectSet","buildAndRemapRequestBody","selectV2","branch","fetchPageInternal","fetchObjectPage","fetchPageWithErrorsInternal","e","error","fetchPage","fetchPageWithErrors","baseBody","objectOrInterface","propertyNames","objApiNamespace","map","name","fieldApiNamespace","fieldShortName","body","_client","$nextPageToken","pageToken","$pageSize","pageSize","orderBy","$orderBy","orderType","fields","orderByEntries","Object","entries","fieldNames","field","remappedFields","direction","index","ontologyProvider","getObjectDefinition","catch","r","load"],"sources":["fetchPage.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 Augment,\n Augments,\n FetchPageArgs,\n FetchPageResult,\n InterfaceDefinition,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectSetArgs,\n ObjectTypeDefinition,\n PropertyKeys,\n Result,\n} from \"@osdk/api\";\nimport type { PageSize, PageToken } from \"@osdk/foundry.core\";\nimport type {\n LoadObjectSetV2MultipleObjectTypesRequest,\n ObjectSet,\n OntologyObjectV2,\n SearchJsonQueryV2,\n SearchObjectsForInterfaceRequest,\n SearchOrderByV2,\n} from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport { extractNamespace } from \"../internal/conversions/extractNamespace.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { extractObjectOrInterfaceType } from \"../util/extractObjectOrInterfaceType.js\";\nimport { extractRdpDefinition } from \"../util/extractRdpDefinition.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n\nexport function augment<\n Q extends ObjectOrInterfaceDefinition,\n T extends PropertyKeys<Q>,\n>(\n type: Q,\n ...properties: T[]\n): Augment<Q, T> {\n return { [type.apiName]: properties } as any;\n}\n\n/** @internal */\nexport function objectSetToSearchJsonV2(\n objectSet: ObjectSet,\n expectedApiName: string,\n existingWhere: SearchJsonQueryV2 | undefined = undefined,\n): SearchJsonQueryV2 | undefined {\n if (objectSet.type === \"base\" || objectSet.type === \"interfaceBase\") {\n if (objectSet.type === \"base\" && objectSet.objectType !== expectedApiName) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.objectType}`,\n );\n }\n if (\n objectSet.type === \"interfaceBase\"\n && objectSet.interfaceType !== expectedApiName\n ) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.interfaceType}`,\n );\n }\n\n return existingWhere;\n }\n\n if (objectSet.type === \"filter\") {\n return objectSetToSearchJsonV2(\n objectSet.objectSet,\n expectedApiName,\n existingWhere == null ? objectSet.where : {\n type: \"and\",\n value: [existingWhere, objectSet.where],\n },\n );\n }\n\n throw new Error(`Unsupported objectSet type: ${objectSet.type}`);\n}\n\n/** @internal */\nexport function resolveInterfaceObjectSet(\n objectSet: ObjectSet,\n interfaceTypeApiName: string,\n args: FetchPageArgs<any, any, any, any, any, any>,\n): ObjectSet {\n return args?.$includeAllBaseObjectProperties\n ? {\n type: \"intersect\",\n objectSets: [objectSet, {\n type: \"interfaceBase\",\n interfaceType: interfaceTypeApiName,\n includeAllBaseObjectProperties: true,\n }],\n }\n : objectSet;\n}\n\n/** @internal */\nexport async function fetchStaticRidPage<\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n rids: readonly string[],\n args: FetchPageArgs<\n ObjectOrInterfaceDefinition,\n PropertyKeys<ObjectOrInterfaceDefinition>,\n R,\n any,\n S,\n T\n >,\n useSnapshot: boolean = false,\n): Promise<\n FetchPageResult<\n ObjectOrInterfaceDefinition,\n PropertyKeys<ObjectOrInterfaceDefinition>,\n R,\n S,\n T\n >\n> {\n const requestBody = await applyFetchArgs(\n args,\n {\n objectSet: {\n type: \"static\",\n objects: rids as string[],\n },\n select: ((args?.$select as string[] | undefined) ?? []),\n excludeRid: !args?.$includeRid,\n snapshot: useSnapshot,\n } as LoadObjectSetV2MultipleObjectTypesRequest,\n client,\n { type: \"object\", apiName: \"\" },\n );\n\n const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(\n addUserAgentAndRequestContextHeaders(client, { osdkMetadata: undefined }),\n await client.ontologyRid,\n requestBody,\n { preview: true, transactionId: client.transactionId },\n );\n\n return Promise.resolve({\n data: await client.objectFactory2(\n client,\n result.data,\n undefined,\n {},\n !args.$includeRid,\n args.$select,\n false,\n result.interfaceToObjectTypeMappings,\n result.interfaceToObjectTypeMappingsV2,\n ),\n nextPageToken: result.nextPageToken,\n totalCount: result.totalCount,\n }) as unknown as Promise<\n FetchPageResult<\n ObjectOrInterfaceDefinition,\n PropertyKeys<ObjectOrInterfaceDefinition>,\n R,\n S,\n T\n >\n >;\n}\n\nasync function fetchInterfacePage<\n Q extends InterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n interfaceType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet,\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (args.$__UNSTABLE_useOldInterfaceApis) {\n const baseRequestBody: SearchObjectsForInterfaceRequest = {\n augmentedProperties: {},\n augmentedSharedPropertyTypes: {},\n augmentedInterfacePropertyTypes: {},\n otherInterfaceTypes: [],\n selectedObjectTypes: [],\n selectedSharedPropertyTypes: args.$select ? [...args.$select] : [],\n selectedInterfacePropertyTypes: [],\n where: objectSetToSearchJsonV2(objectSet, interfaceType.apiName),\n };\n\n const requestBody = await applyFetchArgs(\n args,\n baseRequestBody,\n client,\n interfaceType,\n );\n\n if (requestBody.selectedSharedPropertyTypes.length > 0) {\n const remapped = remapPropertyNames(\n interfaceType,\n requestBody.selectedSharedPropertyTypes,\n );\n requestBody.selectedSharedPropertyTypes = Array.from(remapped);\n }\n\n const result = await OntologiesV2.OntologyInterfaces\n .search(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n interfaceType.apiName,\n requestBody,\n { preview: true },\n );\n\n result.data = await client.objectFactory(\n client,\n result.data as OntologyObjectV2[], // drop readonly\n interfaceType.apiName,\n !args.$includeRid,\n await extractRdpDefinition(client, objectSet),\n );\n return result as any;\n }\n\n const extractedInterfaceTypeApiName = (await extractObjectOrInterfaceType(\n client,\n objectSet,\n ))?.apiName ?? interfaceType.apiName;\n const resolvedInterfaceObjectSet = resolveInterfaceObjectSet(\n objectSet,\n extractedInterfaceTypeApiName,\n args,\n );\n const requestBody = await buildAndRemapRequestBody(\n args,\n {\n objectSet: resolvedInterfaceObjectSet,\n select: args?.$select ? [...args.$select] : [],\n selectV2: [],\n excludeRid: !args?.$includeRid,\n snapshot: useSnapshot,\n },\n client,\n interfaceType,\n );\n\n const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n requestBody,\n {\n preview: true,\n branch: client.branch,\n transactionId: client.transactionId,\n },\n );\n\n return Promise.resolve({\n data: await client.objectFactory2(\n client,\n result.data,\n extractedInterfaceTypeApiName,\n {},\n !args.$includeRid,\n args.$select,\n false,\n result.interfaceToObjectTypeMappings,\n result.interfaceToObjectTypeMappingsV2,\n ),\n nextPageToken: result.nextPageToken,\n totalCount: result.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n\n/** @internal */\nexport async function fetchPageInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<L>,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T, never, ORDER_BY_OPTIONS> = {},\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T, ORDER_BY_OPTIONS>> {\n if (objectType.type === \"interface\") {\n return await fetchInterfacePage(\n client,\n objectType,\n args as FetchPageArgs<\n InterfaceDefinition,\n L,\n R,\n A,\n S,\n T,\n never,\n ORDER_BY_OPTIONS\n >,\n objectSet,\n useSnapshot,\n ) as any; // fixme\n } else {\n return await fetchObjectPage(\n client,\n objectType,\n args as FetchPageArgs<\n ObjectTypeDefinition,\n L,\n R,\n A,\n S,\n T,\n never,\n ORDER_BY_OPTIONS\n >,\n objectSet,\n useSnapshot,\n ) as any; // fixme\n }\n}\n\n/** @internal */\nexport async function fetchPageWithErrorsInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n try {\n const result = await fetchPageInternal(client, objectType, objectSet, args);\n return { value: result };\n } catch (e) {\n if (e instanceof Error) {\n return { error: e };\n }\n return { error: e as Error };\n }\n}\n\n/**\n * @param client\n * @param objectType\n * @param args\n * @param objectSet\n * @returns\n * @internal\n */\nexport async function fetchPage<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n return fetchPageInternal(client, objectType, objectSet, args);\n}\n\n/** @internal */\nexport async function fetchPageWithErrors<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n return fetchPageWithErrorsInternal(client, objectType, objectSet, args);\n}\n\n/** @internal */\nasync function buildAndRemapRequestBody<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n RequestBody extends {\n orderBy?: SearchOrderByV2;\n pageToken?: PageToken;\n pageSize?: PageSize;\n select?: readonly string[];\n selectedSharedPropertyTypes?: readonly string[];\n },\n>(\n args: FetchPageArgs<Q, L, R, A, S, T>,\n baseBody: RequestBody,\n client: MinimalClient,\n objectType: Q,\n): Promise<RequestBody> {\n const requestBody = await applyFetchArgs(\n args,\n baseBody,\n client,\n objectType,\n );\n\n if (requestBody.select != null && requestBody.select.length > 0) {\n const remapped = remapPropertyNames(\n objectType,\n requestBody.select,\n );\n return { ...requestBody, select: remapped };\n }\n\n return requestBody;\n}\n\n/** @internal */\nexport function remapPropertyNames(\n objectOrInterface: ObjectOrInterfaceDefinition | undefined,\n propertyNames: readonly string[],\n): readonly string[] {\n if (objectOrInterface == null) {\n return propertyNames;\n }\n\n if (objectOrInterface.type === \"interface\") {\n const [objApiNamespace] = extractNamespace(objectOrInterface.apiName);\n return propertyNames.map(name => {\n const [fieldApiNamespace, fieldShortName] = extractNamespace(name);\n return (fieldApiNamespace == null && objApiNamespace != null)\n ? `${objApiNamespace}.${fieldShortName}`\n : name;\n });\n }\n\n return propertyNames;\n}\n\nasync function applyFetchArgs<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n X extends {\n orderBy?: SearchOrderByV2;\n pageToken?: PageToken;\n pageSize?: PageSize;\n },\n>(\n args: FetchPageArgs<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n ObjectSetArgs.OrderByOptions<any>\n >,\n body: X,\n _client: MinimalClient,\n objectType: Q,\n): Promise<X> {\n if (args?.$nextPageToken) {\n body.pageToken = args.$nextPageToken;\n }\n\n if (args?.$pageSize != null) {\n body.pageSize = args.$pageSize;\n }\n\n const orderBy = args?.$orderBy;\n if (orderBy) {\n if (orderBy === \"relevance\") {\n body.orderBy = { orderType: \"relevance\", fields: [] };\n } else {\n const orderByEntries = Object.entries(orderBy);\n const fieldNames = orderByEntries.map(([field]) => field);\n const remappedFields = remapPropertyNames(\n objectType,\n fieldNames,\n );\n\n body.orderBy = {\n fields: orderByEntries.map(([, direction], index) => ({\n field: remappedFields[index],\n direction,\n })),\n };\n }\n }\n\n return body;\n}\n\n/** @internal */\nexport async function fetchObjectPage<\n Q extends ObjectTypeDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<L>,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, Augments, S, T, never, ORDER_BY_OPTIONS>,\n objectSet: ObjectSet,\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T, ORDER_BY_OPTIONS>> {\n // For simple object fetches, since we know the object type up front\n // we can parallelize network requests for loading metadata and loading the actual objects\n // In our object factory we await and block on loading the metadata, which if this call finishes, should already be cached on the client\n // We have an empty catch here so that if this call errors before we await later, we won't have an unhandled promise rejection that would crash the process\n // Swallowing the error is ok because we await the metadata load in the objectFactory later anyways which eventually bubbles up the error to the user\n void client.ontologyProvider.getObjectDefinition(objectType.apiName).catch(\n () => {},\n );\n\n const requestBody = await buildAndRemapRequestBody(\n args,\n {\n objectSet,\n select: args?.$select ? [...args.$select] : [],\n selectV2: [],\n excludeRid: !args?.$includeRid,\n snapshot: useSnapshot,\n },\n client,\n objectType,\n );\n\n const r = await OntologiesV2.OntologyObjectSets.load(\n addUserAgentAndRequestContextHeaders(client, objectType),\n await client.ontologyRid,\n requestBody,\n { branch: client.branch, transactionId: client.transactionId },\n );\n\n return Promise.resolve({\n data: await client.objectFactory(\n client,\n r.data as OntologyObjectV2[],\n undefined,\n undefined,\n await extractRdpDefinition(client, objectSet),\n args.$select,\n false,\n ),\n nextPageToken: r.nextPageToken,\n totalCount: r.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T, ORDER_BY_OPTIONS>>;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"fetchPage.js","names":["OntologiesV2","extractNamespace","addUserAgentAndRequestContextHeaders","extractObjectOrInterfaceType","extractRdpDefinition","resolveBaseObjectSetType","augment","type","properties","apiName","objectSetToSearchJsonV2","objectSet","expectedApiName","existingWhere","undefined","objectType","Error","interfaceType","where","value","resolveInterfaceObjectSet","interfaceTypeApiName","args","$includeAllBaseObjectProperties","objectSets","includeAllBaseObjectProperties","fetchStaticRidPage","client","rids","useSnapshot","requestBody","applyFetchArgs","objects","select","$select","excludeRid","$includeRid","snapshot","flushEdits","result","OntologyObjectSets","loadMultipleObjectTypes","osdkMetadata","ontologyRid","preview","transactionId","Promise","resolve","data","objectFactory2","interfaceToObjectTypeMappings","interfaceToObjectTypeMappingsV2","nextPageToken","totalCount","fetchInterfacePage","$__UNSTABLE_useOldInterfaceApis","baseRequestBody","augmentedProperties","augmentedSharedPropertyTypes","augmentedInterfacePropertyTypes","otherInterfaceTypes","selectedObjectTypes","selectedSharedPropertyTypes","selectedInterfacePropertyTypes","length","remapped","remapPropertyNames","Array","from","OntologyInterfaces","search","objectFactory","extractedInterfaceTypeApiName","resolvedInterfaceObjectSet","buildAndRemapRequestBody","selectV2","branch","fetchPageInternal","fetchObjectPage","fetchPageWithErrorsInternal","e","error","fetchPage","fetchPageWithErrors","baseBody","objectOrInterface","propertyNames","objApiNamespace","map","name","fieldApiNamespace","fieldShortName","body","_client","$nextPageToken","pageToken","$pageSize","pageSize","orderBy","$orderBy","orderType","fields","orderByEntries","Object","entries","fieldNames","field","remappedFields","direction","index","ontologyProvider","getObjectDefinition","catch","r","load"],"sources":["fetchPage.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 Augment,\n Augments,\n FetchPageArgs,\n FetchPageResult,\n InterfaceDefinition,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectSetArgs,\n ObjectTypeDefinition,\n PropertyKeys,\n Result,\n} from \"@osdk/api\";\nimport type { PageSize, PageToken } from \"@osdk/foundry.core\";\nimport type {\n LoadObjectSetV2MultipleObjectTypesRequest,\n ObjectSet,\n OntologyObjectV2,\n SearchJsonQueryV2,\n SearchObjectsForInterfaceRequest,\n SearchOrderByV2,\n} from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport { extractNamespace } from \"../internal/conversions/extractNamespace.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { extractObjectOrInterfaceType } from \"../util/extractObjectOrInterfaceType.js\";\nimport { extractRdpDefinition } from \"../util/extractRdpDefinition.js\";\nimport { resolveBaseObjectSetType } from \"../util/objectSetUtils.js\";\n\nexport function augment<\n Q extends ObjectOrInterfaceDefinition,\n T extends PropertyKeys<Q>,\n>(\n type: Q,\n ...properties: T[]\n): Augment<Q, T> {\n return { [type.apiName]: properties } as any;\n}\n\n/** @internal */\nexport function objectSetToSearchJsonV2(\n objectSet: ObjectSet,\n expectedApiName: string,\n existingWhere: SearchJsonQueryV2 | undefined = undefined,\n): SearchJsonQueryV2 | undefined {\n if (objectSet.type === \"base\" || objectSet.type === \"interfaceBase\") {\n if (objectSet.type === \"base\" && objectSet.objectType !== expectedApiName) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.objectType}`,\n );\n }\n if (\n objectSet.type === \"interfaceBase\"\n && objectSet.interfaceType !== expectedApiName\n ) {\n throw new Error(\n `Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.interfaceType}`,\n );\n }\n\n return existingWhere;\n }\n\n if (objectSet.type === \"filter\") {\n return objectSetToSearchJsonV2(\n objectSet.objectSet,\n expectedApiName,\n existingWhere == null ? objectSet.where : {\n type: \"and\",\n value: [existingWhere, objectSet.where],\n },\n );\n }\n\n throw new Error(`Unsupported objectSet type: ${objectSet.type}`);\n}\n\n/** @internal */\nexport function resolveInterfaceObjectSet(\n objectSet: ObjectSet,\n interfaceTypeApiName: string,\n args: FetchPageArgs<any, any, any, any, any, any>,\n): ObjectSet {\n return args?.$includeAllBaseObjectProperties\n ? {\n type: \"intersect\",\n objectSets: [objectSet, {\n type: \"interfaceBase\",\n interfaceType: interfaceTypeApiName,\n includeAllBaseObjectProperties: true,\n }],\n }\n : objectSet;\n}\n\n/** @internal */\nexport async function fetchStaticRidPage<\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n rids: readonly string[],\n args: FetchPageArgs<\n ObjectOrInterfaceDefinition,\n PropertyKeys<ObjectOrInterfaceDefinition>,\n R,\n any,\n S,\n T\n >,\n useSnapshot: boolean = false,\n): Promise<\n FetchPageResult<\n ObjectOrInterfaceDefinition,\n PropertyKeys<ObjectOrInterfaceDefinition>,\n R,\n S,\n T\n >\n> {\n const requestBody = await applyFetchArgs(\n args,\n {\n objectSet: {\n type: \"static\",\n objects: rids as string[],\n },\n select: ((args?.$select as string[] | undefined) ?? []),\n excludeRid: !args?.$includeRid,\n snapshot: useSnapshot,\n } as LoadObjectSetV2MultipleObjectTypesRequest,\n client,\n { type: \"object\", apiName: \"\" },\n );\n\n if (client.flushEdits != null) {\n await client.flushEdits();\n }\n\n const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(\n addUserAgentAndRequestContextHeaders(client, { osdkMetadata: undefined }),\n await client.ontologyRid,\n requestBody,\n { preview: true, transactionId: client.transactionId },\n );\n\n return Promise.resolve({\n data: await client.objectFactory2(\n client,\n result.data,\n undefined,\n {},\n !args.$includeRid,\n args.$select,\n false,\n result.interfaceToObjectTypeMappings,\n result.interfaceToObjectTypeMappingsV2,\n ),\n nextPageToken: result.nextPageToken,\n totalCount: result.totalCount,\n }) as unknown as Promise<\n FetchPageResult<\n ObjectOrInterfaceDefinition,\n PropertyKeys<ObjectOrInterfaceDefinition>,\n R,\n S,\n T\n >\n >;\n}\n\nasync function fetchInterfacePage<\n Q extends InterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n interfaceType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet,\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n if (args.$__UNSTABLE_useOldInterfaceApis) {\n const baseRequestBody: SearchObjectsForInterfaceRequest = {\n augmentedProperties: {},\n augmentedSharedPropertyTypes: {},\n augmentedInterfacePropertyTypes: {},\n otherInterfaceTypes: [],\n selectedObjectTypes: [],\n selectedSharedPropertyTypes: args.$select ? [...args.$select] : [],\n selectedInterfacePropertyTypes: [],\n where: objectSetToSearchJsonV2(objectSet, interfaceType.apiName),\n };\n\n const requestBody = await applyFetchArgs(\n args,\n baseRequestBody,\n client,\n interfaceType,\n );\n\n if (requestBody.selectedSharedPropertyTypes.length > 0) {\n const remapped = remapPropertyNames(\n interfaceType,\n requestBody.selectedSharedPropertyTypes,\n );\n requestBody.selectedSharedPropertyTypes = Array.from(remapped);\n }\n\n if (client.flushEdits != null) {\n await client.flushEdits();\n }\n\n const result = await OntologiesV2.OntologyInterfaces\n .search(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n interfaceType.apiName,\n requestBody,\n { preview: true },\n );\n\n result.data = await client.objectFactory(\n client,\n result.data as OntologyObjectV2[], // drop readonly\n interfaceType.apiName,\n !args.$includeRid,\n await extractRdpDefinition(client, objectSet),\n );\n return result as any;\n }\n\n const extractedInterfaceTypeApiName = (await extractObjectOrInterfaceType(\n client,\n objectSet,\n ))?.apiName ?? interfaceType.apiName;\n const resolvedInterfaceObjectSet = resolveInterfaceObjectSet(\n objectSet,\n extractedInterfaceTypeApiName,\n args,\n );\n const requestBody = await buildAndRemapRequestBody(\n args,\n {\n objectSet: resolvedInterfaceObjectSet,\n select: args?.$select ? [...args.$select] : [],\n selectV2: [],\n excludeRid: !args?.$includeRid,\n snapshot: useSnapshot,\n },\n client,\n interfaceType,\n );\n\n if (client.flushEdits != null) {\n await client.flushEdits();\n }\n\n const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(\n addUserAgentAndRequestContextHeaders(client, interfaceType),\n await client.ontologyRid,\n requestBody,\n {\n preview: true,\n branch: client.branch,\n transactionId: client.transactionId,\n },\n );\n\n return Promise.resolve({\n data: await client.objectFactory2(\n client,\n result.data,\n extractedInterfaceTypeApiName,\n {},\n !args.$includeRid,\n args.$select,\n false,\n result.interfaceToObjectTypeMappings,\n result.interfaceToObjectTypeMappingsV2,\n ),\n nextPageToken: result.nextPageToken,\n totalCount: result.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T>>;\n}\n\n/** @internal */\nexport async function fetchPageInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<L>,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T, never, ORDER_BY_OPTIONS> = {},\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T, ORDER_BY_OPTIONS>> {\n if (objectType.type === \"interface\") {\n return await fetchInterfacePage(\n client,\n objectType,\n args as FetchPageArgs<\n InterfaceDefinition,\n L,\n R,\n A,\n S,\n T,\n never,\n ORDER_BY_OPTIONS\n >,\n objectSet,\n useSnapshot,\n ) as any; // fixme\n } else {\n return await fetchObjectPage(\n client,\n objectType,\n args as FetchPageArgs<\n ObjectTypeDefinition,\n L,\n R,\n A,\n S,\n T,\n never,\n ORDER_BY_OPTIONS\n >,\n objectSet,\n useSnapshot,\n ) as any; // fixme\n }\n}\n\n/** @internal */\nexport async function fetchPageWithErrorsInternal<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n objectSet: ObjectSet,\n args: FetchPageArgs<Q, L, R, A, S, T> = {},\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n try {\n const result = await fetchPageInternal(client, objectType, objectSet, args);\n return { value: result };\n } catch (e) {\n if (e instanceof Error) {\n return { error: e };\n }\n return { error: e as Error };\n }\n}\n\n/**\n * @param client\n * @param objectType\n * @param args\n * @param objectSet\n * @returns\n * @internal\n */\nexport async function fetchPage<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<FetchPageResult<Q, L, R, S, T>> {\n return fetchPageInternal(client, objectType, objectSet, args);\n}\n\n/** @internal */\nexport async function fetchPageWithErrors<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, any, S, T>,\n objectSet: ObjectSet = resolveBaseObjectSetType(objectType),\n): Promise<Result<FetchPageResult<Q, L, R, S, T>>> {\n return fetchPageWithErrorsInternal(client, objectType, objectSet, args);\n}\n\n/** @internal */\nasync function buildAndRemapRequestBody<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n RequestBody extends {\n orderBy?: SearchOrderByV2;\n pageToken?: PageToken;\n pageSize?: PageSize;\n select?: readonly string[];\n selectedSharedPropertyTypes?: readonly string[];\n },\n>(\n args: FetchPageArgs<Q, L, R, A, S, T>,\n baseBody: RequestBody,\n client: MinimalClient,\n objectType: Q,\n): Promise<RequestBody> {\n const requestBody = await applyFetchArgs(\n args,\n baseBody,\n client,\n objectType,\n );\n\n if (requestBody.select != null && requestBody.select.length > 0) {\n const remapped = remapPropertyNames(\n objectType,\n requestBody.select,\n );\n return { ...requestBody, select: remapped };\n }\n\n return requestBody;\n}\n\n/** @internal */\nexport function remapPropertyNames(\n objectOrInterface: ObjectOrInterfaceDefinition | undefined,\n propertyNames: readonly string[],\n): readonly string[] {\n if (objectOrInterface == null) {\n return propertyNames;\n }\n\n if (objectOrInterface.type === \"interface\") {\n const [objApiNamespace] = extractNamespace(objectOrInterface.apiName);\n return propertyNames.map(name => {\n const [fieldApiNamespace, fieldShortName] = extractNamespace(name);\n return (fieldApiNamespace == null && objApiNamespace != null)\n ? `${objApiNamespace}.${fieldShortName}`\n : name;\n });\n }\n\n return propertyNames;\n}\n\nasync function applyFetchArgs<\n Q extends ObjectOrInterfaceDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n A extends Augments,\n S extends NullabilityAdherence,\n T extends boolean,\n X extends {\n orderBy?: SearchOrderByV2;\n pageToken?: PageToken;\n pageSize?: PageSize;\n },\n>(\n args: FetchPageArgs<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n ObjectSetArgs.OrderByOptions<any>\n >,\n body: X,\n _client: MinimalClient,\n objectType: Q,\n): Promise<X> {\n if (args?.$nextPageToken) {\n body.pageToken = args.$nextPageToken;\n }\n\n if (args?.$pageSize != null) {\n body.pageSize = args.$pageSize;\n }\n\n const orderBy = args?.$orderBy;\n if (orderBy) {\n if (orderBy === \"relevance\") {\n body.orderBy = { orderType: \"relevance\", fields: [] };\n } else {\n const orderByEntries = Object.entries(orderBy);\n const fieldNames = orderByEntries.map(([field]) => field);\n const remappedFields = remapPropertyNames(\n objectType,\n fieldNames,\n );\n\n body.orderBy = {\n fields: orderByEntries.map(([, direction], index) => ({\n field: remappedFields[index],\n direction,\n })),\n };\n }\n }\n\n return body;\n}\n\n/** @internal */\nexport async function fetchObjectPage<\n Q extends ObjectTypeDefinition,\n L extends PropertyKeys<Q>,\n R extends boolean,\n S extends NullabilityAdherence,\n T extends boolean,\n ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<L>,\n>(\n client: MinimalClient,\n objectType: Q,\n args: FetchPageArgs<Q, L, R, Augments, S, T, never, ORDER_BY_OPTIONS>,\n objectSet: ObjectSet,\n useSnapshot: boolean = false,\n): Promise<FetchPageResult<Q, L, R, S, T, ORDER_BY_OPTIONS>> {\n // For simple object fetches, since we know the object type up front\n // we can parallelize network requests for loading metadata and loading the actual objects\n // In our object factory we await and block on loading the metadata, which if this call finishes, should already be cached on the client\n // We have an empty catch here so that if this call errors before we await later, we won't have an unhandled promise rejection that would crash the process\n // Swallowing the error is ok because we await the metadata load in the objectFactory later anyways which eventually bubbles up the error to the user\n void client.ontologyProvider.getObjectDefinition(objectType.apiName).catch(\n () => {},\n );\n\n const requestBody = await buildAndRemapRequestBody(\n args,\n {\n objectSet,\n select: args?.$select ? [...args.$select] : [],\n selectV2: [],\n excludeRid: !args?.$includeRid,\n snapshot: useSnapshot,\n },\n client,\n objectType,\n );\n\n if (client.flushEdits != null) {\n await client.flushEdits();\n }\n\n const r = await OntologiesV2.OntologyObjectSets.load(\n addUserAgentAndRequestContextHeaders(client, objectType),\n await client.ontologyRid,\n requestBody,\n { branch: client.branch, transactionId: client.transactionId },\n );\n\n return Promise.resolve({\n data: await client.objectFactory(\n client,\n r.data as OntologyObjectV2[],\n undefined,\n undefined,\n await extractRdpDefinition(client, objectSet),\n args.$select,\n false,\n ),\n nextPageToken: r.nextPageToken,\n totalCount: r.totalCount,\n }) as unknown as Promise<FetchPageResult<Q, L, R, S, T, ORDER_BY_OPTIONS>>;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -26,7 +26,7 @@ import { TestLogger } from "../../logger/TestLogger.js";
26
26
  import { runOptimisticJob } from "./actions/OptimisticJob.js";
27
27
  import { createOptimisticId } from "./OptimisticId.js";
28
28
  import { Store } from "./Store.js";
29
- import { applyCustomMatchers, createClientMockHelper, createDefer, expectNoMoreCalls, expectSingleLinkCallAndClear, expectSingleListCallAndClear, expectSingleObjectCallAndClear, getObject, mockListSubCallback, mockSingleSubCallback, objectPayloadContaining, updateList, updateObject, waitForCall } from "./testUtils.js";
29
+ import { applyCustomMatchers, createClientMockHelper, createDefer, expectNoMoreCalls, expectSingleLinkCallAndClear, expectSingleListCallAndClear, expectSingleObjectCallAndClear, getObject, mockListSubCallback, mockObserver, mockSingleSubCallback, objectPayloadContaining, updateList, updateObject, waitForCall } from "./testUtils.js";
30
30
  import { invalidateList } from "./testUtils/invalidateList.js";
31
31
  import { expectStandardObserveLink } from "./testUtils/observeLink/expectStandardObserveLink.js";
32
32
  import { expectStandardObserveObject } from "./testUtils/observeObject/expectStandardObserveObject.js";
@@ -1408,6 +1408,54 @@ describe(Store, () => {
1408
1408
  });
1409
1409
  });
1410
1410
  });
1411
+ it("works with pivotTo and orderBy on objectSets", async () => {
1412
+ fauxFoundry.getDefaultDataStore().clear();
1413
+ const officeA = fauxFoundry.getDefaultDataStore().registerObject(Office, {
1414
+ $apiName: "Office",
1415
+ officeId: "office-a",
1416
+ name: "Zebra Office"
1417
+ });
1418
+ const officeB = fauxFoundry.getDefaultDataStore().registerObject(Office, {
1419
+ $apiName: "Office",
1420
+ officeId: "office-b",
1421
+ name: "Alpha Office"
1422
+ });
1423
+ const emp1 = fauxFoundry.getDefaultDataStore().registerObject(Employee, {
1424
+ $apiName: "Employee",
1425
+ employeeId: 1,
1426
+ fullName: "Test Employee"
1427
+ });
1428
+ const emp2 = fauxFoundry.getDefaultDataStore().registerObject(Employee, {
1429
+ $apiName: "Employee",
1430
+ employeeId: 2,
1431
+ fullName: "Test Employee 2"
1432
+ });
1433
+ fauxFoundry.getDefaultDataStore().registerLink(emp1, "officeLink", officeA, "occupants");
1434
+ fauxFoundry.getDefaultDataStore().registerLink(emp2, "officeLink", officeB, "occupants");
1435
+ const sub = mockObserver();
1436
+ defer(store.objectSets.observe({
1437
+ baseObjectSet: client(Employee).pivotTo("officeLink"),
1438
+ orderBy: {
1439
+ name: "asc"
1440
+ }
1441
+ }, sub));
1442
+ await vi.waitFor(() => {
1443
+ expect(sub.next).toHaveBeenLastCalledWith(expect.objectContaining({
1444
+ status: "loaded"
1445
+ }));
1446
+ }, {
1447
+ timeout: 5000
1448
+ });
1449
+ expect(sub.next).toHaveBeenLastCalledWith(expect.objectContaining({
1450
+ status: "loaded",
1451
+ resolvedList: [expect.objectContaining({
1452
+ name: "Alpha Office"
1453
+ }), expect.objectContaining({
1454
+ name: "Zebra Office"
1455
+ })]
1456
+ }));
1457
+ expect(sub.error).not.toHaveBeenCalled();
1458
+ });
1411
1459
  });
1412
1460
  describe("layers", () => {
1413
1461
  it("properly remove", () => {