@osdk/client 2.23.0 → 2.23.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/build/browser/Client.js +1 -1
- package/build/browser/Client.js.map +1 -1
- package/build/browser/MinimalClientContext.js.map +1 -1
- package/build/browser/actions/applyAction.js +3 -1
- package/build/browser/actions/applyAction.js.map +1 -1
- package/build/browser/createClient.js +7 -3
- package/build/browser/createClient.js.map +1 -1
- package/build/browser/createMinimalClient.js +10 -0
- package/build/browser/createMinimalClient.js.map +1 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +3 -0
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js +30 -10
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
- package/build/browser/object/aggregate.js +2 -1
- package/build/browser/object/aggregate.js.map +1 -1
- package/build/browser/object/fetchPage.js +6 -3
- package/build/browser/object/fetchPage.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js +3 -0
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/public/unstable-do-not-use.js +2 -0
- package/build/browser/public/unstable-do-not-use.js.map +1 -1
- package/build/browser/queries/applyQuery.js +1 -0
- package/build/browser/queries/applyQuery.js.map +1 -1
- package/build/browser/scenarios/ScenarioClient.js +202 -0
- package/build/browser/scenarios/ScenarioClient.js.map +1 -0
- package/build/browser/scenarios/createScenario.js +55 -0
- package/build/browser/scenarios/createScenario.js.map +1 -0
- package/build/browser/scenarios/withScenario.js +42 -0
- package/build/browser/scenarios/withScenario.js.map +1 -0
- package/build/browser/util/UserAgent.js +2 -2
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/browser/util/toDataValue.js +4 -0
- package/build/browser/util/toDataValue.js.map +1 -1
- package/build/cjs/MediaReferenceProperty-CBPMMD73.cjs +22 -0
- package/build/cjs/{MediaReferenceProperty-Y6R5ASNW.cjs.map → MediaReferenceProperty-CBPMMD73.cjs.map} +1 -1
- package/build/cjs/{applyStreamingQuery-F77N7EOP.cjs → applyStreamingQuery-G2PA2SM7.cjs} +11 -11
- package/build/cjs/{applyStreamingQuery-F77N7EOP.cjs.map → applyStreamingQuery-G2PA2SM7.cjs.map} +1 -1
- package/build/cjs/{chunk-KILPUOJP.cjs → chunk-BV6P25ZM.cjs} +51 -21
- package/build/cjs/chunk-BV6P25ZM.cjs.map +1 -0
- package/build/cjs/{chunk-3DMI6Z4B.cjs → chunk-IWAZIBOK.cjs} +75 -75
- package/build/cjs/{chunk-3DMI6Z4B.cjs.map → chunk-IWAZIBOK.cjs.map} +1 -1
- package/build/cjs/{chunk-MURBAIS4.cjs → chunk-NFD4IH4H.cjs} +17 -16
- package/build/cjs/chunk-NFD4IH4H.cjs.map +1 -0
- package/build/cjs/{chunk-5WD6SB7R.cjs → chunk-WBINM4RT.cjs} +297 -100
- package/build/cjs/chunk-WBINM4RT.cjs.map +1 -0
- package/build/cjs/{chunk-DOXHU27E.cjs → chunk-YP43NHIA.cjs} +3 -3
- package/build/cjs/{chunk-DOXHU27E.cjs.map → chunk-YP43NHIA.cjs.map} +1 -1
- package/build/cjs/{chunk-ZPLXXOU6.cjs → chunk-ZFNHWPQA.cjs} +3 -3
- package/build/cjs/{chunk-ZPLXXOU6.cjs.map → chunk-ZFNHWPQA.cjs.map} +1 -1
- package/build/cjs/index.cjs +13 -13
- package/build/cjs/public/experimental.cjs +8 -8
- package/build/cjs/public/internal.cjs +8 -8
- package/build/cjs/public/observable.cjs +7 -7
- package/build/cjs/public/unstable-do-not-use.cjs +37 -12
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
- package/build/cjs/public/unstable-do-not-use.d.cts +167 -4
- package/build/cjs/{transformAndWaitInternal-F3UV33FN.cjs → transformAndWaitInternal-2GORZXPK.cjs} +6 -6
- package/build/cjs/{transformAndWaitInternal-F3UV33FN.cjs.map → transformAndWaitInternal-2GORZXPK.cjs.map} +1 -1
- package/build/esm/Client.js +1 -1
- package/build/esm/Client.js.map +1 -1
- package/build/esm/MinimalClientContext.js.map +1 -1
- package/build/esm/actions/applyAction.js +3 -1
- package/build/esm/actions/applyAction.js.map +1 -1
- package/build/esm/createClient.js +7 -3
- package/build/esm/createClient.js.map +1 -1
- package/build/esm/createMinimalClient.js +10 -0
- package/build/esm/createMinimalClient.js.map +1 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +3 -0
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js +30 -10
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
- package/build/esm/object/aggregate.js +2 -1
- package/build/esm/object/aggregate.js.map +1 -1
- package/build/esm/object/fetchPage.js +6 -3
- package/build/esm/object/fetchPage.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js +3 -0
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/public/unstable-do-not-use.js +2 -0
- package/build/esm/public/unstable-do-not-use.js.map +1 -1
- package/build/esm/queries/applyQuery.js +1 -0
- package/build/esm/queries/applyQuery.js.map +1 -1
- package/build/esm/scenarios/ScenarioClient.js +202 -0
- package/build/esm/scenarios/ScenarioClient.js.map +1 -0
- package/build/esm/scenarios/createScenario.js +55 -0
- package/build/esm/scenarios/createScenario.js.map +1 -0
- package/build/esm/scenarios/withScenario.js +42 -0
- package/build/esm/scenarios/withScenario.js.map +1 -0
- package/build/esm/util/UserAgent.js +2 -2
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/esm/util/toDataValue.js +4 -0
- package/build/esm/util/toDataValue.js.map +1 -1
- package/build/types/Client.d.ts +1 -1
- package/build/types/MinimalClientContext.d.ts +1 -0
- package/build/types/MinimalClientContext.d.ts.map +1 -1
- package/build/types/actions/applyAction.d.ts.map +1 -1
- package/build/types/createClient.d.ts.map +1 -1
- package/build/types/public/unstable-do-not-use.d.ts +3 -0
- package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
- package/build/types/queries/applyQuery.d.ts.map +1 -1
- package/build/types/scenarios/ScenarioClient.d.ts +131 -0
- package/build/types/scenarios/ScenarioClient.d.ts.map +1 -0
- package/build/types/scenarios/createScenario.d.ts +21 -0
- package/build/types/scenarios/createScenario.d.ts.map +1 -0
- package/build/types/scenarios/withScenario.d.ts +23 -0
- package/build/types/scenarios/withScenario.d.ts.map +1 -0
- package/package.json +14 -14
- package/build/cjs/MediaReferenceProperty-Y6R5ASNW.cjs +0 -22
- package/build/cjs/chunk-5WD6SB7R.cjs.map +0 -1
- package/build/cjs/chunk-KILPUOJP.cjs.map +0 -1
- package/build/cjs/chunk-MURBAIS4.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# @osdk/client
|
|
2
2
|
|
|
3
|
+
## 2.23.1-beta.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- a492285: Add $title and $primaryKey special property filters to where clauses
|
|
8
|
+
- 60aff19: Bump `@osdk/foundry.*` and `@osdk/internal.foundry.*` catalog entries from `2.57.0` to `2.61.0`. Includes type-fixups for the new `applyScenario` / `scenarioReference` discriminated-union variants and the now-required `QueryParameterV2.required` field.
|
|
9
|
+
- 04a3588: Add `withScenario(client, scenarioRid)` and `createScenario(client)` helpers in `@osdk/client/unstable-do-not-use` for attaching to or minting an ontology scenario, and plumb `scenarioRid` through the client to `applyAction`, `fetchPage`, `aggregate`, and `applyQuery`. Beta — surface may change.
|
|
10
|
+
- cdc73e0: Add end-to-end support for `scenarioReference` action parameters:
|
|
11
|
+
- `@osdk/api` adds `"scenarioReference"` to `ActionMetadata.DataType.BaseActionParameterTypes` and a matching `scenarioReference: ScenarioClient` entry in `DataValueClientToWire` (structurally typed as `{ getScenarioReference(): { scenarioRid } }` to avoid a circular dep on `@osdk/client`).
|
|
12
|
+
- `@osdk/generator-converters` maps the wire `scenarioReference` variant into the primitive type.
|
|
13
|
+
- Generated SDKs now emit `ActionParam.PrimitiveType<"scenarioReference">` (resolves to `ScenarioClient`) for scenarioReference parameters, instead of throwing at SDK build time.
|
|
14
|
+
- `@osdk/client`'s `toDataValue` accepts a `ScenarioClient` and serializes it to the rid string the platform expects.
|
|
15
|
+
- `@osdk/react-components`'s ActionForm renders scenarioReference parameters as `UNSUPPORTED` for now.
|
|
16
|
+
|
|
17
|
+
Enables `client(ScenarioMerge).applyAction({ scenario })` end-to-end in generated SDKs.
|
|
18
|
+
|
|
19
|
+
- 798ad89: Add `getEditedEntityTypes`, `getEditedEntities` (paginated), and `editedEntitiesAsyncIter` (auto-paginating, deduped) methods to `ScenarioClient`. Lets consumers discover which object types and primary keys have been edited within a scenario for diff and merge workflows. Beta — surface may change.
|
|
20
|
+
- d36591a: Add `getEditedLinkTypes`, `getEditedLinks` (paginated, flattened to directed link triples), and `editedLinksAsyncIter` (auto-paginating, deduped by source/target pk) methods to `ScenarioClient`. Mirrors the existing `experimental_asyncIterLinks` shape on ObjectSet. Many-to-many only — one-to-many edits surface via `getEditedEntities` on the FK-owning object type. Beta — surface may change.
|
|
21
|
+
- 6923158: Fix empty filter case
|
|
22
|
+
- Updated dependencies [a492285]
|
|
23
|
+
- Updated dependencies [60aff19]
|
|
24
|
+
- Updated dependencies [cdc73e0]
|
|
25
|
+
- @osdk/api@2.23.1-beta.2
|
|
26
|
+
- @osdk/generator-converters@2.23.1-beta.2
|
|
27
|
+
- @osdk/shared.test@2.18.1-beta.0
|
|
28
|
+
- @osdk/client.unstable@2.23.1-beta.2
|
|
29
|
+
|
|
3
30
|
## 2.23.0
|
|
4
31
|
|
|
5
32
|
### Minor Changes
|
package/build/browser/Client.js
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
export const additionalContext = Symbol("additionalContext");
|
|
22
22
|
|
|
23
23
|
// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.
|
|
24
|
-
const MaxOsdkVersion = "2.23.
|
|
24
|
+
const MaxOsdkVersion = "2.23.1";
|
|
25
25
|
// END: THIS IS GENERATED CODE. DO NOT EDIT.
|
|
26
26
|
|
|
27
27
|
const ErrorMessage = Symbol("ErrorMessage");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","names":["additionalContext","Symbol","MaxOsdkVersion","ErrorMessage"],"sources":["Client.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionDefinition,\n ActionMetadata,\n CompileTimeMetadata,\n InterfaceDefinition,\n InterfaceMetadata,\n ObjectMetadata,\n ObjectSet,\n ObjectTypeDefinition,\n QueryDefinition,\n QueryMetadata,\n VersionBound,\n} from \"@osdk/api\";\nimport type {\n Experiment,\n ExperimentFns,\n MinimalObjectSet,\n} from \"@osdk/api/unstable\";\nimport type { SharedClient } from \"@osdk/shared.client2\";\nimport type { ActionSignatureFromDef } from \"./actions/applyAction.js\";\nimport type { MinimalClient } from \"./MinimalClientContext.js\";\nimport type { QuerySignatureFromDef } from \"./queries/types.js\";\nimport type { SatisfiesSemver } from \"./SatisfiesSemver.js\";\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\ntype OldSharedClient = import(\"@osdk/shared.client\").SharedClient;\n\nexport type CheckVersionBound<Q> = Q extends VersionBound<infer V> ? (\n SatisfiesSemver<V, MaxOsdkVersion> extends true ? Q\n : Q & {\n [ErrorMessage]:\n `Your SDK requires a semver compatible version with ${V}. You have ${MaxOsdkVersion}. Update your package.json`;\n }\n )\n : Q;\n\nexport interface Client extends SharedClient, OldSharedClient {\n /**\n * Returns the operation surface for the given ontology definition. The shape of the\n * returned value is dispatched on what kind of definition is passed:\n * - object type → the object set type for that ontology object (typically a generated extension of {@link ObjectSet})\n * - interface → a {@link MinimalObjectSet} for the interface\n * - action → a callable with `applyAction` / `batchApplyAction`\n * - query → a callable with `executeFunction`\n * - experiment → the unstable feature surface for that experiment\n *\n * @param o - The object type definition to wrap.\n * @example\n * ```ts\n * const employees = await client(Employee).fetchPage({ $pageSize: 30 });\n * const employee = await client(Employee).fetchOne(12345);\n * ```\n * @returns an object set scoped to all objects of this type.\n */\n <Q extends ObjectTypeDefinition>(\n o: Q,\n ): unknown extends CompileTimeMetadata<Q>[\"objectSet\"] ? ObjectSet<Q>\n : CompileTimeMetadata<Q>[\"objectSet\"];\n\n /**\n * @param o - The interface definition to wrap.\n * @example\n * ```ts\n * const page = await client(MyInterface).fetchPage({ $pageSize: 30 });\n * ```\n * @returns a minimal object set over all objects implementing the interface.\n */\n <Q extends (InterfaceDefinition)>(\n o: Q,\n ): unknown extends CompileTimeMetadata<Q>[\"objectSet\"] ? MinimalObjectSet<Q>\n : CompileTimeMetadata<Q>[\"objectSet\"];\n\n /**\n * @param o - The action definition to invoke.\n * @example\n * ```ts\n * const result = await client(createEmployee).applyAction(\n * { name: \"Jane\", department: \"Engineering\" },\n * { $returnEdits: true },\n * );\n * ```\n * @returns a callable for applying (or batch-applying) the action.\n */\n <Q extends ActionDefinition<any>>(\n o: Q,\n ): ActionSignatureFromDef<Q>;\n\n /**\n * @param o - The query definition to invoke.\n * @example\n * ```ts\n * const result = await client(getEmployeeCount).executeFunction({ department: \"Engineering\" });\n * ```\n * @returns a callable for executing the query function.\n */\n <Q extends QueryDefinition<any>>(\n o: Q,\n ): QuerySignatureFromDef<Q>;\n\n /**\n * @param experiment - The experiment marker that gates an unstable feature.\n * @example\n * ```ts\n * const ref = await client(__EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference)\n * .createMediaReference({ data: blob, fileName: \"media.mp4\", objectType: Employee, propertyType: \"photo\" });\n * ```\n * @returns the experiment-specific function surface.\n */\n <\n Q extends\n | Experiment<\"2.0.8\">\n | Experiment<\"2.1.0\">\n | Experiment<\"2.2.0\">\n | Experiment<\"2.8.0\">\n | Experiment<\"2.19.0\">,\n >(\n experiment: Q,\n ): ExperimentFns<Q>;\n\n /**\n * Fetches runtime metadata for the given ontology definition. The returned shape\n * is dispatched on the kind of definition passed: {@link ObjectMetadata},\n * {@link InterfaceMetadata}, {@link ActionMetadata}, or {@link QueryMetadata}.\n * @param o - The object type, interface, action, or query definition to look up.\n * @example\n * ```ts\n * const meta = await client.fetchMetadata(Employee);\n * console.log(meta.displayName, meta.description);\n * ```\n * @returns a promise resolving to the metadata for the given definition.\n */\n fetchMetadata<\n Q extends (\n | ObjectTypeDefinition\n | InterfaceDefinition\n | ActionDefinition<any>\n | QueryDefinition<any>\n ),\n >(o: Q): Promise<\n Q extends ObjectTypeDefinition ? ObjectMetadata\n : Q extends InterfaceDefinition ? InterfaceMetadata\n : Q extends ActionDefinition<any> ? ActionMetadata\n : Q extends QueryDefinition<any> ? QueryMetadata\n : never\n >;\n\n /** @internal */\n [additionalContext]: MinimalClient;\n}\n\n// DO NOT EXPORT FROM PACKAGE\n/** @internal */\nexport const additionalContext: unique symbol = Symbol(\"additionalContext\");\n\n// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.\nconst MaxOsdkVersion = \"2.23.
|
|
1
|
+
{"version":3,"file":"Client.js","names":["additionalContext","Symbol","MaxOsdkVersion","ErrorMessage"],"sources":["Client.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionDefinition,\n ActionMetadata,\n CompileTimeMetadata,\n InterfaceDefinition,\n InterfaceMetadata,\n ObjectMetadata,\n ObjectSet,\n ObjectTypeDefinition,\n QueryDefinition,\n QueryMetadata,\n VersionBound,\n} from \"@osdk/api\";\nimport type {\n Experiment,\n ExperimentFns,\n MinimalObjectSet,\n} from \"@osdk/api/unstable\";\nimport type { SharedClient } from \"@osdk/shared.client2\";\nimport type { ActionSignatureFromDef } from \"./actions/applyAction.js\";\nimport type { MinimalClient } from \"./MinimalClientContext.js\";\nimport type { QuerySignatureFromDef } from \"./queries/types.js\";\nimport type { SatisfiesSemver } from \"./SatisfiesSemver.js\";\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\ntype OldSharedClient = import(\"@osdk/shared.client\").SharedClient;\n\nexport type CheckVersionBound<Q> = Q extends VersionBound<infer V> ? (\n SatisfiesSemver<V, MaxOsdkVersion> extends true ? Q\n : Q & {\n [ErrorMessage]:\n `Your SDK requires a semver compatible version with ${V}. You have ${MaxOsdkVersion}. Update your package.json`;\n }\n )\n : Q;\n\nexport interface Client extends SharedClient, OldSharedClient {\n /**\n * Returns the operation surface for the given ontology definition. The shape of the\n * returned value is dispatched on what kind of definition is passed:\n * - object type → the object set type for that ontology object (typically a generated extension of {@link ObjectSet})\n * - interface → a {@link MinimalObjectSet} for the interface\n * - action → a callable with `applyAction` / `batchApplyAction`\n * - query → a callable with `executeFunction`\n * - experiment → the unstable feature surface for that experiment\n *\n * @param o - The object type definition to wrap.\n * @example\n * ```ts\n * const employees = await client(Employee).fetchPage({ $pageSize: 30 });\n * const employee = await client(Employee).fetchOne(12345);\n * ```\n * @returns an object set scoped to all objects of this type.\n */\n <Q extends ObjectTypeDefinition>(\n o: Q,\n ): unknown extends CompileTimeMetadata<Q>[\"objectSet\"] ? ObjectSet<Q>\n : CompileTimeMetadata<Q>[\"objectSet\"];\n\n /**\n * @param o - The interface definition to wrap.\n * @example\n * ```ts\n * const page = await client(MyInterface).fetchPage({ $pageSize: 30 });\n * ```\n * @returns a minimal object set over all objects implementing the interface.\n */\n <Q extends (InterfaceDefinition)>(\n o: Q,\n ): unknown extends CompileTimeMetadata<Q>[\"objectSet\"] ? MinimalObjectSet<Q>\n : CompileTimeMetadata<Q>[\"objectSet\"];\n\n /**\n * @param o - The action definition to invoke.\n * @example\n * ```ts\n * const result = await client(createEmployee).applyAction(\n * { name: \"Jane\", department: \"Engineering\" },\n * { $returnEdits: true },\n * );\n * ```\n * @returns a callable for applying (or batch-applying) the action.\n */\n <Q extends ActionDefinition<any>>(\n o: Q,\n ): ActionSignatureFromDef<Q>;\n\n /**\n * @param o - The query definition to invoke.\n * @example\n * ```ts\n * const result = await client(getEmployeeCount).executeFunction({ department: \"Engineering\" });\n * ```\n * @returns a callable for executing the query function.\n */\n <Q extends QueryDefinition<any>>(\n o: Q,\n ): QuerySignatureFromDef<Q>;\n\n /**\n * @param experiment - The experiment marker that gates an unstable feature.\n * @example\n * ```ts\n * const ref = await client(__EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference)\n * .createMediaReference({ data: blob, fileName: \"media.mp4\", objectType: Employee, propertyType: \"photo\" });\n * ```\n * @returns the experiment-specific function surface.\n */\n <\n Q extends\n | Experiment<\"2.0.8\">\n | Experiment<\"2.1.0\">\n | Experiment<\"2.2.0\">\n | Experiment<\"2.8.0\">\n | Experiment<\"2.19.0\">,\n >(\n experiment: Q,\n ): ExperimentFns<Q>;\n\n /**\n * Fetches runtime metadata for the given ontology definition. The returned shape\n * is dispatched on the kind of definition passed: {@link ObjectMetadata},\n * {@link InterfaceMetadata}, {@link ActionMetadata}, or {@link QueryMetadata}.\n * @param o - The object type, interface, action, or query definition to look up.\n * @example\n * ```ts\n * const meta = await client.fetchMetadata(Employee);\n * console.log(meta.displayName, meta.description);\n * ```\n * @returns a promise resolving to the metadata for the given definition.\n */\n fetchMetadata<\n Q extends (\n | ObjectTypeDefinition\n | InterfaceDefinition\n | ActionDefinition<any>\n | QueryDefinition<any>\n ),\n >(o: Q): Promise<\n Q extends ObjectTypeDefinition ? ObjectMetadata\n : Q extends InterfaceDefinition ? InterfaceMetadata\n : Q extends ActionDefinition<any> ? ActionMetadata\n : Q extends QueryDefinition<any> ? QueryMetadata\n : never\n >;\n\n /** @internal */\n [additionalContext]: MinimalClient;\n}\n\n// DO NOT EXPORT FROM PACKAGE\n/** @internal */\nexport const additionalContext: unique symbol = Symbol(\"additionalContext\");\n\n// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.\nconst MaxOsdkVersion = \"2.23.1\";\n// END: THIS IS GENERATED CODE. DO NOT EDIT.\nexport type MaxOsdkVersion = typeof MaxOsdkVersion;\nconst ErrorMessage: unique symbol = Symbol(\"ErrorMessage\");\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA0BA;;AA8HA;AACA;AACA,OAAO,MAAMA,iBAAgC,GAAGC,MAAM,CAAC,mBAAmB,CAAC;;AAE3E;AACA,MAAMC,cAAc,GAAG,QAAQ;AAC/B;;AAEA,MAAMC,YAA2B,GAAGF,MAAM,CAAC,cAAc,CAAC","ignoreList":[]}
|
|
@@ -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 { convertWireToOsdkObjects } 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\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":[]}
|
|
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 { convertWireToOsdkObjects } 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\n transactionId?: string;\n flushEdits?: () => Promise<void>;\n scenarioRid?: string;\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":[]}
|
|
@@ -26,6 +26,7 @@ export async function applyAction(client, action, parameters, options = {}) {
|
|
|
26
26
|
})), action);
|
|
27
27
|
if (Array.isArray(parameters)) {
|
|
28
28
|
!(client.transactionId == null) ? process.env.NODE_ENV !== "production" ? invariant(false, "Batch actions are not supported for staged edit functions or when supplying a transaction ID") : invariant(false) : void 0;
|
|
29
|
+
!(client.scenarioRid == null) ? process.env.NODE_ENV !== "production" ? invariant(false, "Batch actions are not supported when scoped to a scenario") : invariant(false) : void 0;
|
|
29
30
|
const response = await Actions.applyBatch(clientWithHeaders, await client.ontologyRid, action.unsanitizedApiName ?? action.apiName, {
|
|
30
31
|
requests: parameters ? await remapBatchActionParams(parameters, client, await client.ontologyProvider.getActionDefinition(action.unsanitizedApiName ?? action.apiName)) : [],
|
|
31
32
|
options: {
|
|
@@ -45,7 +46,8 @@ export async function applyAction(client, action, parameters, options = {}) {
|
|
|
45
46
|
}
|
|
46
47
|
}, {
|
|
47
48
|
branch: client.branch,
|
|
48
|
-
transactionId: client.transactionId
|
|
49
|
+
transactionId: client.transactionId,
|
|
50
|
+
scenarioRid: client.scenarioRid
|
|
49
51
|
});
|
|
50
52
|
if (options?.$validateOnly) {
|
|
51
53
|
return response.validation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyAction.js","names":["Actions","invariant","addUserAgentAndRequestContextHeaders","augmentRequestContext","toDataValue","ActionValidationError","applyAction","client","action","parameters","options","clientWithHeaders","finalMethodCall","Array","isArray","transactionId","process","env","NODE_ENV","response","applyBatch","ontologyRid","unsanitizedApiName","apiName","requests","remapBatchActionParams","ontologyProvider","getActionDefinition","returnEdits","$returnEdits","branch","edits","type","remapActionResponse","undefined","apply","remapActionParams","mode","$validateOnly","validation","result","params","actionMetadata","parameterMap","key","value","Object","entries","remappedParams","Promise","all","map","param","editResponses","remappedActionResponse","deletedLinksCount","deletedObjectsCount","addedLinks","deletedLinks","addedObjects","deletedObjects","modifiedObjects","editedObjectTypes","editedObjectTypesSet","Set","edit","osdkEdit","linkTypeApiNameAtoB","linkTypeApiNameBtoA","aSideObject","bSideObject","push","add","objectType","primaryKey","console","warn","JSON","stringify"],"sources":["applyAction.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionDefinition,\n ActionEditResponse,\n ActionMetadata,\n ActionParam,\n ActionReturnTypeForOptions,\n ApplyActionOptions,\n ApplyBatchActionOptions,\n CompileTimeMetadata as CompileTimeActionMetadata,\n DataValueClientToWire,\n} from \"@osdk/api\";\nimport type {\n BatchApplyActionResponseV2,\n DataValue,\n SyncApplyActionResponseV2,\n} from \"@osdk/foundry.ontologies\";\nimport * as Actions from \"@osdk/foundry.ontologies/Action\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport type { NOOP } from \"../util/NOOP.js\";\nimport type { NullableProps } from \"../util/NullableProps.js\";\nimport type { PartialBy } from \"../util/partialBy.js\";\nimport { toDataValue } from \"../util/toDataValue.js\";\nimport { ActionValidationError } from \"./ActionValidationError.js\";\n\ntype BaseType<APD extends Pick<ActionMetadata.Parameter<any>, \"type\">> =\n APD[\"type\"] extends ActionMetadata.DataType.Object<infer TTargetType>\n ? ActionParam.ObjectType<TTargetType>\n : APD[\"type\"] extends ActionMetadata.DataType.ObjectSet<infer TTargetType>\n ? ActionParam.ObjectSetType<TTargetType>\n : APD[\"type\"] extends ActionMetadata.DataType.Struct<infer TStructType>\n ? ActionParam.StructType<TStructType>\n : APD[\"type\"] extends keyof DataValueClientToWire\n ? ActionParam.PrimitiveType<APD[\"type\"]>\n : never;\n\ntype MaybeArrayType<APD extends ActionMetadata.Parameter<any>> =\n APD[\"multiplicity\"] extends true ? Array<BaseType<APD>>\n : BaseType<APD>;\n\ntype NotOptionalParams<X extends ActionParametersDefinition> = {\n [P in keyof X]: MaybeArrayType<X[P]>;\n};\n\nexport type OsdkActionParameters<\n X extends ActionParametersDefinition,\n> = NullableProps<X> extends never ? NotOptionalParams<X>\n : PartialBy<NotOptionalParams<X>, NullableProps<X>>;\n\nexport type ActionSignatureFromDef<\n T extends ActionDefinition<any>,\n> = {\n applyAction:\n [CompileTimeActionMetadata<T>[\"signatures\"][\"applyAction\"]] extends [never]\n ? ActionSignature<CompileTimeActionMetadata<T>[\"parameters\"]>\n : CompileTimeActionMetadata<T>[\"signatures\"][\"applyAction\"];\n\n batchApplyAction:\n [CompileTimeActionMetadata<T>[\"signatures\"][\"batchApplyAction\"]] extends\n [never] ? BatchActionSignature<CompileTimeActionMetadata<T>[\"parameters\"]>\n : CompileTimeActionMetadata<T>[\"signatures\"][\"batchApplyAction\"];\n};\n\ntype ActionParametersDefinition = Record<\n any,\n ActionMetadata.Parameter<any>\n>;\n\nexport type ActionSignature<\n X extends Record<any, ActionMetadata.Parameter<any>>,\n> = <\n A extends NOOP<OsdkActionParameters<X>>,\n OP extends ApplyActionOptions,\n>(\n args: A,\n options?: OP,\n) => Promise<\n ActionReturnTypeForOptions<OP>\n>;\n\nexport type BatchActionSignature<\n X extends Record<any, ActionMetadata.Parameter<any>>,\n> = <\n A extends NOOP<OsdkActionParameters<X>>[],\n OP extends ApplyBatchActionOptions,\n>(\n args: A,\n options?: OP,\n) => Promise<\n ActionReturnTypeForOptions<OP>\n>;\n\nexport async function applyAction<\n AD extends ActionDefinition<any>,\n P extends\n | OsdkActionParameters<CompileTimeActionMetadata<AD>[\"parameters\"]>\n | OsdkActionParameters<CompileTimeActionMetadata<AD>[\"parameters\"]>[],\n Op extends P extends OsdkActionParameters<\n CompileTimeActionMetadata<AD>[\"parameters\"]\n >[] ? ApplyBatchActionOptions\n : ApplyActionOptions,\n>(\n client: MinimalClient,\n action: AD,\n parameters?: P,\n options: Op = {} as Op,\n): Promise<\n ActionReturnTypeForOptions<Op>\n> {\n const clientWithHeaders = addUserAgentAndRequestContextHeaders(\n augmentRequestContext(client, _ => ({ finalMethodCall: \"applyAction\" })),\n action,\n );\n if (Array.isArray(parameters)) {\n invariant(\n client.transactionId == null,\n \"Batch actions are not supported for staged edit functions or when supplying a transaction ID\",\n );\n const response = await Actions.applyBatch(\n clientWithHeaders,\n await client.ontologyRid,\n action.unsanitizedApiName ?? action.apiName,\n {\n requests: parameters\n ? await remapBatchActionParams(\n parameters,\n client,\n await client.ontologyProvider.getActionDefinition(\n action.unsanitizedApiName ?? action.apiName,\n ),\n )\n : [],\n options: {\n returnEdits: options?.$returnEdits ? \"ALL\" : \"NONE\",\n },\n },\n { branch: client.branch },\n );\n\n const edits = response.edits;\n return (options?.$returnEdits\n ? edits?.type === \"edits\" ? remapActionResponse(response) : edits\n : undefined) as ActionReturnTypeForOptions<Op>;\n } else {\n const response = await Actions.apply(\n clientWithHeaders,\n await client.ontologyRid,\n action.unsanitizedApiName ?? action.apiName,\n {\n parameters: await remapActionParams(\n parameters as OsdkActionParameters<\n CompileTimeActionMetadata<AD>[\"parameters\"]\n >,\n client,\n await client.ontologyProvider.getActionDefinition(\n action.unsanitizedApiName ?? action.apiName,\n ),\n ),\n options: {\n mode: (options as ApplyActionOptions)?.$validateOnly\n ? \"VALIDATE_ONLY\"\n : \"VALIDATE_AND_EXECUTE\",\n returnEdits: options\n ?.$returnEdits\n ? \"ALL_V2_WITH_DELETIONS\"\n : \"NONE\",\n },\n },\n { branch: client.branch, transactionId: client.transactionId },\n );\n\n if ((options as ApplyActionOptions)?.$validateOnly) {\n return response.validation as ActionReturnTypeForOptions<Op>;\n }\n\n if (response.validation && response.validation?.result === \"INVALID\") {\n const validation = response.validation;\n throw new ActionValidationError(validation);\n }\n\n const edits = response.edits;\n return (options?.$returnEdits\n ? edits?.type === \"edits\" ? remapActionResponse(response) : edits\n : undefined) as ActionReturnTypeForOptions<Op>;\n }\n}\n\nasync function remapActionParams<AD extends ActionDefinition<any>>(\n params:\n | OsdkActionParameters<CompileTimeActionMetadata<AD>[\"parameters\"]>\n | undefined,\n client: MinimalClient,\n actionMetadata: ActionMetadata,\n): Promise<Record<string, DataValue>> {\n if (params == null) {\n return {};\n }\n\n const parameterMap: { [parameterName: string]: unknown } = {};\n for (const [key, value] of Object.entries(params)) {\n parameterMap[key] = await toDataValue(value, client, actionMetadata);\n }\n\n return parameterMap;\n}\n\nasync function remapBatchActionParams<\n AD extends ActionDefinition<any>,\n>(\n params: OsdkActionParameters<CompileTimeActionMetadata<AD>[\"parameters\"]>[],\n client: MinimalClient,\n actionMetadata: ActionMetadata,\n) {\n const remappedParams = await Promise.all(params.map(\n async param => {\n return {\n parameters: await remapActionParams<AD>(param, client, actionMetadata),\n };\n },\n ));\n\n return remappedParams;\n}\n\nexport function remapActionResponse(\n response: SyncApplyActionResponseV2 | BatchApplyActionResponseV2,\n): ActionEditResponse | undefined {\n const editResponses = response?.edits;\n if (editResponses?.type === \"edits\") {\n const remappedActionResponse: ActionEditResponse = {\n type: editResponses.type,\n deletedLinksCount: editResponses.deletedLinksCount,\n deletedObjectsCount: editResponses.deletedObjectsCount,\n addedLinks: [],\n deletedLinks: [],\n addedObjects: [],\n deletedObjects: [],\n modifiedObjects: [],\n editedObjectTypes: [],\n };\n\n const editedObjectTypesSet = new Set<string>();\n for (const edit of editResponses.edits) {\n if (edit.type === \"addLink\" || edit.type === \"deleteLink\") {\n const osdkEdit = {\n linkTypeApiNameAtoB: edit.linkTypeApiNameAtoB,\n linkTypeApiNameBtoA: edit.linkTypeApiNameBtoA,\n aSideObject: edit.aSideObject,\n bSideObject: edit.bSideObject,\n };\n edit.type === \"addLink\"\n ? remappedActionResponse.addedLinks.push(\n osdkEdit,\n )\n : remappedActionResponse.deletedLinks?.push(osdkEdit);\n editedObjectTypesSet.add(edit.aSideObject.objectType);\n editedObjectTypesSet.add(edit.bSideObject.objectType);\n } else if (\n edit.type === \"addObject\" || edit.type === \"deleteObject\"\n || edit.type === \"modifyObject\"\n ) {\n const osdkEdit = {\n objectType: edit.objectType,\n primaryKey: edit.primaryKey,\n };\n if (edit.type === \"addObject\") {\n remappedActionResponse.addedObjects.push(osdkEdit);\n } else if (edit.type === \"deleteObject\") {\n remappedActionResponse.deletedObjects?.push(osdkEdit);\n } else if (edit.type === \"modifyObject\") {\n remappedActionResponse.modifiedObjects.push(osdkEdit);\n }\n editedObjectTypesSet.add(edit.objectType);\n } else {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\n `Unexpected edit type: ${JSON.stringify(edit)}`,\n );\n }\n }\n }\n remappedActionResponse.editedObjectTypes = [...editedObjectTypesSet];\n return remappedActionResponse;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"applyAction.js","names":["Actions","invariant","addUserAgentAndRequestContextHeaders","augmentRequestContext","toDataValue","ActionValidationError","applyAction","client","action","parameters","options","clientWithHeaders","finalMethodCall","Array","isArray","transactionId","process","env","NODE_ENV","scenarioRid","response","applyBatch","ontologyRid","unsanitizedApiName","apiName","requests","remapBatchActionParams","ontologyProvider","getActionDefinition","returnEdits","$returnEdits","branch","edits","type","remapActionResponse","undefined","apply","remapActionParams","mode","$validateOnly","validation","result","params","actionMetadata","parameterMap","key","value","Object","entries","remappedParams","Promise","all","map","param","editResponses","remappedActionResponse","deletedLinksCount","deletedObjectsCount","addedLinks","deletedLinks","addedObjects","deletedObjects","modifiedObjects","editedObjectTypes","editedObjectTypesSet","Set","edit","osdkEdit","linkTypeApiNameAtoB","linkTypeApiNameBtoA","aSideObject","bSideObject","push","add","objectType","primaryKey","console","warn","JSON","stringify"],"sources":["applyAction.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionDefinition,\n ActionEditResponse,\n ActionMetadata,\n ActionParam,\n ActionReturnTypeForOptions,\n ApplyActionOptions,\n ApplyBatchActionOptions,\n CompileTimeMetadata as CompileTimeActionMetadata,\n DataValueClientToWire,\n} from \"@osdk/api\";\nimport type {\n BatchApplyActionResponseV2,\n DataValue,\n SyncApplyActionResponseV2,\n} from \"@osdk/foundry.ontologies\";\nimport * as Actions from \"@osdk/foundry.ontologies/Action\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport type { NOOP } from \"../util/NOOP.js\";\nimport type { NullableProps } from \"../util/NullableProps.js\";\nimport type { PartialBy } from \"../util/partialBy.js\";\nimport { toDataValue } from \"../util/toDataValue.js\";\nimport { ActionValidationError } from \"./ActionValidationError.js\";\n\ntype BaseType<APD extends Pick<ActionMetadata.Parameter<any>, \"type\">> =\n APD[\"type\"] extends ActionMetadata.DataType.Object<infer TTargetType>\n ? ActionParam.ObjectType<TTargetType>\n : APD[\"type\"] extends ActionMetadata.DataType.ObjectSet<infer TTargetType>\n ? ActionParam.ObjectSetType<TTargetType>\n : APD[\"type\"] extends ActionMetadata.DataType.Struct<infer TStructType>\n ? ActionParam.StructType<TStructType>\n : APD[\"type\"] extends keyof DataValueClientToWire\n ? ActionParam.PrimitiveType<APD[\"type\"]>\n : never;\n\ntype MaybeArrayType<APD extends ActionMetadata.Parameter<any>> =\n APD[\"multiplicity\"] extends true ? Array<BaseType<APD>>\n : BaseType<APD>;\n\ntype NotOptionalParams<X extends ActionParametersDefinition> = {\n [P in keyof X]: MaybeArrayType<X[P]>;\n};\n\nexport type OsdkActionParameters<\n X extends ActionParametersDefinition,\n> = NullableProps<X> extends never ? NotOptionalParams<X>\n : PartialBy<NotOptionalParams<X>, NullableProps<X>>;\n\nexport type ActionSignatureFromDef<\n T extends ActionDefinition<any>,\n> = {\n applyAction:\n [CompileTimeActionMetadata<T>[\"signatures\"][\"applyAction\"]] extends [never]\n ? ActionSignature<CompileTimeActionMetadata<T>[\"parameters\"]>\n : CompileTimeActionMetadata<T>[\"signatures\"][\"applyAction\"];\n\n batchApplyAction:\n [CompileTimeActionMetadata<T>[\"signatures\"][\"batchApplyAction\"]] extends\n [never] ? BatchActionSignature<CompileTimeActionMetadata<T>[\"parameters\"]>\n : CompileTimeActionMetadata<T>[\"signatures\"][\"batchApplyAction\"];\n};\n\ntype ActionParametersDefinition = Record<\n any,\n ActionMetadata.Parameter<any>\n>;\n\nexport type ActionSignature<\n X extends Record<any, ActionMetadata.Parameter<any>>,\n> = <\n A extends NOOP<OsdkActionParameters<X>>,\n OP extends ApplyActionOptions,\n>(\n args: A,\n options?: OP,\n) => Promise<\n ActionReturnTypeForOptions<OP>\n>;\n\nexport type BatchActionSignature<\n X extends Record<any, ActionMetadata.Parameter<any>>,\n> = <\n A extends NOOP<OsdkActionParameters<X>>[],\n OP extends ApplyBatchActionOptions,\n>(\n args: A,\n options?: OP,\n) => Promise<\n ActionReturnTypeForOptions<OP>\n>;\n\nexport async function applyAction<\n AD extends ActionDefinition<any>,\n P extends\n | OsdkActionParameters<CompileTimeActionMetadata<AD>[\"parameters\"]>\n | OsdkActionParameters<CompileTimeActionMetadata<AD>[\"parameters\"]>[],\n Op extends P extends OsdkActionParameters<\n CompileTimeActionMetadata<AD>[\"parameters\"]\n >[] ? ApplyBatchActionOptions\n : ApplyActionOptions,\n>(\n client: MinimalClient,\n action: AD,\n parameters?: P,\n options: Op = {} as Op,\n): Promise<\n ActionReturnTypeForOptions<Op>\n> {\n const clientWithHeaders = addUserAgentAndRequestContextHeaders(\n augmentRequestContext(client, _ => ({ finalMethodCall: \"applyAction\" })),\n action,\n );\n if (Array.isArray(parameters)) {\n invariant(\n client.transactionId == null,\n \"Batch actions are not supported for staged edit functions or when supplying a transaction ID\",\n );\n invariant(\n client.scenarioRid == null,\n \"Batch actions are not supported when scoped to a scenario\",\n );\n const response = await Actions.applyBatch(\n clientWithHeaders,\n await client.ontologyRid,\n action.unsanitizedApiName ?? action.apiName,\n {\n requests: parameters\n ? await remapBatchActionParams(\n parameters,\n client,\n await client.ontologyProvider.getActionDefinition(\n action.unsanitizedApiName ?? action.apiName,\n ),\n )\n : [],\n options: {\n returnEdits: options?.$returnEdits ? \"ALL\" : \"NONE\",\n },\n },\n { branch: client.branch },\n );\n\n const edits = response.edits;\n return (options?.$returnEdits\n ? edits?.type === \"edits\" ? remapActionResponse(response) : edits\n : undefined) as ActionReturnTypeForOptions<Op>;\n } else {\n const response = await Actions.apply(\n clientWithHeaders,\n await client.ontologyRid,\n action.unsanitizedApiName ?? action.apiName,\n {\n parameters: await remapActionParams(\n parameters as OsdkActionParameters<\n CompileTimeActionMetadata<AD>[\"parameters\"]\n >,\n client,\n await client.ontologyProvider.getActionDefinition(\n action.unsanitizedApiName ?? action.apiName,\n ),\n ),\n options: {\n mode: (options as ApplyActionOptions)?.$validateOnly\n ? \"VALIDATE_ONLY\"\n : \"VALIDATE_AND_EXECUTE\",\n returnEdits: options\n ?.$returnEdits\n ? \"ALL_V2_WITH_DELETIONS\"\n : \"NONE\",\n },\n },\n {\n branch: client.branch,\n transactionId: client.transactionId,\n scenarioRid: client.scenarioRid,\n },\n );\n\n if ((options as ApplyActionOptions)?.$validateOnly) {\n return response.validation as ActionReturnTypeForOptions<Op>;\n }\n\n if (response.validation && response.validation?.result === \"INVALID\") {\n const validation = response.validation;\n throw new ActionValidationError(validation);\n }\n\n const edits = response.edits;\n return (options?.$returnEdits\n ? edits?.type === \"edits\" ? remapActionResponse(response) : edits\n : undefined) as ActionReturnTypeForOptions<Op>;\n }\n}\n\nasync function remapActionParams<AD extends ActionDefinition<any>>(\n params:\n | OsdkActionParameters<CompileTimeActionMetadata<AD>[\"parameters\"]>\n | undefined,\n client: MinimalClient,\n actionMetadata: ActionMetadata,\n): Promise<Record<string, DataValue>> {\n if (params == null) {\n return {};\n }\n\n const parameterMap: { [parameterName: string]: unknown } = {};\n for (const [key, value] of Object.entries(params)) {\n parameterMap[key] = await toDataValue(value, client, actionMetadata);\n }\n\n return parameterMap;\n}\n\nasync function remapBatchActionParams<\n AD extends ActionDefinition<any>,\n>(\n params: OsdkActionParameters<CompileTimeActionMetadata<AD>[\"parameters\"]>[],\n client: MinimalClient,\n actionMetadata: ActionMetadata,\n) {\n const remappedParams = await Promise.all(params.map(\n async param => {\n return {\n parameters: await remapActionParams<AD>(param, client, actionMetadata),\n };\n },\n ));\n\n return remappedParams;\n}\n\nexport function remapActionResponse(\n response: SyncApplyActionResponseV2 | BatchApplyActionResponseV2,\n): ActionEditResponse | undefined {\n const editResponses = response?.edits;\n if (editResponses?.type === \"edits\") {\n const remappedActionResponse: ActionEditResponse = {\n type: editResponses.type,\n deletedLinksCount: editResponses.deletedLinksCount,\n deletedObjectsCount: editResponses.deletedObjectsCount,\n addedLinks: [],\n deletedLinks: [],\n addedObjects: [],\n deletedObjects: [],\n modifiedObjects: [],\n editedObjectTypes: [],\n };\n\n const editedObjectTypesSet = new Set<string>();\n for (const edit of editResponses.edits) {\n if (edit.type === \"addLink\" || edit.type === \"deleteLink\") {\n const osdkEdit = {\n linkTypeApiNameAtoB: edit.linkTypeApiNameAtoB,\n linkTypeApiNameBtoA: edit.linkTypeApiNameBtoA,\n aSideObject: edit.aSideObject,\n bSideObject: edit.bSideObject,\n };\n edit.type === \"addLink\"\n ? remappedActionResponse.addedLinks.push(\n osdkEdit,\n )\n : remappedActionResponse.deletedLinks?.push(osdkEdit);\n editedObjectTypesSet.add(edit.aSideObject.objectType);\n editedObjectTypesSet.add(edit.bSideObject.objectType);\n } else if (\n edit.type === \"addObject\" || edit.type === \"deleteObject\"\n || edit.type === \"modifyObject\"\n ) {\n const osdkEdit = {\n objectType: edit.objectType,\n primaryKey: edit.primaryKey,\n };\n if (edit.type === \"addObject\") {\n remappedActionResponse.addedObjects.push(osdkEdit);\n } else if (edit.type === \"deleteObject\") {\n remappedActionResponse.deletedObjects?.push(osdkEdit);\n } else if (edit.type === \"modifyObject\") {\n remappedActionResponse.modifiedObjects.push(osdkEdit);\n }\n editedObjectTypesSet.add(edit.objectType);\n } else {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\n `Unexpected edit type: ${JSON.stringify(edit)}`,\n );\n }\n }\n }\n remappedActionResponse.editedObjectTypes = [...editedObjectTypesSet];\n return remappedActionResponse;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -51,7 +51,7 @@ class QueryInvoker {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
/** @internal */
|
|
54
|
-
export function createClientInternal(objectSetFactory, transactionRid, flushEdits, baseUrl, ontologyRid, tokenProvider, options = undefined, fetchFn = fetch) {
|
|
54
|
+
export function createClientInternal(objectSetFactory, transactionRid, flushEdits, scenarioRid, 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");
|
|
@@ -72,6 +72,7 @@ export function createClientInternal(objectSetFactory, transactionRid, flushEdit
|
|
|
72
72
|
logger: options?.logger ?? new MinimalLogger(),
|
|
73
73
|
transactionId: transactionRid,
|
|
74
74
|
flushEdits,
|
|
75
|
+
scenarioRid,
|
|
75
76
|
branch: options?.UNSTABLE_DO_NOT_USE_BRANCH
|
|
76
77
|
}, fetchFn, objectSetFactory);
|
|
77
78
|
return createClientFromContext(clientCtx);
|
|
@@ -224,8 +225,11 @@ export function createClientFromContext(clientCtx) {
|
|
|
224
225
|
* ```
|
|
225
226
|
* @returns a {@link Client} configured to talk to the given Foundry stack and ontology
|
|
226
227
|
*/
|
|
227
|
-
export const createClient = createClientInternal.bind(undefined, createObjectSet, undefined, undefined);
|
|
228
|
-
export const createClientWithTransaction = (transactionRid, flushEdits, ...args) => createClientInternal(createObjectSet, transactionRid, flushEdits, ...args);
|
|
228
|
+
export const createClient = createClientInternal.bind(undefined, createObjectSet, undefined, undefined, undefined);
|
|
229
|
+
export const createClientWithTransaction = (transactionRid, flushEdits, ...args) => createClientInternal(createObjectSet, transactionRid, flushEdits, undefined, ...args);
|
|
230
|
+
|
|
231
|
+
/** @internal */
|
|
232
|
+
export const createClientWithScenario = (scenarioRid, ...args) => createClientInternal(createObjectSet, undefined, undefined, scenarioRid, ...args);
|
|
229
233
|
function createWithRid(rids) {
|
|
230
234
|
return {
|
|
231
235
|
type: "static",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createClient.js","names":["__EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference","__EXPERIMENTAL__NOT_SUPPORTED_YET__executeStreamingFunction","__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid","__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid","__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks","__EXPERIMENTAL__NOT_SUPPORTED_YET__subscribeToNoTypeObjectSet","__EXPERIMENTAL__NOT_SUPPORTED_YET__transformAndWait","symbolClientContext","oldSymbolClientContext","applyAction","additionalContext","createMinimalClient","fetchMetadataInternal","makeMediaTransformation","MinimalLogger","fetchPage","fetchStaticRidPage","fetchSingle","createObjectSet","ObjectSetListenerWebsocket","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","UNSTABLE_DO_NOT_USE_BRANCH","createClientFromContext","fetchMetadata","client","Object","defineProperties","o","type","name","executeStreamingFunction","query","params","applyStreamingQuery","getBulkLinks","objs","linkTypes","createBulkLinksAsyncIterFactory","fetchOneByRid","objectType","rid","createWithRid","createMediaReference","args","data","fileName","propertyType","upload","apiName","mediaItemPath","preview","fetchPageByRid","objectOrInterfaceType","rids","fetchPageByRidNoType","subscribeToNoTypeObjectSet","listener","opts","unsubscribe","getInstance","subscribeWithoutType","reference","includeRid","transformAndWait","transformAndWaitInternal","mediaSetRid","mediaItemRid","token","mediaReference","mediaSetViewItem","transformation","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 MediaReference,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectSetSubscription,\n ObjectTypeDefinition,\n Osdk,\n OsdkBase,\n PropertyKeys,\n QueryDefinition,\n SelectArg,\n} from \"@osdk/api\";\nimport type {\n Experiment,\n ExperimentFns,\n MediaTransformation,\n MinimalObjectSet,\n TransformOptions,\n} from \"@osdk/api/unstable\";\nimport {\n __EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__executeStreamingFunction,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__subscribeToNoTypeObjectSet,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__transformAndWait,\n} from \"@osdk/api/unstable\";\nimport type { ObjectSet as WireObjectSet } from \"@osdk/foundry.ontologies\";\nimport { symbolClientContext as oldSymbolClientContext } from \"@osdk/shared.client\";\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 { makeMediaTransformation } from \"./internal/conversions/makeMediaTransformation.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 { ObjectSetListenerWebsocket } from \"./objectSet/ObjectSetListenerWebsocket.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:\n | {\n logger?: Logger;\n UNSTABLE_DO_NOT_USE_BRANCH?: string;\n headers?: Record<string, string>;\n }\n | 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?.UNSTABLE_DO_NOT_USE_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 | Experiment<\"2.8.0\">\n | Experiment<\"2.19.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\n | Experiment<\"2.0.8\">\n | Experiment<\"2.1.0\">\n | Experiment<\"2.8.0\">\n | Experiment<\"2.19.0\"> ? { 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__executeStreamingFunction.name:\n return {\n async *executeStreamingFunction(\n query: QueryDefinition<any>,\n params?: Record<string, any>,\n ) {\n const { applyStreamingQuery } = await import(\n \"./queries/applyStreamingQuery.js\"\n );\n yield* applyStreamingQuery(clientCtx, query, params);\n },\n } as any;\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks.name:\n return {\n async *getBulkLinks(\n objs: Array<OsdkBase<any>>,\n linkTypes: string[],\n ) {\n const { createBulkLinksAsyncIterFactory } = await import(\n \"./__unstable/createBulkLinksAsyncIterFactory.js\"\n );\n yield* createBulkLinksAsyncIterFactory(clientCtx)(\n objs,\n linkTypes,\n );\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 const { upload } = await import(\n \"@osdk/foundry.ontologies/MediaReferenceProperty\"\n );\n return await 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 const T extends boolean = false,\n const PROPERTY_SECURITIES extends boolean = false,\n >(\n objectOrInterfaceType: Q,\n rids: string[],\n options: FetchPageArgs<\n Q,\n L,\n R,\n any,\n S,\n T,\n never,\n {},\n PROPERTY_SECURITIES\n > = {},\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 const PROPERTY_SECURITIES extends boolean = false,\n >(\n rids: readonly string[],\n options?: FetchPageArgs<\n ObjectOrInterfaceDefinition,\n any,\n R,\n any,\n S,\n T,\n never,\n {},\n PROPERTY_SECURITIES\n >,\n ) => {\n return await fetchStaticRidPage(\n clientCtx,\n rids,\n options ?? {},\n );\n },\n } as any;\n\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__subscribeToNoTypeObjectSet\n .name:\n return {\n subscribeToNoTypeObjectSet: <R extends boolean = false>(\n rid: string,\n listener: ObjectSetSubscription.Listener<\n ObjectOrInterfaceDefinition,\n never,\n R\n >,\n opts?: { includeRid?: R },\n ) => {\n const unsubscribe = ObjectSetListenerWebsocket\n .getInstance(clientCtx)\n .subscribeWithoutType(\n { type: \"reference\", reference: rid },\n listener as ObjectSetSubscription.Listener<\n ObjectOrInterfaceDefinition,\n never\n >,\n opts?.includeRid ?? false,\n );\n return { unsubscribe };\n },\n } as any;\n\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__transformAndWait.name:\n return {\n transformAndWait: async (args: {\n mediaReference: MediaReference;\n transformation: MediaTransformation;\n options?: TransformOptions;\n }) => {\n const { transformAndWaitInternal } = await import(\n \"./util/transformAndWaitInternal.js\"\n );\n const { mediaSetRid, mediaItemRid, token } =\n args.mediaReference.reference.mediaSetViewItem;\n return transformAndWaitInternal(\n clientCtx,\n mediaSetRid,\n mediaItemRid,\n makeMediaTransformation(args.transformation),\n token,\n args.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\n/**\n * Creates a {@link Client} for interacting with a Foundry Ontology. This is the primary entry point for\n * the OSDK and is typically called once per application during setup. The returned client is then used\n * to load object sets, apply actions, and execute queries against the configured ontology.\n * @param baseUrl - The base URL of the Foundry stack (e.g. `\"https://example.palantirfoundry.com\"`).\n * @param ontologyRid - The ontology RID to scope the client to. May be provided directly or as a `Promise`\n * that resolves to the RID. Typically the generated `$ontologyRid` export from your generated SDK is passed here.\n * @param tokenProvider - A function returning a `Promise` that resolves to a bearer token used to authenticate\n * requests. Typically the OAuth client returned by `createPublicOauthClient` or `createConfidentialOauthClient`\n * from `@osdk/oauth`, which handles caching and refresh; you can also provide a custom function if you\n * manage tokens yourself.\n * @param options - Optional client configuration: a custom `logger`, an experimental `UNSTABLE_DO_NOT_USE_BRANCH`\n * for branch-aware requests, and additional `headers` to include on every request.\n * @param fetchFn - An optional `fetch` implementation to use for all requests. Defaults to the global `fetch`.\n * @example\n * ```ts\n * import { createClient, type Client } from \"@osdk/client\";\n * import { createPublicOauthClient } from \"@osdk/oauth\";\n * import { $ontologyRid } from \"./generatedNoCheck/index.js\";\n *\n * const auth = createPublicOauthClient(\n * \"<your-client-id>\",\n * \"https://example.palantirfoundry.com\",\n * `${window.location.origin}/auth/callback`,\n * );\n *\n * export const client: Client = createClient(\n * \"https://example.palantirfoundry.com\",\n * $ontologyRid,\n * auth,\n * );\n * ```\n * @returns a {@link Client} configured to talk to the given Foundry stack and ontology\n */\nexport const createClient: (\n baseUrl: string,\n ontologyRid: string | Promise<string>,\n tokenProvider: () => Promise<string>,\n options?: {\n logger?: Logger;\n /** @beta This is an experimental feature subject to change */\n UNSTABLE_DO_NOT_USE_BRANCH?: string;\n headers?: Record<string, 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":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA0BA,SACEA,uDAAuD,EACvDC,2DAA2D,EAC3DC,gDAAgD,EAChDC,iDAAiD,EACjDC,+CAA+C,EAC/CC,6DAA6D,EAC7DC,mDAAmD,QAC9C,oBAAoB;AAE3B,SAASC,mBAAmB,IAAIC,sBAAsB,QAAQ,qBAAqB;AAEnF,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,iBAAiB,QAAqB,aAAa;AAC5D,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,qBAAqB,QAAQ,oBAAoB;AAC1D,SAASC,uBAAuB,QAAQ,mDAAmD;AAC3F,SAASC,aAAa,QAAQ,2BAA2B;AAEzD,SAASC,SAAS,EAAEC,kBAAkB,QAAQ,uBAAuB;AACrE,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,eAAe,QAAQ,gCAAgC;AAEhE,SAASC,0BAA0B,QAAQ,2CAA2C;AACtF,SAASC,UAAU,QAAQ,yBAAyB;;AAGpD;AACA;AACA;AACA;AACA;;AAKA,MAAMC,aAAa,CAEnB;EACEC,WAAWA,CACTC,SAAwB,EACxBC,SAAgC,EAChC;IACA;IACA;IACA;IACA;IACA,IAAI,CAACf,WAAW,GAAGA,WAAW,CAACgB,IAAI,CAACC,SAAS,EAAEH,SAAS,EAAEC,SAAS,CAAC;IACpE,IAAI,CAACG,gBAAgB,GAAGlB,WAAW,CAACgB,IAAI,CAACC,SAAS,EAAEH,SAAS,EAAEC,SAAS,CAAC;EAC3E;AAIF;AAEA,MAAMI,YAAY,CAElB;EACEN,WAAWA,CACTC,SAAwB,EACxBM,QAA8B,EAC9B;IACA,IAAI,CAACC,eAAe,GAAGV,UAAU,CAACK,IAAI,CAACC,SAAS,EAAEH,SAAS,EAAEM,QAAQ,CAAC;EACxE;AAGF;;AAEA;AACA,OAAO,SAASE,oBAAoBA,CAClCC,gBAA4C,EAC5CC,cAAkC,EAClCC,UAA6C,EAC7CC,OAAe,EACfC,WAAqC,EACrCC,aAAoC,EACpCC,OAMa,GAAGZ,SAAS,EACzBa,OAAgC,GAAGC,KAAK,EAChC;EACR,IAAI,OAAOJ,WAAW,KAAK,QAAQ,EAAE;IACnC,IAAI,CAACA,WAAW,CAACK,UAAU,CAAC,KAAK,CAAC,EAAE;MAClC,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;IACzC;EACF,CAAC,MAAM;IACL;IACAN,WAAW,CAACO,IAAI,CAAEP,WAAW,IAAK;MAChC,IAAI,CAACA,WAAW,CAACK,UAAU,CAAC,KAAK,CAAC,EAAE;QAClC;QACA,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;MACzC;IACF,CAAC,CAAC;EACJ;EAEA,MAAMnB,SAAwB,GAAGZ,mBAAmB,CAClD;IAAEyB;EAAY,CAAC,EACfD,OAAO,EACPE,aAAa,EACb;IACE,GAAGC,OAAO;IACVM,MAAM,EAAEN,OAAO,EAAEM,MAAM,IAAI,IAAI9B,aAAa,CAAC,CAAC;IAC9C+B,aAAa,EAAEZ,cAAc;IAC7BC,UAAU;IACVY,MAAM,EAAER,OAAO,EAAES;EACnB,CAAC,EACDR,OAAO,EACPP,gBACF,CAAC;EAED,OAAOgB,uBAAuB,CAACzB,SAAS,CAAC;AAC3C;;AAEA;AACA;AACA;AACA,OAAO,SAASyB,uBAAuBA,CAACzB,SAAwB,EAAE;EAuOhE,MAAM0B,aAAa,GAAGrC,qBAAqB,CAACa,IAAI,CAC9CC,SAAS,EACTH,SACF,CAAC;EAID,MAAM2B,MAAc,GAAGC,MAAM,CAACC,gBAAgB,CA7O9C,UASEC,CAAI,EAUN;IACE,IAAIA,CAAC,CAACC,IAAI,KAAK,QAAQ,IAAID,CAAC,CAACC,IAAI,KAAK,WAAW,EAAE;MACjD,OAAO/B,SAAS,CAACS,gBAAgB,CAACqB,CAAC,EAAE9B,SAAS,CAAC;IACjD,CAAC,MAAM,IAAI8B,CAAC,CAACC,IAAI,KAAK,QAAQ,EAAE;MAC9B,OAAO,IAAIjC,aAAa,CACtBE,SAAS,EACT8B,CACF,CAAC,CAGiB,CAAC;IACrB,CAAC,MAAM,IAAIA,CAAC,CAACC,IAAI,KAAK,OAAO,EAAE;MAC7B,OAAO,IAAI1B,YAAY,CACrBL,SAAS,EACT8B,CACF,CAAC;IAEH,CAAC,MAAM,IAAIA,CAAC,CAACC,IAAI,KAAK,YAAY,EAAE;MAClC,QAAQD,CAAC,CAACE,IAAI;QACZ,KAAKtD,2DAA2D,CAACsD,IAAI;UACnE,OAAO;YACL,OAAOC,wBAAwBA,CAC7BC,KAA2B,EAC3BC,MAA4B,EAC5B;cACA,MAAM;gBAAEC;cAAoB,CAAC,GAAG,MAAM,MAAM,CAC1C,kCACF,CAAC;cACD,OAAOA,mBAAmB,CAACpC,SAAS,EAAEkC,KAAK,EAAEC,MAAM,CAAC;YACtD;UACF,CAAC;QACH,KAAKtD,+CAA+C,CAACmD,IAAI;UACvD,OAAO;YACL,OAAOK,YAAYA,CACjBC,IAA0B,EAC1BC,SAAmB,EACnB;cACA,MAAM;gBAAEC;cAAgC,CAAC,GAAG,MAAM,MAAM,CACtD,iDACF,CAAC;cACD,OAAOA,+BAA+B,CAACxC,SAAS,CAAC,CAC/CsC,IAAI,EACJC,SACF,CAAC;YACH;UACF,CAAC;QACH,KAAK5D,gDAAgD,CAACqD,IAAI;UACxD,OAAO;YACLS,aAAa,EAAE,MAAAA,CAMbC,UAAa,EACbC,GAAW,EACX5B,OAA8B,KAC3B;cACH,OAAO,MAAMrB,WAAW,CACtBM,SAAS,EACT0C,UAAU,EACV3B,OAAO,EACP6B,aAAa,CACX,CAACD,GAAG,CACN,CACF,CAAC;YACH;UACF,CAAC;QACH,KAAKlE,uDAAuD,CAACuD,IAAI;UAC/D,OAAO;YACLa,oBAAoB,EAAE,MAGpBC,IAKD,IAAK;cACJ,MAAM;gBAAEC,IAAI;gBAAEC,QAAQ;gBAAEN,UAAU;gBAAEO;cAAa,CAAC,GAAGH,IAAI;cACzD,MAAM;gBAAEI;cAAO,CAAC,GAAG,MAAM,MAAM,CAC7B,iDACF,CAAC;cACD,OAAO,MAAMA,MAAM,CACjBlD,SAAS,EACT,MAAMA,SAAS,CAACa,WAAW,EAC3B6B,UAAU,CAACS,OAAO,EAClBF,YAAY,EACZF,IAAI,EACJ;gBACEK,aAAa,EAAEJ,QAAQ;gBACvBK,OAAO,EAAE;cACX,CACF,CAAC;YACH;UACF,CAAC;QAEH,KAAKzE,iDAAiD,CAACoD,IAAI;UACzD,OAAO;YACLsB,cAAc,EAAE,MAAAA,CAQdC,qBAAwB,EACxBC,IAAc,EACdzC,OAUC,GAAG,CAAC,CAAC,KACH;cACH,OAAO,MAAMvB,SAAS,CACpBQ,SAAS,EACTuD,qBAAqB,EACrBxC,OAAO,EACP6B,aAAa,CAACY,IAAI,CACpB,CAAC;YACH,CAAC;YACDC,oBAAoB,EAAE,MAAAA,CAMpBD,IAAuB,EACvBzC,OAUC,KACE;cACH,OAAO,MAAMtB,kBAAkB,CAC7BO,SAAS,EACTwD,IAAI,EACJzC,OAAO,IAAI,CAAC,CACd,CAAC;YACH;UACF,CAAC;QAEH,KAAKjC,6DAA6D,CAC/DkD,IAAI;UACL,OAAO;YACL0B,0BAA0B,EAAEA,CAC1Bf,GAAW,EACXgB,QAIC,EACDC,IAAyB,KACtB;cACH,MAAMC,WAAW,GAAGjE,0BAA0B,CAC3CkE,WAAW,CAAC9D,SAAS,CAAC,CACtB+D,oBAAoB,CACnB;gBAAEhC,IAAI,EAAE,WAAW;gBAAEiC,SAAS,EAAErB;cAAI,CAAC,EACrCgB,QAAQ,EAIRC,IAAI,EAAEK,UAAU,IAAI,KACtB,CAAC;cACH,OAAO;gBAAEJ;cAAY,CAAC;YACxB;UACF,CAAC;QAEH,KAAK9E,mDAAmD,CAACiD,IAAI;UAC3D,OAAO;YACLkC,gBAAgB,EAAE,MAAOpB,IAIxB,IAAK;cACJ,MAAM;gBAAEqB;cAAyB,CAAC,GAAG,MAAM,MAAM,CAC/C,oCACF,CAAC;cACD,MAAM;gBAAEC,WAAW;gBAAEC,YAAY;gBAAEC;cAAM,CAAC,GACxCxB,IAAI,CAACyB,cAAc,CAACP,SAAS,CAACQ,gBAAgB;cAChD,OAAOL,wBAAwB,CAC7BnE,SAAS,EACToE,WAAW,EACXC,YAAY,EACZ/E,uBAAuB,CAACwD,IAAI,CAAC2B,cAAc,CAAC,EAC5CH,KAAK,EACLxB,IAAI,CAAC/B,OACP,CAAC;YACH;UACF,CAAC;MACL;MAEA,MAAM,IAAII,KAAK,CAAC,iBAAiB,CAAC;IACpC,CAAC,MAAM;MACL,MAAM,IAAIA,KAAK,CAAC,iBAAiB,CAAC;IACpC;EACF,CAAC,EAWC;IACE,CAAClC,sBAAsB,GAAG;MACxByF,KAAK,EAAE1E;IACT,CAAC;IACD,CARgD,qBAAqB,GAQ9C;MACrB0E,KAAK,EAAE1E;IACT,CAAC;IACD,CAACb,iBAAiB,GAAG;MACnBuF,KAAK,EAAE1E;IACT,CAAC;IACD0B,aAAa,EAAE;MACbgD,KAAK,EAAEhD;IACT;EACF,CACF,CAAC;EAED,OAAOC,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMgD,YAWF,GAAGnE,oBAAoB,CAACN,IAAI,CACrCC,SAAS,EACTR,eAAe,EACfQ,SAAS,EACTA,SACF,CAAC;AAED,OAAO,MAAMyE,2BAIF,GAAGA,CAAClE,cAAc,EAAEC,UAAU,EAAE,GAAGmC,IAAI,KAChDtC,oBAAoB,CAClBb,eAAe,EACfe,cAAc,EACdC,UAAU,EACV,GAAGmC,IACL,CAAW;AAEb,SAASF,aAAaA,CACpBY,IAAc,EACd;EAMA,OAL+B;IAC7BzB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAEyB;EACb,CAAC;AAGH","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"createClient.js","names":["__EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference","__EXPERIMENTAL__NOT_SUPPORTED_YET__executeStreamingFunction","__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid","__EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid","__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks","__EXPERIMENTAL__NOT_SUPPORTED_YET__subscribeToNoTypeObjectSet","__EXPERIMENTAL__NOT_SUPPORTED_YET__transformAndWait","symbolClientContext","oldSymbolClientContext","applyAction","additionalContext","createMinimalClient","fetchMetadataInternal","makeMediaTransformation","MinimalLogger","fetchPage","fetchStaticRidPage","fetchSingle","createObjectSet","ObjectSetListenerWebsocket","applyQuery","ActionInvoker","constructor","clientCtx","actionDef","bind","undefined","batchApplyAction","QueryInvoker","queryDef","executeFunction","createClientInternal","objectSetFactory","transactionRid","flushEdits","scenarioRid","baseUrl","ontologyRid","tokenProvider","options","fetchFn","fetch","startsWith","Error","then","logger","transactionId","branch","UNSTABLE_DO_NOT_USE_BRANCH","createClientFromContext","fetchMetadata","client","Object","defineProperties","o","type","name","executeStreamingFunction","query","params","applyStreamingQuery","getBulkLinks","objs","linkTypes","createBulkLinksAsyncIterFactory","fetchOneByRid","objectType","rid","createWithRid","createMediaReference","args","data","fileName","propertyType","upload","apiName","mediaItemPath","preview","fetchPageByRid","objectOrInterfaceType","rids","fetchPageByRidNoType","subscribeToNoTypeObjectSet","listener","opts","unsubscribe","getInstance","subscribeWithoutType","reference","includeRid","transformAndWait","transformAndWaitInternal","mediaSetRid","mediaItemRid","token","mediaReference","mediaSetViewItem","transformation","value","createClient","createClientWithTransaction","createClientWithScenario"],"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 MediaReference,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectSetSubscription,\n ObjectTypeDefinition,\n Osdk,\n OsdkBase,\n PropertyKeys,\n QueryDefinition,\n SelectArg,\n} from \"@osdk/api\";\nimport type {\n Experiment,\n ExperimentFns,\n MediaTransformation,\n MinimalObjectSet,\n TransformOptions,\n} from \"@osdk/api/unstable\";\nimport {\n __EXPERIMENTAL__NOT_SUPPORTED_YET__createMediaReference,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__executeStreamingFunction,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchOneByRid,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__fetchPageByRid,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__subscribeToNoTypeObjectSet,\n __EXPERIMENTAL__NOT_SUPPORTED_YET__transformAndWait,\n} from \"@osdk/api/unstable\";\nimport type { ObjectSet as WireObjectSet } from \"@osdk/foundry.ontologies\";\nimport { symbolClientContext as oldSymbolClientContext } from \"@osdk/shared.client\";\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 { makeMediaTransformation } from \"./internal/conversions/makeMediaTransformation.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 { ObjectSetListenerWebsocket } from \"./objectSet/ObjectSetListenerWebsocket.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 scenarioRid: string | undefined,\n baseUrl: string,\n ontologyRid: string | Promise<string>,\n tokenProvider: () => Promise<string>,\n options:\n | {\n logger?: Logger;\n UNSTABLE_DO_NOT_USE_BRANCH?: string;\n headers?: Record<string, string>;\n }\n | 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 scenarioRid,\n branch: options?.UNSTABLE_DO_NOT_USE_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 | Experiment<\"2.8.0\">\n | Experiment<\"2.19.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\n | Experiment<\"2.0.8\">\n | Experiment<\"2.1.0\">\n | Experiment<\"2.8.0\">\n | Experiment<\"2.19.0\"> ? { 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__executeStreamingFunction.name:\n return {\n async *executeStreamingFunction(\n query: QueryDefinition<any>,\n params?: Record<string, any>,\n ) {\n const { applyStreamingQuery } = await import(\n \"./queries/applyStreamingQuery.js\"\n );\n yield* applyStreamingQuery(clientCtx, query, params);\n },\n } as any;\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks.name:\n return {\n async *getBulkLinks(\n objs: Array<OsdkBase<any>>,\n linkTypes: string[],\n ) {\n const { createBulkLinksAsyncIterFactory } = await import(\n \"./__unstable/createBulkLinksAsyncIterFactory.js\"\n );\n yield* createBulkLinksAsyncIterFactory(clientCtx)(\n objs,\n linkTypes,\n );\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 const { upload } = await import(\n \"@osdk/foundry.ontologies/MediaReferenceProperty\"\n );\n return await 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 const T extends boolean = false,\n const PROPERTY_SECURITIES extends boolean = false,\n >(\n objectOrInterfaceType: Q,\n rids: string[],\n options: FetchPageArgs<\n Q,\n L,\n R,\n any,\n S,\n T,\n never,\n {},\n PROPERTY_SECURITIES\n > = {},\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 const PROPERTY_SECURITIES extends boolean = false,\n >(\n rids: readonly string[],\n options?: FetchPageArgs<\n ObjectOrInterfaceDefinition,\n any,\n R,\n any,\n S,\n T,\n never,\n {},\n PROPERTY_SECURITIES\n >,\n ) => {\n return await fetchStaticRidPage(\n clientCtx,\n rids,\n options ?? {},\n );\n },\n } as any;\n\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__subscribeToNoTypeObjectSet\n .name:\n return {\n subscribeToNoTypeObjectSet: <R extends boolean = false>(\n rid: string,\n listener: ObjectSetSubscription.Listener<\n ObjectOrInterfaceDefinition,\n never,\n R\n >,\n opts?: { includeRid?: R },\n ) => {\n const unsubscribe = ObjectSetListenerWebsocket\n .getInstance(clientCtx)\n .subscribeWithoutType(\n { type: \"reference\", reference: rid },\n listener as ObjectSetSubscription.Listener<\n ObjectOrInterfaceDefinition,\n never\n >,\n opts?.includeRid ?? false,\n );\n return { unsubscribe };\n },\n } as any;\n\n case __EXPERIMENTAL__NOT_SUPPORTED_YET__transformAndWait.name:\n return {\n transformAndWait: async (args: {\n mediaReference: MediaReference;\n transformation: MediaTransformation;\n options?: TransformOptions;\n }) => {\n const { transformAndWaitInternal } = await import(\n \"./util/transformAndWaitInternal.js\"\n );\n const { mediaSetRid, mediaItemRid, token } =\n args.mediaReference.reference.mediaSetViewItem;\n return transformAndWaitInternal(\n clientCtx,\n mediaSetRid,\n mediaItemRid,\n makeMediaTransformation(args.transformation),\n token,\n args.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\n/**\n * Creates a {@link Client} for interacting with a Foundry Ontology. This is the primary entry point for\n * the OSDK and is typically called once per application during setup. The returned client is then used\n * to load object sets, apply actions, and execute queries against the configured ontology.\n * @param baseUrl - The base URL of the Foundry stack (e.g. `\"https://example.palantirfoundry.com\"`).\n * @param ontologyRid - The ontology RID to scope the client to. May be provided directly or as a `Promise`\n * that resolves to the RID. Typically the generated `$ontologyRid` export from your generated SDK is passed here.\n * @param tokenProvider - A function returning a `Promise` that resolves to a bearer token used to authenticate\n * requests. Typically the OAuth client returned by `createPublicOauthClient` or `createConfidentialOauthClient`\n * from `@osdk/oauth`, which handles caching and refresh; you can also provide a custom function if you\n * manage tokens yourself.\n * @param options - Optional client configuration: a custom `logger`, an experimental `UNSTABLE_DO_NOT_USE_BRANCH`\n * for branch-aware requests, and additional `headers` to include on every request.\n * @param fetchFn - An optional `fetch` implementation to use for all requests. Defaults to the global `fetch`.\n * @example\n * ```ts\n * import { createClient, type Client } from \"@osdk/client\";\n * import { createPublicOauthClient } from \"@osdk/oauth\";\n * import { $ontologyRid } from \"./generatedNoCheck/index.js\";\n *\n * const auth = createPublicOauthClient(\n * \"<your-client-id>\",\n * \"https://example.palantirfoundry.com\",\n * `${window.location.origin}/auth/callback`,\n * );\n *\n * export const client: Client = createClient(\n * \"https://example.palantirfoundry.com\",\n * $ontologyRid,\n * auth,\n * );\n * ```\n * @returns a {@link Client} configured to talk to the given Foundry stack and ontology\n */\nexport const createClient: (\n baseUrl: string,\n ontologyRid: string | Promise<string>,\n tokenProvider: () => Promise<string>,\n options?: {\n logger?: Logger;\n /** @beta This is an experimental feature subject to change */\n UNSTABLE_DO_NOT_USE_BRANCH?: string;\n headers?: Record<string, string>;\n } | undefined,\n fetchFn?: typeof fetch | undefined,\n) => Client = createClientInternal.bind(\n undefined,\n createObjectSet,\n undefined,\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 undefined,\n ...args,\n ) as Client;\n\n/** @internal */\nexport const createClientWithScenario: (\n scenarioRid: string,\n ...args: Parameters<typeof createClient>\n) => Client = (scenarioRid, ...args) =>\n createClientInternal(\n createObjectSet,\n undefined,\n undefined,\n scenarioRid,\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":[]}
|
|
@@ -30,6 +30,15 @@ export function createMinimalClient(metadata, baseUrl, tokenProvider, options =
|
|
|
30
30
|
throw new Error(`Invalid stack URL: ${baseUrl}${hint}`);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
const originalFetchFn = fetchFn;
|
|
34
|
+
fetchFn = async (input, init) => {
|
|
35
|
+
const url = new URL(typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url);
|
|
36
|
+
if (/\/scenarios(\/|$)/.test(url.pathname) && !url.searchParams.has("preview")) {
|
|
37
|
+
url.searchParams.set("preview", "true");
|
|
38
|
+
return originalFetchFn(url, init);
|
|
39
|
+
}
|
|
40
|
+
return originalFetchFn(input, init);
|
|
41
|
+
};
|
|
33
42
|
const minimalClient = {
|
|
34
43
|
...createSharedClientContext(baseUrl, tokenProvider, USER_AGENT, fetchFn, options.headers),
|
|
35
44
|
objectSetFactory,
|
|
@@ -37,6 +46,7 @@ export function createMinimalClient(metadata, baseUrl, tokenProvider, options =
|
|
|
37
46
|
ontologyRid: metadata.ontologyRid,
|
|
38
47
|
logger: options.logger,
|
|
39
48
|
transactionId: options.transactionId,
|
|
49
|
+
scenarioRid: options.scenarioRid,
|
|
40
50
|
clientCacheKey: {},
|
|
41
51
|
requestContext: {},
|
|
42
52
|
branch: options.branch,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMinimalClient.js","names":["createSharedClientContext","convertWireToOsdkObjects","createObjectSet","createStandardOntologyProviderFactory","USER_AGENT","createMinimalClient","metadata","baseUrl","tokenProvider","options","fetchFn","global","fetch","objectSetFactory","createOntologyProviderFactory","process","env","NODE_ENV","URL","e","hint","startsWith","Error","minimalClient","headers","objectFactory","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 { convertWireToOsdkObjects } 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 headers?: Record<string, 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 minimalClient: MinimalClient = {\n ...createSharedClientContext(\n baseUrl,\n tokenProvider,\n USER_AGENT,\n fetchFn,\n options.headers,\n ),\n objectSetFactory,\n objectFactory: convertWireToOsdkObjects,\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,SAASC,wBAAwB,QAAQ,sCAAsC;AAC/E,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,
|
|
1
|
+
{"version":3,"file":"createMinimalClient.js","names":["createSharedClientContext","convertWireToOsdkObjects","createObjectSet","createStandardOntologyProviderFactory","USER_AGENT","createMinimalClient","metadata","baseUrl","tokenProvider","options","fetchFn","global","fetch","objectSetFactory","createOntologyProviderFactory","process","env","NODE_ENV","URL","e","hint","startsWith","Error","originalFetchFn","input","init","url","toString","test","pathname","searchParams","has","set","minimalClient","headers","objectFactory","ontologyRid","logger","transactionId","scenarioRid","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 { convertWireToOsdkObjects } 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 scenarioRid?: string;\n branch?: string;\n headers?: Record<string, 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 originalFetchFn = fetchFn;\n fetchFn = async (\n input: string | Request | URL,\n init?: RequestInit | undefined,\n ) => {\n const url = new URL(\n (typeof input === \"string\")\n ? input\n : (input instanceof URL)\n ? input.toString()\n : input.url,\n );\n\n if (\n /\\/scenarios(\\/|$)/.test(url.pathname) && !url.searchParams.has(\"preview\")\n ) {\n url.searchParams.set(\"preview\", \"true\");\n return originalFetchFn(url, init);\n }\n\n return originalFetchFn(input, init);\n };\n const minimalClient: MinimalClient = {\n ...createSharedClientContext(\n baseUrl,\n tokenProvider,\n USER_AGENT,\n fetchFn,\n options.headers,\n ),\n objectSetFactory,\n objectFactory: convertWireToOsdkObjects,\n ontologyRid: metadata.ontologyRid,\n logger: options.logger,\n transactionId: options.transactionId,\n scenarioRid: options.scenarioRid,\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,SAASC,wBAAwB,QAAQ,sCAAsC;AAC/E,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,OAOC,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,eAAe,GAAGb,OAAO;EAC/BA,OAAO,GAAG,MAAAA,CACRc,KAA6B,EAC7BC,IAA8B,KAC3B;IACH,MAAMC,GAAG,GAAG,IAAIR,GAAG,CAChB,OAAOM,KAAK,KAAK,QAAQ,GACtBA,KAAK,GACJA,KAAK,YAAYN,GAAG,GACrBM,KAAK,CAACG,QAAQ,CAAC,CAAC,GAChBH,KAAK,CAACE,GACZ,CAAC;IAED,IACE,mBAAmB,CAACE,IAAI,CAACF,GAAG,CAACG,QAAQ,CAAC,IAAI,CAACH,GAAG,CAACI,YAAY,CAACC,GAAG,CAAC,SAAS,CAAC,EAC1E;MACAL,GAAG,CAACI,YAAY,CAACE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;MACvC,OAAOT,eAAe,CAACG,GAAG,EAAED,IAAI,CAAC;IACnC;IAEA,OAAOF,eAAe,CAACC,KAAK,EAAEC,IAAI,CAAC;EACrC,CAAC;EACD,MAAMQ,aAA4B,GAAG;IACnC,GAAGjC,yBAAyB,CAC1BO,OAAO,EACPC,aAAa,EACbJ,UAAU,EACVM,OAAO,EACPD,OAAO,CAACyB,OACV,CAAC;IACDrB,gBAAgB;IAChBsB,aAAa,EAAElC,wBAAwB;IACvCmC,WAAW,EAAE9B,QAAQ,CAAC8B,WAAW;IACjCC,MAAM,EAAE5B,OAAO,CAAC4B,MAAM;IACtBC,aAAa,EAAE7B,OAAO,CAAC6B,aAAa;IACpCC,WAAW,EAAE9B,OAAO,CAAC8B,WAAW;IAChCC,cAAc,EAAE,CAAC,CAAmB;IACpCC,cAAc,EAAE,CAAC,CAAC;IAClBC,MAAM,EAAEjC,OAAO,CAACiC,MAAM;IACtBC,kCAAkC,EAAE,CAAC;EACvC,CAGQ;EAER,OAAOC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAACb,aAAa,EAAE;IAChDc,gBAAgB,EAAEjC,6BAA6B,CAC7CL,OACF,CAAC,CAACwB,aAAa;EACjB,CAAC,CAAC,CAAC;AACL","ignoreList":[]}
|
|
@@ -29,6 +29,9 @@ export function createWithPropertiesObjectSet(objectType, objectSet, definitionM
|
|
|
29
29
|
}, definitionMap);
|
|
30
30
|
},
|
|
31
31
|
where: clause => {
|
|
32
|
+
if (clause == null || Object.keys(clause).length === 0) {
|
|
33
|
+
return createWithPropertiesObjectSet(objectType, objectSet, definitionMap);
|
|
34
|
+
}
|
|
32
35
|
const rdpNames = new Set(definitionMap.keys());
|
|
33
36
|
return createWithPropertiesObjectSet(objectType, {
|
|
34
37
|
type: "filter",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWithPropertiesObjectSet.js","names":["invariant","modernToLegacyWhereClause","derivedPropertyDefinitionFactory","createWithPropertiesObjectSet","objectType","objectSet","definitionMap","fromBaseObjectSet","pivotTo","link","type","where","clause","
|
|
1
|
+
{"version":3,"file":"createWithPropertiesObjectSet.js","names":["invariant","modernToLegacyWhereClause","derivedPropertyDefinitionFactory","createWithPropertiesObjectSet","objectType","objectSet","definitionMap","fromBaseObjectSet","pivotTo","link","type","where","clause","Object","keys","length","rdpNames","Set","aggregate","aggregation","opt","splitAggregation","split","process","env","NODE_ENV","aggregationPropertyName","aggregationOperation","aggregationOperationDefinition","selectedPropertyApiName","approximatePercentile","percentile","limit","undefined","wrappedObjectSet","operation","selectorResult","set","selectProperty","name","apiName"],"sources":["createWithPropertiesObjectSet.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 { DerivedProperty, ObjectOrInterfaceDefinition } from \"@osdk/api\";\nimport type {\n DerivedPropertyDefinition,\n ObjectSet as WireObjectSet,\n SelectedPropertyOperation,\n} from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport { modernToLegacyWhereClause } from \"../internal/conversions/modernToLegacyWhereClause.js\";\nimport { derivedPropertyDefinitionFactory } from \"./derivedPropertyDefinitionFactory.js\";\n\n/** @internal */\nexport function createWithPropertiesObjectSet<\n Q extends ObjectOrInterfaceDefinition,\n>(\n objectType: Q,\n objectSet: WireObjectSet,\n definitionMap: Map<any, DerivedPropertyDefinition>,\n fromBaseObjectSet: boolean = false,\n): DerivedProperty.SelectPropertyBuilder<Q, false> {\n return {\n pivotTo: (link) => {\n return createWithPropertiesObjectSet(objectType, {\n type: \"searchAround\",\n objectSet,\n link,\n }, definitionMap);\n },\n where: (clause) => {\n if (clause == null || Object.keys(clause).length === 0) {\n return createWithPropertiesObjectSet(\n objectType,\n objectSet,\n definitionMap,\n );\n }\n const rdpNames = new Set(definitionMap.keys());\n return createWithPropertiesObjectSet(objectType, {\n type: \"filter\",\n objectSet,\n where: modernToLegacyWhereClause(clause, objectType, rdpNames),\n }, definitionMap);\n },\n aggregate: (aggregation: string, opt: any) => {\n const splitAggregation = aggregation.split(\":\");\n invariant(\n splitAggregation.length === 2 || splitAggregation[0] === \"$count\",\n \"Invalid aggregation format\",\n );\n const [aggregationPropertyName, aggregationOperation] = splitAggregation;\n let aggregationOperationDefinition: SelectedPropertyOperation;\n switch (aggregationOperation) {\n case \"sum\":\n case \"avg\":\n case \"min\":\n case \"max\":\n case \"exactDistinct\":\n case \"approximateDistinct\":\n aggregationOperationDefinition = {\n type: aggregationOperation,\n selectedPropertyApiName: aggregationPropertyName,\n };\n break;\n case \"approximatePercentile\":\n aggregationOperationDefinition = {\n type: \"approximatePercentile\",\n selectedPropertyApiName: aggregationPropertyName,\n approximatePercentile: opt?.percentile ?? .5,\n };\n break;\n case \"collectSet\":\n case \"collectList\":\n aggregationOperationDefinition = {\n type: aggregationOperation,\n selectedPropertyApiName: aggregationPropertyName,\n limit: opt?.limit ?? 100,\n };\n break;\n case undefined:\n if (aggregationPropertyName === \"$count\") {\n aggregationOperationDefinition = {\n type: \"count\",\n };\n break;\n }\n default:\n invariant(\n false,\n \"Invalid aggregation operation \" + aggregationOperation,\n );\n }\n const wrappedObjectSet: DerivedPropertyDefinition = {\n type: \"selection\",\n objectSet,\n operation: aggregationOperationDefinition,\n };\n const selectorResult: DerivedProperty.Definition<any, any> =\n derivedPropertyDefinitionFactory(wrappedObjectSet, definitionMap);\n definitionMap.set(selectorResult, wrappedObjectSet);\n return selectorResult as any;\n },\n selectProperty: (name) => {\n if (fromBaseObjectSet) {\n const wrappedObjectSet: DerivedPropertyDefinition = {\n type: \"property\",\n apiName: name,\n };\n const selectorResult: DerivedProperty.Definition<any, any> =\n derivedPropertyDefinitionFactory(wrappedObjectSet, definitionMap);\n definitionMap.set(selectorResult, wrappedObjectSet);\n return selectorResult as any;\n }\n const wrappedObjectSet: DerivedPropertyDefinition = {\n type: \"selection\",\n objectSet,\n operation: {\n type: \"get\",\n selectedPropertyApiName: name,\n },\n };\n const selectorResult: DerivedProperty.Definition<any, any> =\n derivedPropertyDefinitionFactory(wrappedObjectSet, definitionMap);\n definitionMap.set(selectorResult, wrappedObjectSet);\n return selectorResult as any;\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -34,6 +34,7 @@ export function modernToLegacyWhereClause(whereClause, objectOrInterface, rdpNam
|
|
|
34
34
|
const parts = Object.entries(whereClause).map(([key, value]) => ({
|
|
35
35
|
[key]: value
|
|
36
36
|
}));
|
|
37
|
+
!(parts.length > 0) ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot convert an empty where clause to a filter. " + "Skip the .where() call entirely when no conditions are provided.") : invariant(false) : void 0;
|
|
37
38
|
if (parts.length === 1) {
|
|
38
39
|
return modernToLegacyWhereClauseInner(whereClause, objectOrInterface, rdpNames);
|
|
39
40
|
}
|
|
@@ -65,18 +66,37 @@ export function modernToLegacyWhereClauseInner(whereClause, objectOrInterface, r
|
|
|
65
66
|
}
|
|
66
67
|
return handleWherePair(parts[0], objectOrInterface, undefined, rdpNames);
|
|
67
68
|
}
|
|
69
|
+
function resolvePropertyIdentifier(fieldName, objectOrInterface, isTitleProperty, isPrimaryKeyProperty, isRdp, structFieldSelector) {
|
|
70
|
+
if (isTitleProperty) {
|
|
71
|
+
return {
|
|
72
|
+
type: "titleProperty"
|
|
73
|
+
};
|
|
74
|
+
} else if (isPrimaryKeyProperty) {
|
|
75
|
+
return {
|
|
76
|
+
type: "primaryKeyProperty"
|
|
77
|
+
};
|
|
78
|
+
} else if (isRdp) {
|
|
79
|
+
return {
|
|
80
|
+
type: "property",
|
|
81
|
+
apiName: fieldName
|
|
82
|
+
};
|
|
83
|
+
} else if (structFieldSelector != null) {
|
|
84
|
+
return {
|
|
85
|
+
type: "structField",
|
|
86
|
+
...structFieldSelector,
|
|
87
|
+
propertyApiName: fullyQualifyPropName(structFieldSelector.propertyApiName, objectOrInterface)
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
68
92
|
function handleWherePair([fieldName, filter], objectOrInterface, structFieldSelector, rdpNames) {
|
|
69
93
|
!(filter != null) ? process.env.NODE_ENV !== "production" ? invariant(false, `Cannot filter on property "${fieldName}" with an undefined or null value. ` + `If the value might be undefined, check it before adding to the where clause.`) : invariant(false) : void 0;
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
...structFieldSelector,
|
|
77
|
-
propertyApiName: fullyQualifyPropName(structFieldSelector.propertyApiName, objectOrInterface)
|
|
78
|
-
} : undefined;
|
|
79
|
-
const field = !isRdp && structFieldSelector == null ? fullyQualifyPropName(fieldName, objectOrInterface) : undefined;
|
|
94
|
+
const isTitleProperty = fieldName === "$title";
|
|
95
|
+
const isPrimaryKeyProperty = fieldName === "$primaryKey";
|
|
96
|
+
const isSpecialProperty = isTitleProperty || isPrimaryKeyProperty;
|
|
97
|
+
const isRdp = !structFieldSelector && !isSpecialProperty && rdpNames?.has(fieldName);
|
|
98
|
+
const propertyIdentifier = resolvePropertyIdentifier(fieldName, objectOrInterface, isTitleProperty, isPrimaryKeyProperty, isRdp, structFieldSelector);
|
|
99
|
+
const field = !isRdp && !isSpecialProperty && structFieldSelector == null ? fullyQualifyPropName(fieldName, objectOrInterface) : undefined;
|
|
80
100
|
!(field == null || propertyIdentifier == null && (field != null || isRdp != null)) ? process.env.NODE_ENV !== "production" ? invariant(false, "Encountered error constructing where clause: field and propertyIdentifier cannot both be defined") : invariant(false) : void 0;
|
|
81
101
|
if (typeof filter === "string" || typeof filter === "number" || typeof filter === "boolean") {
|
|
82
102
|
return {
|