@party-stack/foundry-ontology 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/README.md +19 -0
  2. package/lib/adapter/convertLoadSubsetOptions.d.ts +2 -0
  3. package/lib/adapter/convertLoadSubsetOptions.d.ts.map +1 -1
  4. package/lib/adapter/convertLoadSubsetOptions.js +158 -191
  5. package/lib/adapter/convertLoadSubsetOptions.js.map +1 -1
  6. package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts +17 -15
  7. package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts.map +1 -1
  8. package/lib/adapter/createFoundryOntologyBackendAdapter.js +288 -400
  9. package/lib/adapter/createFoundryOntologyBackendAdapter.js.map +1 -1
  10. package/lib/adapter/foundryActionValidation.d.ts +17 -15
  11. package/lib/adapter/foundryActionValidation.d.ts.map +1 -1
  12. package/lib/adapter/foundryActionValidation.js +206 -305
  13. package/lib/adapter/foundryActionValidation.js.map +1 -1
  14. package/lib/adapter/foundryCodec.d.ts +10 -8
  15. package/lib/adapter/foundryCodec.d.ts.map +1 -1
  16. package/lib/adapter/foundryCodec.js +180 -287
  17. package/lib/adapter/foundryCodec.js.map +1 -1
  18. package/lib/adapter/foundryMediaId.d.ts +6 -4
  19. package/lib/adapter/foundryMediaId.d.ts.map +1 -1
  20. package/lib/adapter/foundryMediaId.js +31 -32
  21. package/lib/adapter/foundryMediaId.js.map +1 -1
  22. package/lib/adapter/index.d.ts +4 -4
  23. package/lib/adapter/index.js +4 -4
  24. package/lib/adapter/objectCollectionOptions.d.ts +18 -17
  25. package/lib/adapter/objectCollectionOptions.d.ts.map +1 -1
  26. package/lib/adapter/objectCollectionOptions.js +451 -538
  27. package/lib/adapter/objectCollectionOptions.js.map +1 -1
  28. package/lib/config/applyAttachmentConstraintOverrides.d.ts +6 -4
  29. package/lib/config/applyAttachmentConstraintOverrides.d.ts.map +1 -1
  30. package/lib/config/applyAttachmentConstraintOverrides.js +45 -49
  31. package/lib/config/applyAttachmentConstraintOverrides.js.map +1 -1
  32. package/lib/config/index.d.ts +17 -15
  33. package/lib/config/index.d.ts.map +1 -1
  34. package/lib/config/index.js +56 -81
  35. package/lib/config/index.js.map +1 -1
  36. package/lib/connection.d.ts +28 -26
  37. package/lib/connection.d.ts.map +1 -1
  38. package/lib/connection.js +183 -215
  39. package/lib/connection.js.map +1 -1
  40. package/lib/index.d.ts +9 -5
  41. package/lib/index.js +9 -5
  42. package/lib/installation/createFoundryBackendInstallation.d.ts +21 -20
  43. package/lib/installation/createFoundryBackendInstallation.d.ts.map +1 -1
  44. package/lib/installation/createFoundryBackendInstallation.js +52 -62
  45. package/lib/installation/createFoundryBackendInstallation.js.map +1 -1
  46. package/lib/installation/index.d.ts +2 -2
  47. package/lib/installation/index.js +1 -2
  48. package/lib/meta/actionTypeCollectionOptions.d.ts +8 -6
  49. package/lib/meta/actionTypeCollectionOptions.d.ts.map +1 -1
  50. package/lib/meta/actionTypeCollectionOptions.js +49 -49
  51. package/lib/meta/actionTypeCollectionOptions.js.map +1 -1
  52. package/lib/meta/convertActionTypeLoadSubsetOptions.d.ts +3 -1
  53. package/lib/meta/convertActionTypeLoadSubsetOptions.d.ts.map +1 -1
  54. package/lib/meta/convertActionTypeLoadSubsetOptions.js +69 -75
  55. package/lib/meta/convertActionTypeLoadSubsetOptions.js.map +1 -1
  56. package/lib/meta/convertMetaActionType.d.ts +7 -5
  57. package/lib/meta/convertMetaActionType.d.ts.map +1 -1
  58. package/lib/meta/convertMetaActionType.js +458 -581
  59. package/lib/meta/convertMetaActionType.js.map +1 -1
  60. package/lib/meta/convertMetaLinkType.d.ts +4 -2
  61. package/lib/meta/convertMetaLinkType.d.ts.map +1 -1
  62. package/lib/meta/convertMetaLinkType.js +37 -43
  63. package/lib/meta/convertMetaLinkType.js.map +1 -1
  64. package/lib/meta/convertMetaObjectType.d.ts +4 -2
  65. package/lib/meta/convertMetaObjectType.d.ts.map +1 -1
  66. package/lib/meta/convertMetaObjectType.js +34 -35
  67. package/lib/meta/convertMetaObjectType.js.map +1 -1
  68. package/lib/meta/convertMetaQueryFunctionType.d.ts +4 -2
  69. package/lib/meta/convertMetaQueryFunctionType.d.ts.map +1 -1
  70. package/lib/meta/convertMetaQueryFunctionType.js +113 -94
  71. package/lib/meta/convertMetaQueryFunctionType.js.map +1 -1
  72. package/lib/meta/convertMetaTypeDef.d.ts +4 -2
  73. package/lib/meta/convertMetaTypeDef.d.ts.map +1 -1
  74. package/lib/meta/convertMetaTypeDef.js +178 -176
  75. package/lib/meta/convertMetaTypeDef.js.map +1 -1
  76. package/lib/meta/convertMetaValueType.d.ts +4 -2
  77. package/lib/meta/convertMetaValueType.d.ts.map +1 -1
  78. package/lib/meta/convertMetaValueType.js +11 -7
  79. package/lib/meta/convertMetaValueType.js.map +1 -1
  80. package/lib/meta/convertOmsActionParameterMetadata.d.ts +4 -2
  81. package/lib/meta/convertOmsActionParameterMetadata.d.ts.map +1 -1
  82. package/lib/meta/convertOmsActionParameterMetadata.js +107 -163
  83. package/lib/meta/convertOmsActionParameterMetadata.js.map +1 -1
  84. package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts +7 -5
  85. package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts.map +1 -1
  86. package/lib/meta/createFoundryMetaOntologyBackendAdapter.js +39 -41
  87. package/lib/meta/createFoundryMetaOntologyBackendAdapter.js.map +1 -1
  88. package/lib/meta/entityCollectionOptions.d.ts +12 -10
  89. package/lib/meta/entityCollectionOptions.d.ts.map +1 -1
  90. package/lib/meta/entityCollectionOptions.js +59 -62
  91. package/lib/meta/entityCollectionOptions.js.map +1 -1
  92. package/lib/meta/foundryAttachmentMetadata.d.ts +2 -0
  93. package/lib/meta/foundryAttachmentMetadata.d.ts.map +1 -1
  94. package/lib/meta/foundryAttachmentMetadata.js +13 -14
  95. package/lib/meta/foundryAttachmentMetadata.js.map +1 -1
  96. package/lib/meta/index.d.ts +5 -5
  97. package/lib/meta/index.js +5 -5
  98. package/lib/meta/loadActionTypeOmsMetadata.d.ts +5 -3
  99. package/lib/meta/loadActionTypeOmsMetadata.d.ts.map +1 -1
  100. package/lib/meta/loadActionTypeOmsMetadata.js +102 -139
  101. package/lib/meta/loadActionTypeOmsMetadata.js.map +1 -1
  102. package/lib/meta/queryFunctionTypeCollectionOptions.d.ts +7 -5
  103. package/lib/meta/queryFunctionTypeCollectionOptions.d.ts.map +1 -1
  104. package/lib/meta/queryFunctionTypeCollectionOptions.js +47 -49
  105. package/lib/meta/queryFunctionTypeCollectionOptions.js.map +1 -1
  106. package/lib/stagedWrites.d.ts +26 -24
  107. package/lib/stagedWrites.d.ts.map +1 -1
  108. package/lib/stagedWrites.js +55 -66
  109. package/lib/stagedWrites.js.map +1 -1
  110. package/lib/users/createFoundryAdminOntologyRoute.d.ts +47 -17366
  111. package/lib/users/createFoundryAdminOntologyRoute.d.ts.map +1 -1
  112. package/lib/users/createFoundryAdminOntologyRoute.js +29 -37
  113. package/lib/users/createFoundryAdminOntologyRoute.js.map +1 -1
  114. package/lib/users/createFoundryUsersIntegration.d.ts +6 -4
  115. package/lib/users/createFoundryUsersIntegration.d.ts.map +1 -1
  116. package/lib/users/createFoundryUsersIntegration.js +28 -30
  117. package/lib/users/createFoundryUsersIntegration.js.map +1 -1
  118. package/lib/users/foundryUser.d.ts +4 -2
  119. package/lib/users/foundryUser.d.ts.map +1 -1
  120. package/lib/users/foundryUser.js +69 -74
  121. package/lib/users/foundryUser.js.map +1 -1
  122. package/lib/users/index.d.ts +5 -5
  123. package/lib/users/index.js +5 -5
  124. package/lib/users/userCollectionOptions.d.ts +13 -11
  125. package/lib/users/userCollectionOptions.d.ts.map +1 -1
  126. package/lib/users/userCollectionOptions.js +82 -100
  127. package/lib/users/userCollectionOptions.js.map +1 -1
  128. package/lib/utils/AsyncIterable.d.ts +2 -0
  129. package/lib/utils/AsyncIterable.d.ts.map +1 -1
  130. package/lib/utils/AsyncIterable.js +26 -34
  131. package/lib/utils/AsyncIterable.js.map +1 -1
  132. package/lib/utils/actionTypeName.d.ts +2 -0
  133. package/lib/utils/actionTypeName.d.ts.map +1 -1
  134. package/lib/utils/actionTypeName.js +9 -7
  135. package/lib/utils/actionTypeName.js.map +1 -1
  136. package/lib/utils/chunk.d.ts +2 -0
  137. package/lib/utils/chunk.d.ts.map +1 -1
  138. package/lib/utils/chunk.js +8 -6
  139. package/lib/utils/chunk.js.map +1 -1
  140. package/package.json +21 -27
  141. package/lib/adapter/convertLoadSubsetOptions.test.d.ts +0 -2
  142. package/lib/adapter/convertLoadSubsetOptions.test.d.ts.map +0 -1
  143. package/lib/adapter/convertLoadSubsetOptions.test.js +0 -213
  144. package/lib/adapter/convertLoadSubsetOptions.test.js.map +0 -1
  145. package/lib/adapter/createFoundryOntologyBackendAdapter.test.d.ts +0 -2
  146. package/lib/adapter/createFoundryOntologyBackendAdapter.test.d.ts.map +0 -1
  147. package/lib/adapter/createFoundryOntologyBackendAdapter.test.js +0 -628
  148. package/lib/adapter/createFoundryOntologyBackendAdapter.test.js.map +0 -1
  149. package/lib/adapter/foundryActionValidation.test.d.ts +0 -2
  150. package/lib/adapter/foundryActionValidation.test.d.ts.map +0 -1
  151. package/lib/adapter/foundryActionValidation.test.js +0 -243
  152. package/lib/adapter/foundryActionValidation.test.js.map +0 -1
  153. package/lib/adapter/foundryCodec.test.d.ts +0 -2
  154. package/lib/adapter/foundryCodec.test.d.ts.map +0 -1
  155. package/lib/adapter/foundryCodec.test.js +0 -137
  156. package/lib/adapter/foundryCodec.test.js.map +0 -1
  157. package/lib/adapter/foundryMediaId.test.d.ts +0 -2
  158. package/lib/adapter/foundryMediaId.test.d.ts.map +0 -1
  159. package/lib/adapter/foundryMediaId.test.js +0 -23
  160. package/lib/adapter/foundryMediaId.test.js.map +0 -1
  161. package/lib/adapter/index.d.ts.map +0 -1
  162. package/lib/adapter/index.js.map +0 -1
  163. package/lib/adapter/objectCollectionOptions.test.d.ts +0 -2
  164. package/lib/adapter/objectCollectionOptions.test.d.ts.map +0 -1
  165. package/lib/adapter/objectCollectionOptions.test.js +0 -1290
  166. package/lib/adapter/objectCollectionOptions.test.js.map +0 -1
  167. package/lib/config/connectionPull.test.d.ts +0 -2
  168. package/lib/config/connectionPull.test.d.ts.map +0 -1
  169. package/lib/config/connectionPull.test.js +0 -151
  170. package/lib/config/connectionPull.test.js.map +0 -1
  171. package/lib/config/index.test.d.ts +0 -2
  172. package/lib/config/index.test.d.ts.map +0 -1
  173. package/lib/config/index.test.js +0 -182
  174. package/lib/config/index.test.js.map +0 -1
  175. package/lib/connection.test.d.ts +0 -2
  176. package/lib/connection.test.d.ts.map +0 -1
  177. package/lib/connection.test.js +0 -162
  178. package/lib/connection.test.js.map +0 -1
  179. package/lib/index.d.ts.map +0 -1
  180. package/lib/index.js.map +0 -1
  181. package/lib/installation/createFoundryBackendInstallation.test.d.ts +0 -2
  182. package/lib/installation/createFoundryBackendInstallation.test.d.ts.map +0 -1
  183. package/lib/installation/createFoundryBackendInstallation.test.js +0 -83
  184. package/lib/installation/createFoundryBackendInstallation.test.js.map +0 -1
  185. package/lib/installation/index.d.ts.map +0 -1
  186. package/lib/installation/index.js.map +0 -1
  187. package/lib/meta/actionTypeCollectionOptions.test.d.ts +0 -2
  188. package/lib/meta/actionTypeCollectionOptions.test.d.ts.map +0 -1
  189. package/lib/meta/actionTypeCollectionOptions.test.js +0 -24
  190. package/lib/meta/actionTypeCollectionOptions.test.js.map +0 -1
  191. package/lib/meta/actionTypeIdQuery.test.d.ts +0 -2
  192. package/lib/meta/actionTypeIdQuery.test.d.ts.map +0 -1
  193. package/lib/meta/actionTypeIdQuery.test.js +0 -131
  194. package/lib/meta/actionTypeIdQuery.test.js.map +0 -1
  195. package/lib/meta/convertActionTypeLoadSubsetOptions.test.d.ts +0 -2
  196. package/lib/meta/convertActionTypeLoadSubsetOptions.test.d.ts.map +0 -1
  197. package/lib/meta/convertActionTypeLoadSubsetOptions.test.js +0 -138
  198. package/lib/meta/convertActionTypeLoadSubsetOptions.test.js.map +0 -1
  199. package/lib/meta/convertMetaActionType.test.d.ts +0 -2
  200. package/lib/meta/convertMetaActionType.test.d.ts.map +0 -1
  201. package/lib/meta/convertMetaActionType.test.js +0 -1565
  202. package/lib/meta/convertMetaActionType.test.js.map +0 -1
  203. package/lib/meta/convertMetaLinkType.test.d.ts +0 -2
  204. package/lib/meta/convertMetaLinkType.test.d.ts.map +0 -1
  205. package/lib/meta/convertMetaLinkType.test.js +0 -110
  206. package/lib/meta/convertMetaLinkType.test.js.map +0 -1
  207. package/lib/meta/convertMetaObjectType.test.d.ts +0 -2
  208. package/lib/meta/convertMetaObjectType.test.d.ts.map +0 -1
  209. package/lib/meta/convertMetaObjectType.test.js +0 -250
  210. package/lib/meta/convertMetaObjectType.test.js.map +0 -1
  211. package/lib/meta/convertMetaQueryFunctionType.test.d.ts +0 -2
  212. package/lib/meta/convertMetaQueryFunctionType.test.d.ts.map +0 -1
  213. package/lib/meta/convertMetaQueryFunctionType.test.js +0 -134
  214. package/lib/meta/convertMetaQueryFunctionType.test.js.map +0 -1
  215. package/lib/meta/createFoundryMetaOntologyBackendAdapter.test.d.ts +0 -2
  216. package/lib/meta/createFoundryMetaOntologyBackendAdapter.test.d.ts.map +0 -1
  217. package/lib/meta/createFoundryMetaOntologyBackendAdapter.test.js +0 -49
  218. package/lib/meta/createFoundryMetaOntologyBackendAdapter.test.js.map +0 -1
  219. package/lib/meta/entityCollectionOptions.test.d.ts +0 -2
  220. package/lib/meta/entityCollectionOptions.test.d.ts.map +0 -1
  221. package/lib/meta/entityCollectionOptions.test.js +0 -98
  222. package/lib/meta/entityCollectionOptions.test.js.map +0 -1
  223. package/lib/meta/index.d.ts.map +0 -1
  224. package/lib/meta/index.js.map +0 -1
  225. package/lib/meta/loadActionTypeOmsMetadata.test.d.ts +0 -2
  226. package/lib/meta/loadActionTypeOmsMetadata.test.d.ts.map +0 -1
  227. package/lib/meta/loadActionTypeOmsMetadata.test.js +0 -218
  228. package/lib/meta/loadActionTypeOmsMetadata.test.js.map +0 -1
  229. package/lib/stagedWrites.test.d.ts +0 -2
  230. package/lib/stagedWrites.test.d.ts.map +0 -1
  231. package/lib/stagedWrites.test.js +0 -71
  232. package/lib/stagedWrites.test.js.map +0 -1
  233. package/lib/users/createFoundryUsersIntegration.test.d.ts +0 -2
  234. package/lib/users/createFoundryUsersIntegration.test.d.ts.map +0 -1
  235. package/lib/users/createFoundryUsersIntegration.test.js +0 -32
  236. package/lib/users/createFoundryUsersIntegration.test.js.map +0 -1
  237. package/lib/users/foundryUser.test.d.ts +0 -2
  238. package/lib/users/foundryUser.test.d.ts.map +0 -1
  239. package/lib/users/foundryUser.test.js +0 -45
  240. package/lib/users/foundryUser.test.js.map +0 -1
  241. package/lib/users/index.d.ts.map +0 -1
  242. package/lib/users/index.js.map +0 -1
  243. package/lib/users/userCollectionOptions.test.d.ts +0 -2
  244. package/lib/users/userCollectionOptions.test.d.ts.map +0 -1
  245. package/lib/users/userCollectionOptions.test.js +0 -18
  246. package/lib/users/userCollectionOptions.test.js.map +0 -1
  247. package/lib/utils/AsyncIterable.test.d.ts +0 -2
  248. package/lib/utils/AsyncIterable.test.d.ts.map +0 -1
  249. package/lib/utils/AsyncIterable.test.js +0 -17
  250. package/lib/utils/AsyncIterable.test.js.map +0 -1
  251. package/lib/utils/actionTypeName.test.d.ts +0 -2
  252. package/lib/utils/actionTypeName.test.d.ts.map +0 -1
  253. package/lib/utils/actionTypeName.test.js +0 -30
  254. package/lib/utils/actionTypeName.test.js.map +0 -1
@@ -1,628 +0,0 @@
1
- import { o } from "@party-stack/ontology";
2
- import { Temporal } from "temporal-polyfill";
3
- import { beforeEach, describe, expect, it, vi } from "vitest";
4
- import { createFoundryOntologyBackend, createFoundryOntologyBackendAdapter, isFoundryNotFoundError, } from "./createFoundryOntologyBackendAdapter.js";
5
- import { encodeFoundryMediaId } from "./foundryMediaId.js";
6
- const mediaMocks = vi.hoisted(() => ({
7
- metadata: vi.fn(),
8
- uploadMedia: vi.fn(),
9
- }));
10
- const attachmentMocks = vi.hoisted(() => ({
11
- get: vi.fn(),
12
- upload: vi.fn(),
13
- uploadWithRid: vi.fn(),
14
- }));
15
- const ontologyMocks = vi.hoisted(() => ({
16
- applyWithOverrides: vi.fn(),
17
- getActionType: vi.fn(),
18
- getMediaContent: vi.fn(),
19
- getMediaMetadata: vi.fn(),
20
- }));
21
- const metadataMocks = vi.hoisted(() => ({
22
- bulkLoadOntologyEntities: vi.fn(),
23
- }));
24
- vi.mock("@osdk/foundry.mediasets", () => ({
25
- MediaSets: mediaMocks,
26
- }));
27
- vi.mock("@osdk/client.unstable", () => ({
28
- bulkLoadOntologyEntities: metadataMocks.bulkLoadOntologyEntities,
29
- }));
30
- vi.mock("@osdk/foundry.ontologies", async (importOriginal) => {
31
- const original = await importOriginal();
32
- return {
33
- ...original,
34
- Actions: {
35
- ...original.Actions,
36
- applyWithOverrides: ontologyMocks.applyWithOverrides,
37
- },
38
- Attachments: {
39
- ...original.Attachments,
40
- get: attachmentMocks.get,
41
- upload: attachmentMocks.upload,
42
- uploadWithRid: attachmentMocks.uploadWithRid,
43
- },
44
- ActionTypesV2: {
45
- ...original.ActionTypesV2,
46
- get: ontologyMocks.getActionType,
47
- },
48
- MediaReferenceProperties: {
49
- ...original.MediaReferenceProperties,
50
- getMediaContent: ontologyMocks.getMediaContent,
51
- getMediaMetadata: ontologyMocks.getMediaMetadata,
52
- },
53
- };
54
- });
55
- beforeEach(() => {
56
- vi.clearAllMocks();
57
- });
58
- describe("isFoundryNotFoundError", () => {
59
- it("recognizes Foundry HTTP and API not-found errors", () => {
60
- expect(isFoundryNotFoundError({
61
- statusCode: 404,
62
- })).toBe(true);
63
- expect(isFoundryNotFoundError({
64
- errorCode: "NOT_FOUND",
65
- })).toBe(true);
66
- expect(isFoundryNotFoundError({
67
- statusCode: 500,
68
- })).toBe(false);
69
- });
70
- });
71
- describe("Foundry action execution time overrides", () => {
72
- const adapter = createFoundryOntologyBackendAdapter({
73
- client: {
74
- ontologyRid: "ri.ontology.main.1",
75
- },
76
- ir: {
77
- types: [],
78
- objectTypes: [],
79
- linkTypes: [],
80
- actionTypes: [
81
- {
82
- name: "setTimestamp",
83
- displayName: "Set timestamp",
84
- parameters: [
85
- {
86
- name: "__now",
87
- displayName: "Current time",
88
- type: o.timestamp({}),
89
- defaultValue: o.Expression.now({}),
90
- },
91
- ],
92
- logic: [],
93
- },
94
- ],
95
- queryFunctionTypes: [],
96
- },
97
- });
98
- const isoInstant = "2026-09-17T20:21:00Z";
99
- const temporalLike = {
100
- toString: () => isoInstant,
101
- };
102
- it.each([
103
- ["Temporal.Instant", Temporal.Instant.from(isoInstant)],
104
- ["Date", new Date(isoInstant)],
105
- ["Temporal-like value from another module", temporalLike],
106
- ])("serializes a %s as a raw ISO instant", async (_description, value) => {
107
- expect(temporalLike).not.toBeInstanceOf(Temporal.Instant);
108
- ontologyMocks.applyWithOverrides.mockResolvedValue({
109
- operationId: "operation-1",
110
- validation: { result: "VALID" },
111
- edits: {
112
- type: "edits",
113
- edits: [],
114
- },
115
- });
116
- await adapter.applyAction("setTimestamp", { __now: value }, { objects: {} });
117
- expect(ontologyMocks.applyWithOverrides.mock.calls[0]?.[3]).toMatchObject({
118
- overrides: {
119
- actionExecutionTime: isoInstant,
120
- },
121
- });
122
- });
123
- it("rejects an invalid execution time before making a Foundry request", async () => {
124
- await expect(adapter.applyAction("setTimestamp", { __now: "not an ISO instant" }, { objects: {} })).rejects.toThrow("Invalid action execution time: expected a Date or Temporal-like ISO instant.");
125
- expect(ontologyMocks.applyWithOverrides).not.toHaveBeenCalled();
126
- });
127
- });
128
- describe("Foundry action API names", () => {
129
- it.each([
130
- [
131
- "createWarrantySubmissionForBBStreamline",
132
- "create-warranty-submission-for-b-b-streamline",
133
- ],
134
- [
135
- "com.palantirfoundry.valinorEnterprises.streamline.completeTask",
136
- "com.palantirfoundry.valinor-enterprises.streamline.complete-task",
137
- ],
138
- ])("applies %s using the exact reversible API name", async (name, apiName) => {
139
- ontologyMocks.applyWithOverrides.mockResolvedValue({
140
- operationId: "operation-1",
141
- validation: { result: "VALID" },
142
- edits: {
143
- type: "edits",
144
- edits: [],
145
- },
146
- });
147
- const adapter = createFoundryOntologyBackendAdapter({
148
- client: {
149
- ontologyRid: "ri.ontology.main.1",
150
- },
151
- ir: {
152
- types: [],
153
- objectTypes: [],
154
- linkTypes: [],
155
- actionTypes: [
156
- {
157
- name,
158
- displayName: "Action",
159
- parameters: [],
160
- logic: [],
161
- },
162
- ],
163
- queryFunctionTypes: [],
164
- },
165
- live: false,
166
- });
167
- await adapter.applyAction(name, {}, { objects: {} });
168
- expect(ontologyMocks.applyWithOverrides.mock.calls[0]?.[2]).toBe(apiName);
169
- });
170
- });
171
- describe("Foundry live behavior", () => {
172
- const ir = {
173
- types: [],
174
- objectTypes: [
175
- {
176
- name: "Task",
177
- displayName: "Task",
178
- pluralDisplayName: "Tasks",
179
- primaryKey: "id",
180
- properties: [
181
- {
182
- name: "id",
183
- displayName: "ID",
184
- type: o.string({}),
185
- },
186
- ],
187
- },
188
- ],
189
- linkTypes: [],
190
- actionTypes: [
191
- {
192
- name: "updateTask",
193
- displayName: "Update task",
194
- parameters: [],
195
- logic: [],
196
- },
197
- ],
198
- queryFunctionTypes: [],
199
- };
200
- beforeEach(() => {
201
- ontologyMocks.applyWithOverrides.mockResolvedValue({
202
- operationId: "operation-1",
203
- validation: { result: "VALID" },
204
- edits: {
205
- type: "edits",
206
- edits: [
207
- {
208
- type: "modifyObject",
209
- objectType: "Task",
210
- },
211
- ],
212
- },
213
- });
214
- });
215
- it("waits for edited collections by default", async () => {
216
- const awaitOperationId = vi.fn(() => Promise.resolve());
217
- const adapter = createFoundryOntologyBackendAdapter({
218
- client: {
219
- ontologyRid: "ri.ontology.main.1",
220
- },
221
- ir,
222
- });
223
- expect(adapter.live).toBe(true);
224
- await adapter.applyAction("updateTask", {}, {
225
- objects: {
226
- Task: {
227
- utils: { awaitOperationId },
228
- },
229
- },
230
- });
231
- expect(awaitOperationId).toHaveBeenCalledWith("operation-1");
232
- });
233
- it("returns after backend acceptance when live is false", async () => {
234
- const awaitOperationId = vi.fn(() => Promise.resolve());
235
- const adapter = createFoundryOntologyBackendAdapter({
236
- client: {
237
- ontologyRid: "ri.ontology.main.1",
238
- },
239
- ir,
240
- live: false,
241
- });
242
- expect(adapter.live).toBe(false);
243
- await adapter.applyAction("updateTask", {}, {
244
- objects: {
245
- Task: {
246
- utils: { awaitOperationId },
247
- },
248
- },
249
- });
250
- expect(awaitOperationId).not.toHaveBeenCalled();
251
- });
252
- it("forwards live through the backend provider", async () => {
253
- const backend = createFoundryOntologyBackend({
254
- client: {
255
- ontologyRid: "ri.ontology.main.1",
256
- },
257
- live: false,
258
- });
259
- await expect(backend(ir, {})).resolves.toMatchObject({
260
- name: "foundry",
261
- live: false,
262
- });
263
- });
264
- });
265
- describe("Foundry attachments", () => {
266
- const attachmentType = o.attachment({
267
- meta: { foundry: { kind: "attachment" } },
268
- });
269
- const adapter = createFoundryOntologyBackendAdapter({
270
- client: {
271
- ontologyRid: "ri.ontology.main.1",
272
- },
273
- ir: {
274
- types: [],
275
- objectTypes: [],
276
- linkTypes: [],
277
- actionTypes: [],
278
- queryFunctionTypes: [],
279
- },
280
- });
281
- const materializeAttachment = adapter.attachments.materializeAttachment;
282
- const target = attachmentType.value;
283
- const blob = new Blob(["attachment"], { type: "text/plain" });
284
- it("lets Foundry assign a canonical RID for an opaque local ID", async () => {
285
- attachmentMocks.upload.mockResolvedValue({
286
- rid: "ri.attachments.main.attachment.remote",
287
- });
288
- await expect(materializeAttachment({
289
- id: "local-id",
290
- type: "text/plain",
291
- }, blob, { target })).resolves.toEqual({
292
- id: "ri.attachments.main.attachment.remote",
293
- type: "text/plain",
294
- });
295
- expect(attachmentMocks.upload).toHaveBeenCalledWith(expect.anything(), blob, {
296
- filename: "",
297
- });
298
- expect(attachmentMocks.get).not.toHaveBeenCalled();
299
- expect(attachmentMocks.uploadWithRid).not.toHaveBeenCalled();
300
- });
301
- it("preserves an existing Foundry attachment RID", async () => {
302
- attachmentMocks.get.mockResolvedValue({
303
- rid: "ri.attachments.main.attachment.existing",
304
- });
305
- await expect(materializeAttachment({
306
- id: "ri.attachments.main.attachment.existing",
307
- }, blob, { target })).resolves.toBeUndefined();
308
- expect(attachmentMocks.upload).not.toHaveBeenCalled();
309
- expect(attachmentMocks.uploadWithRid).not.toHaveBeenCalled();
310
- });
311
- it("uploads a missing preassigned Foundry attachment RID", async () => {
312
- attachmentMocks.get.mockRejectedValue({
313
- statusCode: 404,
314
- });
315
- await expect(materializeAttachment({
316
- id: "ri.attachments.main.attachment.missing",
317
- }, blob, { target })).resolves.toBeUndefined();
318
- expect(attachmentMocks.uploadWithRid).toHaveBeenCalledWith(expect.anything(), "ri.attachments.main.attachment.missing", blob, {
319
- filename: "",
320
- preview: true,
321
- });
322
- });
323
- it("does not treat other lookup failures as a missing attachment", async () => {
324
- const error = new Error("Foundry unavailable");
325
- attachmentMocks.get.mockRejectedValue(error);
326
- await expect(materializeAttachment({
327
- id: "ri.attachments.main.attachment.existing",
328
- }, blob, { target })).rejects.toBe(error);
329
- expect(attachmentMocks.upload).not.toHaveBeenCalled();
330
- expect(attachmentMocks.uploadWithRid).not.toHaveBeenCalled();
331
- });
332
- });
333
- describe("Foundry media attachments", () => {
334
- const mediaId = {
335
- mediaSetRid: "ri.mio.main.media-set.1",
336
- mediaSetViewRid: "ri.mio.main.view.2",
337
- mediaItemRid: "ri.mio.main.media-item.3",
338
- };
339
- const mediaReference = {
340
- mimeType: "image/png",
341
- reference: {
342
- type: "mediaSetViewItem",
343
- mediaSetViewItem: mediaId,
344
- },
345
- };
346
- const mediaType = o.attachment({
347
- meta: { foundry: { kind: "media" } },
348
- });
349
- const adapter = createFoundryOntologyBackendAdapter({
350
- client: {
351
- ontologyRid: "ri.ontology.main.1",
352
- },
353
- ir: {
354
- types: [],
355
- objectTypes: [],
356
- linkTypes: [],
357
- actionTypes: [
358
- {
359
- name: "createMedia",
360
- displayName: "Create Media",
361
- parameters: [
362
- {
363
- name: "media",
364
- displayName: "Media",
365
- type: mediaType,
366
- },
367
- {
368
- name: "caption",
369
- displayName: "Caption",
370
- type: o.optional({ type: o.string({}) }),
371
- },
372
- ],
373
- logic: [],
374
- },
375
- ],
376
- queryFunctionTypes: [],
377
- },
378
- });
379
- const attachments = adapter.attachments;
380
- const getAttachmentMetadata = attachments.getAttachmentMetadata;
381
- const target = mediaType.value;
382
- it("routes media through action attachment uploads", () => {
383
- expect(attachments.canMaterializeAttachment?.({
384
- id: "local-id",
385
- type: "image/png",
386
- }, { target })).toBe(false);
387
- });
388
- it("uploads media during action execution and returns a tokenless mapping", async () => {
389
- const temporaryReference = {
390
- ...mediaReference,
391
- reference: {
392
- ...mediaReference.reference,
393
- mediaSetViewItem: {
394
- ...mediaId,
395
- token: "temporary-token",
396
- },
397
- },
398
- };
399
- mediaMocks.uploadMedia.mockResolvedValue(temporaryReference);
400
- ontologyMocks.applyWithOverrides.mockResolvedValue({
401
- operationId: "operation-1",
402
- validation: { result: "VALID" },
403
- edits: {
404
- type: "edits",
405
- edits: [],
406
- },
407
- });
408
- const blob = new Blob(["image"], {
409
- type: "image/png",
410
- });
411
- const attachment = {
412
- id: "local-id",
413
- name: "image.png",
414
- type: "image/png",
415
- };
416
- await expect(adapter.applyAction("createMedia", { media: attachment, caption: null }, {
417
- objects: {},
418
- attachmentUploads: [
419
- {
420
- attachment,
421
- target,
422
- blob,
423
- },
424
- ],
425
- })).resolves.toEqual({
426
- attachmentIdMappings: [
427
- {
428
- localId: "local-id",
429
- remoteId: encodeFoundryMediaId(mediaId),
430
- },
431
- ],
432
- });
433
- expect(ontologyMocks.applyWithOverrides.mock.calls[0]?.[3]).toMatchObject({
434
- request: {
435
- parameters: {
436
- media: temporaryReference,
437
- caption: null,
438
- },
439
- },
440
- });
441
- });
442
- it("validates without executing or uploading media", async () => {
443
- ontologyMocks.applyWithOverrides.mockResolvedValue({
444
- validation: {
445
- result: "INVALID",
446
- submissionCriteria: [
447
- {
448
- result: "INVALID",
449
- configuredFailureMessage: "Only administrators may submit.",
450
- },
451
- ],
452
- parameters: {},
453
- },
454
- });
455
- await expect(adapter.validateAction("createMedia", {
456
- media: {
457
- id: encodeFoundryMediaId(mediaId),
458
- type: "image/png",
459
- },
460
- }, {
461
- objects: {},
462
- })).resolves.toEqual({
463
- certain: true,
464
- value: {
465
- kind: "err",
466
- value: [{ message: "Only administrators may submit." }],
467
- },
468
- });
469
- const request = ontologyMocks.applyWithOverrides.mock.calls[0]?.[3];
470
- expect(request.request.options).toEqual({
471
- mode: "VALIDATE_ONLY",
472
- });
473
- expect(mediaMocks.uploadMedia).not.toHaveBeenCalled();
474
- });
475
- it("proves impossible submission criteria without validating incomplete parameters", async () => {
476
- ontologyMocks.getActionType.mockResolvedValue({
477
- rid: "ri.action-type.main.action-type.1",
478
- });
479
- metadataMocks.bulkLoadOntologyEntities.mockResolvedValue({
480
- actionTypes: [
481
- {
482
- actionType: {
483
- actionTypeLogic: {
484
- validation: {
485
- actionTypeLevelValidation: {
486
- rules: {
487
- adminOnly: {
488
- condition: {
489
- type: "comparison",
490
- comparison: {
491
- left: {
492
- type: "staticValue",
493
- staticValue: {
494
- type: "string",
495
- string: "user",
496
- },
497
- },
498
- operator: "EQUALS",
499
- right: {
500
- type: "staticValue",
501
- staticValue: {
502
- type: "string",
503
- string: "admin",
504
- },
505
- },
506
- },
507
- },
508
- displayMetadata: {
509
- failureMessage: "Only administrators may submit.",
510
- },
511
- },
512
- },
513
- },
514
- },
515
- },
516
- },
517
- },
518
- ],
519
- });
520
- await expect(adapter.validateActionDraft("createMedia", {}, {
521
- objects: {},
522
- context: {
523
- user: "user-1",
524
- },
525
- knownParameters: [],
526
- })).resolves.toEqual({
527
- certain: true,
528
- value: {
529
- kind: "err",
530
- value: [
531
- {
532
- message: "Impossible submission criterion: Only administrators may submit.",
533
- },
534
- ],
535
- },
536
- });
537
- expect(ontologyMocks.applyWithOverrides).not.toHaveBeenCalled();
538
- });
539
- it("reports uncertain draft validation without a context user", async () => {
540
- await expect(adapter.validateActionDraft("createMedia", {}, {
541
- objects: {},
542
- knownParameters: [],
543
- })).resolves.toEqual({
544
- certain: false,
545
- });
546
- expect(ontologyMocks.getActionType).not.toHaveBeenCalled();
547
- expect(metadataMocks.bulkLoadOntologyEntities).not.toHaveBeenCalled();
548
- });
549
- it("reports a known required parameter as missing", async () => {
550
- await expect(adapter.validateActionDraft("createMedia", {}, {
551
- objects: {},
552
- context: {
553
- user: "user-1",
554
- },
555
- knownParameters: ["media"],
556
- })).resolves.toEqual({
557
- certain: true,
558
- value: {
559
- kind: "err",
560
- value: [
561
- {
562
- message: 'Required action parameter "media" is missing.',
563
- path: ["media"],
564
- },
565
- ],
566
- },
567
- });
568
- expect(metadataMocks.bulkLoadOntologyEntities).not.toHaveBeenCalled();
569
- expect(ontologyMocks.applyWithOverrides).not.toHaveBeenCalled();
570
- });
571
- it("reads confirmed media through its object property source", async () => {
572
- const id = encodeFoundryMediaId(mediaId);
573
- const attachment = {
574
- id,
575
- type: "image/png",
576
- source: {
577
- objectType: "Task",
578
- primaryKey: "task-1",
579
- property: "media",
580
- },
581
- };
582
- ontologyMocks.getMediaContent.mockResolvedValue(new Response(new Blob(["image"])));
583
- ontologyMocks.getMediaMetadata.mockResolvedValue({
584
- sizeBytes: 5,
585
- mediaType: "image/png",
586
- path: undefined,
587
- });
588
- await expect(attachments.getAttachmentContent(attachment).then((blob) => blob.text())).resolves.toBe("image");
589
- await expect(getAttachmentMetadata(attachment, ["size", "type", "name"])).resolves.toEqual({
590
- size: 5,
591
- type: "image/png",
592
- name: undefined,
593
- });
594
- expect(ontologyMocks.getMediaContent).toHaveBeenCalledWith(expect.anything(), "ri.ontology.main.1", "Task", "task-1", "media", { preview: true });
595
- });
596
- it("pushes image dimension selection into media set metadata", async () => {
597
- const attachment = {
598
- id: encodeFoundryMediaId(mediaId),
599
- type: "image/png",
600
- };
601
- mediaMocks.metadata.mockResolvedValue({
602
- type: "imagery",
603
- sizeBytes: 5,
604
- dimensions: { width: 800, height: 600 },
605
- bands: [],
606
- attributes: {},
607
- });
608
- await expect(getAttachmentMetadata(attachment, ["dimensions"])).resolves.toEqual({
609
- type: "image/png",
610
- size: 5,
611
- dimensions: { width: 800, height: 600 },
612
- });
613
- expect(mediaMocks.metadata).toHaveBeenCalledWith(expect.anything(), mediaId.mediaSetRid, mediaId.mediaItemRid);
614
- expect(ontologyMocks.getMediaMetadata).not.toHaveBeenCalled();
615
- });
616
- it("resolves inline media type without a Foundry request", async () => {
617
- const attachment = {
618
- id: encodeFoundryMediaId(mediaId),
619
- type: "image/png",
620
- };
621
- await expect(getAttachmentMetadata(attachment, ["type"])).resolves.toEqual({
622
- type: "image/png",
623
- });
624
- expect(mediaMocks.metadata).not.toHaveBeenCalled();
625
- expect(ontologyMocks.getMediaMetadata).not.toHaveBeenCalled();
626
- });
627
- });
628
- //# sourceMappingURL=createFoundryOntologyBackendAdapter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createFoundryOntologyBackendAdapter.test.js","sourceRoot":"","sources":["../../src/adapter/createFoundryOntologyBackendAdapter.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=foundryActionValidation.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"foundryActionValidation.test.d.ts","sourceRoot":"","sources":["../../src/adapter/foundryActionValidation.test.ts"],"names":[],"mappings":""}