@osdk/functions 1.3.0-beta.6 → 1.4.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @osdk/functions
2
2
 
3
+ ## 1.3.0-beta.7
4
+
5
+ ### Minor Changes
6
+
7
+ - 9bbe664: Add compile check to prevent link and unlink edits when traversing a One direction
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [85e8edb]
12
+ - @osdk/client@2.5.0-beta.12
13
+
3
14
  ## 1.3.0-beta.6
4
15
 
5
16
  ### Minor Changes
@@ -1 +1 @@
1
- {"version":3,"file":"EditBatch.js","names":[],"sources":["EditBatch.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n InterfaceDefinition,\n ObjectTypeDefinition,\n} from \"@osdk/client\";\nimport type {\n AddLink,\n AnyEdit,\n CreateObject,\n CreateObjectForInterface,\n DeleteObject,\n DeleteObjectForInterface,\n InterfaceLocator,\n ObjectLocator,\n RemoveLink,\n UpdateObject,\n UpdateObjectForInterface,\n} from \"./types.js\";\n\n// Helper type for literal \"apiName\" values without resorting to expensive type inference.\ninterface ObjectTypeDefinitionForLocator<OL extends ObjectLocator<any>>\n extends ObjectTypeDefinition\n{\n apiName: OL[\"$apiName\"];\n}\n\ninterface InterfaceDefinitionForLocator<IL extends ObjectLocator<any>>\n extends InterfaceDefinition\n{\n apiName: IL[\"$apiName\"];\n}\n\n// AddLink helper types\nexport type AddLinkSources<X extends AnyEdit> = X extends\n AddLink<infer OTD, any> ? ObjectLocator<OTD> : never;\n\nexport type AddLinkApiNames<X extends AnyEdit, SOL extends ObjectLocator<any>> =\n X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, infer A> ? A : never;\n\nexport type AddLinkTargets<\n X extends AnyEdit,\n SOL extends ObjectLocator<any>,\n A extends string,\n> = X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, A>\n ? (X extends AddLink<infer OTD, A>\n ? (CompileTimeMetadata<OTD>[\"links\"][A][\"multiplicity\"] extends true\n ? Array<X[\"target\"]> | X[\"target\"]\n : X[\"target\"])\n : never)\n : never;\n\n// RemoveLink helper types\nexport type RemoveLinkSources<X extends AnyEdit> = X extends\n RemoveLink<infer OTD, any> ? ObjectLocator<OTD> : never;\n\nexport type RemoveLinkApiNames<\n X extends AnyEdit,\n SOL extends ObjectLocator<any>,\n> = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, infer L> ? L\n : never;\n\nexport type RemoveLinkTargets<\n X extends AnyEdit,\n SOL extends ObjectLocator<any>,\n A extends string,\n> = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, A>\n ? (X extends RemoveLink<infer OTD, A>\n ? (CompileTimeMetadata<OTD>[\"links\"][A][\"multiplicity\"] extends true\n ? Array<X[\"target\"]> | X[\"target\"]\n : X[\"target\"])\n : never)\n : never;\n\n// CreateObject helper types\nexport type CreatableObjectOrInterfaceTypes<X extends AnyEdit> = X extends\n CreateObject<infer OTD> ? OTD\n : X extends CreateObjectForInterface<infer ID> ? ID\n : never;\n\nexport type CreatableObjectOrInterfaceTypeProperties<\n X extends AnyEdit,\n OI extends ObjectTypeDefinition | InterfaceDefinition,\n> = X extends CreateObject<infer OTD> ? OTD extends OI ? X[\"properties\"] : never\n : X extends CreateObjectForInterface<infer ID>\n ? ID extends OI ? X[\"properties\"] : never\n : never;\n\n// DeleteObject helper types\nexport type DeletableObjectOrInterfaceLocators<X extends AnyEdit> = X extends\n DeleteObject<infer OTD> ? ObjectLocator<OTD>\n : X extends DeleteObjectForInterface<infer ID> ? InterfaceLocator<ID>\n : never;\n\n// UpdateObject and UpdateInterface helper types\nexport type UpdatableObjectOrInterfaceLocators<X extends AnyEdit> = X extends\n UpdateObject<infer OTD> ? ObjectLocator<OTD>\n : X extends UpdateObjectForInterface<infer ID> ? InterfaceLocator<ID>\n : never;\n\nexport type UpdatableObjectOrInterfaceLocatorProperties<\n X extends AnyEdit,\n OL extends ObjectLocator<any>,\n> = X extends UpdateObject<ObjectTypeDefinitionForLocator<OL>> ? X[\"properties\"]\n : X extends UpdateObjectForInterface<InterfaceDefinitionForLocator<OL>>\n ? X[\"properties\"]\n : never;\n\nexport interface EditBatch<\n X extends AnyEdit = never,\n> {\n link: <\n SOL extends AddLinkSources<X>,\n A extends AddLinkApiNames<X, SOL>,\n >(\n source: SOL,\n apiName: A,\n target: AddLinkTargets<X, SOL, A>,\n ) => void;\n\n unlink: <\n SOL extends RemoveLinkSources<X>,\n A extends RemoveLinkApiNames<X, SOL>,\n >(\n source: SOL,\n apiName: A,\n target: RemoveLinkTargets<X, SOL, A>,\n ) => void;\n\n create: <OI extends CreatableObjectOrInterfaceTypes<X>>(\n objectOrInterfaceType: OI,\n properties: CreatableObjectOrInterfaceTypeProperties<X, OI>,\n ) => void;\n\n delete: <OL extends DeletableObjectOrInterfaceLocators<X>>(obj: OL) => void;\n\n update: <OL extends UpdatableObjectOrInterfaceLocators<X>>(\n obj: OL,\n properties: UpdatableObjectOrInterfaceLocatorProperties<X, OL>,\n ) => void;\n\n getEdits: () => X[];\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"EditBatch.js","names":[],"sources":["EditBatch.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n InterfaceDefinition,\n ObjectTypeDefinition,\n} from \"@osdk/client\";\nimport type {\n AddLink,\n AnyEdit,\n CreateObject,\n CreateObjectForInterface,\n DeleteObject,\n DeleteObjectForInterface,\n InterfaceLocator,\n ObjectLocator,\n RemoveLink,\n UpdateObject,\n UpdateObjectForInterface,\n} from \"./types.js\";\n\n// Helper type for literal \"apiName\" values without resorting to expensive type inference.\ninterface ObjectTypeDefinitionForLocator<OL extends ObjectLocator<any>>\n extends ObjectTypeDefinition\n{\n apiName: OL[\"$apiName\"];\n}\n\ninterface InterfaceDefinitionForLocator<IL extends ObjectLocator<any>>\n extends InterfaceDefinition\n{\n apiName: IL[\"$apiName\"];\n}\n\n// AddLink helper types\nexport type AddLinkSources<X extends AnyEdit> = X extends\n AddLink<infer OTD, any> ? ObjectLocator<OTD> : never;\n\nexport type AddLinkApiNames<X extends AnyEdit, SOL extends ObjectLocator<any>> =\n X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, infer A> ? A : never;\n\nexport type AddLinkTargets<\n X extends AnyEdit,\n SOL extends ObjectLocator<any>,\n A extends string,\n> = X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, A>\n ? (X extends AddLink<infer OTD, A>\n ? (CompileTimeMetadata<OTD>[\"links\"][A][\"multiplicity\"] extends true\n ? Array<X[\"target\"]> | X[\"target\"]\n : never)\n : never)\n : never;\n\n// RemoveLink helper types\nexport type RemoveLinkSources<X extends AnyEdit> = X extends\n RemoveLink<infer OTD, any> ? ObjectLocator<OTD> : never;\n\nexport type RemoveLinkApiNames<\n X extends AnyEdit,\n SOL extends ObjectLocator<any>,\n> = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, infer L> ? L\n : never;\n\nexport type RemoveLinkTargets<\n X extends AnyEdit,\n SOL extends ObjectLocator<any>,\n A extends string,\n> = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, A>\n ? (X extends RemoveLink<infer OTD, A>\n ? (CompileTimeMetadata<OTD>[\"links\"][A][\"multiplicity\"] extends true\n ? Array<X[\"target\"]> | X[\"target\"]\n : never)\n : never)\n : never;\n\n// CreateObject helper types\nexport type CreatableObjectOrInterfaceTypes<X extends AnyEdit> = X extends\n CreateObject<infer OTD> ? OTD\n : X extends CreateObjectForInterface<infer ID> ? ID\n : never;\n\nexport type CreatableObjectOrInterfaceTypeProperties<\n X extends AnyEdit,\n OI extends ObjectTypeDefinition | InterfaceDefinition,\n> = X extends CreateObject<infer OTD> ? OTD extends OI ? X[\"properties\"] : never\n : X extends CreateObjectForInterface<infer ID>\n ? ID extends OI ? X[\"properties\"] : never\n : never;\n\n// DeleteObject helper types\nexport type DeletableObjectOrInterfaceLocators<X extends AnyEdit> = X extends\n DeleteObject<infer OTD> ? ObjectLocator<OTD>\n : X extends DeleteObjectForInterface<infer ID> ? InterfaceLocator<ID>\n : never;\n\n// UpdateObject and UpdateInterface helper types\nexport type UpdatableObjectOrInterfaceLocators<X extends AnyEdit> = X extends\n UpdateObject<infer OTD> ? ObjectLocator<OTD>\n : X extends UpdateObjectForInterface<infer ID> ? InterfaceLocator<ID>\n : never;\n\nexport type UpdatableObjectOrInterfaceLocatorProperties<\n X extends AnyEdit,\n OL extends ObjectLocator<any>,\n> = X extends UpdateObject<ObjectTypeDefinitionForLocator<OL>> ? X[\"properties\"]\n : X extends UpdateObjectForInterface<InterfaceDefinitionForLocator<OL>>\n ? X[\"properties\"]\n : never;\n\nexport interface EditBatch<\n X extends AnyEdit = never,\n> {\n link: <\n SOL extends AddLinkSources<X>,\n A extends AddLinkApiNames<X, SOL>,\n >(\n source: SOL,\n apiName: A,\n target: AddLinkTargets<X, SOL, A>,\n ) => void;\n\n unlink: <\n SOL extends RemoveLinkSources<X>,\n A extends RemoveLinkApiNames<X, SOL>,\n >(\n source: SOL,\n apiName: A,\n target: RemoveLinkTargets<X, SOL, A>,\n ) => void;\n\n create: <OI extends CreatableObjectOrInterfaceTypes<X>>(\n objectOrInterfaceType: OI,\n properties: CreatableObjectOrInterfaceTypeProperties<X, OI>,\n ) => void;\n\n delete: <OL extends DeletableObjectOrInterfaceLocators<X>>(obj: OL) => void;\n\n update: <OL extends UpdatableObjectOrInterfaceLocators<X>>(\n obj: OL,\n properties: UpdatableObjectOrInterfaceLocatorProperties<X, OL>,\n ) => void;\n\n getEdits: () => X[];\n}\n"],"mappings":"","ignoreList":[]}
@@ -51,7 +51,8 @@ describe(createEditBatch, () => {
51
51
  attachment: "ri.foo",
52
52
  attachment2: {
53
53
  rid: "ri.bar"
54
- }
54
+ },
55
+ vector: [1, 2, 3]
55
56
  });
56
57
  editBatch.create(Task, {
57
58
  id: 0,
@@ -112,26 +113,26 @@ describe(createEditBatch, () => {
112
113
  });
113
114
  editBatch.delete(fooInterfaceInstance);
114
115
  editBatch.link({
115
- $apiName: "Task",
116
- $primaryKey: 0
117
- }, "RP", {
118
- $apiName: "Person",
116
+ $apiName: "Employee",
119
117
  $primaryKey: 0
118
+ }, "visitedOffices", {
119
+ $apiName: "Office",
120
+ $primaryKey: "Seattle"
120
121
  });
121
122
  editBatch.link({
122
- $apiName: "Task",
123
+ $apiName: "Employee",
123
124
  $primaryKey: 0
124
- }, "RP", {
125
- $apiName: "Person",
126
- $primaryKey: 1
125
+ }, "visitedOffices", {
126
+ $apiName: "Office",
127
+ $primaryKey: "Palo Alto"
127
128
  });
128
- editBatch.link(taskInstance, "RP", personInstance);
129
+ editBatch.link(employeeInstance, "visitedOffices", officeInstance);
129
130
  editBatch.unlink({
130
- $apiName: "Task",
131
+ $apiName: "Employee",
131
132
  $primaryKey: 0
132
- }, "RP", {
133
- $apiName: "Person",
134
- $primaryKey: 1
133
+ }, "visitedOffices", {
134
+ $apiName: "Office",
135
+ $primaryKey: "New York"
135
136
  });
136
137
  editBatch.link(taskInstance, "Todos", {
137
138
  $apiName: "Todo",
@@ -154,7 +155,7 @@ describe(createEditBatch, () => {
154
155
  editBatch.link(officeInstance, "occupants", employeeInstance);
155
156
  editBatch.unlink({
156
157
  $apiName: "Office",
157
- $primaryKey: "2"
158
+ $primaryKey: "Denver"
158
159
  }, "occupants", [employeeInstance, {
159
160
  $apiName: "Employee",
160
161
  $primaryKey: 3
@@ -167,7 +168,8 @@ describe(createEditBatch, () => {
167
168
  attachment: "ri.foo",
168
169
  attachment2: {
169
170
  rid: "ri.bar"
170
- }
171
+ },
172
+ vector: [1, 2, 3]
171
173
  }
172
174
  }, {
173
175
  type: "createObject",
@@ -285,47 +287,47 @@ describe(createEditBatch, () => {
285
287
  }
286
288
  }, {
287
289
  type: "addLink",
288
- apiName: "RP",
290
+ apiName: "visitedOffices",
289
291
  source: {
290
- $apiName: "Task",
292
+ $apiName: "Employee",
291
293
  $primaryKey: 0
292
294
  },
293
295
  target: {
294
- $apiName: "Person",
295
- $primaryKey: 0
296
+ $apiName: "Office",
297
+ $primaryKey: "Seattle"
296
298
  }
297
299
  }, {
298
300
  type: "addLink",
299
- apiName: "RP",
301
+ apiName: "visitedOffices",
300
302
  source: {
301
- $apiName: "Task",
303
+ $apiName: "Employee",
302
304
  $primaryKey: 0
303
305
  },
304
306
  target: {
305
- $apiName: "Person",
306
- $primaryKey: 1
307
+ $apiName: "Office",
308
+ $primaryKey: "Palo Alto"
307
309
  }
308
310
  }, {
309
311
  type: "addLink",
310
- apiName: "RP",
312
+ apiName: "visitedOffices",
311
313
  source: {
312
- $apiName: "Task",
314
+ $apiName: "Employee",
313
315
  $primaryKey: 2
314
316
  },
315
317
  target: {
316
- $apiName: "Person",
317
- $primaryKey: 2
318
+ $apiName: "Office",
319
+ $primaryKey: "2"
318
320
  }
319
321
  }, {
320
322
  type: "removeLink",
321
- apiName: "RP",
323
+ apiName: "visitedOffices",
322
324
  source: {
323
- $apiName: "Task",
325
+ $apiName: "Employee",
324
326
  $primaryKey: 0
325
327
  },
326
328
  target: {
327
- $apiName: "Person",
328
- $primaryKey: 1
329
+ $apiName: "Office",
330
+ $primaryKey: "New York"
329
331
  }
330
332
  }, {
331
333
  type: "addLink",
@@ -387,7 +389,7 @@ describe(createEditBatch, () => {
387
389
  apiName: "occupants",
388
390
  source: {
389
391
  $apiName: "Office",
390
- $primaryKey: "2"
392
+ $primaryKey: "Denver"
391
393
  },
392
394
  target: {
393
395
  $apiName: "Employee",
@@ -398,7 +400,7 @@ describe(createEditBatch, () => {
398
400
  apiName: "occupants",
399
401
  source: {
400
402
  $apiName: "Office",
401
- $primaryKey: "2"
403
+ $primaryKey: "Denver"
402
404
  },
403
405
  target: {
404
406
  $apiName: "Employee",
@@ -412,7 +414,8 @@ describe(createEditBatch, () => {
412
414
 
413
415
  editBatch.link(taskInstance, "RP",
414
416
  // @ts-expect-error
415
- [personInstance]); // Using list for non-multiplicity link
417
+ personInstance);
418
+ // Trying to traverse ONE direction
416
419
 
417
420
  editBatch.link({
418
421
  $apiName: "Task",
@@ -1 +1 @@
1
- {"version":3,"file":"createEditBatch.test.js","names":["FooInterface","objectTypeWithAllPropertyTypes","Office","Task","beforeEach","describe","expect","it","vi","createEditBatch","taskInstance","$apiName","$primaryKey","personInstance","officeInstance","employeeInstance","fooInterfaceInstance","$objectType","client","editBatch","fn","create","id","attachment","attachment2","rid","name","delete","update","officeId","capacity","fooSpt","link","unlink","getEdits","toEqual","type","obj","properties","int","apiName","source","target"],"sources":["createEditBatch.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Attachment, Client, Osdk } from \"@osdk/client\";\nimport type { Employee, Person } from \"@osdk/client.test.ontology\";\nimport {\n FooInterface,\n objectTypeWithAllPropertyTypes,\n Office,\n Task,\n} from \"@osdk/client.test.ontology\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { createEditBatch } from \"./createEditBatch.js\";\nimport type { EditBatch } from \"./EditBatch.js\";\nimport type { Edits } from \"./types.js\";\n\ntype TestEditScope =\n | Edits.Object<Task>\n | Edits.Object<Office>\n | Edits.Object<objectTypeWithAllPropertyTypes>\n | Edits.Link<Task, \"RP\">\n | Edits.Link<Task, \"Todos\">\n | Edits.Link<Office, \"occupants\">\n | Edits.Interface<FooInterface>;\n\ndescribe(createEditBatch, () => {\n const taskInstance = {\n $apiName: \"Task\",\n $primaryKey: 2,\n } as Osdk.Instance<Task>;\n\n const personInstance = {\n $apiName: \"Person\",\n $primaryKey: 2,\n } as Osdk.Instance<Person>;\n\n const officeInstance = {\n $apiName: \"Office\",\n $primaryKey: \"2\",\n } as Osdk.Instance<Office>;\n\n const employeeInstance = {\n $apiName: \"Employee\",\n $primaryKey: 2,\n } as Osdk.Instance<Employee>;\n\n const fooInterfaceInstance = {\n $apiName: \"FooInterface\",\n $primaryKey: 21,\n $objectType: \"FooObjectType\",\n } as Osdk.Instance<FooInterface>;\n\n let client: Client;\n\n let editBatch: EditBatch<TestEditScope>;\n\n beforeEach(() => {\n client = vi.fn() as any as Client;\n editBatch = createEditBatch<TestEditScope>(client);\n });\n\n it(\"collects all edits\", () => {\n editBatch.create(objectTypeWithAllPropertyTypes, {\n id: 0,\n attachment: \"ri.foo\",\n attachment2: { rid: \"ri.bar\" } as Attachment,\n });\n editBatch.create(Task, { id: 0, name: \"My Task Name\" });\n editBatch.create(Task, { id: 1, name: \"My Other Task Name\" });\n editBatch.create(Task, { id: 3 });\n editBatch.delete({ $apiName: \"Task\", $primaryKey: 0 });\n editBatch.delete(taskInstance);\n editBatch.update({ $apiName: \"Task\", $primaryKey: 0 }, {\n name: \"My New Task Name\",\n });\n editBatch.update(taskInstance, { name: \"My Very New Task Name\" });\n editBatch.update({ $apiName: \"Task\", $primaryKey: 3 }, {});\n editBatch.create(Task, { id: 0, name: \"My Task Name\" });\n editBatch.create(Office, { officeId: \"3\", capacity: 2 });\n editBatch.update({ $apiName: \"Office\", $primaryKey: \"3\" }, { capacity: 4 });\n editBatch.create(FooInterface, {\n $objectType: \"Task\",\n fooSpt: \"created interface\",\n });\n editBatch.update(fooInterfaceInstance, { fooSpt: \"fooSpt\" });\n editBatch.update({\n $apiName: \"FooInterface\",\n $objectType: \"FooObjectType\",\n $primaryKey: 22,\n }, { fooSpt: \"fooSpt2\" });\n editBatch.delete(fooInterfaceInstance);\n\n editBatch.link({ $apiName: \"Task\", $primaryKey: 0 }, \"RP\", {\n $apiName: \"Person\",\n $primaryKey: 0,\n });\n editBatch.link({ $apiName: \"Task\", $primaryKey: 0 }, \"RP\", {\n $apiName: \"Person\",\n $primaryKey: 1,\n });\n editBatch.link(taskInstance, \"RP\", personInstance);\n editBatch.unlink({ $apiName: \"Task\", $primaryKey: 0 }, \"RP\", {\n $apiName: \"Person\",\n $primaryKey: 1,\n });\n editBatch.link(taskInstance, \"Todos\", { $apiName: \"Todo\", $primaryKey: 0 });\n editBatch.link(taskInstance, \"Todos\", [\n { $apiName: \"Todo\", $primaryKey: 1 },\n { $apiName: \"Todo\", $primaryKey: 2 },\n ]);\n editBatch.unlink({ $apiName: \"Task\", $primaryKey: 2 }, \"Todos\", {\n $apiName: \"Todo\",\n $primaryKey: 0,\n });\n editBatch.link(officeInstance, \"occupants\", employeeInstance);\n editBatch.unlink(\n { $apiName: \"Office\", $primaryKey: \"2\" },\n \"occupants\",\n [employeeInstance, { $apiName: \"Employee\", $primaryKey: 3 }],\n );\n\n expect(editBatch.getEdits()).toEqual([\n {\n type: \"createObject\",\n obj: objectTypeWithAllPropertyTypes,\n properties: {\n id: 0,\n attachment: \"ri.foo\",\n attachment2: { rid: \"ri.bar\" },\n },\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 0, name: \"My Task Name\" },\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 1, name: \"My Other Task Name\" },\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 3 },\n },\n { type: \"deleteObject\", obj: { $apiName: \"Task\", $primaryKey: 0 } },\n { type: \"deleteObject\", obj: { $apiName: \"Task\", $primaryKey: 2 } },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Task\", $primaryKey: 0 },\n properties: { name: \"My New Task Name\" },\n },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Task\", $primaryKey: 2 },\n properties: { name: \"My Very New Task Name\" },\n },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Task\", $primaryKey: 3 },\n properties: {},\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 0, name: \"My Task Name\" },\n },\n {\n type: \"createObject\",\n obj: Office,\n properties: { officeId: \"3\", capacity: 2 },\n },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Office\", $primaryKey: \"3\" },\n properties: { capacity: 4 },\n },\n {\n type: \"createObjectForInterface\",\n int: FooInterface,\n properties: { fooSpt: \"created interface\", $objectType: \"Task\" },\n },\n {\n type: \"updateObjectForInterface\",\n obj: {\n $apiName: \"FooInterface\",\n $primaryKey: 21,\n $objectType: \"FooObjectType\",\n },\n properties: { fooSpt: \"fooSpt\" },\n },\n {\n type: \"updateObjectForInterface\",\n obj: {\n $apiName: \"FooInterface\",\n $primaryKey: 22,\n $objectType: \"FooObjectType\",\n },\n properties: { fooSpt: \"fooSpt2\" },\n },\n {\n type: \"deleteObjectForInterface\",\n obj: {\n $apiName: \"FooInterface\",\n $primaryKey: 21,\n $objectType: \"FooObjectType\",\n },\n },\n {\n type: \"addLink\",\n apiName: \"RP\",\n source: { $apiName: \"Task\", $primaryKey: 0 },\n target: { $apiName: \"Person\", $primaryKey: 0 },\n },\n {\n type: \"addLink\",\n apiName: \"RP\",\n source: { $apiName: \"Task\", $primaryKey: 0 },\n target: { $apiName: \"Person\", $primaryKey: 1 },\n },\n {\n type: \"addLink\",\n apiName: \"RP\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Person\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"RP\",\n source: { $apiName: \"Task\", $primaryKey: 0 },\n target: { $apiName: \"Person\", $primaryKey: 1 },\n },\n {\n type: \"addLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 0 },\n },\n {\n type: \"addLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 1 },\n },\n {\n type: \"addLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 0 },\n },\n {\n type: \"addLink\",\n apiName: \"occupants\",\n source: { $apiName: \"Office\", $primaryKey: \"2\" },\n target: { $apiName: \"Employee\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"occupants\",\n source: { $apiName: \"Office\", $primaryKey: \"2\" },\n target: { $apiName: \"Employee\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"occupants\",\n source: { $apiName: \"Office\", $primaryKey: \"2\" },\n target: { $apiName: \"Employee\", $primaryKey: 3 },\n },\n ]);\n });\n\n it(\"prevents bad link edits\", () => {\n // @ts-expect-error\n editBatch.link(taskInstance, \"RP\", officeInstance); // Linking to Office instead of Person\n\n editBatch.link(\n taskInstance,\n \"RP\",\n // @ts-expect-error\n [personInstance],\n ); // Using list for non-multiplicity link\n\n editBatch.link(\n { $apiName: \"Task\", $primaryKey: 2 },\n // @ts-expect-error\n \"occupants\",\n employeeInstance,\n ); // Using Office link\n\n editBatch.link(\n { $apiName: \"Office\", $primaryKey: \"2\" },\n \"occupants\",\n // @ts-expect-error\n personInstance,\n ); // Linking to Person instead of Employee\n\n // @ts-expect-error\n editBatch.link(officeInstance, \"Todos\", {\n $apiName: \"Todo\",\n $primaryKey: 0,\n }); // Using Task link\n });\n\n it(\"prevents bad unlink edits\", () => {\n // @ts-expect-error\n editBatch.unlink(taskInstance, \"RP\", officeInstance); // Unlinking Office instead of Person\n\n editBatch.unlink(\n taskInstance,\n \"RP\",\n // @ts-expect-error\n [personInstance],\n ); // Using list for non-multiplicity link\n\n editBatch.unlink(\n { $apiName: \"Task\", $primaryKey: 2 },\n // @ts-expect-error\n \"occupants\",\n employeeInstance,\n ); // Using Office link\n\n editBatch.unlink(\n { $apiName: \"Office\", $primaryKey: \"2\" },\n \"occupants\",\n // @ts-expect-error\n personInstance,\n ); // Unlinking Person instead of Employee\n\n // @ts-expect-error\n editBatch.unlink(officeInstance, \"Todos\", {\n $apiName: \"Todo\",\n $primaryKey: 0,\n }); // Using Task link\n });\n\n it(\"prevents bad update edits\", () => {\n // @ts-expect-error\n editBatch.update(taskInstance, { capacity: 4 }); // Using Office properties\n\n // @ts-expect-error\n editBatch.update({ $apiName: \"Task\", $primaryKey: 2 }, { capacity: 4 }); // Using Office properties\n });\n\n it(\"prevents bad update edits\", () => {\n // @ts-expect-error\n editBatch.update(taskInstance, { capacity: 4 }); // Using Office properties\n\n // @ts-expect-error\n editBatch.update({ $apiName: \"Task\", $primaryKey: 2 }, { capacity: 4 }); // Using Office properties\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createEditBatch.test.js","names":["FooInterface","objectTypeWithAllPropertyTypes","Office","Task","beforeEach","describe","expect","it","vi","createEditBatch","taskInstance","$apiName","$primaryKey","personInstance","officeInstance","employeeInstance","fooInterfaceInstance","$objectType","client","editBatch","fn","create","id","attachment","attachment2","rid","vector","name","delete","update","officeId","capacity","fooSpt","link","unlink","getEdits","toEqual","type","obj","properties","int","apiName","source","target"],"sources":["createEditBatch.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Attachment, Client, Osdk } from \"@osdk/client\";\nimport type { Employee, Person } from \"@osdk/client.test.ontology\";\nimport {\n FooInterface,\n objectTypeWithAllPropertyTypes,\n Office,\n Task,\n} from \"@osdk/client.test.ontology\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { createEditBatch } from \"./createEditBatch.js\";\nimport type { EditBatch } from \"./EditBatch.js\";\nimport type { Edits } from \"./types.js\";\n\ntype TestEditScope =\n | Edits.Object<Task>\n | Edits.Object<Office>\n | Edits.Object<objectTypeWithAllPropertyTypes>\n | Edits.Link<Task, \"RP\">\n | Edits.Link<Task, \"Todos\">\n | Edits.Link<Office, \"occupants\">\n | Edits.Link<Employee, \"visitedOffices\">\n | Edits.Interface<FooInterface>;\n\ndescribe(createEditBatch, () => {\n const taskInstance = {\n $apiName: \"Task\",\n $primaryKey: 2,\n } as Osdk.Instance<Task>;\n\n const personInstance = {\n $apiName: \"Person\",\n $primaryKey: 2,\n } as Osdk.Instance<Person>;\n\n const officeInstance = {\n $apiName: \"Office\",\n $primaryKey: \"2\",\n } as Osdk.Instance<Office>;\n\n const employeeInstance = {\n $apiName: \"Employee\",\n $primaryKey: 2,\n } as Osdk.Instance<Employee>;\n\n const fooInterfaceInstance = {\n $apiName: \"FooInterface\",\n $primaryKey: 21,\n $objectType: \"FooObjectType\",\n } as Osdk.Instance<FooInterface>;\n\n let client: Client;\n\n let editBatch: EditBatch<TestEditScope>;\n\n beforeEach(() => {\n client = vi.fn() as any as Client;\n editBatch = createEditBatch<TestEditScope>(client);\n });\n\n it(\"collects all edits\", () => {\n editBatch.create(objectTypeWithAllPropertyTypes, {\n id: 0,\n attachment: \"ri.foo\",\n attachment2: { rid: \"ri.bar\" } as Attachment,\n vector: [1, 2, 3],\n });\n editBatch.create(Task, { id: 0, name: \"My Task Name\" });\n editBatch.create(Task, { id: 1, name: \"My Other Task Name\" });\n editBatch.create(Task, { id: 3 });\n editBatch.delete({ $apiName: \"Task\", $primaryKey: 0 });\n editBatch.delete(taskInstance);\n editBatch.update({ $apiName: \"Task\", $primaryKey: 0 }, {\n name: \"My New Task Name\",\n });\n editBatch.update(taskInstance, { name: \"My Very New Task Name\" });\n editBatch.update({ $apiName: \"Task\", $primaryKey: 3 }, {});\n editBatch.create(Task, { id: 0, name: \"My Task Name\" });\n editBatch.create(Office, { officeId: \"3\", capacity: 2 });\n editBatch.update({ $apiName: \"Office\", $primaryKey: \"3\" }, { capacity: 4 });\n editBatch.create(FooInterface, {\n $objectType: \"Task\",\n fooSpt: \"created interface\",\n });\n editBatch.update(fooInterfaceInstance, { fooSpt: \"fooSpt\" });\n editBatch.update({\n $apiName: \"FooInterface\",\n $objectType: \"FooObjectType\",\n $primaryKey: 22,\n }, { fooSpt: \"fooSpt2\" });\n editBatch.delete(fooInterfaceInstance);\n\n editBatch.link({ $apiName: \"Employee\", $primaryKey: 0 }, \"visitedOffices\", {\n $apiName: \"Office\",\n $primaryKey: \"Seattle\",\n });\n editBatch.link({ $apiName: \"Employee\", $primaryKey: 0 }, \"visitedOffices\", {\n $apiName: \"Office\",\n $primaryKey: \"Palo Alto\",\n });\n editBatch.link(employeeInstance, \"visitedOffices\", officeInstance);\n editBatch.unlink(\n { $apiName: \"Employee\", $primaryKey: 0 },\n \"visitedOffices\",\n {\n $apiName: \"Office\",\n $primaryKey: \"New York\",\n },\n );\n editBatch.link(taskInstance, \"Todos\", { $apiName: \"Todo\", $primaryKey: 0 });\n editBatch.link(taskInstance, \"Todos\", [\n { $apiName: \"Todo\", $primaryKey: 1 },\n { $apiName: \"Todo\", $primaryKey: 2 },\n ]);\n editBatch.unlink({ $apiName: \"Task\", $primaryKey: 2 }, \"Todos\", {\n $apiName: \"Todo\",\n $primaryKey: 0,\n });\n editBatch.link(officeInstance, \"occupants\", employeeInstance);\n editBatch.unlink(\n { $apiName: \"Office\", $primaryKey: \"Denver\" },\n \"occupants\",\n [employeeInstance, { $apiName: \"Employee\", $primaryKey: 3 }],\n );\n\n expect(editBatch.getEdits()).toEqual([\n {\n type: \"createObject\",\n obj: objectTypeWithAllPropertyTypes,\n properties: {\n id: 0,\n attachment: \"ri.foo\",\n attachment2: { rid: \"ri.bar\" },\n vector: [1, 2, 3],\n },\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 0, name: \"My Task Name\" },\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 1, name: \"My Other Task Name\" },\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 3 },\n },\n { type: \"deleteObject\", obj: { $apiName: \"Task\", $primaryKey: 0 } },\n { type: \"deleteObject\", obj: { $apiName: \"Task\", $primaryKey: 2 } },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Task\", $primaryKey: 0 },\n properties: { name: \"My New Task Name\" },\n },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Task\", $primaryKey: 2 },\n properties: { name: \"My Very New Task Name\" },\n },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Task\", $primaryKey: 3 },\n properties: {},\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 0, name: \"My Task Name\" },\n },\n {\n type: \"createObject\",\n obj: Office,\n properties: { officeId: \"3\", capacity: 2 },\n },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Office\", $primaryKey: \"3\" },\n properties: { capacity: 4 },\n },\n {\n type: \"createObjectForInterface\",\n int: FooInterface,\n properties: { fooSpt: \"created interface\", $objectType: \"Task\" },\n },\n {\n type: \"updateObjectForInterface\",\n obj: {\n $apiName: \"FooInterface\",\n $primaryKey: 21,\n $objectType: \"FooObjectType\",\n },\n properties: { fooSpt: \"fooSpt\" },\n },\n {\n type: \"updateObjectForInterface\",\n obj: {\n $apiName: \"FooInterface\",\n $primaryKey: 22,\n $objectType: \"FooObjectType\",\n },\n properties: { fooSpt: \"fooSpt2\" },\n },\n {\n type: \"deleteObjectForInterface\",\n obj: {\n $apiName: \"FooInterface\",\n $primaryKey: 21,\n $objectType: \"FooObjectType\",\n },\n },\n {\n type: \"addLink\",\n apiName: \"visitedOffices\",\n source: { $apiName: \"Employee\", $primaryKey: 0 },\n target: { $apiName: \"Office\", $primaryKey: \"Seattle\" },\n },\n {\n type: \"addLink\",\n apiName: \"visitedOffices\",\n source: { $apiName: \"Employee\", $primaryKey: 0 },\n target: { $apiName: \"Office\", $primaryKey: \"Palo Alto\" },\n },\n {\n type: \"addLink\",\n apiName: \"visitedOffices\",\n source: { $apiName: \"Employee\", $primaryKey: 2 },\n target: { $apiName: \"Office\", $primaryKey: \"2\" },\n },\n {\n type: \"removeLink\",\n apiName: \"visitedOffices\",\n source: { $apiName: \"Employee\", $primaryKey: 0 },\n target: { $apiName: \"Office\", $primaryKey: \"New York\" },\n },\n {\n type: \"addLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 0 },\n },\n {\n type: \"addLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 1 },\n },\n {\n type: \"addLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 0 },\n },\n {\n type: \"addLink\",\n apiName: \"occupants\",\n source: { $apiName: \"Office\", $primaryKey: \"2\" },\n target: { $apiName: \"Employee\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"occupants\",\n source: { $apiName: \"Office\", $primaryKey: \"Denver\" },\n target: { $apiName: \"Employee\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"occupants\",\n source: { $apiName: \"Office\", $primaryKey: \"Denver\" },\n target: { $apiName: \"Employee\", $primaryKey: 3 },\n },\n ]);\n });\n\n it(\"prevents bad link edits\", () => {\n // @ts-expect-error\n editBatch.link(taskInstance, \"RP\", officeInstance); // Linking to Office instead of Person\n\n editBatch.link(\n taskInstance,\n \"RP\",\n // @ts-expect-error\n personInstance,\n );\n // Trying to traverse ONE direction\n\n editBatch.link(\n { $apiName: \"Task\", $primaryKey: 2 },\n // @ts-expect-error\n \"occupants\",\n employeeInstance,\n ); // Using Office link\n\n editBatch.link(\n { $apiName: \"Office\", $primaryKey: \"2\" },\n \"occupants\",\n // @ts-expect-error\n personInstance,\n ); // Linking to Person instead of Employee\n\n // @ts-expect-error\n editBatch.link(officeInstance, \"Todos\", {\n $apiName: \"Todo\",\n $primaryKey: 0,\n }); // Using Task link\n });\n\n it(\"prevents bad unlink edits\", () => {\n // @ts-expect-error\n editBatch.unlink(taskInstance, \"RP\", officeInstance); // Unlinking Office instead of Person\n\n editBatch.unlink(\n taskInstance,\n \"RP\",\n // @ts-expect-error\n [personInstance],\n ); // Using list for non-multiplicity link\n\n editBatch.unlink(\n { $apiName: \"Task\", $primaryKey: 2 },\n // @ts-expect-error\n \"occupants\",\n employeeInstance,\n ); // Using Office link\n\n editBatch.unlink(\n { $apiName: \"Office\", $primaryKey: \"2\" },\n \"occupants\",\n // @ts-expect-error\n personInstance,\n ); // Unlinking Person instead of Employee\n\n // @ts-expect-error\n editBatch.unlink(officeInstance, \"Todos\", {\n $apiName: \"Todo\",\n $primaryKey: 0,\n }); // Using Task link\n });\n\n it(\"prevents bad update edits\", () => {\n // @ts-expect-error\n editBatch.update(taskInstance, { capacity: 4 }); // Using Office properties\n\n // @ts-expect-error\n editBatch.update({ $apiName: \"Task\", $primaryKey: 2 }, { capacity: 4 }); // Using Office properties\n });\n\n it(\"prevents bad update edits\", () => {\n // @ts-expect-error\n editBatch.update(taskInstance, { capacity: 4 }); // Using Office properties\n\n // @ts-expect-error\n editBatch.update({ $apiName: \"Task\", $primaryKey: 2 }, { capacity: 4 }); // Using Office properties\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["Edits","isInterfaceLocator","obj","$objectType","$apiName"],"sources":["types.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n InterfaceDefinition,\n ObjectMetadata,\n ObjectTypeDefinition,\n Osdk,\n OsdkObjectCreatePropertyType,\n PropertyKeys,\n} from \"@osdk/client\";\n\nexport type ObjectLocator<\n S extends ObjectTypeDefinition = ObjectTypeDefinition,\n> = {\n $apiName: Osdk.Instance<S>[\"$apiName\"];\n $primaryKey: Osdk.Instance<S>[\"$primaryKey\"];\n};\n\nexport type InterfaceLocator<\n S extends InterfaceDefinition = InterfaceDefinition,\n> = {\n $apiName: Osdk.Instance<S>[\"$apiName\"];\n $objectType: Osdk.Instance<S>[\"$objectType\"];\n $primaryKey: Osdk.Instance<S>[\"$primaryKey\"];\n};\n\nexport namespace Edits {\n export type Object<S extends ObjectTypeDefinition> =\n | CreateObject<S>\n | DeleteObject<S>\n | UpdateObject<S>;\n\n export type Link<\n S extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<S>[\"links\"],\n > = AddLink<S, L> | RemoveLink<S, L>;\n\n export type Interface<S extends InterfaceDefinition> =\n | CreateObjectForInterface<S>\n | UpdateObjectForInterface<S>\n | DeleteObjectForInterface<S>;\n}\n\nexport interface AddLink<\n S extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<S>[\"links\"],\n> {\n type: \"addLink\";\n apiName: L;\n source: ObjectLocator<S>;\n target: CompileTimeMetadata<S>[\"links\"][L] extends\n ObjectMetadata.Link<infer T, any> ? ObjectLocator<T> : never;\n}\n\nexport interface RemoveLink<\n S extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<S>[\"links\"],\n> {\n type: \"removeLink\";\n apiName: L;\n source: ObjectLocator<S>;\n target: CompileTimeMetadata<S>[\"links\"][L] extends\n ObjectMetadata.Link<infer T, any> ? ObjectLocator<T> : never;\n}\n\ntype PartialForOptionalProperties<T> =\n & {\n [K in keyof T as undefined extends T[K] ? K : never]?: T[K];\n }\n & {\n [K in keyof T as undefined extends T[K] ? never : K]-?: T[K];\n };\n\nexport interface CreateObject<S extends ObjectTypeDefinition> {\n type: \"createObject\";\n obj: S;\n properties: PartialForOptionalProperties<\n {\n [P in PropertyKeys<S>]: OsdkObjectCreatePropertyType<\n CompileTimeMetadata<S>[\"properties\"][P]\n >;\n }\n >;\n}\n\nexport interface DeleteObject<S extends ObjectTypeDefinition> {\n type: \"deleteObject\";\n obj: ObjectLocator<S>;\n}\n\nexport interface DeleteObjectForInterface<S extends InterfaceDefinition> {\n type: \"deleteObjectForInterface\";\n obj: InterfaceLocator<S>;\n}\n\nexport interface UpdateObject<S extends ObjectTypeDefinition> {\n type: \"updateObject\";\n obj: ObjectLocator<S>;\n properties: Partial<\n {\n [\n P in Exclude<\n PropertyKeys<S>,\n CompileTimeMetadata<S>[\"primaryKeyApiName\"]\n >\n ]: OsdkObjectCreatePropertyType<CompileTimeMetadata<S>[\"properties\"][P]>;\n }\n >;\n}\n\nexport interface CreateObjectForInterface<S extends InterfaceDefinition> {\n type: \"createObjectForInterface\";\n int: S;\n properties: PartialForOptionalProperties<\n {\n [P in PropertyKeys<S>]: OsdkObjectCreatePropertyType<\n CompileTimeMetadata<S>[\"properties\"][P]\n >;\n } & {\n $objectType: string;\n }\n >;\n}\n\nexport interface UpdateObjectForInterface<S extends InterfaceDefinition> {\n type: \"updateObjectForInterface\";\n obj: InterfaceLocator<S>;\n properties: Partial<\n {\n [P in PropertyKeys<S>]: OsdkObjectCreatePropertyType<\n CompileTimeMetadata<S>[\"properties\"][P]\n >;\n }\n >;\n}\n\nexport type AnyEdit =\n | AddLink<any, any>\n | RemoveLink<any, any>\n | CreateObject<any>\n | DeleteObject<any>\n | UpdateObject<any>\n | CreateObjectForInterface<any>\n | UpdateObjectForInterface<any>\n | DeleteObjectForInterface<any>;\n\n// Check if locator is for an interface by comparing $apiName and $objectType.\n// Both object types and interfaces store the object type API name in $objectType,\n// but interfaces store the interface API name in $apiName.\nexport function isInterfaceLocator(obj: any): obj is InterfaceLocator<any> {\n return obj != null && typeof obj === \"object\"\n && typeof obj.$objectType === \"string\" && typeof obj.$apiName === \"string\"\n && obj.$apiName !== obj.$objectType;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA,WAyCiBA,KAAK;AAwHtB;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,GAAQ,EAAgC;EACzE,OAAOA,GAAG,IAAI,IAAI,IAAI,OAAOA,GAAG,KAAK,QAAQ,IACxC,OAAOA,GAAG,CAACC,WAAW,KAAK,QAAQ,IAAI,OAAOD,GAAG,CAACE,QAAQ,KAAK,QAAQ,IACvEF,GAAG,CAACE,QAAQ,KAAKF,GAAG,CAACC,WAAW;AACvC","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":["Edits","isInterfaceLocator","obj","$objectType","$apiName"],"sources":["types.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n InterfaceDefinition,\n ObjectMetadata,\n ObjectTypeDefinition,\n Osdk,\n OsdkObjectCreatePropertyType,\n PropertyKeys,\n} from \"@osdk/client\";\n\nexport type ObjectLocator<\n S extends ObjectTypeDefinition = ObjectTypeDefinition,\n> = {\n $apiName: Osdk.Instance<S>[\"$apiName\"];\n $primaryKey: Osdk.Instance<S>[\"$primaryKey\"];\n};\n\nexport type InterfaceLocator<\n S extends InterfaceDefinition = InterfaceDefinition,\n> = {\n $apiName: Osdk.Instance<S>[\"$apiName\"];\n $objectType: Osdk.Instance<S>[\"$objectType\"];\n $primaryKey: Osdk.Instance<S>[\"$primaryKey\"];\n};\n\nexport namespace Edits {\n export type Object<S extends ObjectTypeDefinition> =\n | CreateObject<S>\n | DeleteObject<S>\n | UpdateObject<S>;\n\n export type Link<\n S extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<S>[\"links\"],\n > = AddLink<S, L> | RemoveLink<S, L>;\n\n export type Interface<S extends InterfaceDefinition> =\n | CreateObjectForInterface<S>\n | UpdateObjectForInterface<S>\n | DeleteObjectForInterface<S>;\n}\n\nexport interface AddLink<\n S extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<S>[\"links\"],\n> {\n type: \"addLink\";\n apiName: L;\n source: ObjectLocator<S>;\n target: CompileTimeMetadata<S>[\"links\"][L] extends\n ObjectMetadata.Link<infer T, any> ? ObjectLocator<T> : never;\n}\n\nexport interface RemoveLink<\n S extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<S>[\"links\"],\n> {\n type: \"removeLink\";\n apiName: L;\n source: ObjectLocator<S>;\n target: CompileTimeMetadata<S>[\"links\"][L] extends\n ObjectMetadata.Link<infer T, any> ? ObjectLocator<T> : never;\n}\n\ntype PartialForOptionalProperties<T> =\n & {\n [K in keyof T as undefined extends T[K] ? K : never]?: NonNullable<T[K]>;\n }\n & {\n [K in keyof T as undefined extends T[K] ? never : K]-?: T[K];\n };\n\nexport interface CreateObject<S extends ObjectTypeDefinition> {\n type: \"createObject\";\n obj: S;\n properties: PartialForOptionalProperties<\n {\n [P in PropertyKeys<S>]: OsdkObjectCreatePropertyType<\n CompileTimeMetadata<S>[\"properties\"][P]\n >;\n }\n >;\n}\n\nexport interface DeleteObject<S extends ObjectTypeDefinition> {\n type: \"deleteObject\";\n obj: ObjectLocator<S>;\n}\n\nexport interface DeleteObjectForInterface<S extends InterfaceDefinition> {\n type: \"deleteObjectForInterface\";\n obj: InterfaceLocator<S>;\n}\n\nexport interface UpdateObject<S extends ObjectTypeDefinition> {\n type: \"updateObject\";\n obj: ObjectLocator<S>;\n properties: Partial<\n {\n [\n P in Exclude<\n PropertyKeys<S>,\n CompileTimeMetadata<S>[\"primaryKeyApiName\"]\n >\n ]: OsdkObjectCreatePropertyType<CompileTimeMetadata<S>[\"properties\"][P]>;\n }\n >;\n}\n\nexport interface CreateObjectForInterface<S extends InterfaceDefinition> {\n type: \"createObjectForInterface\";\n int: S;\n properties: PartialForOptionalProperties<\n {\n [P in PropertyKeys<S>]: OsdkObjectCreatePropertyType<\n CompileTimeMetadata<S>[\"properties\"][P]\n >;\n } & {\n $objectType: string;\n }\n >;\n}\n\nexport interface UpdateObjectForInterface<S extends InterfaceDefinition> {\n type: \"updateObjectForInterface\";\n obj: InterfaceLocator<S>;\n properties: Partial<\n {\n [P in PropertyKeys<S>]: OsdkObjectCreatePropertyType<\n CompileTimeMetadata<S>[\"properties\"][P]\n >;\n }\n >;\n}\n\nexport type AnyEdit =\n | AddLink<any, any>\n | RemoveLink<any, any>\n | CreateObject<any>\n | DeleteObject<any>\n | UpdateObject<any>\n | CreateObjectForInterface<any>\n | UpdateObjectForInterface<any>\n | DeleteObjectForInterface<any>;\n\n// Check if locator is for an interface by comparing $apiName and $objectType.\n// Both object types and interfaces store the object type API name in $objectType,\n// but interfaces store the interface API name in $apiName.\nexport function isInterfaceLocator(obj: any): obj is InterfaceLocator<any> {\n return obj != null && typeof obj === \"object\"\n && typeof obj.$objectType === \"string\" && typeof obj.$apiName === \"string\"\n && obj.$apiName !== obj.$objectType;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA,WAyCiBA,KAAK;AAwHtB;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,GAAQ,EAAgC;EACzE,OAAOA,GAAG,IAAI,IAAI,IAAI,OAAOA,GAAG,KAAK,QAAQ,IACxC,OAAOA,GAAG,CAACC,WAAW,KAAK,QAAQ,IAAI,OAAOD,GAAG,CAACE,QAAQ,KAAK,QAAQ,IACvEF,GAAG,CAACE,QAAQ,KAAKF,GAAG,CAACC,WAAW;AACvC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { ObjectTypeDefinition, CompileTimeMetadata, InterfaceDefinition } from '@osdk/client';
2
- import { A as AnyEdit, a as AddLink, O as ObjectLocator, R as RemoveLink, C as CreateObject, b as CreateObjectForInterface, D as DeleteObject, c as DeleteObjectForInterface, I as InterfaceLocator, U as UpdateObject, d as UpdateObjectForInterface } from './internal-C20KRlC4.cjs';
2
+ import { A as AnyEdit, a as AddLink, O as ObjectLocator, R as RemoveLink, C as CreateObject, b as CreateObjectForInterface, D as DeleteObject, c as DeleteObjectForInterface, I as InterfaceLocator, U as UpdateObject, d as UpdateObjectForInterface } from './internal-CmSoe_xi.cjs';
3
3
 
4
4
  interface ObjectTypeDefinitionForLocator<OL extends ObjectLocator<any>> extends ObjectTypeDefinition {
5
5
  apiName: OL["$apiName"];
@@ -9,10 +9,10 @@ interface InterfaceDefinitionForLocator<IL extends ObjectLocator<any>> extends I
9
9
  }
10
10
  type AddLinkSources<X extends AnyEdit> = X extends AddLink<infer OTD, any> ? ObjectLocator<OTD> : never;
11
11
  type AddLinkApiNames<X extends AnyEdit, SOL extends ObjectLocator<any>> = X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, infer A> ? A : never;
12
- type AddLinkTargets<X extends AnyEdit, SOL extends ObjectLocator<any>, A extends string> = X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, A> ? (X extends AddLink<infer OTD, A> ? (CompileTimeMetadata<OTD>["links"][A]["multiplicity"] extends true ? Array<X["target"]> | X["target"] : X["target"]) : never) : never;
12
+ type AddLinkTargets<X extends AnyEdit, SOL extends ObjectLocator<any>, A extends string> = X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, A> ? (X extends AddLink<infer OTD, A> ? (CompileTimeMetadata<OTD>["links"][A]["multiplicity"] extends true ? Array<X["target"]> | X["target"] : never) : never) : never;
13
13
  type RemoveLinkSources<X extends AnyEdit> = X extends RemoveLink<infer OTD, any> ? ObjectLocator<OTD> : never;
14
14
  type RemoveLinkApiNames<X extends AnyEdit, SOL extends ObjectLocator<any>> = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, infer L> ? L : never;
15
- type RemoveLinkTargets<X extends AnyEdit, SOL extends ObjectLocator<any>, A extends string> = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, A> ? (X extends RemoveLink<infer OTD, A> ? (CompileTimeMetadata<OTD>["links"][A]["multiplicity"] extends true ? Array<X["target"]> | X["target"] : X["target"]) : never) : never;
15
+ type RemoveLinkTargets<X extends AnyEdit, SOL extends ObjectLocator<any>, A extends string> = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, A> ? (X extends RemoveLink<infer OTD, A> ? (CompileTimeMetadata<OTD>["links"][A]["multiplicity"] extends true ? Array<X["target"]> | X["target"] : never) : never) : never;
16
16
  type CreatableObjectOrInterfaceTypes<X extends AnyEdit> = X extends CreateObject<infer OTD> ? OTD : X extends CreateObjectForInterface<infer ID> ? ID : never;
17
17
  type CreatableObjectOrInterfaceTypeProperties<X extends AnyEdit, OI extends ObjectTypeDefinition | InterfaceDefinition> = X extends CreateObject<infer OTD> ? OTD extends OI ? X["properties"] : never : X extends CreateObjectForInterface<infer ID> ? ID extends OI ? X["properties"] : never : never;
18
18
  type DeletableObjectOrInterfaceLocators<X extends AnyEdit> = X extends DeleteObject<infer OTD> ? ObjectLocator<OTD> : X extends DeleteObjectForInterface<infer ID> ? InterfaceLocator<ID> : never;
@@ -1,8 +1,8 @@
1
1
  import { Client, ObjectTypeDefinition, InterfaceDefinition, Osdk } from '@osdk/client';
2
2
  export { Attachment, Range, ThreeDimensionalAggregation, TwoDimensionalAggregation } from '@osdk/client';
3
- import { E as EditBatch } from './EditBatch-DRBn1Fqo.cjs';
4
- import { A as AnyEdit } from './internal-C20KRlC4.cjs';
5
- export { E as Edits } from './internal-C20KRlC4.cjs';
3
+ import { E as EditBatch } from './EditBatch-CwPxevhT.cjs';
4
+ import { A as AnyEdit } from './internal-CmSoe_xi.cjs';
5
+ export { E as Edits } from './internal-CmSoe_xi.cjs';
6
6
  import { GroupId as GroupId$1, UserId as UserId$1 } from '@osdk/foundry.core';
7
7
  export { Geometry, Point } from 'geojson';
8
8
 
@@ -27,7 +27,7 @@ interface RemoveLink<S extends ObjectTypeDefinition, L extends keyof CompileTime
27
27
  target: CompileTimeMetadata<S>["links"][L] extends ObjectMetadata.Link<infer T, any> ? ObjectLocator<T> : never;
28
28
  }
29
29
  type PartialForOptionalProperties<T> = {
30
- [K in keyof T as undefined extends T[K] ? K : never]?: T[K];
30
+ [K in keyof T as undefined extends T[K] ? K : never]?: NonNullable<T[K]>;
31
31
  } & {
32
32
  [K in keyof T as undefined extends T[K] ? never : K]-?: T[K];
33
33
  };
@@ -1,2 +1,2 @@
1
- export { a as AddLink, A as AnyEdit, C as CreateObject, b as CreateObjectForInterface, D as DeleteObject, c as DeleteObjectForInterface, I as InterfaceLocator, O as ObjectLocator, R as RemoveLink, U as UpdateObject, d as UpdateObjectForInterface } from '../internal-C20KRlC4.cjs';
1
+ export { a as AddLink, A as AnyEdit, C as CreateObject, b as CreateObjectForInterface, D as DeleteObject, c as DeleteObjectForInterface, I as InterfaceLocator, O as ObjectLocator, R as RemoveLink, U as UpdateObject, d as UpdateObjectForInterface } from '../internal-CmSoe_xi.cjs';
2
2
  import '@osdk/client';
@@ -1,7 +1,7 @@
1
1
  import { createClientWithTransaction } from '@osdk/client/unstable-do-not-use';
2
- import { A as AnyEdit } from '../internal-C20KRlC4.cjs';
2
+ import { A as AnyEdit } from '../internal-CmSoe_xi.cjs';
3
3
  import { Client } from '@osdk/client';
4
- import { A as AddLinkSources, a as AddLinkApiNames, b as AddLinkTargets, R as RemoveLinkSources, c as RemoveLinkApiNames, d as RemoveLinkTargets, C as CreatableObjectOrInterfaceTypes, e as CreatableObjectOrInterfaceTypeProperties, D as DeletableObjectOrInterfaceLocators, U as UpdatableObjectOrInterfaceLocators, f as UpdatableObjectOrInterfaceLocatorProperties } from '../EditBatch-DRBn1Fqo.cjs';
4
+ import { A as AddLinkSources, a as AddLinkApiNames, b as AddLinkTargets, R as RemoveLinkSources, c as RemoveLinkApiNames, d as RemoveLinkTargets, C as CreatableObjectOrInterfaceTypes, e as CreatableObjectOrInterfaceTypeProperties, D as DeletableObjectOrInterfaceLocators, U as UpdatableObjectOrInterfaceLocators, f as UpdatableObjectOrInterfaceLocatorProperties } from '../EditBatch-CwPxevhT.cjs';
5
5
 
6
6
  interface WriteableClientContext {
7
7
  ontologyRid: string | Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"EditBatch.js","names":[],"sources":["EditBatch.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n InterfaceDefinition,\n ObjectTypeDefinition,\n} from \"@osdk/client\";\nimport type {\n AddLink,\n AnyEdit,\n CreateObject,\n CreateObjectForInterface,\n DeleteObject,\n DeleteObjectForInterface,\n InterfaceLocator,\n ObjectLocator,\n RemoveLink,\n UpdateObject,\n UpdateObjectForInterface,\n} from \"./types.js\";\n\n// Helper type for literal \"apiName\" values without resorting to expensive type inference.\ninterface ObjectTypeDefinitionForLocator<OL extends ObjectLocator<any>>\n extends ObjectTypeDefinition\n{\n apiName: OL[\"$apiName\"];\n}\n\ninterface InterfaceDefinitionForLocator<IL extends ObjectLocator<any>>\n extends InterfaceDefinition\n{\n apiName: IL[\"$apiName\"];\n}\n\n// AddLink helper types\nexport type AddLinkSources<X extends AnyEdit> = X extends\n AddLink<infer OTD, any> ? ObjectLocator<OTD> : never;\n\nexport type AddLinkApiNames<X extends AnyEdit, SOL extends ObjectLocator<any>> =\n X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, infer A> ? A : never;\n\nexport type AddLinkTargets<\n X extends AnyEdit,\n SOL extends ObjectLocator<any>,\n A extends string,\n> = X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, A>\n ? (X extends AddLink<infer OTD, A>\n ? (CompileTimeMetadata<OTD>[\"links\"][A][\"multiplicity\"] extends true\n ? Array<X[\"target\"]> | X[\"target\"]\n : X[\"target\"])\n : never)\n : never;\n\n// RemoveLink helper types\nexport type RemoveLinkSources<X extends AnyEdit> = X extends\n RemoveLink<infer OTD, any> ? ObjectLocator<OTD> : never;\n\nexport type RemoveLinkApiNames<\n X extends AnyEdit,\n SOL extends ObjectLocator<any>,\n> = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, infer L> ? L\n : never;\n\nexport type RemoveLinkTargets<\n X extends AnyEdit,\n SOL extends ObjectLocator<any>,\n A extends string,\n> = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, A>\n ? (X extends RemoveLink<infer OTD, A>\n ? (CompileTimeMetadata<OTD>[\"links\"][A][\"multiplicity\"] extends true\n ? Array<X[\"target\"]> | X[\"target\"]\n : X[\"target\"])\n : never)\n : never;\n\n// CreateObject helper types\nexport type CreatableObjectOrInterfaceTypes<X extends AnyEdit> = X extends\n CreateObject<infer OTD> ? OTD\n : X extends CreateObjectForInterface<infer ID> ? ID\n : never;\n\nexport type CreatableObjectOrInterfaceTypeProperties<\n X extends AnyEdit,\n OI extends ObjectTypeDefinition | InterfaceDefinition,\n> = X extends CreateObject<infer OTD> ? OTD extends OI ? X[\"properties\"] : never\n : X extends CreateObjectForInterface<infer ID>\n ? ID extends OI ? X[\"properties\"] : never\n : never;\n\n// DeleteObject helper types\nexport type DeletableObjectOrInterfaceLocators<X extends AnyEdit> = X extends\n DeleteObject<infer OTD> ? ObjectLocator<OTD>\n : X extends DeleteObjectForInterface<infer ID> ? InterfaceLocator<ID>\n : never;\n\n// UpdateObject and UpdateInterface helper types\nexport type UpdatableObjectOrInterfaceLocators<X extends AnyEdit> = X extends\n UpdateObject<infer OTD> ? ObjectLocator<OTD>\n : X extends UpdateObjectForInterface<infer ID> ? InterfaceLocator<ID>\n : never;\n\nexport type UpdatableObjectOrInterfaceLocatorProperties<\n X extends AnyEdit,\n OL extends ObjectLocator<any>,\n> = X extends UpdateObject<ObjectTypeDefinitionForLocator<OL>> ? X[\"properties\"]\n : X extends UpdateObjectForInterface<InterfaceDefinitionForLocator<OL>>\n ? X[\"properties\"]\n : never;\n\nexport interface EditBatch<\n X extends AnyEdit = never,\n> {\n link: <\n SOL extends AddLinkSources<X>,\n A extends AddLinkApiNames<X, SOL>,\n >(\n source: SOL,\n apiName: A,\n target: AddLinkTargets<X, SOL, A>,\n ) => void;\n\n unlink: <\n SOL extends RemoveLinkSources<X>,\n A extends RemoveLinkApiNames<X, SOL>,\n >(\n source: SOL,\n apiName: A,\n target: RemoveLinkTargets<X, SOL, A>,\n ) => void;\n\n create: <OI extends CreatableObjectOrInterfaceTypes<X>>(\n objectOrInterfaceType: OI,\n properties: CreatableObjectOrInterfaceTypeProperties<X, OI>,\n ) => void;\n\n delete: <OL extends DeletableObjectOrInterfaceLocators<X>>(obj: OL) => void;\n\n update: <OL extends UpdatableObjectOrInterfaceLocators<X>>(\n obj: OL,\n properties: UpdatableObjectOrInterfaceLocatorProperties<X, OL>,\n ) => void;\n\n getEdits: () => X[];\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"EditBatch.js","names":[],"sources":["EditBatch.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n InterfaceDefinition,\n ObjectTypeDefinition,\n} from \"@osdk/client\";\nimport type {\n AddLink,\n AnyEdit,\n CreateObject,\n CreateObjectForInterface,\n DeleteObject,\n DeleteObjectForInterface,\n InterfaceLocator,\n ObjectLocator,\n RemoveLink,\n UpdateObject,\n UpdateObjectForInterface,\n} from \"./types.js\";\n\n// Helper type for literal \"apiName\" values without resorting to expensive type inference.\ninterface ObjectTypeDefinitionForLocator<OL extends ObjectLocator<any>>\n extends ObjectTypeDefinition\n{\n apiName: OL[\"$apiName\"];\n}\n\ninterface InterfaceDefinitionForLocator<IL extends ObjectLocator<any>>\n extends InterfaceDefinition\n{\n apiName: IL[\"$apiName\"];\n}\n\n// AddLink helper types\nexport type AddLinkSources<X extends AnyEdit> = X extends\n AddLink<infer OTD, any> ? ObjectLocator<OTD> : never;\n\nexport type AddLinkApiNames<X extends AnyEdit, SOL extends ObjectLocator<any>> =\n X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, infer A> ? A : never;\n\nexport type AddLinkTargets<\n X extends AnyEdit,\n SOL extends ObjectLocator<any>,\n A extends string,\n> = X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, A>\n ? (X extends AddLink<infer OTD, A>\n ? (CompileTimeMetadata<OTD>[\"links\"][A][\"multiplicity\"] extends true\n ? Array<X[\"target\"]> | X[\"target\"]\n : never)\n : never)\n : never;\n\n// RemoveLink helper types\nexport type RemoveLinkSources<X extends AnyEdit> = X extends\n RemoveLink<infer OTD, any> ? ObjectLocator<OTD> : never;\n\nexport type RemoveLinkApiNames<\n X extends AnyEdit,\n SOL extends ObjectLocator<any>,\n> = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, infer L> ? L\n : never;\n\nexport type RemoveLinkTargets<\n X extends AnyEdit,\n SOL extends ObjectLocator<any>,\n A extends string,\n> = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, A>\n ? (X extends RemoveLink<infer OTD, A>\n ? (CompileTimeMetadata<OTD>[\"links\"][A][\"multiplicity\"] extends true\n ? Array<X[\"target\"]> | X[\"target\"]\n : never)\n : never)\n : never;\n\n// CreateObject helper types\nexport type CreatableObjectOrInterfaceTypes<X extends AnyEdit> = X extends\n CreateObject<infer OTD> ? OTD\n : X extends CreateObjectForInterface<infer ID> ? ID\n : never;\n\nexport type CreatableObjectOrInterfaceTypeProperties<\n X extends AnyEdit,\n OI extends ObjectTypeDefinition | InterfaceDefinition,\n> = X extends CreateObject<infer OTD> ? OTD extends OI ? X[\"properties\"] : never\n : X extends CreateObjectForInterface<infer ID>\n ? ID extends OI ? X[\"properties\"] : never\n : never;\n\n// DeleteObject helper types\nexport type DeletableObjectOrInterfaceLocators<X extends AnyEdit> = X extends\n DeleteObject<infer OTD> ? ObjectLocator<OTD>\n : X extends DeleteObjectForInterface<infer ID> ? InterfaceLocator<ID>\n : never;\n\n// UpdateObject and UpdateInterface helper types\nexport type UpdatableObjectOrInterfaceLocators<X extends AnyEdit> = X extends\n UpdateObject<infer OTD> ? ObjectLocator<OTD>\n : X extends UpdateObjectForInterface<infer ID> ? InterfaceLocator<ID>\n : never;\n\nexport type UpdatableObjectOrInterfaceLocatorProperties<\n X extends AnyEdit,\n OL extends ObjectLocator<any>,\n> = X extends UpdateObject<ObjectTypeDefinitionForLocator<OL>> ? X[\"properties\"]\n : X extends UpdateObjectForInterface<InterfaceDefinitionForLocator<OL>>\n ? X[\"properties\"]\n : never;\n\nexport interface EditBatch<\n X extends AnyEdit = never,\n> {\n link: <\n SOL extends AddLinkSources<X>,\n A extends AddLinkApiNames<X, SOL>,\n >(\n source: SOL,\n apiName: A,\n target: AddLinkTargets<X, SOL, A>,\n ) => void;\n\n unlink: <\n SOL extends RemoveLinkSources<X>,\n A extends RemoveLinkApiNames<X, SOL>,\n >(\n source: SOL,\n apiName: A,\n target: RemoveLinkTargets<X, SOL, A>,\n ) => void;\n\n create: <OI extends CreatableObjectOrInterfaceTypes<X>>(\n objectOrInterfaceType: OI,\n properties: CreatableObjectOrInterfaceTypeProperties<X, OI>,\n ) => void;\n\n delete: <OL extends DeletableObjectOrInterfaceLocators<X>>(obj: OL) => void;\n\n update: <OL extends UpdatableObjectOrInterfaceLocators<X>>(\n obj: OL,\n properties: UpdatableObjectOrInterfaceLocatorProperties<X, OL>,\n ) => void;\n\n getEdits: () => X[];\n}\n"],"mappings":"","ignoreList":[]}
@@ -51,7 +51,8 @@ describe(createEditBatch, () => {
51
51
  attachment: "ri.foo",
52
52
  attachment2: {
53
53
  rid: "ri.bar"
54
- }
54
+ },
55
+ vector: [1, 2, 3]
55
56
  });
56
57
  editBatch.create(Task, {
57
58
  id: 0,
@@ -112,26 +113,26 @@ describe(createEditBatch, () => {
112
113
  });
113
114
  editBatch.delete(fooInterfaceInstance);
114
115
  editBatch.link({
115
- $apiName: "Task",
116
- $primaryKey: 0
117
- }, "RP", {
118
- $apiName: "Person",
116
+ $apiName: "Employee",
119
117
  $primaryKey: 0
118
+ }, "visitedOffices", {
119
+ $apiName: "Office",
120
+ $primaryKey: "Seattle"
120
121
  });
121
122
  editBatch.link({
122
- $apiName: "Task",
123
+ $apiName: "Employee",
123
124
  $primaryKey: 0
124
- }, "RP", {
125
- $apiName: "Person",
126
- $primaryKey: 1
125
+ }, "visitedOffices", {
126
+ $apiName: "Office",
127
+ $primaryKey: "Palo Alto"
127
128
  });
128
- editBatch.link(taskInstance, "RP", personInstance);
129
+ editBatch.link(employeeInstance, "visitedOffices", officeInstance);
129
130
  editBatch.unlink({
130
- $apiName: "Task",
131
+ $apiName: "Employee",
131
132
  $primaryKey: 0
132
- }, "RP", {
133
- $apiName: "Person",
134
- $primaryKey: 1
133
+ }, "visitedOffices", {
134
+ $apiName: "Office",
135
+ $primaryKey: "New York"
135
136
  });
136
137
  editBatch.link(taskInstance, "Todos", {
137
138
  $apiName: "Todo",
@@ -154,7 +155,7 @@ describe(createEditBatch, () => {
154
155
  editBatch.link(officeInstance, "occupants", employeeInstance);
155
156
  editBatch.unlink({
156
157
  $apiName: "Office",
157
- $primaryKey: "2"
158
+ $primaryKey: "Denver"
158
159
  }, "occupants", [employeeInstance, {
159
160
  $apiName: "Employee",
160
161
  $primaryKey: 3
@@ -167,7 +168,8 @@ describe(createEditBatch, () => {
167
168
  attachment: "ri.foo",
168
169
  attachment2: {
169
170
  rid: "ri.bar"
170
- }
171
+ },
172
+ vector: [1, 2, 3]
171
173
  }
172
174
  }, {
173
175
  type: "createObject",
@@ -285,47 +287,47 @@ describe(createEditBatch, () => {
285
287
  }
286
288
  }, {
287
289
  type: "addLink",
288
- apiName: "RP",
290
+ apiName: "visitedOffices",
289
291
  source: {
290
- $apiName: "Task",
292
+ $apiName: "Employee",
291
293
  $primaryKey: 0
292
294
  },
293
295
  target: {
294
- $apiName: "Person",
295
- $primaryKey: 0
296
+ $apiName: "Office",
297
+ $primaryKey: "Seattle"
296
298
  }
297
299
  }, {
298
300
  type: "addLink",
299
- apiName: "RP",
301
+ apiName: "visitedOffices",
300
302
  source: {
301
- $apiName: "Task",
303
+ $apiName: "Employee",
302
304
  $primaryKey: 0
303
305
  },
304
306
  target: {
305
- $apiName: "Person",
306
- $primaryKey: 1
307
+ $apiName: "Office",
308
+ $primaryKey: "Palo Alto"
307
309
  }
308
310
  }, {
309
311
  type: "addLink",
310
- apiName: "RP",
312
+ apiName: "visitedOffices",
311
313
  source: {
312
- $apiName: "Task",
314
+ $apiName: "Employee",
313
315
  $primaryKey: 2
314
316
  },
315
317
  target: {
316
- $apiName: "Person",
317
- $primaryKey: 2
318
+ $apiName: "Office",
319
+ $primaryKey: "2"
318
320
  }
319
321
  }, {
320
322
  type: "removeLink",
321
- apiName: "RP",
323
+ apiName: "visitedOffices",
322
324
  source: {
323
- $apiName: "Task",
325
+ $apiName: "Employee",
324
326
  $primaryKey: 0
325
327
  },
326
328
  target: {
327
- $apiName: "Person",
328
- $primaryKey: 1
329
+ $apiName: "Office",
330
+ $primaryKey: "New York"
329
331
  }
330
332
  }, {
331
333
  type: "addLink",
@@ -387,7 +389,7 @@ describe(createEditBatch, () => {
387
389
  apiName: "occupants",
388
390
  source: {
389
391
  $apiName: "Office",
390
- $primaryKey: "2"
392
+ $primaryKey: "Denver"
391
393
  },
392
394
  target: {
393
395
  $apiName: "Employee",
@@ -398,7 +400,7 @@ describe(createEditBatch, () => {
398
400
  apiName: "occupants",
399
401
  source: {
400
402
  $apiName: "Office",
401
- $primaryKey: "2"
403
+ $primaryKey: "Denver"
402
404
  },
403
405
  target: {
404
406
  $apiName: "Employee",
@@ -412,7 +414,8 @@ describe(createEditBatch, () => {
412
414
 
413
415
  editBatch.link(taskInstance, "RP",
414
416
  // @ts-expect-error
415
- [personInstance]); // Using list for non-multiplicity link
417
+ personInstance);
418
+ // Trying to traverse ONE direction
416
419
 
417
420
  editBatch.link({
418
421
  $apiName: "Task",
@@ -1 +1 @@
1
- {"version":3,"file":"createEditBatch.test.js","names":["FooInterface","objectTypeWithAllPropertyTypes","Office","Task","beforeEach","describe","expect","it","vi","createEditBatch","taskInstance","$apiName","$primaryKey","personInstance","officeInstance","employeeInstance","fooInterfaceInstance","$objectType","client","editBatch","fn","create","id","attachment","attachment2","rid","name","delete","update","officeId","capacity","fooSpt","link","unlink","getEdits","toEqual","type","obj","properties","int","apiName","source","target"],"sources":["createEditBatch.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Attachment, Client, Osdk } from \"@osdk/client\";\nimport type { Employee, Person } from \"@osdk/client.test.ontology\";\nimport {\n FooInterface,\n objectTypeWithAllPropertyTypes,\n Office,\n Task,\n} from \"@osdk/client.test.ontology\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { createEditBatch } from \"./createEditBatch.js\";\nimport type { EditBatch } from \"./EditBatch.js\";\nimport type { Edits } from \"./types.js\";\n\ntype TestEditScope =\n | Edits.Object<Task>\n | Edits.Object<Office>\n | Edits.Object<objectTypeWithAllPropertyTypes>\n | Edits.Link<Task, \"RP\">\n | Edits.Link<Task, \"Todos\">\n | Edits.Link<Office, \"occupants\">\n | Edits.Interface<FooInterface>;\n\ndescribe(createEditBatch, () => {\n const taskInstance = {\n $apiName: \"Task\",\n $primaryKey: 2,\n } as Osdk.Instance<Task>;\n\n const personInstance = {\n $apiName: \"Person\",\n $primaryKey: 2,\n } as Osdk.Instance<Person>;\n\n const officeInstance = {\n $apiName: \"Office\",\n $primaryKey: \"2\",\n } as Osdk.Instance<Office>;\n\n const employeeInstance = {\n $apiName: \"Employee\",\n $primaryKey: 2,\n } as Osdk.Instance<Employee>;\n\n const fooInterfaceInstance = {\n $apiName: \"FooInterface\",\n $primaryKey: 21,\n $objectType: \"FooObjectType\",\n } as Osdk.Instance<FooInterface>;\n\n let client: Client;\n\n let editBatch: EditBatch<TestEditScope>;\n\n beforeEach(() => {\n client = vi.fn() as any as Client;\n editBatch = createEditBatch<TestEditScope>(client);\n });\n\n it(\"collects all edits\", () => {\n editBatch.create(objectTypeWithAllPropertyTypes, {\n id: 0,\n attachment: \"ri.foo\",\n attachment2: { rid: \"ri.bar\" } as Attachment,\n });\n editBatch.create(Task, { id: 0, name: \"My Task Name\" });\n editBatch.create(Task, { id: 1, name: \"My Other Task Name\" });\n editBatch.create(Task, { id: 3 });\n editBatch.delete({ $apiName: \"Task\", $primaryKey: 0 });\n editBatch.delete(taskInstance);\n editBatch.update({ $apiName: \"Task\", $primaryKey: 0 }, {\n name: \"My New Task Name\",\n });\n editBatch.update(taskInstance, { name: \"My Very New Task Name\" });\n editBatch.update({ $apiName: \"Task\", $primaryKey: 3 }, {});\n editBatch.create(Task, { id: 0, name: \"My Task Name\" });\n editBatch.create(Office, { officeId: \"3\", capacity: 2 });\n editBatch.update({ $apiName: \"Office\", $primaryKey: \"3\" }, { capacity: 4 });\n editBatch.create(FooInterface, {\n $objectType: \"Task\",\n fooSpt: \"created interface\",\n });\n editBatch.update(fooInterfaceInstance, { fooSpt: \"fooSpt\" });\n editBatch.update({\n $apiName: \"FooInterface\",\n $objectType: \"FooObjectType\",\n $primaryKey: 22,\n }, { fooSpt: \"fooSpt2\" });\n editBatch.delete(fooInterfaceInstance);\n\n editBatch.link({ $apiName: \"Task\", $primaryKey: 0 }, \"RP\", {\n $apiName: \"Person\",\n $primaryKey: 0,\n });\n editBatch.link({ $apiName: \"Task\", $primaryKey: 0 }, \"RP\", {\n $apiName: \"Person\",\n $primaryKey: 1,\n });\n editBatch.link(taskInstance, \"RP\", personInstance);\n editBatch.unlink({ $apiName: \"Task\", $primaryKey: 0 }, \"RP\", {\n $apiName: \"Person\",\n $primaryKey: 1,\n });\n editBatch.link(taskInstance, \"Todos\", { $apiName: \"Todo\", $primaryKey: 0 });\n editBatch.link(taskInstance, \"Todos\", [\n { $apiName: \"Todo\", $primaryKey: 1 },\n { $apiName: \"Todo\", $primaryKey: 2 },\n ]);\n editBatch.unlink({ $apiName: \"Task\", $primaryKey: 2 }, \"Todos\", {\n $apiName: \"Todo\",\n $primaryKey: 0,\n });\n editBatch.link(officeInstance, \"occupants\", employeeInstance);\n editBatch.unlink(\n { $apiName: \"Office\", $primaryKey: \"2\" },\n \"occupants\",\n [employeeInstance, { $apiName: \"Employee\", $primaryKey: 3 }],\n );\n\n expect(editBatch.getEdits()).toEqual([\n {\n type: \"createObject\",\n obj: objectTypeWithAllPropertyTypes,\n properties: {\n id: 0,\n attachment: \"ri.foo\",\n attachment2: { rid: \"ri.bar\" },\n },\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 0, name: \"My Task Name\" },\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 1, name: \"My Other Task Name\" },\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 3 },\n },\n { type: \"deleteObject\", obj: { $apiName: \"Task\", $primaryKey: 0 } },\n { type: \"deleteObject\", obj: { $apiName: \"Task\", $primaryKey: 2 } },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Task\", $primaryKey: 0 },\n properties: { name: \"My New Task Name\" },\n },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Task\", $primaryKey: 2 },\n properties: { name: \"My Very New Task Name\" },\n },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Task\", $primaryKey: 3 },\n properties: {},\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 0, name: \"My Task Name\" },\n },\n {\n type: \"createObject\",\n obj: Office,\n properties: { officeId: \"3\", capacity: 2 },\n },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Office\", $primaryKey: \"3\" },\n properties: { capacity: 4 },\n },\n {\n type: \"createObjectForInterface\",\n int: FooInterface,\n properties: { fooSpt: \"created interface\", $objectType: \"Task\" },\n },\n {\n type: \"updateObjectForInterface\",\n obj: {\n $apiName: \"FooInterface\",\n $primaryKey: 21,\n $objectType: \"FooObjectType\",\n },\n properties: { fooSpt: \"fooSpt\" },\n },\n {\n type: \"updateObjectForInterface\",\n obj: {\n $apiName: \"FooInterface\",\n $primaryKey: 22,\n $objectType: \"FooObjectType\",\n },\n properties: { fooSpt: \"fooSpt2\" },\n },\n {\n type: \"deleteObjectForInterface\",\n obj: {\n $apiName: \"FooInterface\",\n $primaryKey: 21,\n $objectType: \"FooObjectType\",\n },\n },\n {\n type: \"addLink\",\n apiName: \"RP\",\n source: { $apiName: \"Task\", $primaryKey: 0 },\n target: { $apiName: \"Person\", $primaryKey: 0 },\n },\n {\n type: \"addLink\",\n apiName: \"RP\",\n source: { $apiName: \"Task\", $primaryKey: 0 },\n target: { $apiName: \"Person\", $primaryKey: 1 },\n },\n {\n type: \"addLink\",\n apiName: \"RP\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Person\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"RP\",\n source: { $apiName: \"Task\", $primaryKey: 0 },\n target: { $apiName: \"Person\", $primaryKey: 1 },\n },\n {\n type: \"addLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 0 },\n },\n {\n type: \"addLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 1 },\n },\n {\n type: \"addLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 0 },\n },\n {\n type: \"addLink\",\n apiName: \"occupants\",\n source: { $apiName: \"Office\", $primaryKey: \"2\" },\n target: { $apiName: \"Employee\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"occupants\",\n source: { $apiName: \"Office\", $primaryKey: \"2\" },\n target: { $apiName: \"Employee\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"occupants\",\n source: { $apiName: \"Office\", $primaryKey: \"2\" },\n target: { $apiName: \"Employee\", $primaryKey: 3 },\n },\n ]);\n });\n\n it(\"prevents bad link edits\", () => {\n // @ts-expect-error\n editBatch.link(taskInstance, \"RP\", officeInstance); // Linking to Office instead of Person\n\n editBatch.link(\n taskInstance,\n \"RP\",\n // @ts-expect-error\n [personInstance],\n ); // Using list for non-multiplicity link\n\n editBatch.link(\n { $apiName: \"Task\", $primaryKey: 2 },\n // @ts-expect-error\n \"occupants\",\n employeeInstance,\n ); // Using Office link\n\n editBatch.link(\n { $apiName: \"Office\", $primaryKey: \"2\" },\n \"occupants\",\n // @ts-expect-error\n personInstance,\n ); // Linking to Person instead of Employee\n\n // @ts-expect-error\n editBatch.link(officeInstance, \"Todos\", {\n $apiName: \"Todo\",\n $primaryKey: 0,\n }); // Using Task link\n });\n\n it(\"prevents bad unlink edits\", () => {\n // @ts-expect-error\n editBatch.unlink(taskInstance, \"RP\", officeInstance); // Unlinking Office instead of Person\n\n editBatch.unlink(\n taskInstance,\n \"RP\",\n // @ts-expect-error\n [personInstance],\n ); // Using list for non-multiplicity link\n\n editBatch.unlink(\n { $apiName: \"Task\", $primaryKey: 2 },\n // @ts-expect-error\n \"occupants\",\n employeeInstance,\n ); // Using Office link\n\n editBatch.unlink(\n { $apiName: \"Office\", $primaryKey: \"2\" },\n \"occupants\",\n // @ts-expect-error\n personInstance,\n ); // Unlinking Person instead of Employee\n\n // @ts-expect-error\n editBatch.unlink(officeInstance, \"Todos\", {\n $apiName: \"Todo\",\n $primaryKey: 0,\n }); // Using Task link\n });\n\n it(\"prevents bad update edits\", () => {\n // @ts-expect-error\n editBatch.update(taskInstance, { capacity: 4 }); // Using Office properties\n\n // @ts-expect-error\n editBatch.update({ $apiName: \"Task\", $primaryKey: 2 }, { capacity: 4 }); // Using Office properties\n });\n\n it(\"prevents bad update edits\", () => {\n // @ts-expect-error\n editBatch.update(taskInstance, { capacity: 4 }); // Using Office properties\n\n // @ts-expect-error\n editBatch.update({ $apiName: \"Task\", $primaryKey: 2 }, { capacity: 4 }); // Using Office properties\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createEditBatch.test.js","names":["FooInterface","objectTypeWithAllPropertyTypes","Office","Task","beforeEach","describe","expect","it","vi","createEditBatch","taskInstance","$apiName","$primaryKey","personInstance","officeInstance","employeeInstance","fooInterfaceInstance","$objectType","client","editBatch","fn","create","id","attachment","attachment2","rid","vector","name","delete","update","officeId","capacity","fooSpt","link","unlink","getEdits","toEqual","type","obj","properties","int","apiName","source","target"],"sources":["createEditBatch.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Attachment, Client, Osdk } from \"@osdk/client\";\nimport type { Employee, Person } from \"@osdk/client.test.ontology\";\nimport {\n FooInterface,\n objectTypeWithAllPropertyTypes,\n Office,\n Task,\n} from \"@osdk/client.test.ontology\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { createEditBatch } from \"./createEditBatch.js\";\nimport type { EditBatch } from \"./EditBatch.js\";\nimport type { Edits } from \"./types.js\";\n\ntype TestEditScope =\n | Edits.Object<Task>\n | Edits.Object<Office>\n | Edits.Object<objectTypeWithAllPropertyTypes>\n | Edits.Link<Task, \"RP\">\n | Edits.Link<Task, \"Todos\">\n | Edits.Link<Office, \"occupants\">\n | Edits.Link<Employee, \"visitedOffices\">\n | Edits.Interface<FooInterface>;\n\ndescribe(createEditBatch, () => {\n const taskInstance = {\n $apiName: \"Task\",\n $primaryKey: 2,\n } as Osdk.Instance<Task>;\n\n const personInstance = {\n $apiName: \"Person\",\n $primaryKey: 2,\n } as Osdk.Instance<Person>;\n\n const officeInstance = {\n $apiName: \"Office\",\n $primaryKey: \"2\",\n } as Osdk.Instance<Office>;\n\n const employeeInstance = {\n $apiName: \"Employee\",\n $primaryKey: 2,\n } as Osdk.Instance<Employee>;\n\n const fooInterfaceInstance = {\n $apiName: \"FooInterface\",\n $primaryKey: 21,\n $objectType: \"FooObjectType\",\n } as Osdk.Instance<FooInterface>;\n\n let client: Client;\n\n let editBatch: EditBatch<TestEditScope>;\n\n beforeEach(() => {\n client = vi.fn() as any as Client;\n editBatch = createEditBatch<TestEditScope>(client);\n });\n\n it(\"collects all edits\", () => {\n editBatch.create(objectTypeWithAllPropertyTypes, {\n id: 0,\n attachment: \"ri.foo\",\n attachment2: { rid: \"ri.bar\" } as Attachment,\n vector: [1, 2, 3],\n });\n editBatch.create(Task, { id: 0, name: \"My Task Name\" });\n editBatch.create(Task, { id: 1, name: \"My Other Task Name\" });\n editBatch.create(Task, { id: 3 });\n editBatch.delete({ $apiName: \"Task\", $primaryKey: 0 });\n editBatch.delete(taskInstance);\n editBatch.update({ $apiName: \"Task\", $primaryKey: 0 }, {\n name: \"My New Task Name\",\n });\n editBatch.update(taskInstance, { name: \"My Very New Task Name\" });\n editBatch.update({ $apiName: \"Task\", $primaryKey: 3 }, {});\n editBatch.create(Task, { id: 0, name: \"My Task Name\" });\n editBatch.create(Office, { officeId: \"3\", capacity: 2 });\n editBatch.update({ $apiName: \"Office\", $primaryKey: \"3\" }, { capacity: 4 });\n editBatch.create(FooInterface, {\n $objectType: \"Task\",\n fooSpt: \"created interface\",\n });\n editBatch.update(fooInterfaceInstance, { fooSpt: \"fooSpt\" });\n editBatch.update({\n $apiName: \"FooInterface\",\n $objectType: \"FooObjectType\",\n $primaryKey: 22,\n }, { fooSpt: \"fooSpt2\" });\n editBatch.delete(fooInterfaceInstance);\n\n editBatch.link({ $apiName: \"Employee\", $primaryKey: 0 }, \"visitedOffices\", {\n $apiName: \"Office\",\n $primaryKey: \"Seattle\",\n });\n editBatch.link({ $apiName: \"Employee\", $primaryKey: 0 }, \"visitedOffices\", {\n $apiName: \"Office\",\n $primaryKey: \"Palo Alto\",\n });\n editBatch.link(employeeInstance, \"visitedOffices\", officeInstance);\n editBatch.unlink(\n { $apiName: \"Employee\", $primaryKey: 0 },\n \"visitedOffices\",\n {\n $apiName: \"Office\",\n $primaryKey: \"New York\",\n },\n );\n editBatch.link(taskInstance, \"Todos\", { $apiName: \"Todo\", $primaryKey: 0 });\n editBatch.link(taskInstance, \"Todos\", [\n { $apiName: \"Todo\", $primaryKey: 1 },\n { $apiName: \"Todo\", $primaryKey: 2 },\n ]);\n editBatch.unlink({ $apiName: \"Task\", $primaryKey: 2 }, \"Todos\", {\n $apiName: \"Todo\",\n $primaryKey: 0,\n });\n editBatch.link(officeInstance, \"occupants\", employeeInstance);\n editBatch.unlink(\n { $apiName: \"Office\", $primaryKey: \"Denver\" },\n \"occupants\",\n [employeeInstance, { $apiName: \"Employee\", $primaryKey: 3 }],\n );\n\n expect(editBatch.getEdits()).toEqual([\n {\n type: \"createObject\",\n obj: objectTypeWithAllPropertyTypes,\n properties: {\n id: 0,\n attachment: \"ri.foo\",\n attachment2: { rid: \"ri.bar\" },\n vector: [1, 2, 3],\n },\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 0, name: \"My Task Name\" },\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 1, name: \"My Other Task Name\" },\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 3 },\n },\n { type: \"deleteObject\", obj: { $apiName: \"Task\", $primaryKey: 0 } },\n { type: \"deleteObject\", obj: { $apiName: \"Task\", $primaryKey: 2 } },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Task\", $primaryKey: 0 },\n properties: { name: \"My New Task Name\" },\n },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Task\", $primaryKey: 2 },\n properties: { name: \"My Very New Task Name\" },\n },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Task\", $primaryKey: 3 },\n properties: {},\n },\n {\n type: \"createObject\",\n obj: Task,\n properties: { id: 0, name: \"My Task Name\" },\n },\n {\n type: \"createObject\",\n obj: Office,\n properties: { officeId: \"3\", capacity: 2 },\n },\n {\n type: \"updateObject\",\n obj: { $apiName: \"Office\", $primaryKey: \"3\" },\n properties: { capacity: 4 },\n },\n {\n type: \"createObjectForInterface\",\n int: FooInterface,\n properties: { fooSpt: \"created interface\", $objectType: \"Task\" },\n },\n {\n type: \"updateObjectForInterface\",\n obj: {\n $apiName: \"FooInterface\",\n $primaryKey: 21,\n $objectType: \"FooObjectType\",\n },\n properties: { fooSpt: \"fooSpt\" },\n },\n {\n type: \"updateObjectForInterface\",\n obj: {\n $apiName: \"FooInterface\",\n $primaryKey: 22,\n $objectType: \"FooObjectType\",\n },\n properties: { fooSpt: \"fooSpt2\" },\n },\n {\n type: \"deleteObjectForInterface\",\n obj: {\n $apiName: \"FooInterface\",\n $primaryKey: 21,\n $objectType: \"FooObjectType\",\n },\n },\n {\n type: \"addLink\",\n apiName: \"visitedOffices\",\n source: { $apiName: \"Employee\", $primaryKey: 0 },\n target: { $apiName: \"Office\", $primaryKey: \"Seattle\" },\n },\n {\n type: \"addLink\",\n apiName: \"visitedOffices\",\n source: { $apiName: \"Employee\", $primaryKey: 0 },\n target: { $apiName: \"Office\", $primaryKey: \"Palo Alto\" },\n },\n {\n type: \"addLink\",\n apiName: \"visitedOffices\",\n source: { $apiName: \"Employee\", $primaryKey: 2 },\n target: { $apiName: \"Office\", $primaryKey: \"2\" },\n },\n {\n type: \"removeLink\",\n apiName: \"visitedOffices\",\n source: { $apiName: \"Employee\", $primaryKey: 0 },\n target: { $apiName: \"Office\", $primaryKey: \"New York\" },\n },\n {\n type: \"addLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 0 },\n },\n {\n type: \"addLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 1 },\n },\n {\n type: \"addLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"Todos\",\n source: { $apiName: \"Task\", $primaryKey: 2 },\n target: { $apiName: \"Todo\", $primaryKey: 0 },\n },\n {\n type: \"addLink\",\n apiName: \"occupants\",\n source: { $apiName: \"Office\", $primaryKey: \"2\" },\n target: { $apiName: \"Employee\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"occupants\",\n source: { $apiName: \"Office\", $primaryKey: \"Denver\" },\n target: { $apiName: \"Employee\", $primaryKey: 2 },\n },\n {\n type: \"removeLink\",\n apiName: \"occupants\",\n source: { $apiName: \"Office\", $primaryKey: \"Denver\" },\n target: { $apiName: \"Employee\", $primaryKey: 3 },\n },\n ]);\n });\n\n it(\"prevents bad link edits\", () => {\n // @ts-expect-error\n editBatch.link(taskInstance, \"RP\", officeInstance); // Linking to Office instead of Person\n\n editBatch.link(\n taskInstance,\n \"RP\",\n // @ts-expect-error\n personInstance,\n );\n // Trying to traverse ONE direction\n\n editBatch.link(\n { $apiName: \"Task\", $primaryKey: 2 },\n // @ts-expect-error\n \"occupants\",\n employeeInstance,\n ); // Using Office link\n\n editBatch.link(\n { $apiName: \"Office\", $primaryKey: \"2\" },\n \"occupants\",\n // @ts-expect-error\n personInstance,\n ); // Linking to Person instead of Employee\n\n // @ts-expect-error\n editBatch.link(officeInstance, \"Todos\", {\n $apiName: \"Todo\",\n $primaryKey: 0,\n }); // Using Task link\n });\n\n it(\"prevents bad unlink edits\", () => {\n // @ts-expect-error\n editBatch.unlink(taskInstance, \"RP\", officeInstance); // Unlinking Office instead of Person\n\n editBatch.unlink(\n taskInstance,\n \"RP\",\n // @ts-expect-error\n [personInstance],\n ); // Using list for non-multiplicity link\n\n editBatch.unlink(\n { $apiName: \"Task\", $primaryKey: 2 },\n // @ts-expect-error\n \"occupants\",\n employeeInstance,\n ); // Using Office link\n\n editBatch.unlink(\n { $apiName: \"Office\", $primaryKey: \"2\" },\n \"occupants\",\n // @ts-expect-error\n personInstance,\n ); // Unlinking Person instead of Employee\n\n // @ts-expect-error\n editBatch.unlink(officeInstance, \"Todos\", {\n $apiName: \"Todo\",\n $primaryKey: 0,\n }); // Using Task link\n });\n\n it(\"prevents bad update edits\", () => {\n // @ts-expect-error\n editBatch.update(taskInstance, { capacity: 4 }); // Using Office properties\n\n // @ts-expect-error\n editBatch.update({ $apiName: \"Task\", $primaryKey: 2 }, { capacity: 4 }); // Using Office properties\n });\n\n it(\"prevents bad update edits\", () => {\n // @ts-expect-error\n editBatch.update(taskInstance, { capacity: 4 }); // Using Office properties\n\n // @ts-expect-error\n editBatch.update({ $apiName: \"Task\", $primaryKey: 2 }, { capacity: 4 }); // Using Office properties\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["Edits","isInterfaceLocator","obj","$objectType","$apiName"],"sources":["types.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n InterfaceDefinition,\n ObjectMetadata,\n ObjectTypeDefinition,\n Osdk,\n OsdkObjectCreatePropertyType,\n PropertyKeys,\n} from \"@osdk/client\";\n\nexport type ObjectLocator<\n S extends ObjectTypeDefinition = ObjectTypeDefinition,\n> = {\n $apiName: Osdk.Instance<S>[\"$apiName\"];\n $primaryKey: Osdk.Instance<S>[\"$primaryKey\"];\n};\n\nexport type InterfaceLocator<\n S extends InterfaceDefinition = InterfaceDefinition,\n> = {\n $apiName: Osdk.Instance<S>[\"$apiName\"];\n $objectType: Osdk.Instance<S>[\"$objectType\"];\n $primaryKey: Osdk.Instance<S>[\"$primaryKey\"];\n};\n\nexport namespace Edits {\n export type Object<S extends ObjectTypeDefinition> =\n | CreateObject<S>\n | DeleteObject<S>\n | UpdateObject<S>;\n\n export type Link<\n S extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<S>[\"links\"],\n > = AddLink<S, L> | RemoveLink<S, L>;\n\n export type Interface<S extends InterfaceDefinition> =\n | CreateObjectForInterface<S>\n | UpdateObjectForInterface<S>\n | DeleteObjectForInterface<S>;\n}\n\nexport interface AddLink<\n S extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<S>[\"links\"],\n> {\n type: \"addLink\";\n apiName: L;\n source: ObjectLocator<S>;\n target: CompileTimeMetadata<S>[\"links\"][L] extends\n ObjectMetadata.Link<infer T, any> ? ObjectLocator<T> : never;\n}\n\nexport interface RemoveLink<\n S extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<S>[\"links\"],\n> {\n type: \"removeLink\";\n apiName: L;\n source: ObjectLocator<S>;\n target: CompileTimeMetadata<S>[\"links\"][L] extends\n ObjectMetadata.Link<infer T, any> ? ObjectLocator<T> : never;\n}\n\ntype PartialForOptionalProperties<T> =\n & {\n [K in keyof T as undefined extends T[K] ? K : never]?: T[K];\n }\n & {\n [K in keyof T as undefined extends T[K] ? never : K]-?: T[K];\n };\n\nexport interface CreateObject<S extends ObjectTypeDefinition> {\n type: \"createObject\";\n obj: S;\n properties: PartialForOptionalProperties<\n {\n [P in PropertyKeys<S>]: OsdkObjectCreatePropertyType<\n CompileTimeMetadata<S>[\"properties\"][P]\n >;\n }\n >;\n}\n\nexport interface DeleteObject<S extends ObjectTypeDefinition> {\n type: \"deleteObject\";\n obj: ObjectLocator<S>;\n}\n\nexport interface DeleteObjectForInterface<S extends InterfaceDefinition> {\n type: \"deleteObjectForInterface\";\n obj: InterfaceLocator<S>;\n}\n\nexport interface UpdateObject<S extends ObjectTypeDefinition> {\n type: \"updateObject\";\n obj: ObjectLocator<S>;\n properties: Partial<\n {\n [\n P in Exclude<\n PropertyKeys<S>,\n CompileTimeMetadata<S>[\"primaryKeyApiName\"]\n >\n ]: OsdkObjectCreatePropertyType<CompileTimeMetadata<S>[\"properties\"][P]>;\n }\n >;\n}\n\nexport interface CreateObjectForInterface<S extends InterfaceDefinition> {\n type: \"createObjectForInterface\";\n int: S;\n properties: PartialForOptionalProperties<\n {\n [P in PropertyKeys<S>]: OsdkObjectCreatePropertyType<\n CompileTimeMetadata<S>[\"properties\"][P]\n >;\n } & {\n $objectType: string;\n }\n >;\n}\n\nexport interface UpdateObjectForInterface<S extends InterfaceDefinition> {\n type: \"updateObjectForInterface\";\n obj: InterfaceLocator<S>;\n properties: Partial<\n {\n [P in PropertyKeys<S>]: OsdkObjectCreatePropertyType<\n CompileTimeMetadata<S>[\"properties\"][P]\n >;\n }\n >;\n}\n\nexport type AnyEdit =\n | AddLink<any, any>\n | RemoveLink<any, any>\n | CreateObject<any>\n | DeleteObject<any>\n | UpdateObject<any>\n | CreateObjectForInterface<any>\n | UpdateObjectForInterface<any>\n | DeleteObjectForInterface<any>;\n\n// Check if locator is for an interface by comparing $apiName and $objectType.\n// Both object types and interfaces store the object type API name in $objectType,\n// but interfaces store the interface API name in $apiName.\nexport function isInterfaceLocator(obj: any): obj is InterfaceLocator<any> {\n return obj != null && typeof obj === \"object\"\n && typeof obj.$objectType === \"string\" && typeof obj.$apiName === \"string\"\n && obj.$apiName !== obj.$objectType;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA,WAyCiBA,KAAK;AAwHtB;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,GAAQ,EAAgC;EACzE,OAAOA,GAAG,IAAI,IAAI,IAAI,OAAOA,GAAG,KAAK,QAAQ,IACxC,OAAOA,GAAG,CAACC,WAAW,KAAK,QAAQ,IAAI,OAAOD,GAAG,CAACE,QAAQ,KAAK,QAAQ,IACvEF,GAAG,CAACE,QAAQ,KAAKF,GAAG,CAACC,WAAW;AACvC","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":["Edits","isInterfaceLocator","obj","$objectType","$apiName"],"sources":["types.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n InterfaceDefinition,\n ObjectMetadata,\n ObjectTypeDefinition,\n Osdk,\n OsdkObjectCreatePropertyType,\n PropertyKeys,\n} from \"@osdk/client\";\n\nexport type ObjectLocator<\n S extends ObjectTypeDefinition = ObjectTypeDefinition,\n> = {\n $apiName: Osdk.Instance<S>[\"$apiName\"];\n $primaryKey: Osdk.Instance<S>[\"$primaryKey\"];\n};\n\nexport type InterfaceLocator<\n S extends InterfaceDefinition = InterfaceDefinition,\n> = {\n $apiName: Osdk.Instance<S>[\"$apiName\"];\n $objectType: Osdk.Instance<S>[\"$objectType\"];\n $primaryKey: Osdk.Instance<S>[\"$primaryKey\"];\n};\n\nexport namespace Edits {\n export type Object<S extends ObjectTypeDefinition> =\n | CreateObject<S>\n | DeleteObject<S>\n | UpdateObject<S>;\n\n export type Link<\n S extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<S>[\"links\"],\n > = AddLink<S, L> | RemoveLink<S, L>;\n\n export type Interface<S extends InterfaceDefinition> =\n | CreateObjectForInterface<S>\n | UpdateObjectForInterface<S>\n | DeleteObjectForInterface<S>;\n}\n\nexport interface AddLink<\n S extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<S>[\"links\"],\n> {\n type: \"addLink\";\n apiName: L;\n source: ObjectLocator<S>;\n target: CompileTimeMetadata<S>[\"links\"][L] extends\n ObjectMetadata.Link<infer T, any> ? ObjectLocator<T> : never;\n}\n\nexport interface RemoveLink<\n S extends ObjectTypeDefinition,\n L extends keyof CompileTimeMetadata<S>[\"links\"],\n> {\n type: \"removeLink\";\n apiName: L;\n source: ObjectLocator<S>;\n target: CompileTimeMetadata<S>[\"links\"][L] extends\n ObjectMetadata.Link<infer T, any> ? ObjectLocator<T> : never;\n}\n\ntype PartialForOptionalProperties<T> =\n & {\n [K in keyof T as undefined extends T[K] ? K : never]?: NonNullable<T[K]>;\n }\n & {\n [K in keyof T as undefined extends T[K] ? never : K]-?: T[K];\n };\n\nexport interface CreateObject<S extends ObjectTypeDefinition> {\n type: \"createObject\";\n obj: S;\n properties: PartialForOptionalProperties<\n {\n [P in PropertyKeys<S>]: OsdkObjectCreatePropertyType<\n CompileTimeMetadata<S>[\"properties\"][P]\n >;\n }\n >;\n}\n\nexport interface DeleteObject<S extends ObjectTypeDefinition> {\n type: \"deleteObject\";\n obj: ObjectLocator<S>;\n}\n\nexport interface DeleteObjectForInterface<S extends InterfaceDefinition> {\n type: \"deleteObjectForInterface\";\n obj: InterfaceLocator<S>;\n}\n\nexport interface UpdateObject<S extends ObjectTypeDefinition> {\n type: \"updateObject\";\n obj: ObjectLocator<S>;\n properties: Partial<\n {\n [\n P in Exclude<\n PropertyKeys<S>,\n CompileTimeMetadata<S>[\"primaryKeyApiName\"]\n >\n ]: OsdkObjectCreatePropertyType<CompileTimeMetadata<S>[\"properties\"][P]>;\n }\n >;\n}\n\nexport interface CreateObjectForInterface<S extends InterfaceDefinition> {\n type: \"createObjectForInterface\";\n int: S;\n properties: PartialForOptionalProperties<\n {\n [P in PropertyKeys<S>]: OsdkObjectCreatePropertyType<\n CompileTimeMetadata<S>[\"properties\"][P]\n >;\n } & {\n $objectType: string;\n }\n >;\n}\n\nexport interface UpdateObjectForInterface<S extends InterfaceDefinition> {\n type: \"updateObjectForInterface\";\n obj: InterfaceLocator<S>;\n properties: Partial<\n {\n [P in PropertyKeys<S>]: OsdkObjectCreatePropertyType<\n CompileTimeMetadata<S>[\"properties\"][P]\n >;\n }\n >;\n}\n\nexport type AnyEdit =\n | AddLink<any, any>\n | RemoveLink<any, any>\n | CreateObject<any>\n | DeleteObject<any>\n | UpdateObject<any>\n | CreateObjectForInterface<any>\n | UpdateObjectForInterface<any>\n | DeleteObjectForInterface<any>;\n\n// Check if locator is for an interface by comparing $apiName and $objectType.\n// Both object types and interfaces store the object type API name in $objectType,\n// but interfaces store the interface API name in $apiName.\nexport function isInterfaceLocator(obj: any): obj is InterfaceLocator<any> {\n return obj != null && typeof obj === \"object\"\n && typeof obj.$objectType === \"string\" && typeof obj.$apiName === \"string\"\n && obj.$apiName !== obj.$objectType;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA,WAyCiBA,KAAK;AAwHtB;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,GAAQ,EAAgC;EACzE,OAAOA,GAAG,IAAI,IAAI,IAAI,OAAOA,GAAG,KAAK,QAAQ,IACxC,OAAOA,GAAG,CAACC,WAAW,KAAK,QAAQ,IAAI,OAAOD,GAAG,CAACE,QAAQ,KAAK,QAAQ,IACvEF,GAAG,CAACE,QAAQ,KAAKF,GAAG,CAACC,WAAW;AACvC","ignoreList":[]}
@@ -15,7 +15,7 @@ export type AddLinkTargets<
15
15
  X extends AnyEdit,
16
16
  SOL extends ObjectLocator<any>,
17
17
  A extends string
18
- > = X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, A> ? (X extends AddLink<infer OTD, A> ? (CompileTimeMetadata<OTD>["links"][A]["multiplicity"] extends true ? Array<X["target"]> | X["target"] : X["target"]) : never) : never;
18
+ > = X extends AddLink<ObjectTypeDefinitionForLocator<SOL>, A> ? (X extends AddLink<infer OTD, A> ? (CompileTimeMetadata<OTD>["links"][A]["multiplicity"] extends true ? Array<X["target"]> | X["target"] : never) : never) : never;
19
19
  export type RemoveLinkSources<X extends AnyEdit> = X extends RemoveLink<infer OTD, any> ? ObjectLocator<OTD> : never;
20
20
  export type RemoveLinkApiNames<
21
21
  X extends AnyEdit,
@@ -25,7 +25,7 @@ export type RemoveLinkTargets<
25
25
  X extends AnyEdit,
26
26
  SOL extends ObjectLocator<any>,
27
27
  A extends string
28
- > = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, A> ? (X extends RemoveLink<infer OTD, A> ? (CompileTimeMetadata<OTD>["links"][A]["multiplicity"] extends true ? Array<X["target"]> | X["target"] : X["target"]) : never) : never;
28
+ > = X extends RemoveLink<ObjectTypeDefinitionForLocator<SOL>, A> ? (X extends RemoveLink<infer OTD, A> ? (CompileTimeMetadata<OTD>["links"][A]["multiplicity"] extends true ? Array<X["target"]> | X["target"] : never) : never) : never;
29
29
  export type CreatableObjectOrInterfaceTypes<X extends AnyEdit> = X extends CreateObject<infer OTD> ? OTD : X extends CreateObjectForInterface<infer ID> ? ID : never;
30
30
  export type CreatableObjectOrInterfaceTypeProperties<
31
31
  X extends AnyEdit,
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,qBACA,qBACA,4BACK,cAAe;AACtB,cACE,SACA,SACA,cACA,0BACA,cACA,0BACA,kBACA,eACA,YACA,cACA,gCACK,YAAa;UAGV,+BAA+B,WAAW,4BAC1C,qBACV;CACE,SAAS,GAAG;AACb;UAES,8BAA8B,WAAW,4BACzC,oBACV;CACE,SAAS,GAAG;AACb;AAGD,YAAY,eAAe,UAAU,WAAW,UAC9C,cAAc,YAAY,cAAc;AAE1C,YAAY;CAAgB,UAAU;CAAS,YAAY;IACzD,UAAU,QAAQ,+BAA+B,YAAY,KAAK;AAEpE,YAAY;CACV,UAAU;CACV,YAAY;CACZ;IACE,UAAU,QAAQ,+BAA+B,MAAM,MACtD,UAAU,cAAc,KAAK,MAC3B,oBAAoB,KAAK,SAAS,GAAG,wBAAwB,OAC5D,MAAM,EAAE,aAAa,EAAE,YACvB,EAAE;AAKV,YAAY,kBAAkB,UAAU,WAAW,UACjD,iBAAiB,YAAY,cAAc;AAE7C,YAAY;CACV,UAAU;CACV,YAAY;IACV,UAAU,WAAW,+BAA+B,YAAY,KAAK;AAGzE,YAAY;CACV,UAAU;CACV,YAAY;CACZ;IACE,UAAU,WAAW,+BAA+B,MAAM,MACzD,UAAU,iBAAiB,KAAK,MAC9B,oBAAoB,KAAK,SAAS,GAAG,wBAAwB,OAC5D,MAAM,EAAE,aAAa,EAAE,YACvB,EAAE;AAKV,YAAY,gCAAgC,UAAU,WAAW,UAC/D,mBAAmB,OAAO,MACxB,UAAU,+BAA+B,MAAM;AAGnD,YAAY;CACV,UAAU;CACV,WAAW,uBAAuB;IAChC,UAAU,mBAAmB,OAAO,YAAY,KAAK,EAAE,wBACvD,UAAU,+BAA+B,MACvC,WAAW,KAAK,EAAE;AAIxB,YAAY,mCAAmC,UAAU,WAAW,UAClE,mBAAmB,OAAO,cAAc,OACtC,UAAU,+BAA+B,MAAM,iBAAiB;AAIpE,YAAY,mCAAmC,UAAU,WAAW,UAClE,mBAAmB,OAAO,cAAc,OACtC,UAAU,+BAA+B,MAAM,iBAAiB;AAGpE,YAAY;CACV,UAAU;CACV,WAAW;IACT,UAAU,aAAa,+BAA+B,OAAO,EAAE,gBAC/D,UAAU,yBAAyB,8BAA8B,OAC/D,EAAE;AAGR,iBAAiB,UACf,UAAU,iBACV;CACA;EACE,YAAY,eAAe;EAC3B,UAAU,gBAAgB,GAAG;GAE7BA,QAAQ,KACRC,SAAS,GACTC,QAAQ,eAAe,GAAG,KAAK;CAGjC;EACE,YAAY,kBAAkB;EAC9B,UAAU,mBAAmB,GAAG;GAEhCF,QAAQ,KACRC,SAAS,GACTE,QAAQ,kBAAkB,GAAG,KAAK;CAGpC,SAAS,WAAW,gCAAgC,IAClDC,uBAAuB,IACvBC,YAAY,yCAAyC,GAAG;CAG1D,SAAS,WAAW,mCAAmC,IAAIC,KAAK;CAEhE,SAAS,WAAW,mCAAmC,IACrDA,KAAK,IACLC,YAAY,4CAA4C,GAAG;CAG7D,gBAAgB;AACjB","names":["source: SOL","apiName: A","target: AddLinkTargets<X, SOL, A>","target: RemoveLinkTargets<X, SOL, A>","objectOrInterfaceType: OI","properties: CreatableObjectOrInterfaceTypeProperties<X, OI>","obj: OL","properties: UpdatableObjectOrInterfaceLocatorProperties<X, OL>"],"sources":["../../../src/edits/EditBatch.ts"],"version":3,"file":"EditBatch.d.ts"}
1
+ {"mappings":"AAgBA,cACE,qBACA,qBACA,4BACK,cAAe;AACtB,cACE,SACA,SACA,cACA,0BACA,cACA,0BACA,kBACA,eACA,YACA,cACA,gCACK,YAAa;UAGV,+BAA+B,WAAW,4BAC1C,qBACV;CACE,SAAS,GAAG;AACb;UAES,8BAA8B,WAAW,4BACzC,oBACV;CACE,SAAS,GAAG;AACb;AAGD,YAAY,eAAe,UAAU,WAAW,UAC9C,cAAc,YAAY,cAAc;AAE1C,YAAY;CAAgB,UAAU;CAAS,YAAY;IACzD,UAAU,QAAQ,+BAA+B,YAAY,KAAK;AAEpE,YAAY;CACV,UAAU;CACV,YAAY;CACZ;IACE,UAAU,QAAQ,+BAA+B,MAAM,MACtD,UAAU,cAAc,KAAK,MAC3B,oBAAoB,KAAK,SAAS,GAAG,wBAAwB,OAC5D,MAAM,EAAE,aAAa,EAAE;AAM/B,YAAY,kBAAkB,UAAU,WAAW,UACjD,iBAAiB,YAAY,cAAc;AAE7C,YAAY;CACV,UAAU;CACV,YAAY;IACV,UAAU,WAAW,+BAA+B,YAAY,KAAK;AAGzE,YAAY;CACV,UAAU;CACV,YAAY;CACZ;IACE,UAAU,WAAW,+BAA+B,MAAM,MACzD,UAAU,iBAAiB,KAAK,MAC9B,oBAAoB,KAAK,SAAS,GAAG,wBAAwB,OAC5D,MAAM,EAAE,aAAa,EAAE;AAM/B,YAAY,gCAAgC,UAAU,WAAW,UAC/D,mBAAmB,OAAO,MACxB,UAAU,+BAA+B,MAAM;AAGnD,YAAY;CACV,UAAU;CACV,WAAW,uBAAuB;IAChC,UAAU,mBAAmB,OAAO,YAAY,KAAK,EAAE,wBACvD,UAAU,+BAA+B,MACvC,WAAW,KAAK,EAAE;AAIxB,YAAY,mCAAmC,UAAU,WAAW,UAClE,mBAAmB,OAAO,cAAc,OACtC,UAAU,+BAA+B,MAAM,iBAAiB;AAIpE,YAAY,mCAAmC,UAAU,WAAW,UAClE,mBAAmB,OAAO,cAAc,OACtC,UAAU,+BAA+B,MAAM,iBAAiB;AAGpE,YAAY;CACV,UAAU;CACV,WAAW;IACT,UAAU,aAAa,+BAA+B,OAAO,EAAE,gBAC/D,UAAU,yBAAyB,8BAA8B,OAC/D,EAAE;AAGR,iBAAiB,UACf,UAAU,iBACV;CACA;EACE,YAAY,eAAe;EAC3B,UAAU,gBAAgB,GAAG;GAE7BA,QAAQ,KACRC,SAAS,GACTC,QAAQ,eAAe,GAAG,KAAK;CAGjC;EACE,YAAY,kBAAkB;EAC9B,UAAU,mBAAmB,GAAG;GAEhCF,QAAQ,KACRC,SAAS,GACTE,QAAQ,kBAAkB,GAAG,KAAK;CAGpC,SAAS,WAAW,gCAAgC,IAClDC,uBAAuB,IACvBC,YAAY,yCAAyC,GAAG;CAG1D,SAAS,WAAW,mCAAmC,IAAIC,KAAK;CAEhE,SAAS,WAAW,mCAAmC,IACrDA,KAAK,IACLC,YAAY,4CAA4C,GAAG;CAG7D,gBAAgB;AACjB","names":["source: SOL","apiName: A","target: AddLinkTargets<X, SOL, A>","target: RemoveLinkTargets<X, SOL, A>","objectOrInterfaceType: OI","properties: CreatableObjectOrInterfaceTypeProperties<X, OI>","obj: OL","properties: UpdatableObjectOrInterfaceLocatorProperties<X, OL>"],"sources":["../../../src/edits/EditBatch.ts"],"version":3,"file":"EditBatch.d.ts"}
@@ -34,7 +34,7 @@ export interface RemoveLink<
34
34
  source: ObjectLocator<S>;
35
35
  target: CompileTimeMetadata<S>["links"][L] extends ObjectMetadata.Link<infer T, any> ? ObjectLocator<T> : never;
36
36
  }
37
- type PartialForOptionalProperties<T> = { [K in keyof T as undefined extends T[K] ? K : never]? : T[K] } & { [K in keyof T as undefined extends T[K] ? never : K]-? : T[K] };
37
+ type PartialForOptionalProperties<T> = { [K in keyof T as undefined extends T[K] ? K : never]? : NonNullable<T[K]> } & { [K in keyof T as undefined extends T[K] ? never : K]-? : T[K] };
38
38
  export interface CreateObject<S extends ObjectTypeDefinition> {
39
39
  type: "createObject";
40
40
  obj: S;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,qBACA,qBACA,gBACA,sBACA,MACA,8BACA,oBACK,cAAe;AAEtB,YAAY,cACV,UAAU,uBAAuB,wBAC/B;CACF,UAAU,KAAK,SAAS,GAAG;CAC3B,aAAa,KAAK,SAAS,GAAG;AAC/B;AAED,YAAY,iBACV,UAAU,sBAAsB,uBAC9B;CACF,UAAU,KAAK,SAAS,GAAG;CAC3B,aAAa,KAAK,SAAS,GAAG;CAC9B,aAAa,KAAK,SAAS,GAAG;AAC/B;AAED,yBAAiB;MACH,OAAO,UAAU,wBACzB,aAAa,KACb,aAAa,KACb,aAAa;MAEL;EACV,UAAU;EACV,gBAAgB,oBAAoB,GAAG;KACrC,QAAQ,GAAG,KAAK,WAAW,GAAG;MAEtB,UAAU,UAAU,uBAC5B,yBAAyB,KACzB,yBAAyB,KACzB,yBAAyB;;AAG/B,iBAAiB;CACf,UAAU;CACV,gBAAgB,oBAAoB,GAAG;EACvC;CACA,MAAM;CACN,SAAS;CACT,QAAQ,cAAc;CACtB,QAAQ,oBAAoB,GAAG,SAAS,WACtC,eAAe,WAAW,UAAU,cAAc;AACrD;AAED,iBAAiB;CACf,UAAU;CACV,gBAAgB,oBAAoB,GAAG;EACvC;CACA,MAAM;CACN,SAAS;CACT,QAAQ,cAAc;CACtB,QAAQ,oBAAoB,GAAG,SAAS,WACtC,eAAe,WAAW,UAAU,cAAc;AACrD;KAEI,6BAA6B,QAE7B,WAAW,uBAAuB,EAAE,KAAK,cAAa,EAAE,UAGxD,WAAW,uBAAuB,EAAE,aAAa,OAAM,EAAE;AAG9D,iBAAiB,aAAa,UAAU,sBAAsB;CAC5D,MAAM;CACN,KAAK;CACL,YAAY,gCAEP,KAAK,aAAa,MAAK,6BACtB,oBAAoB,GAAG,cAAc;AAI5C;AAED,iBAAiB,aAAa,UAAU,sBAAsB;CAC5D,MAAM;CACN,KAAK,cAAc;AACpB;AAED,iBAAiB,yBAAyB,UAAU,qBAAqB;CACvE,MAAM;CACN,KAAK,iBAAiB;AACvB;AAED,iBAAiB,aAAa,UAAU,sBAAsB;CAC5D,MAAM;CACN,KAAK,cAAc;CACnB,YAAY,WAGN,KAAK,QACH,aAAa,IACb,oBAAoB,GAAG,yBAExB,6BAA6B,oBAAoB,GAAG,cAAc;AAG1E;AAED,iBAAiB,yBAAyB,UAAU,qBAAqB;CACvE,MAAM;CACN,KAAK;CACL,YAAY,gCAEP,KAAK,aAAa,MAAK,6BACtB,oBAAoB,GAAG,cAAc,QAErC;EACF;CACD;AAEJ;AAED,iBAAiB,yBAAyB,UAAU,qBAAqB;CACvE,MAAM;CACN,KAAK,iBAAiB;CACtB,YAAY,WAEP,KAAK,aAAa,MAAK,6BACtB,oBAAoB,GAAG,cAAc;AAI5C;AAED,YAAY,UACR,oBACA,uBACA,oBACA,oBACA,oBACA,gCACA,gCACA;AAKJ,OAAO,iBAAS,mBAAmBA,WAAW,OAAO","names":["obj: any"],"sources":["../../../src/edits/types.ts"],"version":3,"file":"types.d.ts"}
1
+ {"mappings":"AAgBA,cACE,qBACA,qBACA,gBACA,sBACA,MACA,8BACA,oBACK,cAAe;AAEtB,YAAY,cACV,UAAU,uBAAuB,wBAC/B;CACF,UAAU,KAAK,SAAS,GAAG;CAC3B,aAAa,KAAK,SAAS,GAAG;AAC/B;AAED,YAAY,iBACV,UAAU,sBAAsB,uBAC9B;CACF,UAAU,KAAK,SAAS,GAAG;CAC3B,aAAa,KAAK,SAAS,GAAG;CAC9B,aAAa,KAAK,SAAS,GAAG;AAC/B;AAED,yBAAiB;MACH,OAAO,UAAU,wBACzB,aAAa,KACb,aAAa,KACb,aAAa;MAEL;EACV,UAAU;EACV,gBAAgB,oBAAoB,GAAG;KACrC,QAAQ,GAAG,KAAK,WAAW,GAAG;MAEtB,UAAU,UAAU,uBAC5B,yBAAyB,KACzB,yBAAyB,KACzB,yBAAyB;;AAG/B,iBAAiB;CACf,UAAU;CACV,gBAAgB,oBAAoB,GAAG;EACvC;CACA,MAAM;CACN,SAAS;CACT,QAAQ,cAAc;CACtB,QAAQ,oBAAoB,GAAG,SAAS,WACtC,eAAe,WAAW,UAAU,cAAc;AACrD;AAED,iBAAiB;CACf,UAAU;CACV,gBAAgB,oBAAoB,GAAG;EACvC;CACA,MAAM;CACN,SAAS;CACT,QAAQ,cAAc;CACtB,QAAQ,oBAAoB,GAAG,SAAS,WACtC,eAAe,WAAW,UAAU,cAAc;AACrD;KAEI,6BAA6B,QAE7B,WAAW,uBAAuB,EAAE,KAAK,cAAa,YAAY,EAAE,WAGpE,WAAW,uBAAuB,EAAE,aAAa,OAAM,EAAE;AAG9D,iBAAiB,aAAa,UAAU,sBAAsB;CAC5D,MAAM;CACN,KAAK;CACL,YAAY,gCAEP,KAAK,aAAa,MAAK,6BACtB,oBAAoB,GAAG,cAAc;AAI5C;AAED,iBAAiB,aAAa,UAAU,sBAAsB;CAC5D,MAAM;CACN,KAAK,cAAc;AACpB;AAED,iBAAiB,yBAAyB,UAAU,qBAAqB;CACvE,MAAM;CACN,KAAK,iBAAiB;AACvB;AAED,iBAAiB,aAAa,UAAU,sBAAsB;CAC5D,MAAM;CACN,KAAK,cAAc;CACnB,YAAY,WAGN,KAAK,QACH,aAAa,IACb,oBAAoB,GAAG,yBAExB,6BAA6B,oBAAoB,GAAG,cAAc;AAG1E;AAED,iBAAiB,yBAAyB,UAAU,qBAAqB;CACvE,MAAM;CACN,KAAK;CACL,YAAY,gCAEP,KAAK,aAAa,MAAK,6BACtB,oBAAoB,GAAG,cAAc,QAErC;EACF;CACD;AAEJ;AAED,iBAAiB,yBAAyB,UAAU,qBAAqB;CACvE,MAAM;CACN,KAAK,iBAAiB;CACtB,YAAY,WAEP,KAAK,aAAa,MAAK,6BACtB,oBAAoB,GAAG,cAAc;AAI5C;AAED,YAAY,UACR,oBACA,uBACA,oBACA,oBACA,oBACA,gCACA,gCACA;AAKJ,OAAO,iBAAS,mBAAmBA,WAAW,OAAO","names":["obj: any"],"sources":["../../../src/edits/types.ts"],"version":3,"file":"types.d.ts"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osdk/functions",
3
- "version": "1.3.0-beta.6",
3
+ "version": "1.4.0-beta.1",
4
4
  "description": "",
5
5
  "access": "public",
6
6
  "license": "Apache-2.0",
@@ -52,7 +52,7 @@
52
52
  "@types/geojson": "^7946.0.16"
53
53
  },
54
54
  "peerDependencies": {
55
- "@osdk/client": "^2.5.0-beta.7"
55
+ "@osdk/client": "^2.6.0-beta.1"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@microsoft/api-documenter": "^7.26.32",
@@ -61,10 +61,10 @@
61
61
  "p-defer": "^4.0.1",
62
62
  "ts-expect": "^1.3.0",
63
63
  "typescript": "~5.5.4",
64
- "@osdk/client.test.ontology": "~2.5.0-beta.7",
65
- "@osdk/monorepo.api-extractor": "~0.4.0-beta.1",
66
- "@osdk/monorepo.tsconfig": "~0.4.0-beta.1",
67
- "@osdk/shared.test": "~2.5.0-beta.5"
64
+ "@osdk/client.test.ontology": "~2.6.0-beta.1",
65
+ "@osdk/monorepo.api-extractor": "~0.5.0-beta.1",
66
+ "@osdk/monorepo.tsconfig": "~0.5.0-beta.1",
67
+ "@osdk/shared.test": "~2.6.0-beta.1"
68
68
  },
69
69
  "publishConfig": {
70
70
  "access": "public"