@osdk/functions 1.4.0-beta.3 → 1.4.0-beta.5

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,21 @@
1
1
  # @osdk/functions
2
2
 
3
+ ## 1.4.0-beta.5
4
+
5
+ ### Minor Changes
6
+
7
+ - b307201: Add edits support for media reference.
8
+
9
+ ### Patch Changes
10
+
11
+ - @osdk/client@2.6.0-beta.9
12
+
13
+ ## 1.4.0-beta.4
14
+
15
+ ### Minor Changes
16
+
17
+ - 7f9f123: Add foundry hostname util
18
+
3
19
  ## 1.4.0-beta.3
4
20
 
5
21
  ### Minor Changes
@@ -52,6 +52,17 @@ describe(createEditBatch, () => {
52
52
  attachment2: {
53
53
  rid: "ri.bar"
54
54
  },
55
+ mediaReference: {
56
+ mimeType: "myTime",
57
+ reference: {
58
+ type: "mediaSetViewItem",
59
+ mediaSetViewItem: {
60
+ mediaItemRid: "rid.something",
61
+ mediaSetRid: "rid.something2",
62
+ mediaSetViewRid: "rid.something3"
63
+ }
64
+ }
65
+ },
55
66
  vector: [1, 2, 3]
56
67
  });
57
68
  editBatch.create(Task, {
@@ -169,6 +180,17 @@ describe(createEditBatch, () => {
169
180
  attachment2: {
170
181
  rid: "ri.bar"
171
182
  },
183
+ mediaReference: {
184
+ mimeType: "myTime",
185
+ reference: {
186
+ type: "mediaSetViewItem",
187
+ mediaSetViewItem: {
188
+ mediaItemRid: "rid.something",
189
+ mediaSetRid: "rid.something2",
190
+ mediaSetViewRid: "rid.something3"
191
+ }
192
+ }
193
+ },
172
194
  vector: [1, 2, 3]
173
195
  }
174
196
  }, {
@@ -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","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
+ {"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","mediaReference","mimeType","reference","type","mediaSetViewItem","mediaItemRid","mediaSetRid","mediaSetViewRid","vector","name","delete","update","officeId","capacity","fooSpt","link","unlink","getEdits","toEqual","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 mediaReference: {\n mimeType: \"myTime\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaItemRid: \"rid.something\",\n mediaSetRid: \"rid.something2\",\n mediaSetViewRid: \"rid.something3\",\n },\n },\n },\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 mediaReference: {\n mimeType: \"myTime\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaItemRid: \"rid.something\",\n mediaSetRid: \"rid.something2\",\n mediaSetViewRid: \"rid.something3\",\n },\n },\n },\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":[]}
@@ -15,4 +15,5 @@
15
15
  */
16
16
 
17
17
  export { createWriteableClient } from "../transactions/createWriteableClient.js";
18
+ export { getApiGatewayBaseUrl } from "../utils/getApiGatewayBaseUrl.js";
18
19
  //# sourceMappingURL=unstable-do-not-use.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unstable-do-not-use.js","names":["createWriteableClient"],"sources":["unstable-do-not-use.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\nexport { createWriteableClient } from \"../transactions/createWriteableClient.js\";\nexport type { WriteableClient } from \"../transactions/WriteableClient.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,qBAAqB,QAAQ,0CAA0C","ignoreList":[]}
1
+ {"version":3,"file":"unstable-do-not-use.js","names":["createWriteableClient","getApiGatewayBaseUrl"],"sources":["unstable-do-not-use.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\nexport { createWriteableClient } from \"../transactions/createWriteableClient.js\";\nexport type { WriteableClient } from \"../transactions/WriteableClient.js\";\nexport { getApiGatewayBaseUrl } from \"../utils/getApiGatewayBaseUrl.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,qBAAqB,QAAQ,0CAA0C;AAEhF,SAASC,oBAAoB,QAAQ,kCAAkC","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ /*
2
+ * Copyright 2024 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { readFileSync } from "fs";
18
+ import { parse as parseYaml } from "yaml";
19
+ const FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR = "FOUNDRY_SERVICE_DISCOVERY_V2";
20
+ const API_GATEWAY_SERVICE = "api-gateway";
21
+ /**
22
+ * Type guard to check if config is an object with uris property
23
+ */
24
+ function hasUrisProperty(config) {
25
+ return !Array.isArray(config) && "uris" in config && Array.isArray(config.uris) && config.uris.every(uri => typeof uri === "string");
26
+ }
27
+
28
+ /**
29
+ * Extracts URIs from either array or object format
30
+ */
31
+ function extractUris(config) {
32
+ return hasUrisProperty(config) ? config.uris : config;
33
+ }
34
+
35
+ /**
36
+ * Retrieves the API Gateway base URL from the Function's environment.
37
+ *
38
+ * This function is intended to be used only from within a function. Usage of this utility elsewhere may result
39
+ * in errors since the environment may not be properly configured.
40
+ *
41
+ * @returns The API Gateway base URL (e.g., "https://example.palantirfoundry.com")
42
+ * @throws Error if the API Gateway base URL has not been properly configured in the function's environment.
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const baseUrl = getApiGatewayBaseUrl();
47
+ * // Returns: "https://example.palantirfoundry.com"
48
+ * ```
49
+ */
50
+ export function getApiGatewayBaseUrl() {
51
+ const filePath = process.env[FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR];
52
+ if (!filePath) {
53
+ throw new Error(`${FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR} environment variable is not set`);
54
+ }
55
+ let fileContent;
56
+ try {
57
+ fileContent = readFileSync(filePath, "utf-8");
58
+ } catch (error) {
59
+ const errorMessage = error instanceof Error ? error.message : String(error);
60
+ throw new Error(`Failed to read service discovery file at ${filePath}: ${errorMessage}`);
61
+ }
62
+ let discovery;
63
+ try {
64
+ discovery = parseYaml(fileContent);
65
+ } catch (error) {
66
+ const errorMessage = error instanceof Error ? error.message : String(error);
67
+ throw new Error(`Failed to parse service discovery YAML file at ${filePath}: ${errorMessage}`);
68
+ }
69
+ const apiGatewayConfig = discovery[API_GATEWAY_SERVICE];
70
+ if (!apiGatewayConfig) {
71
+ throw new Error(`${API_GATEWAY_SERVICE} service not found in service discovery file`);
72
+ }
73
+ const uris = extractUris(apiGatewayConfig);
74
+ if (uris.length === 0) {
75
+ throw new Error(`No URIs found for ${API_GATEWAY_SERVICE} service in service discovery file`);
76
+ }
77
+ return uris[0];
78
+ }
79
+ //# sourceMappingURL=getApiGatewayBaseUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getApiGatewayBaseUrl.js","names":["readFileSync","parse","parseYaml","FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR","API_GATEWAY_SERVICE","hasUrisProperty","config","Array","isArray","uris","every","uri","extractUris","getApiGatewayBaseUrl","filePath","process","env","Error","fileContent","error","errorMessage","message","String","discovery","apiGatewayConfig","length"],"sources":["getApiGatewayBaseUrl.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { readFileSync } from \"fs\";\nimport { parse as parseYaml } from \"yaml\";\n\nconst FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR =\n \"FOUNDRY_SERVICE_DISCOVERY_V2\" as const;\nconst API_GATEWAY_SERVICE = \"api-gateway\" as const;\n\ntype ServiceConfig = string[] | { uris: string[] };\n\ninterface ServiceDiscoveryConfig {\n [serviceName: string]: ServiceConfig;\n}\n\n/**\n * Type guard to check if config is an object with uris property\n */\nfunction hasUrisProperty(config: ServiceConfig): config is { uris: string[] } {\n return !Array.isArray(config)\n && \"uris\" in config\n && Array.isArray(config.uris)\n && config.uris.every((uri) => typeof uri === \"string\");\n}\n\n/**\n * Extracts URIs from either array or object format\n */\nfunction extractUris(config: ServiceConfig): string[] {\n return hasUrisProperty(config) ? config.uris : config;\n}\n\n/**\n * Retrieves the API Gateway base URL from the Function's environment.\n *\n * This function is intended to be used only from within a function. Usage of this utility elsewhere may result\n * in errors since the environment may not be properly configured.\n *\n * @returns The API Gateway base URL (e.g., \"https://example.palantirfoundry.com\")\n * @throws Error if the API Gateway base URL has not been properly configured in the function's environment.\n *\n * @example\n * ```typescript\n * const baseUrl = getApiGatewayBaseUrl();\n * // Returns: \"https://example.palantirfoundry.com\"\n * ```\n */\nexport function getApiGatewayBaseUrl(): string {\n const filePath = process.env[FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR];\n\n if (!filePath) {\n throw new Error(\n `${FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR} environment variable is not set`,\n );\n }\n\n let fileContent: string;\n try {\n fileContent = readFileSync(filePath, \"utf-8\");\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Failed to read service discovery file at ${filePath}: ${errorMessage}`,\n );\n }\n\n let discovery: ServiceDiscoveryConfig;\n try {\n discovery = parseYaml(fileContent) as ServiceDiscoveryConfig;\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Failed to parse service discovery YAML file at ${filePath}: ${errorMessage}`,\n );\n }\n\n const apiGatewayConfig = discovery[API_GATEWAY_SERVICE];\n\n if (!apiGatewayConfig) {\n throw new Error(\n `${API_GATEWAY_SERVICE} service not found in service discovery file`,\n );\n }\n\n const uris = extractUris(apiGatewayConfig);\n\n if (uris.length === 0) {\n throw new Error(\n `No URIs found for ${API_GATEWAY_SERVICE} service in service discovery file`,\n );\n }\n\n return uris[0];\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,YAAY,QAAQ,IAAI;AACjC,SAASC,KAAK,IAAIC,SAAS,QAAQ,MAAM;AAEzC,MAAMC,oCAAoC,GACxC,8BAAuC;AACzC,MAAMC,mBAAmB,GAAG,aAAsB;AAQlD;AACA;AACA;AACA,SAASC,eAAeA,CAACC,MAAqB,EAAgC;EAC5E,OAAO,CAACC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,IACxB,MAAM,IAAIA,MAAM,IAChBC,KAAK,CAACC,OAAO,CAACF,MAAM,CAACG,IAAI,CAAC,IAC1BH,MAAM,CAACG,IAAI,CAACC,KAAK,CAAEC,GAAG,IAAK,OAAOA,GAAG,KAAK,QAAQ,CAAC;AAC1D;;AAEA;AACA;AACA;AACA,SAASC,WAAWA,CAACN,MAAqB,EAAY;EACpD,OAAOD,eAAe,CAACC,MAAM,CAAC,GAAGA,MAAM,CAACG,IAAI,GAAGH,MAAM;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASO,oBAAoBA,CAAA,EAAW;EAC7C,MAAMC,QAAQ,GAAGC,OAAO,CAACC,GAAG,CAACb,oCAAoC,CAAC;EAElE,IAAI,CAACW,QAAQ,EAAE;IACb,MAAM,IAAIG,KAAK,CACb,GAAGd,oCAAoC,kCACzC,CAAC;EACH;EAEA,IAAIe,WAAmB;EACvB,IAAI;IACFA,WAAW,GAAGlB,YAAY,CAACc,QAAQ,EAAE,OAAO,CAAC;EAC/C,CAAC,CAAC,OAAOK,KAAK,EAAE;IACd,MAAMC,YAAY,GAAGD,KAAK,YAAYF,KAAK,GAAGE,KAAK,CAACE,OAAO,GAAGC,MAAM,CAACH,KAAK,CAAC;IAC3E,MAAM,IAAIF,KAAK,CACb,4CAA4CH,QAAQ,KAAKM,YAAY,EACvE,CAAC;EACH;EAEA,IAAIG,SAAiC;EACrC,IAAI;IACFA,SAAS,GAAGrB,SAAS,CAACgB,WAAW,CAA2B;EAC9D,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,MAAMC,YAAY,GAAGD,KAAK,YAAYF,KAAK,GAAGE,KAAK,CAACE,OAAO,GAAGC,MAAM,CAACH,KAAK,CAAC;IAC3E,MAAM,IAAIF,KAAK,CACb,kDAAkDH,QAAQ,KAAKM,YAAY,EAC7E,CAAC;EACH;EAEA,MAAMI,gBAAgB,GAAGD,SAAS,CAACnB,mBAAmB,CAAC;EAEvD,IAAI,CAACoB,gBAAgB,EAAE;IACrB,MAAM,IAAIP,KAAK,CACb,GAAGb,mBAAmB,8CACxB,CAAC;EACH;EAEA,MAAMK,IAAI,GAAGG,WAAW,CAACY,gBAAgB,CAAC;EAE1C,IAAIf,IAAI,CAACgB,MAAM,KAAK,CAAC,EAAE;IACrB,MAAM,IAAIR,KAAK,CACb,qBAAqBb,mBAAmB,oCAC1C,CAAC;EACH;EAEA,OAAOK,IAAI,CAAC,CAAC,CAAC;AAChB","ignoreList":[]}
@@ -2,6 +2,8 @@
2
2
 
3
3
  var chunk4DCWE2WY_cjs = require('../chunk-4DCWE2WY.cjs');
4
4
  var unstableDoNotUse = require('@osdk/client/unstable-do-not-use');
5
+ var fs = require('fs');
6
+ var yaml = require('yaml');
5
7
 
6
8
  // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.38.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyTransaction.js
7
9
  var OntologyTransaction_exports = {};
@@ -196,7 +198,45 @@ function createWriteableClient(...args) {
196
198
  });
197
199
  return writeableClient;
198
200
  }
201
+ var FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR = "FOUNDRY_SERVICE_DISCOVERY_V2";
202
+ var API_GATEWAY_SERVICE = "api-gateway";
203
+ function hasUrisProperty(config) {
204
+ return !Array.isArray(config) && "uris" in config && Array.isArray(config.uris) && config.uris.every((uri) => typeof uri === "string");
205
+ }
206
+ function extractUris(config) {
207
+ return hasUrisProperty(config) ? config.uris : config;
208
+ }
209
+ function getApiGatewayBaseUrl() {
210
+ const filePath = process.env[FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR];
211
+ if (!filePath) {
212
+ throw new Error(`${FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR} environment variable is not set`);
213
+ }
214
+ let fileContent;
215
+ try {
216
+ fileContent = fs.readFileSync(filePath, "utf-8");
217
+ } catch (error) {
218
+ const errorMessage = error instanceof Error ? error.message : String(error);
219
+ throw new Error(`Failed to read service discovery file at ${filePath}: ${errorMessage}`);
220
+ }
221
+ let discovery;
222
+ try {
223
+ discovery = yaml.parse(fileContent);
224
+ } catch (error) {
225
+ const errorMessage = error instanceof Error ? error.message : String(error);
226
+ throw new Error(`Failed to parse service discovery YAML file at ${filePath}: ${errorMessage}`);
227
+ }
228
+ const apiGatewayConfig = discovery[API_GATEWAY_SERVICE];
229
+ if (!apiGatewayConfig) {
230
+ throw new Error(`${API_GATEWAY_SERVICE} service not found in service discovery file`);
231
+ }
232
+ const uris = extractUris(apiGatewayConfig);
233
+ if (uris.length === 0) {
234
+ throw new Error(`No URIs found for ${API_GATEWAY_SERVICE} service in service discovery file`);
235
+ }
236
+ return uris[0];
237
+ }
199
238
 
200
239
  exports.createWriteableClient = createWriteableClient;
240
+ exports.getApiGatewayBaseUrl = getApiGatewayBaseUrl;
201
241
  //# sourceMappingURL=unstable-do-not-use.cjs.map
202
242
  //# sourceMappingURL=unstable-do-not-use.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/.pnpm/@osdk+foundry.ontologies@2.38.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyTransaction.js","../../../src/transactions/WriteableClient.ts","../../../src/transactions/EditRequestManager.ts","../../../src/transactions/toPropertyDataValue.ts","../../../src/transactions/createWriteableClient.ts"],"names":["__export","foundryPlatformFetch","createClientWithTransaction"],"mappings":"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","file":"unstable-do-not-use.cjs","sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { foundryPlatformFetch as $foundryPlatformFetch } from \"@osdk/shared.net.platformapi\";\n//\nconst _postEdits = [1, \"/v2/ontologies/{0}/transactions/{1}/edits\", 3];\n/**\n * Applies a set of edits to a transaction in order.\n *\n * @alpha\n *\n * Required Scopes: [api:ontologies-read]\n * URL: /v2/ontologies/{ontology}/transactions/{transactionRid}/edits\n */\nexport function postEdits($ctx, ...args) {\n return $foundryPlatformFetch($ctx, _postEdits, ...args);\n}","/*\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\n/** @internal */\nexport const writeableClientContext = Symbol(\"writeableClientContext\");","/*\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 { OntologyTransactions } from \"@osdk/foundry.ontologies\";\nimport { writeableClientContext } from \"./WriteableClient.js\";\nexport class EditRequestManager {\n pendingEdits = [];\n inFlightRequest = null;\n queuedRequest = null;\n editTimeout = null;\n constructor(client) {\n this.client = client;\n }\n postEdit(edit) {\n if (this.inFlightRequest) {\n if (this.editTimeout) {\n // This means we are in the same tick that the request was created, meaning we can just add to the same request\n this.pendingEdits.push(edit);\n return this.inFlightRequest;\n }\n if (this.queuedRequest) {\n // This means we already have a queued request that will run after the inFlightRequest finishes, so we can just add to that one\n this.pendingEdits.push(edit);\n return this.queuedRequest;\n }\n // This means a request has already been sent to the wire but not been returned, so we need to queue up a new request for when that one finishes\n this.queuedRequest = this.inFlightRequest.then(async () => {\n this.inFlightRequest = this.queuedRequest;\n this.queuedRequest = null;\n this.pendingEdits.push(edit);\n await this.dispatchRequest();\n });\n return this.queuedRequest;\n } else {\n // There is no request in flight, which means we should create a new one\n this.inFlightRequest = this.createInitialPromiseWithTimeout(edit);\n return this.inFlightRequest;\n }\n }\n createInitialPromiseWithTimeout(edit) {\n return new Promise(resolve => {\n this.pendingEdits.push(edit);\n this.editTimeout = setTimeout(async () => {\n this.editTimeout = null;\n await this.dispatchRequest();\n if (!this.queuedRequest) {\n // The queued request will see this inFlightRequest resolve and should set the inFlightRequest to itself\n this.inFlightRequest = null;\n }\n resolve();\n }, 0);\n });\n }\n async dispatchRequest() {\n const copiedEdits = this.pendingEdits;\n this.pendingEdits = [];\n await OntologyTransactions.postEdits(this.client, await this.client[writeableClientContext].ontologyRid, this.client[writeableClientContext].transactionRid, {\n edits: copiedEdits\n }, {\n preview: true\n });\n }\n}","/*\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\nexport function toPropertyDataValue(value) {\n if (value == null) {\n return null; // This differs from how actions handles null, which expects a specific enum value.\n }\n if (Array.isArray(value)) {\n return value.map(item => toPropertyDataValue(item));\n }\n if (isPoint(value)) {\n return toPropertyDataValue(`${value.coordinates[1]},${value.coordinates[0]}`);\n }\n if (typeof value === \"object\") {\n const result = {};\n for (const key in value) {\n result[key] = toPropertyDataValue(value[key]);\n }\n return result;\n }\n\n // expected to pass through - boolean, byte, date, decimal, float, double, integer, long, short, string, timestamp, object type reference\n return value;\n}\nfunction isPoint(o) {\n return o && typeof o === \"object\" && \"type\" in o && o.type === \"Point\" && \"coordinates\" in o && o.coordinates.length === 2;\n}","/*\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 { createClientWithTransaction } from \"@osdk/client/unstable-do-not-use\";\nimport { EditRequestManager } from \"./EditRequestManager.js\";\nimport { toPropertyDataValue } from \"./toPropertyDataValue.js\";\nimport { writeableClientContext } from \"./WriteableClient.js\";\nexport function createWriteableClient(...args) {\n const transactionRid = args[0];\n const ontologyRid = args[2];\n const client = createClientWithTransaction(...args);\n const editRequestManager = new EditRequestManager(client) // This cast is safe because we create the writeable client properties below.\n ;\n\n // We use define properties because the client has non-enumerable properties that we want to preserve.\n const writeableClient = Object.defineProperties(client, {\n link: {\n value: function (source, apiName, target) {\n if (!Array.isArray(target)) {\n return editRequestManager.postEdit({\n type: \"addLink\",\n objectType: source.$apiName,\n primaryKey: source.$primaryKey,\n linkType: apiName,\n linkedObjectPrimaryKey: target.$primaryKey\n });\n }\n const promises = [];\n for (const elem of target) {\n promises.push(editRequestManager.postEdit({\n type: \"addLink\",\n objectType: source.$apiName,\n primaryKey: source.$primaryKey,\n linkType: apiName,\n linkedObjectPrimaryKey: elem.$primaryKey\n }));\n }\n return Promise.all(promises).then(() => undefined);\n }\n },\n unlink: {\n value: function (source, apiName, target) {\n if (!Array.isArray(target)) {\n return editRequestManager.postEdit({\n type: \"removeLink\",\n objectType: source.$apiName,\n primaryKey: source.$primaryKey,\n linkType: apiName,\n linkedObjectPrimaryKey: target.$primaryKey\n });\n }\n const promises = [];\n for (const elem of target) {\n promises.push(editRequestManager.postEdit({\n type: \"removeLink\",\n objectType: source.$apiName,\n primaryKey: source.$primaryKey,\n linkType: apiName,\n linkedObjectPrimaryKey: elem.$primaryKey\n }));\n }\n return Promise.all(promises).then(() => undefined);\n }\n },\n create: {\n value: async function (obj, properties) {\n const propertyMap = {};\n for (const [key, value] of Object.entries(properties)) {\n propertyMap[key] = toPropertyDataValue(value);\n }\n return editRequestManager.postEdit({\n type: \"addObject\",\n objectType: obj.apiName,\n primaryKey: obj.$primaryKey,\n properties: propertyMap\n });\n }\n },\n update: {\n value: function (locator, properties) {\n const propertyMap = {};\n for (const [key, value] of Object.entries(properties)) {\n propertyMap[key] = toPropertyDataValue(value);\n }\n return editRequestManager.postEdit({\n type: \"modifyObject\",\n objectType: locator.$apiName,\n primaryKey: locator.$primaryKey,\n properties: propertyMap\n });\n }\n },\n delete: {\n value: function (obj) {\n return editRequestManager.postEdit({\n type: \"deleteObject\",\n objectType: obj.$apiName,\n primaryKey: obj.$primaryKey\n });\n }\n },\n [writeableClientContext]: {\n value: {\n ontologyRid,\n transactionRid\n }\n }\n });\n return writeableClient;\n}"]}
1
+ {"version":3,"sources":["../../../../../node_modules/.pnpm/@osdk+foundry.ontologies@2.38.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyTransaction.js","../../../src/transactions/WriteableClient.ts","../../../src/transactions/EditRequestManager.ts","../../../src/transactions/toPropertyDataValue.ts","../../../src/transactions/createWriteableClient.ts","../../../src/utils/getApiGatewayBaseUrl.ts"],"names":["__export","foundryPlatformFetch","createClientWithTransaction","readFileSync","parseYaml"],"mappings":"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","file":"unstable-do-not-use.cjs","sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { foundryPlatformFetch as $foundryPlatformFetch } from \"@osdk/shared.net.platformapi\";\n//\nconst _postEdits = [1, \"/v2/ontologies/{0}/transactions/{1}/edits\", 3];\n/**\n * Applies a set of edits to a transaction in order.\n *\n * @alpha\n *\n * Required Scopes: [api:ontologies-read]\n * URL: /v2/ontologies/{ontology}/transactions/{transactionRid}/edits\n */\nexport function postEdits($ctx, ...args) {\n return $foundryPlatformFetch($ctx, _postEdits, ...args);\n}","/*\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\n/** @internal */\nexport const writeableClientContext = Symbol(\"writeableClientContext\");","/*\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 { OntologyTransactions } from \"@osdk/foundry.ontologies\";\nimport { writeableClientContext } from \"./WriteableClient.js\";\nexport class EditRequestManager {\n pendingEdits = [];\n inFlightRequest = null;\n queuedRequest = null;\n editTimeout = null;\n constructor(client) {\n this.client = client;\n }\n postEdit(edit) {\n if (this.inFlightRequest) {\n if (this.editTimeout) {\n // This means we are in the same tick that the request was created, meaning we can just add to the same request\n this.pendingEdits.push(edit);\n return this.inFlightRequest;\n }\n if (this.queuedRequest) {\n // This means we already have a queued request that will run after the inFlightRequest finishes, so we can just add to that one\n this.pendingEdits.push(edit);\n return this.queuedRequest;\n }\n // This means a request has already been sent to the wire but not been returned, so we need to queue up a new request for when that one finishes\n this.queuedRequest = this.inFlightRequest.then(async () => {\n this.inFlightRequest = this.queuedRequest;\n this.queuedRequest = null;\n this.pendingEdits.push(edit);\n await this.dispatchRequest();\n });\n return this.queuedRequest;\n } else {\n // There is no request in flight, which means we should create a new one\n this.inFlightRequest = this.createInitialPromiseWithTimeout(edit);\n return this.inFlightRequest;\n }\n }\n createInitialPromiseWithTimeout(edit) {\n return new Promise(resolve => {\n this.pendingEdits.push(edit);\n this.editTimeout = setTimeout(async () => {\n this.editTimeout = null;\n await this.dispatchRequest();\n if (!this.queuedRequest) {\n // The queued request will see this inFlightRequest resolve and should set the inFlightRequest to itself\n this.inFlightRequest = null;\n }\n resolve();\n }, 0);\n });\n }\n async dispatchRequest() {\n const copiedEdits = this.pendingEdits;\n this.pendingEdits = [];\n await OntologyTransactions.postEdits(this.client, await this.client[writeableClientContext].ontologyRid, this.client[writeableClientContext].transactionRid, {\n edits: copiedEdits\n }, {\n preview: true\n });\n }\n}","/*\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\nexport function toPropertyDataValue(value) {\n if (value == null) {\n return null; // This differs from how actions handles null, which expects a specific enum value.\n }\n if (Array.isArray(value)) {\n return value.map(item => toPropertyDataValue(item));\n }\n if (isPoint(value)) {\n return toPropertyDataValue(`${value.coordinates[1]},${value.coordinates[0]}`);\n }\n if (typeof value === \"object\") {\n const result = {};\n for (const key in value) {\n result[key] = toPropertyDataValue(value[key]);\n }\n return result;\n }\n\n // expected to pass through - boolean, byte, date, decimal, float, double, integer, long, short, string, timestamp, object type reference\n return value;\n}\nfunction isPoint(o) {\n return o && typeof o === \"object\" && \"type\" in o && o.type === \"Point\" && \"coordinates\" in o && o.coordinates.length === 2;\n}","/*\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 { createClientWithTransaction } from \"@osdk/client/unstable-do-not-use\";\nimport { EditRequestManager } from \"./EditRequestManager.js\";\nimport { toPropertyDataValue } from \"./toPropertyDataValue.js\";\nimport { writeableClientContext } from \"./WriteableClient.js\";\nexport function createWriteableClient(...args) {\n const transactionRid = args[0];\n const ontologyRid = args[2];\n const client = createClientWithTransaction(...args);\n const editRequestManager = new EditRequestManager(client) // This cast is safe because we create the writeable client properties below.\n ;\n\n // We use define properties because the client has non-enumerable properties that we want to preserve.\n const writeableClient = Object.defineProperties(client, {\n link: {\n value: function (source, apiName, target) {\n if (!Array.isArray(target)) {\n return editRequestManager.postEdit({\n type: \"addLink\",\n objectType: source.$apiName,\n primaryKey: source.$primaryKey,\n linkType: apiName,\n linkedObjectPrimaryKey: target.$primaryKey\n });\n }\n const promises = [];\n for (const elem of target) {\n promises.push(editRequestManager.postEdit({\n type: \"addLink\",\n objectType: source.$apiName,\n primaryKey: source.$primaryKey,\n linkType: apiName,\n linkedObjectPrimaryKey: elem.$primaryKey\n }));\n }\n return Promise.all(promises).then(() => undefined);\n }\n },\n unlink: {\n value: function (source, apiName, target) {\n if (!Array.isArray(target)) {\n return editRequestManager.postEdit({\n type: \"removeLink\",\n objectType: source.$apiName,\n primaryKey: source.$primaryKey,\n linkType: apiName,\n linkedObjectPrimaryKey: target.$primaryKey\n });\n }\n const promises = [];\n for (const elem of target) {\n promises.push(editRequestManager.postEdit({\n type: \"removeLink\",\n objectType: source.$apiName,\n primaryKey: source.$primaryKey,\n linkType: apiName,\n linkedObjectPrimaryKey: elem.$primaryKey\n }));\n }\n return Promise.all(promises).then(() => undefined);\n }\n },\n create: {\n value: async function (obj, properties) {\n const propertyMap = {};\n for (const [key, value] of Object.entries(properties)) {\n propertyMap[key] = toPropertyDataValue(value);\n }\n return editRequestManager.postEdit({\n type: \"addObject\",\n objectType: obj.apiName,\n primaryKey: obj.$primaryKey,\n properties: propertyMap\n });\n }\n },\n update: {\n value: function (locator, properties) {\n const propertyMap = {};\n for (const [key, value] of Object.entries(properties)) {\n propertyMap[key] = toPropertyDataValue(value);\n }\n return editRequestManager.postEdit({\n type: \"modifyObject\",\n objectType: locator.$apiName,\n primaryKey: locator.$primaryKey,\n properties: propertyMap\n });\n }\n },\n delete: {\n value: function (obj) {\n return editRequestManager.postEdit({\n type: \"deleteObject\",\n objectType: obj.$apiName,\n primaryKey: obj.$primaryKey\n });\n }\n },\n [writeableClientContext]: {\n value: {\n ontologyRid,\n transactionRid\n }\n }\n });\n return writeableClient;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { readFileSync } from \"fs\";\nimport { parse as parseYaml } from \"yaml\";\nconst FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR = \"FOUNDRY_SERVICE_DISCOVERY_V2\";\nconst API_GATEWAY_SERVICE = \"api-gateway\";\n/**\n * Type guard to check if config is an object with uris property\n */\nfunction hasUrisProperty(config) {\n return !Array.isArray(config) && \"uris\" in config && Array.isArray(config.uris) && config.uris.every(uri => typeof uri === \"string\");\n}\n\n/**\n * Extracts URIs from either array or object format\n */\nfunction extractUris(config) {\n return hasUrisProperty(config) ? config.uris : config;\n}\n\n/**\n * Retrieves the API Gateway base URL from the Function's environment.\n *\n * This function is intended to be used only from within a function. Usage of this utility elsewhere may result\n * in errors since the environment may not be properly configured.\n *\n * @returns The API Gateway base URL (e.g., \"https://example.palantirfoundry.com\")\n * @throws Error if the API Gateway base URL has not been properly configured in the function's environment.\n *\n * @example\n * ```typescript\n * const baseUrl = getApiGatewayBaseUrl();\n * // Returns: \"https://example.palantirfoundry.com\"\n * ```\n */\nexport function getApiGatewayBaseUrl() {\n const filePath = process.env[FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR];\n if (!filePath) {\n throw new Error(`${FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR} environment variable is not set`);\n }\n let fileContent;\n try {\n fileContent = readFileSync(filePath, \"utf-8\");\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`Failed to read service discovery file at ${filePath}: ${errorMessage}`);\n }\n let discovery;\n try {\n discovery = parseYaml(fileContent);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`Failed to parse service discovery YAML file at ${filePath}: ${errorMessage}`);\n }\n const apiGatewayConfig = discovery[API_GATEWAY_SERVICE];\n if (!apiGatewayConfig) {\n throw new Error(`${API_GATEWAY_SERVICE} service not found in service discovery file`);\n }\n const uris = extractUris(apiGatewayConfig);\n if (uris.length === 0) {\n throw new Error(`No URIs found for ${API_GATEWAY_SERVICE} service in service discovery file`);\n }\n return uris[0];\n}"]}
@@ -20,4 +20,21 @@ interface WriteMethods<X extends AnyEdit> {
20
20
 
21
21
  declare function createWriteableClient<X extends AnyEdit = never>(...args: Parameters<typeof createClientWithTransaction>): WriteableClient<X>;
22
22
 
23
- export { type WriteableClient, createWriteableClient };
23
+ /**
24
+ * Retrieves the API Gateway base URL from the Function's environment.
25
+ *
26
+ * This function is intended to be used only from within a function. Usage of this utility elsewhere may result
27
+ * in errors since the environment may not be properly configured.
28
+ *
29
+ * @returns The API Gateway base URL (e.g., "https://example.palantirfoundry.com")
30
+ * @throws Error if the API Gateway base URL has not been properly configured in the function's environment.
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const baseUrl = getApiGatewayBaseUrl();
35
+ * // Returns: "https://example.palantirfoundry.com"
36
+ * ```
37
+ */
38
+ declare function getApiGatewayBaseUrl(): string;
39
+
40
+ export { type WriteableClient, createWriteableClient, getApiGatewayBaseUrl };
@@ -52,6 +52,17 @@ describe(createEditBatch, () => {
52
52
  attachment2: {
53
53
  rid: "ri.bar"
54
54
  },
55
+ mediaReference: {
56
+ mimeType: "myTime",
57
+ reference: {
58
+ type: "mediaSetViewItem",
59
+ mediaSetViewItem: {
60
+ mediaItemRid: "rid.something",
61
+ mediaSetRid: "rid.something2",
62
+ mediaSetViewRid: "rid.something3"
63
+ }
64
+ }
65
+ },
55
66
  vector: [1, 2, 3]
56
67
  });
57
68
  editBatch.create(Task, {
@@ -169,6 +180,17 @@ describe(createEditBatch, () => {
169
180
  attachment2: {
170
181
  rid: "ri.bar"
171
182
  },
183
+ mediaReference: {
184
+ mimeType: "myTime",
185
+ reference: {
186
+ type: "mediaSetViewItem",
187
+ mediaSetViewItem: {
188
+ mediaItemRid: "rid.something",
189
+ mediaSetRid: "rid.something2",
190
+ mediaSetViewRid: "rid.something3"
191
+ }
192
+ }
193
+ },
172
194
  vector: [1, 2, 3]
173
195
  }
174
196
  }, {
@@ -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","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":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SACEA,YAAY,EACZC,8BAA8B,EAC9BC,MAAM,EACNC,IAAI,QACC,4BAA4B;AACnC,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ,QAAQ;AAC7D,SAASC,eAAe,QAAQ,sBAAsB;AActDJ,QAAQ,CAACI,eAAe,EAAE,MAAM;EAC9B,MAAMC,YAAY,GAAG;IACnBC,QAAQ,EAAE,MAAM;IAChBC,WAAW,EAAE;EACf,CAAwB;EAExB,MAAMC,cAAc,GAAG;IACrBF,QAAQ,EAAE,QAAQ;IAClBC,WAAW,EAAE;EACf,CAA0B;EAE1B,MAAME,cAAc,GAAG;IACrBH,QAAQ,EAAE,QAAQ;IAClBC,WAAW,EAAE;EACf,CAA0B;EAE1B,MAAMG,gBAAgB,GAAG;IACvBJ,QAAQ,EAAE,UAAU;IACpBC,WAAW,EAAE;EACf,CAA4B;EAE5B,MAAMI,oBAAoB,GAAG;IAC3BL,QAAQ,EAAE,cAAc;IACxBC,WAAW,EAAE,EAAE;IACfK,WAAW,EAAE;EACf,CAAgC;EAEhC,IAAIC,MAAc;EAElB,IAAIC,SAAmC;EAEvCf,UAAU,CAAC,MAAM;IACfc,MAAM,GAAGV,EAAE,CAACY,EAAE,CAAC,CAAkB;IACjCD,SAAS,GAAGV,eAAe,CAAgBS,MAAM,CAAC;EACpD,CAAC,CAAC;EAEFX,EAAE,CAAC,oBAAoB,EAAE,MAAM;IAC7BY,SAAS,CAACE,MAAM,CAACpB,8BAA8B,EAAE;MAC/CqB,EAAE,EAAE,CAAC;MACLC,UAAU,EAAE,QAAQ;MACpBC,WAAW,EAAE;QAAEC,GAAG,EAAE;MAAS,CAAe;MAC5CC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAClB,CAAC,CAAC;IACFP,SAAS,CAACE,MAAM,CAAClB,IAAI,EAAE;MAAEmB,EAAE,EAAE,CAAC;MAAEK,IAAI,EAAE;IAAe,CAAC,CAAC;IACvDR,SAAS,CAACE,MAAM,CAAClB,IAAI,EAAE;MAAEmB,EAAE,EAAE,CAAC;MAAEK,IAAI,EAAE;IAAqB,CAAC,CAAC;IAC7DR,SAAS,CAACE,MAAM,CAAClB,IAAI,EAAE;MAAEmB,EAAE,EAAE;IAAE,CAAC,CAAC;IACjCH,SAAS,CAACS,MAAM,CAAC;MAAEjB,QAAQ,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAE,CAAC,CAAC;IACtDO,SAAS,CAACS,MAAM,CAAClB,YAAY,CAAC;IAC9BS,SAAS,CAACU,MAAM,CAAC;MAAElB,QAAQ,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAE,CAAC,EAAE;MACrDe,IAAI,EAAE;IACR,CAAC,CAAC;IACFR,SAAS,CAACU,MAAM,CAACnB,YAAY,EAAE;MAAEiB,IAAI,EAAE;IAAwB,CAAC,CAAC;IACjER,SAAS,CAACU,MAAM,CAAC;MAAElB,QAAQ,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1DO,SAAS,CAACE,MAAM,CAAClB,IAAI,EAAE;MAAEmB,EAAE,EAAE,CAAC;MAAEK,IAAI,EAAE;IAAe,CAAC,CAAC;IACvDR,SAAS,CAACE,MAAM,CAACnB,MAAM,EAAE;MAAE4B,QAAQ,EAAE,GAAG;MAAEC,QAAQ,EAAE;IAAE,CAAC,CAAC;IACxDZ,SAAS,CAACU,MAAM,CAAC;MAAElB,QAAQ,EAAE,QAAQ;MAAEC,WAAW,EAAE;IAAI,CAAC,EAAE;MAAEmB,QAAQ,EAAE;IAAE,CAAC,CAAC;IAC3EZ,SAAS,CAACE,MAAM,CAACrB,YAAY,EAAE;MAC7BiB,WAAW,EAAE,MAAM;MACnBe,MAAM,EAAE;IACV,CAAC,CAAC;IACFb,SAAS,CAACU,MAAM,CAACb,oBAAoB,EAAE;MAAEgB,MAAM,EAAE;IAAS,CAAC,CAAC;IAC5Db,SAAS,CAACU,MAAM,CAAC;MACflB,QAAQ,EAAE,cAAc;MACxBM,WAAW,EAAE,eAAe;MAC5BL,WAAW,EAAE;IACf,CAAC,EAAE;MAAEoB,MAAM,EAAE;IAAU,CAAC,CAAC;IACzBb,SAAS,CAACS,MAAM,CAACZ,oBAAoB,CAAC;IAEtCG,SAAS,CAACc,IAAI,CAAC;MAAEtB,QAAQ,EAAE,UAAU;MAAEC,WAAW,EAAE;IAAE,CAAC,EAAE,gBAAgB,EAAE;MACzED,QAAQ,EAAE,QAAQ;MAClBC,WAAW,EAAE;IACf,CAAC,CAAC;IACFO,SAAS,CAACc,IAAI,CAAC;MAAEtB,QAAQ,EAAE,UAAU;MAAEC,WAAW,EAAE;IAAE,CAAC,EAAE,gBAAgB,EAAE;MACzED,QAAQ,EAAE,QAAQ;MAClBC,WAAW,EAAE;IACf,CAAC,CAAC;IACFO,SAAS,CAACc,IAAI,CAAClB,gBAAgB,EAAE,gBAAgB,EAAED,cAAc,CAAC;IAClEK,SAAS,CAACe,MAAM,CACd;MAAEvB,QAAQ,EAAE,UAAU;MAAEC,WAAW,EAAE;IAAE,CAAC,EACxC,gBAAgB,EAChB;MACED,QAAQ,EAAE,QAAQ;MAClBC,WAAW,EAAE;IACf,CACF,CAAC;IACDO,SAAS,CAACc,IAAI,CAACvB,YAAY,EAAE,OAAO,EAAE;MAAEC,QAAQ,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAE,CAAC,CAAC;IAC3EO,SAAS,CAACc,IAAI,CAACvB,YAAY,EAAE,OAAO,EAAE,CACpC;MAAEC,QAAQ,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAE,CAAC,EACpC;MAAED,QAAQ,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAE,CAAC,CACrC,CAAC;IACFO,SAAS,CAACe,MAAM,CAAC;MAAEvB,QAAQ,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAE,CAAC,EAAE,OAAO,EAAE;MAC9DD,QAAQ,EAAE,MAAM;MAChBC,WAAW,EAAE;IACf,CAAC,CAAC;IACFO,SAAS,CAACc,IAAI,CAACnB,cAAc,EAAE,WAAW,EAAEC,gBAAgB,CAAC;IAC7DI,SAAS,CAACe,MAAM,CACd;MAAEvB,QAAQ,EAAE,QAAQ;MAAEC,WAAW,EAAE;IAAS,CAAC,EAC7C,WAAW,EACX,CAACG,gBAAgB,EAAE;MAAEJ,QAAQ,EAAE,UAAU;MAAEC,WAAW,EAAE;IAAE,CAAC,CAC7D,CAAC;IAEDN,MAAM,CAACa,SAAS,CAACgB,QAAQ,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CACnC;MACEC,IAAI,EAAE,cAAc;MACpBC,GAAG,EAAErC,8BAA8B;MACnCsC,UAAU,EAAE;QACVjB,EAAE,EAAE,CAAC;QACLC,UAAU,EAAE,QAAQ;QACpBC,WAAW,EAAE;UAAEC,GAAG,EAAE;QAAS,CAAC;QAC9BC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;MAClB;IACF,CAAC,EACD;MACEW,IAAI,EAAE,cAAc;MACpBC,GAAG,EAAEnC,IAAI;MACToC,UAAU,EAAE;QAAEjB,EAAE,EAAE,CAAC;QAAEK,IAAI,EAAE;MAAe;IAC5C,CAAC,EACD;MACEU,IAAI,EAAE,cAAc;MACpBC,GAAG,EAAEnC,IAAI;MACToC,UAAU,EAAE;QAAEjB,EAAE,EAAE,CAAC;QAAEK,IAAI,EAAE;MAAqB;IAClD,CAAC,EACD;MACEU,IAAI,EAAE,cAAc;MACpBC,GAAG,EAAEnC,IAAI;MACToC,UAAU,EAAE;QAAEjB,EAAE,EAAE;MAAE;IACtB,CAAC,EACD;MAAEe,IAAI,EAAE,cAAc;MAAEC,GAAG,EAAE;QAAE3B,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE;IAAE,CAAC,EACnE;MAAEyB,IAAI,EAAE,cAAc;MAAEC,GAAG,EAAE;QAAE3B,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE;IAAE,CAAC,EACnE;MACEyB,IAAI,EAAE,cAAc;MACpBC,GAAG,EAAE;QAAE3B,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE,CAAC;MACzC2B,UAAU,EAAE;QAAEZ,IAAI,EAAE;MAAmB;IACzC,CAAC,EACD;MACEU,IAAI,EAAE,cAAc;MACpBC,GAAG,EAAE;QAAE3B,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE,CAAC;MACzC2B,UAAU,EAAE;QAAEZ,IAAI,EAAE;MAAwB;IAC9C,CAAC,EACD;MACEU,IAAI,EAAE,cAAc;MACpBC,GAAG,EAAE;QAAE3B,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE,CAAC;MACzC2B,UAAU,EAAE,CAAC;IACf,CAAC,EACD;MACEF,IAAI,EAAE,cAAc;MACpBC,GAAG,EAAEnC,IAAI;MACToC,UAAU,EAAE;QAAEjB,EAAE,EAAE,CAAC;QAAEK,IAAI,EAAE;MAAe;IAC5C,CAAC,EACD;MACEU,IAAI,EAAE,cAAc;MACpBC,GAAG,EAAEpC,MAAM;MACXqC,UAAU,EAAE;QAAET,QAAQ,EAAE,GAAG;QAAEC,QAAQ,EAAE;MAAE;IAC3C,CAAC,EACD;MACEM,IAAI,EAAE,cAAc;MACpBC,GAAG,EAAE;QAAE3B,QAAQ,EAAE,QAAQ;QAAEC,WAAW,EAAE;MAAI,CAAC;MAC7C2B,UAAU,EAAE;QAAER,QAAQ,EAAE;MAAE;IAC5B,CAAC,EACD;MACEM,IAAI,EAAE,0BAA0B;MAChCG,GAAG,EAAExC,YAAY;MACjBuC,UAAU,EAAE;QAAEP,MAAM,EAAE,mBAAmB;QAAEf,WAAW,EAAE;MAAO;IACjE,CAAC,EACD;MACEoB,IAAI,EAAE,0BAA0B;MAChCC,GAAG,EAAE;QACH3B,QAAQ,EAAE,cAAc;QACxBC,WAAW,EAAE,EAAE;QACfK,WAAW,EAAE;MACf,CAAC;MACDsB,UAAU,EAAE;QAAEP,MAAM,EAAE;MAAS;IACjC,CAAC,EACD;MACEK,IAAI,EAAE,0BAA0B;MAChCC,GAAG,EAAE;QACH3B,QAAQ,EAAE,cAAc;QACxBC,WAAW,EAAE,EAAE;QACfK,WAAW,EAAE;MACf,CAAC;MACDsB,UAAU,EAAE;QAAEP,MAAM,EAAE;MAAU;IAClC,CAAC,EACD;MACEK,IAAI,EAAE,0BAA0B;MAChCC,GAAG,EAAE;QACH3B,QAAQ,EAAE,cAAc;QACxBC,WAAW,EAAE,EAAE;QACfK,WAAW,EAAE;MACf;IACF,CAAC,EACD;MACEoB,IAAI,EAAE,SAAS;MACfI,OAAO,EAAE,gBAAgB;MACzBC,MAAM,EAAE;QAAE/B,QAAQ,EAAE,UAAU;QAAEC,WAAW,EAAE;MAAE,CAAC;MAChD+B,MAAM,EAAE;QAAEhC,QAAQ,EAAE,QAAQ;QAAEC,WAAW,EAAE;MAAU;IACvD,CAAC,EACD;MACEyB,IAAI,EAAE,SAAS;MACfI,OAAO,EAAE,gBAAgB;MACzBC,MAAM,EAAE;QAAE/B,QAAQ,EAAE,UAAU;QAAEC,WAAW,EAAE;MAAE,CAAC;MAChD+B,MAAM,EAAE;QAAEhC,QAAQ,EAAE,QAAQ;QAAEC,WAAW,EAAE;MAAY;IACzD,CAAC,EACD;MACEyB,IAAI,EAAE,SAAS;MACfI,OAAO,EAAE,gBAAgB;MACzBC,MAAM,EAAE;QAAE/B,QAAQ,EAAE,UAAU;QAAEC,WAAW,EAAE;MAAE,CAAC;MAChD+B,MAAM,EAAE;QAAEhC,QAAQ,EAAE,QAAQ;QAAEC,WAAW,EAAE;MAAI;IACjD,CAAC,EACD;MACEyB,IAAI,EAAE,YAAY;MAClBI,OAAO,EAAE,gBAAgB;MACzBC,MAAM,EAAE;QAAE/B,QAAQ,EAAE,UAAU;QAAEC,WAAW,EAAE;MAAE,CAAC;MAChD+B,MAAM,EAAE;QAAEhC,QAAQ,EAAE,QAAQ;QAAEC,WAAW,EAAE;MAAW;IACxD,CAAC,EACD;MACEyB,IAAI,EAAE,SAAS;MACfI,OAAO,EAAE,OAAO;MAChBC,MAAM,EAAE;QAAE/B,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE,CAAC;MAC5C+B,MAAM,EAAE;QAAEhC,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE;IAC7C,CAAC,EACD;MACEyB,IAAI,EAAE,SAAS;MACfI,OAAO,EAAE,OAAO;MAChBC,MAAM,EAAE;QAAE/B,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE,CAAC;MAC5C+B,MAAM,EAAE;QAAEhC,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE;IAC7C,CAAC,EACD;MACEyB,IAAI,EAAE,SAAS;MACfI,OAAO,EAAE,OAAO;MAChBC,MAAM,EAAE;QAAE/B,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE,CAAC;MAC5C+B,MAAM,EAAE;QAAEhC,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE;IAC7C,CAAC,EACD;MACEyB,IAAI,EAAE,YAAY;MAClBI,OAAO,EAAE,OAAO;MAChBC,MAAM,EAAE;QAAE/B,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE,CAAC;MAC5C+B,MAAM,EAAE;QAAEhC,QAAQ,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAE;IAC7C,CAAC,EACD;MACEyB,IAAI,EAAE,SAAS;MACfI,OAAO,EAAE,WAAW;MACpBC,MAAM,EAAE;QAAE/B,QAAQ,EAAE,QAAQ;QAAEC,WAAW,EAAE;MAAI,CAAC;MAChD+B,MAAM,EAAE;QAAEhC,QAAQ,EAAE,UAAU;QAAEC,WAAW,EAAE;MAAE;IACjD,CAAC,EACD;MACEyB,IAAI,EAAE,YAAY;MAClBI,OAAO,EAAE,WAAW;MACpBC,MAAM,EAAE;QAAE/B,QAAQ,EAAE,QAAQ;QAAEC,WAAW,EAAE;MAAS,CAAC;MACrD+B,MAAM,EAAE;QAAEhC,QAAQ,EAAE,UAAU;QAAEC,WAAW,EAAE;MAAE;IACjD,CAAC,EACD;MACEyB,IAAI,EAAE,YAAY;MAClBI,OAAO,EAAE,WAAW;MACpBC,MAAM,EAAE;QAAE/B,QAAQ,EAAE,QAAQ;QAAEC,WAAW,EAAE;MAAS,CAAC;MACrD+B,MAAM,EAAE;QAAEhC,QAAQ,EAAE,UAAU;QAAEC,WAAW,EAAE;MAAE;IACjD,CAAC,CACF,CAAC;EACJ,CAAC,CAAC;EAEFL,EAAE,CAAC,yBAAyB,EAAE,MAAM;IAClC;IACAY,SAAS,CAACc,IAAI,CAACvB,YAAY,EAAE,IAAI,EAAEI,cAAc,CAAC,CAAC,CAAC;;IAEpDK,SAAS,CAACc,IAAI,CACZvB,YAAY,EACZ,IAAI;IACJ;IACAG,cACF,CAAC;IACD;;IAEAM,SAAS,CAACc,IAAI,CACZ;MAAEtB,QAAQ,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAE,CAAC;IACpC;IACA,WAAW,EACXG,gBACF,CAAC,CAAC,CAAC;;IAEHI,SAAS,CAACc,IAAI,CACZ;MAAEtB,QAAQ,EAAE,QAAQ;MAAEC,WAAW,EAAE;IAAI,CAAC,EACxC,WAAW;IACX;IACAC,cACF,CAAC,CAAC,CAAC;;IAEH;IACAM,SAAS,CAACc,IAAI,CAACnB,cAAc,EAAE,OAAO,EAAE;MACtCH,QAAQ,EAAE,MAAM;MAChBC,WAAW,EAAE;IACf,CAAC,CAAC,CAAC,CAAC;EACN,CAAC,CAAC;EAEFL,EAAE,CAAC,2BAA2B,EAAE,MAAM;IACpC;IACAY,SAAS,CAACe,MAAM,CAACxB,YAAY,EAAE,IAAI,EAAEI,cAAc,CAAC,CAAC,CAAC;;IAEtDK,SAAS,CAACe,MAAM,CACdxB,YAAY,EACZ,IAAI;IACJ;IACA,CAACG,cAAc,CACjB,CAAC,CAAC,CAAC;;IAEHM,SAAS,CAACe,MAAM,CACd;MAAEvB,QAAQ,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAE,CAAC;IACpC;IACA,WAAW,EACXG,gBACF,CAAC,CAAC,CAAC;;IAEHI,SAAS,CAACe,MAAM,CACd;MAAEvB,QAAQ,EAAE,QAAQ;MAAEC,WAAW,EAAE;IAAI,CAAC,EACxC,WAAW;IACX;IACAC,cACF,CAAC,CAAC,CAAC;;IAEH;IACAM,SAAS,CAACe,MAAM,CAACpB,cAAc,EAAE,OAAO,EAAE;MACxCH,QAAQ,EAAE,MAAM;MAChBC,WAAW,EAAE;IACf,CAAC,CAAC,CAAC,CAAC;EACN,CAAC,CAAC;EAEFL,EAAE,CAAC,2BAA2B,EAAE,MAAM;IACpC;IACAY,SAAS,CAACU,MAAM,CAACnB,YAAY,EAAE;MAAEqB,QAAQ,EAAE;IAAE,CAAC,CAAC,CAAC,CAAC;;IAEjD;IACAZ,SAAS,CAACU,MAAM,CAAC;MAAElB,QAAQ,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAE,CAAC,EAAE;MAAEmB,QAAQ,EAAE;IAAE,CAAC,CAAC,CAAC,CAAC;EAC3E,CAAC,CAAC;EAEFxB,EAAE,CAAC,2BAA2B,EAAE,MAAM;IACpC;IACAY,SAAS,CAACU,MAAM,CAACnB,YAAY,EAAE;MAAEqB,QAAQ,EAAE;IAAE,CAAC,CAAC,CAAC,CAAC;;IAEjD;IACAZ,SAAS,CAACU,MAAM,CAAC;MAAElB,QAAQ,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAE,CAAC,EAAE;MAAEmB,QAAQ,EAAE;IAAE,CAAC,CAAC,CAAC,CAAC;EAC3E,CAAC,CAAC;AACJ,CAAC,CAAC","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","mediaReference","mimeType","reference","type","mediaSetViewItem","mediaItemRid","mediaSetRid","mediaSetViewRid","vector","name","delete","update","officeId","capacity","fooSpt","link","unlink","getEdits","toEqual","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 mediaReference: {\n mimeType: \"myTime\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaItemRid: \"rid.something\",\n mediaSetRid: \"rid.something2\",\n mediaSetViewRid: \"rid.something3\",\n },\n },\n },\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 mediaReference: {\n mimeType: \"myTime\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaItemRid: \"rid.something\",\n mediaSetRid: \"rid.something2\",\n mediaSetViewRid: \"rid.something3\",\n },\n },\n },\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":[]}
@@ -15,4 +15,5 @@
15
15
  */
16
16
 
17
17
  export { createWriteableClient } from "../transactions/createWriteableClient.js";
18
+ export { getApiGatewayBaseUrl } from "../utils/getApiGatewayBaseUrl.js";
18
19
  //# sourceMappingURL=unstable-do-not-use.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unstable-do-not-use.js","names":["createWriteableClient"],"sources":["unstable-do-not-use.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\nexport { createWriteableClient } from \"../transactions/createWriteableClient.js\";\nexport type { WriteableClient } from \"../transactions/WriteableClient.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,qBAAqB,QAAQ,0CAA0C","ignoreList":[]}
1
+ {"version":3,"file":"unstable-do-not-use.js","names":["createWriteableClient","getApiGatewayBaseUrl"],"sources":["unstable-do-not-use.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\nexport { createWriteableClient } from \"../transactions/createWriteableClient.js\";\nexport type { WriteableClient } from \"../transactions/WriteableClient.js\";\nexport { getApiGatewayBaseUrl } from \"../utils/getApiGatewayBaseUrl.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,qBAAqB,QAAQ,0CAA0C;AAEhF,SAASC,oBAAoB,QAAQ,kCAAkC","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ /*
2
+ * Copyright 2024 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { readFileSync } from "fs";
18
+ import { parse as parseYaml } from "yaml";
19
+ const FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR = "FOUNDRY_SERVICE_DISCOVERY_V2";
20
+ const API_GATEWAY_SERVICE = "api-gateway";
21
+ /**
22
+ * Type guard to check if config is an object with uris property
23
+ */
24
+ function hasUrisProperty(config) {
25
+ return !Array.isArray(config) && "uris" in config && Array.isArray(config.uris) && config.uris.every(uri => typeof uri === "string");
26
+ }
27
+
28
+ /**
29
+ * Extracts URIs from either array or object format
30
+ */
31
+ function extractUris(config) {
32
+ return hasUrisProperty(config) ? config.uris : config;
33
+ }
34
+
35
+ /**
36
+ * Retrieves the API Gateway base URL from the Function's environment.
37
+ *
38
+ * This function is intended to be used only from within a function. Usage of this utility elsewhere may result
39
+ * in errors since the environment may not be properly configured.
40
+ *
41
+ * @returns The API Gateway base URL (e.g., "https://example.palantirfoundry.com")
42
+ * @throws Error if the API Gateway base URL has not been properly configured in the function's environment.
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const baseUrl = getApiGatewayBaseUrl();
47
+ * // Returns: "https://example.palantirfoundry.com"
48
+ * ```
49
+ */
50
+ export function getApiGatewayBaseUrl() {
51
+ const filePath = process.env[FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR];
52
+ if (!filePath) {
53
+ throw new Error(`${FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR} environment variable is not set`);
54
+ }
55
+ let fileContent;
56
+ try {
57
+ fileContent = readFileSync(filePath, "utf-8");
58
+ } catch (error) {
59
+ const errorMessage = error instanceof Error ? error.message : String(error);
60
+ throw new Error(`Failed to read service discovery file at ${filePath}: ${errorMessage}`);
61
+ }
62
+ let discovery;
63
+ try {
64
+ discovery = parseYaml(fileContent);
65
+ } catch (error) {
66
+ const errorMessage = error instanceof Error ? error.message : String(error);
67
+ throw new Error(`Failed to parse service discovery YAML file at ${filePath}: ${errorMessage}`);
68
+ }
69
+ const apiGatewayConfig = discovery[API_GATEWAY_SERVICE];
70
+ if (!apiGatewayConfig) {
71
+ throw new Error(`${API_GATEWAY_SERVICE} service not found in service discovery file`);
72
+ }
73
+ const uris = extractUris(apiGatewayConfig);
74
+ if (uris.length === 0) {
75
+ throw new Error(`No URIs found for ${API_GATEWAY_SERVICE} service in service discovery file`);
76
+ }
77
+ return uris[0];
78
+ }
79
+ //# sourceMappingURL=getApiGatewayBaseUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getApiGatewayBaseUrl.js","names":["readFileSync","parse","parseYaml","FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR","API_GATEWAY_SERVICE","hasUrisProperty","config","Array","isArray","uris","every","uri","extractUris","getApiGatewayBaseUrl","filePath","process","env","Error","fileContent","error","errorMessage","message","String","discovery","apiGatewayConfig","length"],"sources":["getApiGatewayBaseUrl.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { readFileSync } from \"fs\";\nimport { parse as parseYaml } from \"yaml\";\n\nconst FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR =\n \"FOUNDRY_SERVICE_DISCOVERY_V2\" as const;\nconst API_GATEWAY_SERVICE = \"api-gateway\" as const;\n\ntype ServiceConfig = string[] | { uris: string[] };\n\ninterface ServiceDiscoveryConfig {\n [serviceName: string]: ServiceConfig;\n}\n\n/**\n * Type guard to check if config is an object with uris property\n */\nfunction hasUrisProperty(config: ServiceConfig): config is { uris: string[] } {\n return !Array.isArray(config)\n && \"uris\" in config\n && Array.isArray(config.uris)\n && config.uris.every((uri) => typeof uri === \"string\");\n}\n\n/**\n * Extracts URIs from either array or object format\n */\nfunction extractUris(config: ServiceConfig): string[] {\n return hasUrisProperty(config) ? config.uris : config;\n}\n\n/**\n * Retrieves the API Gateway base URL from the Function's environment.\n *\n * This function is intended to be used only from within a function. Usage of this utility elsewhere may result\n * in errors since the environment may not be properly configured.\n *\n * @returns The API Gateway base URL (e.g., \"https://example.palantirfoundry.com\")\n * @throws Error if the API Gateway base URL has not been properly configured in the function's environment.\n *\n * @example\n * ```typescript\n * const baseUrl = getApiGatewayBaseUrl();\n * // Returns: \"https://example.palantirfoundry.com\"\n * ```\n */\nexport function getApiGatewayBaseUrl(): string {\n const filePath = process.env[FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR];\n\n if (!filePath) {\n throw new Error(\n `${FOUNDRY_SERVICE_DISCOVERY_V2_ENV_VAR} environment variable is not set`,\n );\n }\n\n let fileContent: string;\n try {\n fileContent = readFileSync(filePath, \"utf-8\");\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Failed to read service discovery file at ${filePath}: ${errorMessage}`,\n );\n }\n\n let discovery: ServiceDiscoveryConfig;\n try {\n discovery = parseYaml(fileContent) as ServiceDiscoveryConfig;\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Failed to parse service discovery YAML file at ${filePath}: ${errorMessage}`,\n );\n }\n\n const apiGatewayConfig = discovery[API_GATEWAY_SERVICE];\n\n if (!apiGatewayConfig) {\n throw new Error(\n `${API_GATEWAY_SERVICE} service not found in service discovery file`,\n );\n }\n\n const uris = extractUris(apiGatewayConfig);\n\n if (uris.length === 0) {\n throw new Error(\n `No URIs found for ${API_GATEWAY_SERVICE} service in service discovery file`,\n );\n }\n\n return uris[0];\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,YAAY,QAAQ,IAAI;AACjC,SAASC,KAAK,IAAIC,SAAS,QAAQ,MAAM;AAEzC,MAAMC,oCAAoC,GACxC,8BAAuC;AACzC,MAAMC,mBAAmB,GAAG,aAAsB;AAQlD;AACA;AACA;AACA,SAASC,eAAeA,CAACC,MAAqB,EAAgC;EAC5E,OAAO,CAACC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,IACxB,MAAM,IAAIA,MAAM,IAChBC,KAAK,CAACC,OAAO,CAACF,MAAM,CAACG,IAAI,CAAC,IAC1BH,MAAM,CAACG,IAAI,CAACC,KAAK,CAAEC,GAAG,IAAK,OAAOA,GAAG,KAAK,QAAQ,CAAC;AAC1D;;AAEA;AACA;AACA;AACA,SAASC,WAAWA,CAACN,MAAqB,EAAY;EACpD,OAAOD,eAAe,CAACC,MAAM,CAAC,GAAGA,MAAM,CAACG,IAAI,GAAGH,MAAM;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASO,oBAAoBA,CAAA,EAAW;EAC7C,MAAMC,QAAQ,GAAGC,OAAO,CAACC,GAAG,CAACb,oCAAoC,CAAC;EAElE,IAAI,CAACW,QAAQ,EAAE;IACb,MAAM,IAAIG,KAAK,CACb,GAAGd,oCAAoC,kCACzC,CAAC;EACH;EAEA,IAAIe,WAAmB;EACvB,IAAI;IACFA,WAAW,GAAGlB,YAAY,CAACc,QAAQ,EAAE,OAAO,CAAC;EAC/C,CAAC,CAAC,OAAOK,KAAK,EAAE;IACd,MAAMC,YAAY,GAAGD,KAAK,YAAYF,KAAK,GAAGE,KAAK,CAACE,OAAO,GAAGC,MAAM,CAACH,KAAK,CAAC;IAC3E,MAAM,IAAIF,KAAK,CACb,4CAA4CH,QAAQ,KAAKM,YAAY,EACvE,CAAC;EACH;EAEA,IAAIG,SAAiC;EACrC,IAAI;IACFA,SAAS,GAAGrB,SAAS,CAACgB,WAAW,CAA2B;EAC9D,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,MAAMC,YAAY,GAAGD,KAAK,YAAYF,KAAK,GAAGE,KAAK,CAACE,OAAO,GAAGC,MAAM,CAACH,KAAK,CAAC;IAC3E,MAAM,IAAIF,KAAK,CACb,kDAAkDH,QAAQ,KAAKM,YAAY,EAC7E,CAAC;EACH;EAEA,MAAMI,gBAAgB,GAAGD,SAAS,CAACnB,mBAAmB,CAAC;EAEvD,IAAI,CAACoB,gBAAgB,EAAE;IACrB,MAAM,IAAIP,KAAK,CACb,GAAGb,mBAAmB,8CACxB,CAAC;EACH;EAEA,MAAMK,IAAI,GAAGG,WAAW,CAACY,gBAAgB,CAAC;EAE1C,IAAIf,IAAI,CAACgB,MAAM,KAAK,CAAC,EAAE;IACrB,MAAM,IAAIR,KAAK,CACb,qBAAqBb,mBAAmB,oCAC1C,CAAC;EACH;EAEA,OAAOK,IAAI,CAAC,CAAC,CAAC;AAChB","ignoreList":[]}
@@ -1,2 +1,3 @@
1
1
  export { createWriteableClient } from "../transactions/createWriteableClient.js";
2
2
  export type { WriteableClient } from "../transactions/WriteableClient.js";
3
+ export { getApiGatewayBaseUrl } from "../utils/getApiGatewayBaseUrl.js";
@@ -1 +1 @@
1
- {"mappings":"AAgBA,SAAS,6BAA6B;AACtC,cAAc,uBAAuB","names":[],"sources":["../../../src/public/unstable-do-not-use.ts"],"version":3,"file":"unstable-do-not-use.d.ts"}
1
+ {"mappings":"AAgBA,SAAS,6BAA6B;AACtC,cAAc,uBAAuB;AACrC,SAAS,4BAA4B","names":[],"sources":["../../../src/public/unstable-do-not-use.ts"],"version":3,"file":"unstable-do-not-use.d.ts"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Retrieves the API Gateway base URL from the Function's environment.
3
+ *
4
+ * This function is intended to be used only from within a function. Usage of this utility elsewhere may result
5
+ * in errors since the environment may not be properly configured.
6
+ *
7
+ * @returns The API Gateway base URL (e.g., "https://example.palantirfoundry.com")
8
+ * @throws Error if the API Gateway base URL has not been properly configured in the function's environment.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const baseUrl = getApiGatewayBaseUrl();
13
+ * // Returns: "https://example.palantirfoundry.com"
14
+ * ```
15
+ */
16
+ export declare function getApiGatewayBaseUrl(): string;
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;AA6DA,OAAO,iBAAS","names":[],"sources":["../../../src/utils/getApiGatewayBaseUrl.ts"],"version":3,"file":"getApiGatewayBaseUrl.d.ts"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osdk/functions",
3
- "version": "1.4.0-beta.3",
3
+ "version": "1.4.0-beta.5",
4
4
  "description": "",
5
5
  "access": "public",
6
6
  "license": "Apache-2.0",
@@ -50,22 +50,24 @@
50
50
  "@osdk/foundry.core": "^2.38.0",
51
51
  "@osdk/foundry.mediasets": "^2.38.0",
52
52
  "@osdk/foundry.ontologies": "^2.38.0",
53
- "@types/geojson": "^7946.0.16"
53
+ "@types/geojson": "^7946.0.16",
54
+ "yaml": "^2.8.1"
54
55
  },
55
56
  "peerDependencies": {
56
- "@osdk/client": "^2.6.0-beta.8"
57
+ "@osdk/client": "^2.6.0-beta.9"
57
58
  },
58
59
  "devDependencies": {
59
60
  "@microsoft/api-documenter": "^7.26.32",
60
61
  "@microsoft/api-extractor": "^7.52.11",
61
62
  "@types/geojson": "^7946.0.16",
63
+ "@types/node": "^18.19.0",
62
64
  "p-defer": "^4.0.1",
63
65
  "ts-expect": "^1.3.0",
64
66
  "typescript": "~5.5.4",
65
- "@osdk/client.test.ontology": "~2.6.0-beta.8",
67
+ "@osdk/monorepo.api-extractor": "~0.5.0-beta.1",
68
+ "@osdk/client.test.ontology": "~2.6.0-beta.9",
66
69
  "@osdk/monorepo.tsconfig": "~0.5.0-beta.1",
67
- "@osdk/shared.test": "~2.6.0-beta.3",
68
- "@osdk/monorepo.api-extractor": "~0.5.0-beta.1"
70
+ "@osdk/shared.test": "~2.6.0-beta.3"
69
71
  },
70
72
  "publishConfig": {
71
73
  "access": "public"