@nlabs/metropolisjs 0.1.2 → 0.3.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 (329) hide show
  1. package/.github/copilot-instructions.md +167 -0
  2. package/AGENTS.md +13 -0
  3. package/CHANGELOG.md +112 -0
  4. package/GRAPHQL_VALIDATION_RESULTS.md +158 -0
  5. package/PERMISSION_GRAPHQL_INTEGRATION.md +293 -0
  6. package/PERMISSION_IMPLEMENTATION_SUMMARY.md +243 -0
  7. package/README.md +1123 -112
  8. package/SIGNIN_GRAPHQL_VALIDATION.md +125 -0
  9. package/VAULT_GRAPHQL_API_FINDINGS.md +312 -0
  10. package/docs/ACTIONS.md +63 -0
  11. package/docs/COLLECTIONS.md +1038 -0
  12. package/docs/CONNECTIONS.md +1367 -0
  13. package/docs/CRUD_INTEGRATION.md +702 -0
  14. package/examples/connections-usage.tsx +909 -0
  15. package/examples/content-actions-usage.ts +144 -0
  16. package/examples/crud-usage.tsx +847 -0
  17. package/examples/extensibility-usage.tsx +889 -0
  18. package/examples/i18n-import-examples.ts +86 -0
  19. package/examples/i18n-namespace-usage.ts +118 -0
  20. package/examples/i18next-singleton-demo.ts +187 -0
  21. package/examples/permission-system-usage.tsx +415 -0
  22. package/examples/project-details.tsx +397 -0
  23. package/examples/shared-i18n-usage.tsx +203 -0
  24. package/examples/signup-error-handling.ts +100 -0
  25. package/examples/translation-types.ts +86 -0
  26. package/examples/translation-usage.tsx +336 -0
  27. package/index.js +1 -0
  28. package/jest.config.mjs +28 -0
  29. package/lex.config.mjs +11 -2
  30. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts +22 -0
  31. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts.map +1 -0
  32. package/lib/__tests__/e2e/helpers/testGraphQLServer.js +197 -0
  33. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts +3 -0
  34. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts.map +1 -0
  35. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.js +52 -0
  36. package/lib/actions/appActions/appActions.d.ts +29 -0
  37. package/lib/actions/appActions/appActions.d.ts.map +1 -0
  38. package/lib/actions/appActions/appActions.js +159 -0
  39. package/lib/actions/connectionActions/connectionActions.d.ts +19 -0
  40. package/lib/actions/connectionActions/connectionActions.d.ts.map +1 -0
  41. package/lib/actions/connectionActions/connectionActions.js +131 -0
  42. package/lib/actions/contentActions/contentActions.d.ts +34 -0
  43. package/lib/actions/contentActions/contentActions.d.ts.map +1 -0
  44. package/lib/actions/contentActions/contentActions.js +314 -0
  45. package/lib/actions/conversationActions/conversationActions.d.ts +30 -0
  46. package/lib/actions/conversationActions/conversationActions.d.ts.map +1 -0
  47. package/lib/actions/conversationActions/conversationActions.js +225 -0
  48. package/lib/actions/eventActions/eventActions.d.ts +27 -7
  49. package/lib/actions/eventActions/eventActions.d.ts.map +1 -0
  50. package/lib/actions/eventActions/eventActions.js +436 -2
  51. package/lib/actions/groupActions/groupActions.d.ts +30 -0
  52. package/lib/actions/groupActions/groupActions.d.ts.map +1 -0
  53. package/lib/actions/groupActions/groupActions.js +229 -0
  54. package/lib/actions/imageActions/imageActions.d.ts +16 -10
  55. package/lib/actions/imageActions/imageActions.d.ts.map +1 -0
  56. package/lib/actions/imageActions/imageActions.js +593 -2
  57. package/lib/actions/index.d.ts +21 -9
  58. package/lib/actions/index.d.ts.map +1 -0
  59. package/lib/actions/index.js +22 -2
  60. package/lib/actions/locationActions/locationActions.d.ts +11 -9
  61. package/lib/actions/locationActions/locationActions.d.ts.map +1 -0
  62. package/lib/actions/locationActions/locationActions.js +388 -2
  63. package/lib/actions/messageActions/messageActions.d.ts +16 -32
  64. package/lib/actions/messageActions/messageActions.d.ts.map +1 -0
  65. package/lib/actions/messageActions/messageActions.js +235 -2
  66. package/lib/actions/permissionActions/permissionActions.d.ts +34 -0
  67. package/lib/actions/permissionActions/permissionActions.d.ts.map +1 -0
  68. package/lib/actions/permissionActions/permissionActions.js +330 -0
  69. package/lib/actions/personaActions/personaActions.d.ts +65 -0
  70. package/lib/actions/personaActions/personaActions.d.ts.map +1 -0
  71. package/lib/actions/personaActions/personaActions.js +572 -0
  72. package/lib/actions/postActions/postActions.d.ts +12 -32
  73. package/lib/actions/postActions/postActions.d.ts.map +1 -0
  74. package/lib/actions/postActions/postActions.js +447 -2
  75. package/lib/actions/reactionActions/reactionActions.d.ts +13 -27
  76. package/lib/actions/reactionActions/reactionActions.d.ts.map +1 -0
  77. package/lib/actions/reactionActions/reactionActions.js +413 -2
  78. package/lib/actions/sseActions/sseActions.d.ts +1 -0
  79. package/lib/actions/sseActions/sseActions.d.ts.map +1 -0
  80. package/lib/actions/sseActions/sseActions.js +148 -2
  81. package/lib/actions/subscriptionActions/subscriptionActions.d.ts +24 -0
  82. package/lib/actions/subscriptionActions/subscriptionActions.d.ts.map +1 -0
  83. package/lib/actions/subscriptionActions/subscriptionActions.js +329 -0
  84. package/lib/actions/tagActions/tagActions.d.ts +13 -31
  85. package/lib/actions/tagActions/tagActions.d.ts.map +1 -0
  86. package/lib/actions/tagActions/tagActions.js +347 -2
  87. package/lib/actions/translationActions/translationActions.d.ts +38 -0
  88. package/lib/actions/translationActions/translationActions.d.ts.map +1 -0
  89. package/lib/actions/translationActions/translationActions.js +189 -0
  90. package/lib/actions/userActions/userActions.d.ts +44 -95
  91. package/lib/actions/userActions/userActions.d.ts.map +1 -0
  92. package/lib/actions/userActions/userActions.js +870 -2
  93. package/lib/actions/videoActions/videoActions.d.ts +41 -0
  94. package/lib/actions/videoActions/videoActions.d.ts.map +1 -0
  95. package/lib/actions/videoActions/videoActions.js +532 -0
  96. package/lib/actions/websocketActions/websocketActions.d.ts +20 -21
  97. package/lib/actions/websocketActions/websocketActions.d.ts.map +1 -0
  98. package/lib/actions/websocketActions/websocketActions.js +377 -2
  99. package/lib/adapters/appAdapter/appAdapter.d.ts +8 -0
  100. package/lib/adapters/appAdapter/appAdapter.d.ts.map +1 -0
  101. package/lib/adapters/appAdapter/appAdapter.js +90 -0
  102. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +3 -2
  103. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +1 -0
  104. package/lib/adapters/arangoAdapter/arangoAdapter.js +75 -2
  105. package/lib/adapters/contentAdapter/contentAdapter.d.ts +3 -2
  106. package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +1 -0
  107. package/lib/adapters/contentAdapter/contentAdapter.js +107 -2
  108. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +3 -2
  109. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +1 -0
  110. package/lib/adapters/conversationAdapter/conversationAdapter.js +75 -2
  111. package/lib/adapters/eventAdapter/eventAdapter.d.ts +5 -2
  112. package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +1 -0
  113. package/lib/adapters/eventAdapter/eventAdapter.js +162 -2
  114. package/lib/adapters/fileAdapter/fileAdapter.d.ts +3 -2
  115. package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +1 -0
  116. package/lib/adapters/fileAdapter/fileAdapter.js +118 -2
  117. package/lib/adapters/groupAdapter/groupAdapter.d.ts +28 -0
  118. package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +1 -0
  119. package/lib/adapters/groupAdapter/groupAdapter.js +66 -0
  120. package/lib/adapters/imageAdapter/imageAdapter.d.ts +9 -2
  121. package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +1 -0
  122. package/lib/adapters/imageAdapter/imageAdapter.js +134 -2
  123. package/lib/adapters/index.d.ts +34 -16
  124. package/lib/adapters/index.d.ts.map +1 -0
  125. package/lib/adapters/index.js +19 -2
  126. package/lib/adapters/locationAdapter/locationAdapter.d.ts +3 -2
  127. package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +1 -0
  128. package/lib/adapters/locationAdapter/locationAdapter.js +95 -2
  129. package/lib/adapters/messageAdapter/messageAdapter.d.ts +23 -19
  130. package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +1 -0
  131. package/lib/adapters/messageAdapter/messageAdapter.js +82 -2
  132. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts +41 -0
  133. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +1 -0
  134. package/lib/adapters/permissionAdapter/permissionAdapter.js +120 -0
  135. package/lib/adapters/personaAdapter/personaAdapter.d.ts +28 -2
  136. package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +1 -0
  137. package/lib/adapters/personaAdapter/personaAdapter.js +161 -2
  138. package/lib/adapters/postAdapter/postAdapter.d.ts +3 -2
  139. package/lib/adapters/postAdapter/postAdapter.d.ts.map +1 -0
  140. package/lib/adapters/postAdapter/postAdapter.js +115 -2
  141. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +5 -2
  142. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +1 -0
  143. package/lib/adapters/reactionAdapter/reactionAdapter.js +81 -2
  144. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +3 -2
  145. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +1 -0
  146. package/lib/adapters/reaktorAdapter/reaktorAdapter.js +58 -2
  147. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +3 -2
  148. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +1 -0
  149. package/lib/adapters/sessionAdapter/sessionAdapter.js +80 -2
  150. package/lib/adapters/tagAdapter/tagAdapter.d.ts +3 -2
  151. package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +1 -0
  152. package/lib/adapters/tagAdapter/tagAdapter.js +98 -2
  153. package/lib/adapters/translationAdapter/translationAdapter.d.ts +21 -0
  154. package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +1 -0
  155. package/lib/adapters/translationAdapter/translationAdapter.js +55 -0
  156. package/lib/adapters/userAdapter/userAdapter.d.ts +18 -6
  157. package/lib/adapters/userAdapter/userAdapter.d.ts.map +1 -0
  158. package/lib/adapters/userAdapter/userAdapter.js +302 -2
  159. package/lib/adapters/videoAdapter/videoAdapter.d.ts +8 -0
  160. package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +1 -0
  161. package/lib/adapters/videoAdapter/videoAdapter.js +194 -0
  162. package/lib/config/index.d.ts +19 -6
  163. package/lib/config/index.d.ts.map +1 -0
  164. package/lib/config/index.js +97 -2
  165. package/lib/constants/Collections.d.ts +44 -0
  166. package/lib/constants/Collections.d.ts.map +1 -0
  167. package/lib/constants/Collections.js +40 -0
  168. package/lib/constants/MetropolisConstants.d.ts +1 -0
  169. package/lib/constants/MetropolisConstants.d.ts.map +1 -0
  170. package/lib/constants/MetropolisConstants.js +15 -2
  171. package/lib/graphql/message.d.ts +1 -0
  172. package/lib/graphql/message.d.ts.map +1 -0
  173. package/lib/graphql/message.js +6 -4
  174. package/lib/graphql/notification.d.ts +1 -0
  175. package/lib/graphql/notification.d.ts.map +1 -0
  176. package/lib/graphql/notification.js +6 -4
  177. package/lib/graphql/session.d.ts +1 -0
  178. package/lib/graphql/session.d.ts.map +1 -0
  179. package/lib/graphql/session.js +4 -3
  180. package/lib/index.d.ts +45 -22
  181. package/lib/index.d.ts.map +1 -0
  182. package/lib/index.js +248 -2
  183. package/lib/stores/appStore.d.ts +1 -0
  184. package/lib/stores/appStore.d.ts.map +1 -0
  185. package/lib/stores/appStore.js +23 -2
  186. package/lib/stores/contentStore.d.ts +36 -0
  187. package/lib/stores/contentStore.d.ts.map +1 -0
  188. package/lib/stores/contentStore.js +139 -0
  189. package/lib/stores/conversationStore.d.ts +38 -0
  190. package/lib/stores/conversationStore.d.ts.map +1 -0
  191. package/lib/stores/conversationStore.js +117 -0
  192. package/lib/stores/eventStore.d.ts +4 -1
  193. package/lib/stores/eventStore.d.ts.map +1 -0
  194. package/lib/stores/eventStore.js +47 -2
  195. package/lib/stores/groupStore.d.ts +37 -0
  196. package/lib/stores/groupStore.d.ts.map +1 -0
  197. package/lib/stores/groupStore.js +68 -0
  198. package/lib/stores/imageStore.d.ts +6 -1
  199. package/lib/stores/imageStore.d.ts.map +1 -0
  200. package/lib/stores/imageStore.js +53 -2
  201. package/lib/stores/index.d.ts +20 -11
  202. package/lib/stores/index.d.ts.map +1 -0
  203. package/lib/stores/index.js +24 -2
  204. package/lib/stores/locationStore.d.ts +2 -1
  205. package/lib/stores/locationStore.d.ts.map +1 -0
  206. package/lib/stores/locationStore.js +42 -2
  207. package/lib/stores/messageStore.d.ts +19 -4
  208. package/lib/stores/messageStore.d.ts.map +1 -0
  209. package/lib/stores/messageStore.js +137 -2
  210. package/lib/stores/notificationStore.d.ts +33 -0
  211. package/lib/stores/notificationStore.d.ts.map +1 -0
  212. package/lib/stores/notificationStore.js +55 -0
  213. package/lib/stores/permissionStore.d.ts +37 -0
  214. package/lib/stores/permissionStore.d.ts.map +1 -0
  215. package/lib/stores/permissionStore.js +117 -0
  216. package/lib/stores/personaStore.d.ts +26 -0
  217. package/lib/stores/personaStore.d.ts.map +1 -0
  218. package/lib/stores/personaStore.js +118 -0
  219. package/lib/stores/postStore.d.ts +2 -1
  220. package/lib/stores/postStore.d.ts.map +1 -0
  221. package/lib/stores/postStore.js +53 -2
  222. package/lib/stores/reactionStore.d.ts +1 -0
  223. package/lib/stores/reactionStore.d.ts.map +1 -0
  224. package/lib/stores/reactionStore.js +28 -2
  225. package/lib/stores/subscriptionStore.d.ts +41 -0
  226. package/lib/stores/subscriptionStore.d.ts.map +1 -0
  227. package/lib/stores/subscriptionStore.js +85 -0
  228. package/lib/stores/tagStore.d.ts +8 -5
  229. package/lib/stores/tagStore.d.ts.map +1 -0
  230. package/lib/stores/tagStore.js +87 -2
  231. package/lib/stores/translationStore.d.ts +42 -0
  232. package/lib/stores/translationStore.d.ts.map +1 -0
  233. package/lib/stores/translationStore.js +122 -0
  234. package/lib/stores/userStore.d.ts +5 -4
  235. package/lib/stores/userStore.d.ts.map +1 -0
  236. package/lib/stores/userStore.js +319 -2
  237. package/lib/stores/videoStore.d.ts +39 -0
  238. package/lib/stores/videoStore.d.ts.map +1 -0
  239. package/lib/stores/videoStore.js +132 -0
  240. package/lib/stores/websocketStore.d.ts +1 -0
  241. package/lib/stores/websocketStore.d.ts.map +1 -0
  242. package/lib/stores/websocketStore.js +51 -2
  243. package/lib/types/apps.types.d.ts +17 -0
  244. package/lib/types/apps.types.d.ts.map +1 -0
  245. package/lib/types/apps.types.js +6 -0
  246. package/lib/types/common.types.d.ts +31 -0
  247. package/lib/types/common.types.d.ts.map +1 -0
  248. package/lib/types/common.types.js +6 -0
  249. package/lib/types/conversations.types.d.ts +17 -0
  250. package/lib/types/conversations.types.d.ts.map +1 -0
  251. package/lib/types/conversations.types.js +6 -0
  252. package/lib/types/edges.types.d.ts +38 -0
  253. package/lib/types/edges.types.d.ts.map +1 -0
  254. package/lib/types/edges.types.js +6 -0
  255. package/lib/types/groups.types.d.ts +19 -0
  256. package/lib/types/groups.types.d.ts.map +1 -0
  257. package/lib/types/groups.types.js +6 -0
  258. package/lib/types/index.d.ts +12 -0
  259. package/lib/types/index.d.ts.map +1 -0
  260. package/lib/types/index.js +12 -0
  261. package/lib/types/subscriptions.types.d.ts +32 -0
  262. package/lib/types/subscriptions.types.d.ts.map +1 -0
  263. package/lib/types/subscriptions.types.js +6 -0
  264. package/lib/types/videos.types.d.ts +61 -0
  265. package/lib/types/videos.types.d.ts.map +1 -0
  266. package/lib/types/videos.types.js +6 -0
  267. package/lib/utils/MetropolisProvider.d.ts +39 -15
  268. package/lib/utils/MetropolisProvider.d.ts.map +1 -0
  269. package/lib/utils/MetropolisProvider.js +31 -2
  270. package/lib/utils/actionFactory.d.ts +21 -19
  271. package/lib/utils/actionFactory.d.ts.map +1 -0
  272. package/lib/utils/actionFactory.js +95 -2
  273. package/lib/utils/api.d.ts +5 -4
  274. package/lib/utils/api.d.ts.map +1 -0
  275. package/lib/utils/api.js +252 -6
  276. package/lib/utils/app.d.ts +1 -0
  277. package/lib/utils/app.d.ts.map +1 -0
  278. package/lib/utils/app.js +15 -2
  279. package/lib/utils/baseActionFactory.d.ts +5 -23
  280. package/lib/utils/baseActionFactory.d.ts.map +1 -0
  281. package/lib/utils/baseActionFactory.js +72 -2
  282. package/lib/utils/configUtils.d.ts +11 -0
  283. package/lib/utils/configUtils.d.ts.map +1 -0
  284. package/lib/utils/configUtils.js +20 -0
  285. package/lib/utils/dateUtils.d.ts +1 -0
  286. package/lib/utils/dateUtils.d.ts.map +1 -0
  287. package/lib/utils/dateUtils.js +11 -2
  288. package/lib/utils/file.d.ts +3 -1
  289. package/lib/utils/file.d.ts.map +1 -0
  290. package/lib/utils/file.js +156 -2
  291. package/lib/utils/i18n.d.ts +7 -0
  292. package/lib/utils/i18n.d.ts.map +1 -0
  293. package/lib/utils/i18n.js +96 -0
  294. package/lib/utils/index.d.ts +20 -0
  295. package/lib/utils/index.d.ts.map +1 -0
  296. package/lib/utils/index.js +26 -0
  297. package/lib/utils/location.d.ts +4 -3
  298. package/lib/utils/location.d.ts.map +1 -0
  299. package/lib/utils/location.js +82 -2
  300. package/lib/utils/permissionUtils.d.ts +22 -0
  301. package/lib/utils/permissionUtils.d.ts.map +1 -0
  302. package/lib/utils/permissionUtils.js +72 -0
  303. package/lib/utils/requestCache.d.ts +8 -0
  304. package/lib/utils/requestCache.d.ts.map +1 -0
  305. package/lib/utils/requestCache.js +53 -0
  306. package/lib/utils/session.d.ts +14 -0
  307. package/lib/utils/session.d.ts.map +1 -0
  308. package/lib/utils/session.js +107 -0
  309. package/lib/utils/useConversationTyping.d.ts +26 -0
  310. package/lib/utils/useConversationTyping.d.ts.map +1 -0
  311. package/lib/utils/useConversationTyping.js +117 -0
  312. package/lib/utils/useMetropolis.d.ts +67 -12
  313. package/lib/utils/useMetropolis.d.ts.map +1 -0
  314. package/lib/utils/useMetropolis.js +311 -2
  315. package/lib/utils/useTranslations.d.ts +16 -0
  316. package/lib/utils/useTranslations.d.ts.map +1 -0
  317. package/lib/utils/useTranslations.js +105 -0
  318. package/lib/utils/validatorFactory.d.ts +3 -2
  319. package/lib/utils/validatorFactory.d.ts.map +1 -0
  320. package/lib/utils/validatorFactory.js +95 -2
  321. package/package.json +58 -17
  322. package/temp_signin.ts +73 -0
  323. package/lib/actions/profileActions/profileActions.d.ts +0 -50
  324. package/lib/actions/profileActions/profileActions.js +0 -2
  325. package/lib/adapters/profileAdapter/profileAdapter.d.ts +0 -32
  326. package/lib/adapters/profileAdapter/profileAdapter.js +0 -2
  327. package/lib/stores/profileStore.d.ts +0 -24
  328. package/lib/stores/profileStore.js +0 -2
  329. /package/{FACTORY_PATTERN_GUIDE.md → factoryPatternGuide.md} +0 -0
@@ -1,2 +1,75 @@
1
- import{parseArangoId as c,parseId as p,parseNum as d}from"@nlabs/utils";import{z as t}from"zod";class i extends Error{constructor(r,o){super(r);this.field=o;this.name="ArangoValidationError"}}const m=t.object({_from:t.string().optional(),_id:t.string().optional(),_key:t.string().optional(),_oldRev:t.string().optional(),_rev:t.string().optional(),_to:t.string().optional(),added:t.number().optional(),id:t.string().optional(),modified:t.number().optional()}).passthrough(),D=n=>{try{return m.parse(n)}catch(e){if(e instanceof t.ZodError){const r=e.issues.map(o=>`${o.path.join(".")}: ${o.message}`).join(", ");throw new i(`Document validation failed: ${r}`)}throw e}},T=n=>n,_=n=>{try{return u(n)}catch(e){throw e instanceof i?e:new i(`Document parsing failed: ${e instanceof Error?e.message:"Unknown error"}`)}},u=n=>{const{_id:e,_key:r,added:o,id:s,modified:a}=n;return f({...n,...(e||s)&&{id:c(e||s||"")},...r&&{_key:p(r||"")},...o!==void 0&&{added:d(o,13)},...a!==void 0&&{modified:d(a,13)}})},f=n=>{const e={};for(const[r,o]of Object.entries(n))o!=null&&o!==""&&(e[r]=o);return e};export{i as ArangoValidationError,T as formatDocumentOutput,_ as parseDocument,f as removeEmptyKeys,D as validateDocumentInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL2FyYW5nb0FkYXB0ZXIvYXJhbmdvQWRhcHRlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtwYXJzZUFyYW5nb0lkLCBwYXJzZUlkLCBwYXJzZU51bX0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudFR5cGUge1xuICBfZnJvbT86IHN0cmluZztcbiAgX2lkPzogc3RyaW5nO1xuICBfa2V5Pzogc3RyaW5nO1xuICBfb2xkUmV2Pzogc3RyaW5nO1xuICBfcmV2Pzogc3RyaW5nO1xuICBfdG8/OiBzdHJpbmc7XG4gIGFkZGVkPzogbnVtYmVyO1xuICBpZD86IHN0cmluZztcbiAgbW9kaWZpZWQ/OiBudW1iZXI7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEFyYW5nb1ZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnQXJhbmdvVmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBEb2N1bWVudElucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBfZnJvbTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2tleTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9yZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3RvOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGFkZGVkOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIG1vZGlmaWVkOiB6Lm51bWJlcigpLm9wdGlvbmFsKClcbn0pLnBhc3N0aHJvdWdoKCk7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZURvY3VtZW50SW5wdXQgPSAoZG9jOiB1bmtub3duKTogRG9jdW1lbnRUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBEb2N1bWVudElucHV0U2NoZW1hLnBhcnNlKGRvYyk7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBEb2N1bWVudFR5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0gZXJyb3IuaXNzdWVzLm1hcCgoZSkgPT4gYCR7ZS5wYXRoLmpvaW4oJy4nKX06ICR7ZS5tZXNzYWdlfWApLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgQXJhbmdvVmFsaWRhdGlvbkVycm9yKGBEb2N1bWVudCB2YWxpZGF0aW9uIGZhaWxlZDogJHtmaWVsZEVycm9yc31gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXREb2N1bWVudE91dHB1dCA9IChkb2M6IERvY3VtZW50VHlwZSk6IERvY3VtZW50VHlwZSA9PiBkb2M7XG5cbmV4cG9ydCBjb25zdCBwYXJzZURvY3VtZW50ID0gKGRvYzogRG9jdW1lbnRUeXBlKTogRG9jdW1lbnRUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwZXJmb3JtRG9jdW1lbnRUcmFuc2Zvcm1hdGlvbihkb2MpO1xuICAgIHJldHVybiBwYXJzZWQ7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIEFyYW5nb1ZhbGlkYXRpb25FcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICAgIHRocm93IG5ldyBBcmFuZ29WYWxpZGF0aW9uRXJyb3IoYERvY3VtZW50IHBhcnNpbmcgZmFpbGVkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfWApO1xuICB9XG59O1xuXG5jb25zdCBwZXJmb3JtRG9jdW1lbnRUcmFuc2Zvcm1hdGlvbiA9IChkb2M6IERvY3VtZW50VHlwZSk6IERvY3VtZW50VHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfaWQsXG4gICAgX2tleSxcbiAgICBhZGRlZCxcbiAgICBpZCxcbiAgICBtb2RpZmllZFxuICB9ID0gZG9jO1xuXG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gcmVtb3ZlRW1wdHlLZXlzKHtcbiAgICAuLi5kb2MsXG4gICAgLi4uKChfaWQgfHwgaWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgJycpfSksXG4gICAgLi4uKF9rZXkgJiYge19rZXk6IHBhcnNlSWQoX2tleSB8fCAnJyl9KSxcbiAgICAuLi4oYWRkZWQgIT09IHVuZGVmaW5lZCAmJiB7YWRkZWQ6IHBhcnNlTnVtKGFkZGVkLCAxMyl9KSxcbiAgICAuLi4obW9kaWZpZWQgIT09IHVuZGVmaW5lZCAmJiB7bW9kaWZpZWQ6IHBhcnNlTnVtKG1vZGlmaWVkLCAxMyl9KVxuICB9KTtcblxuICByZXR1cm4gdHJhbnNmb3JtZWQ7XG59O1xuXG4vLyBVdGlsaXR5IGZ1bmN0aW9uIHRvIHJlbW92ZSBlbXB0eSBrZXlzIGZyb20gb2JqZWN0c1xuZXhwb3J0IGNvbnN0IHJlbW92ZUVtcHR5S2V5cyA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4ob2JqOiBUKTogVCA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IHt9IGFzIFQ7XG4gIGZvcihjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkge1xuICAgIGlmKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09ICcnKSB7XG4gICAgICByZXN1bHRba2V5IGFzIGtleW9mIFRdID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLE9BQVEsaUJBQUFBLEVBQWUsV0FBQUMsRUFBUyxZQUFBQyxNQUFlLGVBQy9DLE9BQVEsS0FBQUMsTUFBUSxNQWVULE1BQU1DLFVBQThCLEtBQU0sQ0FDL0MsWUFBWUMsRUFBd0JDLEVBQWdCLENBQ2xELE1BQU1ELENBQU8sRUFEcUIsV0FBQUMsRUFFbEMsS0FBSyxLQUFPLHVCQUNkLENBQ0YsQ0FFQSxNQUFNQyxFQUFzQkosRUFBRSxPQUFPLENBQ25DLE1BQU9BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDM0IsSUFBS0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUN6QixLQUFNQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzFCLFFBQVNBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDN0IsS0FBTUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMxQixJQUFLQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQ3pCLE1BQU9BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDM0IsR0FBSUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUN4QixTQUFVQSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQ2hDLENBQUMsRUFBRSxZQUFZLEVBRUZLLEVBQXlCQyxHQUErQixDQUNuRSxHQUFJLENBRUYsT0FEa0JGLEVBQW9CLE1BQU1FLENBQUcsQ0FFakQsT0FBUUMsRUFBTyxDQUNiLEdBQUdBLGFBQWlCUCxFQUFFLFNBQVUsQ0FDOUIsTUFBTVEsRUFBY0QsRUFBTSxPQUFPLElBQUtFLEdBQU0sR0FBR0EsRUFBRSxLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUtBLEVBQUUsT0FBTyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQzFGLE1BQU0sSUFBSVIsRUFBc0IsK0JBQStCTyxDQUFXLEVBQUUsQ0FDOUUsQ0FDQSxNQUFNRCxDQUNSLENBQ0YsRUFFYUcsRUFBd0JKLEdBQW9DQSxFQUU1REssRUFBaUJMLEdBQW9DLENBQ2hFLEdBQUksQ0FFRixPQURlTSxFQUE4Qk4sQ0FBRyxDQUVsRCxPQUFRQyxFQUFPLENBQ2IsTUFBR0EsYUFBaUJOLEVBQ1pNLEVBRUYsSUFBSU4sRUFBc0IsNEJBQTRCTSxhQUFpQixNQUFRQSxFQUFNLFFBQVUsZUFBZSxFQUFFLENBQ3hILENBQ0YsRUFFTUssRUFBaUNOLEdBQW9DLENBQ3pFLEtBQU0sQ0FDSixJQUFBTyxFQUNBLEtBQUFDLEVBQ0EsTUFBQUMsRUFDQSxHQUFBQyxFQUNBLFNBQUFDLENBQ0YsRUFBSVgsRUFVSixPQVJvQlksRUFBZ0IsQ0FDbEMsR0FBR1osRUFDSCxJQUFLTyxHQUFPRyxJQUFPLENBQUMsR0FBSW5CLEVBQWNnQixHQUFPRyxHQUFNLEVBQUUsQ0FBQyxFQUN0RCxHQUFJRixHQUFRLENBQUMsS0FBTWhCLEVBQVFnQixHQUFRLEVBQUUsQ0FBQyxFQUN0QyxHQUFJQyxJQUFVLFFBQWEsQ0FBQyxNQUFPaEIsRUFBU2dCLEVBQU8sRUFBRSxDQUFDLEVBQ3RELEdBQUlFLElBQWEsUUFBYSxDQUFDLFNBQVVsQixFQUFTa0IsRUFBVSxFQUFFLENBQUMsQ0FDakUsQ0FBQyxDQUdILEVBR2FDLEVBQWtEQyxHQUFjLENBQzNFLE1BQU1DLEVBQVMsQ0FBQyxFQUNoQixTQUFVLENBQUNDLEVBQUtDLENBQUssSUFBSyxPQUFPLFFBQVFILENBQUcsRUFDaEJHLEdBQVUsTUFBUUEsSUFBVSxLQUNwREYsRUFBT0MsQ0FBYyxFQUFJQyxHQUc3QixPQUFPRixDQUNUIiwKICAibmFtZXMiOiBbInBhcnNlQXJhbmdvSWQiLCAicGFyc2VJZCIsICJwYXJzZU51bSIsICJ6IiwgIkFyYW5nb1ZhbGlkYXRpb25FcnJvciIsICJtZXNzYWdlIiwgImZpZWxkIiwgIkRvY3VtZW50SW5wdXRTY2hlbWEiLCAidmFsaWRhdGVEb2N1bWVudElucHV0IiwgImRvYyIsICJlcnJvciIsICJmaWVsZEVycm9ycyIsICJlIiwgImZvcm1hdERvY3VtZW50T3V0cHV0IiwgInBhcnNlRG9jdW1lbnQiLCAicGVyZm9ybURvY3VtZW50VHJhbnNmb3JtYXRpb24iLCAiX2lkIiwgIl9rZXkiLCAiYWRkZWQiLCAiaWQiLCAibW9kaWZpZWQiLCAicmVtb3ZlRW1wdHlLZXlzIiwgIm9iaiIsICJyZXN1bHQiLCAia2V5IiwgInZhbHVlIl0KfQo=
1
+ import { parseArangoId, parseId, parseNum } from '@nlabs/utils';
2
+ import { z } from 'zod';
3
+ export class ArangoValidationError extends Error {
4
+ field;
5
+ constructor(message, field){
6
+ super(message), this.field = field;
7
+ this.name = 'ArangoValidationError';
8
+ }
9
+ }
10
+ const DocumentInputSchema = z.object({
11
+ _from: z.string().optional(),
12
+ _id: z.string().optional(),
13
+ _key: z.string().optional(),
14
+ _oldRev: z.string().optional(),
15
+ _rev: z.string().optional(),
16
+ _to: z.string().optional(),
17
+ added: z.number().optional(),
18
+ id: z.string().optional(),
19
+ modified: z.number().optional()
20
+ }).loose();
21
+ export const validateDocumentInput = (doc)=>{
22
+ try {
23
+ const validated = DocumentInputSchema.parse(doc);
24
+ return validated;
25
+ } catch (error) {
26
+ if (error instanceof z.ZodError) {
27
+ const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
28
+ throw new ArangoValidationError(`Document validation failed: ${fieldErrors}`);
29
+ }
30
+ throw error;
31
+ }
32
+ };
33
+ export const formatDocumentOutput = (doc)=>doc;
34
+ export const parseDocument = (doc)=>{
35
+ try {
36
+ const parsed = performDocumentTransformation(doc);
37
+ return parsed;
38
+ } catch (error) {
39
+ if (error instanceof ArangoValidationError) {
40
+ throw error;
41
+ }
42
+ throw new ArangoValidationError(`Document parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
43
+ }
44
+ };
45
+ const performDocumentTransformation = (doc)=>{
46
+ const { _id, _key, added, id, modified } = doc;
47
+ const transformed = removeEmptyKeys({
48
+ ...doc,
49
+ ...(_id || id) && {
50
+ id: parseArangoId(_id || id || '')
51
+ },
52
+ ..._key && {
53
+ _key: parseId(_key || '')
54
+ },
55
+ ...added !== undefined && {
56
+ added: parseNum(added, 13)
57
+ },
58
+ ...modified !== undefined && {
59
+ modified: parseNum(modified, 13)
60
+ }
61
+ });
62
+ return transformed;
63
+ };
64
+ // Utility function to remove empty keys from objects
65
+ export const removeEmptyKeys = (obj)=>{
66
+ const result = {};
67
+ for (const [key, value] of Object.entries(obj)){
68
+ if (value !== undefined && value !== null && value !== '') {
69
+ result[key] = value;
70
+ }
71
+ }
72
+ return result;
73
+ };
74
+
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvYXJhbmdvQWRhcHRlci9hcmFuZ29BZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlQXJhbmdvSWQsIHBhcnNlSWQsIHBhcnNlTnVtIH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50VHlwZSB7XG4gIF9mcm9tPzogc3RyaW5nO1xuICBfaWQ/OiBzdHJpbmc7XG4gIF9rZXk/OiBzdHJpbmc7XG4gIF9vbGRSZXY/OiBzdHJpbmc7XG4gIF9yZXY/OiBzdHJpbmc7XG4gIF90bz86IHN0cmluZztcbiAgYWRkZWQ/OiBudW1iZXI7XG4gIGlkPzogc3RyaW5nO1xuICBtb2RpZmllZD86IG51bWJlcjtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgY2xhc3MgQXJhbmdvVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmaWVsZD86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdBcmFuZ29WYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IERvY3VtZW50SW5wdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfa2V5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9vbGRSZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfdG86IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYWRkZWQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbW9kaWZpZWQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKVxufSkubG9vc2UoKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRG9jdW1lbnRJbnB1dCA9IChkb2M6IHVua25vd24pOiBEb2N1bWVudFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IERvY3VtZW50SW5wdXRTY2hlbWEucGFyc2UoZG9jKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIERvY3VtZW50VHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5pc3N1ZXMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBBcmFuZ29WYWxpZGF0aW9uRXJyb3IoYERvY3VtZW50IHZhbGlkYXRpb24gZmFpbGVkOiAke2ZpZWxkRXJyb3JzfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdERvY3VtZW50T3V0cHV0ID0gKGRvYzogRG9jdW1lbnRUeXBlKTogRG9jdW1lbnRUeXBlID0+IGRvYztcblxuZXhwb3J0IGNvbnN0IHBhcnNlRG9jdW1lbnQgPSAoZG9jOiBEb2N1bWVudFR5cGUpOiBEb2N1bWVudFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBlcmZvcm1Eb2N1bWVudFRyYW5zZm9ybWF0aW9uKGRvYyk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2YgQXJhbmdvVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEFyYW5nb1ZhbGlkYXRpb25FcnJvcihgRG9jdW1lbnQgcGFyc2luZyBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCk7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1Eb2N1bWVudFRyYW5zZm9ybWF0aW9uID0gKGRvYzogRG9jdW1lbnRUeXBlKTogRG9jdW1lbnRUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGFkZGVkLFxuICAgIGlkLFxuICAgIG1vZGlmaWVkXG4gIH0gPSBkb2M7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSByZW1vdmVFbXB0eUtleXMoe1xuICAgIC4uLmRvYyxcbiAgICAuLi4oKF9pZCB8fCBpZCkgJiYge2lkOiBwYXJzZUFyYW5nb0lkKF9pZCB8fCBpZCB8fCAnJyl9KSxcbiAgICAuLi4oX2tleSAmJiB7X2tleTogcGFyc2VJZChfa2V5IHx8ICcnKX0pLFxuICAgIC4uLihhZGRlZCAhPT0gdW5kZWZpbmVkICYmIHthZGRlZDogcGFyc2VOdW0oYWRkZWQsIDEzKX0pLFxuICAgIC4uLihtb2RpZmllZCAhPT0gdW5kZWZpbmVkICYmIHttb2RpZmllZDogcGFyc2VOdW0obW9kaWZpZWQsIDEzKX0pXG4gIH0pO1xuXG4gIHJldHVybiB0cmFuc2Zvcm1lZDtcbn07XG5cbi8vIFV0aWxpdHkgZnVuY3Rpb24gdG8gcmVtb3ZlIGVtcHR5IGtleXMgZnJvbSBvYmplY3RzXG5leHBvcnQgY29uc3QgcmVtb3ZlRW1wdHlLZXlzID0gPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PihvYmo6IFQpOiBUID0+IHtcbiAgY29uc3QgcmVzdWx0ID0ge30gYXMgVDtcbiAgZm9yKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmopKSB7XG4gICAgaWYodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpIHtcbiAgICAgIHJlc3VsdFtrZXkgYXMga2V5b2YgVF0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07Il0sIm5hbWVzIjpbInBhcnNlQXJhbmdvSWQiLCJwYXJzZUlkIiwicGFyc2VOdW0iLCJ6IiwiQXJhbmdvVmFsaWRhdGlvbkVycm9yIiwiRXJyb3IiLCJtZXNzYWdlIiwiZmllbGQiLCJuYW1lIiwiRG9jdW1lbnRJbnB1dFNjaGVtYSIsIm9iamVjdCIsIl9mcm9tIiwic3RyaW5nIiwib3B0aW9uYWwiLCJfaWQiLCJfa2V5IiwiX29sZFJldiIsIl9yZXYiLCJfdG8iLCJhZGRlZCIsIm51bWJlciIsImlkIiwibW9kaWZpZWQiLCJsb29zZSIsInZhbGlkYXRlRG9jdW1lbnRJbnB1dCIsImRvYyIsInZhbGlkYXRlZCIsInBhcnNlIiwiZXJyb3IiLCJab2RFcnJvciIsImZpZWxkRXJyb3JzIiwiaXNzdWVzIiwibWFwIiwiZSIsInBhdGgiLCJqb2luIiwiZm9ybWF0RG9jdW1lbnRPdXRwdXQiLCJwYXJzZURvY3VtZW50IiwicGFyc2VkIiwicGVyZm9ybURvY3VtZW50VHJhbnNmb3JtYXRpb24iLCJ0cmFuc2Zvcm1lZCIsInJlbW92ZUVtcHR5S2V5cyIsInVuZGVmaW5lZCIsIm9iaiIsInJlc3VsdCIsImtleSIsInZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsYUFBYSxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxlQUFlO0FBQ2hFLFNBQVNDLENBQUMsUUFBUSxNQUFNO0FBZXhCLE9BQU8sTUFBTUMsOEJBQThCQzs7SUFDekMsWUFBWUMsT0FBZSxFQUFFLEFBQU9DLEtBQWMsQ0FBRTtRQUNsRCxLQUFLLENBQUNELGVBRDRCQyxRQUFBQTtRQUVsQyxJQUFJLENBQUNDLElBQUksR0FBRztJQUNkO0FBQ0Y7QUFFQSxNQUFNQyxzQkFBc0JOLEVBQUVPLE1BQU0sQ0FBQztJQUNuQ0MsT0FBT1IsRUFBRVMsTUFBTSxHQUFHQyxRQUFRO0lBQzFCQyxLQUFLWCxFQUFFUyxNQUFNLEdB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
@@ -23,9 +23,10 @@ export interface ContentInputType {
23
23
  [key: string]: any;
24
24
  }
25
25
  export declare class ContentValidationError extends Error {
26
- field?: string | undefined;
27
- constructor(message: string, field?: string | undefined);
26
+ field?: string;
27
+ constructor(message: string, field?: string);
28
28
  }
29
29
  export declare const parseContent: (content: ContentType) => ContentType;
30
30
  export declare const parseContentInput: (content: ContentInputType) => ContentInputType;
31
31
  export declare const parseContentFromDb: (content: ContentType) => ContentType;
32
+ //# sourceMappingURL=contentAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/contentAdapter/contentAdapter.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IACX,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM;CAInD;AA2BD,eAAO,MAAM,YAAY,GAAI,SAAS,WAAW,KAAG,WAYnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,gBAAgB,KAAG,gBAY7D,CAAC;AAiCF,eAAO,MAAM,kBAAkB,GAAI,SAAS,WAAW,KAAG,WAAoD,CAAC"}
@@ -1,2 +1,107 @@
1
- import{parseArangoId as f,parseId as l,parseString as r}from"@nlabs/utils";import{z as t}from"zod";import{parseDocument as C,removeEmptyKeys as b}from"../arangoAdapter/arangoAdapter";class m extends Error{constructor(n,s){super(n);this.field=s;this.name="ContentValidationError"}}const I=t.object({contentId:t.string().optional(),key:t.string().min(1,"Key is required").max(200,"Key must be less than 200 characters"),locale:t.enum(["en","es","fr","de","pt","it"],{message:"Locale must be one of: en, es, fr, de, pt, it"}),content:t.string().min(1,"Content is required").max(1e4,"Content must be less than 10000 characters"),description:t.string().max(500,"Description must be less than 500 characters").optional(),category:t.string().max(100,"Category must be less than 100 characters").optional(),isActive:t.boolean().optional(),userId:t.string().optional()}),x=t.object({contentId:t.string().optional(),key:t.string().min(1,"Key is required").max(200,"Key must be less than 200 characters"),locale:t.enum(["en","es","fr","de","pt","it"],{message:"Locale must be one of: en, es, fr, de, pt, it"}).optional(),content:t.string().min(1,"Content is required").max(1e4,"Content must be less than 10000 characters"),description:t.string().max(500,"Description must be less than 500 characters").optional(),category:t.string().max(100,"Category must be less than 100 characters").optional(),isActive:t.boolean().optional()}),A=o=>{try{return I.parse(o)}catch(e){if(e instanceof t.ZodError){const n=e.issues[0]?.path.join("."),s=e.issues[0]?.message||"Validation failed";throw new m(s,n)}throw e}},E=o=>{try{return x.parse(o)}catch(e){if(e instanceof t.ZodError){const n=e.issues[0]?.path.join("."),s=e.issues[0]?.message||"Validation failed";throw new m(s,n)}throw e}},T=o=>{const{_id:e,_key:n,contentId:s,id:i,key:g,locale:y,content:u,description:a,category:c,isActive:p,userId:d}=o,h={...C(o),...(n||s)&&{contentId:l(n||s||"")},...(e||i||n||s)&&{id:f(e||i||`content/${n||s}`)},key:r(g,200),locale:y,content:r(u,1e4),...a&&{description:r(a,500)},...c&&{category:r(c,100)},...p!==void 0&&{isActive:p},...d&&{userId:l(d)}};return b(h)},K=o=>T(o);export{m as ContentValidationError,A as parseContent,K as parseContentFromDb,E as parseContentInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL2NvbnRlbnRBZGFwdGVyL2NvbnRlbnRBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtwYXJzZUFyYW5nb0lkLCBwYXJzZUlkLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtwYXJzZURvY3VtZW50LCByZW1vdmVFbXB0eUtleXN9IGZyb20gJy4uL2FyYW5nb0FkYXB0ZXIvYXJhbmdvQWRhcHRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudFR5cGUge1xuICBfaWQ/OiBzdHJpbmc7XG4gIF9rZXk/OiBzdHJpbmc7XG4gIGNvbnRlbnRJZD86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICBsb2NhbGU6ICdlbicgfCAnZXMnIHwgJ2ZyJyB8ICdkZScgfCAncHQnIHwgJ2l0JztcbiAgY29udGVudDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgdXNlcklkPzogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudElucHV0VHlwZSB7XG4gIGNvbnRlbnRJZD86IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG4gIGxvY2FsZT86ICdlbicgfCAnZXMnIHwgJ2ZyJyB8ICdkZScgfCAncHQnIHwgJ2l0JztcbiAgY29udGVudDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgY2xhc3MgQ29udGVudFZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnQ29udGVudFZhbGlkYXRpb25FcnJvcic7XG4gIH1cbn1cblxuY29uc3QgY29udGVudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY29udGVudElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGtleTogei5zdHJpbmcoKS5taW4oMSwgJ0tleSBpcyByZXF1aXJlZCcpLm1heCgyMDAsICdLZXkgbXVzdCBiZSBsZXNzIHRoYW4gMjAwIGNoYXJhY3RlcnMnKSxcbiAgbG9jYWxlOiB6LmVudW0oWydlbicsICdlcycsICdmcicsICdkZScsICdwdCcsICdpdCddLCB7XG4gICAgbWVzc2FnZTogJ0xvY2FsZSBtdXN0IGJlIG9uZSBvZjogZW4sIGVzLCBmciwgZGUsIHB0LCBpdCdcbiAgfSksXG4gIGNvbnRlbnQ6IHouc3RyaW5nKCkubWluKDEsICdDb250ZW50IGlzIHJlcXVpcmVkJykubWF4KDEwMDAwLCAnQ29udGVudCBtdXN0IGJlIGxlc3MgdGhhbiAxMDAwMCBjaGFyYWN0ZXJzJyksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm1heCg1MDAsICdEZXNjcmlwdGlvbiBtdXN0IGJlIGxlc3MgdGhhbiA1MDAgY2hhcmFjdGVycycpLm9wdGlvbmFsKCksXG4gIGNhdGVnb3J5OiB6LnN0cmluZygpLm1heCgxMDAsICdDYXRlZ29yeSBtdXN0IGJlIGxlc3MgdGhhbiAxMDAgY2hhcmFjdGVycycpLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKVxufSk7XG5cbmNvbnN0IGNvbnRlbnRJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY29udGVudElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGtleTogei5zdHJpbmcoKS5taW4oMSwgJ0tleSBpcyByZXF1aXJlZCcpLm1heCgyMDAsICdLZXkgbXVzdCBiZSBsZXNzIHRoYW4gMjAwIGNoYXJhY3RlcnMnKSxcbiAgbG9jYWxlOiB6LmVudW0oWydlbicsICdlcycsICdmcicsICdkZScsICdwdCcsICdpdCddLCB7XG4gICAgbWVzc2FnZTogJ0xvY2FsZSBtdXN0IGJlIG9uZSBvZjogZW4sIGVzLCBmciwgZGUsIHB0LCBpdCdcbiAgfSkub3B0aW9uYWwoKSxcbiAgY29udGVudDogei5zdHJpbmcoKS5taW4oMSwgJ0NvbnRlbnQgaXMgcmVxdWlyZWQnKS5tYXgoMTAwMDAsICdDb250ZW50IG11c3QgYmUgbGVzcyB0aGFuIDEwMDAwIGNoYXJhY3RlcnMnKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkubWF4KDUwMCwgJ0Rlc2NyaXB0aW9uIG11c3QgYmUgbGVzcyB0aGFuIDUwMCBjaGFyYWN0ZXJzJykub3B0aW9uYWwoKSxcbiAgY2F0ZWdvcnk6IHouc3RyaW5nKCkubWF4KDEwMCwgJ0NhdGVnb3J5IG11c3QgYmUgbGVzcyB0aGFuIDEwMCBjaGFyYWN0ZXJzJykub3B0aW9uYWwoKSxcbiAgaXNBY3RpdmU6IHouYm9vbGVhbigpLm9wdGlvbmFsKClcbn0pO1xuXG5leHBvcnQgY29uc3QgcGFyc2VDb250ZW50ID0gKGNvbnRlbnQ6IENvbnRlbnRUeXBlKTogQ29udGVudFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IGNvbnRlbnRTY2hlbWEucGFyc2UoY29udGVudCk7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBDb250ZW50VHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGQgPSBlcnJvci5pc3N1ZXNbMF0/LnBhdGguam9pbignLicpO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLmlzc3Vlc1swXT8ubWVzc2FnZSB8fCAnVmFsaWRhdGlvbiBmYWlsZWQnO1xuICAgICAgdGhyb3cgbmV3IENvbnRlbnRWYWxpZGF0aW9uRXJyb3IobWVzc2FnZSwgZmllbGQpO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29udGVudElucHV0ID0gKGNvbnRlbnQ6IENvbnRlbnRJbnB1dFR5cGUpOiBDb250ZW50SW5wdXRUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBjb250ZW50SW5wdXRTY2hlbWEucGFyc2UoY29udGVudCk7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBDb250ZW50SW5wdXRUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZCA9IGVycm9yLmlzc3Vlc1swXT8ucGF0aC5qb2luKCcuJyk7XG4gICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IuaXNzdWVzWzBdPy5tZXNzYWdlIHx8ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudFZhbGlkYXRpb25FcnJvcihtZXNzYWdlLCBmaWVsZCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5jb25zdCBwZXJmb3JtQ29udGVudFRyYW5zZm9ybWF0aW9uID0gKGNvbnRlbnQ6IENvbnRlbnRUeXBlKTogQ29udGVudFR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgX2lkLFxuICAgIF9rZXksXG4gICAgY29udGVudElkLFxuICAgIGlkLFxuICAgIGtleSxcbiAgICBsb2NhbGUsXG4gICAgY29udGVudDogY29udGVudFRleHQsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgY2F0ZWdvcnksXG4gICAgaXNBY3RpdmUsXG4gICAgdXNlcklkXG4gIH0gPSBjb250ZW50O1xuXG4gIGNvbnN0IHRyYW5zZm9ybWVkID0ge1xuICAgIC4uLnBhcnNlRG9jdW1lbnQoY29udGVudCksXG4gICAgLi4uKChfa2V5IHx8IGNvbnRlbnRJZCkgJiYge2NvbnRlbnRJZDogcGFyc2VJZChfa2V5IHx8IGNvbnRlbnRJZCB8fCAnJyl9KSxcbiAgICAuLi4oKF9pZCB8fCBpZCB8fCBfa2V5IHx8IGNvbnRlbnRJZCkgJiYge2lkOiBwYXJzZUFyYW5nb0lkKF9pZCB8fCBpZCB8fCBgY29udGVudC8ke19rZXkgfHwgY29udGVudElkfWApfSksXG4gICAga2V5OiBwYXJzZVN0cmluZyhrZXksIDIwMCksXG4gICAgbG9jYWxlLFxuICAgIGNvbnRlbnQ6IHBhcnNlU3RyaW5nKGNvbnRlbnRUZXh0LCAxMDAwMCksXG4gICAgLi4uKGRlc2NyaXB0aW9uICYmIHtkZXNjcmlwdGlvbjogcGFyc2VTdHJpbmcoZGVzY3JpcHRpb24sIDUwMCl9KSxcbiAgICAuLi4oY2F0ZWdvcnkgJiYge2NhdGVnb3J5OiBwYXJzZVN0cmluZyhjYXRlZ29yeSwgMTAwKX0pLFxuICAgIC4uLihpc0FjdGl2ZSAhPT0gdW5kZWZpbmVkICYmIHtpc0FjdGl2ZX0pLFxuICAgIC4uLih1c2VySWQgJiYge3VzZXJJZDogcGFyc2VJZCh1c2VySWQpfSlcbiAgfTtcblxuICByZXR1cm4gcmVtb3ZlRW1wdHlLZXlzKHRyYW5zZm9ybWVkKSBhcyBDb250ZW50VHlwZTtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnRlbnRGcm9tRGIgPSAoY29udGVudDogQ29udGVudFR5cGUpOiBDb250ZW50VHlwZSA9PiBwZXJmb3JtQ29udGVudFRyYW5zZm9ybWF0aW9uKGNvbnRlbnQpOyJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQVEsaUJBQUFBLEVBQWUsV0FBQUMsRUFBUyxlQUFBQyxNQUFrQixl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QUFRZ0IsR0FBUUMsR0FBYSxFQUFFLENBQUMsRUFDdkUsSUFBS0YsR0FBT0csR0FBTUYsR0FBUUMsSUFBYyxDQUFDLEdBQUlsQixFQUFjZ0IsR0FBT0csR0FBTSxXQUFXRixHQUFRQyxDQUFTLEVBQUUsQ0FBQyxFQUN2RyxJQUFLaEIsRUFBWWtCLEVBQUssR0FBRyxFQUN6QixPQUFBQyxFQUNBLFFBQVNuQixFQUFZb0IsRUFBYSxHQUFLLEVBQ3ZDLEdBQUlDLEdBQWUsQ0FBQyxZQUFhckIsRUFBWXFCLEVBQWEsR0FBRyxDQUFDLEVBQzlELEdBQUlDLEdBQVksQ0FBQyxTQUFVdEIsRUFBWXNCLEVBQVUsR0FBRyxDQUFDLEVBQ3JELEdBQUlDLElBQWEsUUFBYSxDQUFDLFNBQUFBLENBQVEsRUFDdkMsR0FBSUMsR0FBVSxDQUFDLE9BQVF6QixFQUFReUIsQ0FBTSxDQUFDLENBQ3hDLEVBRUEsT0FBT3JCLEVBQWdCc0IsQ0FBVyxDQUNwQyxFQUVhQyxFQUFzQmhCLEdBQXNDRyxFQUE2QkgsQ0FBTyIsCiAgIm5hbWVzIjogWyJwYXJzZUFyYW5nb0lkIiwgInBhcnNlSWQiLCAicGFyc2VTdHJpbmciLCAieiIsICJwYXJzZURvY3VtZW50IiwgInJlbW92ZUVtcHR5S2V5cyIsICJDb250ZW50VmFsaWRhdGlvbkVycm9yIiwgIm1lc3NhZ2UiLCAiZmllbGQiLCAiY29udGVudFNjaGVtYSIsICJjb250ZW50SW5wdXRTY2hlbWEiLCAicGFyc2VDb250ZW50IiwgImNvbnRlbnQiLCAiZXJyb3IiLCAicGFyc2VDb250ZW50SW5wdXQiLCAicGVyZm9ybUNvbnRlbnRUcmFuc2Zvcm1hdGlvbiIsICJfaWQiLCAiX2tleSIsICJjb250ZW50SWQiLCAiaWQiLCAia2V5IiwgImxvY2FsZSIsICJjb250ZW50VGV4dCIsICJkZXNjcmlwdGlvbiIsICJjYXRlZ29yeSIsICJpc0FjdGl2ZSIsICJ1c2VySWQiLCAidHJhbnNmb3JtZWQiLCAicGFyc2VDb250ZW50RnJvbURiIl0KfQo=
1
+ /**
2
+ * Copyright (c) 2025-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { parseArangoId, parseId, parseString } from '@nlabs/utils';
5
+ import { z } from 'zod';
6
+ import { parseDocument, removeEmptyKeys } from '../arangoAdapter/arangoAdapter.js';
7
+ export class ContentValidationError extends Error {
8
+ field;
9
+ constructor(message, field){
10
+ super(message), this.field = field;
11
+ this.name = 'ContentValidationError';
12
+ }
13
+ }
14
+ const contentSchema = z.object({
15
+ contentId: z.string().optional(),
16
+ key: z.string().min(1, 'Key is required').max(200, 'Key must be less than 200 characters'),
17
+ locale: z.enum([
18
+ 'en',
19
+ 'es',
20
+ 'fr',
21
+ 'de',
22
+ 'pt',
23
+ 'it'
24
+ ], {
25
+ message: 'Locale must be one of: en, es, fr, de, pt, it'
26
+ }),
27
+ content: z.string().min(1, 'Content is required').max(10000, 'Content must be less than 10000 characters'),
28
+ description: z.string().max(500, 'Description must be less than 500 characters').optional(),
29
+ category: z.string().max(100, 'Category must be less than 100 characters').optional(),
30
+ isActive: z.boolean().optional(),
31
+ userId: z.string().optional()
32
+ });
33
+ const contentInputSchema = z.object({
34
+ contentId: z.string().optional(),
35
+ key: z.string().min(1, 'Key is required').max(200, 'Key must be less than 200 characters'),
36
+ locale: z.enum([
37
+ 'en',
38
+ 'es',
39
+ 'fr',
40
+ 'de',
41
+ 'pt',
42
+ 'it'
43
+ ], {
44
+ message: 'Locale must be one of: en, es, fr, de, pt, it'
45
+ }).optional(),
46
+ content: z.string().min(1, 'Content is required').max(10000, 'Content must be less than 10000 characters'),
47
+ description: z.string().max(500, 'Description must be less than 500 characters').optional(),
48
+ category: z.string().max(100, 'Category must be less than 100 characters').optional(),
49
+ isActive: z.boolean().optional()
50
+ });
51
+ export const parseContent = (content)=>{
52
+ try {
53
+ const validated = contentSchema.parse(content);
54
+ return validated;
55
+ } catch (error) {
56
+ if (error instanceof z.ZodError) {
57
+ const field = error.issues[0]?.path.join('.');
58
+ const message = error.issues[0]?.message || 'Validation failed';
59
+ throw new ContentValidationError(message, field);
60
+ }
61
+ throw error;
62
+ }
63
+ };
64
+ export const parseContentInput = (content)=>{
65
+ try {
66
+ const validated = contentInputSchema.parse(content);
67
+ return validated;
68
+ } catch (error) {
69
+ if (error instanceof z.ZodError) {
70
+ const field = error.issues[0]?.path.join('.');
71
+ const message = error.issues[0]?.message || 'Validation failed';
72
+ throw new ContentValidationError(message, field);
73
+ }
74
+ throw error;
75
+ }
76
+ };
77
+ const performContentTransformation = (content)=>{
78
+ const { _id, _key, contentId, id, key, locale, content: contentText, description, category, isActive, userId } = content;
79
+ const transformed = {
80
+ ...parseDocument(content),
81
+ ...(_key || contentId) && {
82
+ contentId: parseId(_key || contentId || '')
83
+ },
84
+ ...(_id || id || _key || contentId) && {
85
+ id: parseArangoId(_id || id || `content/${_key || contentId}`)
86
+ },
87
+ key: parseString(key, 200),
88
+ locale,
89
+ content: parseString(contentText, 10000),
90
+ ...description && {
91
+ description: parseString(description, 500)
92
+ },
93
+ ...category && {
94
+ category: parseString(category, 100)
95
+ },
96
+ ...isActive !== undefined && {
97
+ isActive
98
+ },
99
+ ...userId && {
100
+ userId: parseId(userId)
101
+ }
102
+ };
103
+ return removeEmptyKeys(transformed);
104
+ };
105
+ export const parseContentFromDb = (content)=>performContentTransformation(content);
106
+
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvY29udGVudEFkYXB0ZXIvY29udGVudEFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7IHBhcnNlQXJhbmdvSWQsIHBhcnNlSWQsIHBhcnNlU3RyaW5nIH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuXG5pbXBvcnQgeyBwYXJzZURvY3VtZW50LCByZW1vdmVFbXB0eUtleXMgfSBmcm9tICcuLi9hcmFuZ29BZGFwdGVyL2FyYW5nb0FkYXB0ZXIuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRUeXBlIHtcbiAgX2lkPzogc3RyaW5nO1xuICBfa2V5Pzogc3RyaW5nO1xuICBjb250ZW50SWQ/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBrZXk6IHN0cmluZztcbiAgbG9jYWxlOiAnZW4nIHwgJ2VzJyB8ICdmcicgfCAnZGUnIHwgJ3B0JyB8ICdpdCc7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG4gIHVzZXJJZD86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRJbnB1dFR5cGUge1xuICBjb250ZW50SWQ/OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICBsb2NhbGU/OiAnZW4nIHwgJ2VzJyB8ICdmcicgfCAnZGUnIHwgJ3B0JyB8ICdpdCc7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIENvbnRlbnRWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0NvbnRlbnRWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IGNvbnRlbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvbnRlbnRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXk6IHouc3RyaW5nKCkubWluKDEsICdLZXkgaXMgcmVxdWlyZWQnKS5tYXgoMjAwLCAnS2V5IG11c3QgYmUgbGVzcyB0aGFuIDIwMCBjaGFyYWN0ZXJzJyksXG4gIGxvY2FsZTogei5lbnVtKFsnZW4nLCAnZXMnLCAnZnInLCAnZGUnLCAncHQnLCAnaXQnXSwge1xuICAgIG1lc3NhZ2U6ICdMb2NhbGUgbXVzdCBiZSBvbmUgb2Y6IGVuLCBlcywgZnIsIGRlLCBwdCwgaXQnXG4gIH0pLFxuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLm1heCgxMDAwMCwgJ0NvbnRlbnQgbXVzdCBiZSBsZXNzIHRoYW4gMTAwMDAgY2hhcmFjdGVycycpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5tYXgoNTAwLCAnRGVzY3JpcHRpb24gbXVzdCBiZSBsZXNzIHRoYW4gNTAwIGNoYXJhY3RlcnMnKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5tYXgoMTAwLCAnQ2F0ZWdvcnkgbXVzdCBiZSBsZXNzIHRoYW4gMTAwIGNoYXJhY3RlcnMnKS5vcHRpb25hbCgpLFxuICBpc0FjdGl2ZTogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgdXNlcklkOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pO1xuXG5jb25zdCBjb250ZW50SW5wdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvbnRlbnRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXk6IHouc3RyaW5nKCkubWluKDEsICdLZXkgaXMgcmVxdWlyZWQnKS5tYXgoMjAwLCAnS2V5IG11c3QgYmUgbGVzcyB0aGFuIDIwMCBjaGFyYWN0ZXJzJyksXG4gIGxvY2FsZTogei5lbnVtKFsnZW4nLCAnZXMnLCAnZnInLCAnZGUnLCAncHQnLCAnaXQnXSwge1xuICAgIG1lc3NhZ2U6ICdMb2NhbGUgbXVzdCBiZSBvbmUgb2Y6IGVuLCBlcywgZnIsIGRlLCBwdCwgaXQnXG4gIH0pLm9wdGlvbmFsKCksXG4gIGNvbnRlbnQ6IHouc3RyaW5nKCkubWluKDEsICdDb250ZW50IGlzIHJlcXVpcmVkJykubWF4KDEwMDAwLCAnQ29udGVudCBtdXN0IGJlIGxlc3MgdGhhbiAxMDAwMCBjaGFyYWN0ZXJzJyksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm1heCg1MDAsICdEZXNjcmlwdGlvbiBtdXN0IGJlIGxlc3MgdGhhbiA1MDAgY2hhcmFjdGVycycpLm9wdGlvbmFsKCksXG4gIGNhdGVnb3J5OiB6LnN0cmluZygpLm1heCgxMDAsICdDYXRlZ29yeSBtdXN0IGJlIGxlc3MgdGhhbiAxMDAgY2hhcmFjdGVycycpLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpXG59KTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29udGVudCA9IChjb250ZW50OiBDb250ZW50VHlwZSk6IENvbnRlbnRUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBjb250ZW50U2NoZW1hLnBhcnNlKGNvbnRlbnQpO1xuICAgIHJldHVybiB2YWxpZGF0ZWQgYXMgQ29udGVudFR5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkID0gZXJyb3IuaXNzdWVzWzBdPy5wYXRoLmpvaW4oJy4nKTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5pc3N1ZXNbMF0/Lm1lc3NhZ2UgfHwgJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICAgIHRocm93IG5ldyBDb250ZW50VmFsaWRhdGlvbkVycm9yKG1lc3NhZ2UsIGZpZWxkKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnRlbnRJbnB1dCA9IChjb250ZW50OiBDb250ZW50SW5wdXRUeXBlKTogQ29udGVudElucHV0VHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdmFsaWRhdGVkID0gY29udGVudElucHV0U2NoZW1hLnBhcnNlKGNvbnRlbnQpO1xuICAgIHJldHVybiB2YWxpZGF0ZWQgYXMgQ29udGVudElucHV0VHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGQgPSBlcnJvci5pc3N1ZXNbMF0/LnBhdGguam9pbignLicpO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLmlzc3Vlc1swXT8ubWVzc2FnZSB8fCAnVmFsaWRhdGlvbiBmYWlsZWQnO1xuICAgICAgdGhyb3cgbmV3IENvbnRlbnRWYWxpZGF0aW9uRXJyb3IobWVzc2FnZSwgZmllbGQpO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuY29uc3QgcGVyZm9ybUNvbnRlbnRUcmFuc2Zvcm1hdGlvbiA9IChjb250ZW50OiBDb250ZW50VHlwZSk6IENvbnRlbnRUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGNvbnRlbnRJZCxcbiAgICBpZCxcbiAgICBrZXksXG4gICAgbG9jYWxlLFxuICAgIGNvbnRlbnQ6IGNvbnRlbnRUZXh0LFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGNhdGVnb3J5LFxuICAgIGlzQWN0aXZlLFxuICAgIHVzZXJJZFxuICB9ID0gY29udGVudDtcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHtcbiAgICAuLi5wYXJzZURvY3VtZW50KGNvbnRlbnQpLFxuICAgIC4uLigoX2tleSB8fCBjb250ZW50SWQpICYmIHtjb250ZW50SWQ6IHBhcnNlSWQoX2tleSB8fCBjb250ZW50SWQgfHwgJycpfSksXG4gICAgLi4uKChfaWQgfHwgaWQgfHwgX2tleSB8fCBjb250ZW50SWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgYGNvbnRlbnQvJHtfa2V5IHx8IGNvbnRlbnRJZH1gKX0pLFxuICAgIGtleTogcGFyc2VTdHJpbmcoa2V5LCAyMDApLFxuICAgIGxvY2FsZSxcbiAgICBjb250ZW50OiBwYXJzZVN0cmluZyhjb250ZW50VGV4dCwgMTAwMDApLFxuICAgIC4uLihkZXNjcmlwdGlvbiAmJiB7ZGVzY3JpcHRpb246IHBhcnNlU3RyaW5nKGRlc2NyaXB0aW9uLCA1MDApfSksXG4gICAgLi4uKGNhdGVnb3J5ICYmIHtjYXRlZ29yeTogcGFyc2VTdHJpbmcoY2F0ZWdvcnksIDEwMCl9KSxcbiAgICAuLi4oaXNBY3RpdmUgIT09IHVuZGVmaW5lZCAmJiB7aXNBY3RpdmV9KSxcbiAgICAuLi4odXNlcklkICYmIHt1c2VySWQ6IHBhcnNlSWQodXNlcklkKX0pXG4gIH07XG5cbiAgcmV0dXJuIHJlbW92ZUVtcHR5S2V5cyh0cmFuc2Zvcm1lZCkgYXMgQ29udGVudFR5cGU7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VDb250ZW50RnJvbURiID0gKGNvbnRlbnQ6IENvbnRlbnRUeXBlKTogQ29udGVudFR5cGUgPT4gcGVyZm9ybUNvbnRlbnRUcmFuc2Zvcm1hdGlvbihjb250ZW50KTsiXSwibmFtZXMiOlsicGFyc2VBcmFuZ29JZCIsInBhcnNlSWQiLCJwYXJzZVN0cmluZyIsInoiLCJwYXJzZURvY3VtZW50IiwicmVtb3ZlRW1wdHlLZXlzIiwiQ29udGVudFZhbGlkYXRpb25FcnJvciIsIkVycm9yIiwibWVzc2FnZSIsImZpZWxkIiwibmFtZSIsImNvbnRlbnRTY2hlbWEiLCJvYmplY3QiLCJjb250ZW50SWQiLCJzdHJpbmciLCJvcHRpb25hbCIsImtleSIsIm1pbiIsIm1heCIsImxvY2FsZSIsImVudW0iLCJjb250ZW50IiwiZGVzY3JpcHRpb24iLCJjYXRlZ29yeSIsImlzQWN0aXZlIiwiYm9vbGVhbiIsInVzZXJJZCIsImNvbnRlbnRJbnB1dFNjaGVtYSIsInBhcnNlQ29udGVudCIsInZhbGlkYXRlZCIsInBhcnNlIiwiZXJyb3IiLCJab2RFcnJvciIsImlzc3VlcyIsInBhdGgiLCJqb2luIiwicGFyc2VDb250ZW50SW5wdXQiLCJwZXJmb3JtQ29udGVudFRyYW5zZm9ybWF0aW9uIiwiX2lkIiwiX2tleSIsImlkIiwiY29udGVudFRleHQiLCJ0cmFuc2Zvcm1lZCIsInVuZGVmaW5lZCIsInBhcnNlQ29udGVudEZyb21EYiJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBU0EsYUFBYSxFQUFFQyxPQUFPLEVBQUVDLFdBQVcsUUFBUSxlQUFlO0FBQ25FLFNBQVNDLENBQUMsUUFBUSxNQUFNO0FBRXhCLFNBQVNDLGFBQWEsRUFBRUMsZUFBZSxRQUFRLG9DQUFvQztBQTRCbkYsT0FBTyxNQUFNQywrQkFBK0JDOztJQUMxQyxZQUFZQyxPQUFlLEVBQUUsQUFBT0MsS0FBYyxDQUFFO1FBQ2xELEtBQUssQ0FBQ0QsZUFENEJDLFFBQUFBO1FBRWxDLElBQUksQ0FBQ0MsSUFBSSxHQUFHO0lBQ2Q7QUFDRjtBQUVBLE1BQU1DLGdCQUFnQlIsRUFBRVMsTUFBTSxDQUFDO0lBQzdCQyxXQUFXVixFQUFFVyxNQUFNLEdBQUdDLFFBQVE7SUFDOUJDLEtBQUtiLEVBQUVXLE1BQU0sR0FBR0csR0FBRyxDQUFDLEdBQUcsbUJBQW1CQyxHQUFHLENBQUMs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
@@ -15,9 +15,10 @@ export interface ConversationType {
15
15
  [key: string]: any;
16
16
  }
17
17
  export declare class ConversationValidationError extends Error {
18
- field?: string | undefined;
19
- constructor(message: string, field?: string | undefined);
18
+ field?: string;
19
+ constructor(message: string, field?: string);
20
20
  }
21
21
  export declare const validateConversationInput: (conversation: unknown) => ConversationType;
22
22
  export declare const formatConversationOutput: (conversation: ConversationType) => ConversationType;
23
23
  export declare const parseConversation: (conversation: ConversationType) => ConversationType;
24
+ //# sourceMappingURL=conversationAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversationAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/conversationAdapter/conversationAdapter.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IAChB,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM;CAInD;AAmBD,eAAO,MAAM,yBAAyB,GAAI,cAAc,OAAO,KAAG,gBAWjE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,cAAc,gBAAgB,KAAG,gBAAgC,CAAC;AAE3G,eAAO,MAAM,iBAAiB,GAAI,cAAc,gBAAgB,KAAG,gBAUlE,CAAC"}
@@ -1,2 +1,75 @@
1
- import{parseArangoId as c,parseId as v,parseString as l}from"@nlabs/utils";import{z as o}from"zod";import{parseDocument as g,removeEmptyKeys as f}from"../arangoAdapter/arangoAdapter";import{parseUser as u}from"../userAdapter/userAdapter";class i extends Error{constructor(t,e){super(t);this.field=e;this.name="ConversationValidationError"}}const y=o.object({_id:o.string().optional(),_key:o.string().optional(),_rev:o.string().optional(),_oldRev:o.string().optional(),_from:o.string().optional(),_to:o.string().optional(),added:o.number().optional(),conversationId:o.string().optional(),id:o.string().optional(),isDirect:o.boolean().optional(),modified:o.number().optional(),name:o.string().max(160).optional(),type:o.string(),users:o.array(o.any()).optional()}).passthrough(),I=n=>{try{return y.parse(n)}catch(r){if(r instanceof o.ZodError){const t=r.issues.map(e=>`${e.path.join(".")}: ${e.message}`).join(", ");throw new i(`Conversation validation failed: ${t}`)}throw r}},x=n=>n,E=n=>{try{return C(n)}catch(r){throw r instanceof i?r:new i(`Conversation parsing failed: ${r instanceof Error?r.message:"Unknown error"}`)}},C=n=>{const{_id:r,_key:t,conversationId:e,id:s,isDirect:a,name:p,users:d}=n;return f({...g(n),...(r||s||t||e)&&{id:c(r||s||`conversations/${t||e}`)},...(t||e)&&{conversationId:v(t||e||"")},...a!==void 0&&{isDirect:!!a},...p&&{name:l(p,160)},...d?.length&&{users:d.map(m=>u(m))}})};export{i as ConversationValidationError,x as formatConversationOutput,E as parseConversation,I as validateConversationInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL2NvbnZlcnNhdGlvbkFkYXB0ZXIvY29udmVyc2F0aW9uQWRhcHRlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtwYXJzZUFyYW5nb0lkLCBwYXJzZUlkLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtwYXJzZURvY3VtZW50LCByZW1vdmVFbXB0eUtleXN9IGZyb20gJy4uL2FyYW5nb0FkYXB0ZXIvYXJhbmdvQWRhcHRlcic7XG5pbXBvcnQge3BhcnNlVXNlcn0gZnJvbSAnLi4vdXNlckFkYXB0ZXIvdXNlckFkYXB0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvblR5cGUge1xuICBfaWQ/OiBzdHJpbmc7XG4gIF9rZXk/OiBzdHJpbmc7XG4gIF9yZXY/OiBzdHJpbmc7XG4gIF9vbGRSZXY/OiBzdHJpbmc7XG4gIF9mcm9tPzogc3RyaW5nO1xuICBfdG8/OiBzdHJpbmc7XG4gIGFkZGVkPzogbnVtYmVyO1xuICBjb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGlzRGlyZWN0PzogYm9vbGVhbjtcbiAgbW9kaWZpZWQ/OiBudW1iZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHVzZXJzPzogYW55W107XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvblZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnQ29udmVyc2F0aW9uVmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBDb252ZXJzYXRpb25JbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBhZGRlZDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBjb252ZXJzYXRpb25JZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpc0RpcmVjdDogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgbW9kaWZpZWQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgbmFtZTogei5zdHJpbmcoKS5tYXgoMTYwKS5vcHRpb25hbCgpLFxuICB0eXBlOiB6LnN0cmluZygpLFxuICB1c2Vyczogei5hcnJheSh6LmFueSgpKS5vcHRpb25hbCgpXG59KS5wYXNzdGhyb3VnaCgpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVDb252ZXJzYXRpb25JbnB1dCA9IChjb252ZXJzYXRpb246IHVua25vd24pOiBDb252ZXJzYXRpb25UeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBDb252ZXJzYXRpb25JbnB1dFNjaGVtYS5wYXJzZShjb252ZXJzYXRpb24pO1xuICAgIHJldHVybiB2YWxpZGF0ZWQgYXMgQ29udmVyc2F0aW9uVHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5pc3N1ZXMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBDb252ZXJzYXRpb25WYWxpZGF0aW9uRXJyb3IoYENvbnZlcnNhdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHtmaWVsZEVycm9yc31gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRDb252ZXJzYXRpb25PdXRwdXQgPSAoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKTogQ29udmVyc2F0aW9uVHlwZSA9PiBjb252ZXJzYXRpb247XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnZlcnNhdGlvbiA9IChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpOiBDb252ZXJzYXRpb25UeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwZXJmb3JtQ29udmVyc2F0aW9uVHJhbnNmb3JtYXRpb24oY29udmVyc2F0aW9uKTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiBDb252ZXJzYXRpb25WYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgQ29udmVyc2F0aW9uVmFsaWRhdGlvbkVycm9yKGBDb252ZXJzYXRpb24gcGFyc2luZyBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCk7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1Db252ZXJzYXRpb25UcmFuc2Zvcm1hdGlvbiA9IChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpOiBDb252ZXJzYXRpb25UeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGNvbnZlcnNhdGlvbklkLFxuICAgIGlkLFxuICAgIGlzRGlyZWN0LFxuICAgIG5hbWUsXG4gICAgdXNlcnNcbiAgfSA9IGNvbnZlcnNhdGlvbjtcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHJlbW92ZUVtcHR5S2V5cyh7XG4gICAgLi4ucGFyc2VEb2N1bWVudChjb252ZXJzYXRpb24pLFxuICAgIC4uLigoX2lkIHx8IGlkIHx8IF9rZXkgfHwgY29udmVyc2F0aW9uSWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgYGNvbnZlcnNhdGlvbnMvJHtfa2V5IHx8IGNvbnZlcnNhdGlvbklkfWApfSksXG4gICAgLi4uKChfa2V5IHx8IGNvbnZlcnNhdGlvbklkKSAmJiB7Y29udmVyc2F0aW9uSWQ6IHBhcnNlSWQoX2tleSB8fCBjb252ZXJzYXRpb25JZCB8fCAnJyl9KSxcbiAgICAuLi4oaXNEaXJlY3QgIT09IHVuZGVmaW5lZCAmJiB7aXNEaXJlY3Q6ICEhaXNEaXJlY3R9KSxcbiAgICAuLi4obmFtZSAmJiB7bmFtZTogcGFyc2VTdHJpbmcobmFtZSwgMTYwKX0pLFxuICAgIC4uLih1c2Vycz8ubGVuZ3RoICYmIHt1c2VyczogdXNlcnMubWFwKCh1c2VyKSA9PiBwYXJzZVVzZXIodXNlcikpfSlcbiAgfSk7XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkO1xufTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxPQUFRLGlCQUFBQSxFQUFlLFdBQUFDLEVBQVMsZUFBQUMsTUFBa0IsZUFDbEQsT0FBUSxLQUFBQyxNQUFRLE1BRWhCLE9BQVEsaUJBQUFDLEVBQWUsbUJBQUFDLE1BQXNCLGlDQUM3QyxPQUFRLGFBQUFDLE1BQWdCLDZCQW1CakIsTUFBTUMsVUFBb0MsS0FBTSxDQUNyRCxZQUFZQyxFQUF3QkMsRUFBZ0IsQ0FDbEQsTUFBTUQsQ0FBTyxFQURxQixXQUFBQyxFQUVsQyxLQUFLLEtBQU8sNkJBQ2QsQ0FDRixDQUVBLE1BQU1DLEVBQTBCUCxFQUFFLE9BQU8sQ0FDdkMsSUFBS0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUN6QixLQUFNQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzFCLEtBQU1BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDMUIsUUFBU0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUM3QixNQUFPQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzNCLElBQUtBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDekIsTUFBT0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMzQixlQUFnQkEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUNwQyxHQUFJQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQ3hCLFNBQVVBLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFDL0IsU0FBVUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUM5QixLQUFNQSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUcsRUFBRSxTQUFTLEVBQ25DLEtBQU1BLEVBQUUsT0FBTyxFQUNmLE1BQU9BLEVBQUUsTUFBTUEsRUFBRSxJQUFJLENBQUMsRUFBRSxTQUFTLENBQ25DLENBQUMsRUFBRSxZQUFZLEVBRUZRLEVBQTZCQyxHQUE0QyxDQUNwRixHQUFJLENBRUYsT0FEa0JGLEVBQXdCLE1BQU1FLENBQVksQ0FFOUQsT0FBUUMsRUFBTyxDQUNiLEdBQUdBLGFBQWlCVixFQUFFLFNBQVUsQ0FDOUIsTUFBTVcsRUFBY0QsRUFBTSxPQUFPLElBQUssR0FBTSxHQUFHLEVBQUUsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQzFGLE1BQU0sSUFBSU4sRUFBNEIsbUNBQW1DTyxDQUFXLEVBQUUsQ0FDeEYsQ0FDQSxNQUFNRCxDQUNSLENBQ0YsRUFFYUUsRUFBNEJILEdBQXFEQSxFQUVqRkksRUFBcUJKLEdBQXFELENBQ3JGLEdBQUksQ0FFRixPQURlSyxFQUFrQ0wsQ0FBWSxDQUUvRCxPQUFRQyxFQUFPLENBQ2IsTUFBR0EsYUFBaUJOLEVBQ1pNLEVBRUYsSUFBSU4sRUFBNEIsZ0NBQWdDTSxhQUFpQixNQUFRQSxFQUFNLFFBQVUsZUFBZSxFQUFFLENBQ2xJLENBQ0YsRUFFTUksRUFBcUNMLEdBQXFELENBQzlGLEtBQU0sQ0FDSixJQUFBTSxFQUNBLEtBQUFDLEVBQ0EsZUFBQUMsRUFDQSxHQUFBQyxFQUNBLFNBQUFDLEVBQ0EsS0FBQUMsRUFDQSxNQUFBQyxDQUNGLEVBQUlaLEVBV0osT0FUb0JQLEVBQWdCLENBQ2xDLEdBQUdELEVBQWNRLENBQVksRUFDN0IsSUFBS00sR0FBT0csR0FBTUYsR0FBUUMsSUFBbUIsQ0FBQyxHQUFJcEIsRUFBY2tCLEdBQU9HLEdBQU0saUJBQWlCRixHQUFRQyxDQUFjLEVBQUUsQ0FBQyxFQUN2SCxJQUFLRCxHQUFRQyxJQUFtQixDQUFDLGVBQWdCbkIsRUFBUWtCLEdBQVFDLEdBQWtCLEVBQUUsQ0FBQyxFQUN0RixHQUFJRSxJQUFhLFFBQWEsQ0FBQyxTQUFVLENBQUMsQ0FBQ0EsQ0FBUSxFQUNuRCxHQUFJQyxHQUFRLENBQUMsS0FBTXJCLEVBQVlxQixFQUFNLEdBQUcsQ0FBQyxFQUN6QyxHQUFJQyxHQUFPLFFBQVUsQ0FBQyxNQUFPQSxFQUFNLElBQUtDLEdBQVNuQixFQUFVbUIsQ0FBSSxDQUFDLENBQUMsQ0FDbkUsQ0FBQyxDQUdIIiwKICAibmFtZXMiOiBbInBhcnNlQXJhbmdvSWQiLCAicGFyc2VJZCIsICJwYXJzZVN0cmluZyIsICJ6IiwgInBhcnNlRG9jdW1lbnQiLCAicmVtb3ZlRW1wdHlLZXlzIiwgInBhcnNlVXNlciIsICJDb252ZXJzYXRpb25WYWxpZGF0aW9uRXJyb3IiLCAibWVzc2FnZSIsICJmaWVsZCIsICJDb252ZXJzYXRpb25JbnB1dFNjaGVtYSIsICJ2YWxpZGF0ZUNvbnZlcnNhdGlvbklucHV0IiwgImNvbnZlcnNhdGlvbiIsICJlcnJvciIsICJmaWVsZEVycm9ycyIsICJmb3JtYXRDb252ZXJzYXRpb25PdXRwdXQiLCAicGFyc2VDb252ZXJzYXRpb24iLCAicGVyZm9ybUNvbnZlcnNhdGlvblRyYW5zZm9ybWF0aW9uIiwgIl9pZCIsICJfa2V5IiwgImNvbnZlcnNhdGlvbklkIiwgImlkIiwgImlzRGlyZWN0IiwgIm5hbWUiLCAidXNlcnMiLCAidXNlciJdCn0K
1
+ import { parseArangoId, parseId, parseString } from '@nlabs/utils';
2
+ import { z } from 'zod';
3
+ import { parseDocument, removeEmptyKeys } from '../arangoAdapter/arangoAdapter.js';
4
+ import { parseUser } from '../userAdapter/userAdapter.js';
5
+ export class ConversationValidationError extends Error {
6
+ field;
7
+ constructor(message, field){
8
+ super(message), this.field = field;
9
+ this.name = 'ConversationValidationError';
10
+ }
11
+ }
12
+ const ConversationInputSchema = z.object({
13
+ _id: z.string().optional(),
14
+ _key: z.string().optional(),
15
+ _rev: z.string().optional(),
16
+ _oldRev: z.string().optional(),
17
+ _from: z.string().optional(),
18
+ _to: z.string().optional(),
19
+ added: z.number().optional(),
20
+ conversationId: z.string().optional(),
21
+ id: z.string().optional(),
22
+ isDirect: z.boolean().optional(),
23
+ modified: z.number().optional(),
24
+ name: z.string().max(160).optional(),
25
+ type: z.string(),
26
+ users: z.array(z.any()).optional()
27
+ }).loose();
28
+ export const validateConversationInput = (conversation)=>{
29
+ try {
30
+ const validated = ConversationInputSchema.parse(conversation);
31
+ return validated;
32
+ } catch (error) {
33
+ if (error instanceof z.ZodError) {
34
+ const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
35
+ throw new ConversationValidationError(`Conversation validation failed: ${fieldErrors}`);
36
+ }
37
+ throw error;
38
+ }
39
+ };
40
+ export const formatConversationOutput = (conversation)=>conversation;
41
+ export const parseConversation = (conversation)=>{
42
+ try {
43
+ const parsed = performConversationTransformation(conversation);
44
+ return parsed;
45
+ } catch (error) {
46
+ if (error instanceof ConversationValidationError) {
47
+ throw error;
48
+ }
49
+ throw new ConversationValidationError(`Conversation parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
50
+ }
51
+ };
52
+ const performConversationTransformation = (conversation)=>{
53
+ const { _id, _key, conversationId, id, isDirect, name, users } = conversation;
54
+ const transformed = removeEmptyKeys({
55
+ ...parseDocument(conversation),
56
+ ...(_id || id || _key || conversationId) && {
57
+ id: parseArangoId(_id || id || `conversations/${_key || conversationId}`)
58
+ },
59
+ ...(_key || conversationId) && {
60
+ conversationId: parseId(_key || conversationId || '')
61
+ },
62
+ ...isDirect !== undefined && {
63
+ isDirect: !!isDirect
64
+ },
65
+ ...name && {
66
+ name: parseString(name, 160)
67
+ },
68
+ ...users?.length && {
69
+ users: users.map((user)=>parseUser(user))
70
+ }
71
+ });
72
+ return transformed;
73
+ };
74
+
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvY29udmVyc2F0aW9uQWRhcHRlci9jb252ZXJzYXRpb25BZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlQXJhbmdvSWQsIHBhcnNlSWQsIHBhcnNlU3RyaW5nIH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuXG5pbXBvcnQgeyBwYXJzZURvY3VtZW50LCByZW1vdmVFbXB0eUtleXMgfSBmcm9tICcuLi9hcmFuZ29BZGFwdGVyL2FyYW5nb0FkYXB0ZXIuanMnO1xuaW1wb3J0IHsgcGFyc2VVc2VyIH0gZnJvbSAnLi4vdXNlckFkYXB0ZXIvdXNlckFkYXB0ZXIuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvblR5cGUge1xuICBfaWQ/OiBzdHJpbmc7XG4gIF9rZXk/OiBzdHJpbmc7XG4gIF9yZXY/OiBzdHJpbmc7XG4gIF9vbGRSZXY/OiBzdHJpbmc7XG4gIF9mcm9tPzogc3RyaW5nO1xuICBfdG8/OiBzdHJpbmc7XG4gIGFkZGVkPzogbnVtYmVyO1xuICBjb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGlzRGlyZWN0PzogYm9vbGVhbjtcbiAgbW9kaWZpZWQ/OiBudW1iZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHVzZXJzPzogYW55W107XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvblZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnQ29udmVyc2F0aW9uVmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBDb252ZXJzYXRpb25JbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBhZGRlZDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBjb252ZXJzYXRpb25JZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpc0RpcmVjdDogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgbW9kaWZpZWQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgbmFtZTogei5zdHJpbmcoKS5tYXgoMTYwKS5vcHRpb25hbCgpLFxuICB0eXBlOiB6LnN0cmluZygpLFxuICB1c2Vyczogei5hcnJheSh6LmFueSgpKS5vcHRpb25hbCgpXG59KS5sb29zZSgpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVDb252ZXJzYXRpb25JbnB1dCA9IChjb252ZXJzYXRpb246IHVua25vd24pOiBDb252ZXJzYXRpb25UeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBDb252ZXJzYXRpb25JbnB1dFNjaGVtYS5wYXJzZShjb252ZXJzYXRpb24pO1xuICAgIHJldHVybiB2YWxpZGF0ZWQgYXMgQ29udmVyc2F0aW9uVHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5pc3N1ZXMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBDb252ZXJzYXRpb25WYWxpZGF0aW9uRXJyb3IoYENvbnZlcnNhdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHtmaWVsZEVycm9yc31gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRDb252ZXJzYXRpb25PdXRwdXQgPSAoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKTogQ29udmVyc2F0aW9uVHlwZSA9PiBjb252ZXJzYXRpb247XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnZlcnNhdGlvbiA9IChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpOiBDb252ZXJzYXRpb25UeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwZXJmb3JtQ29udmVyc2F0aW9uVHJhbnNmb3JtYXRpb24oY29udmVyc2F0aW9uKTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiBDb252ZXJzYXRpb25WYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgQ29udmVyc2F0aW9uVmFsaWRhdGlvbkVycm9yKGBDb252ZXJzYXRpb24gcGFyc2luZyBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCk7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1Db252ZXJzYXRpb25UcmFuc2Zvcm1hdGlvbiA9IChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpOiBDb252ZXJzYXRpb25UeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGNvbnZlcnNhdGlvbklkLFxuICAgIGlkLFxuICAgIGlzRGlyZWN0LFxuICAgIG5hbWUsXG4gICAgdXNlcnNcbiAgfSA9IGNvbnZlcnNhdGlvbjtcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHJlbW92ZUVtcHR5S2V5cyh7XG4gICAgLi4ucGFyc2VEb2N1bWVudChjb252ZXJzYXRpb24pLFxuICAgIC4uLigoX2lkIHx8IGlkIHx8IF9rZXkgfHwgY29udmVyc2F0aW9uSWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgYGNvbnZlcnNhdGlvbnMvJHtfa2V5IHx8IGNvbnZlcnNhdGlvbklkfWApfSksXG4gICAgLi4uKChfa2V5IHx8IGNvbnZlcnNhdGlvbklkKSAmJiB7Y29udmVyc2F0aW9uSWQ6IHBhcnNlSWQoX2tleSB8fCBjb252ZXJzYXRpb25JZCB8fCAnJyl9KSxcbiAgICAuLi4oaXNEaXJlY3QgIT09IHVuZGVmaW5lZCAmJiB7aXNEaXJlY3Q6ICEhaXNEaXJlY3R9KSxcbiAgICAuLi4obmFtZSAmJiB7bmFtZTogcGFyc2VTdHJpbmcobmFtZSwgMTYwKX0pLFxuICAgIC4uLih1c2Vycz8ubGVuZ3RoICYmIHt1c2VyczogdXNlcnMubWFwKCh1c2VyKSA9PiBwYXJzZVVzZXIodXNlcikpfSlcbiAgfSk7XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkO1xufTsiXSwibmFtZXMiOlsicGFyc2VBcmFuZ29JZCIsInBhcnNlSWQiLCJwYXJzZVN0cmluZyIsInoiLCJwYXJzZURvY3VtZW50IiwicmVtb3ZlRW1wdHlLZXlzIiwicGFyc2VVc2VyIiwiQ29udmVyc2F0aW9uVmFsaWRhdGlvbkVycm9yIiwiRXJyb3IiLCJtZXNzYWdlIiwiZmllbGQiLCJuYW1lIiwiQ29udmVyc2F0aW9uSW5wdXRTY2hlbWEiLCJvYmplY3QiLCJfaWQiLCJzdHJpbmciLCJvcHRpb25hbCIsIl9rZXkiLCJfcmV2IiwiX29sZFJldiIsIl9mcm9tIiwiX3RvIiwiYWRkZWQiLCJudW1iZXIiLCJjb252ZXJzYXRpb25JZCIsImlkIiwiaXNEaXJlY3QiLCJib29sZWFuIiwibW9kaWZpZWQiLCJtYXgiLCJ0eXBlIiwidXNlcnMiLCJhcnJheSIsImFueSIsImxvb3NlIiwidmFsaWRhdGVDb252ZXJzYXRpb25JbnB1dCIsImNvbnZlcnNhdGlvbiIsInZhbGlkYXRlZCIsInBhcnNlIiwiZXJyb3IiLCJab2RFcnJvciIsImZpZWxkRXJyb3JzIiwiaXNzdWVzIiwibWFwIiwiZSIsInBhdGgiLCJqb2luIiwiZm9ybWF0Q29udmVyc2F0aW9uT3V0cHV0IiwicGFyc2VDb252ZXJzYXRpb24iLCJwYXJzZWQiLCJwZXJmb3JtQ29udmVyc2F0aW9uVHJhbnNmb3JtYXRpb24iLCJ0cmFuc2Zvcm1lZCIsInVuZGVmaW5lZCIsImxlbmd0aCIsInVzZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsRUFBRUMsT0FBTyxFQUFFQyxXQUFXLFFBQVEsZUFBZTtBQUNuRSxTQUFTQyxDQUFDLFFBQVEsTUFBTTtBQUV4QixTQUFTQyxhQUFhLEVBQUVDLGVBQWUsUUFBUSxvQ0FBb0M7QUFDbkYsU0FBU0MsU0FBUyxRQUFRLGdDQUFnQztBQW1CMUQsT0FBTyxNQUFNQyxvQ0FBb0NDOztJQUMvQyxZQUFZQyxPQUFlLEVBQUUsQUFBT0MsS0FBYyxDQUFFO1FBQ2xELEtBQUssQ0FBQ0QsZUFENEJDLFFBQUFBO1FBRWxDLElBQUksQ0FBQ0MsSUFBSSxHQUFHO0lBQ2Q7QUFDRjtBQUVBLE1BQU1DLDBCQUEwQlQsRUFBRVUsTUFBTSxDQUFDO0lBQ3ZDQyxLQUFLWCxFQUFFWSxNQUFNLEdBQUdDLFFBQVE7SUFDeEJDLE1BQU1kLEVBQUVZLE1BQU0sR0FBR0MsUUFBUTtJQUN6QkUsTUFBTWYsRUFBRVksTUFBTSxHQUFHQyxRQUFRO0lBQ3pCRyxTQUFTaEIsRUFBRVksTUFBTSxHQUFHQyxRQUFRO0lBQzVCSSxPQUFPakIsRUFBRVksTUFBTSxHQUFHQyxRQUFRO0lBQzFCSyxLQUFLbEIsRUFBRVksTUFBTSxHQUFHQyxRQUFRO0lBQ3hCTSxPQUFPbkIsRUFBRW9CLE1BQU0sR0FBR1AsUUFBUTtJQUMxQlEsZ0JBQWdCckIsRUFBRVksTUFBTSxHQUFHQyxRQUFRO0lBQ25DUyxJQUFJdEIsRUFBRVksTUFBTSxHQUFHQyxRQUFRO0lBQ3ZCVSxVQUFVdkIsRUFBRXdCLE9BQU8sR0FBR1gsUUFBUTtJQUM5QlksVUFBVXpCLEVBQUVvQixNQUFNLEdBQUdQLFFBQVE7SUFDN0JMLE1BQU1SLEVBQUVZLE1BQU0sR0FBR2MsR0FBRyxDQUFDLEtBQUtiLFFBQVE7SUFDbENjLE1BQU0zQixFQUFFWSxNQUFNO0lBQ2RnQixPQUFPNUIsRUFBRTZCLEtBQUssQ0FBQzdCLEVBQUU4QixHQUFHLElBQUlqQixRQUFRO0FBQ2xDLEdBQUdrQixLQUFLO0FBRVIsT0FBTyxNQUFNQyw0QkFBNEIsQ0FBQ0M7SUFDeEMsSUFBSTtRQUNGLE1BQU1DLFlBQVl6Qix3QkFBd0IwQixLQUFLLENBQUNGO1FBQ2hELE9BQU9DO0lBQ1QsRUFBRSxPQUFNRSxPQUFPO1FBQ2IsSUFBR0EsaUJBQWlCcEMsRUFBRXFDLFFBQVEsRUFBRTtZQUM5QixNQUFNQyxjQUFjRixNQUFNRyxNQUFNLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxJQUFNLEdBQUdBLEVBQUVDLElBQUksQ0FBQ0MsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFRixFQUFFbkMsT0FBTyxFQUFFLEVBQUVxQyxJQUFJLENBQUM7WUFDdEYsTUFBTSxJQUFJdkMsNEJBQTRCLENBQUMsZ0NBQWdDLEVBQUVrQyxhQUFhO1FBQ3hGO1FBQ0EsTUFBTUY7SUFDUjtBQUNGLEVBQUU7QUFFRixPQUFPLE1BQU1RLDJCQUEyQixDQUFDWCxlQUFxREEsYUFBYTtBQUUzRyxPQUFPLE1BQU1ZLG9CQUFvQixDQUFDWjtJQUNoQyxJQUFJO1FBQ0YsTUFBTWEsU0FBU0Msa0NBQWtDZDtRQUNqRCxPQUFPYTtJQUNULEVBQUUsT0FBTVYsT0FBTztRQUNiLElBQUdBLGlCQUFpQmhDLDZCQUE2QjtZQUMvQyxNQUFNZ0M7UUFDUjtRQUNBLE1BQU0sSUFBSWhDLDRCQUE0QixDQUFDLDZCQUE2QixFQUFFZ0MsaUJBQWlCL0IsUUFBUStCLE1BQU05QixPQUFPLEdBQUcsaUJBQWlCO0lBQ2xJO0FBQ0YsRUFBRTtBQUVGLE1BQU15QyxvQ0FBb0MsQ0FBQ2Q7SUFDekMsTUFBTSxFQUNKdEIsR0FBRyxFQUNIRyxJQUFJLEVBQ0pPLGNBQWMsRUFDZEMsRUFBRSxFQUNGQyxRQUFRLEVBQ1JmLElBQUksRUFDSm9CLEtBQUssRUFDTixHQUFHSztJQUVKLE1BQU1lLGNBQWM5QyxnQkFBZ0I7UUFDbEMsR0FBR0QsY0FBY2dDLGFBQWE7UUFDOUIsR0FBSSxBQUFDdEIsQ0FBQUEsT0FBT1csTUFBTVIsUUFBUU8sY0FBYSxLQUFNO1lBQUNDLElBQUl6QixjQUFjYyxPQUFPVyxNQUFNLENBQUMsY0FBYyxFQUFFUixRQUFRTyxnQkFBZ0I7UUFBQyxDQUFDO1FBQ3hILEdBQUksQUFBQ1AsQ0FBQUEsUUFBUU8sY0FBYSxLQUFNO1lBQUNBLGdCQUFnQnZCLFFBQVFnQixRQUFRTyxrQkFBa0I7UUFBRyxDQUFDO1FBQ3ZGLEdBQUlFLGFBQWEwQixhQUFhO1lBQUMxQixVQUFVLENBQUMsQ0FBQ0E7UUFBUSxDQUFDO1FBQ3BELEdBQUlmLFFBQVE7WUFBQ0EsTUFBTVQsWUFBWVMsTUFBTTtRQUFJLENBQUM7UUFDMUMsR0FBSW9CLE9BQU9zQixVQUFVO1lBQUN0QixPQUFPQSxNQUFNWSxHQUFHLENBQUMsQ0FBQ1csT0FBU2hELFVBQVVnRDtRQUFNLENBQUM7SUFDcEU7SUFFQSxPQUFPSDtBQUNUIn0=
@@ -24,20 +24,23 @@ export interface EventType {
24
24
  mentions?: any[];
25
25
  modified?: number;
26
26
  name?: string;
27
+ maxGuestsPerPersona?: number;
27
28
  postId?: string;
28
29
  reactions?: string[];
29
30
  rsvpCount?: number;
30
31
  startDate?: number;
31
32
  tags?: any[];
33
+ ticketCostCents?: number;
32
34
  type?: string;
33
35
  user?: any;
34
36
  viewCount?: number;
35
37
  [key: string]: any;
36
38
  }
37
39
  export declare class EventValidationError extends Error {
38
- field?: string | undefined;
39
- constructor(message: string, field?: string | undefined);
40
+ field?: string;
41
+ constructor(message: string, field?: string);
40
42
  }
41
43
  export declare const validateEventInput: (event: unknown) => EventType;
42
44
  export declare const formatEventOutput: (event: EventType) => EventType;
43
45
  export declare const parseEvent: (event: EventType) => EventType;
46
+ //# sourceMappingURL=eventAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/eventAdapter/eventAdapter.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IACT,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM;CAInD;AAwCD,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,SAWnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,SAAS,KAAG,SAAkB,CAAC;AAExE,eAAO,MAAM,UAAU,GAAI,OAAO,SAAS,KAAG,SAU7C,CAAC"}