@party-stack/foundry-ontology 0.18.0 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/lib/adapter/convertLoadSubsetOptions.d.ts +2 -0
  2. package/lib/adapter/convertLoadSubsetOptions.d.ts.map +1 -1
  3. package/lib/adapter/convertLoadSubsetOptions.js +158 -191
  4. package/lib/adapter/convertLoadSubsetOptions.js.map +1 -1
  5. package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts +17 -15
  6. package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts.map +1 -1
  7. package/lib/adapter/createFoundryOntologyBackendAdapter.js +288 -400
  8. package/lib/adapter/createFoundryOntologyBackendAdapter.js.map +1 -1
  9. package/lib/adapter/foundryActionValidation.d.ts +17 -15
  10. package/lib/adapter/foundryActionValidation.d.ts.map +1 -1
  11. package/lib/adapter/foundryActionValidation.js +206 -305
  12. package/lib/adapter/foundryActionValidation.js.map +1 -1
  13. package/lib/adapter/foundryCodec.d.ts +10 -9
  14. package/lib/adapter/foundryCodec.d.ts.map +1 -1
  15. package/lib/adapter/foundryCodec.js +180 -287
  16. package/lib/adapter/foundryCodec.js.map +1 -1
  17. package/lib/adapter/foundryMediaId.d.ts +6 -4
  18. package/lib/adapter/foundryMediaId.d.ts.map +1 -1
  19. package/lib/adapter/foundryMediaId.js +31 -32
  20. package/lib/adapter/foundryMediaId.js.map +1 -1
  21. package/lib/adapter/index.d.ts +4 -4
  22. package/lib/adapter/index.js +4 -4
  23. package/lib/adapter/objectCollectionOptions.d.ts +17 -18
  24. package/lib/adapter/objectCollectionOptions.d.ts.map +1 -1
  25. package/lib/adapter/objectCollectionOptions.js +417 -538
  26. package/lib/adapter/objectCollectionOptions.js.map +1 -1
  27. package/lib/config/applyAttachmentConstraintOverrides.d.ts +6 -4
  28. package/lib/config/applyAttachmentConstraintOverrides.d.ts.map +1 -1
  29. package/lib/config/applyAttachmentConstraintOverrides.js +45 -49
  30. package/lib/config/applyAttachmentConstraintOverrides.js.map +1 -1
  31. package/lib/config/index.d.ts +17 -15
  32. package/lib/config/index.d.ts.map +1 -1
  33. package/lib/config/index.js +56 -81
  34. package/lib/config/index.js.map +1 -1
  35. package/lib/connection.d.ts +28 -26
  36. package/lib/connection.d.ts.map +1 -1
  37. package/lib/connection.js +183 -215
  38. package/lib/connection.js.map +1 -1
  39. package/lib/index.d.ts +9 -5
  40. package/lib/index.js +9 -5
  41. package/lib/installation/createFoundryBackendInstallation.d.ts +21 -20
  42. package/lib/installation/createFoundryBackendInstallation.d.ts.map +1 -1
  43. package/lib/installation/createFoundryBackendInstallation.js +52 -62
  44. package/lib/installation/createFoundryBackendInstallation.js.map +1 -1
  45. package/lib/installation/index.d.ts +2 -2
  46. package/lib/installation/index.js +2 -2
  47. package/lib/meta/actionTypeCollectionOptions.d.ts +8 -6
  48. package/lib/meta/actionTypeCollectionOptions.d.ts.map +1 -1
  49. package/lib/meta/actionTypeCollectionOptions.js +49 -49
  50. package/lib/meta/actionTypeCollectionOptions.js.map +1 -1
  51. package/lib/meta/convertActionTypeLoadSubsetOptions.d.ts +3 -1
  52. package/lib/meta/convertActionTypeLoadSubsetOptions.d.ts.map +1 -1
  53. package/lib/meta/convertActionTypeLoadSubsetOptions.js +69 -75
  54. package/lib/meta/convertActionTypeLoadSubsetOptions.js.map +1 -1
  55. package/lib/meta/convertMetaActionType.d.ts +7 -5
  56. package/lib/meta/convertMetaActionType.d.ts.map +1 -1
  57. package/lib/meta/convertMetaActionType.js +458 -581
  58. package/lib/meta/convertMetaActionType.js.map +1 -1
  59. package/lib/meta/convertMetaLinkType.d.ts +4 -2
  60. package/lib/meta/convertMetaLinkType.d.ts.map +1 -1
  61. package/lib/meta/convertMetaLinkType.js +37 -43
  62. package/lib/meta/convertMetaLinkType.js.map +1 -1
  63. package/lib/meta/convertMetaObjectType.d.ts +4 -2
  64. package/lib/meta/convertMetaObjectType.d.ts.map +1 -1
  65. package/lib/meta/convertMetaObjectType.js +34 -35
  66. package/lib/meta/convertMetaObjectType.js.map +1 -1
  67. package/lib/meta/convertMetaQueryFunctionType.d.ts +4 -2
  68. package/lib/meta/convertMetaQueryFunctionType.d.ts.map +1 -1
  69. package/lib/meta/convertMetaQueryFunctionType.js +113 -94
  70. package/lib/meta/convertMetaQueryFunctionType.js.map +1 -1
  71. package/lib/meta/convertMetaTypeDef.d.ts +4 -2
  72. package/lib/meta/convertMetaTypeDef.d.ts.map +1 -1
  73. package/lib/meta/convertMetaTypeDef.js +178 -176
  74. package/lib/meta/convertMetaTypeDef.js.map +1 -1
  75. package/lib/meta/convertMetaValueType.d.ts +4 -2
  76. package/lib/meta/convertMetaValueType.d.ts.map +1 -1
  77. package/lib/meta/convertMetaValueType.js +11 -7
  78. package/lib/meta/convertMetaValueType.js.map +1 -1
  79. package/lib/meta/convertOmsActionParameterMetadata.d.ts +4 -2
  80. package/lib/meta/convertOmsActionParameterMetadata.d.ts.map +1 -1
  81. package/lib/meta/convertOmsActionParameterMetadata.js +107 -163
  82. package/lib/meta/convertOmsActionParameterMetadata.js.map +1 -1
  83. package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts +7 -5
  84. package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts.map +1 -1
  85. package/lib/meta/createFoundryMetaOntologyBackendAdapter.js +39 -41
  86. package/lib/meta/createFoundryMetaOntologyBackendAdapter.js.map +1 -1
  87. package/lib/meta/entityCollectionOptions.d.ts +12 -11
  88. package/lib/meta/entityCollectionOptions.d.ts.map +1 -1
  89. package/lib/meta/entityCollectionOptions.js +59 -62
  90. package/lib/meta/entityCollectionOptions.js.map +1 -1
  91. package/lib/meta/foundryAttachmentMetadata.d.ts +2 -0
  92. package/lib/meta/foundryAttachmentMetadata.d.ts.map +1 -1
  93. package/lib/meta/foundryAttachmentMetadata.js +13 -14
  94. package/lib/meta/foundryAttachmentMetadata.js.map +1 -1
  95. package/lib/meta/index.d.ts +5 -5
  96. package/lib/meta/index.js +5 -5
  97. package/lib/meta/loadActionTypeOmsMetadata.d.ts +5 -4
  98. package/lib/meta/loadActionTypeOmsMetadata.d.ts.map +1 -1
  99. package/lib/meta/loadActionTypeOmsMetadata.js +102 -139
  100. package/lib/meta/loadActionTypeOmsMetadata.js.map +1 -1
  101. package/lib/meta/queryFunctionTypeCollectionOptions.d.ts +7 -5
  102. package/lib/meta/queryFunctionTypeCollectionOptions.d.ts.map +1 -1
  103. package/lib/meta/queryFunctionTypeCollectionOptions.js +47 -49
  104. package/lib/meta/queryFunctionTypeCollectionOptions.js.map +1 -1
  105. package/lib/stagedWrites.d.ts +26 -24
  106. package/lib/stagedWrites.d.ts.map +1 -1
  107. package/lib/stagedWrites.js +55 -66
  108. package/lib/stagedWrites.js.map +1 -1
  109. package/lib/users/createFoundryAdminOntologyRoute.d.ts +47 -17366
  110. package/lib/users/createFoundryAdminOntologyRoute.d.ts.map +1 -1
  111. package/lib/users/createFoundryAdminOntologyRoute.js +29 -37
  112. package/lib/users/createFoundryAdminOntologyRoute.js.map +1 -1
  113. package/lib/users/createFoundryUsersIntegration.d.ts +6 -4
  114. package/lib/users/createFoundryUsersIntegration.d.ts.map +1 -1
  115. package/lib/users/createFoundryUsersIntegration.js +28 -30
  116. package/lib/users/createFoundryUsersIntegration.js.map +1 -1
  117. package/lib/users/foundryUser.d.ts +4 -2
  118. package/lib/users/foundryUser.d.ts.map +1 -1
  119. package/lib/users/foundryUser.js +69 -74
  120. package/lib/users/foundryUser.js.map +1 -1
  121. package/lib/users/index.d.ts +5 -5
  122. package/lib/users/index.js +5 -5
  123. package/lib/users/userCollectionOptions.d.ts +13 -12
  124. package/lib/users/userCollectionOptions.d.ts.map +1 -1
  125. package/lib/users/userCollectionOptions.js +82 -100
  126. package/lib/users/userCollectionOptions.js.map +1 -1
  127. package/lib/utils/AsyncIterable.d.ts +2 -0
  128. package/lib/utils/AsyncIterable.d.ts.map +1 -1
  129. package/lib/utils/AsyncIterable.js +26 -34
  130. package/lib/utils/AsyncIterable.js.map +1 -1
  131. package/lib/utils/actionTypeName.d.ts +2 -0
  132. package/lib/utils/actionTypeName.d.ts.map +1 -1
  133. package/lib/utils/actionTypeName.js +9 -7
  134. package/lib/utils/actionTypeName.js.map +1 -1
  135. package/lib/utils/chunk.d.ts +2 -0
  136. package/lib/utils/chunk.d.ts.map +1 -1
  137. package/lib/utils/chunk.js +8 -6
  138. package/lib/utils/chunk.js.map +1 -1
  139. package/package.json +17 -23
  140. package/lib/adapter/convertLoadSubsetOptions.test.d.ts +0 -2
  141. package/lib/adapter/convertLoadSubsetOptions.test.d.ts.map +0 -1
  142. package/lib/adapter/convertLoadSubsetOptions.test.js +0 -213
  143. package/lib/adapter/convertLoadSubsetOptions.test.js.map +0 -1
  144. package/lib/adapter/createFoundryOntologyBackendAdapter.test.d.ts +0 -2
  145. package/lib/adapter/createFoundryOntologyBackendAdapter.test.d.ts.map +0 -1
  146. package/lib/adapter/createFoundryOntologyBackendAdapter.test.js +0 -628
  147. package/lib/adapter/createFoundryOntologyBackendAdapter.test.js.map +0 -1
  148. package/lib/adapter/foundryActionValidation.test.d.ts +0 -2
  149. package/lib/adapter/foundryActionValidation.test.d.ts.map +0 -1
  150. package/lib/adapter/foundryActionValidation.test.js +0 -243
  151. package/lib/adapter/foundryActionValidation.test.js.map +0 -1
  152. package/lib/adapter/foundryCodec.test.d.ts +0 -2
  153. package/lib/adapter/foundryCodec.test.d.ts.map +0 -1
  154. package/lib/adapter/foundryCodec.test.js +0 -137
  155. package/lib/adapter/foundryCodec.test.js.map +0 -1
  156. package/lib/adapter/foundryMediaId.test.d.ts +0 -2
  157. package/lib/adapter/foundryMediaId.test.d.ts.map +0 -1
  158. package/lib/adapter/foundryMediaId.test.js +0 -23
  159. package/lib/adapter/foundryMediaId.test.js.map +0 -1
  160. package/lib/adapter/index.d.ts.map +0 -1
  161. package/lib/adapter/index.js.map +0 -1
  162. package/lib/adapter/objectCollectionOptions.test.d.ts +0 -2
  163. package/lib/adapter/objectCollectionOptions.test.d.ts.map +0 -1
  164. package/lib/adapter/objectCollectionOptions.test.js +0 -1290
  165. package/lib/adapter/objectCollectionOptions.test.js.map +0 -1
  166. package/lib/config/connectionPull.test.d.ts +0 -2
  167. package/lib/config/connectionPull.test.d.ts.map +0 -1
  168. package/lib/config/connectionPull.test.js +0 -151
  169. package/lib/config/connectionPull.test.js.map +0 -1
  170. package/lib/config/index.test.d.ts +0 -2
  171. package/lib/config/index.test.d.ts.map +0 -1
  172. package/lib/config/index.test.js +0 -182
  173. package/lib/config/index.test.js.map +0 -1
  174. package/lib/connection.test.d.ts +0 -2
  175. package/lib/connection.test.d.ts.map +0 -1
  176. package/lib/connection.test.js +0 -162
  177. package/lib/connection.test.js.map +0 -1
  178. package/lib/index.d.ts.map +0 -1
  179. package/lib/index.js.map +0 -1
  180. package/lib/installation/createFoundryBackendInstallation.test.d.ts +0 -2
  181. package/lib/installation/createFoundryBackendInstallation.test.d.ts.map +0 -1
  182. package/lib/installation/createFoundryBackendInstallation.test.js +0 -83
  183. package/lib/installation/createFoundryBackendInstallation.test.js.map +0 -1
  184. package/lib/installation/index.d.ts.map +0 -1
  185. package/lib/installation/index.js.map +0 -1
  186. package/lib/meta/actionTypeCollectionOptions.test.d.ts +0 -2
  187. package/lib/meta/actionTypeCollectionOptions.test.d.ts.map +0 -1
  188. package/lib/meta/actionTypeCollectionOptions.test.js +0 -24
  189. package/lib/meta/actionTypeCollectionOptions.test.js.map +0 -1
  190. package/lib/meta/actionTypeIdQuery.test.d.ts +0 -2
  191. package/lib/meta/actionTypeIdQuery.test.d.ts.map +0 -1
  192. package/lib/meta/actionTypeIdQuery.test.js +0 -131
  193. package/lib/meta/actionTypeIdQuery.test.js.map +0 -1
  194. package/lib/meta/convertActionTypeLoadSubsetOptions.test.d.ts +0 -2
  195. package/lib/meta/convertActionTypeLoadSubsetOptions.test.d.ts.map +0 -1
  196. package/lib/meta/convertActionTypeLoadSubsetOptions.test.js +0 -138
  197. package/lib/meta/convertActionTypeLoadSubsetOptions.test.js.map +0 -1
  198. package/lib/meta/convertMetaActionType.test.d.ts +0 -2
  199. package/lib/meta/convertMetaActionType.test.d.ts.map +0 -1
  200. package/lib/meta/convertMetaActionType.test.js +0 -1565
  201. package/lib/meta/convertMetaActionType.test.js.map +0 -1
  202. package/lib/meta/convertMetaLinkType.test.d.ts +0 -2
  203. package/lib/meta/convertMetaLinkType.test.d.ts.map +0 -1
  204. package/lib/meta/convertMetaLinkType.test.js +0 -110
  205. package/lib/meta/convertMetaLinkType.test.js.map +0 -1
  206. package/lib/meta/convertMetaObjectType.test.d.ts +0 -2
  207. package/lib/meta/convertMetaObjectType.test.d.ts.map +0 -1
  208. package/lib/meta/convertMetaObjectType.test.js +0 -250
  209. package/lib/meta/convertMetaObjectType.test.js.map +0 -1
  210. package/lib/meta/convertMetaQueryFunctionType.test.d.ts +0 -2
  211. package/lib/meta/convertMetaQueryFunctionType.test.d.ts.map +0 -1
  212. package/lib/meta/convertMetaQueryFunctionType.test.js +0 -134
  213. package/lib/meta/convertMetaQueryFunctionType.test.js.map +0 -1
  214. package/lib/meta/createFoundryMetaOntologyBackendAdapter.test.d.ts +0 -2
  215. package/lib/meta/createFoundryMetaOntologyBackendAdapter.test.d.ts.map +0 -1
  216. package/lib/meta/createFoundryMetaOntologyBackendAdapter.test.js +0 -49
  217. package/lib/meta/createFoundryMetaOntologyBackendAdapter.test.js.map +0 -1
  218. package/lib/meta/entityCollectionOptions.test.d.ts +0 -2
  219. package/lib/meta/entityCollectionOptions.test.d.ts.map +0 -1
  220. package/lib/meta/entityCollectionOptions.test.js +0 -98
  221. package/lib/meta/entityCollectionOptions.test.js.map +0 -1
  222. package/lib/meta/index.d.ts.map +0 -1
  223. package/lib/meta/index.js.map +0 -1
  224. package/lib/meta/loadActionTypeOmsMetadata.test.d.ts +0 -2
  225. package/lib/meta/loadActionTypeOmsMetadata.test.d.ts.map +0 -1
  226. package/lib/meta/loadActionTypeOmsMetadata.test.js +0 -218
  227. package/lib/meta/loadActionTypeOmsMetadata.test.js.map +0 -1
  228. package/lib/stagedWrites.test.d.ts +0 -2
  229. package/lib/stagedWrites.test.d.ts.map +0 -1
  230. package/lib/stagedWrites.test.js +0 -71
  231. package/lib/stagedWrites.test.js.map +0 -1
  232. package/lib/users/createFoundryUsersIntegration.test.d.ts +0 -2
  233. package/lib/users/createFoundryUsersIntegration.test.d.ts.map +0 -1
  234. package/lib/users/createFoundryUsersIntegration.test.js +0 -32
  235. package/lib/users/createFoundryUsersIntegration.test.js.map +0 -1
  236. package/lib/users/foundryUser.test.d.ts +0 -2
  237. package/lib/users/foundryUser.test.d.ts.map +0 -1
  238. package/lib/users/foundryUser.test.js +0 -45
  239. package/lib/users/foundryUser.test.js.map +0 -1
  240. package/lib/users/index.d.ts.map +0 -1
  241. package/lib/users/index.js.map +0 -1
  242. package/lib/users/userCollectionOptions.test.d.ts +0 -2
  243. package/lib/users/userCollectionOptions.test.d.ts.map +0 -1
  244. package/lib/users/userCollectionOptions.test.js +0 -18
  245. package/lib/users/userCollectionOptions.test.js.map +0 -1
  246. package/lib/utils/AsyncIterable.test.d.ts +0 -2
  247. package/lib/utils/AsyncIterable.test.d.ts.map +0 -1
  248. package/lib/utils/AsyncIterable.test.js +0 -17
  249. package/lib/utils/AsyncIterable.test.js.map +0 -1
  250. package/lib/utils/actionTypeName.test.d.ts +0 -2
  251. package/lib/utils/actionTypeName.test.d.ts.map +0 -1
  252. package/lib/utils/actionTypeName.test.js +0 -30
  253. package/lib/utils/actionTypeName.test.js.map +0 -1
@@ -1,19 +1,20 @@
1
- import type { OntologyIR, TypeDef } from "@party-stack/ontology";
2
- import type { MediaReference } from "@osdk/foundry.core";
3
- import type { OntologyObjectV2 } from "@osdk/foundry.ontologies";
1
+ import { OntologyObjectV2 } from "@osdk/foundry.ontologies";
2
+ import { OntologyIR, TypeDef } from "@party-stack/ontology";
3
+ import { MediaReference } from "@osdk/foundry.core";
4
+ //#region src/adapter/foundryCodec.d.ts
4
5
  type FoundryObjectRecord = Record<string, unknown>;
5
6
  /** @deprecated Use {@link FoundryCodec} instead. */
6
7
  export type FoundryObjectDecoder = FoundryCodec;
7
8
  /** @deprecated Use {@link createFoundryCodec} instead. */
8
9
  export declare const createFoundryObjectDecoder: typeof createFoundryCodec;
9
10
  export interface FoundryCodec {
10
- decodeObject: (objectType: string, object: OntologyObjectV2 | FoundryObjectRecord) => FoundryObjectRecord;
11
- decodeEditObject: (objectType: string, object: FoundryObjectRecord) => FoundryObjectRecord;
12
- decodeValue: (type: TypeDef, value: unknown) => unknown;
13
- encodeValue: (type: TypeDef, value: unknown) => unknown;
11
+ decodeObject: (objectType: string, object: OntologyObjectV2 | FoundryObjectRecord) => FoundryObjectRecord;
12
+ decodeEditObject: (objectType: string, object: FoundryObjectRecord) => FoundryObjectRecord;
13
+ decodeValue: (type: TypeDef, value: unknown) => unknown;
14
+ encodeValue: (type: TypeDef, value: unknown) => unknown;
14
15
  }
15
16
  export declare function createFoundryCodec(ir: OntologyIR, options?: {
16
- resolveMediaReference?: (id: string) => MediaReference | undefined;
17
+ resolveMediaReference?: (id: string) => MediaReference | undefined;
17
18
  }): FoundryCodec;
18
- export {};
19
+ //#endregion
19
20
  //# sourceMappingURL=foundryCodec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"foundryCodec.d.ts","sourceRoot":"","sources":["../../src/adapter/foundryCodec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,UAAU,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAOhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAsB,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAErF,KAAK,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACnD,oDAAoD;AACpD,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAEhD,0DAA0D;AAC1D,eAAO,MAAM,0BAA0B,2BAAqB,CAAC;AAE7D,MAAM,WAAW,YAAY;IACzB,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,mBAAmB,KAAK,mBAAmB,CAAC;IAC1G,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,KAAK,mBAAmB,CAAC;IAC3F,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACxD,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAC3D;AAED,wBAAgB,kBAAkB,CAC9B,EAAE,EAAE,UAAU,EACd,OAAO,CAAC,EAAE;IACN,qBAAqB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;CACtE,GACF,YAAY,CA8Md"}
1
+ {"version":3,"file":"foundryCodec.d.ts","names":[],"sources":["../../src/adapter/foundryCodec.ts"],"mappings":";;;;KAWK,sBAAsB;;YAEf,uBAAuB;;qBAGtB,mCAA0B;iBAEtB;EACb,eAAe,oBAAoB,QAAQ,mBAAmB,wBAAwB;EACtF,mBAAmB,oBAAoB,QAAQ,wBAAwB;EACvE,cAAc,MAAM,SAAS;EAC7B,cAAc,MAAM,SAAS;;wBAGjB,mBACZ,IAAI,YACJ;EACI,yBAAyB,eAAe;IAE7C"}
@@ -1,309 +1,202 @@
1
- import { Temporal } from "temporal-polyfill";
2
1
  import { getFoundryAttachmentKind } from "../meta/foundryAttachmentMetadata.js";
3
- import { decodeFoundryMediaId, foundryMediaIdToReference, mediaReferenceToFoundryMediaId, } from "./foundryMediaId.js";
2
+ import { decodeFoundryMediaId, foundryMediaIdToReference, mediaReferenceToFoundryMediaId } from "./foundryMediaId.js";
3
+ import { Temporal } from "temporal-polyfill";
4
+ //#region src/adapter/foundryCodec.ts
4
5
  /** @deprecated Use {@link createFoundryCodec} instead. */
5
- export const createFoundryObjectDecoder = createFoundryCodec;
6
- export function createFoundryCodec(ir, options) {
7
- const objectTypes = new Map(ir.objectTypes.map((objectType) => [objectType.name, objectType]));
8
- const namedTypes = new Map(ir.types.map((type) => [type.name, type.type]));
9
- const resolveType = (type, seen = new Set()) => {
10
- if (type.kind !== "ref") {
11
- return type;
12
- }
13
- const name = type.value.name;
14
- if (seen.has(name)) {
15
- throw new Error(`Circular ontology type reference "${name}".`);
16
- }
17
- const resolved = namedTypes.get(name);
18
- if (!resolved) {
19
- throw new Error(`Unknown ontology type reference "${name}".`);
20
- }
21
- return resolveType(resolved, new Set([...seen, name]));
22
- };
23
- const decodeValue = (type, value, context = {
24
- editHistory: false,
25
- optional: false,
26
- }) => {
27
- const resolvedType = resolveType(type);
28
- if (resolvedType.kind === "optional") {
29
- if (value === undefined ||
30
- value === null ||
31
- (context.editHistory && isNullEditHistoryValue(value))) {
32
- return undefined;
33
- }
34
- return decodeValue(resolvedType.value.type, value, {
35
- ...context,
36
- optional: true,
37
- });
38
- }
39
- if (value === undefined || value === null) {
40
- return value;
41
- }
42
- if (context.editHistory) {
43
- value = unwrapEditHistoryValue(resolvedType, value);
44
- }
45
- switch (resolvedType.kind) {
46
- case "string":
47
- return value;
48
- case "boolean":
49
- return typeof value === "string" ? value === "true" : value;
50
- case "integer":
51
- case "float":
52
- case "double":
53
- return typeof value === "string" ? Number(value) : value;
54
- case "date":
55
- return typeof value === "string" ? Temporal.PlainDate.from(value) : value;
56
- case "timestamp":
57
- if (typeof value === "string")
58
- return Temporal.Instant.from(value);
59
- if (typeof value === "number")
60
- return Temporal.Instant.fromEpochMilliseconds(value);
61
- return value;
62
- case "geopoint":
63
- return decodeGeoPoint(value);
64
- case "attachment":
65
- return decodeAttachment(value, resolvedType.value.meta, context.optional);
66
- case "objectReference":
67
- return value;
68
- case "list":
69
- return Array.isArray(value)
70
- ? value.map((item) => decodeValue(resolvedType.value.elementType, item, context))
71
- : value;
72
- case "map":
73
- if (!isPlainObject(value)) {
74
- return value;
75
- }
76
- return Object.fromEntries(Object.entries(value).map(([key, entryValue]) => [
77
- decodeValue(resolvedType.value.keyType, key, context),
78
- decodeValue(resolvedType.value.valueType, entryValue, context),
79
- ]));
80
- case "struct":
81
- if (!isPlainObject(value)) {
82
- return value;
83
- }
84
- return Object.fromEntries(Object.entries(value).map(([key, entryValue]) => {
85
- const field = resolvedType.value.fields.find((candidate) => candidate.name === key);
86
- return [
87
- key,
88
- field ? decodeValue(field.type, entryValue, context) : entryValue,
89
- ];
90
- }));
91
- case "union":
92
- case "result":
93
- return value;
94
- case "ref":
95
- return decodeValue(resolveType(resolvedType), value);
96
- }
97
- };
98
- const decodeObjectType = (objectType, object, editHistory = false) => {
99
- return Object.fromEntries(Object.entries(object).map(([key, value]) => {
100
- const property = objectType.properties.find((candidate) => candidate.name === key);
101
- return [
102
- key,
103
- property
104
- ? decodeValue(property.type, value, {
105
- editHistory,
106
- optional: false,
107
- })
108
- : value,
109
- ];
110
- }));
111
- };
112
- const encodeValue = (type, value) => {
113
- if (value === undefined)
114
- return undefined;
115
- if (value === null)
116
- return null;
117
- const resolvedType = resolveType(type);
118
- switch (resolvedType.kind) {
119
- case "string":
120
- case "boolean":
121
- case "integer":
122
- case "float":
123
- case "double":
124
- return value;
125
- case "date":
126
- return value instanceof Temporal.PlainDate ? value.toString() : value;
127
- case "timestamp":
128
- if (value instanceof Temporal.Instant)
129
- return value.toString();
130
- if (value instanceof Temporal.PlainDateTime)
131
- return value.toString();
132
- return value;
133
- case "geopoint":
134
- return encodeGeoPoint(value);
135
- case "attachment":
136
- return encodeAttachment(value, resolvedType.value.meta, options?.resolveMediaReference);
137
- case "objectReference":
138
- case "unknown":
139
- return value;
140
- case "list":
141
- return Array.isArray(value)
142
- ? value.map((item) => encodeValue(resolvedType.value.elementType, item))
143
- : value;
144
- case "map":
145
- if (!isPlainObject(value))
146
- return value;
147
- return Object.fromEntries(Object.entries(value).map(([key, entryValue]) => [
148
- key,
149
- encodeValue(resolvedType.value.valueType, entryValue),
150
- ]));
151
- case "struct":
152
- if (!isPlainObject(value))
153
- return value;
154
- return Object.fromEntries(Object.entries(value).map(([key, entryValue]) => {
155
- const field = resolvedType.value.fields.find((f) => f.name === key);
156
- return [key, field ? encodeValue(field.type, entryValue) : entryValue];
157
- }));
158
- case "optional":
159
- return encodeValue(resolvedType.value.type, value);
160
- case "union":
161
- case "result":
162
- return value;
163
- case "ref":
164
- return encodeValue(resolveType(resolvedType), value);
165
- }
166
- };
167
- return {
168
- decodeObject: (objectTypeName, object) => {
169
- const objectType = objectTypes.get(objectTypeName);
170
- if (!objectType) {
171
- return object;
172
- }
173
- return decodeObjectType(objectType, object);
174
- },
175
- decodeEditObject: (objectTypeName, object) => {
176
- const objectType = objectTypes.get(objectTypeName);
177
- if (!objectType) {
178
- return object;
179
- }
180
- return decodeObjectType(objectType, object, true);
181
- },
182
- decodeValue,
183
- encodeValue,
184
- };
6
+ const createFoundryObjectDecoder = createFoundryCodec;
7
+ function createFoundryCodec(ir, options) {
8
+ const objectTypes = new Map(ir.objectTypes.map((objectType) => [objectType.name, objectType]));
9
+ const namedTypes = new Map(ir.types.map((type) => [type.name, type.type]));
10
+ const resolveType = (type, seen = /* @__PURE__ */ new Set()) => {
11
+ if (type.kind !== "ref") return type;
12
+ const name = type.value.name;
13
+ if (seen.has(name)) throw new Error(`Circular ontology type reference "${name}".`);
14
+ const resolved = namedTypes.get(name);
15
+ if (!resolved) throw new Error(`Unknown ontology type reference "${name}".`);
16
+ return resolveType(resolved, /* @__PURE__ */ new Set([...seen, name]));
17
+ };
18
+ const decodeValue = (type, value, context = {
19
+ editHistory: false,
20
+ optional: false
21
+ }) => {
22
+ const resolvedType = resolveType(type);
23
+ if (resolvedType.kind === "optional") {
24
+ if (value === void 0 || value === null || context.editHistory && isNullEditHistoryValue(value)) return;
25
+ return decodeValue(resolvedType.value.type, value, {
26
+ ...context,
27
+ optional: true
28
+ });
29
+ }
30
+ if (value === void 0 || value === null) return value;
31
+ if (context.editHistory) value = unwrapEditHistoryValue(resolvedType, value);
32
+ switch (resolvedType.kind) {
33
+ case "string": return value;
34
+ case "boolean": return typeof value === "string" ? value === "true" : value;
35
+ case "integer":
36
+ case "float":
37
+ case "double": return typeof value === "string" ? Number(value) : value;
38
+ case "date": return typeof value === "string" ? Temporal.PlainDate.from(value) : value;
39
+ case "timestamp":
40
+ if (typeof value === "string") return Temporal.Instant.from(value);
41
+ if (typeof value === "number") return Temporal.Instant.fromEpochMilliseconds(value);
42
+ return value;
43
+ case "geopoint": return decodeGeoPoint(value);
44
+ case "attachment": return decodeAttachment(value, resolvedType.value.meta, context.optional);
45
+ case "objectReference": return value;
46
+ case "list": return Array.isArray(value) ? value.map((item) => decodeValue(resolvedType.value.elementType, item, context)) : value;
47
+ case "map":
48
+ if (!isPlainObject(value)) return value;
49
+ return Object.fromEntries(Object.entries(value).map(([key, entryValue]) => [decodeValue(resolvedType.value.keyType, key, context), decodeValue(resolvedType.value.valueType, entryValue, context)]));
50
+ case "struct":
51
+ if (!isPlainObject(value)) return value;
52
+ return Object.fromEntries(Object.entries(value).map(([key, entryValue]) => {
53
+ const field = resolvedType.value.fields.find((candidate) => candidate.name === key);
54
+ return [key, field ? decodeValue(field.type, entryValue, context) : entryValue];
55
+ }));
56
+ case "union":
57
+ case "result": return value;
58
+ case "ref": return decodeValue(resolveType(resolvedType), value);
59
+ }
60
+ };
61
+ const decodeObjectType = (objectType, object, editHistory = false) => {
62
+ return Object.fromEntries(Object.entries(object).map(([key, value]) => {
63
+ const property = objectType.properties.find((candidate) => candidate.name === key);
64
+ return [key, property ? decodeValue(property.type, value, {
65
+ editHistory,
66
+ optional: false
67
+ }) : value];
68
+ }));
69
+ };
70
+ const encodeValue = (type, value) => {
71
+ if (value === void 0) return void 0;
72
+ if (value === null) return null;
73
+ const resolvedType = resolveType(type);
74
+ switch (resolvedType.kind) {
75
+ case "string":
76
+ case "boolean":
77
+ case "integer":
78
+ case "float":
79
+ case "double": return value;
80
+ case "date": return value instanceof Temporal.PlainDate ? value.toString() : value;
81
+ case "timestamp":
82
+ if (value instanceof Temporal.Instant) return value.toString();
83
+ if (value instanceof Temporal.PlainDateTime) return value.toString();
84
+ return value;
85
+ case "geopoint": return encodeGeoPoint(value);
86
+ case "attachment": return encodeAttachment(value, resolvedType.value.meta, options?.resolveMediaReference);
87
+ case "objectReference":
88
+ case "unknown": return value;
89
+ case "list": return Array.isArray(value) ? value.map((item) => encodeValue(resolvedType.value.elementType, item)) : value;
90
+ case "map":
91
+ if (!isPlainObject(value)) return value;
92
+ return Object.fromEntries(Object.entries(value).map(([key, entryValue]) => [key, encodeValue(resolvedType.value.valueType, entryValue)]));
93
+ case "struct":
94
+ if (!isPlainObject(value)) return value;
95
+ return Object.fromEntries(Object.entries(value).map(([key, entryValue]) => {
96
+ const field = resolvedType.value.fields.find((f) => f.name === key);
97
+ return [key, field ? encodeValue(field.type, entryValue) : entryValue];
98
+ }));
99
+ case "optional": return encodeValue(resolvedType.value.type, value);
100
+ case "union":
101
+ case "result": return value;
102
+ case "ref": return encodeValue(resolveType(resolvedType), value);
103
+ }
104
+ };
105
+ return {
106
+ decodeObject: (objectTypeName, object) => {
107
+ const objectType = objectTypes.get(objectTypeName);
108
+ if (!objectType) return object;
109
+ return decodeObjectType(objectType, object);
110
+ },
111
+ decodeEditObject: (objectTypeName, object) => {
112
+ const objectType = objectTypes.get(objectTypeName);
113
+ if (!objectType) return object;
114
+ return decodeObjectType(objectType, object, true);
115
+ },
116
+ decodeValue,
117
+ encodeValue
118
+ };
185
119
  }
186
120
  function encodeGeoPoint(value) {
187
- if (isPlainObject(value) && typeof value.lat === "number" && typeof value.lon === "number") {
188
- return { type: "Point", coordinates: [value.lon, value.lat] };
189
- }
190
- return value;
121
+ if (isPlainObject(value) && typeof value.lat === "number" && typeof value.lon === "number") return {
122
+ type: "Point",
123
+ coordinates: [value.lon, value.lat]
124
+ };
125
+ return value;
191
126
  }
192
127
  function decodeGeoPoint(value) {
193
- if (isPlainObject(value) && value.type === "Point" && Array.isArray(value.coordinates)) {
194
- const coordinates = value.coordinates;
195
- const lon = coordinates[0];
196
- const lat = coordinates[1];
197
- if (typeof lat === "number" && typeof lon === "number") {
198
- return { lat, lon };
199
- }
200
- }
201
- if (isPlainObject(value) && typeof value.lat === "number" && typeof value.lon === "number") {
202
- return value;
203
- }
204
- return value;
128
+ if (isPlainObject(value) && value.type === "Point" && Array.isArray(value.coordinates)) {
129
+ const coordinates = value.coordinates;
130
+ const lon = coordinates[0];
131
+ const lat = coordinates[1];
132
+ if (typeof lat === "number" && typeof lon === "number") return {
133
+ lat,
134
+ lon
135
+ };
136
+ }
137
+ if (isPlainObject(value) && typeof value.lat === "number" && typeof value.lon === "number") return value;
138
+ return value;
205
139
  }
206
140
  function isNullEditHistoryValue(value) {
207
- return value === "NullPropertyValue{}";
141
+ return value === "NullPropertyValue{}";
208
142
  }
209
143
  function unwrapEditHistoryValue(type, value) {
210
- if (isPlainObject(value) &&
211
- typeof value.type === "string" &&
212
- "value" in value &&
213
- [
214
- "stringValue",
215
- "integerValue",
216
- "doubleValue",
217
- "longValue",
218
- "booleanValue",
219
- "dateValue",
220
- "timestampValue",
221
- ].includes(value.type)) {
222
- return value.value;
223
- }
224
- if (type.kind === "geopoint" && typeof value === "string") {
225
- const match = /^GeoPointPropertyValue\{latitude:\s*(-?[\d.]+),\s*longitude:\s*(-?[\d.]+)\}$/.exec(value);
226
- if (match) {
227
- return {
228
- lat: Number(match[1]),
229
- lon: Number(match[2]),
230
- };
231
- }
232
- }
233
- if (type.kind === "attachment" &&
234
- getFoundryAttachmentKind(type.value.meta) !== "media" &&
235
- isPlainObject(value) &&
236
- value.type === "attachment" &&
237
- typeof value.attachment === "string") {
238
- return { rid: value.attachment };
239
- }
240
- if (type.kind === "attachment" &&
241
- getFoundryAttachmentKind(type.value.meta) === "media" &&
242
- isPlainObject(value) &&
243
- value.type === "mediaReference" &&
244
- isPlainObject(value.mediaReference)) {
245
- return value.mediaReference;
246
- }
247
- return value;
144
+ if (isPlainObject(value) && typeof value.type === "string" && "value" in value && [
145
+ "stringValue",
146
+ "integerValue",
147
+ "doubleValue",
148
+ "longValue",
149
+ "booleanValue",
150
+ "dateValue",
151
+ "timestampValue"
152
+ ].includes(value.type)) return value.value;
153
+ if (type.kind === "geopoint" && typeof value === "string") {
154
+ const match = /^GeoPointPropertyValue\{latitude:\s*(-?[\d.]+),\s*longitude:\s*(-?[\d.]+)\}$/.exec(value);
155
+ if (match) return {
156
+ lat: Number(match[1]),
157
+ lon: Number(match[2])
158
+ };
159
+ }
160
+ if (type.kind === "attachment" && getFoundryAttachmentKind(type.value.meta) !== "media" && isPlainObject(value) && value.type === "attachment" && typeof value.attachment === "string") return { rid: value.attachment };
161
+ if (type.kind === "attachment" && getFoundryAttachmentKind(type.value.meta) === "media" && isPlainObject(value) && value.type === "mediaReference" && isPlainObject(value.mediaReference)) return value.mediaReference;
162
+ return value;
248
163
  }
249
164
  function decodeAttachment(value, meta, optional) {
250
- const kind = getFoundryAttachmentKind(meta);
251
- const decoded = kind === "media"
252
- ? decodeMediaReference(value)
253
- : decodeFoundryAttachment(value);
254
- if (decoded !== undefined || optional) {
255
- return decoded;
256
- }
257
- throw new Error(`Invalid required Foundry ${kind} value.`);
165
+ const kind = getFoundryAttachmentKind(meta);
166
+ const decoded = kind === "media" ? decodeMediaReference(value) : decodeFoundryAttachment(value);
167
+ if (decoded !== void 0 || optional) return decoded;
168
+ throw new Error(`Invalid required Foundry ${kind} value.`);
258
169
  }
259
170
  function decodeFoundryAttachment(value) {
260
- const attachment = value;
261
- if (typeof attachment?.rid !== "string") {
262
- return undefined;
263
- }
264
- return { id: attachment.rid };
171
+ const attachment = value;
172
+ if (typeof attachment?.rid !== "string") return;
173
+ return { id: attachment.rid };
265
174
  }
266
175
  function decodeMediaReference(value) {
267
- if (!isPlainObject(value) ||
268
- typeof value.mimeType !== "string" ||
269
- !isPlainObject(value.reference) ||
270
- value.reference.type !== "mediaSetViewItem" ||
271
- !isPlainObject(value.reference.mediaSetViewItem)) {
272
- return undefined;
273
- }
274
- const mediaReference = value;
275
- const id = mediaReferenceToFoundryMediaId(mediaReference);
276
- if (!decodeFoundryMediaId(id)) {
277
- return undefined;
278
- }
279
- return {
280
- id,
281
- type: mediaReference.mimeType,
282
- };
176
+ if (!isPlainObject(value) || typeof value.mimeType !== "string" || !isPlainObject(value.reference) || value.reference.type !== "mediaSetViewItem" || !isPlainObject(value.reference.mediaSetViewItem)) return;
177
+ const mediaReference = value;
178
+ const id = mediaReferenceToFoundryMediaId(mediaReference);
179
+ if (!decodeFoundryMediaId(id)) return;
180
+ return {
181
+ id,
182
+ type: mediaReference.mimeType
183
+ };
283
184
  }
284
185
  function encodeAttachment(value, meta, resolveMediaReference) {
285
- if (!isPlainObject(value)) {
286
- return value;
287
- }
288
- if (typeof value.id !== "string") {
289
- throw new Error("Invalid Foundry attachment value: expected an attachment with a string id.");
290
- }
291
- if (getFoundryAttachmentKind(meta) !== "media") {
292
- return value.id;
293
- }
294
- const resolved = resolveMediaReference?.(value.id);
295
- if (resolved)
296
- return resolved;
297
- const id = decodeFoundryMediaId(value.id);
298
- if (!id) {
299
- throw new Error(`Invalid Foundry media attachment id "${value.id}".`);
300
- }
301
- if (typeof value.type !== "string") {
302
- throw new Error(`Foundry media attachment "${value.id}" is missing its MIME type.`);
303
- }
304
- return foundryMediaIdToReference(id, value.type);
186
+ if (!isPlainObject(value)) return value;
187
+ if (typeof value.id !== "string") throw new Error("Invalid Foundry attachment value: expected an attachment with a string id.");
188
+ if (getFoundryAttachmentKind(meta) !== "media") return value.id;
189
+ const resolved = resolveMediaReference?.(value.id);
190
+ if (resolved) return resolved;
191
+ const id = decodeFoundryMediaId(value.id);
192
+ if (!id) throw new Error(`Invalid Foundry media attachment id "${value.id}".`);
193
+ if (typeof value.type !== "string") throw new Error(`Foundry media attachment "${value.id}" is missing its MIME type.`);
194
+ return foundryMediaIdToReference(id, value.type);
305
195
  }
306
196
  function isPlainObject(value) {
307
- return typeof value === "object" && value !== null && !Array.isArray(value);
197
+ return typeof value === "object" && value !== null && !Array.isArray(value);
308
198
  }
199
+ //#endregion
200
+ export { createFoundryCodec, createFoundryObjectDecoder };
201
+
309
202
  //# sourceMappingURL=foundryCodec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"foundryCodec.js","sourceRoot":"","sources":["../../src/adapter/foundryCodec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"foundryCodec.js","names":[],"sources":["../../src/adapter/foundryCodec.ts"],"sourcesContent":["import { Temporal } from \"temporal-polyfill\";\nimport { getFoundryAttachmentKind } from \"../meta/foundryAttachmentMetadata.js\";\nimport {\n decodeFoundryMediaId,\n foundryMediaIdToReference,\n mediaReferenceToFoundryMediaId,\n} from \"./foundryMediaId.js\";\nimport type { MediaReference } from \"@osdk/foundry.core\";\nimport type { AttachmentProperty, OntologyObjectV2 } from \"@osdk/foundry.ontologies\";\nimport type { ObjectTypeDef, OntologyIR, TypeDef } from \"@party-stack/ontology\";\n\ntype FoundryObjectRecord = Record<string, unknown>;\n/** @deprecated Use {@link FoundryCodec} instead. */\nexport type FoundryObjectDecoder = FoundryCodec;\n\n/** @deprecated Use {@link createFoundryCodec} instead. */\nexport const createFoundryObjectDecoder = createFoundryCodec;\n\nexport interface FoundryCodec {\n decodeObject: (objectType: string, object: OntologyObjectV2 | FoundryObjectRecord) => FoundryObjectRecord;\n decodeEditObject: (objectType: string, object: FoundryObjectRecord) => FoundryObjectRecord;\n decodeValue: (type: TypeDef, value: unknown) => unknown;\n encodeValue: (type: TypeDef, value: unknown) => unknown;\n}\n\nexport function createFoundryCodec(\n ir: OntologyIR,\n options?: {\n resolveMediaReference?: (id: string) => MediaReference | undefined;\n }\n): FoundryCodec {\n const objectTypes = new Map(ir.objectTypes.map((objectType) => [objectType.name, objectType]));\n const namedTypes = new Map(ir.types.map((type) => [type.name, type.type]));\n\n const resolveType = (type: TypeDef, seen = new Set<string>()): TypeDef => {\n if (type.kind !== \"ref\") {\n return type;\n }\n\n const name = type.value.name;\n if (seen.has(name)) {\n throw new Error(`Circular ontology type reference \"${name}\".`);\n }\n\n const resolved = namedTypes.get(name);\n if (!resolved) {\n throw new Error(`Unknown ontology type reference \"${name}\".`);\n }\n\n return resolveType(resolved, new Set([...seen, name]));\n };\n\n const decodeValue = (\n type: TypeDef,\n value: unknown,\n context: { editHistory: boolean; optional: boolean } = {\n editHistory: false,\n optional: false,\n }\n ): unknown => {\n const resolvedType = resolveType(type);\n\n if (resolvedType.kind === \"optional\") {\n if (\n value === undefined ||\n value === null ||\n (context.editHistory && isNullEditHistoryValue(value))\n ) {\n return undefined;\n }\n return decodeValue(resolvedType.value.type, value, {\n ...context,\n optional: true,\n });\n }\n\n if (value === undefined || value === null) {\n return value;\n }\n if (context.editHistory) {\n value = unwrapEditHistoryValue(resolvedType, value);\n }\n\n switch (resolvedType.kind) {\n case \"string\":\n return value;\n case \"boolean\":\n return typeof value === \"string\" ? value === \"true\" : value;\n case \"integer\":\n case \"float\":\n case \"double\":\n return typeof value === \"string\" ? Number(value) : value;\n case \"date\":\n return typeof value === \"string\" ? Temporal.PlainDate.from(value) : value;\n case \"timestamp\":\n if (typeof value === \"string\") return Temporal.Instant.from(value);\n if (typeof value === \"number\") return Temporal.Instant.fromEpochMilliseconds(value);\n return value;\n case \"geopoint\":\n return decodeGeoPoint(value);\n case \"attachment\":\n return decodeAttachment(value, resolvedType.value.meta, context.optional);\n case \"objectReference\":\n return value;\n case \"list\":\n return Array.isArray(value)\n ? value.map((item) => decodeValue(resolvedType.value.elementType, item, context))\n : value;\n case \"map\":\n if (!isPlainObject(value)) {\n return value;\n }\n return Object.fromEntries(\n Object.entries(value).map(([key, entryValue]) => [\n decodeValue(resolvedType.value.keyType, key, context),\n decodeValue(resolvedType.value.valueType, entryValue, context),\n ])\n );\n case \"struct\":\n if (!isPlainObject(value)) {\n return value;\n }\n return Object.fromEntries(\n Object.entries(value).map(([key, entryValue]) => {\n const field = resolvedType.value.fields.find((candidate) => candidate.name === key);\n return [key, field ? decodeValue(field.type, entryValue, context) : entryValue];\n })\n );\n case \"union\":\n case \"result\":\n return value;\n case \"ref\":\n return decodeValue(resolveType(resolvedType), value);\n }\n };\n\n const decodeObjectType = (\n objectType: ObjectTypeDef,\n object: FoundryObjectRecord,\n editHistory = false\n ): FoundryObjectRecord => {\n return Object.fromEntries(\n Object.entries(object).map(([key, value]) => {\n const property = objectType.properties.find((candidate) => candidate.name === key);\n return [\n key,\n property\n ? decodeValue(property.type, value, {\n editHistory,\n optional: false,\n })\n : value,\n ];\n })\n );\n };\n\n const encodeValue = (type: TypeDef, value: unknown): unknown => {\n if (value === undefined) return undefined;\n if (value === null) return null;\n\n const resolvedType = resolveType(type);\n\n switch (resolvedType.kind) {\n case \"string\":\n case \"boolean\":\n case \"integer\":\n case \"float\":\n case \"double\":\n return value;\n case \"date\":\n return value instanceof Temporal.PlainDate ? value.toString() : value;\n case \"timestamp\":\n if (value instanceof Temporal.Instant) return value.toString();\n if (value instanceof Temporal.PlainDateTime) return value.toString();\n return value;\n case \"geopoint\":\n return encodeGeoPoint(value);\n case \"attachment\":\n return encodeAttachment(value, resolvedType.value.meta, options?.resolveMediaReference);\n case \"objectReference\":\n case \"unknown\":\n return value;\n case \"list\":\n return Array.isArray(value)\n ? value.map((item) => encodeValue(resolvedType.value.elementType, item))\n : value;\n case \"map\":\n if (!isPlainObject(value)) return value;\n return Object.fromEntries(\n Object.entries(value).map(([key, entryValue]) => [\n key,\n encodeValue(resolvedType.value.valueType, entryValue),\n ])\n );\n case \"struct\":\n if (!isPlainObject(value)) return value;\n return Object.fromEntries(\n Object.entries(value).map(([key, entryValue]) => {\n const field = resolvedType.value.fields.find((f) => f.name === key);\n return [key, field ? encodeValue(field.type, entryValue) : entryValue];\n })\n );\n case \"optional\":\n return encodeValue(resolvedType.value.type, value);\n case \"union\":\n case \"result\":\n return value;\n case \"ref\":\n return encodeValue(resolveType(resolvedType), value);\n }\n };\n\n return {\n decodeObject: (objectTypeName, object) => {\n const objectType = objectTypes.get(objectTypeName);\n if (!objectType) {\n return object;\n }\n\n return decodeObjectType(objectType, object);\n },\n decodeEditObject: (objectTypeName, object) => {\n const objectType = objectTypes.get(objectTypeName);\n if (!objectType) {\n return object;\n }\n\n return decodeObjectType(objectType, object, true);\n },\n decodeValue,\n encodeValue,\n };\n}\n\nfunction encodeGeoPoint(value: unknown): unknown {\n if (isPlainObject(value) && typeof value.lat === \"number\" && typeof value.lon === \"number\") {\n return { type: \"Point\", coordinates: [value.lon, value.lat] };\n }\n return value;\n}\n\nfunction decodeGeoPoint(value: unknown): unknown {\n if (isPlainObject(value) && value.type === \"Point\" && Array.isArray(value.coordinates)) {\n const coordinates = value.coordinates as unknown[];\n const lon = coordinates[0];\n const lat = coordinates[1];\n if (typeof lat === \"number\" && typeof lon === \"number\") {\n return { lat, lon };\n }\n }\n\n if (isPlainObject(value) && typeof value.lat === \"number\" && typeof value.lon === \"number\") {\n return value;\n }\n\n return value;\n}\n\nfunction isNullEditHistoryValue(value: unknown): boolean {\n return value === \"NullPropertyValue{}\";\n}\n\nfunction unwrapEditHistoryValue(type: TypeDef, value: unknown): unknown {\n if (\n isPlainObject(value) &&\n typeof value.type === \"string\" &&\n \"value\" in value &&\n [\n \"stringValue\",\n \"integerValue\",\n \"doubleValue\",\n \"longValue\",\n \"booleanValue\",\n \"dateValue\",\n \"timestampValue\",\n ].includes(value.type)\n ) {\n return value.value;\n }\n if (type.kind === \"geopoint\" && typeof value === \"string\") {\n const match = /^GeoPointPropertyValue\\{latitude:\\s*(-?[\\d.]+),\\s*longitude:\\s*(-?[\\d.]+)\\}$/.exec(\n value\n );\n if (match) {\n return {\n lat: Number(match[1]),\n lon: Number(match[2]),\n };\n }\n }\n if (\n type.kind === \"attachment\" &&\n getFoundryAttachmentKind(type.value.meta) !== \"media\" &&\n isPlainObject(value) &&\n value.type === \"attachment\" &&\n typeof value.attachment === \"string\"\n ) {\n return { rid: value.attachment };\n }\n if (\n type.kind === \"attachment\" &&\n getFoundryAttachmentKind(type.value.meta) === \"media\" &&\n isPlainObject(value) &&\n value.type === \"mediaReference\" &&\n isPlainObject(value.mediaReference)\n ) {\n return value.mediaReference;\n }\n return value;\n}\n\nfunction decodeAttachment(\n value: unknown,\n meta: Record<string, unknown> | undefined,\n optional: boolean\n): unknown {\n const kind = getFoundryAttachmentKind(meta);\n const decoded = kind === \"media\" ? decodeMediaReference(value) : decodeFoundryAttachment(value);\n if (decoded !== undefined || optional) {\n return decoded;\n }\n throw new Error(`Invalid required Foundry ${kind} value.`);\n}\n\nfunction decodeFoundryAttachment(value: unknown): unknown {\n const attachment = value as Partial<AttachmentProperty>;\n if (typeof attachment?.rid !== \"string\") {\n return undefined;\n }\n return { id: attachment.rid };\n}\n\nfunction decodeMediaReference(value: unknown): unknown {\n if (\n !isPlainObject(value) ||\n typeof value.mimeType !== \"string\" ||\n !isPlainObject(value.reference) ||\n value.reference.type !== \"mediaSetViewItem\" ||\n !isPlainObject(value.reference.mediaSetViewItem)\n ) {\n return undefined;\n }\n const mediaReference = value as unknown as MediaReference;\n const id = mediaReferenceToFoundryMediaId(mediaReference);\n if (!decodeFoundryMediaId(id)) {\n return undefined;\n }\n return {\n id,\n type: mediaReference.mimeType,\n };\n}\n\nfunction encodeAttachment(\n value: unknown,\n meta?: Record<string, unknown>,\n resolveMediaReference?: (id: string) => MediaReference | undefined\n): unknown {\n if (!isPlainObject(value)) {\n return value;\n }\n if (typeof value.id !== \"string\") {\n throw new Error(\"Invalid Foundry attachment value: expected an attachment with a string id.\");\n }\n if (getFoundryAttachmentKind(meta) !== \"media\") {\n return value.id;\n }\n const resolved = resolveMediaReference?.(value.id);\n if (resolved) return resolved;\n const id = decodeFoundryMediaId(value.id);\n if (!id) {\n throw new Error(`Invalid Foundry media attachment id \"${value.id}\".`);\n }\n if (typeof value.type !== \"string\") {\n throw new Error(`Foundry media attachment \"${value.id}\" is missing its MIME type.`);\n }\n return foundryMediaIdToReference(id, value.type);\n}\n\nfunction isPlainObject(value: unknown): value is FoundryObjectRecord {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n"],"mappings":";;;;;AAgBA,MAAa,6BAA6B;AAS1C,SAAgB,mBACZ,IACA,SAGY;CACZ,MAAM,cAAc,IAAI,IAAI,GAAG,YAAY,KAAK,eAAe,CAAC,WAAW,MAAM,UAAU,CAAC,CAAC;CAC7F,MAAM,aAAa,IAAI,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC;CAEzE,MAAM,eAAe,MAAe,uBAAO,IAAI,IAAY,MAAe;EACtE,IAAI,KAAK,SAAS,OACd,OAAO;EAGX,MAAM,OAAO,KAAK,MAAM;EACxB,IAAI,KAAK,IAAI,IAAI,GACb,MAAM,IAAI,MAAM,qCAAqC,KAAK,GAAG;EAGjE,MAAM,WAAW,WAAW,IAAI,IAAI;EACpC,IAAI,CAAC,UACD,MAAM,IAAI,MAAM,oCAAoC,KAAK,GAAG;EAGhE,OAAO,YAAY,0BAAU,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;CACzD;CAEA,MAAM,eACF,MACA,OACA,UAAuD;EACnD,aAAa;EACb,UAAU;CACd,MACU;EACV,MAAM,eAAe,YAAY,IAAI;EAErC,IAAI,aAAa,SAAS,YAAY;GAClC,IACI,UAAU,KAAA,KACV,UAAU,QACT,QAAQ,eAAe,uBAAuB,KAAK,GAEpD;GAEJ,OAAO,YAAY,aAAa,MAAM,MAAM,OAAO;IAC/C,GAAG;IACH,UAAU;GACd,CAAC;EACL;EAEA,IAAI,UAAU,KAAA,KAAa,UAAU,MACjC,OAAO;EAEX,IAAI,QAAQ,aACR,QAAQ,uBAAuB,cAAc,KAAK;EAGtD,QAAQ,aAAa,MAArB;GACI,KAAK,UACD,OAAO;GACX,KAAK,WACD,OAAO,OAAO,UAAU,WAAW,UAAU,SAAS;GAC1D,KAAK;GACL,KAAK;GACL,KAAK,UACD,OAAO,OAAO,UAAU,WAAW,OAAO,KAAK,IAAI;GACvD,KAAK,QACD,OAAO,OAAO,UAAU,WAAW,SAAS,UAAU,KAAK,KAAK,IAAI;GACxE,KAAK;IACD,IAAI,OAAO,UAAU,UAAU,OAAO,SAAS,QAAQ,KAAK,KAAK;IACjE,IAAI,OAAO,UAAU,UAAU,OAAO,SAAS,QAAQ,sBAAsB,KAAK;IAClF,OAAO;GACX,KAAK,YACD,OAAO,eAAe,KAAK;GAC/B,KAAK,cACD,OAAO,iBAAiB,OAAO,aAAa,MAAM,MAAM,QAAQ,QAAQ;GAC5E,KAAK,mBACD,OAAO;GACX,KAAK,QACD,OAAO,MAAM,QAAQ,KAAK,IACpB,MAAM,KAAK,SAAS,YAAY,aAAa,MAAM,aAAa,MAAM,OAAO,CAAC,IAC9E;GACV,KAAK;IACD,IAAI,CAAC,cAAc,KAAK,GACpB,OAAO;IAEX,OAAO,OAAO,YACV,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAC7C,YAAY,aAAa,MAAM,SAAS,KAAK,OAAO,GACpD,YAAY,aAAa,MAAM,WAAW,YAAY,OAAO,CACjE,CAAC,CACL;GACJ,KAAK;IACD,IAAI,CAAC,cAAc,KAAK,GACpB,OAAO;IAEX,OAAO,OAAO,YACV,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,gBAAgB;KAC7C,MAAM,QAAQ,aAAa,MAAM,OAAO,MAAM,cAAc,UAAU,SAAS,GAAG;KAClF,OAAO,CAAC,KAAK,QAAQ,YAAY,MAAM,MAAM,YAAY,OAAO,IAAI,UAAU;IAClF,CAAC,CACL;GACJ,KAAK;GACL,KAAK,UACD,OAAO;GACX,KAAK,OACD,OAAO,YAAY,YAAY,YAAY,GAAG,KAAK;EAC3D;CACJ;CAEA,MAAM,oBACF,YACA,QACA,cAAc,UACQ;EACtB,OAAO,OAAO,YACV,OAAO,QAAQ,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW;GACzC,MAAM,WAAW,WAAW,WAAW,MAAM,cAAc,UAAU,SAAS,GAAG;GACjF,OAAO,CACH,KACA,WACM,YAAY,SAAS,MAAM,OAAO;IAC9B;IACA,UAAU;GACd,CAAC,IACD,KACV;EACJ,CAAC,CACL;CACJ;CAEA,MAAM,eAAe,MAAe,UAA4B;EAC5D,IAAI,UAAU,KAAA,GAAW,OAAO,KAAA;EAChC,IAAI,UAAU,MAAM,OAAO;EAE3B,MAAM,eAAe,YAAY,IAAI;EAErC,QAAQ,aAAa,MAArB;GACI,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,UACD,OAAO;GACX,KAAK,QACD,OAAO,iBAAiB,SAAS,YAAY,MAAM,SAAS,IAAI;GACpE,KAAK;IACD,IAAI,iBAAiB,SAAS,SAAS,OAAO,MAAM,SAAS;IAC7D,IAAI,iBAAiB,SAAS,eAAe,OAAO,MAAM,SAAS;IACnE,OAAO;GACX,KAAK,YACD,OAAO,eAAe,KAAK;GAC/B,KAAK,cACD,OAAO,iBAAiB,OAAO,aAAa,MAAM,MAAM,SAAS,qBAAqB;GAC1F,KAAK;GACL,KAAK,WACD,OAAO;GACX,KAAK,QACD,OAAO,MAAM,QAAQ,KAAK,IACpB,MAAM,KAAK,SAAS,YAAY,aAAa,MAAM,aAAa,IAAI,CAAC,IACrE;GACV,KAAK;IACD,IAAI,CAAC,cAAc,KAAK,GAAG,OAAO;IAClC,OAAO,OAAO,YACV,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAC7C,KACA,YAAY,aAAa,MAAM,WAAW,UAAU,CACxD,CAAC,CACL;GACJ,KAAK;IACD,IAAI,CAAC,cAAc,KAAK,GAAG,OAAO;IAClC,OAAO,OAAO,YACV,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,gBAAgB;KAC7C,MAAM,QAAQ,aAAa,MAAM,OAAO,MAAM,MAAM,EAAE,SAAS,GAAG;KAClE,OAAO,CAAC,KAAK,QAAQ,YAAY,MAAM,MAAM,UAAU,IAAI,UAAU;IACzE,CAAC,CACL;GACJ,KAAK,YACD,OAAO,YAAY,aAAa,MAAM,MAAM,KAAK;GACrD,KAAK;GACL,KAAK,UACD,OAAO;GACX,KAAK,OACD,OAAO,YAAY,YAAY,YAAY,GAAG,KAAK;EAC3D;CACJ;CAEA,OAAO;EACH,eAAe,gBAAgB,WAAW;GACtC,MAAM,aAAa,YAAY,IAAI,cAAc;GACjD,IAAI,CAAC,YACD,OAAO;GAGX,OAAO,iBAAiB,YAAY,MAAM;EAC9C;EACA,mBAAmB,gBAAgB,WAAW;GAC1C,MAAM,aAAa,YAAY,IAAI,cAAc;GACjD,IAAI,CAAC,YACD,OAAO;GAGX,OAAO,iBAAiB,YAAY,QAAQ,IAAI;EACpD;EACA;EACA;CACJ;AACJ;AAEA,SAAS,eAAe,OAAyB;CAC7C,IAAI,cAAc,KAAK,KAAK,OAAO,MAAM,QAAQ,YAAY,OAAO,MAAM,QAAQ,UAC9E,OAAO;EAAE,MAAM;EAAS,aAAa,CAAC,MAAM,KAAK,MAAM,GAAG;CAAE;CAEhE,OAAO;AACX;AAEA,SAAS,eAAe,OAAyB;CAC7C,IAAI,cAAc,KAAK,KAAK,MAAM,SAAS,WAAW,MAAM,QAAQ,MAAM,WAAW,GAAG;EACpF,MAAM,cAAc,MAAM;EAC1B,MAAM,MAAM,YAAY;EACxB,MAAM,MAAM,YAAY;EACxB,IAAI,OAAO,QAAQ,YAAY,OAAO,QAAQ,UAC1C,OAAO;GAAE;GAAK;EAAI;CAE1B;CAEA,IAAI,cAAc,KAAK,KAAK,OAAO,MAAM,QAAQ,YAAY,OAAO,MAAM,QAAQ,UAC9E,OAAO;CAGX,OAAO;AACX;AAEA,SAAS,uBAAuB,OAAyB;CACrD,OAAO,UAAU;AACrB;AAEA,SAAS,uBAAuB,MAAe,OAAyB;CACpE,IACI,cAAc,KAAK,KACnB,OAAO,MAAM,SAAS,YACtB,WAAW,SACX;EACI;EACA;EACA;EACA;EACA;EACA;EACA;CACJ,CAAC,CAAC,SAAS,MAAM,IAAI,GAErB,OAAO,MAAM;CAEjB,IAAI,KAAK,SAAS,cAAc,OAAO,UAAU,UAAU;EACvD,MAAM,QAAQ,+EAA+E,KACzF,KACJ;EACA,IAAI,OACA,OAAO;GACH,KAAK,OAAO,MAAM,EAAE;GACpB,KAAK,OAAO,MAAM,EAAE;EACxB;CAER;CACA,IACI,KAAK,SAAS,gBACd,yBAAyB,KAAK,MAAM,IAAI,MAAM,WAC9C,cAAc,KAAK,KACnB,MAAM,SAAS,gBACf,OAAO,MAAM,eAAe,UAE5B,OAAO,EAAE,KAAK,MAAM,WAAW;CAEnC,IACI,KAAK,SAAS,gBACd,yBAAyB,KAAK,MAAM,IAAI,MAAM,WAC9C,cAAc,KAAK,KACnB,MAAM,SAAS,oBACf,cAAc,MAAM,cAAc,GAElC,OAAO,MAAM;CAEjB,OAAO;AACX;AAEA,SAAS,iBACL,OACA,MACA,UACO;CACP,MAAM,OAAO,yBAAyB,IAAI;CAC1C,MAAM,UAAU,SAAS,UAAU,qBAAqB,KAAK,IAAI,wBAAwB,KAAK;CAC9F,IAAI,YAAY,KAAA,KAAa,UACzB,OAAO;CAEX,MAAM,IAAI,MAAM,4BAA4B,KAAK,QAAQ;AAC7D;AAEA,SAAS,wBAAwB,OAAyB;CACtD,MAAM,aAAa;CACnB,IAAI,OAAO,YAAY,QAAQ,UAC3B;CAEJ,OAAO,EAAE,IAAI,WAAW,IAAI;AAChC;AAEA,SAAS,qBAAqB,OAAyB;CACnD,IACI,CAAC,cAAc,KAAK,KACpB,OAAO,MAAM,aAAa,YAC1B,CAAC,cAAc,MAAM,SAAS,KAC9B,MAAM,UAAU,SAAS,sBACzB,CAAC,cAAc,MAAM,UAAU,gBAAgB,GAE/C;CAEJ,MAAM,iBAAiB;CACvB,MAAM,KAAK,+BAA+B,cAAc;CACxD,IAAI,CAAC,qBAAqB,EAAE,GACxB;CAEJ,OAAO;EACH;EACA,MAAM,eAAe;CACzB;AACJ;AAEA,SAAS,iBACL,OACA,MACA,uBACO;CACP,IAAI,CAAC,cAAc,KAAK,GACpB,OAAO;CAEX,IAAI,OAAO,MAAM,OAAO,UACpB,MAAM,IAAI,MAAM,4EAA4E;CAEhG,IAAI,yBAAyB,IAAI,MAAM,SACnC,OAAO,MAAM;CAEjB,MAAM,WAAW,wBAAwB,MAAM,EAAE;CACjD,IAAI,UAAU,OAAO;CACrB,MAAM,KAAK,qBAAqB,MAAM,EAAE;CACxC,IAAI,CAAC,IACD,MAAM,IAAI,MAAM,wCAAwC,MAAM,GAAG,GAAG;CAExE,IAAI,OAAO,MAAM,SAAS,UACtB,MAAM,IAAI,MAAM,6BAA6B,MAAM,GAAG,4BAA4B;CAEtF,OAAO,0BAA0B,IAAI,MAAM,IAAI;AACnD;AAEA,SAAS,cAAc,OAA8C;CACjE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC9E"}
@@ -1,11 +1,13 @@
1
- import type { MediaItemRid, MediaReference, MediaSetRid, MediaSetViewRid } from "@osdk/foundry.core";
1
+ import { MediaItemRid, MediaReference, MediaSetRid, MediaSetViewRid } from "@osdk/foundry.core";
2
+ //#region src/adapter/foundryMediaId.d.ts
2
3
  export interface FoundryMediaId {
3
- mediaSetRid: MediaSetRid;
4
- mediaSetViewRid: MediaSetViewRid;
5
- mediaItemRid: MediaItemRid;
4
+ mediaSetRid: MediaSetRid;
5
+ mediaSetViewRid: MediaSetViewRid;
6
+ mediaItemRid: MediaItemRid;
6
7
  }
7
8
  export declare function encodeFoundryMediaId(value: FoundryMediaId): string;
8
9
  export declare function decodeFoundryMediaId(value: string): FoundryMediaId | undefined;
9
10
  export declare function mediaReferenceToFoundryMediaId(value: MediaReference): string;
10
11
  export declare function foundryMediaIdToReference(id: FoundryMediaId, mimeType: string): MediaReference;
12
+ //#endregion
11
13
  //# sourceMappingURL=foundryMediaId.d.ts.map