@osdk/faux 0.6.0-beta.1 → 0.6.0-beta.3

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,29 @@
1
1
  # @osdk/shared.test
2
2
 
3
+ ## 0.6.0-beta.3
4
+
5
+ ### Minor Changes
6
+
7
+ - 4470c0d: Add support to execute queries on branches.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [4470c0d]
12
+ - @osdk/generator-converters@2.8.0-beta.13
13
+ - @osdk/api@2.8.0-beta.13
14
+
15
+ ## 0.6.0-beta.2
16
+
17
+ ### Minor Changes
18
+
19
+ - abb0e0f: Bump Platform SDK dependencies
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies [abb0e0f]
24
+ - @osdk/generator-converters@2.8.0-beta.9
25
+ - @osdk/api@2.8.0-beta.9
26
+
3
27
  ## 0.5.0-beta.4
4
28
 
5
29
  ### Minor Changes
@@ -95,7 +95,8 @@ describe(FauxDataStore, () => {
95
95
  },
96
96
  rid: "ri.id",
97
97
  displayName: "id",
98
- description: "id"
98
+ description: "id",
99
+ typeClasses: []
99
100
  },
100
101
  leadId: {
101
102
  dataType: {
@@ -103,7 +104,8 @@ describe(FauxDataStore, () => {
103
104
  },
104
105
  rid: "ri.leadId",
105
106
  displayName: "leadId",
106
- description: "leadId"
107
+ description: "leadId",
108
+ typeClasses: []
107
109
  }
108
110
  },
109
111
  status: "ACTIVE",
@@ -149,7 +151,8 @@ describe(FauxDataStore, () => {
149
151
  },
150
152
  rid: "ri.proj.id",
151
153
  displayName: "id",
152
- description: "id"
154
+ description: "id",
155
+ typeClasses: []
153
156
  },
154
157
  name: {
155
158
  dataType: {
@@ -157,7 +160,8 @@ describe(FauxDataStore, () => {
157
160
  },
158
161
  rid: "ri.proj.name",
159
162
  displayName: "name",
160
- description: "name"
163
+ description: "name",
164
+ typeClasses: []
161
165
  },
162
166
  ownerId: {
163
167
  dataType: {
@@ -165,7 +169,8 @@ describe(FauxDataStore, () => {
165
169
  },
166
170
  rid: "ri.proj.ownerId",
167
171
  displayName: "ownerId",
168
- description: "ownerId"
172
+ description: "ownerId",
173
+ typeClasses: []
169
174
  }
170
175
  },
171
176
  status: "ACTIVE",
@@ -1 +1 @@
1
- {"version":3,"file":"FauxDataStore.test.js","names":["beforeEach","describe","expect","it","FauxAttachmentStore","FauxDataStore","FauxOntology","attachmentsStore","fauxOntology","fauxDataStore","employees","Object","fromEntries","map","id","__apiName","__primaryKey","projects","name","apiName","description","displayName","rid","registerObjectType","implementsInterfaces","implementsInterfaces2","linkTypes","status","objectTypeApiName","cardinality","linkTypeRid","foreignKeyPropertyApiName","objectType","icon","color","type","pluralDisplayName","primaryKey","properties","dataType","leadId","titleProperty","sharedPropertyTypeMapping","ownerId","getLeadsAndPeeps","lead","getLinksOrThrow","peeps","getProjectLinks","projectId","owner","contributors","getEmployeeProjectLinks","employeeId","ownedProjects","contributedProjects","a","b","c","d","registerObject","registerLink","toMatchObject","undefined","getObject","toMatchInlineSnapshot","unregisterLink","p1","p2","updatedP1","replaceObjectOrThrow","unlinkedP1","p2WithOwner"],"sources":["FauxDataStore.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 { beforeEach, describe, expect, it } from \"vitest\";\nimport type { BaseServerObject } from \"./BaseServerObject.js\";\nimport { FauxAttachmentStore } from \"./FauxAttachmentStore.js\";\nimport { FauxDataStore } from \"./FauxDataStore.js\";\nimport { FauxOntology } from \"./FauxOntology.js\";\n\ndescribe(FauxDataStore, () => {\n describe(\"Simple Employee ontology\", () => {\n let attachmentsStore: FauxAttachmentStore;\n let fauxOntology: FauxOntology;\n let fauxDataStore: FauxDataStore;\n\n const pks = [\"a\", \"b\", \"c\", \"d\"] as const;\n const employees = Object\n .fromEntries(\n pks.map((id) =>\n [id, {\n __apiName: \"Employee\",\n __primaryKey: id,\n id,\n }] as const\n ),\n ) as unknown as Record<typeof pks[number], BaseServerObject>;\n\n const projectPks = [\"p1\", \"p2\"] as const;\n const projects = Object\n .fromEntries(\n projectPks.map((id) =>\n [id, {\n __apiName: \"Project\",\n __primaryKey: id,\n id,\n name: `Project ${id}`,\n }] as const\n ),\n ) as unknown as Record<typeof projectPks[number], BaseServerObject>;\n\n beforeEach(() => {\n attachmentsStore = new FauxAttachmentStore();\n fauxOntology = new FauxOntology({\n apiName: \"foo\",\n description: \"foo\",\n displayName: \"foo\",\n rid: \"ri.foo\",\n });\n fauxDataStore = new FauxDataStore(\n fauxOntology,\n attachmentsStore,\n /*strict*/ true,\n );\n\n const Employee = {\n implementsInterfaces: [],\n implementsInterfaces2: {},\n linkTypes: [{\n apiName: \"peeps\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Employee\",\n cardinality: \"MANY\",\n displayName: \"Peeps\",\n linkTypeRid: \"rid.link-type.327\",\n }, {\n apiName: \"lead\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Employee\",\n cardinality: \"ONE\",\n displayName: \"Lead\",\n linkTypeRid: \"rid.link-type.327\",\n foreignKeyPropertyApiName: \"leadId\",\n }, {\n apiName: \"ownedProjects\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Project\",\n cardinality: \"MANY\",\n displayName: \"Owned Projects\",\n linkTypeRid: \"rid.link-type.328\",\n }, {\n apiName: \"contributedProjects\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Project\",\n cardinality: \"MANY\",\n displayName: \"Contributed Projects\",\n linkTypeRid: \"rid.link-type.329\",\n }],\n objectType: {\n apiName: \"Employee\",\n description: \"Employee\",\n displayName: \"Employee\",\n rid: \"ri.Employee\",\n icon: {\n color: \"#000000\",\n name: \"whoCares\",\n type: \"blueprint\",\n },\n pluralDisplayName: \"Employees\",\n primaryKey: \"id\",\n properties: {\n id: {\n dataType: { type: \"string\" },\n rid: \"ri.id\",\n displayName: \"id\",\n description: \"id\",\n },\n leadId: {\n dataType: { type: \"string\" },\n rid: \"ri.leadId\",\n displayName: \"leadId\",\n description: \"leadId\",\n },\n },\n status: \"ACTIVE\",\n titleProperty: \"id\",\n },\n sharedPropertyTypeMapping: {},\n } as const;\n\n const Project = {\n implementsInterfaces: [],\n implementsInterfaces2: {},\n linkTypes: [{\n apiName: \"owner\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Employee\",\n cardinality: \"ONE\",\n displayName: \"Owner\",\n linkTypeRid: \"rid.link-type.328\",\n foreignKeyPropertyApiName: \"ownerId\",\n }, {\n apiName: \"contributors\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Employee\",\n cardinality: \"MANY\",\n displayName: \"Contributors\",\n linkTypeRid: \"rid.link-type.329\",\n }],\n objectType: {\n apiName: \"Project\",\n description: \"Project\",\n displayName: \"Project\",\n rid: \"ri.Project\",\n icon: {\n color: \"#0000FF\",\n name: \"project\",\n type: \"blueprint\",\n },\n pluralDisplayName: \"Projects\",\n primaryKey: \"id\",\n properties: {\n id: {\n dataType: { type: \"string\" },\n rid: \"ri.proj.id\",\n displayName: \"id\",\n description: \"id\",\n },\n name: {\n dataType: { type: \"string\" },\n rid: \"ri.proj.name\",\n displayName: \"name\",\n description: \"name\",\n },\n ownerId: {\n dataType: { type: \"string\" },\n rid: \"ri.proj.ownerId\",\n displayName: \"ownerId\",\n description: \"ownerId\",\n },\n },\n status: \"ACTIVE\",\n titleProperty: \"name\",\n },\n sharedPropertyTypeMapping: {},\n } as const;\n\n fauxOntology.registerObjectType(Employee);\n fauxOntology.registerObjectType(Project);\n });\n\n const getLeadsAndPeeps = (id: string) => ({\n lead: fauxDataStore.getLinksOrThrow(\"Employee\", id, \"lead\")[0],\n peeps: fauxDataStore.getLinksOrThrow(\"Employee\", id, \"peeps\"),\n });\n\n const getProjectLinks = (projectId: string) => ({\n owner: fauxDataStore.getLinksOrThrow(\"Project\", projectId, \"owner\")[0],\n contributors: fauxDataStore.getLinksOrThrow(\n \"Project\",\n projectId,\n \"contributors\",\n ),\n });\n\n const getEmployeeProjectLinks = (employeeId: string) => ({\n ownedProjects: fauxDataStore.getLinksOrThrow(\n \"Employee\",\n employeeId,\n \"ownedProjects\",\n ),\n contributedProjects: fauxDataStore.getLinksOrThrow(\n \"Employee\",\n employeeId,\n \"contributedProjects\",\n ),\n });\n\n it(\"should work in the happy paths\", () => {\n const { a, b, c, d } = employees;\n\n // set a's lead to b\n fauxDataStore.registerObject(a);\n fauxDataStore.registerObject(b);\n fauxDataStore.registerLink(a, \"lead\", b, \"peeps\");\n\n expect(getLeadsAndPeeps(\"a\")).toMatchObject({\n lead: b,\n peeps: [],\n });\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: undefined,\n peeps: [a],\n });\n\n // try the reverse (many to one this time)\n fauxDataStore.registerObject(c);\n fauxDataStore.registerObject(d);\n // set c's lead to d\n fauxDataStore.registerLink(d, \"peeps\", c, \"lead\");\n\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c],\n });\n expect(getLeadsAndPeeps(\"c\")).toMatchObject({\n lead: d,\n peeps: [],\n });\n\n // set b's lead to c\n fauxDataStore.registerLink(c, \"peeps\", b, \"lead\");\n expect(fauxDataStore.getObject(b.__apiName, b.__primaryKey))\n .toMatchInlineSnapshot(`\n {\n \"__apiName\": \"Employee\",\n \"__primaryKey\": \"b\",\n \"id\": \"b\",\n \"leadId\": \"c\",\n }\n `);\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: c,\n peeps: [a],\n });\n expect(getLeadsAndPeeps(\"c\")).toMatchObject({\n lead: d,\n peeps: [b],\n });\n\n // change b's lead to d\n fauxDataStore.registerLink(d, \"peeps\", b, \"lead\");\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: d,\n peeps: [a], // b's peeps should not change\n });\n expect(fauxDataStore.getObject(b.__apiName, b.__primaryKey))\n .toMatchObject({\n leadId: \"d\",\n });\n expect(getLeadsAndPeeps(\"c\")).toMatchObject({\n lead: d,\n peeps: [], // c should no longer have b as a peep\n });\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c, b], // d has two peeps now\n });\n\n // remove b's lead\n fauxDataStore.unregisterLink(d, \"peeps\", b, \"lead\");\n expect(fauxDataStore.getObject(b.__apiName, b.__primaryKey))\n .toMatchInlineSnapshot(`\n {\n \"__apiName\": \"Employee\",\n \"__primaryKey\": \"b\",\n \"id\": \"b\",\n \"leadId\": undefined,\n }\n `);\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: undefined,\n peeps: [a], // b's peeps should not change\n });\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c], // d no longer leads b\n });\n\n // change b's lead to d but in the other direction\n fauxDataStore.registerLink(b, \"lead\", d, \"peeps\");\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: d,\n peeps: [a], // b's peeps should not change\n });\n expect(getLeadsAndPeeps(\"c\")).toMatchObject({\n lead: d,\n peeps: [], // c should no longer have b as a peep\n });\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c, b], // d has two peeps now\n });\n\n // remove b's lead in the other direction\n fauxDataStore.unregisterLink(b, \"lead\", d, \"peeps\");\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: undefined,\n peeps: [a], // b's peeps should not change\n });\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c], // d no longer leads b\n });\n });\n\n it(\"should work with links between different object types\", () => {\n const { a, b, c, d } = employees;\n const { p1, p2 } = projects;\n\n // Register objects\n fauxDataStore.registerObject(a);\n fauxDataStore.registerObject(b);\n fauxDataStore.registerObject(c);\n fauxDataStore.registerObject(d);\n fauxDataStore.registerObject(p1);\n fauxDataStore.registerObject(p2);\n\n // 1. Assign employee as project owner (ONE cardinality)\n fauxDataStore.registerLink(p1, \"owner\", a, \"ownedProjects\");\n\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: a,\n contributors: [],\n });\n expect(getEmployeeProjectLinks(\"a\")).toMatchObject({\n ownedProjects: [p1],\n contributedProjects: [],\n });\n expect(fauxDataStore.getObject(p1.__apiName, p1.__primaryKey))\n .toMatchObject({\n ownerId: \"a\",\n });\n\n // 2. Change project ownership\n fauxDataStore.registerLink(p1, \"owner\", b, \"ownedProjects\");\n\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: b,\n contributors: [],\n });\n expect(getEmployeeProjectLinks(\"a\")).toMatchObject({\n ownedProjects: [], // a no longer owns p1\n contributedProjects: [],\n });\n expect(getEmployeeProjectLinks(\"b\")).toMatchObject({\n ownedProjects: [p1],\n contributedProjects: [],\n });\n expect(fauxDataStore.getObject(p1.__apiName, p1.__primaryKey))\n .toMatchObject({\n ownerId: \"b\",\n });\n\n // 3. Add project contributors (MANY cardinality)\n fauxDataStore.registerLink(p1, \"contributors\", c, \"contributedProjects\");\n fauxDataStore.registerLink(p1, \"contributors\", d, \"contributedProjects\");\n\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: b,\n contributors: [c, d],\n });\n expect(getEmployeeProjectLinks(\"c\")).toMatchObject({\n ownedProjects: [],\n contributedProjects: [p1],\n });\n expect(getEmployeeProjectLinks(\"d\")).toMatchObject({\n ownedProjects: [],\n contributedProjects: [p1],\n });\n\n // 4. Remove a contributor\n fauxDataStore.unregisterLink(\n p1,\n \"contributors\",\n c,\n \"contributedProjects\",\n );\n\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: b,\n contributors: [d], // c is removed\n });\n expect(getEmployeeProjectLinks(\"c\")).toMatchObject({\n ownedProjects: [],\n contributedProjects: [], // no longer contributing to p1\n });\n expect(getEmployeeProjectLinks(\"d\")).toMatchObject({\n ownedProjects: [],\n contributedProjects: [p1], // still contributing to p1\n });\n\n // 5. Test with multiple projects\n fauxDataStore.registerLink(p2, \"contributors\", b, \"contributedProjects\");\n\n expect(getProjectLinks(\"p2\")).toMatchObject({\n owner: undefined,\n contributors: [b],\n });\n expect(getEmployeeProjectLinks(\"b\")).toMatchObject({\n ownedProjects: [p1], // owns p1\n contributedProjects: [p2], // contributes to p2\n });\n\n // 6. Remove owner using the opposite direction for unregistering\n fauxDataStore.unregisterLink(b, \"ownedProjects\", p1, \"owner\");\n\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: undefined,\n contributors: [d],\n });\n expect(getEmployeeProjectLinks(\"b\")).toMatchObject({\n ownedProjects: [], // no longer owns p1\n contributedProjects: [p2],\n });\n expect(fauxDataStore.getObject(p1.__apiName, p1.__primaryKey))\n .toMatchObject({\n \"ownerId\": undefined,\n });\n\n // 7. Test setting foreign key directly on project object\n const updatedP1 = {\n ...p1,\n ownerId: \"c\",\n };\n fauxDataStore.replaceObjectOrThrow(updatedP1);\n\n // Verify links are automatically updated\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: c,\n contributors: [d],\n });\n expect(getEmployeeProjectLinks(\"c\")).toMatchObject({\n ownedProjects: [p1],\n contributedProjects: [],\n });\n expect(fauxDataStore.getObject(p1.__apiName, p1.__primaryKey))\n .toMatchObject({\n \"ownerId\": \"c\",\n });\n\n // 8. Test removing foreign key by setting it to undefined\n const unlinkedP1 = {\n ...p1,\n ownerId: undefined,\n };\n fauxDataStore.replaceObjectOrThrow(unlinkedP1);\n\n // Verify links are properly removed\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: undefined,\n contributors: [d],\n });\n expect(getEmployeeProjectLinks(\"c\")).toMatchObject({\n ownedProjects: [],\n contributedProjects: [],\n });\n\n // 9. Test setting multiple links through foreign keys\n // Add both d and c as owners by setting one at a time\n const p2WithOwner = {\n ...p2,\n ownerId: \"d\",\n };\n fauxDataStore.replaceObjectOrThrow(p2WithOwner);\n\n expect(getProjectLinks(\"p2\")).toMatchObject({\n owner: d,\n contributors: [b],\n });\n expect(getEmployeeProjectLinks(\"d\")).toMatchObject({\n ownedProjects: [p2],\n contributedProjects: [p1],\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FauxDataStore.test.js","names":["beforeEach","describe","expect","it","FauxAttachmentStore","FauxDataStore","FauxOntology","attachmentsStore","fauxOntology","fauxDataStore","employees","Object","fromEntries","map","id","__apiName","__primaryKey","projects","name","apiName","description","displayName","rid","registerObjectType","implementsInterfaces","implementsInterfaces2","linkTypes","status","objectTypeApiName","cardinality","linkTypeRid","foreignKeyPropertyApiName","objectType","icon","color","type","pluralDisplayName","primaryKey","properties","dataType","typeClasses","leadId","titleProperty","sharedPropertyTypeMapping","ownerId","getLeadsAndPeeps","lead","getLinksOrThrow","peeps","getProjectLinks","projectId","owner","contributors","getEmployeeProjectLinks","employeeId","ownedProjects","contributedProjects","a","b","c","d","registerObject","registerLink","toMatchObject","undefined","getObject","toMatchInlineSnapshot","unregisterLink","p1","p2","updatedP1","replaceObjectOrThrow","unlinkedP1","p2WithOwner"],"sources":["FauxDataStore.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 { beforeEach, describe, expect, it } from \"vitest\";\nimport type { BaseServerObject } from \"./BaseServerObject.js\";\nimport { FauxAttachmentStore } from \"./FauxAttachmentStore.js\";\nimport { FauxDataStore } from \"./FauxDataStore.js\";\nimport { FauxOntology } from \"./FauxOntology.js\";\n\ndescribe(FauxDataStore, () => {\n describe(\"Simple Employee ontology\", () => {\n let attachmentsStore: FauxAttachmentStore;\n let fauxOntology: FauxOntology;\n let fauxDataStore: FauxDataStore;\n\n const pks = [\"a\", \"b\", \"c\", \"d\"] as const;\n const employees = Object\n .fromEntries(\n pks.map((id) =>\n [id, {\n __apiName: \"Employee\",\n __primaryKey: id,\n id,\n }] as const\n ),\n ) as unknown as Record<typeof pks[number], BaseServerObject>;\n\n const projectPks = [\"p1\", \"p2\"] as const;\n const projects = Object\n .fromEntries(\n projectPks.map((id) =>\n [id, {\n __apiName: \"Project\",\n __primaryKey: id,\n id,\n name: `Project ${id}`,\n }] as const\n ),\n ) as unknown as Record<typeof projectPks[number], BaseServerObject>;\n\n beforeEach(() => {\n attachmentsStore = new FauxAttachmentStore();\n fauxOntology = new FauxOntology({\n apiName: \"foo\",\n description: \"foo\",\n displayName: \"foo\",\n rid: \"ri.foo\",\n });\n fauxDataStore = new FauxDataStore(\n fauxOntology,\n attachmentsStore,\n /*strict*/ true,\n );\n\n const Employee = {\n implementsInterfaces: [],\n implementsInterfaces2: {},\n linkTypes: [{\n apiName: \"peeps\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Employee\",\n cardinality: \"MANY\",\n displayName: \"Peeps\",\n linkTypeRid: \"rid.link-type.327\",\n }, {\n apiName: \"lead\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Employee\",\n cardinality: \"ONE\",\n displayName: \"Lead\",\n linkTypeRid: \"rid.link-type.327\",\n foreignKeyPropertyApiName: \"leadId\",\n }, {\n apiName: \"ownedProjects\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Project\",\n cardinality: \"MANY\",\n displayName: \"Owned Projects\",\n linkTypeRid: \"rid.link-type.328\",\n }, {\n apiName: \"contributedProjects\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Project\",\n cardinality: \"MANY\",\n displayName: \"Contributed Projects\",\n linkTypeRid: \"rid.link-type.329\",\n }],\n objectType: {\n apiName: \"Employee\",\n description: \"Employee\",\n displayName: \"Employee\",\n rid: \"ri.Employee\",\n icon: {\n color: \"#000000\",\n name: \"whoCares\",\n type: \"blueprint\",\n },\n pluralDisplayName: \"Employees\",\n primaryKey: \"id\",\n properties: {\n id: {\n dataType: { type: \"string\" },\n rid: \"ri.id\",\n displayName: \"id\",\n description: \"id\",\n typeClasses: [],\n },\n leadId: {\n dataType: { type: \"string\" },\n rid: \"ri.leadId\",\n displayName: \"leadId\",\n description: \"leadId\",\n typeClasses: [],\n },\n },\n status: \"ACTIVE\",\n titleProperty: \"id\",\n },\n sharedPropertyTypeMapping: {},\n } as const;\n\n const Project = {\n implementsInterfaces: [],\n implementsInterfaces2: {},\n linkTypes: [{\n apiName: \"owner\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Employee\",\n cardinality: \"ONE\",\n displayName: \"Owner\",\n linkTypeRid: \"rid.link-type.328\",\n foreignKeyPropertyApiName: \"ownerId\",\n }, {\n apiName: \"contributors\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Employee\",\n cardinality: \"MANY\",\n displayName: \"Contributors\",\n linkTypeRid: \"rid.link-type.329\",\n }],\n objectType: {\n apiName: \"Project\",\n description: \"Project\",\n displayName: \"Project\",\n rid: \"ri.Project\",\n icon: {\n color: \"#0000FF\",\n name: \"project\",\n type: \"blueprint\",\n },\n pluralDisplayName: \"Projects\",\n primaryKey: \"id\",\n properties: {\n id: {\n dataType: { type: \"string\" },\n rid: \"ri.proj.id\",\n displayName: \"id\",\n description: \"id\",\n typeClasses: [],\n },\n name: {\n dataType: { type: \"string\" },\n rid: \"ri.proj.name\",\n displayName: \"name\",\n description: \"name\",\n typeClasses: [],\n },\n ownerId: {\n dataType: { type: \"string\" },\n rid: \"ri.proj.ownerId\",\n displayName: \"ownerId\",\n description: \"ownerId\",\n typeClasses: [],\n },\n },\n status: \"ACTIVE\",\n titleProperty: \"name\",\n },\n sharedPropertyTypeMapping: {},\n } as const;\n\n fauxOntology.registerObjectType(Employee);\n fauxOntology.registerObjectType(Project);\n });\n\n const getLeadsAndPeeps = (id: string) => ({\n lead: fauxDataStore.getLinksOrThrow(\"Employee\", id, \"lead\")[0],\n peeps: fauxDataStore.getLinksOrThrow(\"Employee\", id, \"peeps\"),\n });\n\n const getProjectLinks = (projectId: string) => ({\n owner: fauxDataStore.getLinksOrThrow(\"Project\", projectId, \"owner\")[0],\n contributors: fauxDataStore.getLinksOrThrow(\n \"Project\",\n projectId,\n \"contributors\",\n ),\n });\n\n const getEmployeeProjectLinks = (employeeId: string) => ({\n ownedProjects: fauxDataStore.getLinksOrThrow(\n \"Employee\",\n employeeId,\n \"ownedProjects\",\n ),\n contributedProjects: fauxDataStore.getLinksOrThrow(\n \"Employee\",\n employeeId,\n \"contributedProjects\",\n ),\n });\n\n it(\"should work in the happy paths\", () => {\n const { a, b, c, d } = employees;\n\n // set a's lead to b\n fauxDataStore.registerObject(a);\n fauxDataStore.registerObject(b);\n fauxDataStore.registerLink(a, \"lead\", b, \"peeps\");\n\n expect(getLeadsAndPeeps(\"a\")).toMatchObject({\n lead: b,\n peeps: [],\n });\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: undefined,\n peeps: [a],\n });\n\n // try the reverse (many to one this time)\n fauxDataStore.registerObject(c);\n fauxDataStore.registerObject(d);\n // set c's lead to d\n fauxDataStore.registerLink(d, \"peeps\", c, \"lead\");\n\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c],\n });\n expect(getLeadsAndPeeps(\"c\")).toMatchObject({\n lead: d,\n peeps: [],\n });\n\n // set b's lead to c\n fauxDataStore.registerLink(c, \"peeps\", b, \"lead\");\n expect(fauxDataStore.getObject(b.__apiName, b.__primaryKey))\n .toMatchInlineSnapshot(`\n {\n \"__apiName\": \"Employee\",\n \"__primaryKey\": \"b\",\n \"id\": \"b\",\n \"leadId\": \"c\",\n }\n `);\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: c,\n peeps: [a],\n });\n expect(getLeadsAndPeeps(\"c\")).toMatchObject({\n lead: d,\n peeps: [b],\n });\n\n // change b's lead to d\n fauxDataStore.registerLink(d, \"peeps\", b, \"lead\");\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: d,\n peeps: [a], // b's peeps should not change\n });\n expect(fauxDataStore.getObject(b.__apiName, b.__primaryKey))\n .toMatchObject({\n leadId: \"d\",\n });\n expect(getLeadsAndPeeps(\"c\")).toMatchObject({\n lead: d,\n peeps: [], // c should no longer have b as a peep\n });\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c, b], // d has two peeps now\n });\n\n // remove b's lead\n fauxDataStore.unregisterLink(d, \"peeps\", b, \"lead\");\n expect(fauxDataStore.getObject(b.__apiName, b.__primaryKey))\n .toMatchInlineSnapshot(`\n {\n \"__apiName\": \"Employee\",\n \"__primaryKey\": \"b\",\n \"id\": \"b\",\n \"leadId\": undefined,\n }\n `);\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: undefined,\n peeps: [a], // b's peeps should not change\n });\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c], // d no longer leads b\n });\n\n // change b's lead to d but in the other direction\n fauxDataStore.registerLink(b, \"lead\", d, \"peeps\");\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: d,\n peeps: [a], // b's peeps should not change\n });\n expect(getLeadsAndPeeps(\"c\")).toMatchObject({\n lead: d,\n peeps: [], // c should no longer have b as a peep\n });\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c, b], // d has two peeps now\n });\n\n // remove b's lead in the other direction\n fauxDataStore.unregisterLink(b, \"lead\", d, \"peeps\");\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: undefined,\n peeps: [a], // b's peeps should not change\n });\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c], // d no longer leads b\n });\n });\n\n it(\"should work with links between different object types\", () => {\n const { a, b, c, d } = employees;\n const { p1, p2 } = projects;\n\n // Register objects\n fauxDataStore.registerObject(a);\n fauxDataStore.registerObject(b);\n fauxDataStore.registerObject(c);\n fauxDataStore.registerObject(d);\n fauxDataStore.registerObject(p1);\n fauxDataStore.registerObject(p2);\n\n // 1. Assign employee as project owner (ONE cardinality)\n fauxDataStore.registerLink(p1, \"owner\", a, \"ownedProjects\");\n\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: a,\n contributors: [],\n });\n expect(getEmployeeProjectLinks(\"a\")).toMatchObject({\n ownedProjects: [p1],\n contributedProjects: [],\n });\n expect(fauxDataStore.getObject(p1.__apiName, p1.__primaryKey))\n .toMatchObject({\n ownerId: \"a\",\n });\n\n // 2. Change project ownership\n fauxDataStore.registerLink(p1, \"owner\", b, \"ownedProjects\");\n\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: b,\n contributors: [],\n });\n expect(getEmployeeProjectLinks(\"a\")).toMatchObject({\n ownedProjects: [], // a no longer owns p1\n contributedProjects: [],\n });\n expect(getEmployeeProjectLinks(\"b\")).toMatchObject({\n ownedProjects: [p1],\n contributedProjects: [],\n });\n expect(fauxDataStore.getObject(p1.__apiName, p1.__primaryKey))\n .toMatchObject({\n ownerId: \"b\",\n });\n\n // 3. Add project contributors (MANY cardinality)\n fauxDataStore.registerLink(p1, \"contributors\", c, \"contributedProjects\");\n fauxDataStore.registerLink(p1, \"contributors\", d, \"contributedProjects\");\n\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: b,\n contributors: [c, d],\n });\n expect(getEmployeeProjectLinks(\"c\")).toMatchObject({\n ownedProjects: [],\n contributedProjects: [p1],\n });\n expect(getEmployeeProjectLinks(\"d\")).toMatchObject({\n ownedProjects: [],\n contributedProjects: [p1],\n });\n\n // 4. Remove a contributor\n fauxDataStore.unregisterLink(\n p1,\n \"contributors\",\n c,\n \"contributedProjects\",\n );\n\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: b,\n contributors: [d], // c is removed\n });\n expect(getEmployeeProjectLinks(\"c\")).toMatchObject({\n ownedProjects: [],\n contributedProjects: [], // no longer contributing to p1\n });\n expect(getEmployeeProjectLinks(\"d\")).toMatchObject({\n ownedProjects: [],\n contributedProjects: [p1], // still contributing to p1\n });\n\n // 5. Test with multiple projects\n fauxDataStore.registerLink(p2, \"contributors\", b, \"contributedProjects\");\n\n expect(getProjectLinks(\"p2\")).toMatchObject({\n owner: undefined,\n contributors: [b],\n });\n expect(getEmployeeProjectLinks(\"b\")).toMatchObject({\n ownedProjects: [p1], // owns p1\n contributedProjects: [p2], // contributes to p2\n });\n\n // 6. Remove owner using the opposite direction for unregistering\n fauxDataStore.unregisterLink(b, \"ownedProjects\", p1, \"owner\");\n\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: undefined,\n contributors: [d],\n });\n expect(getEmployeeProjectLinks(\"b\")).toMatchObject({\n ownedProjects: [], // no longer owns p1\n contributedProjects: [p2],\n });\n expect(fauxDataStore.getObject(p1.__apiName, p1.__primaryKey))\n .toMatchObject({\n \"ownerId\": undefined,\n });\n\n // 7. Test setting foreign key directly on project object\n const updatedP1 = {\n ...p1,\n ownerId: \"c\",\n };\n fauxDataStore.replaceObjectOrThrow(updatedP1);\n\n // Verify links are automatically updated\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: c,\n contributors: [d],\n });\n expect(getEmployeeProjectLinks(\"c\")).toMatchObject({\n ownedProjects: [p1],\n contributedProjects: [],\n });\n expect(fauxDataStore.getObject(p1.__apiName, p1.__primaryKey))\n .toMatchObject({\n \"ownerId\": \"c\",\n });\n\n // 8. Test removing foreign key by setting it to undefined\n const unlinkedP1 = {\n ...p1,\n ownerId: undefined,\n };\n fauxDataStore.replaceObjectOrThrow(unlinkedP1);\n\n // Verify links are properly removed\n expect(getProjectLinks(\"p1\")).toMatchObject({\n owner: undefined,\n contributors: [d],\n });\n expect(getEmployeeProjectLinks(\"c\")).toMatchObject({\n ownedProjects: [],\n contributedProjects: [],\n });\n\n // 9. Test setting multiple links through foreign keys\n // Add both d and c as owners by setting one at a time\n const p2WithOwner = {\n ...p2,\n ownerId: \"d\",\n };\n fauxDataStore.replaceObjectOrThrow(p2WithOwner);\n\n expect(getProjectLinks(\"p2\")).toMatchObject({\n owner: d,\n contributors: [b],\n });\n expect(getEmployeeProjectLinks(\"d\")).toMatchObject({\n ownedProjects: [p2],\n contributedProjects: [p1],\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -292,6 +292,7 @@ export function filterObjects(objects, where) {
292
292
  case "withinBoundingBox":
293
293
  case "withinPolygon":
294
294
  case "withinDistanceOf":
295
+ case "geoShapeV2":
295
296
  throw new Error(`Unhandled where type: ${where.type} in ${JSON.stringify(where)}`);
296
297
  default:
297
298
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filterObjects.js","names":["invariant","filterObjects","objects","where","type","propertyIdentifier","field","console","error","Error","process","env","NODE_ENV","ret","filter","obj","value","includes","fieldValue","Array","isArray","subWhere","results","Set","subResults","result","add","from","length","searchTerms","toLowerCase","split","lowerFieldValue","some","term","every","lastIndex","index","indexOf","i","lastTerm","remainingText","substring","startsWith","JSON","stringify"],"sources":["filterObjects.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\n/* eslint-disable no-console */\n\nimport type * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { BaseServerObject } from \"./BaseServerObject.js\";\n\nexport function filterObjects(\n objects: BaseServerObject[],\n where: OntologiesV2.SearchJsonQueryV2,\n): BaseServerObject[] {\n switch (where.type) {\n case \"eq\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n const ret = objects.filter((obj) => {\n return obj[field] === where.value;\n });\n return ret;\n }\n\n case \"gt\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n return obj[field] > where.value;\n });\n }\n\n case \"lt\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n return obj[field] < where.value;\n });\n }\n\n case \"gte\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n return obj[field] >= where.value;\n });\n }\n\n case \"lte\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n return obj[field] <= where.value;\n });\n }\n\n case \"in\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n return where.value.includes(obj[field]);\n });\n }\n\n case \"contains\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n const fieldValue = obj[field];\n if (Array.isArray(fieldValue)) {\n return fieldValue.includes(where.value);\n }\n return false;\n });\n }\n\n case \"and\": {\n const { value } = where;\n for (const subWhere of value) {\n objects = filterObjects(objects, subWhere);\n }\n return objects;\n }\n\n case \"or\": {\n const { value } = where;\n const results = new Set<BaseServerObject>();\n for (const subWhere of value) {\n const subResults = filterObjects(objects, subWhere);\n for (const result of subResults) {\n results.add(result);\n }\n }\n return Array.from(results);\n }\n\n case \"not\": {\n const { value } = where;\n return objects.filter((obj) => {\n return !filterObjects([obj], value).length;\n });\n }\n\n case \"isNull\": {\n const { propertyIdentifier, field, value } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n return value ? obj[field] == null : obj[field] != null;\n });\n }\n\n case \"containsAnyTerm\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n const searchTerms = where.value.toLowerCase().split(/\\s+/);\n return objects.filter((obj) => {\n const fieldValue = obj[field];\n if (typeof fieldValue === \"string\") {\n const lowerFieldValue = fieldValue.toLowerCase();\n return searchTerms.some(term => lowerFieldValue.includes(term));\n }\n return false;\n });\n }\n\n case \"containsAllTerms\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n const searchTerms = where.value.toLowerCase().split(/\\s+/);\n return objects.filter((obj) => {\n const fieldValue = obj[field];\n if (typeof fieldValue === \"string\") {\n const lowerFieldValue = fieldValue.toLowerCase();\n return searchTerms.every(term => lowerFieldValue.includes(term));\n }\n return false;\n });\n }\n\n case \"containsAllTermsInOrder\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n const searchTerms = where.value.toLowerCase().split(/\\s+/);\n return objects.filter((obj) => {\n const fieldValue = obj[field];\n if (typeof fieldValue === \"string\") {\n const lowerFieldValue = fieldValue.toLowerCase();\n let lastIndex = -1;\n return searchTerms.every(term => {\n const index = lowerFieldValue.indexOf(term, lastIndex + 1);\n if (index > lastIndex) {\n lastIndex = index;\n return true;\n }\n return false;\n });\n }\n return false;\n });\n }\n\n case \"startsWith\":\n case \"containsAllTermsInOrderPrefixLastTerm\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n const searchTerms = where.value.toLowerCase().split(/\\s+/);\n return objects.filter((obj) => {\n const fieldValue = obj[field];\n if (typeof fieldValue === \"string\") {\n const lowerFieldValue = fieldValue.toLowerCase();\n if (searchTerms.length === 0) return true;\n\n let lastIndex = -1;\n for (let i = 0; i < searchTerms.length - 1; i++) {\n const index = lowerFieldValue.indexOf(\n searchTerms[i],\n lastIndex + 1,\n );\n if (index <= lastIndex) return false;\n lastIndex = index;\n }\n\n const lastTerm = searchTerms[searchTerms.length - 1];\n const remainingText = lowerFieldValue.substring(lastIndex + 1);\n return remainingText.includes(lastTerm)\n || remainingText.startsWith(lastTerm);\n }\n return false;\n });\n }\n case \"regex\":\n case \"wildcard\":\n case \"interval\":\n case \"relativeDateRange\":\n // TODO: Implement geospatial filter clauses (require specialized geospatial libraries):\n case \"doesNotIntersectBoundingBox\":\n case \"doesNotIntersectPolygon\":\n case \"intersectsBoundingBox\":\n case \"intersectsPolygon\":\n case \"withinBoundingBox\":\n case \"withinPolygon\":\n case \"withinDistanceOf\":\n throw new Error(\n `Unhandled where type: ${where.type} in ${JSON.stringify(where)}`,\n );\n default:\n where satisfies never;\n }\n console.error(\n \"-=-=-=-=-=-= Unhandled where type: \\n\"\n + `Unhandled where type: ${JSON.stringify(where)}`,\n );\n throw new Error(\n `Unhandled where type: ${JSON.stringify(where)}`,\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"filterObjects.js","names":["invariant","filterObjects","objects","where","type","propertyIdentifier","field","console","error","Error","process","env","NODE_ENV","ret","filter","obj","value","includes","fieldValue","Array","isArray","subWhere","results","Set","subResults","result","add","from","length","searchTerms","toLowerCase","split","lowerFieldValue","some","term","every","lastIndex","index","indexOf","i","lastTerm","remainingText","substring","startsWith","JSON","stringify"],"sources":["filterObjects.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\n/* eslint-disable no-console */\n\nimport type * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { BaseServerObject } from \"./BaseServerObject.js\";\n\nexport function filterObjects(\n objects: BaseServerObject[],\n where: OntologiesV2.SearchJsonQueryV2,\n): BaseServerObject[] {\n switch (where.type) {\n case \"eq\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n const ret = objects.filter((obj) => {\n return obj[field] === where.value;\n });\n return ret;\n }\n\n case \"gt\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n return obj[field] > where.value;\n });\n }\n\n case \"lt\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n return obj[field] < where.value;\n });\n }\n\n case \"gte\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n return obj[field] >= where.value;\n });\n }\n\n case \"lte\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n return obj[field] <= where.value;\n });\n }\n\n case \"in\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n return where.value.includes(obj[field]);\n });\n }\n\n case \"contains\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n const fieldValue = obj[field];\n if (Array.isArray(fieldValue)) {\n return fieldValue.includes(where.value);\n }\n return false;\n });\n }\n\n case \"and\": {\n const { value } = where;\n for (const subWhere of value) {\n objects = filterObjects(objects, subWhere);\n }\n return objects;\n }\n\n case \"or\": {\n const { value } = where;\n const results = new Set<BaseServerObject>();\n for (const subWhere of value) {\n const subResults = filterObjects(objects, subWhere);\n for (const result of subResults) {\n results.add(result);\n }\n }\n return Array.from(results);\n }\n\n case \"not\": {\n const { value } = where;\n return objects.filter((obj) => {\n return !filterObjects([obj], value).length;\n });\n }\n\n case \"isNull\": {\n const { propertyIdentifier, field, value } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n return objects.filter((obj) => {\n return value ? obj[field] == null : obj[field] != null;\n });\n }\n\n case \"containsAnyTerm\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n const searchTerms = where.value.toLowerCase().split(/\\s+/);\n return objects.filter((obj) => {\n const fieldValue = obj[field];\n if (typeof fieldValue === \"string\") {\n const lowerFieldValue = fieldValue.toLowerCase();\n return searchTerms.some(term => lowerFieldValue.includes(term));\n }\n return false;\n });\n }\n\n case \"containsAllTerms\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n const searchTerms = where.value.toLowerCase().split(/\\s+/);\n return objects.filter((obj) => {\n const fieldValue = obj[field];\n if (typeof fieldValue === \"string\") {\n const lowerFieldValue = fieldValue.toLowerCase();\n return searchTerms.every(term => lowerFieldValue.includes(term));\n }\n return false;\n });\n }\n\n case \"containsAllTermsInOrder\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n const searchTerms = where.value.toLowerCase().split(/\\s+/);\n return objects.filter((obj) => {\n const fieldValue = obj[field];\n if (typeof fieldValue === \"string\") {\n const lowerFieldValue = fieldValue.toLowerCase();\n let lastIndex = -1;\n return searchTerms.every(term => {\n const index = lowerFieldValue.indexOf(term, lastIndex + 1);\n if (index > lastIndex) {\n lastIndex = index;\n return true;\n }\n return false;\n });\n }\n return false;\n });\n }\n\n case \"startsWith\":\n case \"containsAllTermsInOrderPrefixLastTerm\": {\n const { propertyIdentifier, field } = where;\n if (propertyIdentifier) {\n console.error(\"propertyIdentifier not supported\", where);\n throw new Error(\"propertyIdentifier not supported\");\n }\n invariant(field);\n const searchTerms = where.value.toLowerCase().split(/\\s+/);\n return objects.filter((obj) => {\n const fieldValue = obj[field];\n if (typeof fieldValue === \"string\") {\n const lowerFieldValue = fieldValue.toLowerCase();\n if (searchTerms.length === 0) return true;\n\n let lastIndex = -1;\n for (let i = 0; i < searchTerms.length - 1; i++) {\n const index = lowerFieldValue.indexOf(\n searchTerms[i],\n lastIndex + 1,\n );\n if (index <= lastIndex) return false;\n lastIndex = index;\n }\n\n const lastTerm = searchTerms[searchTerms.length - 1];\n const remainingText = lowerFieldValue.substring(lastIndex + 1);\n return remainingText.includes(lastTerm)\n || remainingText.startsWith(lastTerm);\n }\n return false;\n });\n }\n case \"regex\":\n case \"wildcard\":\n case \"interval\":\n case \"relativeDateRange\":\n // TODO: Implement geospatial filter clauses (require specialized geospatial libraries):\n case \"doesNotIntersectBoundingBox\":\n case \"doesNotIntersectPolygon\":\n case \"intersectsBoundingBox\":\n case \"intersectsPolygon\":\n case \"withinBoundingBox\":\n case \"withinPolygon\":\n case \"withinDistanceOf\":\n case \"geoShapeV2\":\n throw new Error(\n `Unhandled where type: ${where.type} in ${JSON.stringify(where)}`,\n );\n default:\n where satisfies never;\n }\n console.error(\n \"-=-=-=-=-=-= Unhandled where type: \\n\"\n + `Unhandled where type: ${JSON.stringify(where)}`,\n );\n throw new Error(\n `Unhandled where type: ${JSON.stringify(where)}`,\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -433,7 +433,8 @@ describe("matchesOntologyDataType", () => {
433
433
  describe("unsupported type", () => {
434
434
  const dataType = {
435
435
  type: "unsupported",
436
- unsupportedType: "someCustomType"
436
+ unsupportedType: "someCustomType",
437
+ params: {}
437
438
  };
438
439
  it("should throw an error", () => {
439
440
  expect(() => matchesOntologyDataType(dataType, "anything")).toThrow("matchesOntologyDataType: unsupported not implemented yet.");
@@ -1 +1 @@
1
- {"version":3,"file":"validateAction.test.js","names":["describe","expect","it","isInterfaceActionParam","isMediaReference","matchesOntologyDataType","dataType","type","undefined","toBe","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","MAX_VALUE","Infinity","Date","objectApiName","objectTypeApiName","$primaryKey","name","objectSet","itemType","length","toThrow","keyType","valueType","Set","fields","unsupportedType","mimeType","reference","mediaSetViewItem","mediaSetRid","mediaSetViewRid","mediaItemRid","primaryKeyValue"],"sources":["validateAction.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 { OntologyDataType } from \"@osdk/foundry.ontologies\";\nimport { describe, expect, it } from \"vitest\";\nimport {\n isInterfaceActionParam,\n isMediaReference,\n matchesOntologyDataType,\n} from \"./validateAction.js\";\n\ndescribe(\"matchesOntologyDataType\", () => {\n describe(\"any type\", () => {\n it(\"should return true for any value\", () => {\n const dataType: OntologyDataType = { type: \"any\" };\n\n expect(matchesOntologyDataType(dataType, undefined)).toBe(true);\n expect(matchesOntologyDataType(dataType, null)).toBe(true);\n expect(matchesOntologyDataType(dataType, \"string\")).toBe(true);\n expect(matchesOntologyDataType(dataType, 123)).toBe(true);\n expect(matchesOntologyDataType(dataType, true)).toBe(true);\n expect(matchesOntologyDataType(dataType, {})).toBe(true);\n expect(matchesOntologyDataType(dataType, [])).toBe(true);\n });\n });\n\n describe(\"boolean type\", () => {\n const dataType: OntologyDataType = { type: \"boolean\" };\n\n it(\"should return true for boolean values\", () => {\n expect(matchesOntologyDataType(dataType, true)).toBe(true);\n expect(matchesOntologyDataType(dataType, false)).toBe(true);\n });\n\n it(\"should return false for non-boolean values\", () => {\n expect(matchesOntologyDataType(dataType, \"true\")).toBe(false);\n expect(matchesOntologyDataType(dataType, 1)).toBe(false);\n expect(matchesOntologyDataType(dataType, 0)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n expect(matchesOntologyDataType(dataType, undefined)).toBe(false);\n });\n });\n\n describe(\"string type\", () => {\n const dataType: OntologyDataType = { type: \"string\" };\n\n it(\"should return true for string values\", () => {\n expect(matchesOntologyDataType(dataType, \"\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"hello\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(true);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n expect(matchesOntologyDataType(dataType, undefined)).toBe(false);\n expect(matchesOntologyDataType(dataType, {})).toBe(false);\n });\n });\n\n describe(\"integer type\", () => {\n const dataType: OntologyDataType = { type: \"integer\" };\n\n it(\"should return true for valid integer values within bounds\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 1)).toBe(true);\n expect(matchesOntologyDataType(dataType, -1)).toBe(true);\n expect(matchesOntologyDataType(dataType, 2147483647)).toBe(true); // max int\n expect(matchesOntologyDataType(dataType, -2147483648)).toBe(true); // min int\n });\n\n it(\"should return false for non-integer values\", () => {\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(false);\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n\n it(\"should return false for integers out of bounds\", () => {\n expect(matchesOntologyDataType(dataType, 2147483648)).toBe(false); // max + 1\n expect(matchesOntologyDataType(dataType, -2147483649)).toBe(false); // min - 1\n });\n });\n\n describe(\"long type\", () => {\n const dataType: OntologyDataType = { type: \"long\" };\n\n it(\"should return true for valid long values within safe integer bounds\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, Number.MAX_SAFE_INTEGER)).toBe(\n true,\n );\n expect(matchesOntologyDataType(dataType, Number.MIN_SAFE_INTEGER)).toBe(\n true,\n );\n });\n\n it(\"should return false for non-integer values\", () => {\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(false);\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(false);\n });\n\n it(\"should return false for values outside safe integer range\", () => {\n expect(\n matchesOntologyDataType(dataType, Number.MAX_SAFE_INTEGER + 1),\n ).toBe(false);\n expect(\n matchesOntologyDataType(dataType, Number.MIN_SAFE_INTEGER - 1),\n ).toBe(false);\n });\n });\n\n describe(\"double type\", () => {\n const dataType: OntologyDataType = { type: \"double\" };\n\n it(\"should return true for valid double values\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(true);\n expect(matchesOntologyDataType(dataType, -1.5)).toBe(true);\n expect(matchesOntologyDataType(dataType, Number.MAX_VALUE)).toBe(true);\n expect(matchesOntologyDataType(dataType, -Number.MAX_VALUE)).toBe(true);\n });\n\n it(\"should return false for non-number values\", () => {\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n\n it(\"should return false for Infinity\", () => {\n expect(matchesOntologyDataType(dataType, Infinity)).toBe(false);\n expect(matchesOntologyDataType(dataType, -Infinity)).toBe(false);\n });\n });\n\n describe(\"float type\", () => {\n const dataType: OntologyDataType = { type: \"float\" };\n\n it(\"should return true for valid float values within bounds\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(true);\n expect(matchesOntologyDataType(dataType, -1.5)).toBe(true);\n expect(matchesOntologyDataType(dataType, 3.4028235e38)).toBe(true);\n expect(matchesOntologyDataType(dataType, -3.4028235e38)).toBe(true);\n });\n\n it(\"should return false for values outside float bounds\", () => {\n expect(matchesOntologyDataType(dataType, 3.5e38)).toBe(false);\n expect(matchesOntologyDataType(dataType, -3.5e38)).toBe(false);\n });\n });\n\n describe(\"byte type\", () => {\n const dataType: OntologyDataType = { type: \"byte\" };\n\n it(\"should return true for valid byte values\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 127)).toBe(true);\n expect(matchesOntologyDataType(dataType, -128)).toBe(true);\n });\n\n it(\"should return false for values outside byte bounds\", () => {\n expect(matchesOntologyDataType(dataType, 128)).toBe(false);\n expect(matchesOntologyDataType(dataType, -129)).toBe(false);\n });\n\n it(\"should return false for non-integer values\", () => {\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(true); // Note: isInBounds doesn't check for integers for byte\n });\n });\n\n describe(\"short type\", () => {\n const dataType: OntologyDataType = { type: \"short\" };\n\n it(\"should return true for valid short values\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 32767)).toBe(true);\n expect(matchesOntologyDataType(dataType, -32768)).toBe(true);\n });\n\n it(\"should return false for values outside short bounds\", () => {\n expect(matchesOntologyDataType(dataType, 32768)).toBe(false);\n expect(matchesOntologyDataType(dataType, -32769)).toBe(false);\n });\n });\n\n describe(\"date type\", () => {\n const dataType: OntologyDataType = { type: \"date\" };\n\n it(\"should return true for valid date strings\", () => {\n expect(matchesOntologyDataType(dataType, \"2025-01-15\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"2000-12-31\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"1970-01-01\")).toBe(true);\n });\n\n it(\"should return false for invalid date strings\", () => {\n expect(matchesOntologyDataType(dataType, \"2025-13-01\")).toBe(false); // invalid month\n expect(matchesOntologyDataType(dataType, \"2025-01-32\")).toBe(false); // invalid day\n expect(matchesOntologyDataType(dataType, \"2025/01/15\")).toBe(false); // wrong format\n expect(matchesOntologyDataType(dataType, \"01-15-2025\")).toBe(false); // wrong format\n expect(matchesOntologyDataType(dataType, \"not a date\")).toBe(false);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, new Date())).toBe(false);\n });\n });\n\n describe(\"timestamp type\", () => {\n const dataType: OntologyDataType = { type: \"timestamp\" };\n\n it(\"should return true for valid timestamp strings\", () => {\n expect(matchesOntologyDataType(dataType, \"2025-01-15T10:30:00Z\")).toBe(\n true,\n );\n expect(\n matchesOntologyDataType(dataType, \"2025-01-15T10:30:00.123Z\"),\n ).toBe(true);\n expect(matchesOntologyDataType(dataType, \"2025-01-15\")).toBe(true);\n });\n\n it(\"should return false for invalid timestamp strings\", () => {\n expect(matchesOntologyDataType(dataType, \"not a timestamp\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"\")).toBe(false);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, new Date())).toBe(false);\n });\n });\n\n describe(\"decimal type\", () => {\n const dataType: OntologyDataType = { type: \"decimal\" };\n\n it(\"should return true for valid decimal strings\", () => {\n expect(matchesOntologyDataType(dataType, \"0\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"123.456\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"-123.456\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"+123.456\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \".5\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"-.5\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"123.\")).toBe(true);\n });\n\n it(\"should return true for valid decimal strings with scientific notation\", () => {\n expect(matchesOntologyDataType(dataType, \"1E10\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"1.5E10\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"1.5E+10\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"1.5E-10\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"-1.5E10\")).toBe(true);\n });\n\n it(\"should return false for invalid decimal strings\", () => {\n expect(matchesOntologyDataType(dataType, \"abc\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"12.34.56\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"1.2.3E10\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"E10\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"1E\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"1e10\")).toBe(false);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123.456)).toBe(false);\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n expect(matchesOntologyDataType(dataType, undefined)).toBe(false);\n expect(matchesOntologyDataType(dataType, {})).toBe(false);\n });\n });\n\n describe(\"marking type\", () => {\n const dataType: OntologyDataType = { type: \"marking\" };\n\n it(\"should return true for string values\", () => {\n expect(matchesOntologyDataType(dataType, \"marking1\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"\")).toBe(true);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n });\n\n describe(\"object type\", () => {\n const dataType: OntologyDataType = {\n type: \"object\",\n objectApiName: \"Employee\",\n objectTypeApiName: \"Employee\",\n };\n\n it(\"should return true for string (RID) values\", () => {\n expect(matchesOntologyDataType(dataType, \"ri.object.123\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"someId\")).toBe(true);\n });\n\n it(\"should return true for objects with $primaryKey\", () => {\n expect(matchesOntologyDataType(dataType, { $primaryKey: \"123\" })).toBe(\n true,\n );\n expect(\n matchesOntologyDataType(dataType, {\n $primaryKey: \"123\",\n name: \"test\",\n }),\n ).toBe(true);\n });\n\n it(\"should return false for objects without $primaryKey\", () => {\n expect(matchesOntologyDataType(dataType, { name: \"test\" })).toBe(false);\n expect(matchesOntologyDataType(dataType, {})).toBe(false);\n });\n\n it(\"should return false for other value types\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n });\n\n describe(\"objectSet type\", () => {\n const dataType: OntologyDataType = { type: \"objectSet\" };\n\n it(\"should return true for RID strings\", () => {\n expect(matchesOntologyDataType(dataType, \"ri.objectSet.123\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"ri.anything.456\")).toBe(true);\n });\n\n it(\"should return true for objects with objectSet property\", () => {\n expect(\n matchesOntologyDataType(dataType, { objectSet: \"definition\" }),\n ).toBe(true);\n });\n\n it(\"should return false for non-RID strings\", () => {\n expect(matchesOntologyDataType(dataType, \"not a rid\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"objectSet\")).toBe(false);\n });\n\n it(\"should return false for objects without objectSet property\", () => {\n expect(matchesOntologyDataType(dataType, { name: \"test\" })).toBe(false);\n });\n });\n\n describe(\"array type\", () => {\n it(\"should return true for arrays with matching item types\", () => {\n const dataType: OntologyDataType = {\n type: \"array\",\n itemType: { type: \"string\" },\n };\n\n expect(matchesOntologyDataType(dataType, [])).toBe(true);\n expect(matchesOntologyDataType(dataType, [\"a\", \"b\", \"c\"])).toBe(true);\n });\n\n it(\"should return false for arrays with non-matching item types\", () => {\n const dataType: OntologyDataType = {\n type: \"array\",\n itemType: { type: \"string\" },\n };\n\n expect(matchesOntologyDataType(dataType, [1, 2, 3])).toBe(false);\n expect(matchesOntologyDataType(dataType, [\"a\", 1, \"c\"])).toBe(false);\n });\n\n it(\"should work with nested arrays\", () => {\n const dataType: OntologyDataType = {\n type: \"array\",\n itemType: {\n type: \"array\",\n itemType: { type: \"integer\" },\n },\n };\n\n expect(matchesOntologyDataType(dataType, [[1, 2], [3, 4]])).toBe(true);\n expect(matchesOntologyDataType(dataType, [[1, 2], [\"a\", \"b\"]])).toBe(\n false,\n );\n });\n\n it(\"should return false for non-array values\", () => {\n const dataType: OntologyDataType = {\n type: \"array\",\n itemType: { type: \"string\" },\n };\n\n expect(matchesOntologyDataType(dataType, \"not an array\")).toBe(false);\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, { length: 0 })).toBe(false);\n });\n });\n\n describe(\"cipherText type\", () => {\n const dataType: OntologyDataType = { type: \"cipherText\" };\n\n it(\"should return true for valid CIPHER format\", () => {\n expect(\n matchesOntologyDataType(\n dataType,\n \"CIPHER::ri.channel.123::encrypted::CIPHER\",\n ),\n ).toBe(true);\n });\n\n it(\"should return true for valid BELLASO format\", () => {\n expect(\n matchesOntologyDataType(\n dataType,\n \"BELLASO::ri.channel.123::encrypted::BELLASO\",\n ),\n ).toBe(true);\n });\n\n it(\"should return true for valid BELLASO format without suffix\", () => {\n expect(\n matchesOntologyDataType(dataType, \"BELLASO::ri.channel.123::encrypted\"),\n ).toBe(true);\n });\n\n it(\"should return false for invalid cipher format\", () => {\n expect(matchesOntologyDataType(dataType, \"CIPHER::channel::data\")).toBe(\n false,\n ); // missing ri. prefix\n expect(\n matchesOntologyDataType(dataType, \"CIPHER::ri.channel.123::\"),\n ).toBe(false); // empty encrypted value\n expect(\n matchesOntologyDataType(\n dataType,\n \"INVALID::ri.channel.123::data::INVALID\",\n ),\n ).toBe(false);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n });\n\n describe(\"binary type\", () => {\n const dataType: OntologyDataType = { type: \"binary\" };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, \"data\")).toThrow(\n \"validateDataType: binary not implemented yet.\",\n );\n });\n });\n\n describe(\"map type\", () => {\n const dataType: OntologyDataType = {\n type: \"map\",\n keyType: { type: \"string\" },\n valueType: { type: \"integer\" },\n };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, {})).toThrow(\n \"matchesOntologyDataType: map not implemented yet.\",\n );\n });\n });\n\n describe(\"set type\", () => {\n const dataType: OntologyDataType = {\n type: \"set\",\n itemType: { type: \"string\" },\n };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, new Set())).toThrow(\n \"matchesOntologyDataType: set not implemented yet.\",\n );\n });\n });\n\n describe(\"struct type\", () => {\n const dataType: OntologyDataType = {\n type: \"struct\",\n fields: [],\n };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, {})).toThrow(\n \"matchesOntologyDataType: struct not implemented yet.\",\n );\n });\n });\n\n describe(\"unsupported type\", () => {\n const dataType: OntologyDataType = {\n type: \"unsupported\",\n unsupportedType: \"someCustomType\",\n };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, \"anything\")).toThrow(\n \"matchesOntologyDataType: unsupported not implemented yet.\",\n );\n });\n });\n});\n\ndescribe(\"isMediaReference\", () => {\n it(\"should return true for valid MediaReference objects\", () => {\n const validMediaRef = {\n mimeType: \"image/png\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaSetRid: \"ri.mediaset.123\",\n mediaSetViewRid: \"ri.mediasetview.456\",\n mediaItemRid: \"ri.mediaitem.789\",\n },\n },\n };\n\n expect(isMediaReference(validMediaRef)).toBe(true);\n });\n\n it(\"should return false for objects missing required properties\", () => {\n expect(isMediaReference({ mimeType: \"image/png\" })).toBe(false);\n expect(\n isMediaReference({\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {},\n },\n }),\n ).toBe(false);\n });\n\n it(\"should return false for objects with incorrect reference type\", () => {\n const invalidMediaRef = {\n mimeType: \"image/png\",\n reference: {\n type: \"wrongType\",\n mediaSetViewItem: {\n mediaSetRid: \"ri.mediaset.123\",\n mediaSetViewRid: \"ri.mediasetview.456\",\n mediaItemRid: \"ri.mediaitem.789\",\n },\n },\n };\n\n expect(isMediaReference(invalidMediaRef)).toBe(false);\n });\n});\n\ndescribe(\"isInterfaceActionParam\", () => {\n it(\"should return true for valid interface action params with string primary key\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: \"emp-123\",\n }),\n ).toBe(true);\n });\n\n it(\"should return true for valid interface action params with number primary key\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: 123,\n }),\n ).toBe(true);\n });\n\n it(\"should return true for valid interface action params with boolean primary key\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: true,\n }),\n ).toBe(true);\n });\n\n it(\"should return false for objects missing objectTypeApiName\", () => {\n expect(\n isInterfaceActionParam({\n primaryKeyValue: \"123\",\n }),\n ).toBe(false);\n });\n\n it(\"should return false for objects missing primaryKeyValue\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n }),\n ).toBe(false);\n });\n\n it(\"should return false for objects with invalid primaryKeyValue type\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: {},\n }),\n ).toBe(false);\n\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: [],\n }),\n ).toBe(false);\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"validateAction.test.js","names":["describe","expect","it","isInterfaceActionParam","isMediaReference","matchesOntologyDataType","dataType","type","undefined","toBe","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","MAX_VALUE","Infinity","Date","objectApiName","objectTypeApiName","$primaryKey","name","objectSet","itemType","length","toThrow","keyType","valueType","Set","fields","unsupportedType","params","mimeType","reference","mediaSetViewItem","mediaSetRid","mediaSetViewRid","mediaItemRid","primaryKeyValue"],"sources":["validateAction.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 { OntologyDataType } from \"@osdk/foundry.ontologies\";\nimport { describe, expect, it } from \"vitest\";\nimport {\n isInterfaceActionParam,\n isMediaReference,\n matchesOntologyDataType,\n} from \"./validateAction.js\";\n\ndescribe(\"matchesOntologyDataType\", () => {\n describe(\"any type\", () => {\n it(\"should return true for any value\", () => {\n const dataType: OntologyDataType = { type: \"any\" };\n\n expect(matchesOntologyDataType(dataType, undefined)).toBe(true);\n expect(matchesOntologyDataType(dataType, null)).toBe(true);\n expect(matchesOntologyDataType(dataType, \"string\")).toBe(true);\n expect(matchesOntologyDataType(dataType, 123)).toBe(true);\n expect(matchesOntologyDataType(dataType, true)).toBe(true);\n expect(matchesOntologyDataType(dataType, {})).toBe(true);\n expect(matchesOntologyDataType(dataType, [])).toBe(true);\n });\n });\n\n describe(\"boolean type\", () => {\n const dataType: OntologyDataType = { type: \"boolean\" };\n\n it(\"should return true for boolean values\", () => {\n expect(matchesOntologyDataType(dataType, true)).toBe(true);\n expect(matchesOntologyDataType(dataType, false)).toBe(true);\n });\n\n it(\"should return false for non-boolean values\", () => {\n expect(matchesOntologyDataType(dataType, \"true\")).toBe(false);\n expect(matchesOntologyDataType(dataType, 1)).toBe(false);\n expect(matchesOntologyDataType(dataType, 0)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n expect(matchesOntologyDataType(dataType, undefined)).toBe(false);\n });\n });\n\n describe(\"string type\", () => {\n const dataType: OntologyDataType = { type: \"string\" };\n\n it(\"should return true for string values\", () => {\n expect(matchesOntologyDataType(dataType, \"\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"hello\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(true);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n expect(matchesOntologyDataType(dataType, undefined)).toBe(false);\n expect(matchesOntologyDataType(dataType, {})).toBe(false);\n });\n });\n\n describe(\"integer type\", () => {\n const dataType: OntologyDataType = { type: \"integer\" };\n\n it(\"should return true for valid integer values within bounds\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 1)).toBe(true);\n expect(matchesOntologyDataType(dataType, -1)).toBe(true);\n expect(matchesOntologyDataType(dataType, 2147483647)).toBe(true); // max int\n expect(matchesOntologyDataType(dataType, -2147483648)).toBe(true); // min int\n });\n\n it(\"should return false for non-integer values\", () => {\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(false);\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n\n it(\"should return false for integers out of bounds\", () => {\n expect(matchesOntologyDataType(dataType, 2147483648)).toBe(false); // max + 1\n expect(matchesOntologyDataType(dataType, -2147483649)).toBe(false); // min - 1\n });\n });\n\n describe(\"long type\", () => {\n const dataType: OntologyDataType = { type: \"long\" };\n\n it(\"should return true for valid long values within safe integer bounds\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, Number.MAX_SAFE_INTEGER)).toBe(\n true,\n );\n expect(matchesOntologyDataType(dataType, Number.MIN_SAFE_INTEGER)).toBe(\n true,\n );\n });\n\n it(\"should return false for non-integer values\", () => {\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(false);\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(false);\n });\n\n it(\"should return false for values outside safe integer range\", () => {\n expect(\n matchesOntologyDataType(dataType, Number.MAX_SAFE_INTEGER + 1),\n ).toBe(false);\n expect(\n matchesOntologyDataType(dataType, Number.MIN_SAFE_INTEGER - 1),\n ).toBe(false);\n });\n });\n\n describe(\"double type\", () => {\n const dataType: OntologyDataType = { type: \"double\" };\n\n it(\"should return true for valid double values\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(true);\n expect(matchesOntologyDataType(dataType, -1.5)).toBe(true);\n expect(matchesOntologyDataType(dataType, Number.MAX_VALUE)).toBe(true);\n expect(matchesOntologyDataType(dataType, -Number.MAX_VALUE)).toBe(true);\n });\n\n it(\"should return false for non-number values\", () => {\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n\n it(\"should return false for Infinity\", () => {\n expect(matchesOntologyDataType(dataType, Infinity)).toBe(false);\n expect(matchesOntologyDataType(dataType, -Infinity)).toBe(false);\n });\n });\n\n describe(\"float type\", () => {\n const dataType: OntologyDataType = { type: \"float\" };\n\n it(\"should return true for valid float values within bounds\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(true);\n expect(matchesOntologyDataType(dataType, -1.5)).toBe(true);\n expect(matchesOntologyDataType(dataType, 3.4028235e38)).toBe(true);\n expect(matchesOntologyDataType(dataType, -3.4028235e38)).toBe(true);\n });\n\n it(\"should return false for values outside float bounds\", () => {\n expect(matchesOntologyDataType(dataType, 3.5e38)).toBe(false);\n expect(matchesOntologyDataType(dataType, -3.5e38)).toBe(false);\n });\n });\n\n describe(\"byte type\", () => {\n const dataType: OntologyDataType = { type: \"byte\" };\n\n it(\"should return true for valid byte values\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 127)).toBe(true);\n expect(matchesOntologyDataType(dataType, -128)).toBe(true);\n });\n\n it(\"should return false for values outside byte bounds\", () => {\n expect(matchesOntologyDataType(dataType, 128)).toBe(false);\n expect(matchesOntologyDataType(dataType, -129)).toBe(false);\n });\n\n it(\"should return false for non-integer values\", () => {\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(true); // Note: isInBounds doesn't check for integers for byte\n });\n });\n\n describe(\"short type\", () => {\n const dataType: OntologyDataType = { type: \"short\" };\n\n it(\"should return true for valid short values\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 32767)).toBe(true);\n expect(matchesOntologyDataType(dataType, -32768)).toBe(true);\n });\n\n it(\"should return false for values outside short bounds\", () => {\n expect(matchesOntologyDataType(dataType, 32768)).toBe(false);\n expect(matchesOntologyDataType(dataType, -32769)).toBe(false);\n });\n });\n\n describe(\"date type\", () => {\n const dataType: OntologyDataType = { type: \"date\" };\n\n it(\"should return true for valid date strings\", () => {\n expect(matchesOntologyDataType(dataType, \"2025-01-15\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"2000-12-31\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"1970-01-01\")).toBe(true);\n });\n\n it(\"should return false for invalid date strings\", () => {\n expect(matchesOntologyDataType(dataType, \"2025-13-01\")).toBe(false); // invalid month\n expect(matchesOntologyDataType(dataType, \"2025-01-32\")).toBe(false); // invalid day\n expect(matchesOntologyDataType(dataType, \"2025/01/15\")).toBe(false); // wrong format\n expect(matchesOntologyDataType(dataType, \"01-15-2025\")).toBe(false); // wrong format\n expect(matchesOntologyDataType(dataType, \"not a date\")).toBe(false);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, new Date())).toBe(false);\n });\n });\n\n describe(\"timestamp type\", () => {\n const dataType: OntologyDataType = { type: \"timestamp\" };\n\n it(\"should return true for valid timestamp strings\", () => {\n expect(matchesOntologyDataType(dataType, \"2025-01-15T10:30:00Z\")).toBe(\n true,\n );\n expect(\n matchesOntologyDataType(dataType, \"2025-01-15T10:30:00.123Z\"),\n ).toBe(true);\n expect(matchesOntologyDataType(dataType, \"2025-01-15\")).toBe(true);\n });\n\n it(\"should return false for invalid timestamp strings\", () => {\n expect(matchesOntologyDataType(dataType, \"not a timestamp\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"\")).toBe(false);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, new Date())).toBe(false);\n });\n });\n\n describe(\"decimal type\", () => {\n const dataType: OntologyDataType = { type: \"decimal\" };\n\n it(\"should return true for valid decimal strings\", () => {\n expect(matchesOntologyDataType(dataType, \"0\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"123.456\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"-123.456\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"+123.456\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \".5\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"-.5\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"123.\")).toBe(true);\n });\n\n it(\"should return true for valid decimal strings with scientific notation\", () => {\n expect(matchesOntologyDataType(dataType, \"1E10\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"1.5E10\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"1.5E+10\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"1.5E-10\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"-1.5E10\")).toBe(true);\n });\n\n it(\"should return false for invalid decimal strings\", () => {\n expect(matchesOntologyDataType(dataType, \"abc\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"12.34.56\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"1.2.3E10\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"E10\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"1E\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"1e10\")).toBe(false);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123.456)).toBe(false);\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n expect(matchesOntologyDataType(dataType, undefined)).toBe(false);\n expect(matchesOntologyDataType(dataType, {})).toBe(false);\n });\n });\n\n describe(\"marking type\", () => {\n const dataType: OntologyDataType = { type: \"marking\" };\n\n it(\"should return true for string values\", () => {\n expect(matchesOntologyDataType(dataType, \"marking1\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"\")).toBe(true);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n });\n\n describe(\"object type\", () => {\n const dataType: OntologyDataType = {\n type: \"object\",\n objectApiName: \"Employee\",\n objectTypeApiName: \"Employee\",\n };\n\n it(\"should return true for string (RID) values\", () => {\n expect(matchesOntologyDataType(dataType, \"ri.object.123\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"someId\")).toBe(true);\n });\n\n it(\"should return true for objects with $primaryKey\", () => {\n expect(matchesOntologyDataType(dataType, { $primaryKey: \"123\" })).toBe(\n true,\n );\n expect(\n matchesOntologyDataType(dataType, {\n $primaryKey: \"123\",\n name: \"test\",\n }),\n ).toBe(true);\n });\n\n it(\"should return false for objects without $primaryKey\", () => {\n expect(matchesOntologyDataType(dataType, { name: \"test\" })).toBe(false);\n expect(matchesOntologyDataType(dataType, {})).toBe(false);\n });\n\n it(\"should return false for other value types\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n });\n\n describe(\"objectSet type\", () => {\n const dataType: OntologyDataType = { type: \"objectSet\" };\n\n it(\"should return true for RID strings\", () => {\n expect(matchesOntologyDataType(dataType, \"ri.objectSet.123\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"ri.anything.456\")).toBe(true);\n });\n\n it(\"should return true for objects with objectSet property\", () => {\n expect(\n matchesOntologyDataType(dataType, { objectSet: \"definition\" }),\n ).toBe(true);\n });\n\n it(\"should return false for non-RID strings\", () => {\n expect(matchesOntologyDataType(dataType, \"not a rid\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"objectSet\")).toBe(false);\n });\n\n it(\"should return false for objects without objectSet property\", () => {\n expect(matchesOntologyDataType(dataType, { name: \"test\" })).toBe(false);\n });\n });\n\n describe(\"array type\", () => {\n it(\"should return true for arrays with matching item types\", () => {\n const dataType: OntologyDataType = {\n type: \"array\",\n itemType: { type: \"string\" },\n };\n\n expect(matchesOntologyDataType(dataType, [])).toBe(true);\n expect(matchesOntologyDataType(dataType, [\"a\", \"b\", \"c\"])).toBe(true);\n });\n\n it(\"should return false for arrays with non-matching item types\", () => {\n const dataType: OntologyDataType = {\n type: \"array\",\n itemType: { type: \"string\" },\n };\n\n expect(matchesOntologyDataType(dataType, [1, 2, 3])).toBe(false);\n expect(matchesOntologyDataType(dataType, [\"a\", 1, \"c\"])).toBe(false);\n });\n\n it(\"should work with nested arrays\", () => {\n const dataType: OntologyDataType = {\n type: \"array\",\n itemType: {\n type: \"array\",\n itemType: { type: \"integer\" },\n },\n };\n\n expect(matchesOntologyDataType(dataType, [[1, 2], [3, 4]])).toBe(true);\n expect(matchesOntologyDataType(dataType, [[1, 2], [\"a\", \"b\"]])).toBe(\n false,\n );\n });\n\n it(\"should return false for non-array values\", () => {\n const dataType: OntologyDataType = {\n type: \"array\",\n itemType: { type: \"string\" },\n };\n\n expect(matchesOntologyDataType(dataType, \"not an array\")).toBe(false);\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, { length: 0 })).toBe(false);\n });\n });\n\n describe(\"cipherText type\", () => {\n const dataType: OntologyDataType = { type: \"cipherText\" };\n\n it(\"should return true for valid CIPHER format\", () => {\n expect(\n matchesOntologyDataType(\n dataType,\n \"CIPHER::ri.channel.123::encrypted::CIPHER\",\n ),\n ).toBe(true);\n });\n\n it(\"should return true for valid BELLASO format\", () => {\n expect(\n matchesOntologyDataType(\n dataType,\n \"BELLASO::ri.channel.123::encrypted::BELLASO\",\n ),\n ).toBe(true);\n });\n\n it(\"should return true for valid BELLASO format without suffix\", () => {\n expect(\n matchesOntologyDataType(dataType, \"BELLASO::ri.channel.123::encrypted\"),\n ).toBe(true);\n });\n\n it(\"should return false for invalid cipher format\", () => {\n expect(matchesOntologyDataType(dataType, \"CIPHER::channel::data\")).toBe(\n false,\n ); // missing ri. prefix\n expect(\n matchesOntologyDataType(dataType, \"CIPHER::ri.channel.123::\"),\n ).toBe(false); // empty encrypted value\n expect(\n matchesOntologyDataType(\n dataType,\n \"INVALID::ri.channel.123::data::INVALID\",\n ),\n ).toBe(false);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n });\n\n describe(\"binary type\", () => {\n const dataType: OntologyDataType = { type: \"binary\" };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, \"data\")).toThrow(\n \"validateDataType: binary not implemented yet.\",\n );\n });\n });\n\n describe(\"map type\", () => {\n const dataType: OntologyDataType = {\n type: \"map\",\n keyType: { type: \"string\" },\n valueType: { type: \"integer\" },\n };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, {})).toThrow(\n \"matchesOntologyDataType: map not implemented yet.\",\n );\n });\n });\n\n describe(\"set type\", () => {\n const dataType: OntologyDataType = {\n type: \"set\",\n itemType: { type: \"string\" },\n };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, new Set())).toThrow(\n \"matchesOntologyDataType: set not implemented yet.\",\n );\n });\n });\n\n describe(\"struct type\", () => {\n const dataType: OntologyDataType = {\n type: \"struct\",\n fields: [],\n };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, {})).toThrow(\n \"matchesOntologyDataType: struct not implemented yet.\",\n );\n });\n });\n\n describe(\"unsupported type\", () => {\n const dataType: OntologyDataType = {\n type: \"unsupported\",\n unsupportedType: \"someCustomType\",\n params: {},\n };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, \"anything\")).toThrow(\n \"matchesOntologyDataType: unsupported not implemented yet.\",\n );\n });\n });\n});\n\ndescribe(\"isMediaReference\", () => {\n it(\"should return true for valid MediaReference objects\", () => {\n const validMediaRef = {\n mimeType: \"image/png\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaSetRid: \"ri.mediaset.123\",\n mediaSetViewRid: \"ri.mediasetview.456\",\n mediaItemRid: \"ri.mediaitem.789\",\n },\n },\n };\n\n expect(isMediaReference(validMediaRef)).toBe(true);\n });\n\n it(\"should return false for objects missing required properties\", () => {\n expect(isMediaReference({ mimeType: \"image/png\" })).toBe(false);\n expect(\n isMediaReference({\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {},\n },\n }),\n ).toBe(false);\n });\n\n it(\"should return false for objects with incorrect reference type\", () => {\n const invalidMediaRef = {\n mimeType: \"image/png\",\n reference: {\n type: \"wrongType\",\n mediaSetViewItem: {\n mediaSetRid: \"ri.mediaset.123\",\n mediaSetViewRid: \"ri.mediasetview.456\",\n mediaItemRid: \"ri.mediaitem.789\",\n },\n },\n };\n\n expect(isMediaReference(invalidMediaRef)).toBe(false);\n });\n});\n\ndescribe(\"isInterfaceActionParam\", () => {\n it(\"should return true for valid interface action params with string primary key\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: \"emp-123\",\n }),\n ).toBe(true);\n });\n\n it(\"should return true for valid interface action params with number primary key\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: 123,\n }),\n ).toBe(true);\n });\n\n it(\"should return true for valid interface action params with boolean primary key\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: true,\n }),\n ).toBe(true);\n });\n\n it(\"should return false for objects missing objectTypeApiName\", () => {\n expect(\n isInterfaceActionParam({\n primaryKeyValue: \"123\",\n }),\n ).toBe(false);\n });\n\n it(\"should return false for objects missing primaryKeyValue\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n }),\n ).toBe(false);\n });\n\n it(\"should return false for objects with invalid primaryKeyValue type\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: {},\n }),\n ).toBe(false);\n\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: [],\n }),\n ).toBe(false);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["TypeHelpers","isBaseApiError","Errors","FauxAdmin","FauxDataStore","FauxFoundry","FauxOntology","authHandlerMiddleware","OpenApiCallError","OntologiesV2","MockOntologiesV2","withoutRid","msw"],"sources":["index.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * as TypeHelpers from \"./FauxFoundry/typeHelpers/index.js\";\n\nexport { isBaseApiError } from \"./BaseError.js\";\nexport type { BaseAPIError } from \"./BaseError.js\";\nexport * as Errors from \"./errors.js\";\nexport type { BaseServerObject } from \"./FauxFoundry/BaseServerObject.js\";\nexport type { FauxActionImpl } from \"./FauxFoundry/FauxActionImpl.js\";\nexport { FauxAdmin } from \"./FauxFoundry/FauxAdmin.js\";\nexport { FauxDataStore } from \"./FauxFoundry/FauxDataStore.js\";\nexport type { FauxDataStoreBatch } from \"./FauxFoundry/FauxDataStoreBatch.js\";\nexport { FauxFoundry } from \"./FauxFoundry/FauxFoundry.js\";\nexport { FauxOntology } from \"./FauxFoundry/FauxOntology.js\";\nexport { authHandlerMiddleware } from \"./handlers/authHandlerMiddleware.js\";\nexport { OpenApiCallError } from \"./handlers/util/handleOpenApiCall.js\";\nexport { OntologiesV2 as MockOntologiesV2 } from \"./mock/index.js\";\nexport { withoutRid } from \"./withoutRid.js\";\n\nexport * as msw from \"msw\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,WAAW,MAAM,oCAAoC;AAEjE,SAASC,cAAc,QAAQ,gBAAgB;AAE/C,OAAO,KAAKC,MAAM,MAAM,aAAa;AAGrC,SAASC,SAAS,QAAQ,4BAA4B;AACtD,SAASC,aAAa,QAAQ,gCAAgC;AAE9D,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,qBAAqB,QAAQ,qCAAqC;AAC3E,SAASC,gBAAgB,QAAQ,sCAAsC;AACvE,SAASC,YAAY,IAAIC,gBAAgB,QAAQ,iBAAiB;AAClE,SAASC,UAAU,QAAQ,iBAAiB;AAE5C,OAAO,KAAKC,GAAG,MAAM,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["TypeHelpers","isBaseApiError","Errors","FauxAdmin","FauxDataStore","FauxFoundry","FauxOntology","authHandlerMiddleware","OpenApiCallError","OntologiesV2","MockOntologiesV2","withoutRid","msw"],"sources":["index.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * as TypeHelpers from \"./FauxFoundry/typeHelpers/index.js\";\n\nexport { isBaseApiError } from \"./BaseError.js\";\nexport type { BaseAPIError } from \"./BaseError.js\";\nexport * as Errors from \"./errors.js\";\nexport type { BaseServerObject } from \"./FauxFoundry/BaseServerObject.js\";\nexport type { FauxActionImpl } from \"./FauxFoundry/FauxActionImpl.js\";\nexport { FauxAdmin } from \"./FauxFoundry/FauxAdmin.js\";\nexport { FauxDataStore } from \"./FauxFoundry/FauxDataStore.js\";\nexport type { FauxDataStoreBatch } from \"./FauxFoundry/FauxDataStoreBatch.js\";\nexport { FauxFoundry } from \"./FauxFoundry/FauxFoundry.js\";\nexport { FauxOntology } from \"./FauxFoundry/FauxOntology.js\";\nexport type { TH_ObjectTypeFullMetadata } from \"./FauxFoundry/typeHelpers/TH_ObjectTypeFullMetadata.js\";\nexport { authHandlerMiddleware } from \"./handlers/authHandlerMiddleware.js\";\nexport { OpenApiCallError } from \"./handlers/util/handleOpenApiCall.js\";\nexport { OntologiesV2 as MockOntologiesV2 } from \"./mock/index.js\";\nexport { withoutRid } from \"./withoutRid.js\";\n\nexport * as msw from \"msw\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,WAAW,MAAM,oCAAoC;AAEjE,SAASC,cAAc,QAAQ,gBAAgB;AAE/C,OAAO,KAAKC,MAAM,MAAM,aAAa;AAGrC,SAASC,SAAS,QAAQ,4BAA4B;AACtD,SAASC,aAAa,QAAQ,gCAAgC;AAE9D,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,YAAY,QAAQ,+BAA+B;AAE5D,SAASC,qBAAqB,QAAQ,qCAAqC;AAC3E,SAASC,gBAAgB,QAAQ,sCAAsC;AACvE,SAASC,YAAY,IAAIC,gBAAgB,QAAQ,iBAAiB;AAClE,SAASC,UAAU,QAAQ,iBAAiB;AAE5C,OAAO,KAAKC,GAAG,MAAM,KAAK","ignoreList":[]}