@osdk/unit-testing 0.15.0 → 0.15.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/build/browser/api/MockClient.js.map +1 -1
  3. package/build/browser/api/MockOsdkObjectOptions.js.map +1 -1
  4. package/build/browser/api/StubBuilders.js.map +1 -1
  5. package/build/browser/example-function-tests/basicAggregate/basicAggregate.js +2 -2
  6. package/build/browser/example-function-tests/basicAggregate/basicAggregate.js.map +1 -1
  7. package/build/browser/example-function-tests/basicFetchPage/basicFetchPage.js.map +1 -1
  8. package/build/browser/example-function-tests/basicQuery/basicQuery.js.map +1 -1
  9. package/build/browser/example-function-tests/objectAsInput/objectAsInput.js.map +1 -1
  10. package/build/browser/example-function-tests/objectSetAsInput/objectSetAsInput.js.map +1 -1
  11. package/build/browser/example-function-tests/objectWithLinks/objectWithLinks.js.map +1 -1
  12. package/build/browser/example-function-tests/ontologyEdits/ontologyEdits.js.map +1 -1
  13. package/build/browser/example-function-tests/platformApiWithMsw/platformApiWithMsw.js.map +1 -1
  14. package/build/browser/example-function-tests/queryWithArrayParams/queryWithArrayParams.js.map +1 -1
  15. package/build/browser/mock/createMockAttachment.js.map +1 -1
  16. package/build/browser/mock/createMockClient.js.map +1 -1
  17. package/build/browser/mock/createMockObjectSet.js.map +1 -1
  18. package/build/browser/mock/createMockObjectSetWithResolver.js.map +1 -1
  19. package/build/browser/mock/createMockOsdkObject.js.map +1 -1
  20. package/build/cjs/index.d.cts +1 -1
  21. package/build/esm/api/MockClient.js.map +1 -1
  22. package/build/esm/api/MockOsdkObjectOptions.js.map +1 -1
  23. package/build/esm/api/StubBuilders.js.map +1 -1
  24. package/build/esm/example-function-tests/basicAggregate/basicAggregate.js +2 -2
  25. package/build/esm/example-function-tests/basicAggregate/basicAggregate.js.map +1 -1
  26. package/build/esm/example-function-tests/basicFetchPage/basicFetchPage.js.map +1 -1
  27. package/build/esm/example-function-tests/basicQuery/basicQuery.js.map +1 -1
  28. package/build/esm/example-function-tests/objectAsInput/objectAsInput.js.map +1 -1
  29. package/build/esm/example-function-tests/objectSetAsInput/objectSetAsInput.js.map +1 -1
  30. package/build/esm/example-function-tests/objectWithLinks/objectWithLinks.js.map +1 -1
  31. package/build/esm/example-function-tests/ontologyEdits/ontologyEdits.js.map +1 -1
  32. package/build/esm/example-function-tests/platformApiWithMsw/platformApiWithMsw.js.map +1 -1
  33. package/build/esm/example-function-tests/queryWithArrayParams/queryWithArrayParams.js.map +1 -1
  34. package/build/esm/mock/createMockAttachment.js.map +1 -1
  35. package/build/esm/mock/createMockClient.js.map +1 -1
  36. package/build/esm/mock/createMockObjectSet.js.map +1 -1
  37. package/build/esm/mock/createMockObjectSetWithResolver.js.map +1 -1
  38. package/build/esm/mock/createMockOsdkObject.js.map +1 -1
  39. package/build/types/api/MockClient.d.ts.map +1 -1
  40. package/build/types/api/MockOsdkObjectOptions.d.ts.map +1 -1
  41. package/build/types/api/StubBuilders.d.ts +1 -1
  42. package/build/types/api/StubBuilders.d.ts.map +1 -1
  43. package/build/types/example-function-tests/basicAggregate/basicAggregate.d.ts.map +1 -1
  44. package/build/types/example-function-tests/basicQuery/basicQuery.d.ts.map +1 -1
  45. package/build/types/example-function-tests/platformApiWithMsw/platformApiWithMsw.d.ts.map +1 -1
  46. package/build/types/mock/createMockClient.d.ts.map +1 -1
  47. package/build/types/mock/createMockObjectSet.d.ts.map +1 -1
  48. package/build/types/mock/createMockObjectSetWithResolver.d.ts.map +1 -1
  49. package/build/types/mock/createMockOsdkObject.d.ts.map +1 -1
  50. package/package.json +10 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @osdk/unit-testing
2
2
 
3
+ ## 0.15.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76
4
+
5
+ ### Patch Changes
6
+
7
+ - 830d791: Migrate @osdk/api, @osdk/functions, and @osdk/unit-testing to lint with oxlint and format with oxfmt (configured via Ultracite) instead of ESLint and dprint (eleventh increment of the repo-wide oxc migration; the check-api core libraries). Each package is reformatted with oxfmt, with its newly-surfaced error-level lint rules turned off in a nested oxlint config to keep the change behavior-preserving; the public API surface is unchanged.
8
+ - Updated dependencies [830d791]
9
+ - Updated dependencies [0021ee4]
10
+ - @osdk/api@2.41.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76
11
+ - @osdk/functions@1.14.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76
12
+ - @osdk/client@2.41.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76
13
+
3
14
  ## 0.15.0
4
15
 
5
16
  ### Minor Changes
@@ -1 +1 @@
1
- {"version":3,"file":"MockClient.js","names":[],"sources":["MockClient.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n QueryDefinition,\n} from \"@osdk/api\";\nimport type { Client } from \"@osdk/client\";\nimport type { QueryStubBuilder, StubBuilderFor } from \"./StubBuilders.js\";\nimport type { StubClient } from \"./StubClient.js\";\n\ntype QueryReturnTypeFromDef<Q extends QueryDefinition> = ReturnType<\n CompileTimeMetadata<Q>[\"signature\"]\n> extends Promise<infer R> ? R : never;\n\ntype QueryParamsFromDef<Q extends QueryDefinition> =\n Parameters<CompileTimeMetadata<Q>[\"signature\"]> extends [infer P] ? P\n : undefined;\n\nexport type StubPatternCallback<T> = (client: StubClient) => T;\n\nexport type ObjectSetStubCallback<Q extends ObjectOrInterfaceDefinition, T> = (\n os: ObjectSet<Q>,\n) => T;\n\nexport interface MockClient extends Client {\n when<T>(callback: StubPatternCallback<T>): StubBuilderFor<T>;\n whenObjectSet<Q extends ObjectOrInterfaceDefinition, T>(\n objectSet: ObjectSet<Q>,\n callback: ObjectSetStubCallback<Q, T>,\n ): StubBuilderFor<T>;\n whenQuery<Q extends QueryDefinition>(\n query: Q,\n params?: QueryParamsFromDef<Q>,\n ): QueryStubBuilder<QueryReturnTypeFromDef<Q>>;\n clearStubs(): void;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"MockClient.js","names":[],"sources":["MockClient.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n QueryDefinition,\n} from \"@osdk/api\";\nimport type { Client } from \"@osdk/client\";\n\nimport type { QueryStubBuilder, StubBuilderFor } from \"./StubBuilders.js\";\nimport type { StubClient } from \"./StubClient.js\";\n\ntype QueryReturnTypeFromDef<Q extends QueryDefinition> =\n ReturnType<CompileTimeMetadata<Q>[\"signature\"]> extends Promise<infer R>\n ? R\n : never;\n\ntype QueryParamsFromDef<Q extends QueryDefinition> =\n Parameters<CompileTimeMetadata<Q>[\"signature\"]> extends [infer P]\n ? P\n : undefined;\n\nexport type StubPatternCallback<T> = (client: StubClient) => T;\n\nexport type ObjectSetStubCallback<Q extends ObjectOrInterfaceDefinition, T> = (\n os: ObjectSet<Q>\n) => T;\n\nexport interface MockClient extends Client {\n when<T>(callback: StubPatternCallback<T>): StubBuilderFor<T>;\n whenObjectSet<Q extends ObjectOrInterfaceDefinition, T>(\n objectSet: ObjectSet<Q>,\n callback: ObjectSetStubCallback<Q, T>\n ): StubBuilderFor<T>;\n whenQuery<Q extends QueryDefinition>(\n query: Q,\n params?: QueryParamsFromDef<Q>\n ): QueryStubBuilder<QueryReturnTypeFromDef<Q>>;\n clearStubs(): void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"MockOsdkObjectOptions.js","names":[],"sources":["MockOsdkObjectOptions.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n LinkedType,\n LinkNames,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n} from \"@osdk/api\";\n\ntype LinkStubs<Q extends ObjectTypeDefinition> = {\n [LINK_NAME in LinkNames<Q>]?:\n CompileTimeMetadata<Q>[\"links\"][LINK_NAME][\"multiplicity\"] extends true ?\n | Array<Osdk.Instance<LinkedType<Q, LINK_NAME>>>\n | ObjectSet<LinkedType<Q, LINK_NAME>>\n : Osdk.Instance<LinkedType<Q, LINK_NAME>> | Error;\n};\n\n/**\n * Options for customizing mock object creation.\n */\nexport interface MockOsdkObjectOptions<\n Q extends ObjectTypeDefinition = ObjectTypeDefinition,\n> {\n /** Objects linked to this object by API name */\n links?: LinkStubs<Q>;\n /** The API name of the title property (optional, required for $title) */\n titlePropertyApiName?: string;\n /** Override the generated $rid */\n $rid?: string;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"MockOsdkObjectOptions.js","names":[],"sources":["MockOsdkObjectOptions.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n LinkedType,\n LinkNames,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n} from \"@osdk/api\";\n\ntype LinkStubs<Q extends ObjectTypeDefinition> = {\n [LINK_NAME in LinkNames<Q>]?: CompileTimeMetadata<Q>[\"links\"][LINK_NAME][\"multiplicity\"] extends true\n ?\n | Array<Osdk.Instance<LinkedType<Q, LINK_NAME>>>\n | ObjectSet<LinkedType<Q, LINK_NAME>>\n : Osdk.Instance<LinkedType<Q, LINK_NAME>> | Error;\n};\n\n/**\n * Options for customizing mock object creation.\n */\nexport interface MockOsdkObjectOptions<\n Q extends ObjectTypeDefinition = ObjectTypeDefinition,\n> {\n /** Objects linked to this object by API name */\n links?: LinkStubs<Q>;\n /** The API name of the title property (optional, required for $title) */\n titlePropertyApiName?: string;\n /** Override the generated $rid */\n $rid?: string;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"StubBuilders.js","names":[],"sources":["StubBuilders.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { PageResult } from \"@osdk/api\";\n\nexport interface FetchPageStubBuilder<T> {\n thenReturnObjects(objects: T[]): void;\n}\n\nexport interface FetchOneStubBuilder<T> {\n thenReturnObject(object: T): void;\n}\n\nexport interface AggregateStubBuilder<T> {\n thenReturnAggregation(result: T): void;\n}\n\nexport interface QueryStubBuilder<T> {\n thenReturn(result: T): void;\n thenThrow(error: Error): void;\n}\n\ntype IsOsdkObject<T> = T extends { $apiName: string } ? true : false;\n\nexport type StubBuilderFor<T> = T extends Promise<infer R> ? StubBuilderFor<R>\n : T extends AsyncIterableIterator<infer U> ? FetchPageStubBuilder<U>\n : T extends PageResult<infer U> ? FetchPageStubBuilder<U>\n : T extends { value: PageResult<infer U>; error?: never }\n ? FetchPageStubBuilder<U>\n : T extends { value: infer U; error?: never }\n ? (IsOsdkObject<U> extends true ? FetchOneStubBuilder<U>\n : AggregateStubBuilder<U>)\n : T extends { error: Error; value?: never } ? never\n : IsOsdkObject<T> extends true ? FetchOneStubBuilder<T>\n : AggregateStubBuilder<T>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"StubBuilders.js","names":[],"sources":["StubBuilders.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { PageResult } from \"@osdk/api\";\n\nexport interface FetchPageStubBuilder<T> {\n thenReturnObjects(objects: T[]): void;\n}\n\nexport interface FetchOneStubBuilder<T> {\n thenReturnObject(object: T): void;\n}\n\nexport interface AggregateStubBuilder<T> {\n thenReturnAggregation(result: T): void;\n}\n\nexport interface QueryStubBuilder<T> {\n thenReturn(result: T): void;\n thenThrow(error: Error): void;\n}\n\ntype IsOsdkObject<T> = T extends { $apiName: string } ? true : false;\n\nexport type StubBuilderFor<T> =\n T extends Promise<infer R>\n ? StubBuilderFor<R>\n : T extends AsyncIterableIterator<infer U>\n ? FetchPageStubBuilder<U>\n : T extends PageResult<infer U>\n ? FetchPageStubBuilder<U>\n : T extends { value: PageResult<infer U>; error?: never }\n ? FetchPageStubBuilder<U>\n : T extends { value: infer U; error?: never }\n ? IsOsdkObject<U> extends true\n ? FetchOneStubBuilder<U>\n : AggregateStubBuilder<U>\n : T extends { error: Error; value?: never }\n ? never\n : IsOsdkObject<T> extends true\n ? FetchOneStubBuilder<T>\n : AggregateStubBuilder<T>;\n"],"mappings":"","ignoreList":[]}
@@ -18,7 +18,7 @@ import { Employee } from "@osdk/client.test.ontology";
18
18
  export async function basicAggregate(client) {
19
19
  const aggregation = await client(Employee).where({
20
20
  employeeId: {
21
- "$eq": 5
21
+ $eq: 5
22
22
  }
23
23
  }).aggregate({
24
24
  $select: {
@@ -30,7 +30,7 @@ export async function basicAggregate(client) {
30
30
  }
31
31
  const aggregation2 = await client(Employee).where({
32
32
  employeeId: {
33
- "$eq": 5
33
+ $eq: 5
34
34
  }
35
35
  }).aggregate({
36
36
  $select: {
@@ -1 +1 @@
1
- {"version":3,"file":"basicAggregate.js","names":["Employee","basicAggregate","client","aggregation","where","employeeId","aggregate","$select","employeeLocation","exactDistinct","Error","JSON","stringify","aggregation2","$groupBy","$group","max","fullName","approximateDistinct"],"sources":["basicAggregate.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { Employee } from \"@osdk/client.test.ontology\";\nimport type { Integer } from \"@osdk/functions\";\n\nexport async function basicAggregate(\n client: Client,\n): Promise<Integer> {\n const aggregation = await client(Employee).where({ employeeId: { \"$eq\": 5 } })\n .aggregate({ $select: { \"employeeLocation:exactDistinct\": \"asc\" } });\n if (aggregation.employeeLocation.exactDistinct !== 3) {\n throw new Error(\n `Unexpected aggregation result: ${JSON.stringify(aggregation)}`,\n );\n }\n\n const aggregation2 = await client(Employee).where({\n employeeId: { \"$eq\": 5 },\n })\n .aggregate({\n $select: {\n \"employeeId:max\": \"unordered\",\n \"fullName:approximateDistinct\": \"unordered\",\n },\n $groupBy: { employeeId: \"exact\" },\n });\n\n if (\n aggregation2[0].$group.employeeId !== 5\n || aggregation2[0].employeeId.max !== 5\n || aggregation2[0].fullName.approximateDistinct !== 1\n ) {\n throw new Error(\n `Unexpected aggregation result: ${JSON.stringify(aggregation2)}`,\n );\n }\n\n return 1;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,QAAQ,QAAQ,4BAA4B;AAGrD,OAAO,eAAeC,cAAcA,CAClCC,MAAc,EACI;EAClB,MAAMC,WAAW,GAAG,MAAMD,MAAM,CAACF,QAAQ,CAAC,CAACI,KAAK,CAAC;IAAEC,UAAU,EAAE;MAAE,KAAK,EAAE;IAAE;EAAE,CAAC,CAAC,CAC3EC,SAAS,CAAC;IAAEC,OAAO,EAAE;MAAE,gCAAgC,EAAE;IAAM;EAAE,CAAC,CAAC;EACtE,IAAIJ,WAAW,CAACK,gBAAgB,CAACC,aAAa,KAAK,CAAC,EAAE;IACpD,MAAM,IAAIC,KAAK,CACb,kCAAkCC,IAAI,CAACC,SAAS,CAACT,WAAW,CAAC,EAC/D,CAAC;EACH;EAEA,MAAMU,YAAY,GAAG,MAAMX,MAAM,CAACF,QAAQ,CAAC,CAACI,KAAK,CAAC;IAChDC,UAAU,EAAE;MAAE,KAAK,EAAE;IAAE;EACzB,CAAC,CAAC,CACCC,SAAS,CAAC;IACTC,OAAO,EAAE;MACP,gBAAgB,EAAE,WAAW;MAC7B,8BAA8B,EAAE;IAClC,CAAC;IACDO,QAAQ,EAAE;MAAET,UAAU,EAAE;IAAQ;EAClC,CAAC,CAAC;EAEJ,IACEQ,YAAY,CAAC,CAAC,CAAC,CAACE,MAAM,CAACV,UAAU,KAAK,CAAC,IACpCQ,YAAY,CAAC,CAAC,CAAC,CAACR,UAAU,CAACW,GAAG,KAAK,CAAC,IACpCH,YAAY,CAAC,CAAC,CAAC,CAACI,QAAQ,CAACC,mBAAmB,KAAK,CAAC,EACrD;IACA,MAAM,IAAIR,KAAK,CACb,kCAAkCC,IAAI,CAACC,SAAS,CAACC,YAAY,CAAC,EAChE,CAAC;EACH;EAEA,OAAO,CAAC;AACV","ignoreList":[]}
1
+ {"version":3,"file":"basicAggregate.js","names":["Employee","basicAggregate","client","aggregation","where","employeeId","$eq","aggregate","$select","employeeLocation","exactDistinct","Error","JSON","stringify","aggregation2","$groupBy","$group","max","fullName","approximateDistinct"],"sources":["basicAggregate.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { Employee } from \"@osdk/client.test.ontology\";\nimport type { Integer } from \"@osdk/functions\";\n\nexport async function basicAggregate(client: Client): Promise<Integer> {\n const aggregation = await client(Employee)\n .where({ employeeId: { $eq: 5 } })\n .aggregate({ $select: { \"employeeLocation:exactDistinct\": \"asc\" } });\n if (aggregation.employeeLocation.exactDistinct !== 3) {\n throw new Error(\n `Unexpected aggregation result: ${JSON.stringify(aggregation)}`\n );\n }\n\n const aggregation2 = await client(Employee)\n .where({\n employeeId: { $eq: 5 },\n })\n .aggregate({\n $select: {\n \"employeeId:max\": \"unordered\",\n \"fullName:approximateDistinct\": \"unordered\",\n },\n $groupBy: { employeeId: \"exact\" },\n });\n\n if (\n aggregation2[0].$group.employeeId !== 5 ||\n aggregation2[0].employeeId.max !== 5 ||\n aggregation2[0].fullName.approximateDistinct !== 1\n ) {\n throw new Error(\n `Unexpected aggregation result: ${JSON.stringify(aggregation2)}`\n );\n }\n\n return 1;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,QAAQ,QAAQ,4BAA4B;AAGrD,OAAO,eAAeC,cAAcA,CAACC,MAAc,EAAoB;EACrE,MAAMC,WAAW,GAAG,MAAMD,MAAM,CAACF,QAAQ,CAAC,CACvCI,KAAK,CAAC;IAAEC,UAAU,EAAE;MAAEC,GAAG,EAAE;IAAE;EAAE,CAAC,CAAC,CACjCC,SAAS,CAAC;IAAEC,OAAO,EAAE;MAAE,gCAAgC,EAAE;IAAM;EAAE,CAAC,CAAC;EACtE,IAAIL,WAAW,CAACM,gBAAgB,CAACC,aAAa,KAAK,CAAC,EAAE;IACpD,MAAM,IAAIC,KAAK,CACb,kCAAkCC,IAAI,CAACC,SAAS,CAACV,WAAW,CAAC,EAC/D,CAAC;EACH;EAEA,MAAMW,YAAY,GAAG,MAAMZ,MAAM,CAACF,QAAQ,CAAC,CACxCI,KAAK,CAAC;IACLC,UAAU,EAAE;MAAEC,GAAG,EAAE;IAAE;EACvB,CAAC,CAAC,CACDC,SAAS,CAAC;IACTC,OAAO,EAAE;MACP,gBAAgB,EAAE,WAAW;MAC7B,8BAA8B,EAAE;IAClC,CAAC;IACDO,QAAQ,EAAE;MAAEV,UAAU,EAAE;IAAQ;EAClC,CAAC,CAAC;EAEJ,IACES,YAAY,CAAC,CAAC,CAAC,CAACE,MAAM,CAACX,UAAU,KAAK,CAAC,IACvCS,YAAY,CAAC,CAAC,CAAC,CAACT,UAAU,CAACY,GAAG,KAAK,CAAC,IACpCH,YAAY,CAAC,CAAC,CAAC,CAACI,QAAQ,CAACC,mBAAmB,KAAK,CAAC,EAClD;IACA,MAAM,IAAIR,KAAK,CACb,kCAAkCC,IAAI,CAACC,SAAS,CAACC,YAAY,CAAC,EAChE,CAAC;EACH;EAEA,OAAO,CAAC;AACV","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"basicFetchPage.js","names":["Employee","basicFetchPage","client","objects","fetchPage","object","data","Error","employeeId","fullName","JSON","stringify"],"sources":["basicFetchPage.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\nimport type { Client } from \"@osdk/client\";\nimport { Employee } from \"@osdk/client.test.ontology\";\n\nexport async function basicFetchPage(\n client: Client,\n): Promise<Osdk.Instance<Employee>> {\n const objects = await client(Employee).fetchPage();\n const object = objects.data[0];\n if (object == null) {\n throw new Error(\"No objects returned\");\n }\n if (object.employeeId !== 1 || object.fullName !== \"John\") {\n throw new Error(`Unexpected object returned: ${JSON.stringify(object)}`);\n }\n return object;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,QAAQ,QAAQ,4BAA4B;AAErD,OAAO,eAAeC,cAAcA,CAClCC,MAAc,EACoB;EAClC,MAAMC,OAAO,GAAG,MAAMD,MAAM,CAACF,QAAQ,CAAC,CAACI,SAAS,CAAC,CAAC;EAClD,MAAMC,MAAM,GAAGF,OAAO,CAACG,IAAI,CAAC,CAAC,CAAC;EAC9B,IAAID,MAAM,IAAI,IAAI,EAAE;IAClB,MAAM,IAAIE,KAAK,CAAC,qBAAqB,CAAC;EACxC;EACA,IAAIF,MAAM,CAACG,UAAU,KAAK,CAAC,IAAIH,MAAM,CAACI,QAAQ,KAAK,MAAM,EAAE;IACzD,MAAM,IAAIF,KAAK,CAAC,+BAA+BG,IAAI,CAACC,SAAS,CAACN,MAAM,CAAC,EAAE,CAAC;EAC1E;EACA,OAAOA,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"file":"basicFetchPage.js","names":["Employee","basicFetchPage","client","objects","fetchPage","object","data","Error","employeeId","fullName","JSON","stringify"],"sources":["basicFetchPage.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\nimport type { Client } from \"@osdk/client\";\nimport { Employee } from \"@osdk/client.test.ontology\";\n\nexport async function basicFetchPage(\n client: Client\n): Promise<Osdk.Instance<Employee>> {\n const objects = await client(Employee).fetchPage();\n const object = objects.data[0];\n if (object == null) {\n throw new Error(\"No objects returned\");\n }\n if (object.employeeId !== 1 || object.fullName !== \"John\") {\n throw new Error(`Unexpected object returned: ${JSON.stringify(object)}`);\n }\n return object;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,QAAQ,QAAQ,4BAA4B;AAErD,OAAO,eAAeC,cAAcA,CAClCC,MAAc,EACoB;EAClC,MAAMC,OAAO,GAAG,MAAMD,MAAM,CAACF,QAAQ,CAAC,CAACI,SAAS,CAAC,CAAC;EAClD,MAAMC,MAAM,GAAGF,OAAO,CAACG,IAAI,CAAC,CAAC,CAAC;EAC9B,IAAID,MAAM,IAAI,IAAI,EAAE;IAClB,MAAM,IAAIE,KAAK,CAAC,qBAAqB,CAAC;EACxC;EACA,IAAIF,MAAM,CAACG,UAAU,KAAK,CAAC,IAAIH,MAAM,CAACI,QAAQ,KAAK,MAAM,EAAE;IACzD,MAAM,IAAIF,KAAK,CAAC,+BAA+BG,IAAI,CAACC,SAAS,CAACN,MAAM,CAAC,EAAE,CAAC;EAC1E;EACA,OAAOA,MAAM;AACf","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"basicQuery.js","names":["addOne","basicQuery","client","n","result","executeFunction","Error"],"sources":["basicQuery.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { addOne } from \"@osdk/client.test.ontology\";\nimport type { Integer } from \"@osdk/functions\";\n\nexport async function basicQuery(\n client: Client,\n n: Integer,\n): Promise<Integer> {\n const result = await client(addOne).executeFunction({ n });\n if (result !== n + 1) {\n throw new Error(`Expected ${n + 1}, but got ${result}`);\n }\n return result;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,MAAM,QAAQ,4BAA4B;AAGnD,OAAO,eAAeC,UAAUA,CAC9BC,MAAc,EACdC,CAAU,EACQ;EAClB,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACF,MAAM,CAAC,CAACK,eAAe,CAAC;IAAEF;EAAE,CAAC,CAAC;EAC1D,IAAIC,MAAM,KAAKD,CAAC,GAAG,CAAC,EAAE;IACpB,MAAM,IAAIG,KAAK,CAAC,YAAYH,CAAC,GAAG,CAAC,aAAaC,MAAM,EAAE,CAAC;EACzD;EACA,OAAOA,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"file":"basicQuery.js","names":["addOne","basicQuery","client","n","result","executeFunction","Error"],"sources":["basicQuery.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { addOne } from \"@osdk/client.test.ontology\";\nimport type { Integer } from \"@osdk/functions\";\n\nexport async function basicQuery(client: Client, n: Integer): Promise<Integer> {\n const result = await client(addOne).executeFunction({ n });\n if (result !== n + 1) {\n throw new Error(`Expected ${n + 1}, but got ${result}`);\n }\n return result;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,MAAM,QAAQ,4BAA4B;AAGnD,OAAO,eAAeC,UAAUA,CAACC,MAAc,EAAEC,CAAU,EAAoB;EAC7E,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACF,MAAM,CAAC,CAACK,eAAe,CAAC;IAAEF;EAAE,CAAC,CAAC;EAC1D,IAAIC,MAAM,KAAKD,CAAC,GAAG,CAAC,EAAE;IACpB,MAAM,IAAIG,KAAK,CAAC,YAAYH,CAAC,GAAG,CAAC,aAAaC,MAAM,EAAE,CAAC;EACzD;EACA,OAAOA,MAAM;AACf","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"objectAsInput.js","names":["objectAsInput","object","$apiName","Error","employeeId"],"sources":["objectAsInput.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\n\nexport function objectAsInput(\n object: Osdk.Instance<Employee>,\n): Osdk.Instance<Employee> {\n if (object.$apiName !== \"Employee\") {\n throw new Error(\n `Expected object of type Employee, but got ${object.$apiName}`,\n );\n }\n if (object.employeeId == null) {\n throw new Error(\n `Expected object to have employeeId property, but it was missing`,\n );\n }\n return object;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASA,aAAaA,CAC3BC,MAA+B,EACN;EACzB,IAAIA,MAAM,CAACC,QAAQ,KAAK,UAAU,EAAE;IAClC,MAAM,IAAIC,KAAK,CACb,6CAA6CF,MAAM,CAACC,QAAQ,EAC9D,CAAC;EACH;EACA,IAAID,MAAM,CAACG,UAAU,IAAI,IAAI,EAAE;IAC7B,MAAM,IAAID,KAAK,CACb,iEACF,CAAC;EACH;EACA,OAAOF,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"file":"objectAsInput.js","names":["objectAsInput","object","$apiName","Error","employeeId"],"sources":["objectAsInput.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\n\nexport function objectAsInput(\n object: Osdk.Instance<Employee>\n): Osdk.Instance<Employee> {\n if (object.$apiName !== \"Employee\") {\n throw new Error(\n `Expected object of type Employee, but got ${object.$apiName}`\n );\n }\n if (object.employeeId == null) {\n throw new Error(\n `Expected object to have employeeId property, but it was missing`\n );\n }\n return object;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASA,aAAaA,CAC3BC,MAA+B,EACN;EACzB,IAAIA,MAAM,CAACC,QAAQ,KAAK,UAAU,EAAE;IAClC,MAAM,IAAIC,KAAK,CACb,6CAA6CF,MAAM,CAACC,QAAQ,EAC9D,CAAC;EACH;EACA,IAAID,MAAM,CAACG,UAAU,IAAI,IAAI,EAAE;IAC7B,MAAM,IAAID,KAAK,CACb,iEACF,CAAC;EACH;EACA,OAAOF,MAAM;AACf","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"objectSetAsInput.js","names":["getEmployeeNames","employees","page","fetchPage","data","map","emp","fullName","countEmployees","result","aggregate","$select","$count"],"sources":["objectSetAsInput.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectSet } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\n\nexport async function getEmployeeNames(\n employees: ObjectSet<Employee>,\n): Promise<string[]> {\n const page = await employees.fetchPage();\n return page.data.map((emp) => emp.fullName ?? \"Unknown\");\n}\n\nexport async function countEmployees(\n employees: ObjectSet<Employee>,\n): Promise<number> {\n const result = await employees.aggregate({\n $select: { $count: \"unordered\" },\n });\n return result.$count;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,eAAeA,gBAAgBA,CACpCC,SAA8B,EACX;EACnB,MAAMC,IAAI,GAAG,MAAMD,SAAS,CAACE,SAAS,CAAC,CAAC;EACxC,OAAOD,IAAI,CAACE,IAAI,CAACC,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,QAAQ,IAAI,SAAS,CAAC;AAC1D;AAEA,OAAO,eAAeC,cAAcA,CAClCP,SAA8B,EACb;EACjB,MAAMQ,MAAM,GAAG,MAAMR,SAAS,CAACS,SAAS,CAAC;IACvCC,OAAO,EAAE;MAAEC,MAAM,EAAE;IAAY;EACjC,CAAC,CAAC;EACF,OAAOH,MAAM,CAACG,MAAM;AACtB","ignoreList":[]}
1
+ {"version":3,"file":"objectSetAsInput.js","names":["getEmployeeNames","employees","page","fetchPage","data","map","emp","fullName","countEmployees","result","aggregate","$select","$count"],"sources":["objectSetAsInput.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectSet } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\n\nexport async function getEmployeeNames(\n employees: ObjectSet<Employee>\n): Promise<string[]> {\n const page = await employees.fetchPage();\n return page.data.map((emp) => emp.fullName ?? \"Unknown\");\n}\n\nexport async function countEmployees(\n employees: ObjectSet<Employee>\n): Promise<number> {\n const result = await employees.aggregate({\n $select: { $count: \"unordered\" },\n });\n return result.$count;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,eAAeA,gBAAgBA,CACpCC,SAA8B,EACX;EACnB,MAAMC,IAAI,GAAG,MAAMD,SAAS,CAACE,SAAS,CAAC,CAAC;EACxC,OAAOD,IAAI,CAACE,IAAI,CAACC,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,QAAQ,IAAI,SAAS,CAAC;AAC1D;AAEA,OAAO,eAAeC,cAAcA,CAClCP,SAA8B,EACb;EACjB,MAAMQ,MAAM,GAAG,MAAMR,SAAS,CAACS,SAAS,CAAC;IACvCC,OAAO,EAAE;MAAEC,MAAM,EAAE;IAAY;EACjC,CAAC,CAAC;EACF,OAAOH,MAAM,CAACG,MAAM;AACtB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"objectWithLinks.js","names":["getEmployeeOfficeName","employee","office","$link","officeLink","fetchOne","name","getEmployeePeepNames","page","peeps","fetchPage","data","map","peep","fullName","countEmployeePeeps","count","_peep","asyncIter","getSpecificPeep","peepId","countPeepsViaAggregate","result","aggregate","$select","$count"],"sources":["objectWithLinks.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\n\nexport async function getEmployeeOfficeName(\n employee: Osdk.Instance<Employee>,\n): Promise<string | undefined> {\n const office = await employee.$link.officeLink.fetchOne();\n return office.name;\n}\n\nexport async function getEmployeePeepNames(\n employee: Osdk.Instance<Employee>,\n): Promise<string[]> {\n const page = await employee.$link.peeps.fetchPage();\n return page.data.map((peep) => peep.fullName ?? \"Unknown\");\n}\n\nexport async function countEmployeePeeps(\n employee: Osdk.Instance<Employee>,\n): Promise<number> {\n let count = 0;\n for await (const _peep of employee.$link.peeps.asyncIter()) {\n count++;\n }\n return count;\n}\n\nexport async function getSpecificPeep(\n employee: Osdk.Instance<Employee>,\n peepId: number,\n): Promise<Osdk.Instance<Employee>> {\n return employee.$link.peeps.fetchOne(peepId);\n}\n\nexport async function countPeepsViaAggregate(\n employee: Osdk.Instance<Employee>,\n): Promise<number> {\n const result = await employee.$link.peeps.aggregate({\n $select: { $count: \"unordered\" },\n });\n return result.$count;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,eAAeA,qBAAqBA,CACzCC,QAAiC,EACJ;EAC7B,MAAMC,MAAM,GAAG,MAAMD,QAAQ,CAACE,KAAK,CAACC,UAAU,CAACC,QAAQ,CAAC,CAAC;EACzD,OAAOH,MAAM,CAACI,IAAI;AACpB;AAEA,OAAO,eAAeC,oBAAoBA,CACxCN,QAAiC,EACd;EACnB,MAAMO,IAAI,GAAG,MAAMP,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACC,SAAS,CAAC,CAAC;EACnD,OAAOF,IAAI,CAACG,IAAI,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,IAAI,SAAS,CAAC;AAC5D;AAEA,OAAO,eAAeC,kBAAkBA,CACtCd,QAAiC,EAChB;EACjB,IAAIe,KAAK,GAAG,CAAC;EACb,WAAW,MAAMC,KAAK,IAAIhB,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACS,SAAS,CAAC,CAAC,EAAE;IAC1DF,KAAK,EAAE;EACT;EACA,OAAOA,KAAK;AACd;AAEA,OAAO,eAAeG,eAAeA,CACnClB,QAAiC,EACjCmB,MAAc,EACoB;EAClC,OAAOnB,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACJ,QAAQ,CAACe,MAAM,CAAC;AAC9C;AAEA,OAAO,eAAeC,sBAAsBA,CAC1CpB,QAAiC,EAChB;EACjB,MAAMqB,MAAM,GAAG,MAAMrB,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC;IAClDC,OAAO,EAAE;MAAEC,MAAM,EAAE;IAAY;EACjC,CAAC,CAAC;EACF,OAAOH,MAAM,CAACG,MAAM;AACtB","ignoreList":[]}
1
+ {"version":3,"file":"objectWithLinks.js","names":["getEmployeeOfficeName","employee","office","$link","officeLink","fetchOne","name","getEmployeePeepNames","page","peeps","fetchPage","data","map","peep","fullName","countEmployeePeeps","count","_peep","asyncIter","getSpecificPeep","peepId","countPeepsViaAggregate","result","aggregate","$select","$count"],"sources":["objectWithLinks.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\n\nexport async function getEmployeeOfficeName(\n employee: Osdk.Instance<Employee>\n): Promise<string | undefined> {\n const office = await employee.$link.officeLink.fetchOne();\n return office.name;\n}\n\nexport async function getEmployeePeepNames(\n employee: Osdk.Instance<Employee>\n): Promise<string[]> {\n const page = await employee.$link.peeps.fetchPage();\n return page.data.map((peep) => peep.fullName ?? \"Unknown\");\n}\n\nexport async function countEmployeePeeps(\n employee: Osdk.Instance<Employee>\n): Promise<number> {\n let count = 0;\n for await (const _peep of employee.$link.peeps.asyncIter()) {\n count++;\n }\n return count;\n}\n\nexport async function getSpecificPeep(\n employee: Osdk.Instance<Employee>,\n peepId: number\n): Promise<Osdk.Instance<Employee>> {\n return employee.$link.peeps.fetchOne(peepId);\n}\n\nexport async function countPeepsViaAggregate(\n employee: Osdk.Instance<Employee>\n): Promise<number> {\n const result = await employee.$link.peeps.aggregate({\n $select: { $count: \"unordered\" },\n });\n return result.$count;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,eAAeA,qBAAqBA,CACzCC,QAAiC,EACJ;EAC7B,MAAMC,MAAM,GAAG,MAAMD,QAAQ,CAACE,KAAK,CAACC,UAAU,CAACC,QAAQ,CAAC,CAAC;EACzD,OAAOH,MAAM,CAACI,IAAI;AACpB;AAEA,OAAO,eAAeC,oBAAoBA,CACxCN,QAAiC,EACd;EACnB,MAAMO,IAAI,GAAG,MAAMP,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACC,SAAS,CAAC,CAAC;EACnD,OAAOF,IAAI,CAACG,IAAI,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,IAAI,SAAS,CAAC;AAC5D;AAEA,OAAO,eAAeC,kBAAkBA,CACtCd,QAAiC,EAChB;EACjB,IAAIe,KAAK,GAAG,CAAC;EACb,WAAW,MAAMC,KAAK,IAAIhB,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACS,SAAS,CAAC,CAAC,EAAE;IAC1DF,KAAK,EAAE;EACT;EACA,OAAOA,KAAK;AACd;AAEA,OAAO,eAAeG,eAAeA,CACnClB,QAAiC,EACjCmB,MAAc,EACoB;EAClC,OAAOnB,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACJ,QAAQ,CAACe,MAAM,CAAC;AAC9C;AAEA,OAAO,eAAeC,sBAAsBA,CAC1CpB,QAAiC,EAChB;EACjB,MAAMqB,MAAM,GAAG,MAAMrB,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC;IAClDC,OAAO,EAAE;MAAEC,MAAM,EAAE;IAAY;EACjC,CAAC,CAAC;EACF,OAAOH,MAAM,CAACG,MAAM;AACtB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ontologyEdits.js","names":["Employee","FooInterface","createEditBatch","ontologyEdits","client","object","editBatch","create","employeeId","fullName","update","favoriteRestaurants","delete","link","unlink","$objectType","fooIdp","getEdits"],"sources":["ontologyEdits.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client, Osdk } from \"@osdk/client\";\nimport type { $Interfaces } from \"@osdk/client.test.ontology\";\nimport { Employee, FooInterface } from \"@osdk/client.test.ontology\";\nimport { createEditBatch, type Edits } from \"@osdk/functions\";\n\ntype edits =\n | Edits.Object<Employee>\n | Edits.Link<Employee, \"peeps\">\n | Edits.Interface<$Interfaces.FooInterface>;\nexport function ontologyEdits(\n client: Client,\n object: Osdk.Instance<Employee>,\n): edits[] {\n const editBatch = createEditBatch<edits>(client);\n editBatch.create(Employee, { employeeId: 1, fullName: \"John Doe\" });\n\n editBatch.update(object, { favoriteRestaurants: [\"McDonald's\"] });\n\n editBatch.delete(object);\n\n editBatch.link(object, \"peeps\", object);\n editBatch.unlink(object, \"peeps\", object);\n\n editBatch.create(FooInterface, { $objectType: \"Employee\", fooIdp: \"bar\" });\n return editBatch.getEdits();\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,QAAQ,EAAEC,YAAY,QAAQ,4BAA4B;AACnE,SAASC,eAAe,QAAoB,iBAAiB;AAM7D,OAAO,SAASC,aAAaA,CAC3BC,MAAc,EACdC,MAA+B,EACtB;EACT,MAAMC,SAAS,GAAGJ,eAAe,CAAQE,MAAM,CAAC;EAChDE,SAAS,CAACC,MAAM,CAACP,QAAQ,EAAE;IAAEQ,UAAU,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAW,CAAC,CAAC;EAEnEH,SAAS,CAACI,MAAM,CAACL,MAAM,EAAE;IAAEM,mBAAmB,EAAE,CAAC,YAAY;EAAE,CAAC,CAAC;EAEjEL,SAAS,CAACM,MAAM,CAACP,MAAM,CAAC;EAExBC,SAAS,CAACO,IAAI,CAACR,MAAM,EAAE,OAAO,EAAEA,MAAM,CAAC;EACvCC,SAAS,CAACQ,MAAM,CAACT,MAAM,EAAE,OAAO,EAAEA,MAAM,CAAC;EAEzCC,SAAS,CAACC,MAAM,CAACN,YAAY,EAAE;IAAEc,WAAW,EAAE,UAAU;IAAEC,MAAM,EAAE;EAAM,CAAC,CAAC;EAC1E,OAAOV,SAAS,CAACW,QAAQ,CAAC,CAAC;AAC7B","ignoreList":[]}
1
+ {"version":3,"file":"ontologyEdits.js","names":["Employee","FooInterface","createEditBatch","ontologyEdits","client","object","editBatch","create","employeeId","fullName","update","favoriteRestaurants","delete","link","unlink","$objectType","fooIdp","getEdits"],"sources":["ontologyEdits.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client, Osdk } from \"@osdk/client\";\nimport type { $Interfaces } from \"@osdk/client.test.ontology\";\nimport { Employee, FooInterface } from \"@osdk/client.test.ontology\";\nimport { createEditBatch, type Edits } from \"@osdk/functions\";\n\ntype edits =\n | Edits.Object<Employee>\n | Edits.Link<Employee, \"peeps\">\n | Edits.Interface<$Interfaces.FooInterface>;\nexport function ontologyEdits(\n client: Client,\n object: Osdk.Instance<Employee>\n): edits[] {\n const editBatch = createEditBatch<edits>(client);\n editBatch.create(Employee, { employeeId: 1, fullName: \"John Doe\" });\n\n editBatch.update(object, { favoriteRestaurants: [\"McDonald's\"] });\n\n editBatch.delete(object);\n\n editBatch.link(object, \"peeps\", object);\n editBatch.unlink(object, \"peeps\", object);\n\n editBatch.create(FooInterface, { $objectType: \"Employee\", fooIdp: \"bar\" });\n return editBatch.getEdits();\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,QAAQ,EAAEC,YAAY,QAAQ,4BAA4B;AACnE,SAASC,eAAe,QAAoB,iBAAiB;AAM7D,OAAO,SAASC,aAAaA,CAC3BC,MAAc,EACdC,MAA+B,EACtB;EACT,MAAMC,SAAS,GAAGJ,eAAe,CAAQE,MAAM,CAAC;EAChDE,SAAS,CAACC,MAAM,CAACP,QAAQ,EAAE;IAAEQ,UAAU,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAW,CAAC,CAAC;EAEnEH,SAAS,CAACI,MAAM,CAACL,MAAM,EAAE;IAAEM,mBAAmB,EAAE,CAAC,YAAY;EAAE,CAAC,CAAC;EAEjEL,SAAS,CAACM,MAAM,CAACP,MAAM,CAAC;EAExBC,SAAS,CAACO,IAAI,CAACR,MAAM,EAAE,OAAO,EAAEA,MAAM,CAAC;EACvCC,SAAS,CAACQ,MAAM,CAACT,MAAM,EAAE,OAAO,EAAEA,MAAM,CAAC;EAEzCC,SAAS,CAACC,MAAM,CAACN,YAAY,EAAE;IAAEc,WAAW,EAAE,UAAU;IAAEC,MAAM,EAAE;EAAM,CAAC,CAAC;EAC1E,OAAOV,SAAS,CAACW,QAAQ,CAAC,CAAC;AAC7B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"platformApiWithMsw.js","names":["Users","requireAdminUser","client","user","getCurrent","username","endsWith","Error"],"sources":["platformApiWithMsw.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { Users } from \"@osdk/foundry.admin\";\n\nexport async function requireAdminUser(\n client: Client,\n): Promise<string> {\n const user = await Users.getCurrent(client);\n if (!user.username.endsWith(\"@admin\")) {\n throw new Error(`User ${user.username} is not an admin`);\n }\n return user.username;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,KAAK,QAAQ,qBAAqB;AAE3C,OAAO,eAAeC,gBAAgBA,CACpCC,MAAc,EACG;EACjB,MAAMC,IAAI,GAAG,MAAMH,KAAK,CAACI,UAAU,CAACF,MAAM,CAAC;EAC3C,IAAI,CAACC,IAAI,CAACE,QAAQ,CAACC,QAAQ,CAAC,QAAQ,CAAC,EAAE;IACrC,MAAM,IAAIC,KAAK,CAAC,QAAQJ,IAAI,CAACE,QAAQ,kBAAkB,CAAC;EAC1D;EACA,OAAOF,IAAI,CAACE,QAAQ;AACtB","ignoreList":[]}
1
+ {"version":3,"file":"platformApiWithMsw.js","names":["Users","requireAdminUser","client","user","getCurrent","username","endsWith","Error"],"sources":["platformApiWithMsw.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { Users } from \"@osdk/foundry.admin\";\n\nexport async function requireAdminUser(client: Client): Promise<string> {\n const user = await Users.getCurrent(client);\n if (!user.username.endsWith(\"@admin\")) {\n throw new Error(`User ${user.username} is not an admin`);\n }\n return user.username;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,KAAK,QAAQ,qBAAqB;AAE3C,OAAO,eAAeC,gBAAgBA,CAACC,MAAc,EAAmB;EACtE,MAAMC,IAAI,GAAG,MAAMH,KAAK,CAACI,UAAU,CAACF,MAAM,CAAC;EAC3C,IAAI,CAACC,IAAI,CAACE,QAAQ,CAACC,QAAQ,CAAC,QAAQ,CAAC,EAAE;IACrC,MAAM,IAAIC,KAAK,CAAC,QAAQJ,IAAI,CAACE,QAAQ,kBAAkB,CAAC;EAC1D;EACA,OAAOF,IAAI,CAACE,QAAQ;AACtB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"queryWithArrayParams.js","names":["queryTypeReturnsArray","queryWithArrayParams","client","people","result","executeFunction","Array","isArray","Error"],"sources":["queryWithArrayParams.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { queryTypeReturnsArray } from \"@osdk/client.test.ontology\";\n\nexport async function queryWithArrayParams(\n client: Client,\n people: readonly string[],\n): Promise<string[]> {\n const result = await client(queryTypeReturnsArray).executeFunction({\n people,\n });\n\n if (!Array.isArray(result)) {\n throw new Error(\"Expected array result\");\n }\n\n return result;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,qBAAqB,QAAQ,4BAA4B;AAElE,OAAO,eAAeC,oBAAoBA,CACxCC,MAAc,EACdC,MAAyB,EACN;EACnB,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACF,qBAAqB,CAAC,CAACK,eAAe,CAAC;IACjEF;EACF,CAAC,CAAC;EAEF,IAAI,CAACG,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,EAAE;IAC1B,MAAM,IAAII,KAAK,CAAC,uBAAuB,CAAC;EAC1C;EAEA,OAAOJ,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"file":"queryWithArrayParams.js","names":["queryTypeReturnsArray","queryWithArrayParams","client","people","result","executeFunction","Array","isArray","Error"],"sources":["queryWithArrayParams.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { queryTypeReturnsArray } from \"@osdk/client.test.ontology\";\n\nexport async function queryWithArrayParams(\n client: Client,\n people: readonly string[]\n): Promise<string[]> {\n const result = await client(queryTypeReturnsArray).executeFunction({\n people,\n });\n\n if (!Array.isArray(result)) {\n throw new Error(\"Expected array result\");\n }\n\n return result;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,qBAAqB,QAAQ,4BAA4B;AAElE,OAAO,eAAeC,oBAAoBA,CACxCC,MAAc,EACdC,MAAyB,EACN;EACnB,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACF,qBAAqB,CAAC,CAACK,eAAe,CAAC;IACjEF;EACF,CAAC,CAAC;EAEF,IAAI,CAACG,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,EAAE;IAC1B,MAAM,IAAII,KAAK,CAAC,uBAAuB,CAAC;EAC1C;EAEA,OAAOJ,MAAM;AACf","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"createMockAttachment.js","names":["invariant","createMockAttachment","rid","blob","metadata","fetchContents","process","env","NODE_ENV","Promise","resolve","Response","fetchMetadata"],"sources":["createMockAttachment.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Attachment, AttachmentMetadata } from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\n\nexport function createMockAttachment(\n rid: string,\n blob?: Blob,\n metadata?: AttachmentMetadata,\n): Attachment {\n return {\n rid,\n fetchContents() {\n invariant(\n blob != null,\n `fetchContents was called on mock attachment \"${rid}\" but no blob was provided. `\n + `Pass a Blob as the second argument to createMockAttachment to stub fetchContents.`,\n );\n return Promise.resolve(new Response(blob));\n },\n fetchMetadata() {\n invariant(\n metadata != null,\n `fetchMetadata was called on mock attachment \"${rid}\" but no metadata was provided. `\n + `Pass AttachmentMetadata as the third argument to createMockAttachment to stub fetchMetadata.`,\n );\n return Promise.resolve(metadata);\n },\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,SAAS,MAAM,gBAAgB;AAEtC,OAAO,SAASC,oBAAoBA,CAClCC,GAAW,EACXC,IAAW,EACXC,QAA6B,EACjB;EACZ,OAAO;IACLF,GAAG;IACHG,aAAaA,CAAA,EAAG;MACd,EACEF,IAAI,IAAI,IAAI,IAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADdR,SAAS,QAEP,gDAAgDE,GAAG,8BAA8B,GAC7E,mFAAmF,IAHzFF,SAAS;MAKT,OAAOS,OAAO,CAACC,OAAO,CAAC,IAAIC,QAAQ,CAACR,IAAI,CAAC,CAAC;IAC5C,CAAC;IACDS,aAAaA,CAAA,EAAG;MACd,EACER,QAAQ,IAAI,IAAI,IAAAE,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADlBR,SAAS,QAEP,gDAAgDE,GAAG,kCAAkC,GACjF,8FAA8F,IAHpGF,SAAS;MAKT,OAAOS,OAAO,CAACC,OAAO,CAACN,QAAQ,CAAC;IAClC;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"createMockAttachment.js","names":["invariant","createMockAttachment","rid","blob","metadata","fetchContents","process","env","NODE_ENV","Promise","resolve","Response","fetchMetadata"],"sources":["createMockAttachment.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Attachment, AttachmentMetadata } from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\n\nexport function createMockAttachment(\n rid: string,\n blob?: Blob,\n metadata?: AttachmentMetadata\n): Attachment {\n return {\n rid,\n fetchContents() {\n invariant(\n blob != null,\n `fetchContents was called on mock attachment \"${rid}\" but no blob was provided. ` +\n `Pass a Blob as the second argument to createMockAttachment to stub fetchContents.`\n );\n return Promise.resolve(new Response(blob));\n },\n fetchMetadata() {\n invariant(\n metadata != null,\n `fetchMetadata was called on mock attachment \"${rid}\" but no metadata was provided. ` +\n `Pass AttachmentMetadata as the third argument to createMockAttachment to stub fetchMetadata.`\n );\n return Promise.resolve(metadata);\n },\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,SAAS,MAAM,gBAAgB;AAEtC,OAAO,SAASC,oBAAoBA,CAClCC,GAAW,EACXC,IAAW,EACXC,QAA6B,EACjB;EACZ,OAAO;IACLF,GAAG;IACHG,aAAaA,CAAA,EAAG;MACd,EACEF,IAAI,IAAI,IAAI,IAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADdR,SAAS,QAEP,gDAAgDE,GAAG,8BAA8B,GAC/E,mFAAmF,IAHvFF,SAAS;MAKT,OAAOS,OAAO,CAACC,OAAO,CAAC,IAAIC,QAAQ,CAACR,IAAI,CAAC,CAAC;IAC5C,CAAC;IACDS,aAAaA,CAAA,EAAG;MACd,EACER,QAAQ,IAAI,IAAI,IAAAE,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADlBR,SAAS,QAEP,gDAAgDE,GAAG,kCAAkC,GACnF,8FAA8F,IAHlGF,SAAS;MAKT,OAAOS,OAAO,CAACC,OAAO,CAACN,QAAQ,CAAC;IAClC;EACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"createMockClient.js","names":["createPlatformClient","invariant","createMockObjectSetWithResolver","deepEqual","resolveStub","SYMBOL_CLIENT_CONTEXT","createMockClient","stubs","queryStubs","resolve","objectType","calls","filter","s","resolveQuery","queryApiName","params","stub","error","undefined","value","Error","mockClient","def","process","env","NODE_ENV","type","executeFunction","Promise","apiName","e","reject","when","callback","captured","data","nextPageToken","register","push","thenReturnObjects","thenReturnObject","thenReturnAggregation","whenObjectSet","objectSet","capturedCalls","capturingProxy","$objectSetInternals","__registerStub","whenQuery","query","thenReturn","result","thenThrow","clearStubs","length","fetchMetadata","Object","defineProperty","enumerable"],"sources":["createMockClient.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n QueryDefinition,\n} from \"@osdk/api\";\nimport { createPlatformClient } from \"@osdk/client\";\nimport invariant from \"tiny-invariant\";\nimport type {\n MockClient,\n ObjectSetStubCallback,\n StubPatternCallback,\n} from \"../api/MockClient.js\";\nimport type { QueryStubBuilder, StubBuilderFor } from \"../api/StubBuilders.js\";\nimport type { StubClient } from \"../api/StubClient.js\";\nimport { type MockObjectSetBranded } from \"./createMockObjectSet.js\";\nimport {\n type Call,\n createMockObjectSetWithResolver,\n deepEqual,\n resolveStub,\n type Stub,\n} from \"./createMockObjectSetWithResolver.js\";\n\ntype ClientStub = Stub & { objectType: string };\n\ntype QueryStub = {\n queryApiName: string;\n params: unknown;\n value?: unknown;\n error?: Error;\n};\n\ntype QueryReturnTypeFromDef<Q extends QueryDefinition> = ReturnType<\n CompileTimeMetadata<Q>[\"signature\"]\n> extends Promise<infer R> ? R : never;\n\ntype QueryParamsFromDef<Q extends QueryDefinition> =\n Parameters<CompileTimeMetadata<Q>[\"signature\"]> extends [infer P] ? P\n : undefined;\n\n// Well-known string key used by Foundry Platform APIs to pull the\n// SharedClientContext (baseUrl, tokenProvider, fetch) off a client. Matches\n// the value of `symbolClientContext` in `@osdk/shared.client2`.\nconst SYMBOL_CLIENT_CONTEXT = \"__osdkClientContext\";\n\nexport function createMockClient(): MockClient {\n const stubs: ClientStub[] = [];\n const queryStubs: QueryStub[] = [];\n\n const resolve = (objectType: string, calls: Call[]): unknown =>\n resolveStub(\n stubs.filter(s => s.objectType === objectType),\n calls,\n `No stub for request\\n`,\n );\n\n const resolveQuery = (queryApiName: string, params: unknown): unknown => {\n for (const stub of queryStubs) {\n if (stub.queryApiName !== queryApiName) continue;\n if (deepEqual(stub.params, params)) {\n if (stub.error !== undefined) {\n throw stub.error;\n }\n return stub.value;\n }\n }\n\n const msg = `No stub for query '${queryApiName}'`;\n throw new Error(msg);\n };\n\n const mockClient = ((\n def: ObjectOrInterfaceDefinition | QueryDefinition,\n ) => {\n invariant(\"apiName\" in def, \"Expected ObjectType, Interface, or Query\");\n\n if (def.type === \"query\") {\n return {\n executeFunction: (params?: unknown) => {\n try {\n return Promise.resolve(resolveQuery(def.apiName, params));\n } catch (e) {\n return Promise.reject(e);\n }\n },\n };\n }\n\n return createMockObjectSetWithResolver(\n def,\n (calls) => resolve(def.apiName, calls),\n );\n }) as MockClient;\n\n mockClient.when = <T>(\n callback: StubPatternCallback<T>,\n ): StubBuilderFor<T> => {\n let captured: { objectType: string; calls: Call[] } | undefined;\n\n const stubClient: StubClient = (def: ObjectOrInterfaceDefinition) => {\n return createMockObjectSetWithResolver(def, (calls) => {\n captured = { objectType: def.apiName, calls };\n return { data: [], nextPageToken: undefined };\n });\n };\n\n // The callback actually runs synchronously but all terminal methods are typed as async.\n void callback(stubClient);\n\n const register = (value: unknown) => {\n if (captured) stubs.push({ ...captured, value });\n };\n\n return {\n thenReturnObjects: register,\n thenReturnObject: register,\n thenReturnAggregation: register,\n } as unknown as StubBuilderFor<T>;\n };\n\n mockClient.whenObjectSet = <\n Q extends ObjectOrInterfaceDefinition,\n T,\n >(\n objectSet: ObjectSet<Q>,\n callback: ObjectSetStubCallback<Q, T>,\n ): StubBuilderFor<T> => {\n let capturedCalls: Call[] | undefined;\n\n const capturingProxy = createMockObjectSetWithResolver(\n objectSet.$objectSetInternals.def,\n (calls) => {\n capturedCalls = calls;\n return { data: [], nextPageToken: undefined };\n },\n );\n\n void callback(capturingProxy);\n\n const branded = objectSet as unknown as MockObjectSetBranded<Q>;\n\n const register = (value: unknown) => {\n if (capturedCalls) {\n branded.__registerStub(capturedCalls, value);\n }\n };\n\n return {\n thenReturnObjects: register,\n thenReturnObject: register,\n thenReturnAggregation: register,\n } as unknown as StubBuilderFor<T>;\n };\n\n mockClient.whenQuery = <Q extends QueryDefinition>(\n query: Q,\n params?: QueryParamsFromDef<Q>,\n ): QueryStubBuilder<QueryReturnTypeFromDef<Q>> => {\n return {\n thenReturn: (result: QueryReturnTypeFromDef<Q>) => {\n queryStubs.push({\n queryApiName: query.apiName,\n params,\n value: result,\n });\n },\n thenThrow: (error: Error) => {\n queryStubs.push({\n queryApiName: query.apiName,\n params,\n error,\n });\n },\n };\n };\n\n mockClient.clearStubs = () => {\n stubs.length = 0;\n queryStubs.length = 0;\n };\n\n mockClient.fetchMetadata = async () => {\n invariant(false, \"fetchMetadata is not supported in mocks\");\n };\n\n // Attach a SharedClientContext so Foundry Platform API helpers\n // (e.g. `Users.getCurrent(client)`) don't crash inside `foundryPlatformFetch`\n // on an undefined `baseUrl` before any request is made. Callers intercept the\n // actual HTTP layer themselves (MSW, vi.spyOn(globalThis, \"fetch\"), etc.).\n Object.defineProperty(mockClient, SYMBOL_CLIENT_CONTEXT, {\n value: createPlatformClient(\n \"https://mock.invalid/\",\n async () => \"mock-token\",\n ),\n enumerable: false,\n });\n\n // TODO: Implement WriteableClient operations\n\n return mockClient;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createMockClient.js","names":["createPlatformClient","invariant","createMockObjectSetWithResolver","deepEqual","resolveStub","SYMBOL_CLIENT_CONTEXT","createMockClient","stubs","queryStubs","resolve","objectType","calls","filter","s","resolveQuery","queryApiName","params","stub","error","undefined","value","Error","mockClient","def","process","env","NODE_ENV","type","executeFunction","Promise","apiName","e","reject","when","callback","captured","data","nextPageToken","register","push","thenReturnObjects","thenReturnObject","thenReturnAggregation","whenObjectSet","objectSet","capturedCalls","capturingProxy","$objectSetInternals","__registerStub","whenQuery","query","thenReturn","result","thenThrow","clearStubs","length","fetchMetadata","Object","defineProperty","enumerable"],"sources":["createMockClient.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n QueryDefinition,\n} from \"@osdk/api\";\nimport { createPlatformClient } from \"@osdk/client\";\nimport invariant from \"tiny-invariant\";\n\nimport type {\n MockClient,\n ObjectSetStubCallback,\n StubPatternCallback,\n} from \"../api/MockClient.js\";\nimport type { QueryStubBuilder, StubBuilderFor } from \"../api/StubBuilders.js\";\nimport type { StubClient } from \"../api/StubClient.js\";\nimport { type MockObjectSetBranded } from \"./createMockObjectSet.js\";\nimport {\n type Call,\n createMockObjectSetWithResolver,\n deepEqual,\n resolveStub,\n type Stub,\n} from \"./createMockObjectSetWithResolver.js\";\n\ntype ClientStub = Stub & { objectType: string };\n\ntype QueryStub = {\n queryApiName: string;\n params: unknown;\n value?: unknown;\n error?: Error;\n};\n\ntype QueryReturnTypeFromDef<Q extends QueryDefinition> =\n ReturnType<CompileTimeMetadata<Q>[\"signature\"]> extends Promise<infer R>\n ? R\n : never;\n\ntype QueryParamsFromDef<Q extends QueryDefinition> =\n Parameters<CompileTimeMetadata<Q>[\"signature\"]> extends [infer P]\n ? P\n : undefined;\n\n// Well-known string key used by Foundry Platform APIs to pull the\n// SharedClientContext (baseUrl, tokenProvider, fetch) off a client. Matches\n// the value of `symbolClientContext` in `@osdk/shared.client2`.\nconst SYMBOL_CLIENT_CONTEXT = \"__osdkClientContext\";\n\nexport function createMockClient(): MockClient {\n const stubs: ClientStub[] = [];\n const queryStubs: QueryStub[] = [];\n\n const resolve = (objectType: string, calls: Call[]): unknown =>\n resolveStub(\n stubs.filter((s) => s.objectType === objectType),\n calls,\n `No stub for request\\n`\n );\n\n const resolveQuery = (queryApiName: string, params: unknown): unknown => {\n for (const stub of queryStubs) {\n if (stub.queryApiName !== queryApiName) continue;\n if (deepEqual(stub.params, params)) {\n if (stub.error !== undefined) {\n throw stub.error;\n }\n return stub.value;\n }\n }\n\n const msg = `No stub for query '${queryApiName}'`;\n throw new Error(msg);\n };\n\n const mockClient = ((def: ObjectOrInterfaceDefinition | QueryDefinition) => {\n invariant(\"apiName\" in def, \"Expected ObjectType, Interface, or Query\");\n\n if (def.type === \"query\") {\n return {\n executeFunction: (params?: unknown) => {\n try {\n return Promise.resolve(resolveQuery(def.apiName, params));\n } catch (e) {\n return Promise.reject(e);\n }\n },\n };\n }\n\n return createMockObjectSetWithResolver(def, (calls) =>\n resolve(def.apiName, calls)\n );\n }) as MockClient;\n\n mockClient.when = <T>(\n callback: StubPatternCallback<T>\n ): StubBuilderFor<T> => {\n let captured: { objectType: string; calls: Call[] } | undefined;\n\n const stubClient: StubClient = (def: ObjectOrInterfaceDefinition) => {\n return createMockObjectSetWithResolver(def, (calls) => {\n captured = { objectType: def.apiName, calls };\n return { data: [], nextPageToken: undefined };\n });\n };\n\n // The callback actually runs synchronously but all terminal methods are typed as async.\n void callback(stubClient);\n\n const register = (value: unknown) => {\n if (captured) stubs.push({ ...captured, value });\n };\n\n return {\n thenReturnObjects: register,\n thenReturnObject: register,\n thenReturnAggregation: register,\n } as unknown as StubBuilderFor<T>;\n };\n\n mockClient.whenObjectSet = <Q extends ObjectOrInterfaceDefinition, T>(\n objectSet: ObjectSet<Q>,\n callback: ObjectSetStubCallback<Q, T>\n ): StubBuilderFor<T> => {\n let capturedCalls: Call[] | undefined;\n\n const capturingProxy = createMockObjectSetWithResolver(\n objectSet.$objectSetInternals.def,\n (calls) => {\n capturedCalls = calls;\n return { data: [], nextPageToken: undefined };\n }\n );\n\n void callback(capturingProxy);\n\n const branded = objectSet as unknown as MockObjectSetBranded<Q>;\n\n const register = (value: unknown) => {\n if (capturedCalls) {\n branded.__registerStub(capturedCalls, value);\n }\n };\n\n return {\n thenReturnObjects: register,\n thenReturnObject: register,\n thenReturnAggregation: register,\n } as unknown as StubBuilderFor<T>;\n };\n\n mockClient.whenQuery = <Q extends QueryDefinition>(\n query: Q,\n params?: QueryParamsFromDef<Q>\n ): QueryStubBuilder<QueryReturnTypeFromDef<Q>> => {\n return {\n thenReturn: (result: QueryReturnTypeFromDef<Q>) => {\n queryStubs.push({\n queryApiName: query.apiName,\n params,\n value: result,\n });\n },\n thenThrow: (error: Error) => {\n queryStubs.push({\n queryApiName: query.apiName,\n params,\n error,\n });\n },\n };\n };\n\n mockClient.clearStubs = () => {\n stubs.length = 0;\n queryStubs.length = 0;\n };\n\n mockClient.fetchMetadata = async () => {\n invariant(false, \"fetchMetadata is not supported in mocks\");\n };\n\n // Attach a SharedClientContext so Foundry Platform API helpers\n // (e.g. `Users.getCurrent(client)`) don't crash inside `foundryPlatformFetch`\n // on an undefined `baseUrl` before any request is made. Callers intercept the\n // actual HTTP layer themselves (MSW, vi.spyOn(globalThis, \"fetch\"), etc.).\n Object.defineProperty(mockClient, SYMBOL_CLIENT_CONTEXT, {\n value: createPlatformClient(\n \"https://mock.invalid/\",\n async () => \"mock-token\"\n ),\n enumerable: false,\n });\n\n // TODO: Implement WriteableClient operations\n\n return mockClient;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"createMockObjectSet.js","names":["createMockObjectSetWithResolver","resolveStub","MOCK_OBJECT_SET_BRAND","Symbol","createMockObjectSet","objectType","stubs","objectSet","calls","__registerStub","value","push","isMockObjectSet"],"sources":["createMockObjectSet.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectOrInterfaceDefinition, ObjectSet } from \"@osdk/api\";\nimport {\n type Call,\n createMockObjectSetWithResolver,\n resolveStub,\n type Stub,\n} from \"./createMockObjectSetWithResolver.js\";\n\nconst MOCK_OBJECT_SET_BRAND: unique symbol = Symbol(\"MOCK_OBJECT_SET_BRAND\");\n\nexport type MockObjectSetBranded<Q extends ObjectOrInterfaceDefinition> =\n & ObjectSet<Q>\n & {\n [MOCK_OBJECT_SET_BRAND]: true;\n __registerStub(calls: Call[], value: unknown): void;\n };\n\nexport function createMockObjectSet<Q extends ObjectOrInterfaceDefinition>(\n objectType: Q,\n): ObjectSet<Q> {\n const stubs: Stub[] = [];\n\n const resolve = (calls: Call[]): unknown =>\n resolveStub(\n stubs,\n calls,\n `No stub registered on standalone MockObjectSet\\n`,\n );\n\n const objectSet = createMockObjectSetWithResolver(\n objectType,\n resolve,\n ) as MockObjectSetBranded<Q>;\n\n objectSet[MOCK_OBJECT_SET_BRAND] = true;\n (objectSet as any).__registerStub = (calls: Call[], value: unknown) => {\n stubs.push({ calls, value });\n };\n\n return objectSet;\n}\n\n/** @internal */\nexport function isMockObjectSet(\n value: unknown,\n): value is MockObjectSetBranded<ObjectOrInterfaceDefinition> {\n return value != null\n && typeof value === \"object\"\n && MOCK_OBJECT_SET_BRAND in value;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAEEA,+BAA+B,EAC/BC,WAAW,QAEN,sCAAsC;AAE7C,MAAMC,qBAAoC,GAAGC,MAAM,CAAC,uBAAuB,CAAC;AAS5E,OAAO,SAASC,mBAAmBA,CACjCC,UAAa,EACC;EACd,MAAMC,KAAa,GAAG,EAAE;EASxB,MAAMC,SAAS,GAAGP,+BAA+B,CAC/CK,UAAU,EARKG,KAAa,IAC5BP,WAAW,CACTK,KAAK,EACLE,KAAK,EACL,kDACF,CAKF,CAA4B;EAE5BD,SAAS,CAACL,qBAAqB,CAAC,GAAG,IAAI;EACtCK,SAAS,CAASE,cAAc,GAAG,CAACD,KAAa,EAAEE,KAAc,KAAK;IACrEJ,KAAK,CAACK,IAAI,CAAC;MAAEH,KAAK;MAAEE;IAAM,CAAC,CAAC;EAC9B,CAAC;EAED,OAAOH,SAAS;AAClB;;AAEA;AACA,OAAO,SAASK,eAAeA,CAC7BF,KAAc,EAC8C;EAC5D,OAAOA,KAAK,IAAI,IAAI,IACf,OAAOA,KAAK,KAAK,QAAQ,IACzBR,qBAAqB,IAAIQ,KAAK;AACrC","ignoreList":[]}
1
+ {"version":3,"file":"createMockObjectSet.js","names":["createMockObjectSetWithResolver","resolveStub","MOCK_OBJECT_SET_BRAND","Symbol","createMockObjectSet","objectType","stubs","objectSet","calls","__registerStub","value","push","isMockObjectSet"],"sources":["createMockObjectSet.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectOrInterfaceDefinition, ObjectSet } from \"@osdk/api\";\n\nimport {\n type Call,\n createMockObjectSetWithResolver,\n resolveStub,\n type Stub,\n} from \"./createMockObjectSetWithResolver.js\";\n\nconst MOCK_OBJECT_SET_BRAND: unique symbol = Symbol(\"MOCK_OBJECT_SET_BRAND\");\n\nexport type MockObjectSetBranded<Q extends ObjectOrInterfaceDefinition> =\n ObjectSet<Q> & {\n [MOCK_OBJECT_SET_BRAND]: true;\n __registerStub(calls: Call[], value: unknown): void;\n };\n\nexport function createMockObjectSet<Q extends ObjectOrInterfaceDefinition>(\n objectType: Q\n): ObjectSet<Q> {\n const stubs: Stub[] = [];\n\n const resolve = (calls: Call[]): unknown =>\n resolveStub(\n stubs,\n calls,\n `No stub registered on standalone MockObjectSet\\n`\n );\n\n const objectSet = createMockObjectSetWithResolver(\n objectType,\n resolve\n ) as MockObjectSetBranded<Q>;\n\n objectSet[MOCK_OBJECT_SET_BRAND] = true;\n (objectSet as any).__registerStub = (calls: Call[], value: unknown) => {\n stubs.push({ calls, value });\n };\n\n return objectSet;\n}\n\n/** @internal */\nexport function isMockObjectSet(\n value: unknown\n): value is MockObjectSetBranded<ObjectOrInterfaceDefinition> {\n return (\n value != null && typeof value === \"object\" && MOCK_OBJECT_SET_BRAND in value\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAEEA,+BAA+B,EAC/BC,WAAW,QAEN,sCAAsC;AAE7C,MAAMC,qBAAoC,GAAGC,MAAM,CAAC,uBAAuB,CAAC;AAQ5E,OAAO,SAASC,mBAAmBA,CACjCC,UAAa,EACC;EACd,MAAMC,KAAa,GAAG,EAAE;EASxB,MAAMC,SAAS,GAAGP,+BAA+B,CAC/CK,UAAU,EARKG,KAAa,IAC5BP,WAAW,CACTK,KAAK,EACLE,KAAK,EACL,kDACF,CAKF,CAA4B;EAE5BD,SAAS,CAACL,qBAAqB,CAAC,GAAG,IAAI;EACtCK,SAAS,CAASE,cAAc,GAAG,CAACD,KAAa,EAAEE,KAAc,KAAK;IACrEJ,KAAK,CAACK,IAAI,CAAC;MAAEH,KAAK;MAAEE;IAAM,CAAC,CAAC;EAC9B,CAAC;EAED,OAAOH,SAAS;AAClB;;AAEA;AACA,OAAO,SAASK,eAAeA,CAC7BF,KAAc,EAC8C;EAC5D,OACEA,KAAK,IAAI,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIR,qBAAqB,IAAIQ,KAAK;AAEhF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"createMockObjectSetWithResolver.js","names":["invariant","createMockObjectSetWithResolver","objectType","resolver","calls","chain","method","args","terminal","where","clause","union","process","env","NODE_ENV","intersect","subtract","pivotTo","link","narrowToType","type","nearestNeighbors","query","num","prop","withProperties","fetchPage","fetchPageWithErrors","value","error","fetchOne","pk","fetchOneWithErrors","aggregate","req","asyncIter","data","item","subscribe","experimental_asyncIterLinks","$objectSetInternals","def","resolveStub","stubs","errorMsg","stub","length","every","m","a","i","deepEqual","nextPageToken","undefined","Error","b","isAsymmetricMatcher","asymmetricMatch","Array","isArray","v","aKeys","Object","keys","bKeys","k","x"],"sources":["createMockObjectSetWithResolver.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n AggregateOpts,\n AggregationsResults,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n Osdk,\n PageResult,\n WhereClause,\n} from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\n\nexport type Call = [method: string, args: unknown];\n\nexport type Resolver = (calls: Call[]) => unknown;\n\nexport type Stub = { calls: Call[]; value: unknown };\n\nexport function createMockObjectSetWithResolver<\n Q extends ObjectOrInterfaceDefinition,\n>(\n objectType: Q,\n resolver: Resolver,\n calls: Call[] = [],\n): ObjectSet<Q> {\n const chain = (method: string, args: unknown): ObjectSet<Q> =>\n createMockObjectSetWithResolver(objectType, resolver, [...calls, [\n method,\n args,\n ]]);\n\n const terminal = <T>(method: string, args: unknown): T =>\n resolver([...calls, [method, args]]) as T;\n\n // All methods should execute synchronously even if marked as async\n return {\n where: (clause: WhereClause<Q>) => chain(\"where\", clause),\n union: () =>\n void invariant(false, \"union is not supported in mocks\") as any,\n intersect: () =>\n void invariant(false, \"intersect is not supported in mocks\") as any,\n subtract: () =>\n void invariant(false, \"subtract is not supported in mocks\") as any,\n pivotTo: (link: string) => chain(\"pivotTo\", link) as any,\n narrowToType: (type: ObjectOrInterfaceDefinition) =>\n chain(\"narrowToType\", type) as any,\n nearestNeighbors: (query: unknown, num: number, prop: string) =>\n chain(\"nearestNeighbors\", { query, num, prop }),\n withProperties: () =>\n // TODO: Add with properties support\n void invariant(false, \"withProperties is not supported in mocks\") as any,\n fetchPage: async (args?: unknown) =>\n terminal<PageResult<Osdk.Instance<Q>>>(\"fetchPage\", args) as any,\n fetchPageWithErrors: async (args?: unknown) => {\n try {\n return {\n type: \"ok\" as const,\n value: await terminal(\"fetchPage\", args),\n } as any;\n } catch (error) {\n return { type: \"error\" as const, error };\n }\n },\n fetchOne:\n (async (pk: unknown) =>\n terminal<Osdk.Instance<Q>>(\"fetchOne\", pk)) as any,\n fetchOneWithErrors: (async (pk: unknown) => {\n try {\n return {\n type: \"ok\" as const,\n value: await terminal(\"fetchOne\", pk),\n } as any;\n } catch (error) {\n return { type: \"error\" as const, error } as any;\n }\n }) as any,\n aggregate: async (req: AggregateOpts<Q>) =>\n terminal<AggregationsResults<Q, AggregateOpts<Q>>>(\n \"aggregate\",\n req,\n ) as any,\n asyncIter: (args?: unknown) => {\n const data = terminal<Osdk.Instance<Q>[]>(\"asyncIter\", args);\n return (async function*() {\n for (const item of data) yield item;\n })();\n },\n\n subscribe: () =>\n void invariant(false, \"subscribe is not supported in mocks\") as any,\n experimental_asyncIterLinks: () =>\n void invariant(\n false,\n \"experimental_asyncIterLinks is not supported in mocks\",\n ) as any,\n $objectSetInternals: {\n def: {} as Q,\n },\n } satisfies ObjectSet<Q>;\n}\n\nexport function resolveStub(\n stubs: Stub[],\n calls: Call[],\n errorMsg: string,\n): unknown {\n for (const stub of stubs) {\n if (stub.calls.length !== calls.length) continue;\n if (\n stub.calls.every(([m, a], i) =>\n calls[i][0] === m && deepEqual(a, calls[i][1])\n )\n ) {\n const terminal = calls[calls.length - 1][0];\n if (terminal === \"fetchPage\") {\n return { data: stub.value, nextPageToken: undefined };\n }\n return stub.value;\n }\n }\n throw new Error(errorMsg);\n}\n\nexport function deepEqual(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n\n // Support Vitest / Jest asymmetric matchers (e.g. expect.any(String),\n // expect.anything(), expect.stringContaining(...), expect.objectContaining(...))\n // in either position. Without this check, matchers would be compared by their\n // raw object shape and silently never match stub params.\n if (isAsymmetricMatcher(a)) return a.asymmetricMatch(b);\n if (isAsymmetricMatcher(b)) return b.asymmetricMatch(a);\n\n if (a == null || b == null) return a === b;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n return a.every((v, i) => deepEqual(v, b[i]));\n }\n if (typeof a === \"object\") {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b as object);\n if (aKeys.length !== bKeys.length) return false;\n return aKeys.every((k) =>\n deepEqual((a as any)[k], (b as Record<string, unknown>)[k])\n );\n }\n return false;\n}\n\nfunction isAsymmetricMatcher(\n x: unknown,\n): x is { asymmetricMatch: (other: unknown) => boolean } {\n return x != null\n && typeof x === \"object\"\n && typeof (x as { asymmetricMatch?: unknown }).asymmetricMatch\n === \"function\";\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createMockObjectSetWithResolver.js","names":["invariant","createMockObjectSetWithResolver","objectType","resolver","calls","chain","method","args","terminal","where","clause","union","process","env","NODE_ENV","intersect","subtract","pivotTo","link","narrowToType","type","nearestNeighbors","query","num","prop","withProperties","fetchPage","fetchPageWithErrors","value","error","fetchOne","pk","fetchOneWithErrors","aggregate","req","asyncIter","data","item","subscribe","experimental_asyncIterLinks","$objectSetInternals","def","resolveStub","stubs","errorMsg","stub","length","every","m","a","i","deepEqual","nextPageToken","undefined","Error","b","isAsymmetricMatcher","asymmetricMatch","Array","isArray","v","aKeys","Object","keys","bKeys","k","x"],"sources":["createMockObjectSetWithResolver.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n AggregateOpts,\n AggregationsResults,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n Osdk,\n PageResult,\n WhereClause,\n} from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\n\nexport type Call = [method: string, args: unknown];\n\nexport type Resolver = (calls: Call[]) => unknown;\n\nexport type Stub = { calls: Call[]; value: unknown };\n\nexport function createMockObjectSetWithResolver<\n Q extends ObjectOrInterfaceDefinition,\n>(objectType: Q, resolver: Resolver, calls: Call[] = []): ObjectSet<Q> {\n const chain = (method: string, args: unknown): ObjectSet<Q> =>\n createMockObjectSetWithResolver(objectType, resolver, [\n ...calls,\n [method, args],\n ]);\n\n const terminal = <T>(method: string, args: unknown): T =>\n resolver([...calls, [method, args]]) as T;\n\n // All methods should execute synchronously even if marked as async\n return {\n where: (clause: WhereClause<Q>) => chain(\"where\", clause),\n union: () =>\n void invariant(false, \"union is not supported in mocks\") as any,\n intersect: () =>\n void invariant(false, \"intersect is not supported in mocks\") as any,\n subtract: () =>\n void invariant(false, \"subtract is not supported in mocks\") as any,\n pivotTo: (link: string) => chain(\"pivotTo\", link) as any,\n narrowToType: (type: ObjectOrInterfaceDefinition) =>\n chain(\"narrowToType\", type) as any,\n nearestNeighbors: (query: unknown, num: number, prop: string) =>\n chain(\"nearestNeighbors\", { query, num, prop }),\n withProperties: () =>\n // TODO: Add with properties support\n void invariant(false, \"withProperties is not supported in mocks\") as any,\n fetchPage: async (args?: unknown) =>\n terminal<PageResult<Osdk.Instance<Q>>>(\"fetchPage\", args) as any,\n fetchPageWithErrors: async (args?: unknown) => {\n try {\n return {\n type: \"ok\" as const,\n value: await terminal(\"fetchPage\", args),\n } as any;\n } catch (error) {\n return { type: \"error\" as const, error };\n }\n },\n fetchOne: (async (pk: unknown) =>\n terminal<Osdk.Instance<Q>>(\"fetchOne\", pk)) as any,\n fetchOneWithErrors: (async (pk: unknown) => {\n try {\n return {\n type: \"ok\" as const,\n value: await terminal(\"fetchOne\", pk),\n } as any;\n } catch (error) {\n return { type: \"error\" as const, error } as any;\n }\n }) as any,\n aggregate: async (req: AggregateOpts<Q>) =>\n terminal<AggregationsResults<Q, AggregateOpts<Q>>>(\n \"aggregate\",\n req\n ) as any,\n asyncIter: (args?: unknown) => {\n const data = terminal<Osdk.Instance<Q>[]>(\"asyncIter\", args);\n return (async function* () {\n for (const item of data) yield item;\n })();\n },\n\n subscribe: () =>\n void invariant(false, \"subscribe is not supported in mocks\") as any,\n experimental_asyncIterLinks: () =>\n void invariant(\n false,\n \"experimental_asyncIterLinks is not supported in mocks\"\n ) as any,\n $objectSetInternals: {\n def: {} as Q,\n },\n } satisfies ObjectSet<Q>;\n}\n\nexport function resolveStub(\n stubs: Stub[],\n calls: Call[],\n errorMsg: string\n): unknown {\n for (const stub of stubs) {\n if (stub.calls.length !== calls.length) continue;\n if (\n stub.calls.every(\n ([m, a], i) => calls[i][0] === m && deepEqual(a, calls[i][1])\n )\n ) {\n const terminal = calls[calls.length - 1][0];\n if (terminal === \"fetchPage\") {\n return { data: stub.value, nextPageToken: undefined };\n }\n return stub.value;\n }\n }\n throw new Error(errorMsg);\n}\n\nexport function deepEqual(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n\n // Support Vitest / Jest asymmetric matchers (e.g. expect.any(String),\n // expect.anything(), expect.stringContaining(...), expect.objectContaining(...))\n // in either position. Without this check, matchers would be compared by their\n // raw object shape and silently never match stub params.\n if (isAsymmetricMatcher(a)) return a.asymmetricMatch(b);\n if (isAsymmetricMatcher(b)) return b.asymmetricMatch(a);\n\n if (a == null || b == null) return a === b;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n return a.every((v, i) => deepEqual(v, b[i]));\n }\n if (typeof a === \"object\") {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b as object);\n if (aKeys.length !== bKeys.length) return false;\n return aKeys.every((k) =>\n deepEqual((a as any)[k], (b as Record<string, unknown>)[k])\n );\n }\n return false;\n}\n\nfunction isAsymmetricMatcher(\n x: unknown\n): x is { asymmetricMatch: (other: unknown) => boolean } {\n return (\n x != null &&\n typeof x === \"object\" &&\n typeof (x as { asymmetricMatch?: unknown }).asymmetricMatch === \"function\"\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"createMockOsdkObject.js","names":["invariant","isMockObjectSet","createSingleLinkStub","linked","Error","fetchOne","Promise","reject","fetchOneWithErrors","resolve","error","value","createMissingLinkStub","linkName","objectApiName","primaryKey","makeError","fetchPage","asyncIter","aggregate","createManyLinkStub","linkedObjects","length","$primaryKey","process","env","NODE_ENV","found","find","obj","String","data","nextPageToken","undefined","index","Symbol","asyncIterator","next","done","createMockOsdkObject","objectType","properties","options","links","titlePropertyApiName","primaryKeyApiName","apiName","$title","$rid","mockObject","$apiName","$objectType","Object","defineProperty","get","enumerable","linkAccessors","linkValue","entries","Array","isArray","Proxy","target","prop","updates","newProperties","freeze"],"sources":["createMockOsdkObject.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectTypeDefinition,\n Osdk,\n Result,\n} from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\nimport type { MockOsdkObjectOptions } from \"../api/MockOsdkObjectOptions.js\";\nimport { isMockObjectSet } from \"./createMockObjectSet.js\";\n\n// TODO: Add support for RDPs\n\nfunction createSingleLinkStub<T extends ObjectTypeDefinition>(\n linked: Osdk.Instance<T> | Error,\n): {\n fetchOne: () => Promise<Osdk.Instance<T>>;\n fetchOneWithErrors: () => Promise<Result<Osdk.Instance<T>>>;\n} {\n if (linked instanceof Error) {\n return {\n fetchOne: () => Promise.reject(linked),\n fetchOneWithErrors: () => Promise.resolve({ error: linked }),\n };\n }\n return {\n fetchOne: () => Promise.resolve(linked),\n fetchOneWithErrors: () => Promise.resolve({ value: linked }),\n };\n}\n\nfunction createMissingLinkStub(\n linkName: string,\n objectApiName: string,\n primaryKey: string,\n): {\n fetchOne: () => Promise<never>;\n fetchOneWithErrors: () => Promise<{ error: Error; value?: never }>;\n fetchPage: () => Promise<never>;\n asyncIter: () => never;\n aggregate: () => never;\n} {\n const makeError = () =>\n new Error(\n `Link \"${linkName}\" was not configured on mock ${objectApiName} `\n + `object with primary key ${primaryKey}. `\n + `Pass it via the \\`links\\` option on createMockOsdkObject, or `\n + `pass an Error instance to simulate a link failure.`,\n );\n return {\n fetchOne: () => Promise.reject(makeError()),\n fetchOneWithErrors: () => Promise.resolve({ error: makeError() }),\n fetchPage: () => Promise.reject(makeError()),\n asyncIter: () => {\n throw makeError();\n },\n aggregate: () => {\n throw makeError();\n },\n };\n}\n\nfunction createManyLinkStub<T extends ObjectTypeDefinition>(\n linkedObjects: Array<Osdk.Instance<T>>,\n): {\n fetchOne: (primaryKey: unknown) => Promise<Osdk.Instance<T> | undefined>;\n fetchPage: () => Promise<\n { data: Array<Osdk.Instance<T>>; nextPageToken: undefined }\n >;\n asyncIter: () => AsyncIterableIterator<Osdk.Instance<T>>;\n aggregate: () => never;\n} {\n return {\n fetchOne: (primaryKey: unknown) => {\n if (linkedObjects.length > 0 && linkedObjects[0].$primaryKey == null) {\n invariant(\n false,\n `fetchOne requires primaryKeyApiName to be set on linked objects`,\n );\n }\n const found = linkedObjects.find((obj) => obj.$primaryKey === primaryKey);\n invariant(\n found != null,\n `fetchOne could not find object with primary key ${String(primaryKey)}`,\n );\n return Promise.resolve(found);\n },\n fetchPage: () =>\n Promise.resolve({ data: linkedObjects, nextPageToken: undefined }),\n asyncIter: () => {\n let index = 0;\n return {\n [Symbol.asyncIterator]() {\n return this;\n },\n async next() {\n if (index < linkedObjects.length) {\n return { value: linkedObjects[index++], done: false as const };\n }\n return { value: undefined, done: true as const };\n },\n };\n },\n aggregate: () => {\n invariant(false, `aggregate is not supported on mock link stubs.`);\n },\n };\n}\n\n/**\n * Creates a mock OSDK object for testing purposes.\n *\n * The mock object has the same shape as a real OSDK object including:\n * - $apiName, $objectType, $primaryKey, $title, $rid\n * - All provided properties\n * - Stub implementations that throw errors for unsupported operations\n *\n * Note: The primary key property must be included in the provided properties.\n * The primary key API name is read from the object type definition's\n * `primaryKeyApiName` field (set on generated object consts).\n *\n * @example\n * ```typescript\n * const employee = createMockOsdkObject(\n * Employee,\n * { employeeId: 1, fullName: \"John Doe\" },\n * { titlePropertyApiName: \"fullName\" },\n * );\n *\n * expect(employee.$primaryKey).toBe(1);\n * expect(employee.$title).toBe(\"John Doe\");\n * ```\n *\n * @param objectType - The object type definition (e.g., Employee)\n * @param properties - The properties for the mock object\n * @param options - Configuration including links, titlePropertyApiName, and $rid\n * @returns A frozen mock OSDK object\n */\nexport function createMockOsdkObject<\n Q extends ObjectTypeDefinition,\n>(\n objectType: Q,\n properties?: Partial<CompileTimeMetadata<Q>[\"props\"]>,\n options: MockOsdkObjectOptions<Q> = {},\n): Osdk.Instance<Q> {\n const {\n links,\n titlePropertyApiName,\n } = options;\n\n const primaryKeyApiName = objectType.primaryKeyApiName;\n\n invariant(\n primaryKeyApiName != null,\n `Object type \"${objectType.apiName}\" does not have a primaryKeyApiName defined. `\n + `Ensure you are using a generated object type constant that includes primaryKeyApiName.`,\n );\n\n if (properties == null) {\n properties = {};\n }\n\n invariant(\n primaryKeyApiName in properties,\n `Primary key property \"${primaryKeyApiName}\" must be provided in properties for ${objectType.apiName}. `\n + `Include \"${primaryKeyApiName}\" in the properties argument.`,\n );\n\n if (titlePropertyApiName != null) {\n invariant(\n titlePropertyApiName in properties,\n `titlePropertyApiName \"${titlePropertyApiName}\" was specified but not found in properties for ${objectType.apiName}`,\n );\n }\n\n const $primaryKey = properties[primaryKeyApiName as keyof typeof properties];\n\n const $title = titlePropertyApiName != null\n ? properties[titlePropertyApiName as keyof typeof properties] as\n | string\n | undefined\n : undefined;\n\n const $rid = options.$rid\n ?? `ri.mock.main.object.${objectType.apiName}.${String($primaryKey)}`;\n\n const mockObject: Record<string, unknown> = {\n $apiName: objectType.apiName,\n $objectType: objectType.apiName,\n ...properties,\n };\n\n Object.defineProperty(mockObject, \"$primaryKey\", {\n get() {\n return $primaryKey;\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$title\", {\n get() {\n return $title;\n },\n enumerable: true,\n });\n\n // Define $rid\n Object.defineProperty(mockObject, \"$rid\", {\n get() {\n return $rid;\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$objectSpecifier\", {\n get() {\n return `${objectType.apiName}:${String($primaryKey)}`;\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$link\", {\n get() {\n const linkAccessors: Record<string, unknown> = {};\n for (const [linkName, linkValue] of Object.entries(links ?? {})) {\n if (linkValue == null) {\n continue;\n }\n if (isMockObjectSet(linkValue)) {\n linkAccessors[linkName] = linkValue;\n } else if (Array.isArray(linkValue)) {\n linkAccessors[linkName] = createManyLinkStub(\n linkValue as Array<Osdk.Instance<ObjectTypeDefinition>>,\n );\n } else {\n linkAccessors[linkName] = createSingleLinkStub(\n linkValue as Osdk.Instance<ObjectTypeDefinition> | Error,\n );\n }\n }\n return new Proxy(linkAccessors, {\n get(target, prop) {\n if (typeof prop === \"symbol\" || prop in target) {\n return target[prop as string];\n }\n return createMissingLinkStub(\n prop,\n objectType.apiName,\n String($primaryKey),\n );\n },\n });\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$as\", {\n value: function $as(): never {\n invariant(false, `$as is not supported on mock objects.`);\n },\n enumerable: false,\n });\n\n Object.defineProperty(mockObject, \"$clone\", {\n value: function $clone(\n updates?: Partial<CompileTimeMetadata<Q>[\"props\"]>,\n ): Osdk.Instance<Q, \"$rid\"> {\n if (updates == null) {\n return createMockOsdkObject(\n objectType,\n { ...properties },\n options,\n ) as any;\n }\n\n if (primaryKeyApiName in updates) {\n invariant(\n updates[primaryKeyApiName as keyof typeof updates] === $primaryKey,\n `Cannot update ${objectType.apiName} object with differing primary key values`,\n );\n }\n\n const newProperties = { ...properties, ...updates };\n return createMockOsdkObject(\n objectType,\n newProperties,\n options,\n ) as any;\n },\n enumerable: false,\n });\n\n Object.defineProperty(\n mockObject,\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n {\n get(): never {\n invariant(\n false,\n `$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata is not supported on mock objects.`,\n );\n },\n enumerable: false,\n },\n );\n\n Object.defineProperty(\n mockObject,\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue\",\n {\n value:\n function $__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue(): never {\n invariant(\n false,\n `$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue is not supported on mock objects.`,\n );\n },\n enumerable: false,\n },\n );\n\n return Object.freeze(mockObject) as unknown as any;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createMockOsdkObject.js","names":["invariant","isMockObjectSet","createSingleLinkStub","linked","Error","fetchOne","Promise","reject","fetchOneWithErrors","resolve","error","value","createMissingLinkStub","linkName","objectApiName","primaryKey","makeError","fetchPage","asyncIter","aggregate","createManyLinkStub","linkedObjects","length","$primaryKey","process","env","NODE_ENV","found","find","obj","String","data","nextPageToken","undefined","index","Symbol","asyncIterator","next","done","createMockOsdkObject","objectType","properties","options","links","titlePropertyApiName","primaryKeyApiName","apiName","$title","$rid","mockObject","$apiName","$objectType","Object","defineProperty","get","enumerable","linkAccessors","linkValue","entries","Array","isArray","Proxy","target","prop","updates","newProperties","freeze"],"sources":["createMockOsdkObject.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectTypeDefinition,\n Osdk,\n Result,\n} from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\n\nimport type { MockOsdkObjectOptions } from \"../api/MockOsdkObjectOptions.js\";\nimport { isMockObjectSet } from \"./createMockObjectSet.js\";\n\n// TODO: Add support for RDPs\n\nfunction createSingleLinkStub<T extends ObjectTypeDefinition>(\n linked: Osdk.Instance<T> | Error\n): {\n fetchOne: () => Promise<Osdk.Instance<T>>;\n fetchOneWithErrors: () => Promise<Result<Osdk.Instance<T>>>;\n} {\n if (linked instanceof Error) {\n return {\n fetchOne: () => Promise.reject(linked),\n fetchOneWithErrors: () => Promise.resolve({ error: linked }),\n };\n }\n return {\n fetchOne: () => Promise.resolve(linked),\n fetchOneWithErrors: () => Promise.resolve({ value: linked }),\n };\n}\n\nfunction createMissingLinkStub(\n linkName: string,\n objectApiName: string,\n primaryKey: string\n): {\n fetchOne: () => Promise<never>;\n fetchOneWithErrors: () => Promise<{ error: Error; value?: never }>;\n fetchPage: () => Promise<never>;\n asyncIter: () => never;\n aggregate: () => never;\n} {\n const makeError = () =>\n new Error(\n `Link \"${linkName}\" was not configured on mock ${objectApiName} ` +\n `object with primary key ${primaryKey}. ` +\n `Pass it via the \\`links\\` option on createMockOsdkObject, or ` +\n `pass an Error instance to simulate a link failure.`\n );\n return {\n fetchOne: () => Promise.reject(makeError()),\n fetchOneWithErrors: () => Promise.resolve({ error: makeError() }),\n fetchPage: () => Promise.reject(makeError()),\n asyncIter: () => {\n throw makeError();\n },\n aggregate: () => {\n throw makeError();\n },\n };\n}\n\nfunction createManyLinkStub<T extends ObjectTypeDefinition>(\n linkedObjects: Array<Osdk.Instance<T>>\n): {\n fetchOne: (primaryKey: unknown) => Promise<Osdk.Instance<T> | undefined>;\n fetchPage: () => Promise<{\n data: Array<Osdk.Instance<T>>;\n nextPageToken: undefined;\n }>;\n asyncIter: () => AsyncIterableIterator<Osdk.Instance<T>>;\n aggregate: () => never;\n} {\n return {\n fetchOne: (primaryKey: unknown) => {\n if (linkedObjects.length > 0 && linkedObjects[0].$primaryKey == null) {\n invariant(\n false,\n `fetchOne requires primaryKeyApiName to be set on linked objects`\n );\n }\n const found = linkedObjects.find((obj) => obj.$primaryKey === primaryKey);\n invariant(\n found != null,\n `fetchOne could not find object with primary key ${String(primaryKey)}`\n );\n return Promise.resolve(found);\n },\n fetchPage: () =>\n Promise.resolve({ data: linkedObjects, nextPageToken: undefined }),\n asyncIter: () => {\n let index = 0;\n return {\n [Symbol.asyncIterator]() {\n return this;\n },\n async next() {\n if (index < linkedObjects.length) {\n return { value: linkedObjects[index++], done: false as const };\n }\n return { value: undefined, done: true as const };\n },\n };\n },\n aggregate: () => {\n invariant(false, `aggregate is not supported on mock link stubs.`);\n },\n };\n}\n\n/**\n * Creates a mock OSDK object for testing purposes.\n *\n * The mock object has the same shape as a real OSDK object including:\n * - $apiName, $objectType, $primaryKey, $title, $rid\n * - All provided properties\n * - Stub implementations that throw errors for unsupported operations\n *\n * Note: The primary key property must be included in the provided properties.\n * The primary key API name is read from the object type definition's\n * `primaryKeyApiName` field (set on generated object consts).\n *\n * @example\n * ```typescript\n * const employee = createMockOsdkObject(\n * Employee,\n * { employeeId: 1, fullName: \"John Doe\" },\n * { titlePropertyApiName: \"fullName\" },\n * );\n *\n * expect(employee.$primaryKey).toBe(1);\n * expect(employee.$title).toBe(\"John Doe\");\n * ```\n *\n * @param objectType - The object type definition (e.g., Employee)\n * @param properties - The properties for the mock object\n * @param options - Configuration including links, titlePropertyApiName, and $rid\n * @returns A frozen mock OSDK object\n */\nexport function createMockOsdkObject<Q extends ObjectTypeDefinition>(\n objectType: Q,\n properties?: Partial<CompileTimeMetadata<Q>[\"props\"]>,\n options: MockOsdkObjectOptions<Q> = {}\n): Osdk.Instance<Q> {\n const { links, titlePropertyApiName } = options;\n\n const primaryKeyApiName = objectType.primaryKeyApiName;\n\n invariant(\n primaryKeyApiName != null,\n `Object type \"${objectType.apiName}\" does not have a primaryKeyApiName defined. ` +\n `Ensure you are using a generated object type constant that includes primaryKeyApiName.`\n );\n\n if (properties == null) {\n properties = {};\n }\n\n invariant(\n primaryKeyApiName in properties,\n `Primary key property \"${primaryKeyApiName}\" must be provided in properties for ${objectType.apiName}. ` +\n `Include \"${primaryKeyApiName}\" in the properties argument.`\n );\n\n if (titlePropertyApiName != null) {\n invariant(\n titlePropertyApiName in properties,\n `titlePropertyApiName \"${titlePropertyApiName}\" was specified but not found in properties for ${objectType.apiName}`\n );\n }\n\n const $primaryKey = properties[primaryKeyApiName as keyof typeof properties];\n\n const $title =\n titlePropertyApiName != null\n ? (properties[titlePropertyApiName as keyof typeof properties] as\n | string\n | undefined)\n : undefined;\n\n const $rid =\n options.$rid ??\n `ri.mock.main.object.${objectType.apiName}.${String($primaryKey)}`;\n\n const mockObject: Record<string, unknown> = {\n $apiName: objectType.apiName,\n $objectType: objectType.apiName,\n ...properties,\n };\n\n Object.defineProperty(mockObject, \"$primaryKey\", {\n get() {\n return $primaryKey;\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$title\", {\n get() {\n return $title;\n },\n enumerable: true,\n });\n\n // Define $rid\n Object.defineProperty(mockObject, \"$rid\", {\n get() {\n return $rid;\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$objectSpecifier\", {\n get() {\n return `${objectType.apiName}:${String($primaryKey)}`;\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$link\", {\n get() {\n const linkAccessors: Record<string, unknown> = {};\n for (const [linkName, linkValue] of Object.entries(links ?? {})) {\n if (linkValue == null) {\n continue;\n }\n if (isMockObjectSet(linkValue)) {\n linkAccessors[linkName] = linkValue;\n } else if (Array.isArray(linkValue)) {\n linkAccessors[linkName] = createManyLinkStub(\n linkValue as Array<Osdk.Instance<ObjectTypeDefinition>>\n );\n } else {\n linkAccessors[linkName] = createSingleLinkStub(\n linkValue as Osdk.Instance<ObjectTypeDefinition> | Error\n );\n }\n }\n return new Proxy(linkAccessors, {\n get(target, prop) {\n if (typeof prop === \"symbol\" || prop in target) {\n return target[prop as string];\n }\n return createMissingLinkStub(\n prop,\n objectType.apiName,\n String($primaryKey)\n );\n },\n });\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$as\", {\n value: function $as(): never {\n invariant(false, `$as is not supported on mock objects.`);\n },\n enumerable: false,\n });\n\n Object.defineProperty(mockObject, \"$clone\", {\n value: function $clone(\n updates?: Partial<CompileTimeMetadata<Q>[\"props\"]>\n ): Osdk.Instance<Q, \"$rid\"> {\n if (updates == null) {\n return createMockOsdkObject(\n objectType,\n { ...properties },\n options\n ) as any;\n }\n\n if (primaryKeyApiName in updates) {\n invariant(\n updates[primaryKeyApiName as keyof typeof updates] === $primaryKey,\n `Cannot update ${objectType.apiName} object with differing primary key values`\n );\n }\n\n const newProperties = { ...properties, ...updates };\n return createMockOsdkObject(objectType, newProperties, options) as any;\n },\n enumerable: false,\n });\n\n Object.defineProperty(\n mockObject,\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n {\n get(): never {\n invariant(\n false,\n `$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata is not supported on mock objects.`\n );\n },\n enumerable: false,\n }\n );\n\n Object.defineProperty(\n mockObject,\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue\",\n {\n value:\n function $__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue(): never {\n invariant(\n false,\n `$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue is not supported on mock objects.`\n );\n },\n enumerable: false,\n }\n );\n\n return Object.freeze(mockObject) as unknown as any;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -23,7 +23,7 @@ type StubBuilderFor<T> = T extends Promise<infer R> ? StubBuilderFor<R> : T exte
23
23
  } ? FetchPageStubBuilder<U> : T extends {
24
24
  value: infer U;
25
25
  error?: never;
26
- } ? (IsOsdkObject<U> extends true ? FetchOneStubBuilder<U> : AggregateStubBuilder<U>) : T extends {
26
+ } ? IsOsdkObject<U> extends true ? FetchOneStubBuilder<U> : AggregateStubBuilder<U> : T extends {
27
27
  error: Error;
28
28
  value?: never;
29
29
  } ? never : IsOsdkObject<T> extends true ? FetchOneStubBuilder<T> : AggregateStubBuilder<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"MockClient.js","names":[],"sources":["MockClient.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n QueryDefinition,\n} from \"@osdk/api\";\nimport type { Client } from \"@osdk/client\";\nimport type { QueryStubBuilder, StubBuilderFor } from \"./StubBuilders.js\";\nimport type { StubClient } from \"./StubClient.js\";\n\ntype QueryReturnTypeFromDef<Q extends QueryDefinition> = ReturnType<\n CompileTimeMetadata<Q>[\"signature\"]\n> extends Promise<infer R> ? R : never;\n\ntype QueryParamsFromDef<Q extends QueryDefinition> =\n Parameters<CompileTimeMetadata<Q>[\"signature\"]> extends [infer P] ? P\n : undefined;\n\nexport type StubPatternCallback<T> = (client: StubClient) => T;\n\nexport type ObjectSetStubCallback<Q extends ObjectOrInterfaceDefinition, T> = (\n os: ObjectSet<Q>,\n) => T;\n\nexport interface MockClient extends Client {\n when<T>(callback: StubPatternCallback<T>): StubBuilderFor<T>;\n whenObjectSet<Q extends ObjectOrInterfaceDefinition, T>(\n objectSet: ObjectSet<Q>,\n callback: ObjectSetStubCallback<Q, T>,\n ): StubBuilderFor<T>;\n whenQuery<Q extends QueryDefinition>(\n query: Q,\n params?: QueryParamsFromDef<Q>,\n ): QueryStubBuilder<QueryReturnTypeFromDef<Q>>;\n clearStubs(): void;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"MockClient.js","names":[],"sources":["MockClient.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n QueryDefinition,\n} from \"@osdk/api\";\nimport type { Client } from \"@osdk/client\";\n\nimport type { QueryStubBuilder, StubBuilderFor } from \"./StubBuilders.js\";\nimport type { StubClient } from \"./StubClient.js\";\n\ntype QueryReturnTypeFromDef<Q extends QueryDefinition> =\n ReturnType<CompileTimeMetadata<Q>[\"signature\"]> extends Promise<infer R>\n ? R\n : never;\n\ntype QueryParamsFromDef<Q extends QueryDefinition> =\n Parameters<CompileTimeMetadata<Q>[\"signature\"]> extends [infer P]\n ? P\n : undefined;\n\nexport type StubPatternCallback<T> = (client: StubClient) => T;\n\nexport type ObjectSetStubCallback<Q extends ObjectOrInterfaceDefinition, T> = (\n os: ObjectSet<Q>\n) => T;\n\nexport interface MockClient extends Client {\n when<T>(callback: StubPatternCallback<T>): StubBuilderFor<T>;\n whenObjectSet<Q extends ObjectOrInterfaceDefinition, T>(\n objectSet: ObjectSet<Q>,\n callback: ObjectSetStubCallback<Q, T>\n ): StubBuilderFor<T>;\n whenQuery<Q extends QueryDefinition>(\n query: Q,\n params?: QueryParamsFromDef<Q>\n ): QueryStubBuilder<QueryReturnTypeFromDef<Q>>;\n clearStubs(): void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"MockOsdkObjectOptions.js","names":[],"sources":["MockOsdkObjectOptions.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n LinkedType,\n LinkNames,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n} from \"@osdk/api\";\n\ntype LinkStubs<Q extends ObjectTypeDefinition> = {\n [LINK_NAME in LinkNames<Q>]?:\n CompileTimeMetadata<Q>[\"links\"][LINK_NAME][\"multiplicity\"] extends true ?\n | Array<Osdk.Instance<LinkedType<Q, LINK_NAME>>>\n | ObjectSet<LinkedType<Q, LINK_NAME>>\n : Osdk.Instance<LinkedType<Q, LINK_NAME>> | Error;\n};\n\n/**\n * Options for customizing mock object creation.\n */\nexport interface MockOsdkObjectOptions<\n Q extends ObjectTypeDefinition = ObjectTypeDefinition,\n> {\n /** Objects linked to this object by API name */\n links?: LinkStubs<Q>;\n /** The API name of the title property (optional, required for $title) */\n titlePropertyApiName?: string;\n /** Override the generated $rid */\n $rid?: string;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"MockOsdkObjectOptions.js","names":[],"sources":["MockOsdkObjectOptions.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n LinkedType,\n LinkNames,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n} from \"@osdk/api\";\n\ntype LinkStubs<Q extends ObjectTypeDefinition> = {\n [LINK_NAME in LinkNames<Q>]?: CompileTimeMetadata<Q>[\"links\"][LINK_NAME][\"multiplicity\"] extends true\n ?\n | Array<Osdk.Instance<LinkedType<Q, LINK_NAME>>>\n | ObjectSet<LinkedType<Q, LINK_NAME>>\n : Osdk.Instance<LinkedType<Q, LINK_NAME>> | Error;\n};\n\n/**\n * Options for customizing mock object creation.\n */\nexport interface MockOsdkObjectOptions<\n Q extends ObjectTypeDefinition = ObjectTypeDefinition,\n> {\n /** Objects linked to this object by API name */\n links?: LinkStubs<Q>;\n /** The API name of the title property (optional, required for $title) */\n titlePropertyApiName?: string;\n /** Override the generated $rid */\n $rid?: string;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"StubBuilders.js","names":[],"sources":["StubBuilders.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { PageResult } from \"@osdk/api\";\n\nexport interface FetchPageStubBuilder<T> {\n thenReturnObjects(objects: T[]): void;\n}\n\nexport interface FetchOneStubBuilder<T> {\n thenReturnObject(object: T): void;\n}\n\nexport interface AggregateStubBuilder<T> {\n thenReturnAggregation(result: T): void;\n}\n\nexport interface QueryStubBuilder<T> {\n thenReturn(result: T): void;\n thenThrow(error: Error): void;\n}\n\ntype IsOsdkObject<T> = T extends { $apiName: string } ? true : false;\n\nexport type StubBuilderFor<T> = T extends Promise<infer R> ? StubBuilderFor<R>\n : T extends AsyncIterableIterator<infer U> ? FetchPageStubBuilder<U>\n : T extends PageResult<infer U> ? FetchPageStubBuilder<U>\n : T extends { value: PageResult<infer U>; error?: never }\n ? FetchPageStubBuilder<U>\n : T extends { value: infer U; error?: never }\n ? (IsOsdkObject<U> extends true ? FetchOneStubBuilder<U>\n : AggregateStubBuilder<U>)\n : T extends { error: Error; value?: never } ? never\n : IsOsdkObject<T> extends true ? FetchOneStubBuilder<T>\n : AggregateStubBuilder<T>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"StubBuilders.js","names":[],"sources":["StubBuilders.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { PageResult } from \"@osdk/api\";\n\nexport interface FetchPageStubBuilder<T> {\n thenReturnObjects(objects: T[]): void;\n}\n\nexport interface FetchOneStubBuilder<T> {\n thenReturnObject(object: T): void;\n}\n\nexport interface AggregateStubBuilder<T> {\n thenReturnAggregation(result: T): void;\n}\n\nexport interface QueryStubBuilder<T> {\n thenReturn(result: T): void;\n thenThrow(error: Error): void;\n}\n\ntype IsOsdkObject<T> = T extends { $apiName: string } ? true : false;\n\nexport type StubBuilderFor<T> =\n T extends Promise<infer R>\n ? StubBuilderFor<R>\n : T extends AsyncIterableIterator<infer U>\n ? FetchPageStubBuilder<U>\n : T extends PageResult<infer U>\n ? FetchPageStubBuilder<U>\n : T extends { value: PageResult<infer U>; error?: never }\n ? FetchPageStubBuilder<U>\n : T extends { value: infer U; error?: never }\n ? IsOsdkObject<U> extends true\n ? FetchOneStubBuilder<U>\n : AggregateStubBuilder<U>\n : T extends { error: Error; value?: never }\n ? never\n : IsOsdkObject<T> extends true\n ? FetchOneStubBuilder<T>\n : AggregateStubBuilder<T>;\n"],"mappings":"","ignoreList":[]}
@@ -18,7 +18,7 @@ import { Employee } from "@osdk/client.test.ontology";
18
18
  export async function basicAggregate(client) {
19
19
  const aggregation = await client(Employee).where({
20
20
  employeeId: {
21
- "$eq": 5
21
+ $eq: 5
22
22
  }
23
23
  }).aggregate({
24
24
  $select: {
@@ -30,7 +30,7 @@ export async function basicAggregate(client) {
30
30
  }
31
31
  const aggregation2 = await client(Employee).where({
32
32
  employeeId: {
33
- "$eq": 5
33
+ $eq: 5
34
34
  }
35
35
  }).aggregate({
36
36
  $select: {
@@ -1 +1 @@
1
- {"version":3,"file":"basicAggregate.js","names":["Employee","basicAggregate","client","aggregation","where","employeeId","aggregate","$select","employeeLocation","exactDistinct","Error","JSON","stringify","aggregation2","$groupBy","$group","max","fullName","approximateDistinct"],"sources":["basicAggregate.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { Employee } from \"@osdk/client.test.ontology\";\nimport type { Integer } from \"@osdk/functions\";\n\nexport async function basicAggregate(\n client: Client,\n): Promise<Integer> {\n const aggregation = await client(Employee).where({ employeeId: { \"$eq\": 5 } })\n .aggregate({ $select: { \"employeeLocation:exactDistinct\": \"asc\" } });\n if (aggregation.employeeLocation.exactDistinct !== 3) {\n throw new Error(\n `Unexpected aggregation result: ${JSON.stringify(aggregation)}`,\n );\n }\n\n const aggregation2 = await client(Employee).where({\n employeeId: { \"$eq\": 5 },\n })\n .aggregate({\n $select: {\n \"employeeId:max\": \"unordered\",\n \"fullName:approximateDistinct\": \"unordered\",\n },\n $groupBy: { employeeId: \"exact\" },\n });\n\n if (\n aggregation2[0].$group.employeeId !== 5\n || aggregation2[0].employeeId.max !== 5\n || aggregation2[0].fullName.approximateDistinct !== 1\n ) {\n throw new Error(\n `Unexpected aggregation result: ${JSON.stringify(aggregation2)}`,\n );\n }\n\n return 1;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,QAAQ,QAAQ,4BAA4B;AAGrD,OAAO,eAAeC,cAAcA,CAClCC,MAAc,EACI;EAClB,MAAMC,WAAW,GAAG,MAAMD,MAAM,CAACF,QAAQ,CAAC,CAACI,KAAK,CAAC;IAAEC,UAAU,EAAE;MAAE,KAAK,EAAE;IAAE;EAAE,CAAC,CAAC,CAC3EC,SAAS,CAAC;IAAEC,OAAO,EAAE;MAAE,gCAAgC,EAAE;IAAM;EAAE,CAAC,CAAC;EACtE,IAAIJ,WAAW,CAACK,gBAAgB,CAACC,aAAa,KAAK,CAAC,EAAE;IACpD,MAAM,IAAIC,KAAK,CACb,kCAAkCC,IAAI,CAACC,SAAS,CAACT,WAAW,CAAC,EAC/D,CAAC;EACH;EAEA,MAAMU,YAAY,GAAG,MAAMX,MAAM,CAACF,QAAQ,CAAC,CAACI,KAAK,CAAC;IAChDC,UAAU,EAAE;MAAE,KAAK,EAAE;IAAE;EACzB,CAAC,CAAC,CACCC,SAAS,CAAC;IACTC,OAAO,EAAE;MACP,gBAAgB,EAAE,WAAW;MAC7B,8BAA8B,EAAE;IAClC,CAAC;IACDO,QAAQ,EAAE;MAAET,UAAU,EAAE;IAAQ;EAClC,CAAC,CAAC;EAEJ,IACEQ,YAAY,CAAC,CAAC,CAAC,CAACE,MAAM,CAACV,UAAU,KAAK,CAAC,IACpCQ,YAAY,CAAC,CAAC,CAAC,CAACR,UAAU,CAACW,GAAG,KAAK,CAAC,IACpCH,YAAY,CAAC,CAAC,CAAC,CAACI,QAAQ,CAACC,mBAAmB,KAAK,CAAC,EACrD;IACA,MAAM,IAAIR,KAAK,CACb,kCAAkCC,IAAI,CAACC,SAAS,CAACC,YAAY,CAAC,EAChE,CAAC;EACH;EAEA,OAAO,CAAC;AACV","ignoreList":[]}
1
+ {"version":3,"file":"basicAggregate.js","names":["Employee","basicAggregate","client","aggregation","where","employeeId","$eq","aggregate","$select","employeeLocation","exactDistinct","Error","JSON","stringify","aggregation2","$groupBy","$group","max","fullName","approximateDistinct"],"sources":["basicAggregate.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { Employee } from \"@osdk/client.test.ontology\";\nimport type { Integer } from \"@osdk/functions\";\n\nexport async function basicAggregate(client: Client): Promise<Integer> {\n const aggregation = await client(Employee)\n .where({ employeeId: { $eq: 5 } })\n .aggregate({ $select: { \"employeeLocation:exactDistinct\": \"asc\" } });\n if (aggregation.employeeLocation.exactDistinct !== 3) {\n throw new Error(\n `Unexpected aggregation result: ${JSON.stringify(aggregation)}`\n );\n }\n\n const aggregation2 = await client(Employee)\n .where({\n employeeId: { $eq: 5 },\n })\n .aggregate({\n $select: {\n \"employeeId:max\": \"unordered\",\n \"fullName:approximateDistinct\": \"unordered\",\n },\n $groupBy: { employeeId: \"exact\" },\n });\n\n if (\n aggregation2[0].$group.employeeId !== 5 ||\n aggregation2[0].employeeId.max !== 5 ||\n aggregation2[0].fullName.approximateDistinct !== 1\n ) {\n throw new Error(\n `Unexpected aggregation result: ${JSON.stringify(aggregation2)}`\n );\n }\n\n return 1;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,QAAQ,QAAQ,4BAA4B;AAGrD,OAAO,eAAeC,cAAcA,CAACC,MAAc,EAAoB;EACrE,MAAMC,WAAW,GAAG,MAAMD,MAAM,CAACF,QAAQ,CAAC,CACvCI,KAAK,CAAC;IAAEC,UAAU,EAAE;MAAEC,GAAG,EAAE;IAAE;EAAE,CAAC,CAAC,CACjCC,SAAS,CAAC;IAAEC,OAAO,EAAE;MAAE,gCAAgC,EAAE;IAAM;EAAE,CAAC,CAAC;EACtE,IAAIL,WAAW,CAACM,gBAAgB,CAACC,aAAa,KAAK,CAAC,EAAE;IACpD,MAAM,IAAIC,KAAK,CACb,kCAAkCC,IAAI,CAACC,SAAS,CAACV,WAAW,CAAC,EAC/D,CAAC;EACH;EAEA,MAAMW,YAAY,GAAG,MAAMZ,MAAM,CAACF,QAAQ,CAAC,CACxCI,KAAK,CAAC;IACLC,UAAU,EAAE;MAAEC,GAAG,EAAE;IAAE;EACvB,CAAC,CAAC,CACDC,SAAS,CAAC;IACTC,OAAO,EAAE;MACP,gBAAgB,EAAE,WAAW;MAC7B,8BAA8B,EAAE;IAClC,CAAC;IACDO,QAAQ,EAAE;MAAEV,UAAU,EAAE;IAAQ;EAClC,CAAC,CAAC;EAEJ,IACES,YAAY,CAAC,CAAC,CAAC,CAACE,MAAM,CAACX,UAAU,KAAK,CAAC,IACvCS,YAAY,CAAC,CAAC,CAAC,CAACT,UAAU,CAACY,GAAG,KAAK,CAAC,IACpCH,YAAY,CAAC,CAAC,CAAC,CAACI,QAAQ,CAACC,mBAAmB,KAAK,CAAC,EAClD;IACA,MAAM,IAAIR,KAAK,CACb,kCAAkCC,IAAI,CAACC,SAAS,CAACC,YAAY,CAAC,EAChE,CAAC;EACH;EAEA,OAAO,CAAC;AACV","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"basicFetchPage.js","names":["Employee","basicFetchPage","client","objects","fetchPage","object","data","Error","employeeId","fullName","JSON","stringify"],"sources":["basicFetchPage.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\nimport type { Client } from \"@osdk/client\";\nimport { Employee } from \"@osdk/client.test.ontology\";\n\nexport async function basicFetchPage(\n client: Client,\n): Promise<Osdk.Instance<Employee>> {\n const objects = await client(Employee).fetchPage();\n const object = objects.data[0];\n if (object == null) {\n throw new Error(\"No objects returned\");\n }\n if (object.employeeId !== 1 || object.fullName !== \"John\") {\n throw new Error(`Unexpected object returned: ${JSON.stringify(object)}`);\n }\n return object;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,QAAQ,QAAQ,4BAA4B;AAErD,OAAO,eAAeC,cAAcA,CAClCC,MAAc,EACoB;EAClC,MAAMC,OAAO,GAAG,MAAMD,MAAM,CAACF,QAAQ,CAAC,CAACI,SAAS,CAAC,CAAC;EAClD,MAAMC,MAAM,GAAGF,OAAO,CAACG,IAAI,CAAC,CAAC,CAAC;EAC9B,IAAID,MAAM,IAAI,IAAI,EAAE;IAClB,MAAM,IAAIE,KAAK,CAAC,qBAAqB,CAAC;EACxC;EACA,IAAIF,MAAM,CAACG,UAAU,KAAK,CAAC,IAAIH,MAAM,CAACI,QAAQ,KAAK,MAAM,EAAE;IACzD,MAAM,IAAIF,KAAK,CAAC,+BAA+BG,IAAI,CAACC,SAAS,CAACN,MAAM,CAAC,EAAE,CAAC;EAC1E;EACA,OAAOA,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"file":"basicFetchPage.js","names":["Employee","basicFetchPage","client","objects","fetchPage","object","data","Error","employeeId","fullName","JSON","stringify"],"sources":["basicFetchPage.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\nimport type { Client } from \"@osdk/client\";\nimport { Employee } from \"@osdk/client.test.ontology\";\n\nexport async function basicFetchPage(\n client: Client\n): Promise<Osdk.Instance<Employee>> {\n const objects = await client(Employee).fetchPage();\n const object = objects.data[0];\n if (object == null) {\n throw new Error(\"No objects returned\");\n }\n if (object.employeeId !== 1 || object.fullName !== \"John\") {\n throw new Error(`Unexpected object returned: ${JSON.stringify(object)}`);\n }\n return object;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,QAAQ,QAAQ,4BAA4B;AAErD,OAAO,eAAeC,cAAcA,CAClCC,MAAc,EACoB;EAClC,MAAMC,OAAO,GAAG,MAAMD,MAAM,CAACF,QAAQ,CAAC,CAACI,SAAS,CAAC,CAAC;EAClD,MAAMC,MAAM,GAAGF,OAAO,CAACG,IAAI,CAAC,CAAC,CAAC;EAC9B,IAAID,MAAM,IAAI,IAAI,EAAE;IAClB,MAAM,IAAIE,KAAK,CAAC,qBAAqB,CAAC;EACxC;EACA,IAAIF,MAAM,CAACG,UAAU,KAAK,CAAC,IAAIH,MAAM,CAACI,QAAQ,KAAK,MAAM,EAAE;IACzD,MAAM,IAAIF,KAAK,CAAC,+BAA+BG,IAAI,CAACC,SAAS,CAACN,MAAM,CAAC,EAAE,CAAC;EAC1E;EACA,OAAOA,MAAM;AACf","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"basicQuery.js","names":["addOne","basicQuery","client","n","result","executeFunction","Error"],"sources":["basicQuery.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { addOne } from \"@osdk/client.test.ontology\";\nimport type { Integer } from \"@osdk/functions\";\n\nexport async function basicQuery(\n client: Client,\n n: Integer,\n): Promise<Integer> {\n const result = await client(addOne).executeFunction({ n });\n if (result !== n + 1) {\n throw new Error(`Expected ${n + 1}, but got ${result}`);\n }\n return result;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,MAAM,QAAQ,4BAA4B;AAGnD,OAAO,eAAeC,UAAUA,CAC9BC,MAAc,EACdC,CAAU,EACQ;EAClB,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACF,MAAM,CAAC,CAACK,eAAe,CAAC;IAAEF;EAAE,CAAC,CAAC;EAC1D,IAAIC,MAAM,KAAKD,CAAC,GAAG,CAAC,EAAE;IACpB,MAAM,IAAIG,KAAK,CAAC,YAAYH,CAAC,GAAG,CAAC,aAAaC,MAAM,EAAE,CAAC;EACzD;EACA,OAAOA,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"file":"basicQuery.js","names":["addOne","basicQuery","client","n","result","executeFunction","Error"],"sources":["basicQuery.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { addOne } from \"@osdk/client.test.ontology\";\nimport type { Integer } from \"@osdk/functions\";\n\nexport async function basicQuery(client: Client, n: Integer): Promise<Integer> {\n const result = await client(addOne).executeFunction({ n });\n if (result !== n + 1) {\n throw new Error(`Expected ${n + 1}, but got ${result}`);\n }\n return result;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,MAAM,QAAQ,4BAA4B;AAGnD,OAAO,eAAeC,UAAUA,CAACC,MAAc,EAAEC,CAAU,EAAoB;EAC7E,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACF,MAAM,CAAC,CAACK,eAAe,CAAC;IAAEF;EAAE,CAAC,CAAC;EAC1D,IAAIC,MAAM,KAAKD,CAAC,GAAG,CAAC,EAAE;IACpB,MAAM,IAAIG,KAAK,CAAC,YAAYH,CAAC,GAAG,CAAC,aAAaC,MAAM,EAAE,CAAC;EACzD;EACA,OAAOA,MAAM;AACf","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"objectAsInput.js","names":["objectAsInput","object","$apiName","Error","employeeId"],"sources":["objectAsInput.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\n\nexport function objectAsInput(\n object: Osdk.Instance<Employee>,\n): Osdk.Instance<Employee> {\n if (object.$apiName !== \"Employee\") {\n throw new Error(\n `Expected object of type Employee, but got ${object.$apiName}`,\n );\n }\n if (object.employeeId == null) {\n throw new Error(\n `Expected object to have employeeId property, but it was missing`,\n );\n }\n return object;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASA,aAAaA,CAC3BC,MAA+B,EACN;EACzB,IAAIA,MAAM,CAACC,QAAQ,KAAK,UAAU,EAAE;IAClC,MAAM,IAAIC,KAAK,CACb,6CAA6CF,MAAM,CAACC,QAAQ,EAC9D,CAAC;EACH;EACA,IAAID,MAAM,CAACG,UAAU,IAAI,IAAI,EAAE;IAC7B,MAAM,IAAID,KAAK,CACb,iEACF,CAAC;EACH;EACA,OAAOF,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"file":"objectAsInput.js","names":["objectAsInput","object","$apiName","Error","employeeId"],"sources":["objectAsInput.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\n\nexport function objectAsInput(\n object: Osdk.Instance<Employee>\n): Osdk.Instance<Employee> {\n if (object.$apiName !== \"Employee\") {\n throw new Error(\n `Expected object of type Employee, but got ${object.$apiName}`\n );\n }\n if (object.employeeId == null) {\n throw new Error(\n `Expected object to have employeeId property, but it was missing`\n );\n }\n return object;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASA,aAAaA,CAC3BC,MAA+B,EACN;EACzB,IAAIA,MAAM,CAACC,QAAQ,KAAK,UAAU,EAAE;IAClC,MAAM,IAAIC,KAAK,CACb,6CAA6CF,MAAM,CAACC,QAAQ,EAC9D,CAAC;EACH;EACA,IAAID,MAAM,CAACG,UAAU,IAAI,IAAI,EAAE;IAC7B,MAAM,IAAID,KAAK,CACb,iEACF,CAAC;EACH;EACA,OAAOF,MAAM;AACf","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"objectSetAsInput.js","names":["getEmployeeNames","employees","page","fetchPage","data","map","emp","fullName","countEmployees","result","aggregate","$select","$count"],"sources":["objectSetAsInput.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectSet } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\n\nexport async function getEmployeeNames(\n employees: ObjectSet<Employee>,\n): Promise<string[]> {\n const page = await employees.fetchPage();\n return page.data.map((emp) => emp.fullName ?? \"Unknown\");\n}\n\nexport async function countEmployees(\n employees: ObjectSet<Employee>,\n): Promise<number> {\n const result = await employees.aggregate({\n $select: { $count: \"unordered\" },\n });\n return result.$count;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,eAAeA,gBAAgBA,CACpCC,SAA8B,EACX;EACnB,MAAMC,IAAI,GAAG,MAAMD,SAAS,CAACE,SAAS,CAAC,CAAC;EACxC,OAAOD,IAAI,CAACE,IAAI,CAACC,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,QAAQ,IAAI,SAAS,CAAC;AAC1D;AAEA,OAAO,eAAeC,cAAcA,CAClCP,SAA8B,EACb;EACjB,MAAMQ,MAAM,GAAG,MAAMR,SAAS,CAACS,SAAS,CAAC;IACvCC,OAAO,EAAE;MAAEC,MAAM,EAAE;IAAY;EACjC,CAAC,CAAC;EACF,OAAOH,MAAM,CAACG,MAAM;AACtB","ignoreList":[]}
1
+ {"version":3,"file":"objectSetAsInput.js","names":["getEmployeeNames","employees","page","fetchPage","data","map","emp","fullName","countEmployees","result","aggregate","$select","$count"],"sources":["objectSetAsInput.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectSet } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\n\nexport async function getEmployeeNames(\n employees: ObjectSet<Employee>\n): Promise<string[]> {\n const page = await employees.fetchPage();\n return page.data.map((emp) => emp.fullName ?? \"Unknown\");\n}\n\nexport async function countEmployees(\n employees: ObjectSet<Employee>\n): Promise<number> {\n const result = await employees.aggregate({\n $select: { $count: \"unordered\" },\n });\n return result.$count;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,eAAeA,gBAAgBA,CACpCC,SAA8B,EACX;EACnB,MAAMC,IAAI,GAAG,MAAMD,SAAS,CAACE,SAAS,CAAC,CAAC;EACxC,OAAOD,IAAI,CAACE,IAAI,CAACC,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,QAAQ,IAAI,SAAS,CAAC;AAC1D;AAEA,OAAO,eAAeC,cAAcA,CAClCP,SAA8B,EACb;EACjB,MAAMQ,MAAM,GAAG,MAAMR,SAAS,CAACS,SAAS,CAAC;IACvCC,OAAO,EAAE;MAAEC,MAAM,EAAE;IAAY;EACjC,CAAC,CAAC;EACF,OAAOH,MAAM,CAACG,MAAM;AACtB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"objectWithLinks.js","names":["getEmployeeOfficeName","employee","office","$link","officeLink","fetchOne","name","getEmployeePeepNames","page","peeps","fetchPage","data","map","peep","fullName","countEmployeePeeps","count","_peep","asyncIter","getSpecificPeep","peepId","countPeepsViaAggregate","result","aggregate","$select","$count"],"sources":["objectWithLinks.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\n\nexport async function getEmployeeOfficeName(\n employee: Osdk.Instance<Employee>,\n): Promise<string | undefined> {\n const office = await employee.$link.officeLink.fetchOne();\n return office.name;\n}\n\nexport async function getEmployeePeepNames(\n employee: Osdk.Instance<Employee>,\n): Promise<string[]> {\n const page = await employee.$link.peeps.fetchPage();\n return page.data.map((peep) => peep.fullName ?? \"Unknown\");\n}\n\nexport async function countEmployeePeeps(\n employee: Osdk.Instance<Employee>,\n): Promise<number> {\n let count = 0;\n for await (const _peep of employee.$link.peeps.asyncIter()) {\n count++;\n }\n return count;\n}\n\nexport async function getSpecificPeep(\n employee: Osdk.Instance<Employee>,\n peepId: number,\n): Promise<Osdk.Instance<Employee>> {\n return employee.$link.peeps.fetchOne(peepId);\n}\n\nexport async function countPeepsViaAggregate(\n employee: Osdk.Instance<Employee>,\n): Promise<number> {\n const result = await employee.$link.peeps.aggregate({\n $select: { $count: \"unordered\" },\n });\n return result.$count;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,eAAeA,qBAAqBA,CACzCC,QAAiC,EACJ;EAC7B,MAAMC,MAAM,GAAG,MAAMD,QAAQ,CAACE,KAAK,CAACC,UAAU,CAACC,QAAQ,CAAC,CAAC;EACzD,OAAOH,MAAM,CAACI,IAAI;AACpB;AAEA,OAAO,eAAeC,oBAAoBA,CACxCN,QAAiC,EACd;EACnB,MAAMO,IAAI,GAAG,MAAMP,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACC,SAAS,CAAC,CAAC;EACnD,OAAOF,IAAI,CAACG,IAAI,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,IAAI,SAAS,CAAC;AAC5D;AAEA,OAAO,eAAeC,kBAAkBA,CACtCd,QAAiC,EAChB;EACjB,IAAIe,KAAK,GAAG,CAAC;EACb,WAAW,MAAMC,KAAK,IAAIhB,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACS,SAAS,CAAC,CAAC,EAAE;IAC1DF,KAAK,EAAE;EACT;EACA,OAAOA,KAAK;AACd;AAEA,OAAO,eAAeG,eAAeA,CACnClB,QAAiC,EACjCmB,MAAc,EACoB;EAClC,OAAOnB,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACJ,QAAQ,CAACe,MAAM,CAAC;AAC9C;AAEA,OAAO,eAAeC,sBAAsBA,CAC1CpB,QAAiC,EAChB;EACjB,MAAMqB,MAAM,GAAG,MAAMrB,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC;IAClDC,OAAO,EAAE;MAAEC,MAAM,EAAE;IAAY;EACjC,CAAC,CAAC;EACF,OAAOH,MAAM,CAACG,MAAM;AACtB","ignoreList":[]}
1
+ {"version":3,"file":"objectWithLinks.js","names":["getEmployeeOfficeName","employee","office","$link","officeLink","fetchOne","name","getEmployeePeepNames","page","peeps","fetchPage","data","map","peep","fullName","countEmployeePeeps","count","_peep","asyncIter","getSpecificPeep","peepId","countPeepsViaAggregate","result","aggregate","$select","$count"],"sources":["objectWithLinks.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Osdk } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\n\nexport async function getEmployeeOfficeName(\n employee: Osdk.Instance<Employee>\n): Promise<string | undefined> {\n const office = await employee.$link.officeLink.fetchOne();\n return office.name;\n}\n\nexport async function getEmployeePeepNames(\n employee: Osdk.Instance<Employee>\n): Promise<string[]> {\n const page = await employee.$link.peeps.fetchPage();\n return page.data.map((peep) => peep.fullName ?? \"Unknown\");\n}\n\nexport async function countEmployeePeeps(\n employee: Osdk.Instance<Employee>\n): Promise<number> {\n let count = 0;\n for await (const _peep of employee.$link.peeps.asyncIter()) {\n count++;\n }\n return count;\n}\n\nexport async function getSpecificPeep(\n employee: Osdk.Instance<Employee>,\n peepId: number\n): Promise<Osdk.Instance<Employee>> {\n return employee.$link.peeps.fetchOne(peepId);\n}\n\nexport async function countPeepsViaAggregate(\n employee: Osdk.Instance<Employee>\n): Promise<number> {\n const result = await employee.$link.peeps.aggregate({\n $select: { $count: \"unordered\" },\n });\n return result.$count;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,eAAeA,qBAAqBA,CACzCC,QAAiC,EACJ;EAC7B,MAAMC,MAAM,GAAG,MAAMD,QAAQ,CAACE,KAAK,CAACC,UAAU,CAACC,QAAQ,CAAC,CAAC;EACzD,OAAOH,MAAM,CAACI,IAAI;AACpB;AAEA,OAAO,eAAeC,oBAAoBA,CACxCN,QAAiC,EACd;EACnB,MAAMO,IAAI,GAAG,MAAMP,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACC,SAAS,CAAC,CAAC;EACnD,OAAOF,IAAI,CAACG,IAAI,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,IAAI,SAAS,CAAC;AAC5D;AAEA,OAAO,eAAeC,kBAAkBA,CACtCd,QAAiC,EAChB;EACjB,IAAIe,KAAK,GAAG,CAAC;EACb,WAAW,MAAMC,KAAK,IAAIhB,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACS,SAAS,CAAC,CAAC,EAAE;IAC1DF,KAAK,EAAE;EACT;EACA,OAAOA,KAAK;AACd;AAEA,OAAO,eAAeG,eAAeA,CACnClB,QAAiC,EACjCmB,MAAc,EACoB;EAClC,OAAOnB,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACJ,QAAQ,CAACe,MAAM,CAAC;AAC9C;AAEA,OAAO,eAAeC,sBAAsBA,CAC1CpB,QAAiC,EAChB;EACjB,MAAMqB,MAAM,GAAG,MAAMrB,QAAQ,CAACE,KAAK,CAACM,KAAK,CAACc,SAAS,CAAC;IAClDC,OAAO,EAAE;MAAEC,MAAM,EAAE;IAAY;EACjC,CAAC,CAAC;EACF,OAAOH,MAAM,CAACG,MAAM;AACtB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ontologyEdits.js","names":["Employee","FooInterface","createEditBatch","ontologyEdits","client","object","editBatch","create","employeeId","fullName","update","favoriteRestaurants","delete","link","unlink","$objectType","fooIdp","getEdits"],"sources":["ontologyEdits.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client, Osdk } from \"@osdk/client\";\nimport type { $Interfaces } from \"@osdk/client.test.ontology\";\nimport { Employee, FooInterface } from \"@osdk/client.test.ontology\";\nimport { createEditBatch, type Edits } from \"@osdk/functions\";\n\ntype edits =\n | Edits.Object<Employee>\n | Edits.Link<Employee, \"peeps\">\n | Edits.Interface<$Interfaces.FooInterface>;\nexport function ontologyEdits(\n client: Client,\n object: Osdk.Instance<Employee>,\n): edits[] {\n const editBatch = createEditBatch<edits>(client);\n editBatch.create(Employee, { employeeId: 1, fullName: \"John Doe\" });\n\n editBatch.update(object, { favoriteRestaurants: [\"McDonald's\"] });\n\n editBatch.delete(object);\n\n editBatch.link(object, \"peeps\", object);\n editBatch.unlink(object, \"peeps\", object);\n\n editBatch.create(FooInterface, { $objectType: \"Employee\", fooIdp: \"bar\" });\n return editBatch.getEdits();\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,QAAQ,EAAEC,YAAY,QAAQ,4BAA4B;AACnE,SAASC,eAAe,QAAoB,iBAAiB;AAM7D,OAAO,SAASC,aAAaA,CAC3BC,MAAc,EACdC,MAA+B,EACtB;EACT,MAAMC,SAAS,GAAGJ,eAAe,CAAQE,MAAM,CAAC;EAChDE,SAAS,CAACC,MAAM,CAACP,QAAQ,EAAE;IAAEQ,UAAU,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAW,CAAC,CAAC;EAEnEH,SAAS,CAACI,MAAM,CAACL,MAAM,EAAE;IAAEM,mBAAmB,EAAE,CAAC,YAAY;EAAE,CAAC,CAAC;EAEjEL,SAAS,CAACM,MAAM,CAACP,MAAM,CAAC;EAExBC,SAAS,CAACO,IAAI,CAACR,MAAM,EAAE,OAAO,EAAEA,MAAM,CAAC;EACvCC,SAAS,CAACQ,MAAM,CAACT,MAAM,EAAE,OAAO,EAAEA,MAAM,CAAC;EAEzCC,SAAS,CAACC,MAAM,CAACN,YAAY,EAAE;IAAEc,WAAW,EAAE,UAAU;IAAEC,MAAM,EAAE;EAAM,CAAC,CAAC;EAC1E,OAAOV,SAAS,CAACW,QAAQ,CAAC,CAAC;AAC7B","ignoreList":[]}
1
+ {"version":3,"file":"ontologyEdits.js","names":["Employee","FooInterface","createEditBatch","ontologyEdits","client","object","editBatch","create","employeeId","fullName","update","favoriteRestaurants","delete","link","unlink","$objectType","fooIdp","getEdits"],"sources":["ontologyEdits.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client, Osdk } from \"@osdk/client\";\nimport type { $Interfaces } from \"@osdk/client.test.ontology\";\nimport { Employee, FooInterface } from \"@osdk/client.test.ontology\";\nimport { createEditBatch, type Edits } from \"@osdk/functions\";\n\ntype edits =\n | Edits.Object<Employee>\n | Edits.Link<Employee, \"peeps\">\n | Edits.Interface<$Interfaces.FooInterface>;\nexport function ontologyEdits(\n client: Client,\n object: Osdk.Instance<Employee>\n): edits[] {\n const editBatch = createEditBatch<edits>(client);\n editBatch.create(Employee, { employeeId: 1, fullName: \"John Doe\" });\n\n editBatch.update(object, { favoriteRestaurants: [\"McDonald's\"] });\n\n editBatch.delete(object);\n\n editBatch.link(object, \"peeps\", object);\n editBatch.unlink(object, \"peeps\", object);\n\n editBatch.create(FooInterface, { $objectType: \"Employee\", fooIdp: \"bar\" });\n return editBatch.getEdits();\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,QAAQ,EAAEC,YAAY,QAAQ,4BAA4B;AACnE,SAASC,eAAe,QAAoB,iBAAiB;AAM7D,OAAO,SAASC,aAAaA,CAC3BC,MAAc,EACdC,MAA+B,EACtB;EACT,MAAMC,SAAS,GAAGJ,eAAe,CAAQE,MAAM,CAAC;EAChDE,SAAS,CAACC,MAAM,CAACP,QAAQ,EAAE;IAAEQ,UAAU,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAW,CAAC,CAAC;EAEnEH,SAAS,CAACI,MAAM,CAACL,MAAM,EAAE;IAAEM,mBAAmB,EAAE,CAAC,YAAY;EAAE,CAAC,CAAC;EAEjEL,SAAS,CAACM,MAAM,CAACP,MAAM,CAAC;EAExBC,SAAS,CAACO,IAAI,CAACR,MAAM,EAAE,OAAO,EAAEA,MAAM,CAAC;EACvCC,SAAS,CAACQ,MAAM,CAACT,MAAM,EAAE,OAAO,EAAEA,MAAM,CAAC;EAEzCC,SAAS,CAACC,MAAM,CAACN,YAAY,EAAE;IAAEc,WAAW,EAAE,UAAU;IAAEC,MAAM,EAAE;EAAM,CAAC,CAAC;EAC1E,OAAOV,SAAS,CAACW,QAAQ,CAAC,CAAC;AAC7B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"platformApiWithMsw.js","names":["Users","requireAdminUser","client","user","getCurrent","username","endsWith","Error"],"sources":["platformApiWithMsw.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { Users } from \"@osdk/foundry.admin\";\n\nexport async function requireAdminUser(\n client: Client,\n): Promise<string> {\n const user = await Users.getCurrent(client);\n if (!user.username.endsWith(\"@admin\")) {\n throw new Error(`User ${user.username} is not an admin`);\n }\n return user.username;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,KAAK,QAAQ,qBAAqB;AAE3C,OAAO,eAAeC,gBAAgBA,CACpCC,MAAc,EACG;EACjB,MAAMC,IAAI,GAAG,MAAMH,KAAK,CAACI,UAAU,CAACF,MAAM,CAAC;EAC3C,IAAI,CAACC,IAAI,CAACE,QAAQ,CAACC,QAAQ,CAAC,QAAQ,CAAC,EAAE;IACrC,MAAM,IAAIC,KAAK,CAAC,QAAQJ,IAAI,CAACE,QAAQ,kBAAkB,CAAC;EAC1D;EACA,OAAOF,IAAI,CAACE,QAAQ;AACtB","ignoreList":[]}
1
+ {"version":3,"file":"platformApiWithMsw.js","names":["Users","requireAdminUser","client","user","getCurrent","username","endsWith","Error"],"sources":["platformApiWithMsw.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { Users } from \"@osdk/foundry.admin\";\n\nexport async function requireAdminUser(client: Client): Promise<string> {\n const user = await Users.getCurrent(client);\n if (!user.username.endsWith(\"@admin\")) {\n throw new Error(`User ${user.username} is not an admin`);\n }\n return user.username;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,KAAK,QAAQ,qBAAqB;AAE3C,OAAO,eAAeC,gBAAgBA,CAACC,MAAc,EAAmB;EACtE,MAAMC,IAAI,GAAG,MAAMH,KAAK,CAACI,UAAU,CAACF,MAAM,CAAC;EAC3C,IAAI,CAACC,IAAI,CAACE,QAAQ,CAACC,QAAQ,CAAC,QAAQ,CAAC,EAAE;IACrC,MAAM,IAAIC,KAAK,CAAC,QAAQJ,IAAI,CAACE,QAAQ,kBAAkB,CAAC;EAC1D;EACA,OAAOF,IAAI,CAACE,QAAQ;AACtB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"queryWithArrayParams.js","names":["queryTypeReturnsArray","queryWithArrayParams","client","people","result","executeFunction","Array","isArray","Error"],"sources":["queryWithArrayParams.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { queryTypeReturnsArray } from \"@osdk/client.test.ontology\";\n\nexport async function queryWithArrayParams(\n client: Client,\n people: readonly string[],\n): Promise<string[]> {\n const result = await client(queryTypeReturnsArray).executeFunction({\n people,\n });\n\n if (!Array.isArray(result)) {\n throw new Error(\"Expected array result\");\n }\n\n return result;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,qBAAqB,QAAQ,4BAA4B;AAElE,OAAO,eAAeC,oBAAoBA,CACxCC,MAAc,EACdC,MAAyB,EACN;EACnB,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACF,qBAAqB,CAAC,CAACK,eAAe,CAAC;IACjEF;EACF,CAAC,CAAC;EAEF,IAAI,CAACG,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,EAAE;IAC1B,MAAM,IAAII,KAAK,CAAC,uBAAuB,CAAC;EAC1C;EAEA,OAAOJ,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"file":"queryWithArrayParams.js","names":["queryTypeReturnsArray","queryWithArrayParams","client","people","result","executeFunction","Array","isArray","Error"],"sources":["queryWithArrayParams.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Client } from \"@osdk/client\";\nimport { queryTypeReturnsArray } from \"@osdk/client.test.ontology\";\n\nexport async function queryWithArrayParams(\n client: Client,\n people: readonly string[]\n): Promise<string[]> {\n const result = await client(queryTypeReturnsArray).executeFunction({\n people,\n });\n\n if (!Array.isArray(result)) {\n throw new Error(\"Expected array result\");\n }\n\n return result;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,qBAAqB,QAAQ,4BAA4B;AAElE,OAAO,eAAeC,oBAAoBA,CACxCC,MAAc,EACdC,MAAyB,EACN;EACnB,MAAMC,MAAM,GAAG,MAAMF,MAAM,CAACF,qBAAqB,CAAC,CAACK,eAAe,CAAC;IACjEF;EACF,CAAC,CAAC;EAEF,IAAI,CAACG,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,EAAE;IAC1B,MAAM,IAAII,KAAK,CAAC,uBAAuB,CAAC;EAC1C;EAEA,OAAOJ,MAAM;AACf","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"createMockAttachment.js","names":["invariant","createMockAttachment","rid","blob","metadata","fetchContents","process","env","NODE_ENV","Promise","resolve","Response","fetchMetadata"],"sources":["createMockAttachment.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Attachment, AttachmentMetadata } from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\n\nexport function createMockAttachment(\n rid: string,\n blob?: Blob,\n metadata?: AttachmentMetadata,\n): Attachment {\n return {\n rid,\n fetchContents() {\n invariant(\n blob != null,\n `fetchContents was called on mock attachment \"${rid}\" but no blob was provided. `\n + `Pass a Blob as the second argument to createMockAttachment to stub fetchContents.`,\n );\n return Promise.resolve(new Response(blob));\n },\n fetchMetadata() {\n invariant(\n metadata != null,\n `fetchMetadata was called on mock attachment \"${rid}\" but no metadata was provided. `\n + `Pass AttachmentMetadata as the third argument to createMockAttachment to stub fetchMetadata.`,\n );\n return Promise.resolve(metadata);\n },\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,SAAS,MAAM,gBAAgB;AAEtC,OAAO,SAASC,oBAAoBA,CAClCC,GAAW,EACXC,IAAW,EACXC,QAA6B,EACjB;EACZ,OAAO;IACLF,GAAG;IACHG,aAAaA,CAAA,EAAG;MACd,EACEF,IAAI,IAAI,IAAI,IAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADdR,SAAS,QAEP,gDAAgDE,GAAG,8BAA8B,GAC7E,mFAAmF,IAHzFF,SAAS;MAKT,OAAOS,OAAO,CAACC,OAAO,CAAC,IAAIC,QAAQ,CAACR,IAAI,CAAC,CAAC;IAC5C,CAAC;IACDS,aAAaA,CAAA,EAAG;MACd,EACER,QAAQ,IAAI,IAAI,IAAAE,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADlBR,SAAS,QAEP,gDAAgDE,GAAG,kCAAkC,GACjF,8FAA8F,IAHpGF,SAAS;MAKT,OAAOS,OAAO,CAACC,OAAO,CAACN,QAAQ,CAAC;IAClC;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"createMockAttachment.js","names":["invariant","createMockAttachment","rid","blob","metadata","fetchContents","process","env","NODE_ENV","Promise","resolve","Response","fetchMetadata"],"sources":["createMockAttachment.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Attachment, AttachmentMetadata } from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\n\nexport function createMockAttachment(\n rid: string,\n blob?: Blob,\n metadata?: AttachmentMetadata\n): Attachment {\n return {\n rid,\n fetchContents() {\n invariant(\n blob != null,\n `fetchContents was called on mock attachment \"${rid}\" but no blob was provided. ` +\n `Pass a Blob as the second argument to createMockAttachment to stub fetchContents.`\n );\n return Promise.resolve(new Response(blob));\n },\n fetchMetadata() {\n invariant(\n metadata != null,\n `fetchMetadata was called on mock attachment \"${rid}\" but no metadata was provided. ` +\n `Pass AttachmentMetadata as the third argument to createMockAttachment to stub fetchMetadata.`\n );\n return Promise.resolve(metadata);\n },\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,SAAS,MAAM,gBAAgB;AAEtC,OAAO,SAASC,oBAAoBA,CAClCC,GAAW,EACXC,IAAW,EACXC,QAA6B,EACjB;EACZ,OAAO;IACLF,GAAG;IACHG,aAAaA,CAAA,EAAG;MACd,EACEF,IAAI,IAAI,IAAI,IAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADdR,SAAS,QAEP,gDAAgDE,GAAG,8BAA8B,GAC/E,mFAAmF,IAHvFF,SAAS;MAKT,OAAOS,OAAO,CAACC,OAAO,CAAC,IAAIC,QAAQ,CAACR,IAAI,CAAC,CAAC;IAC5C,CAAC;IACDS,aAAaA,CAAA,EAAG;MACd,EACER,QAAQ,IAAI,IAAI,IAAAE,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADlBR,SAAS,QAEP,gDAAgDE,GAAG,kCAAkC,GACnF,8FAA8F,IAHlGF,SAAS;MAKT,OAAOS,OAAO,CAACC,OAAO,CAACN,QAAQ,CAAC;IAClC;EACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"createMockClient.js","names":["createPlatformClient","invariant","createMockObjectSetWithResolver","deepEqual","resolveStub","SYMBOL_CLIENT_CONTEXT","createMockClient","stubs","queryStubs","resolve","objectType","calls","filter","s","resolveQuery","queryApiName","params","stub","error","undefined","value","Error","mockClient","def","process","env","NODE_ENV","type","executeFunction","Promise","apiName","e","reject","when","callback","captured","data","nextPageToken","register","push","thenReturnObjects","thenReturnObject","thenReturnAggregation","whenObjectSet","objectSet","capturedCalls","capturingProxy","$objectSetInternals","__registerStub","whenQuery","query","thenReturn","result","thenThrow","clearStubs","length","fetchMetadata","Object","defineProperty","enumerable"],"sources":["createMockClient.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n QueryDefinition,\n} from \"@osdk/api\";\nimport { createPlatformClient } from \"@osdk/client\";\nimport invariant from \"tiny-invariant\";\nimport type {\n MockClient,\n ObjectSetStubCallback,\n StubPatternCallback,\n} from \"../api/MockClient.js\";\nimport type { QueryStubBuilder, StubBuilderFor } from \"../api/StubBuilders.js\";\nimport type { StubClient } from \"../api/StubClient.js\";\nimport { type MockObjectSetBranded } from \"./createMockObjectSet.js\";\nimport {\n type Call,\n createMockObjectSetWithResolver,\n deepEqual,\n resolveStub,\n type Stub,\n} from \"./createMockObjectSetWithResolver.js\";\n\ntype ClientStub = Stub & { objectType: string };\n\ntype QueryStub = {\n queryApiName: string;\n params: unknown;\n value?: unknown;\n error?: Error;\n};\n\ntype QueryReturnTypeFromDef<Q extends QueryDefinition> = ReturnType<\n CompileTimeMetadata<Q>[\"signature\"]\n> extends Promise<infer R> ? R : never;\n\ntype QueryParamsFromDef<Q extends QueryDefinition> =\n Parameters<CompileTimeMetadata<Q>[\"signature\"]> extends [infer P] ? P\n : undefined;\n\n// Well-known string key used by Foundry Platform APIs to pull the\n// SharedClientContext (baseUrl, tokenProvider, fetch) off a client. Matches\n// the value of `symbolClientContext` in `@osdk/shared.client2`.\nconst SYMBOL_CLIENT_CONTEXT = \"__osdkClientContext\";\n\nexport function createMockClient(): MockClient {\n const stubs: ClientStub[] = [];\n const queryStubs: QueryStub[] = [];\n\n const resolve = (objectType: string, calls: Call[]): unknown =>\n resolveStub(\n stubs.filter(s => s.objectType === objectType),\n calls,\n `No stub for request\\n`,\n );\n\n const resolveQuery = (queryApiName: string, params: unknown): unknown => {\n for (const stub of queryStubs) {\n if (stub.queryApiName !== queryApiName) continue;\n if (deepEqual(stub.params, params)) {\n if (stub.error !== undefined) {\n throw stub.error;\n }\n return stub.value;\n }\n }\n\n const msg = `No stub for query '${queryApiName}'`;\n throw new Error(msg);\n };\n\n const mockClient = ((\n def: ObjectOrInterfaceDefinition | QueryDefinition,\n ) => {\n invariant(\"apiName\" in def, \"Expected ObjectType, Interface, or Query\");\n\n if (def.type === \"query\") {\n return {\n executeFunction: (params?: unknown) => {\n try {\n return Promise.resolve(resolveQuery(def.apiName, params));\n } catch (e) {\n return Promise.reject(e);\n }\n },\n };\n }\n\n return createMockObjectSetWithResolver(\n def,\n (calls) => resolve(def.apiName, calls),\n );\n }) as MockClient;\n\n mockClient.when = <T>(\n callback: StubPatternCallback<T>,\n ): StubBuilderFor<T> => {\n let captured: { objectType: string; calls: Call[] } | undefined;\n\n const stubClient: StubClient = (def: ObjectOrInterfaceDefinition) => {\n return createMockObjectSetWithResolver(def, (calls) => {\n captured = { objectType: def.apiName, calls };\n return { data: [], nextPageToken: undefined };\n });\n };\n\n // The callback actually runs synchronously but all terminal methods are typed as async.\n void callback(stubClient);\n\n const register = (value: unknown) => {\n if (captured) stubs.push({ ...captured, value });\n };\n\n return {\n thenReturnObjects: register,\n thenReturnObject: register,\n thenReturnAggregation: register,\n } as unknown as StubBuilderFor<T>;\n };\n\n mockClient.whenObjectSet = <\n Q extends ObjectOrInterfaceDefinition,\n T,\n >(\n objectSet: ObjectSet<Q>,\n callback: ObjectSetStubCallback<Q, T>,\n ): StubBuilderFor<T> => {\n let capturedCalls: Call[] | undefined;\n\n const capturingProxy = createMockObjectSetWithResolver(\n objectSet.$objectSetInternals.def,\n (calls) => {\n capturedCalls = calls;\n return { data: [], nextPageToken: undefined };\n },\n );\n\n void callback(capturingProxy);\n\n const branded = objectSet as unknown as MockObjectSetBranded<Q>;\n\n const register = (value: unknown) => {\n if (capturedCalls) {\n branded.__registerStub(capturedCalls, value);\n }\n };\n\n return {\n thenReturnObjects: register,\n thenReturnObject: register,\n thenReturnAggregation: register,\n } as unknown as StubBuilderFor<T>;\n };\n\n mockClient.whenQuery = <Q extends QueryDefinition>(\n query: Q,\n params?: QueryParamsFromDef<Q>,\n ): QueryStubBuilder<QueryReturnTypeFromDef<Q>> => {\n return {\n thenReturn: (result: QueryReturnTypeFromDef<Q>) => {\n queryStubs.push({\n queryApiName: query.apiName,\n params,\n value: result,\n });\n },\n thenThrow: (error: Error) => {\n queryStubs.push({\n queryApiName: query.apiName,\n params,\n error,\n });\n },\n };\n };\n\n mockClient.clearStubs = () => {\n stubs.length = 0;\n queryStubs.length = 0;\n };\n\n mockClient.fetchMetadata = async () => {\n invariant(false, \"fetchMetadata is not supported in mocks\");\n };\n\n // Attach a SharedClientContext so Foundry Platform API helpers\n // (e.g. `Users.getCurrent(client)`) don't crash inside `foundryPlatformFetch`\n // on an undefined `baseUrl` before any request is made. Callers intercept the\n // actual HTTP layer themselves (MSW, vi.spyOn(globalThis, \"fetch\"), etc.).\n Object.defineProperty(mockClient, SYMBOL_CLIENT_CONTEXT, {\n value: createPlatformClient(\n \"https://mock.invalid/\",\n async () => \"mock-token\",\n ),\n enumerable: false,\n });\n\n // TODO: Implement WriteableClient operations\n\n return mockClient;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createMockClient.js","names":["createPlatformClient","invariant","createMockObjectSetWithResolver","deepEqual","resolveStub","SYMBOL_CLIENT_CONTEXT","createMockClient","stubs","queryStubs","resolve","objectType","calls","filter","s","resolveQuery","queryApiName","params","stub","error","undefined","value","Error","mockClient","def","process","env","NODE_ENV","type","executeFunction","Promise","apiName","e","reject","when","callback","captured","data","nextPageToken","register","push","thenReturnObjects","thenReturnObject","thenReturnAggregation","whenObjectSet","objectSet","capturedCalls","capturingProxy","$objectSetInternals","__registerStub","whenQuery","query","thenReturn","result","thenThrow","clearStubs","length","fetchMetadata","Object","defineProperty","enumerable"],"sources":["createMockClient.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n QueryDefinition,\n} from \"@osdk/api\";\nimport { createPlatformClient } from \"@osdk/client\";\nimport invariant from \"tiny-invariant\";\n\nimport type {\n MockClient,\n ObjectSetStubCallback,\n StubPatternCallback,\n} from \"../api/MockClient.js\";\nimport type { QueryStubBuilder, StubBuilderFor } from \"../api/StubBuilders.js\";\nimport type { StubClient } from \"../api/StubClient.js\";\nimport { type MockObjectSetBranded } from \"./createMockObjectSet.js\";\nimport {\n type Call,\n createMockObjectSetWithResolver,\n deepEqual,\n resolveStub,\n type Stub,\n} from \"./createMockObjectSetWithResolver.js\";\n\ntype ClientStub = Stub & { objectType: string };\n\ntype QueryStub = {\n queryApiName: string;\n params: unknown;\n value?: unknown;\n error?: Error;\n};\n\ntype QueryReturnTypeFromDef<Q extends QueryDefinition> =\n ReturnType<CompileTimeMetadata<Q>[\"signature\"]> extends Promise<infer R>\n ? R\n : never;\n\ntype QueryParamsFromDef<Q extends QueryDefinition> =\n Parameters<CompileTimeMetadata<Q>[\"signature\"]> extends [infer P]\n ? P\n : undefined;\n\n// Well-known string key used by Foundry Platform APIs to pull the\n// SharedClientContext (baseUrl, tokenProvider, fetch) off a client. Matches\n// the value of `symbolClientContext` in `@osdk/shared.client2`.\nconst SYMBOL_CLIENT_CONTEXT = \"__osdkClientContext\";\n\nexport function createMockClient(): MockClient {\n const stubs: ClientStub[] = [];\n const queryStubs: QueryStub[] = [];\n\n const resolve = (objectType: string, calls: Call[]): unknown =>\n resolveStub(\n stubs.filter((s) => s.objectType === objectType),\n calls,\n `No stub for request\\n`\n );\n\n const resolveQuery = (queryApiName: string, params: unknown): unknown => {\n for (const stub of queryStubs) {\n if (stub.queryApiName !== queryApiName) continue;\n if (deepEqual(stub.params, params)) {\n if (stub.error !== undefined) {\n throw stub.error;\n }\n return stub.value;\n }\n }\n\n const msg = `No stub for query '${queryApiName}'`;\n throw new Error(msg);\n };\n\n const mockClient = ((def: ObjectOrInterfaceDefinition | QueryDefinition) => {\n invariant(\"apiName\" in def, \"Expected ObjectType, Interface, or Query\");\n\n if (def.type === \"query\") {\n return {\n executeFunction: (params?: unknown) => {\n try {\n return Promise.resolve(resolveQuery(def.apiName, params));\n } catch (e) {\n return Promise.reject(e);\n }\n },\n };\n }\n\n return createMockObjectSetWithResolver(def, (calls) =>\n resolve(def.apiName, calls)\n );\n }) as MockClient;\n\n mockClient.when = <T>(\n callback: StubPatternCallback<T>\n ): StubBuilderFor<T> => {\n let captured: { objectType: string; calls: Call[] } | undefined;\n\n const stubClient: StubClient = (def: ObjectOrInterfaceDefinition) => {\n return createMockObjectSetWithResolver(def, (calls) => {\n captured = { objectType: def.apiName, calls };\n return { data: [], nextPageToken: undefined };\n });\n };\n\n // The callback actually runs synchronously but all terminal methods are typed as async.\n void callback(stubClient);\n\n const register = (value: unknown) => {\n if (captured) stubs.push({ ...captured, value });\n };\n\n return {\n thenReturnObjects: register,\n thenReturnObject: register,\n thenReturnAggregation: register,\n } as unknown as StubBuilderFor<T>;\n };\n\n mockClient.whenObjectSet = <Q extends ObjectOrInterfaceDefinition, T>(\n objectSet: ObjectSet<Q>,\n callback: ObjectSetStubCallback<Q, T>\n ): StubBuilderFor<T> => {\n let capturedCalls: Call[] | undefined;\n\n const capturingProxy = createMockObjectSetWithResolver(\n objectSet.$objectSetInternals.def,\n (calls) => {\n capturedCalls = calls;\n return { data: [], nextPageToken: undefined };\n }\n );\n\n void callback(capturingProxy);\n\n const branded = objectSet as unknown as MockObjectSetBranded<Q>;\n\n const register = (value: unknown) => {\n if (capturedCalls) {\n branded.__registerStub(capturedCalls, value);\n }\n };\n\n return {\n thenReturnObjects: register,\n thenReturnObject: register,\n thenReturnAggregation: register,\n } as unknown as StubBuilderFor<T>;\n };\n\n mockClient.whenQuery = <Q extends QueryDefinition>(\n query: Q,\n params?: QueryParamsFromDef<Q>\n ): QueryStubBuilder<QueryReturnTypeFromDef<Q>> => {\n return {\n thenReturn: (result: QueryReturnTypeFromDef<Q>) => {\n queryStubs.push({\n queryApiName: query.apiName,\n params,\n value: result,\n });\n },\n thenThrow: (error: Error) => {\n queryStubs.push({\n queryApiName: query.apiName,\n params,\n error,\n });\n },\n };\n };\n\n mockClient.clearStubs = () => {\n stubs.length = 0;\n queryStubs.length = 0;\n };\n\n mockClient.fetchMetadata = async () => {\n invariant(false, \"fetchMetadata is not supported in mocks\");\n };\n\n // Attach a SharedClientContext so Foundry Platform API helpers\n // (e.g. `Users.getCurrent(client)`) don't crash inside `foundryPlatformFetch`\n // on an undefined `baseUrl` before any request is made. Callers intercept the\n // actual HTTP layer themselves (MSW, vi.spyOn(globalThis, \"fetch\"), etc.).\n Object.defineProperty(mockClient, SYMBOL_CLIENT_CONTEXT, {\n value: createPlatformClient(\n \"https://mock.invalid/\",\n async () => \"mock-token\"\n ),\n enumerable: false,\n });\n\n // TODO: Implement WriteableClient operations\n\n return mockClient;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SAASA,oBAAoB,QAAQ,cAAc;AACnD,OAAOC,SAAS,MAAM,gBAAgB;AAUtC,SAEEC,+BAA+B,EAC/BC,SAAS,EACTC,WAAW,QAEN,sCAAsC;AAqB7C;AACA;AACA;AACA,MAAMC,qBAAqB,GAAG,qBAAqB;AAEnD,OAAO,SAASC,gBAAgBA,CAAA,EAAe;EAC7C,MAAMC,KAAmB,GAAG,EAAE;EAC9B,MAAMC,UAAuB,GAAG,EAAE;EAElC,MAAMC,OAAO,GAAGA,CAACC,UAAkB,EAAEC,KAAa,KAChDP,WAAW,CACTG,KAAK,CAACK,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACH,UAAU,KAAKA,UAAU,CAAC,EAChDC,KAAK,EACL,uBACF,CAAC;EAEH,MAAMG,YAAY,GAAGA,CAACC,YAAoB,EAAEC,MAAe,KAAc;IACvE,KAAK,MAAMC,IAAI,IAAIT,UAAU,EAAE;MAC7B,IAAIS,IAAI,CAACF,YAAY,KAAKA,YAAY,EAAE;MACxC,IAAIZ,SAAS,CAACc,IAAI,CAACD,MAAM,EAAEA,MAAM,CAAC,EAAE;QAClC,IAAIC,IAAI,CAACC,KAAK,KAAKC,SAAS,EAAE;UAC5B,MAAMF,IAAI,CAACC,KAAK;QAClB;QACA,OAAOD,IAAI,CAACG,KAAK;MACnB;IACF;IAGA,MAAM,IAAIC,KAAK,CADH,sBAAsBN,YAAY,GAC3B,CAAC;EACtB,CAAC;EAED,MAAMO,UAAU,GAAKC,GAAkD,IAAK;IAC1E,EAAU,SAAS,IAAIA,GAAG,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAA1BzB,SAAS,QAAmB,0CAA0C,IAAtEA,SAAS;IAET,IAAIsB,GAAG,CAACI,IAAI,KAAK,OAAO,EAAE;MACxB,OAAO;QACLC,eAAe,EAAGZ,MAAgB,IAAK;UACrC,IAAI;YACF,OAAOa,OAAO,CAACpB,OAAO,CAACK,YAAY,CAACS,GAAG,CAACO,OAAO,EAAEd,MAAM,CAAC,CAAC;UAC3D,CAAC,CAAC,OAAOe,CAAC,EAAE;YACV,OAAOF,OAAO,CAACG,MAAM,CAACD,CAAC,CAAC;UAC1B;QACF;MACF,CAAC;IACH;IAEA,OAAO7B,+BAA+B,CAACqB,GAAG,EAAGZ,KAAK,IAChDF,OAAO,CAACc,GAAG,CAACO,OAAO,EAAEnB,KAAK,CAC5B,CAAC;EACH,CAAgB;EAEhBW,UAAU,CAACW,IAAI,GACbC,QAAgC,IACV;IACtB,IAAIC,QAA2D;IAS/D;IACA,KAAKD,QAAQ,CARmBX,GAAgC,IAAK;MACnE,OAAOrB,+BAA+B,CAACqB,GAAG,EAAGZ,KAAK,IAAK;QACrDwB,QAAQ,GAAG;UAAEzB,UAAU,EAAEa,GAAG,CAACO,OAAO;UAAEnB;QAAM,CAAC;QAC7C,OAAO;UAAEyB,IAAI,EAAE,EAAE;UAAEC,aAAa,EAAElB;QAAU,CAAC;MAC/C,CAAC,CAAC;IACJ,CAGwB,CAAC;IAEzB,MAAMmB,QAAQ,GAAIlB,KAAc,IAAK;MACnC,IAAIe,QAAQ,EAAE5B,KAAK,CAACgC,IAAI,CAAC;QAAE,GAAGJ,QAAQ;QAAEf;MAAM,CAAC,CAAC;IAClD,CAAC;IAED,OAAO;MACLoB,iBAAiB,EAAEF,QAAQ;MAC3BG,gBAAgB,EAAEH,QAAQ;MAC1BI,qBAAqB,EAAEJ;IACzB,CAAC;EACH,CAAC;EAEDhB,UAAU,CAACqB,aAAa,GAAG,CACzBC,SAAuB,EACvBV,QAAqC,KACf;IACtB,IAAIW,aAAiC;IAErC,MAAMC,cAAc,GAAG5C,+BAA+B,CACpD0C,SAAS,CAACG,mBAAmB,CAACxB,GAAG,EAChCZ,KAAK,IAAK;MACTkC,aAAa,GAAGlC,KAAK;MACrB,OAAO;QAAEyB,IAAI,EAAE,EAAE;QAAEC,aAAa,EAAElB;MAAU,CAAC;IAC/C,CACF,CAAC;IAED,KAAKe,QAAQ,CAACY,cAAc,CAAC;IAI7B,MAAMR,QAAQ,GAAIlB,KAAc,IAAK;MACnC,IAAIyB,aAAa,EAAE;QAHLD,SAAS,CAIbI,cAAc,CAACH,aAAa,EAAEzB,KAAK,CAAC;MAC9C;IACF,CAAC;IAED,OAAO;MACLoB,iBAAiB,EAAEF,QAAQ;MAC3BG,gBAAgB,EAAEH,QAAQ;MAC1BI,qBAAqB,EAAEJ;IACzB,CAAC;EACH,CAAC;EAEDhB,UAAU,CAAC2B,SAAS,GAAG,CACrBC,KAAQ,EACRlC,MAA8B,KACkB;IAChD,OAAO;MACLmC,UAAU,EAAGC,MAAiC,IAAK;QACjD5C,UAAU,CAAC+B,IAAI,CAAC;UACdxB,YAAY,EAAEmC,KAAK,CAACpB,OAAO;UAC3Bd,MAAM;UACNI,KAAK,EAAEgC;QACT,CAAC,CAAC;MACJ,CAAC;MACDC,SAAS,EAAGnC,KAAY,IAAK;QAC3BV,UAAU,CAAC+B,IAAI,CAAC;UACdxB,YAAY,EAAEmC,KAAK,CAACpB,OAAO;UAC3Bd,MAAM;UACNE;QACF,CAAC,CAAC;MACJ;IACF,CAAC;EACH,CAAC;EAEDI,UAAU,CAACgC,UAAU,GAAG,MAAM;IAC5B/C,KAAK,CAACgD,MAAM,GAAG,CAAC;IAChB/C,UAAU,CAAC+C,MAAM,GAAG,CAAC;EACvB,CAAC;EAEDjC,UAAU,CAACkC,aAAa,GAAG,YAAY;IACrChC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAAzB,SAAS,QAAQ,yCAAyC,IAA1DA,SAAS;EACX,CAAC;;EAED;EACA;EACA;EACA;EACAwD,MAAM,CAACC,cAAc,CAACpC,UAAU,EAAEjB,qBAAqB,EAAE;IACvDe,KAAK,EAAEpB,oBAAoB,CACzB,uBAAuB,EACvB,YAAY,YACd,CAAC;IACD2D,UAAU,EAAE;EACd,CAAC,CAAC;;EAEF;;EAEA,OAAOrC,UAAU;AACnB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"createMockObjectSet.js","names":["createMockObjectSetWithResolver","resolveStub","MOCK_OBJECT_SET_BRAND","Symbol","createMockObjectSet","objectType","stubs","objectSet","calls","__registerStub","value","push","isMockObjectSet"],"sources":["createMockObjectSet.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectOrInterfaceDefinition, ObjectSet } from \"@osdk/api\";\nimport {\n type Call,\n createMockObjectSetWithResolver,\n resolveStub,\n type Stub,\n} from \"./createMockObjectSetWithResolver.js\";\n\nconst MOCK_OBJECT_SET_BRAND: unique symbol = Symbol(\"MOCK_OBJECT_SET_BRAND\");\n\nexport type MockObjectSetBranded<Q extends ObjectOrInterfaceDefinition> =\n & ObjectSet<Q>\n & {\n [MOCK_OBJECT_SET_BRAND]: true;\n __registerStub(calls: Call[], value: unknown): void;\n };\n\nexport function createMockObjectSet<Q extends ObjectOrInterfaceDefinition>(\n objectType: Q,\n): ObjectSet<Q> {\n const stubs: Stub[] = [];\n\n const resolve = (calls: Call[]): unknown =>\n resolveStub(\n stubs,\n calls,\n `No stub registered on standalone MockObjectSet\\n`,\n );\n\n const objectSet = createMockObjectSetWithResolver(\n objectType,\n resolve,\n ) as MockObjectSetBranded<Q>;\n\n objectSet[MOCK_OBJECT_SET_BRAND] = true;\n (objectSet as any).__registerStub = (calls: Call[], value: unknown) => {\n stubs.push({ calls, value });\n };\n\n return objectSet;\n}\n\n/** @internal */\nexport function isMockObjectSet(\n value: unknown,\n): value is MockObjectSetBranded<ObjectOrInterfaceDefinition> {\n return value != null\n && typeof value === \"object\"\n && MOCK_OBJECT_SET_BRAND in value;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAEEA,+BAA+B,EAC/BC,WAAW,QAEN,sCAAsC;AAE7C,MAAMC,qBAAoC,GAAGC,MAAM,CAAC,uBAAuB,CAAC;AAS5E,OAAO,SAASC,mBAAmBA,CACjCC,UAAa,EACC;EACd,MAAMC,KAAa,GAAG,EAAE;EASxB,MAAMC,SAAS,GAAGP,+BAA+B,CAC/CK,UAAU,EARKG,KAAa,IAC5BP,WAAW,CACTK,KAAK,EACLE,KAAK,EACL,kDACF,CAKF,CAA4B;EAE5BD,SAAS,CAACL,qBAAqB,CAAC,GAAG,IAAI;EACtCK,SAAS,CAASE,cAAc,GAAG,CAACD,KAAa,EAAEE,KAAc,KAAK;IACrEJ,KAAK,CAACK,IAAI,CAAC;MAAEH,KAAK;MAAEE;IAAM,CAAC,CAAC;EAC9B,CAAC;EAED,OAAOH,SAAS;AAClB;;AAEA;AACA,OAAO,SAASK,eAAeA,CAC7BF,KAAc,EAC8C;EAC5D,OAAOA,KAAK,IAAI,IAAI,IACf,OAAOA,KAAK,KAAK,QAAQ,IACzBR,qBAAqB,IAAIQ,KAAK;AACrC","ignoreList":[]}
1
+ {"version":3,"file":"createMockObjectSet.js","names":["createMockObjectSetWithResolver","resolveStub","MOCK_OBJECT_SET_BRAND","Symbol","createMockObjectSet","objectType","stubs","objectSet","calls","__registerStub","value","push","isMockObjectSet"],"sources":["createMockObjectSet.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectOrInterfaceDefinition, ObjectSet } from \"@osdk/api\";\n\nimport {\n type Call,\n createMockObjectSetWithResolver,\n resolveStub,\n type Stub,\n} from \"./createMockObjectSetWithResolver.js\";\n\nconst MOCK_OBJECT_SET_BRAND: unique symbol = Symbol(\"MOCK_OBJECT_SET_BRAND\");\n\nexport type MockObjectSetBranded<Q extends ObjectOrInterfaceDefinition> =\n ObjectSet<Q> & {\n [MOCK_OBJECT_SET_BRAND]: true;\n __registerStub(calls: Call[], value: unknown): void;\n };\n\nexport function createMockObjectSet<Q extends ObjectOrInterfaceDefinition>(\n objectType: Q\n): ObjectSet<Q> {\n const stubs: Stub[] = [];\n\n const resolve = (calls: Call[]): unknown =>\n resolveStub(\n stubs,\n calls,\n `No stub registered on standalone MockObjectSet\\n`\n );\n\n const objectSet = createMockObjectSetWithResolver(\n objectType,\n resolve\n ) as MockObjectSetBranded<Q>;\n\n objectSet[MOCK_OBJECT_SET_BRAND] = true;\n (objectSet as any).__registerStub = (calls: Call[], value: unknown) => {\n stubs.push({ calls, value });\n };\n\n return objectSet;\n}\n\n/** @internal */\nexport function isMockObjectSet(\n value: unknown\n): value is MockObjectSetBranded<ObjectOrInterfaceDefinition> {\n return (\n value != null && typeof value === \"object\" && MOCK_OBJECT_SET_BRAND in value\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAEEA,+BAA+B,EAC/BC,WAAW,QAEN,sCAAsC;AAE7C,MAAMC,qBAAoC,GAAGC,MAAM,CAAC,uBAAuB,CAAC;AAQ5E,OAAO,SAASC,mBAAmBA,CACjCC,UAAa,EACC;EACd,MAAMC,KAAa,GAAG,EAAE;EASxB,MAAMC,SAAS,GAAGP,+BAA+B,CAC/CK,UAAU,EARKG,KAAa,IAC5BP,WAAW,CACTK,KAAK,EACLE,KAAK,EACL,kDACF,CAKF,CAA4B;EAE5BD,SAAS,CAACL,qBAAqB,CAAC,GAAG,IAAI;EACtCK,SAAS,CAASE,cAAc,GAAG,CAACD,KAAa,EAAEE,KAAc,KAAK;IACrEJ,KAAK,CAACK,IAAI,CAAC;MAAEH,KAAK;MAAEE;IAAM,CAAC,CAAC;EAC9B,CAAC;EAED,OAAOH,SAAS;AAClB;;AAEA;AACA,OAAO,SAASK,eAAeA,CAC7BF,KAAc,EAC8C;EAC5D,OACEA,KAAK,IAAI,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIR,qBAAqB,IAAIQ,KAAK;AAEhF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"createMockObjectSetWithResolver.js","names":["invariant","createMockObjectSetWithResolver","objectType","resolver","calls","chain","method","args","terminal","where","clause","union","process","env","NODE_ENV","intersect","subtract","pivotTo","link","narrowToType","type","nearestNeighbors","query","num","prop","withProperties","fetchPage","fetchPageWithErrors","value","error","fetchOne","pk","fetchOneWithErrors","aggregate","req","asyncIter","data","item","subscribe","experimental_asyncIterLinks","$objectSetInternals","def","resolveStub","stubs","errorMsg","stub","length","every","m","a","i","deepEqual","nextPageToken","undefined","Error","b","isAsymmetricMatcher","asymmetricMatch","Array","isArray","v","aKeys","Object","keys","bKeys","k","x"],"sources":["createMockObjectSetWithResolver.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n AggregateOpts,\n AggregationsResults,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n Osdk,\n PageResult,\n WhereClause,\n} from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\n\nexport type Call = [method: string, args: unknown];\n\nexport type Resolver = (calls: Call[]) => unknown;\n\nexport type Stub = { calls: Call[]; value: unknown };\n\nexport function createMockObjectSetWithResolver<\n Q extends ObjectOrInterfaceDefinition,\n>(\n objectType: Q,\n resolver: Resolver,\n calls: Call[] = [],\n): ObjectSet<Q> {\n const chain = (method: string, args: unknown): ObjectSet<Q> =>\n createMockObjectSetWithResolver(objectType, resolver, [...calls, [\n method,\n args,\n ]]);\n\n const terminal = <T>(method: string, args: unknown): T =>\n resolver([...calls, [method, args]]) as T;\n\n // All methods should execute synchronously even if marked as async\n return {\n where: (clause: WhereClause<Q>) => chain(\"where\", clause),\n union: () =>\n void invariant(false, \"union is not supported in mocks\") as any,\n intersect: () =>\n void invariant(false, \"intersect is not supported in mocks\") as any,\n subtract: () =>\n void invariant(false, \"subtract is not supported in mocks\") as any,\n pivotTo: (link: string) => chain(\"pivotTo\", link) as any,\n narrowToType: (type: ObjectOrInterfaceDefinition) =>\n chain(\"narrowToType\", type) as any,\n nearestNeighbors: (query: unknown, num: number, prop: string) =>\n chain(\"nearestNeighbors\", { query, num, prop }),\n withProperties: () =>\n // TODO: Add with properties support\n void invariant(false, \"withProperties is not supported in mocks\") as any,\n fetchPage: async (args?: unknown) =>\n terminal<PageResult<Osdk.Instance<Q>>>(\"fetchPage\", args) as any,\n fetchPageWithErrors: async (args?: unknown) => {\n try {\n return {\n type: \"ok\" as const,\n value: await terminal(\"fetchPage\", args),\n } as any;\n } catch (error) {\n return { type: \"error\" as const, error };\n }\n },\n fetchOne:\n (async (pk: unknown) =>\n terminal<Osdk.Instance<Q>>(\"fetchOne\", pk)) as any,\n fetchOneWithErrors: (async (pk: unknown) => {\n try {\n return {\n type: \"ok\" as const,\n value: await terminal(\"fetchOne\", pk),\n } as any;\n } catch (error) {\n return { type: \"error\" as const, error } as any;\n }\n }) as any,\n aggregate: async (req: AggregateOpts<Q>) =>\n terminal<AggregationsResults<Q, AggregateOpts<Q>>>(\n \"aggregate\",\n req,\n ) as any,\n asyncIter: (args?: unknown) => {\n const data = terminal<Osdk.Instance<Q>[]>(\"asyncIter\", args);\n return (async function*() {\n for (const item of data) yield item;\n })();\n },\n\n subscribe: () =>\n void invariant(false, \"subscribe is not supported in mocks\") as any,\n experimental_asyncIterLinks: () =>\n void invariant(\n false,\n \"experimental_asyncIterLinks is not supported in mocks\",\n ) as any,\n $objectSetInternals: {\n def: {} as Q,\n },\n } satisfies ObjectSet<Q>;\n}\n\nexport function resolveStub(\n stubs: Stub[],\n calls: Call[],\n errorMsg: string,\n): unknown {\n for (const stub of stubs) {\n if (stub.calls.length !== calls.length) continue;\n if (\n stub.calls.every(([m, a], i) =>\n calls[i][0] === m && deepEqual(a, calls[i][1])\n )\n ) {\n const terminal = calls[calls.length - 1][0];\n if (terminal === \"fetchPage\") {\n return { data: stub.value, nextPageToken: undefined };\n }\n return stub.value;\n }\n }\n throw new Error(errorMsg);\n}\n\nexport function deepEqual(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n\n // Support Vitest / Jest asymmetric matchers (e.g. expect.any(String),\n // expect.anything(), expect.stringContaining(...), expect.objectContaining(...))\n // in either position. Without this check, matchers would be compared by their\n // raw object shape and silently never match stub params.\n if (isAsymmetricMatcher(a)) return a.asymmetricMatch(b);\n if (isAsymmetricMatcher(b)) return b.asymmetricMatch(a);\n\n if (a == null || b == null) return a === b;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n return a.every((v, i) => deepEqual(v, b[i]));\n }\n if (typeof a === \"object\") {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b as object);\n if (aKeys.length !== bKeys.length) return false;\n return aKeys.every((k) =>\n deepEqual((a as any)[k], (b as Record<string, unknown>)[k])\n );\n }\n return false;\n}\n\nfunction isAsymmetricMatcher(\n x: unknown,\n): x is { asymmetricMatch: (other: unknown) => boolean } {\n return x != null\n && typeof x === \"object\"\n && typeof (x as { asymmetricMatch?: unknown }).asymmetricMatch\n === \"function\";\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createMockObjectSetWithResolver.js","names":["invariant","createMockObjectSetWithResolver","objectType","resolver","calls","chain","method","args","terminal","where","clause","union","process","env","NODE_ENV","intersect","subtract","pivotTo","link","narrowToType","type","nearestNeighbors","query","num","prop","withProperties","fetchPage","fetchPageWithErrors","value","error","fetchOne","pk","fetchOneWithErrors","aggregate","req","asyncIter","data","item","subscribe","experimental_asyncIterLinks","$objectSetInternals","def","resolveStub","stubs","errorMsg","stub","length","every","m","a","i","deepEqual","nextPageToken","undefined","Error","b","isAsymmetricMatcher","asymmetricMatch","Array","isArray","v","aKeys","Object","keys","bKeys","k","x"],"sources":["createMockObjectSetWithResolver.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n AggregateOpts,\n AggregationsResults,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n Osdk,\n PageResult,\n WhereClause,\n} from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\n\nexport type Call = [method: string, args: unknown];\n\nexport type Resolver = (calls: Call[]) => unknown;\n\nexport type Stub = { calls: Call[]; value: unknown };\n\nexport function createMockObjectSetWithResolver<\n Q extends ObjectOrInterfaceDefinition,\n>(objectType: Q, resolver: Resolver, calls: Call[] = []): ObjectSet<Q> {\n const chain = (method: string, args: unknown): ObjectSet<Q> =>\n createMockObjectSetWithResolver(objectType, resolver, [\n ...calls,\n [method, args],\n ]);\n\n const terminal = <T>(method: string, args: unknown): T =>\n resolver([...calls, [method, args]]) as T;\n\n // All methods should execute synchronously even if marked as async\n return {\n where: (clause: WhereClause<Q>) => chain(\"where\", clause),\n union: () =>\n void invariant(false, \"union is not supported in mocks\") as any,\n intersect: () =>\n void invariant(false, \"intersect is not supported in mocks\") as any,\n subtract: () =>\n void invariant(false, \"subtract is not supported in mocks\") as any,\n pivotTo: (link: string) => chain(\"pivotTo\", link) as any,\n narrowToType: (type: ObjectOrInterfaceDefinition) =>\n chain(\"narrowToType\", type) as any,\n nearestNeighbors: (query: unknown, num: number, prop: string) =>\n chain(\"nearestNeighbors\", { query, num, prop }),\n withProperties: () =>\n // TODO: Add with properties support\n void invariant(false, \"withProperties is not supported in mocks\") as any,\n fetchPage: async (args?: unknown) =>\n terminal<PageResult<Osdk.Instance<Q>>>(\"fetchPage\", args) as any,\n fetchPageWithErrors: async (args?: unknown) => {\n try {\n return {\n type: \"ok\" as const,\n value: await terminal(\"fetchPage\", args),\n } as any;\n } catch (error) {\n return { type: \"error\" as const, error };\n }\n },\n fetchOne: (async (pk: unknown) =>\n terminal<Osdk.Instance<Q>>(\"fetchOne\", pk)) as any,\n fetchOneWithErrors: (async (pk: unknown) => {\n try {\n return {\n type: \"ok\" as const,\n value: await terminal(\"fetchOne\", pk),\n } as any;\n } catch (error) {\n return { type: \"error\" as const, error } as any;\n }\n }) as any,\n aggregate: async (req: AggregateOpts<Q>) =>\n terminal<AggregationsResults<Q, AggregateOpts<Q>>>(\n \"aggregate\",\n req\n ) as any,\n asyncIter: (args?: unknown) => {\n const data = terminal<Osdk.Instance<Q>[]>(\"asyncIter\", args);\n return (async function* () {\n for (const item of data) yield item;\n })();\n },\n\n subscribe: () =>\n void invariant(false, \"subscribe is not supported in mocks\") as any,\n experimental_asyncIterLinks: () =>\n void invariant(\n false,\n \"experimental_asyncIterLinks is not supported in mocks\"\n ) as any,\n $objectSetInternals: {\n def: {} as Q,\n },\n } satisfies ObjectSet<Q>;\n}\n\nexport function resolveStub(\n stubs: Stub[],\n calls: Call[],\n errorMsg: string\n): unknown {\n for (const stub of stubs) {\n if (stub.calls.length !== calls.length) continue;\n if (\n stub.calls.every(\n ([m, a], i) => calls[i][0] === m && deepEqual(a, calls[i][1])\n )\n ) {\n const terminal = calls[calls.length - 1][0];\n if (terminal === \"fetchPage\") {\n return { data: stub.value, nextPageToken: undefined };\n }\n return stub.value;\n }\n }\n throw new Error(errorMsg);\n}\n\nexport function deepEqual(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n\n // Support Vitest / Jest asymmetric matchers (e.g. expect.any(String),\n // expect.anything(), expect.stringContaining(...), expect.objectContaining(...))\n // in either position. Without this check, matchers would be compared by their\n // raw object shape and silently never match stub params.\n if (isAsymmetricMatcher(a)) return a.asymmetricMatch(b);\n if (isAsymmetricMatcher(b)) return b.asymmetricMatch(a);\n\n if (a == null || b == null) return a === b;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n return a.every((v, i) => deepEqual(v, b[i]));\n }\n if (typeof a === \"object\") {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b as object);\n if (aKeys.length !== bKeys.length) return false;\n return aKeys.every((k) =>\n deepEqual((a as any)[k], (b as Record<string, unknown>)[k])\n );\n }\n return false;\n}\n\nfunction isAsymmetricMatcher(\n x: unknown\n): x is { asymmetricMatch: (other: unknown) => boolean } {\n return (\n x != null &&\n typeof x === \"object\" &&\n typeof (x as { asymmetricMatch?: unknown }).asymmetricMatch === \"function\"\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA,OAAOA,SAAS,MAAM,gBAAgB;AAQtC,OAAO,SAASC,+BAA+BA,CAE7CC,UAAa,EAAEC,QAAkB,EAAEC,KAAa,GAAG,EAAE,EAAgB;EACrE,MAAMC,KAAK,GAAGA,CAACC,MAAc,EAAEC,IAAa,KAC1CN,+BAA+B,CAACC,UAAU,EAAEC,QAAQ,EAAE,CACpD,GAAGC,KAAK,EACR,CAACE,MAAM,EAAEC,IAAI,CAAC,CACf,CAAC;EAEJ,MAAMC,QAAQ,GAAGA,CAAIF,MAAc,EAAEC,IAAa,KAChDJ,QAAQ,CAAC,CAAC,GAAGC,KAAK,EAAE,CAACE,MAAM,EAAEC,IAAI,CAAC,CAAC,CAAM;;EAE3C;EACA,OAAO;IACLE,KAAK,EAAGC,MAAsB,IAAKL,KAAK,CAAC,OAAO,EAAEK,MAAM,CAAC;IACzDC,KAAK,EAAEA,CAAA,KACL,MAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAKd,SAAS,QAAQ,iCAAiC,IAAlDA,SAAS,QAAiD;IACjEe,SAAS,EAAEA,CAAA,KACT,MAAAH,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAKd,SAAS,QAAQ,qCAAqC,IAAtDA,SAAS,QAAqD;IACrEgB,QAAQ,EAAEA,CAAA,KACR,MAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAKd,SAAS,QAAQ,oCAAoC,IAArDA,SAAS,QAAoD;IACpEiB,OAAO,EAAGC,IAAY,IAAKb,KAAK,CAAC,SAAS,EAAEa,IAAI,CAAQ;IACxDC,YAAY,EAAGC,IAAiC,IAC9Cf,KAAK,CAAC,cAAc,EAAEe,IAAI,CAAQ;IACpCC,gBAAgB,EAAEA,CAACC,KAAc,EAAEC,GAAW,EAAEC,IAAY,KAC1DnB,KAAK,CAAC,kBAAkB,EAAE;MAAEiB,KAAK;MAAEC,GAAG;MAAEC;IAAK,CAAC,CAAC;IACjDC,cAAc,EAAEA,CAAA;IACd;IACA,MAAAb,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAKd,SAAS,QAAQ,0CAA0C,IAA3DA,SAAS,QAA0D;IAC1E0B,SAAS,EAAE,MAAOnB,IAAc,IAC9BC,QAAQ,CAA+B,WAAW,EAAED,IAAI,CAAQ;IAClEoB,mBAAmB,EAAE,MAAOpB,IAAc,IAAK;MAC7C,IAAI;QACF,OAAO;UACLa,IAAI,EAAE,IAAa;UACnBQ,KAAK,EAAE,MAAMpB,QAAQ,CAAC,WAAW,EAAED,IAAI;QACzC,CAAC;MACH,CAAC,CAAC,OAAOsB,KAAK,EAAE;QACd,OAAO;UAAET,IAAI,EAAE,OAAgB;UAAES;QAAM,CAAC;MAC1C;IACF,CAAC;IACDC,QAAQ,EAAG,MAAOC,EAAW,IAC3BvB,QAAQ,CAAmB,UAAU,EAAEuB,EAAE,CAAS;IACpDC,kBAAkB,EAAG,MAAOD,EAAW,IAAK;MAC1C,IAAI;QACF,OAAO;UACLX,IAAI,EAAE,IAAa;UACnBQ,KAAK,EAAE,MAAMpB,QAAQ,CAAC,UAAU,EAAEuB,EAAE;QACtC,CAAC;MACH,CAAC,CAAC,OAAOF,KAAK,EAAE;QACd,OAAO;UAAET,IAAI,EAAE,OAAgB;UAAES;QAAM,CAAC;MAC1C;IACF,CAAS;IACTI,SAAS,EAAE,MAAOC,GAAqB,IACrC1B,QAAQ,CACN,WAAW,EACX0B,GACF,CAAQ;IACVC,SAAS,EAAG5B,IAAc,IAAK;MAC7B,MAAM6B,IAAI,GAAG5B,QAAQ,CAAqB,WAAW,EAAED,IAAI,CAAC;MAC5D,OAAQ,mBAAmB;QACzB,KAAK,MAAM8B,IAAI,IAAID,IAAI,EAAE,MAAMC,IAAI;MACrC,CAAC,CAAE,CAAC;IACN,CAAC;IAEDC,SAAS,EAAEA,CAAA,KACT,MAAA1B,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAKd,SAAS,QAAQ,qCAAqC,IAAtDA,SAAS,QAAqD;IACrEuC,2BAA2B,EAAEA,CAAA,KAC3B,MAAA3B,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAKd,SAAS,QAEZ,uDAAuD,IAFpDA,SAAS,QAGN;IACVwC,mBAAmB,EAAE;MACnBC,GAAG,EAAE,CAAC;IACR;EACF,CAAC;AACH;AAEA,OAAO,SAASC,WAAWA,CACzBC,KAAa,EACbvC,KAAa,EACbwC,QAAgB,EACP;EACT,KAAK,MAAMC,IAAI,IAAIF,KAAK,EAAE;IACxB,IAAIE,IAAI,CAACzC,KAAK,CAAC0C,MAAM,KAAK1C,KAAK,CAAC0C,MAAM,EAAE;IACxC,IACED,IAAI,CAACzC,KAAK,CAAC2C,KAAK,CACd,CAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,EAAEC,CAAC,KAAK9C,KAAK,CAAC8C,CAAC,CAAC,CAAC,CAAC,CAAC,KAAKF,CAAC,IAAIG,SAAS,CAACF,CAAC,EAAE7C,KAAK,CAAC8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9D,CAAC,EACD;MACA,MAAM1C,QAAQ,GAAGJ,KAAK,CAACA,KAAK,CAAC0C,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;MAC3C,IAAItC,QAAQ,KAAK,WAAW,EAAE;QAC5B,OAAO;UAAE4B,IAAI,EAAES,IAAI,CAACjB,KAAK;UAAEwB,aAAa,EAAEC;QAAU,CAAC;MACvD;MACA,OAAOR,IAAI,CAACjB,KAAK;IACnB;EACF;EACA,MAAM,IAAI0B,KAAK,CAACV,QAAQ,CAAC;AAC3B;AAEA,OAAO,SAASO,SAASA,CAACF,CAAU,EAAEM,CAAU,EAAW;EACzD,IAAIN,CAAC,KAAKM,CAAC,EAAE,OAAO,IAAI;;EAExB;EACA;EACA;EACA;EACA,IAAIC,mBAAmB,CAACP,CAAC,CAAC,EAAE,OAAOA,CAAC,CAACQ,eAAe,CAACF,CAAC,CAAC;EACvD,IAAIC,mBAAmB,CAACD,CAAC,CAAC,EAAE,OAAOA,CAAC,CAACE,eAAe,CAACR,CAAC,CAAC;EAEvD,IAAIA,CAAC,IAAI,IAAI,IAAIM,CAAC,IAAI,IAAI,EAAE,OAAON,CAAC,KAAKM,CAAC;EAC1C,IAAI,OAAON,CAAC,KAAK,OAAOM,CAAC,EAAE,OAAO,KAAK;EACvC,IAAIG,KAAK,CAACC,OAAO,CAACV,CAAC,CAAC,IAAIS,KAAK,CAACC,OAAO,CAACJ,CAAC,CAAC,EAAE;IACxC,IAAIN,CAAC,CAACH,MAAM,KAAKS,CAAC,CAACT,MAAM,EAAE,OAAO,KAAK;IACvC,OAAOG,CAAC,CAACF,KAAK,CAAC,CAACa,CAAC,EAAEV,CAAC,KAAKC,SAAS,CAACS,CAAC,EAAEL,CAAC,CAACL,CAAC,CAAC,CAAC,CAAC;EAC9C;EACA,IAAI,OAAOD,CAAC,KAAK,QAAQ,EAAE;IACzB,MAAMY,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACd,CAAC,CAAC;IAC5B,MAAMe,KAAK,GAAGF,MAAM,CAACC,IAAI,CAACR,CAAW,CAAC;IACtC,IAAIM,KAAK,CAACf,MAAM,KAAKkB,KAAK,CAAClB,MAAM,EAAE,OAAO,KAAK;IAC/C,OAAOe,KAAK,CAACd,KAAK,CAAEkB,CAAC,IACnBd,SAAS,CAAEF,CAAC,CAASgB,CAAC,CAAC,EAAGV,CAAC,CAA6BU,CAAC,CAAC,CAC5D,CAAC;EACH;EACA,OAAO,KAAK;AACd;AAEA,SAAST,mBAAmBA,CAC1BU,CAAU,EAC6C;EACvD,OACEA,CAAC,IAAI,IAAI,IACT,OAAOA,CAAC,KAAK,QAAQ,IACrB,OAAQA,CAAC,CAAmCT,eAAe,KAAK,UAAU;AAE9E","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"createMockOsdkObject.js","names":["invariant","isMockObjectSet","createSingleLinkStub","linked","Error","fetchOne","Promise","reject","fetchOneWithErrors","resolve","error","value","createMissingLinkStub","linkName","objectApiName","primaryKey","makeError","fetchPage","asyncIter","aggregate","createManyLinkStub","linkedObjects","length","$primaryKey","process","env","NODE_ENV","found","find","obj","String","data","nextPageToken","undefined","index","Symbol","asyncIterator","next","done","createMockOsdkObject","objectType","properties","options","links","titlePropertyApiName","primaryKeyApiName","apiName","$title","$rid","mockObject","$apiName","$objectType","Object","defineProperty","get","enumerable","linkAccessors","linkValue","entries","Array","isArray","Proxy","target","prop","updates","newProperties","freeze"],"sources":["createMockOsdkObject.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectTypeDefinition,\n Osdk,\n Result,\n} from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\nimport type { MockOsdkObjectOptions } from \"../api/MockOsdkObjectOptions.js\";\nimport { isMockObjectSet } from \"./createMockObjectSet.js\";\n\n// TODO: Add support for RDPs\n\nfunction createSingleLinkStub<T extends ObjectTypeDefinition>(\n linked: Osdk.Instance<T> | Error,\n): {\n fetchOne: () => Promise<Osdk.Instance<T>>;\n fetchOneWithErrors: () => Promise<Result<Osdk.Instance<T>>>;\n} {\n if (linked instanceof Error) {\n return {\n fetchOne: () => Promise.reject(linked),\n fetchOneWithErrors: () => Promise.resolve({ error: linked }),\n };\n }\n return {\n fetchOne: () => Promise.resolve(linked),\n fetchOneWithErrors: () => Promise.resolve({ value: linked }),\n };\n}\n\nfunction createMissingLinkStub(\n linkName: string,\n objectApiName: string,\n primaryKey: string,\n): {\n fetchOne: () => Promise<never>;\n fetchOneWithErrors: () => Promise<{ error: Error; value?: never }>;\n fetchPage: () => Promise<never>;\n asyncIter: () => never;\n aggregate: () => never;\n} {\n const makeError = () =>\n new Error(\n `Link \"${linkName}\" was not configured on mock ${objectApiName} `\n + `object with primary key ${primaryKey}. `\n + `Pass it via the \\`links\\` option on createMockOsdkObject, or `\n + `pass an Error instance to simulate a link failure.`,\n );\n return {\n fetchOne: () => Promise.reject(makeError()),\n fetchOneWithErrors: () => Promise.resolve({ error: makeError() }),\n fetchPage: () => Promise.reject(makeError()),\n asyncIter: () => {\n throw makeError();\n },\n aggregate: () => {\n throw makeError();\n },\n };\n}\n\nfunction createManyLinkStub<T extends ObjectTypeDefinition>(\n linkedObjects: Array<Osdk.Instance<T>>,\n): {\n fetchOne: (primaryKey: unknown) => Promise<Osdk.Instance<T> | undefined>;\n fetchPage: () => Promise<\n { data: Array<Osdk.Instance<T>>; nextPageToken: undefined }\n >;\n asyncIter: () => AsyncIterableIterator<Osdk.Instance<T>>;\n aggregate: () => never;\n} {\n return {\n fetchOne: (primaryKey: unknown) => {\n if (linkedObjects.length > 0 && linkedObjects[0].$primaryKey == null) {\n invariant(\n false,\n `fetchOne requires primaryKeyApiName to be set on linked objects`,\n );\n }\n const found = linkedObjects.find((obj) => obj.$primaryKey === primaryKey);\n invariant(\n found != null,\n `fetchOne could not find object with primary key ${String(primaryKey)}`,\n );\n return Promise.resolve(found);\n },\n fetchPage: () =>\n Promise.resolve({ data: linkedObjects, nextPageToken: undefined }),\n asyncIter: () => {\n let index = 0;\n return {\n [Symbol.asyncIterator]() {\n return this;\n },\n async next() {\n if (index < linkedObjects.length) {\n return { value: linkedObjects[index++], done: false as const };\n }\n return { value: undefined, done: true as const };\n },\n };\n },\n aggregate: () => {\n invariant(false, `aggregate is not supported on mock link stubs.`);\n },\n };\n}\n\n/**\n * Creates a mock OSDK object for testing purposes.\n *\n * The mock object has the same shape as a real OSDK object including:\n * - $apiName, $objectType, $primaryKey, $title, $rid\n * - All provided properties\n * - Stub implementations that throw errors for unsupported operations\n *\n * Note: The primary key property must be included in the provided properties.\n * The primary key API name is read from the object type definition's\n * `primaryKeyApiName` field (set on generated object consts).\n *\n * @example\n * ```typescript\n * const employee = createMockOsdkObject(\n * Employee,\n * { employeeId: 1, fullName: \"John Doe\" },\n * { titlePropertyApiName: \"fullName\" },\n * );\n *\n * expect(employee.$primaryKey).toBe(1);\n * expect(employee.$title).toBe(\"John Doe\");\n * ```\n *\n * @param objectType - The object type definition (e.g., Employee)\n * @param properties - The properties for the mock object\n * @param options - Configuration including links, titlePropertyApiName, and $rid\n * @returns A frozen mock OSDK object\n */\nexport function createMockOsdkObject<\n Q extends ObjectTypeDefinition,\n>(\n objectType: Q,\n properties?: Partial<CompileTimeMetadata<Q>[\"props\"]>,\n options: MockOsdkObjectOptions<Q> = {},\n): Osdk.Instance<Q> {\n const {\n links,\n titlePropertyApiName,\n } = options;\n\n const primaryKeyApiName = objectType.primaryKeyApiName;\n\n invariant(\n primaryKeyApiName != null,\n `Object type \"${objectType.apiName}\" does not have a primaryKeyApiName defined. `\n + `Ensure you are using a generated object type constant that includes primaryKeyApiName.`,\n );\n\n if (properties == null) {\n properties = {};\n }\n\n invariant(\n primaryKeyApiName in properties,\n `Primary key property \"${primaryKeyApiName}\" must be provided in properties for ${objectType.apiName}. `\n + `Include \"${primaryKeyApiName}\" in the properties argument.`,\n );\n\n if (titlePropertyApiName != null) {\n invariant(\n titlePropertyApiName in properties,\n `titlePropertyApiName \"${titlePropertyApiName}\" was specified but not found in properties for ${objectType.apiName}`,\n );\n }\n\n const $primaryKey = properties[primaryKeyApiName as keyof typeof properties];\n\n const $title = titlePropertyApiName != null\n ? properties[titlePropertyApiName as keyof typeof properties] as\n | string\n | undefined\n : undefined;\n\n const $rid = options.$rid\n ?? `ri.mock.main.object.${objectType.apiName}.${String($primaryKey)}`;\n\n const mockObject: Record<string, unknown> = {\n $apiName: objectType.apiName,\n $objectType: objectType.apiName,\n ...properties,\n };\n\n Object.defineProperty(mockObject, \"$primaryKey\", {\n get() {\n return $primaryKey;\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$title\", {\n get() {\n return $title;\n },\n enumerable: true,\n });\n\n // Define $rid\n Object.defineProperty(mockObject, \"$rid\", {\n get() {\n return $rid;\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$objectSpecifier\", {\n get() {\n return `${objectType.apiName}:${String($primaryKey)}`;\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$link\", {\n get() {\n const linkAccessors: Record<string, unknown> = {};\n for (const [linkName, linkValue] of Object.entries(links ?? {})) {\n if (linkValue == null) {\n continue;\n }\n if (isMockObjectSet(linkValue)) {\n linkAccessors[linkName] = linkValue;\n } else if (Array.isArray(linkValue)) {\n linkAccessors[linkName] = createManyLinkStub(\n linkValue as Array<Osdk.Instance<ObjectTypeDefinition>>,\n );\n } else {\n linkAccessors[linkName] = createSingleLinkStub(\n linkValue as Osdk.Instance<ObjectTypeDefinition> | Error,\n );\n }\n }\n return new Proxy(linkAccessors, {\n get(target, prop) {\n if (typeof prop === \"symbol\" || prop in target) {\n return target[prop as string];\n }\n return createMissingLinkStub(\n prop,\n objectType.apiName,\n String($primaryKey),\n );\n },\n });\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$as\", {\n value: function $as(): never {\n invariant(false, `$as is not supported on mock objects.`);\n },\n enumerable: false,\n });\n\n Object.defineProperty(mockObject, \"$clone\", {\n value: function $clone(\n updates?: Partial<CompileTimeMetadata<Q>[\"props\"]>,\n ): Osdk.Instance<Q, \"$rid\"> {\n if (updates == null) {\n return createMockOsdkObject(\n objectType,\n { ...properties },\n options,\n ) as any;\n }\n\n if (primaryKeyApiName in updates) {\n invariant(\n updates[primaryKeyApiName as keyof typeof updates] === $primaryKey,\n `Cannot update ${objectType.apiName} object with differing primary key values`,\n );\n }\n\n const newProperties = { ...properties, ...updates };\n return createMockOsdkObject(\n objectType,\n newProperties,\n options,\n ) as any;\n },\n enumerable: false,\n });\n\n Object.defineProperty(\n mockObject,\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n {\n get(): never {\n invariant(\n false,\n `$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata is not supported on mock objects.`,\n );\n },\n enumerable: false,\n },\n );\n\n Object.defineProperty(\n mockObject,\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue\",\n {\n value:\n function $__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue(): never {\n invariant(\n false,\n `$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue is not supported on mock objects.`,\n );\n },\n enumerable: false,\n },\n );\n\n return Object.freeze(mockObject) as unknown as any;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createMockOsdkObject.js","names":["invariant","isMockObjectSet","createSingleLinkStub","linked","Error","fetchOne","Promise","reject","fetchOneWithErrors","resolve","error","value","createMissingLinkStub","linkName","objectApiName","primaryKey","makeError","fetchPage","asyncIter","aggregate","createManyLinkStub","linkedObjects","length","$primaryKey","process","env","NODE_ENV","found","find","obj","String","data","nextPageToken","undefined","index","Symbol","asyncIterator","next","done","createMockOsdkObject","objectType","properties","options","links","titlePropertyApiName","primaryKeyApiName","apiName","$title","$rid","mockObject","$apiName","$objectType","Object","defineProperty","get","enumerable","linkAccessors","linkValue","entries","Array","isArray","Proxy","target","prop","updates","newProperties","freeze"],"sources":["createMockOsdkObject.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectTypeDefinition,\n Osdk,\n Result,\n} from \"@osdk/api\";\nimport invariant from \"tiny-invariant\";\n\nimport type { MockOsdkObjectOptions } from \"../api/MockOsdkObjectOptions.js\";\nimport { isMockObjectSet } from \"./createMockObjectSet.js\";\n\n// TODO: Add support for RDPs\n\nfunction createSingleLinkStub<T extends ObjectTypeDefinition>(\n linked: Osdk.Instance<T> | Error\n): {\n fetchOne: () => Promise<Osdk.Instance<T>>;\n fetchOneWithErrors: () => Promise<Result<Osdk.Instance<T>>>;\n} {\n if (linked instanceof Error) {\n return {\n fetchOne: () => Promise.reject(linked),\n fetchOneWithErrors: () => Promise.resolve({ error: linked }),\n };\n }\n return {\n fetchOne: () => Promise.resolve(linked),\n fetchOneWithErrors: () => Promise.resolve({ value: linked }),\n };\n}\n\nfunction createMissingLinkStub(\n linkName: string,\n objectApiName: string,\n primaryKey: string\n): {\n fetchOne: () => Promise<never>;\n fetchOneWithErrors: () => Promise<{ error: Error; value?: never }>;\n fetchPage: () => Promise<never>;\n asyncIter: () => never;\n aggregate: () => never;\n} {\n const makeError = () =>\n new Error(\n `Link \"${linkName}\" was not configured on mock ${objectApiName} ` +\n `object with primary key ${primaryKey}. ` +\n `Pass it via the \\`links\\` option on createMockOsdkObject, or ` +\n `pass an Error instance to simulate a link failure.`\n );\n return {\n fetchOne: () => Promise.reject(makeError()),\n fetchOneWithErrors: () => Promise.resolve({ error: makeError() }),\n fetchPage: () => Promise.reject(makeError()),\n asyncIter: () => {\n throw makeError();\n },\n aggregate: () => {\n throw makeError();\n },\n };\n}\n\nfunction createManyLinkStub<T extends ObjectTypeDefinition>(\n linkedObjects: Array<Osdk.Instance<T>>\n): {\n fetchOne: (primaryKey: unknown) => Promise<Osdk.Instance<T> | undefined>;\n fetchPage: () => Promise<{\n data: Array<Osdk.Instance<T>>;\n nextPageToken: undefined;\n }>;\n asyncIter: () => AsyncIterableIterator<Osdk.Instance<T>>;\n aggregate: () => never;\n} {\n return {\n fetchOne: (primaryKey: unknown) => {\n if (linkedObjects.length > 0 && linkedObjects[0].$primaryKey == null) {\n invariant(\n false,\n `fetchOne requires primaryKeyApiName to be set on linked objects`\n );\n }\n const found = linkedObjects.find((obj) => obj.$primaryKey === primaryKey);\n invariant(\n found != null,\n `fetchOne could not find object with primary key ${String(primaryKey)}`\n );\n return Promise.resolve(found);\n },\n fetchPage: () =>\n Promise.resolve({ data: linkedObjects, nextPageToken: undefined }),\n asyncIter: () => {\n let index = 0;\n return {\n [Symbol.asyncIterator]() {\n return this;\n },\n async next() {\n if (index < linkedObjects.length) {\n return { value: linkedObjects[index++], done: false as const };\n }\n return { value: undefined, done: true as const };\n },\n };\n },\n aggregate: () => {\n invariant(false, `aggregate is not supported on mock link stubs.`);\n },\n };\n}\n\n/**\n * Creates a mock OSDK object for testing purposes.\n *\n * The mock object has the same shape as a real OSDK object including:\n * - $apiName, $objectType, $primaryKey, $title, $rid\n * - All provided properties\n * - Stub implementations that throw errors for unsupported operations\n *\n * Note: The primary key property must be included in the provided properties.\n * The primary key API name is read from the object type definition's\n * `primaryKeyApiName` field (set on generated object consts).\n *\n * @example\n * ```typescript\n * const employee = createMockOsdkObject(\n * Employee,\n * { employeeId: 1, fullName: \"John Doe\" },\n * { titlePropertyApiName: \"fullName\" },\n * );\n *\n * expect(employee.$primaryKey).toBe(1);\n * expect(employee.$title).toBe(\"John Doe\");\n * ```\n *\n * @param objectType - The object type definition (e.g., Employee)\n * @param properties - The properties for the mock object\n * @param options - Configuration including links, titlePropertyApiName, and $rid\n * @returns A frozen mock OSDK object\n */\nexport function createMockOsdkObject<Q extends ObjectTypeDefinition>(\n objectType: Q,\n properties?: Partial<CompileTimeMetadata<Q>[\"props\"]>,\n options: MockOsdkObjectOptions<Q> = {}\n): Osdk.Instance<Q> {\n const { links, titlePropertyApiName } = options;\n\n const primaryKeyApiName = objectType.primaryKeyApiName;\n\n invariant(\n primaryKeyApiName != null,\n `Object type \"${objectType.apiName}\" does not have a primaryKeyApiName defined. ` +\n `Ensure you are using a generated object type constant that includes primaryKeyApiName.`\n );\n\n if (properties == null) {\n properties = {};\n }\n\n invariant(\n primaryKeyApiName in properties,\n `Primary key property \"${primaryKeyApiName}\" must be provided in properties for ${objectType.apiName}. ` +\n `Include \"${primaryKeyApiName}\" in the properties argument.`\n );\n\n if (titlePropertyApiName != null) {\n invariant(\n titlePropertyApiName in properties,\n `titlePropertyApiName \"${titlePropertyApiName}\" was specified but not found in properties for ${objectType.apiName}`\n );\n }\n\n const $primaryKey = properties[primaryKeyApiName as keyof typeof properties];\n\n const $title =\n titlePropertyApiName != null\n ? (properties[titlePropertyApiName as keyof typeof properties] as\n | string\n | undefined)\n : undefined;\n\n const $rid =\n options.$rid ??\n `ri.mock.main.object.${objectType.apiName}.${String($primaryKey)}`;\n\n const mockObject: Record<string, unknown> = {\n $apiName: objectType.apiName,\n $objectType: objectType.apiName,\n ...properties,\n };\n\n Object.defineProperty(mockObject, \"$primaryKey\", {\n get() {\n return $primaryKey;\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$title\", {\n get() {\n return $title;\n },\n enumerable: true,\n });\n\n // Define $rid\n Object.defineProperty(mockObject, \"$rid\", {\n get() {\n return $rid;\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$objectSpecifier\", {\n get() {\n return `${objectType.apiName}:${String($primaryKey)}`;\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$link\", {\n get() {\n const linkAccessors: Record<string, unknown> = {};\n for (const [linkName, linkValue] of Object.entries(links ?? {})) {\n if (linkValue == null) {\n continue;\n }\n if (isMockObjectSet(linkValue)) {\n linkAccessors[linkName] = linkValue;\n } else if (Array.isArray(linkValue)) {\n linkAccessors[linkName] = createManyLinkStub(\n linkValue as Array<Osdk.Instance<ObjectTypeDefinition>>\n );\n } else {\n linkAccessors[linkName] = createSingleLinkStub(\n linkValue as Osdk.Instance<ObjectTypeDefinition> | Error\n );\n }\n }\n return new Proxy(linkAccessors, {\n get(target, prop) {\n if (typeof prop === \"symbol\" || prop in target) {\n return target[prop as string];\n }\n return createMissingLinkStub(\n prop,\n objectType.apiName,\n String($primaryKey)\n );\n },\n });\n },\n enumerable: true,\n });\n\n Object.defineProperty(mockObject, \"$as\", {\n value: function $as(): never {\n invariant(false, `$as is not supported on mock objects.`);\n },\n enumerable: false,\n });\n\n Object.defineProperty(mockObject, \"$clone\", {\n value: function $clone(\n updates?: Partial<CompileTimeMetadata<Q>[\"props\"]>\n ): Osdk.Instance<Q, \"$rid\"> {\n if (updates == null) {\n return createMockOsdkObject(\n objectType,\n { ...properties },\n options\n ) as any;\n }\n\n if (primaryKeyApiName in updates) {\n invariant(\n updates[primaryKeyApiName as keyof typeof updates] === $primaryKey,\n `Cannot update ${objectType.apiName} object with differing primary key values`\n );\n }\n\n const newProperties = { ...properties, ...updates };\n return createMockOsdkObject(objectType, newProperties, options) as any;\n },\n enumerable: false,\n });\n\n Object.defineProperty(\n mockObject,\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata\",\n {\n get(): never {\n invariant(\n false,\n `$__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata is not supported on mock objects.`\n );\n },\n enumerable: false,\n }\n );\n\n Object.defineProperty(\n mockObject,\n \"$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue\",\n {\n value:\n function $__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue(): never {\n invariant(\n false,\n `$__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue is not supported on mock objects.`\n );\n },\n enumerable: false,\n }\n );\n\n return Object.freeze(mockObject) as unknown as any;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,qBACA,6BACA,WACA,uBACK,WAAY;AACnB,cAAc,cAAc,cAAe;AAC3C,cAAc,kBAAkB,sBAAsB,mBAAoB;AAC1E,cAAc,kBAAkB,iBAAkB;KAE7C,uBAAuB,UAAU,mBAAmB,WACvD,oBAAoB,GAAG,sBACf,cAAc,KAAK;KAExB,mBAAmB,UAAU,mBAChC,WAAW,oBAAoB,GAAG,6BAA6B,KAAK;AAGtE,YAAY,oBAAoB,MAAMA,QAAQ,eAAe;AAE7D,YAAY;CAAsB,UAAU;CAA6B;KACvEC,IAAI,UAAU,OACX;AAEL,iBAAiB,mBAAmB,OAAO;CACzC,KAAK,GAAGC,UAAU,oBAAoB,KAAK,eAAe;CAC1D;EAAc,UAAU;EAA6B;GACnDC,WAAW,UAAU,IACrBC,UAAU,sBAAsB,GAAG,KAClC,eAAe;CAClB,UAAU,UAAU,iBAClBC,OAAO,GACPC,SAAS,mBAAmB,KAC3B,iBAAiB,uBAAuB;CAC3C;AACD","names":["client: StubClient","os: ObjectSet<Q>","callback: StubPatternCallback<T>","objectSet: ObjectSet<Q>","callback: ObjectSetStubCallback<Q, T>","query: Q","params?: QueryParamsFromDef<Q>"],"sources":["../../../src/api/MockClient.ts"],"version":3,"file":"MockClient.d.ts"}
1
+ {"mappings":"AAgBA,cACE,qBACA,6BACA,WACA,uBACK,WAAY;AACnB,cAAc,cAAc,cAAe;AAE3C,cAAc,kBAAkB,sBAAsB,mBAAoB;AAC1E,cAAc,kBAAkB,iBAAkB;KAE7C,uBAAuB,UAAU,mBACpC,WAAW,oBAAoB,GAAG,sBAAsB,cAAc,KAClE;KAGD,mBAAmB,UAAU,mBAChC,WAAW,oBAAoB,GAAG,6BAA6B,KAC3D;AAGN,YAAY,oBAAoB,MAAMA,QAAQ,eAAe;AAE7D,YAAY;CAAsB,UAAU;CAA6B;KACvEC,IAAI,UAAU,OACX;AAEL,iBAAiB,mBAAmB,OAAO;CACzC,KAAK,GAAGC,UAAU,oBAAoB,KAAK,eAAe;CAC1D;EAAc,UAAU;EAA6B;GACnDC,WAAW,UAAU,IACrBC,UAAU,sBAAsB,GAAG,KAClC,eAAe;CAClB,UAAU,UAAU,iBAClBC,OAAO,GACPC,SAAS,mBAAmB,KAC3B,iBAAiB,uBAAuB;CAC3C;AACD","names":["client: StubClient","os: ObjectSet<Q>","callback: StubPatternCallback<T>","objectSet: ObjectSet<Q>","callback: ObjectSetStubCallback<Q, T>","query: Q","params?: QueryParamsFromDef<Q>"],"sources":["../../../src/api/MockClient.ts"],"version":3,"file":"MockClient.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,qBACA,YACA,WACA,WACA,sBACA,YACK,WAAY;KAEd,UAAU,UAAU,2BACtB,aAAa,UAAU,OACtB,oBAAoB,GAAG,SAAS,WAAW,wBAAwB,OAC7D,MAAM,KAAK,SAAS,WAAW,GAAG,eAClC,UAAU,WAAW,GAAG,cAC1B,KAAK,SAAS,WAAW,GAAG,cAAc;;;;AAMlD,iBAAiB,sBACf,UAAU,uBAAuB,sBACjC;;CAEA,QAAQ,UAAU;;CAElB;;CAEA;AACD","names":[],"sources":["../../../src/api/MockOsdkObjectOptions.ts"],"version":3,"file":"MockOsdkObjectOptions.d.ts"}
1
+ {"mappings":"AAgBA,cACE,qBACA,YACA,WACA,WACA,sBACA,YACK,WAAY;KAEd,UAAU,UAAU,2BACtB,aAAa,UAAU,OAAM,oBAAoB,GAAG,SAAS,WAAW,wBAAwB,OAEzF,MAAM,KAAK,SAAS,WAAW,GAAG,eAClC,UAAU,WAAW,GAAG,cAC5B,KAAK,SAAS,WAAW,GAAG,cAAc;;;;AAMhD,iBAAiB,sBACf,UAAU,uBAAuB,sBACjC;;CAEA,QAAQ,UAAU;;CAElB;;CAEA;AACD","names":[],"sources":["../../../src/api/MockOsdkObjectOptions.ts"],"version":3,"file":"MockOsdkObjectOptions.d.ts"}
@@ -21,7 +21,7 @@ export type StubBuilderFor<T> = T extends Promise<infer R> ? StubBuilderFor<R> :
21
21
  } ? FetchPageStubBuilder<U> : T extends {
22
22
  value: infer U
23
23
  error?: never
24
- } ? (IsOsdkObject<U> extends true ? FetchOneStubBuilder<U> : AggregateStubBuilder<U>) : T extends {
24
+ } ? IsOsdkObject<U> extends true ? FetchOneStubBuilder<U> : AggregateStubBuilder<U> : T extends {
25
25
  error: Error
26
26
  value?: never
27
27
  } ? never : IsOsdkObject<T> extends true ? FetchOneStubBuilder<T> : AggregateStubBuilder<T>;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,kBAAkB,WAAY;AAE5C,iBAAiB,qBAAqB,GAAG;CACvC,kBAAkBA,SAAS;AAC5B;AAED,iBAAiB,oBAAoB,GAAG;CACtC,iBAAiBC,QAAQ;AAC1B;AAED,iBAAiB,qBAAqB,GAAG;CACvC,sBAAsBC,QAAQ;AAC/B;AAED,iBAAiB,iBAAiB,GAAG;CACnC,WAAWA,QAAQ;CACnB,UAAUC,OAAO;AAClB;KAEI,aAAa,KAAK,UAAU;CAAE;AAAkB,IAAG,OAAO;AAE/D,YAAY,eAAe,KAAK,UAAU,cAAc,KAAK,eAAe,KACxE,UAAU,4BAA4B,KAAK,qBAAqB,KAChE,UAAU,iBAAiB,KAAK,qBAAqB,KACrD,UAAU;CAAE,OAAO,iBAAiB;CAAI;AAAe,IACrD,qBAAqB,KACvB,UAAU;CAAE,aAAa;CAAG;AAAe,KACxC,aAAa,WAAW,OAAO,oBAAoB,KAClD,qBAAqB,MACzB,UAAU;CAAE,OAAO;CAAO;AAAe,YACzC,aAAa,WAAW,OAAO,oBAAoB,KACnD,qBAAqB","names":["objects: T[]","object: T","result: T","error: Error"],"sources":["../../../src/api/StubBuilders.ts"],"version":3,"file":"StubBuilders.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,kBAAkB,WAAY;AAE5C,iBAAiB,qBAAqB,GAAG;CACvC,kBAAkBA,SAAS;AAC5B;AAED,iBAAiB,oBAAoB,GAAG;CACtC,iBAAiBC,QAAQ;AAC1B;AAED,iBAAiB,qBAAqB,GAAG;CACvC,sBAAsBC,QAAQ;AAC/B;AAED,iBAAiB,iBAAiB,GAAG;CACnC,WAAWA,QAAQ;CACnB,UAAUC,OAAO;AAClB;KAEI,aAAa,KAAK,UAAU;CAAE;AAAkB,IAAG,OAAO;AAE/D,YAAY,eAAe,KACzB,UAAU,cAAc,KACpB,eAAe,KACf,UAAU,4BAA4B,KACpC,qBAAqB,KACrB,UAAU,iBAAiB,KACzB,qBAAqB,KACrB,UAAU;CAAE,OAAO,iBAAiB;CAAI;AAAe,IACrD,qBAAqB,KACrB,UAAU;CAAE,aAAa;CAAG;AAAe,IACzC,aAAa,WAAW,OACtB,oBAAoB,KACpB,qBAAqB,KACvB,UAAU;CAAE,OAAO;CAAO;AAAe,YAEvC,aAAa,WAAW,OACtB,oBAAoB,KACpB,qBAAqB","names":["objects: T[]","object: T","result: T","error: Error"],"sources":["../../../src/api/StubBuilders.ts"],"version":3,"file":"StubBuilders.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,cAAc,cAAe;AAE3C,cAAc,eAAe,iBAAkB;AAE/C,OAAO,iBAAe,eACpBA,QAAQ,SACP,QAAQ","names":["client: Client"],"sources":["../../../../src/example-function-tests/basicAggregate/basicAggregate.ts"],"version":3,"file":"basicAggregate.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,cAAc,cAAe;AAE3C,cAAc,eAAe,iBAAkB;AAE/C,OAAO,iBAAe,eAAeA,QAAQ,SAAS,QAAQ","names":["client: Client"],"sources":["../../../../src/example-function-tests/basicAggregate/basicAggregate.ts"],"version":3,"file":"basicAggregate.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,cAAc,cAAe;AAE3C,cAAc,eAAe,iBAAkB;AAE/C,OAAO,iBAAe,WACpBA,QAAQ,QACRC,GAAG,UACF,QAAQ","names":["client: Client","n: Integer"],"sources":["../../../../src/example-function-tests/basicQuery/basicQuery.ts"],"version":3,"file":"basicQuery.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,cAAc,cAAe;AAE3C,cAAc,eAAe,iBAAkB;AAE/C,OAAO,iBAAe,WAAWA,QAAQ,QAAQC,GAAG,UAAU,QAAQ","names":["client: Client","n: Integer"],"sources":["../../../../src/example-function-tests/basicQuery/basicQuery.ts"],"version":3,"file":"basicQuery.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,cAAc,cAAe;AAG3C,OAAO,iBAAe,iBACpBA,QAAQ,SACP","names":["client: Client"],"sources":["../../../../src/example-function-tests/platformApiWithMsw/platformApiWithMsw.ts"],"version":3,"file":"platformApiWithMsw.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,cAAc,cAAe;AAG3C,OAAO,iBAAe,iBAAiBA,QAAQ,SAAS","names":["client: Client"],"sources":["../../../../src/example-function-tests/platformApiWithMsw/platformApiWithMsw.ts"],"version":3,"file":"platformApiWithMsw.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAwBA,cACE,kBAGK,sBAAuB;AAkC9B,OAAO,iBAAS,oBAAoB","names":[],"sources":["../../../src/mock/createMockClient.ts"],"version":3,"file":"createMockClient.d.ts"}
1
+ {"mappings":"AAyBA,cACE,kBAGK,sBAAuB;AAoC9B,OAAO,iBAAS,oBAAoB","names":[],"sources":["../../../src/mock/createMockClient.ts"],"version":3,"file":"createMockClient.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,6BAA6B,iBAAiB,WAAY;AACxE,cACO,YAIA,sCAAuC;AAE9C,cAAMA;AAEN,YAAY,qBAAqB,UAAU,+BACvC,UAAU,KACV;EACC,wBAAwB;CACzB,eAAeC,OAAO,QAAQC;AAC/B;AAEH,OAAO,iBAAS,oBAAoB,UAAU,6BAC5CC,YAAY,IACX,UAAU","names":["MOCK_OBJECT_SET_BRAND: unique symbol","calls: Call[]","value: unknown","objectType: Q"],"sources":["../../../src/mock/createMockObjectSet.ts"],"version":3,"file":"createMockObjectSet.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,6BAA6B,iBAAiB,WAAY;AAExE,cACO,YAIA,sCAAuC;AAE9C,cAAMA;AAEN,YAAY,qBAAqB,UAAU,+BACzC,UAAU,KAAK;EACZ,wBAAwB;CACzB,eAAeC,OAAO,QAAQC;AAC/B;AAEH,OAAO,iBAAS,oBAAoB,UAAU,6BAC5CC,YAAY,IACX,UAAU","names":["MOCK_OBJECT_SET_BRAND: unique symbol","calls: Call[]","value: unknown","objectType: Q"],"sources":["../../../src/mock/createMockObjectSet.ts"],"version":3,"file":"createMockObjectSet.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAGE,6BACA,iBAIK,WAAY;AAGnB,YAAY,QAAQ,gBAAgB;AAEpC,YAAY,YAAYA,OAAO;AAE/B,YAAY,OAAO;CAAE,OAAO;CAAQ;AAAgB;AAEpD,OAAO,iBAAS,gCACd,UAAU,6BAEVC,YAAY,GACZC,UAAU,UACVF,QAAO,SACN,UAAU;AA6Eb,OAAO,iBAAS,YACdG,OAAO,QACPH,OAAO,QACPI;AAmBF,OAAO,iBAAS,UAAUC,YAAYC","names":["calls: Call[]","objectType: Q","resolver: Resolver","stubs: Stub[]","errorMsg: string","a: unknown","b: unknown"],"sources":["../../../src/mock/createMockObjectSetWithResolver.ts"],"version":3,"file":"createMockObjectSetWithResolver.d.ts"}
1
+ {"mappings":"AAgBA,cAGE,6BACA,iBAIK,WAAY;AAGnB,YAAY,QAAQ,gBAAgB;AAEpC,YAAY,YAAYA,OAAO;AAE/B,YAAY,OAAO;CAAE,OAAO;CAAQ;AAAgB;AAEpD,OAAO,iBAAS,gCACd,UAAU,6BACVC,YAAY,GAAGC,UAAU,UAAUF,QAAO,SAAc,UAAU;AA4EpE,OAAO,iBAAS,YACdG,OAAO,QACPH,OAAO,QACPI;AAmBF,OAAO,iBAAS,UAAUC,YAAYC","names":["calls: Call[]","objectType: Q","resolver: Resolver","stubs: Stub[]","errorMsg: string","a: unknown","b: unknown"],"sources":["../../../src/mock/createMockObjectSetWithResolver.ts"],"version":3,"file":"createMockObjectSetWithResolver.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,qBACA,sBACA,YAEK,WAAY;AAEnB,cAAc,6BAA6B,iCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkI7E,OAAO,iBAAS,qBACd,UAAU,sBAEVA,YAAY,GACZC,aAAa,QAAQ,oBAAoB,GAAG,WAC5CC,UAAS,sBAAsB,KAC9B,KAAK,SAAS","names":["objectType: Q","properties?: Partial<CompileTimeMetadata<Q>[\"props\"]>","options: MockOsdkObjectOptions<Q>"],"sources":["../../../src/mock/createMockOsdkObject.ts"],"version":3,"file":"createMockOsdkObject.d.ts"}
1
+ {"mappings":"AAgBA,cACE,qBACA,sBACA,YAEK,WAAY;AAGnB,cAAc,6BAA6B,iCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmI7E,OAAO,iBAAS,qBAAqB,UAAU,sBAC7CA,YAAY,GACZC,aAAa,QAAQ,oBAAoB,GAAG,WAC5CC,UAAS,sBAAsB,KAC9B,KAAK,SAAS","names":["objectType: Q","properties?: Partial<CompileTimeMetadata<Q>[\"props\"]>","options: MockOsdkObjectOptions<Q>"],"sources":["../../../src/mock/createMockOsdkObject.ts"],"version":3,"file":"createMockOsdkObject.d.ts"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osdk/unit-testing",
3
- "version": "0.15.0",
3
+ "version": "0.15.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76",
4
4
  "description": "",
5
5
  "access": "public",
6
6
  "license": "Apache-2.0",
@@ -41,9 +41,9 @@
41
41
  "tiny-invariant": "^1.3.3"
42
42
  },
43
43
  "peerDependencies": {
44
- "@osdk/api": "^2.29.0",
45
- "@osdk/client": "^2.29.0",
46
- "@osdk/functions": "^1.12.0"
44
+ "@osdk/api": "^2.41.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76",
45
+ "@osdk/client": "^2.41.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76",
46
+ "@osdk/functions": "^1.14.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@microsoft/api-documenter": "^7.26.32",
@@ -52,10 +52,10 @@
52
52
  "msw": "^2.11.1",
53
53
  "typescript": "~5.5.4",
54
54
  "vitest": "^3.2.4",
55
- "@osdk/client": "~2.29.0",
56
- "@osdk/api": "~2.29.0",
57
- "@osdk/client.test.ontology": "~2.29.0",
58
- "@osdk/functions": "~1.12.0",
55
+ "@osdk/api": "~2.41.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76",
56
+ "@osdk/client": "~2.41.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76",
57
+ "@osdk/client.test.ontology": "~2.41.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76",
58
+ "@osdk/functions": "~1.14.1-main-830d7919c09d774762ce9e02f8f8d85cfb955c76",
59
59
  "@osdk/monorepo.api-extractor": "~0.7.0",
60
60
  "@osdk/monorepo.tsconfig": "~0.7.0"
61
61
  },
@@ -82,8 +82,8 @@
82
82
  "check-attw": "attw --pack .",
83
83
  "check-spelling": "cspell --quiet .",
84
84
  "clean": "rm -rf lib dist types build tsconfig.tsbuildinfo",
85
- "fix-lint": "eslint . --fix && dprint fmt",
86
- "lint": "eslint . && dprint check",
85
+ "fix-lint": "oxlint -c ./oxlint.config.ts --fix . && oxfmt -c ../../oxfmt.config.ts .",
86
+ "lint": "oxlint -c ./oxlint.config.ts . && oxfmt -c ../../oxfmt.config.ts --check .",
87
87
  "test": "vitest run --pool=forks",
88
88
  "transpileBrowser": "monorepo.tool.transpile -f esm -m normal -t browser",
89
89
  "transpileCjs": "monorepo.tool.transpile -f cjs -m bundle -t node",