@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,162 @@
1
- import{parseArangoId as U,parseId as u,parseNum as o,parseString as g}from"@nlabs/utils";import{z as t}from"zod";import{parseDocument as V,removeEmptyKeys as z}from"../arangoAdapter/arangoAdapter";import{parseImage as A}from"../imageAdapter/imageAdapter";import{parseReaktorContent as K,parseReaktorDate as G,parseReaktorType as N}from"../reaktorAdapter/reaktorAdapter";import{parseTag as O}from"../tagAdapter/tagAdapter";import{parseUser as S}from"../userAdapter/userAdapter";class l extends Error{constructor(r,i){super(r);this.field=i;this.name="EventValidationError"}}const Z=t.object({_id:t.string().optional(),_key:t.string().optional(),_rev:t.string().optional(),_oldRev:t.string().optional(),_from:t.string().optional(),_to:t.string().optional(),address:t.string().optional(),cached:t.number().optional(),content:t.string().optional(),endDate:t.number().optional(),eventId:t.string().optional(),groupId:t.string().optional(),id:t.string().optional(),images:t.array(t.any()).optional(),isGoing:t.boolean().optional(),latitude:t.number().optional(),location:t.union([t.string(),t.object({address:t.string(),latitude:t.number(),longitude:t.number()})]).optional(),longitude:t.number().optional(),mentions:t.array(t.any()).optional(),modified:t.number().optional(),name:t.string().optional(),postId:t.string().optional(),reactions:t.array(t.string()).optional(),rsvpCount:t.number().optional(),startDate:t.number().optional(),tags:t.array(t.any()).optional(),type:t.string().optional(),user:t.any().optional(),viewCount:t.number().optional()}).passthrough(),Q=e=>{try{return Z.parse(e)}catch(n){if(n instanceof t.ZodError){const r=n.issues.map(i=>`${i.path.join(".")}: ${i.message}`).join(", ");throw new l(`Event validation failed: ${r}`)}throw n}},W=e=>e,X=e=>{try{return q(e)}catch(n){throw n instanceof l?n:new l(`Event parsing failed: ${n instanceof Error?n.message:"Unknown error"}`)}},q=e=>{const{_id:n,_key:r,address:i,cached:m,content:c,endDate:v,eventId:d,groupId:y,id:f,images:b,isGoing:E,latitude:h,location:a,longitude:I,mentions:_,name:w,postId:T,reactions:D,rsvpCount:k,startDate:C,tags:x,type:j,user:R,viewCount:$}=e,p=z({...V(e),...i&&{address:g(i,160)},...m!==void 0&&{cached:o(m)},...c&&{content:K(c)},...v!==void 0&&{endDate:G(v)},...(n||f||r||d)&&{id:U(n||f||`events/${r||d}`)},...(r||d)&&{eventId:u(r||d||"")},...y&&{groupId:u(y)},...b?.length&&{images:b.map(s=>A(s))},...E!==void 0&&{isGoing:!!E},...h!==void 0&&{latitude:o(h,15)},...I!==void 0&&{longitude:o(I,15)},..._?.length&&{mentions:_.map(s=>S(s))},...w&&{name:g(w,160)},...T&&{postId:u(T)},...D?.length&&{reactions:D},...k!==void 0&&{rsvpCount:o(k)},...C!==void 0&&{startDate:G(C)},...x?.length&&{tags:x.map(s=>O(s))},...j&&{type:N(j)},...R&&{user:S(R)},...$!==void 0&&{viewCount:o($)}});return a&&typeof a=="object"&&(p.address=g(a.address,160),p.latitude=o(a.latitude,15),p.longitude=o(a.longitude,15)),p};export{l as EventValidationError,W as formatEventOutput,X as parseEvent,Q as validateEventInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL2V2ZW50QWRhcHRlci9ldmVudEFkYXB0ZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7cGFyc2VBcmFuZ29JZCwgcGFyc2VJZCwgcGFyc2VOdW0sIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuXG5pbXBvcnQge3BhcnNlRG9jdW1lbnQsIHJlbW92ZUVtcHR5S2V5c30gZnJvbSAnLi4vYXJhbmdvQWRhcHRlci9hcmFuZ29BZGFwdGVyJztcbmltcG9ydCB7cGFyc2VJbWFnZX0gZnJvbSAnLi4vaW1hZ2VBZGFwdGVyL2ltYWdlQWRhcHRlcic7XG5pbXBvcnQge3BhcnNlUmVha3RvckNvbnRlbnQsIHBhcnNlUmVha3RvckRhdGUsIHBhcnNlUmVha3RvclR5cGV9IGZyb20gJy4uL3JlYWt0b3JBZGFwdGVyL3JlYWt0b3JBZGFwdGVyJztcbmltcG9ydCB7cGFyc2VUYWd9IGZyb20gJy4uL3RhZ0FkYXB0ZXIvdGFnQWRhcHRlcic7XG5pbXBvcnQge3BhcnNlVXNlcn0gZnJvbSAnLi4vdXNlckFkYXB0ZXIvdXNlckFkYXB0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50VHlwZSB7XG4gIF9pZD86IHN0cmluZztcbiAgX2tleT86IHN0cmluZztcbiAgX3Jldj86IHN0cmluZztcbiAgX29sZFJldj86IHN0cmluZztcbiAgX2Zyb20/OiBzdHJpbmc7XG4gIF90bz86IHN0cmluZztcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgY2FjaGVkPzogbnVtYmVyO1xuICBjb250ZW50Pzogc3RyaW5nO1xuICBlbmREYXRlPzogbnVtYmVyO1xuICBldmVudElkPzogc3RyaW5nO1xuICBncm91cElkPzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgaW1hZ2VzPzogYW55W107XG4gIGlzR29pbmc/OiBib29sZWFuO1xuICBsYXRpdHVkZT86IG51bWJlcjtcbiAgbG9jYXRpb24/OiBzdHJpbmcgfCB7YWRkcmVzczogc3RyaW5nOyBsYXRpdHVkZTogbnVtYmVyOyBsb25naXR1ZGU6IG51bWJlcn07XG4gIGxvbmdpdHVkZT86IG51bWJlcjtcbiAgbWVudGlvbnM/OiBhbnlbXTtcbiAgbW9kaWZpZWQ/OiBudW1iZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHBvc3RJZD86IHN0cmluZztcbiAgcmVhY3Rpb25zPzogc3RyaW5nW107XG4gIHJzdnBDb3VudD86IG51bWJlcjtcbiAgc3RhcnREYXRlPzogbnVtYmVyO1xuICB0YWdzPzogYW55W107XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHVzZXI/OiBhbnk7XG4gIHZpZXdDb3VudD86IG51bWJlcjtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgY2xhc3MgRXZlbnRWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0V2ZW50VmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBFdmVudElucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2tleTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfcmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9vbGRSZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2Zyb206IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3RvOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGFkZHJlc3M6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgY2FjaGVkOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGNvbnRlbnQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZW5kRGF0ZTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBldmVudElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGdyb3VwSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaW1hZ2VzOiB6LmFycmF5KHouYW55KCkpLm9wdGlvbmFsKCksXG4gIGlzR29pbmc6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGxhdGl0dWRlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGxvY2F0aW9uOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm9iamVjdCh7XG4gICAgYWRkcmVzczogei5zdHJpbmcoKSxcbiAgICBsYXRpdHVkZTogei5udW1iZXIoKSxcbiAgICBsb25naXR1ZGU6IHoubnVtYmVyKClcbiAgfSldKS5vcHRpb25hbCgpLFxuICBsb25naXR1ZGU6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgbWVudGlvbnM6IHouYXJyYXkoei5hbnkoKSkub3B0aW9uYWwoKSxcbiAgbW9kaWZpZWQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwb3N0SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcmVhY3Rpb25zOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIHJzdnBDb3VudDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBzdGFydERhdGU6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgdGFnczogei5hcnJheSh6LmFueSgpKS5vcHRpb25hbCgpLFxuICB0eXBlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHVzZXI6IHouYW55KCkub3B0aW9uYWwoKSxcbiAgdmlld0NvdW50OiB6Lm51bWJlcigpLm9wdGlvbmFsKClcbn0pLnBhc3N0aHJvdWdoKCk7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUV2ZW50SW5wdXQgPSAoZXZlbnQ6IHVua25vd24pOiBFdmVudFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IEV2ZW50SW5wdXRTY2hlbWEucGFyc2UoZXZlbnQpO1xuICAgIHJldHVybiB2YWxpZGF0ZWQgYXMgRXZlbnRUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZEVycm9ycyA9IGVycm9yLmlzc3Vlcy5tYXAoKGUpID0+IGAke2UucGF0aC5qb2luKCcuJyl9OiAke2UubWVzc2FnZX1gKS5qb2luKCcsICcpO1xuICAgICAgdGhyb3cgbmV3IEV2ZW50VmFsaWRhdGlvbkVycm9yKGBFdmVudCB2YWxpZGF0aW9uIGZhaWxlZDogJHtmaWVsZEVycm9yc31gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRFdmVudE91dHB1dCA9IChldmVudDogRXZlbnRUeXBlKTogRXZlbnRUeXBlID0+IGV2ZW50O1xuXG5leHBvcnQgY29uc3QgcGFyc2VFdmVudCA9IChldmVudDogRXZlbnRUeXBlKTogRXZlbnRUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwZXJmb3JtRXZlbnRUcmFuc2Zvcm1hdGlvbihldmVudCk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2YgRXZlbnRWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXZlbnRWYWxpZGF0aW9uRXJyb3IoYEV2ZW50IHBhcnNpbmcgZmFpbGVkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfWApO1xuICB9XG59O1xuXG5jb25zdCBwZXJmb3JtRXZlbnRUcmFuc2Zvcm1hdGlvbiA9IChldmVudDogRXZlbnRUeXBlKTogRXZlbnRUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGFkZHJlc3MsXG4gICAgY2FjaGVkLFxuICAgIGNvbnRlbnQsXG4gICAgZW5kRGF0ZSxcbiAgICBldmVudElkLFxuICAgIGdyb3VwSWQsXG4gICAgaWQsXG4gICAgaW1hZ2VzLFxuICAgIGlzR29pbmcsXG4gICAgbGF0aXR1ZGUsXG4gICAgbG9jYXRpb24sXG4gICAgbG9uZ2l0dWRlLFxuICAgIG1lbnRpb25zLFxuICAgIG5hbWUsXG4gICAgcG9zdElkLFxuICAgIHJlYWN0aW9ucyxcbiAgICByc3ZwQ291bnQsXG4gICAgc3RhcnREYXRlLFxuICAgIHRhZ3MsXG4gICAgdHlwZSxcbiAgICB1c2VyLFxuICAgIHZpZXdDb3VudFxuICB9ID0gZXZlbnQ7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSByZW1vdmVFbXB0eUtleXMoe1xuICAgIC4uLnBhcnNlRG9jdW1lbnQoZXZlbnQpLFxuICAgIC4uLihhZGRyZXNzICYmIHthZGRyZXNzOiBwYXJzZVN0cmluZyhhZGRyZXNzLCAxNjApfSksXG4gICAgLi4uKGNhY2hlZCAhPT0gdW5kZWZpbmVkICYmIHtjYWNoZWQ6IHBhcnNlTnVtKGNhY2hlZCl9KSxcbiAgICAuLi4oY29udGVudCAmJiB7Y29udGVudDogcGFyc2VSZWFrdG9yQ29udGVudChjb250ZW50KX0pLFxuICAgIC4uLihlbmREYXRlICE9PSB1bmRlZmluZWQgJiYge2VuZERhdGU6IHBhcnNlUmVha3RvckRhdGUoZW5kRGF0ZSl9KSxcbiAgICAuLi4oKF9pZCB8fCBpZCB8fCBfa2V5IHx8IGV2ZW50SWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgYGV2ZW50cy8ke19rZXkgfHwgZXZlbnRJZH1gKX0pLFxuICAgIC4uLigoX2tleSB8fCBldmVudElkKSAmJiB7ZXZlbnRJZDogcGFyc2VJZChfa2V5IHx8IGV2ZW50SWQgfHwgJycpfSksXG4gICAgLi4uKGdyb3VwSWQgJiYge2dyb3VwSWQ6IHBhcnNlSWQoZ3JvdXBJZCl9KSxcbiAgICAuLi4oaW1hZ2VzPy5sZW5ndGggJiYge2ltYWdlczogaW1hZ2VzLm1hcCgoaW1hZ2UpID0+IHBhcnNlSW1hZ2UoaW1hZ2UpKX0pLFxuICAgIC4uLihpc0dvaW5nICE9PSB1bmRlZmluZWQgJiYge2lzR29pbmc6ICEhaXNHb2luZ30pLFxuICAgIC4uLihsYXRpdHVkZSAhPT0gdW5kZWZpbmVkICYmIHtsYXRpdHVkZTogcGFyc2VOdW0obGF0aXR1ZGUsIDE1KX0pLFxuICAgIC4uLihsb25naXR1ZGUgIT09IHVuZGVmaW5lZCAmJiB7bG9uZ2l0dWRlOiBwYXJzZU51bShsb25naXR1ZGUsIDE1KX0pLFxuICAgIC4uLihtZW50aW9ucz8ubGVuZ3RoICYmIHttZW50aW9uczogbWVudGlvbnMubWFwKChtZW50aW9uKSA9PiBwYXJzZVVzZXIobWVudGlvbikpfSksXG4gICAgLi4uKG5hbWUgJiYge25hbWU6IHBhcnNlU3RyaW5nKG5hbWUsIDE2MCl9KSxcbiAgICAuLi4ocG9zdElkICYmIHtwb3N0SWQ6IHBhcnNlSWQocG9zdElkKX0pLFxuICAgIC4uLihyZWFjdGlvbnM/Lmxlbmd0aCAmJiB7cmVhY3Rpb25zfSksXG4gICAgLi4uKHJzdnBDb3VudCAhPT0gdW5kZWZpbmVkICYmIHtyc3ZwQ291bnQ6IHBhcnNlTnVtKHJzdnBDb3VudCl9KSxcbiAgICAuLi4oc3RhcnREYXRlICE9PSB1bmRlZmluZWQgJiYge3N0YXJ0RGF0ZTogcGFyc2VSZWFrdG9yRGF0ZShzdGFydERhdGUpfSksXG4gICAgLi4uKHRhZ3M/Lmxlbmd0aCAmJiB7dGFnczogdGFncy5tYXAoKHRhZykgPT4gcGFyc2VUYWcodGFnKSl9KSxcbiAgICAuLi4odHlwZSAmJiB7dHlwZTogcGFyc2VSZWFrdG9yVHlwZSh0eXBlKX0pLFxuICAgIC4uLih1c2VyICYmIHt1c2VyOiBwYXJzZVVzZXIodXNlcil9KSxcbiAgICAuLi4odmlld0NvdW50ICE9PSB1bmRlZmluZWQgJiYge3ZpZXdDb3VudDogcGFyc2VOdW0odmlld0NvdW50KX0pXG4gIH0pO1xuXG4gIC8vIEhhbmRsZSBsb2NhdGlvbiBvYmplY3RcbiAgaWYobG9jYXRpb24gJiYgdHlwZW9mIGxvY2F0aW9uID09PSAnb2JqZWN0Jykge1xuICAgIHRyYW5zZm9ybWVkLmFkZHJlc3MgPSBwYXJzZVN0cmluZyhsb2NhdGlvbi5hZGRyZXNzLCAxNjApO1xuICAgIHRyYW5zZm9ybWVkLmxhdGl0dWRlID0gcGFyc2VOdW0obG9jYXRpb24ubGF0aXR1ZGUsIDE1KTtcbiAgICB0cmFuc2Zvcm1lZC5sb25naXR1ZGUgPSBwYXJzZU51bShsb2NhdGlvbi5sb25naXR1ZGUsIDE1KTtcbiAgfVxuXG4gIHJldHVybiB0cmFuc2Zvcm1lZDtcbn07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsT0FBUSxpQkFBQUEsRUFBZSxXQUFBQyxFQUFTLFlBQUFDLEVBQVUsZUFBQUMsTUFBa0IsZUFDNUQsT0FBUSxLQUFBQyxNQUFRLE1BRWhCLE9BQVEsaUJBQUFDLEVBQWUsbUJBQUFDLE1BQXNCLGlDQUM3QyxPQUFRLGNBQUFDLE1BQWlCLCtCQUN6QixPQUFRLHVCQUFBQyxFQUFxQixvQkFBQUMsRUFBa0Isb0JBQUFDLE1BQXVCLG1DQUN0RSxPQUFRLFlBQUFDLE1BQWUsMkJBQ3ZCLE9BQVEsYUFBQUMsTUFBZ0IsNkJBbUNqQixNQUFNQyxVQUE2QixLQUFNLENBQzlDLFlBQVlDLEVBQXdCQyxFQUFnQixDQUNsRCxNQUFNRCxDQUFPLEVBRHFCLFdBQUFDLEVBRWxDLEtBQUssS0FBTyxzQkFDZCxDQUNGLENBRUEsTUFBTUMsRUFBbUJaLEVBQUUsT0FBTyxDQUNoQyxJQUFLQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQ3pCLEtBQU1BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDMUIsS0FBTUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMxQixRQUFTQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzdCLE1BQU9BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDM0IsSUFBS0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUN6QixRQUFTQSxFQUFF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VSxDQUFDLEtBQU1BLEVBQUssSUFBS08sR0FBUXpDLEVBQVN5QyxDQUFHLENBQUMsQ0FBQyxFQUMzRCxHQUFJTixHQUFRLENBQUMsS0FBTXBDLEVBQWlCb0MsQ0FBSSxDQUFDLEVBQ3pDLEdBQUlDLEdBQVEsQ0FBQyxLQUFNbkMsRUFBVW1DLENBQUksQ0FBQyxFQUNsQyxHQUFJQyxJQUFjLFFBQWEsQ0FBQyxVQUFXOUMsRUFBUzhDLENBQVMsQ0FBQyxDQUNoRSxDQUFDLEVBR0QsT0FBR1gsR0FBWSxPQUFPQSxHQUFhLFdBQ2pDWSxFQUFZLFFBQVU5QyxFQUFZa0MsRUFBUyxRQUFTLEdBQUcsRUFDdkRZLEVBQVksU0FBVy9DLEVBQVNtQyxFQUFTLFNBQVUsRUFBRSxFQUNyRFksRUFBWSxVQUFZL0MsRUFBU21DLEVBQVMsVUFBVyxFQUFFLEdBR2xEWSxDQUNUIiwKICAibmFtZXMiOiBbInBhcnNlQXJhbmdvSWQiLCAicGFyc2VJZCIsICJwYXJzZU51bSIsICJwYXJzZVN0cmluZyIsICJ6IiwgInBhcnNlRG9jdW1lbnQiLCAicmVtb3ZlRW1wdHlLZXlzIiwgInBhcnNlSW1hZ2UiLCAicGFyc2VSZWFrdG9yQ29udGVudCIsICJwYXJzZVJlYWt0b3JEYXRlIiwgInBhcnNlUmVha3RvclR5cGUiLCAicGFyc2VUYWciLCAicGFyc2VVc2VyIiwgIkV2ZW50VmFsaWRhdGlvbkVycm9yIiwgIm1lc3NhZ2UiLCAiZmllbGQiLCAiRXZlbnRJbnB1dFNjaGVtYSIsICJ2YWxpZGF0ZUV2ZW50SW5wdXQiLCAiZXZlbnQiLCAiZXJyb3IiLCAiZmllbGRFcnJvcnMiLCAiZSIsICJmb3JtYXRFdmVudE91dHB1dCIsICJwYXJzZUV2ZW50IiwgInBlcmZvcm1FdmVudFRyYW5zZm9ybWF0aW9uIiwgIl9pZCIsICJfa2V5IiwgImFkZHJlc3MiLCAiY2FjaGVkIiwgImNvbnRlbnQiLCAiZW5kRGF0ZSIsICJldmVudElkIiwgImdyb3VwSWQiLCAiaWQiLCAiaW1hZ2VzIiwgImlzR29pbmciLCAibGF0aXR1ZGUiLCAibG9jYXRpb24iLCAibG9uZ2l0dWRlIiwgIm1lbnRpb25zIiwgIm5hbWUiLCAicG9zdElkIiwgInJlYWN0aW9ucyIsICJyc3ZwQ291bnQiLCAic3RhcnREYXRlIiwgInRhZ3MiLCAidHlwZSIsICJ1c2VyIiwgInZpZXdDb3VudCIsICJ0cmFuc2Zvcm1lZCIsICJpbWFnZSIsICJtZW50aW9uIiwgInRhZyJdCn0K
1
+ import { parseArangoId, parseId, parseNum, parseString } from '@nlabs/utils';
2
+ import { z } from 'zod';
3
+ import { parseDocument, removeEmptyKeys } from '../arangoAdapter/arangoAdapter.js';
4
+ import { parseImage } from '../imageAdapter/imageAdapter.js';
5
+ import { parseReaktorContent, parseReaktorDate, parseReaktorType } from '../reaktorAdapter/reaktorAdapter.js';
6
+ import { parseTag } from '../tagAdapter/tagAdapter.js';
7
+ import { parseUser } from '../userAdapter/userAdapter.js';
8
+ export class EventValidationError extends Error {
9
+ field;
10
+ constructor(message, field){
11
+ super(message), this.field = field;
12
+ this.name = 'EventValidationError';
13
+ }
14
+ }
15
+ const EventInputSchema = z.object({
16
+ _id: z.string().optional(),
17
+ _key: z.string().optional(),
18
+ _rev: z.string().optional(),
19
+ _oldRev: z.string().optional(),
20
+ _from: z.string().optional(),
21
+ _to: z.string().optional(),
22
+ address: z.string().optional(),
23
+ cached: z.number().optional(),
24
+ content: z.string().optional(),
25
+ endDate: z.number().optional(),
26
+ eventId: z.string().optional(),
27
+ groupId: z.string().optional(),
28
+ id: z.string().optional(),
29
+ images: z.array(z.any()).optional(),
30
+ isGoing: z.boolean().optional(),
31
+ latitude: z.number().optional(),
32
+ location: z.union([
33
+ z.string(),
34
+ z.object({
35
+ address: z.string(),
36
+ latitude: z.number(),
37
+ longitude: z.number()
38
+ })
39
+ ]).optional(),
40
+ longitude: z.number().optional(),
41
+ mentions: z.array(z.any()).optional(),
42
+ modified: z.number().optional(),
43
+ name: z.string().optional(),
44
+ maxGuestsPerPersona: z.number().optional(),
45
+ postId: z.string().optional(),
46
+ reactions: z.array(z.string()).optional(),
47
+ rsvpCount: z.number().optional(),
48
+ startDate: z.number().optional(),
49
+ tags: z.array(z.any()).optional(),
50
+ ticketCostCents: z.number().optional(),
51
+ type: z.string().optional(),
52
+ user: z.any().optional(),
53
+ viewCount: z.number().optional()
54
+ }).loose();
55
+ export const validateEventInput = (event)=>{
56
+ try {
57
+ const validated = EventInputSchema.parse(event);
58
+ return validated;
59
+ } catch (error) {
60
+ if (error instanceof z.ZodError) {
61
+ const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
62
+ throw new EventValidationError(`Event validation failed: ${fieldErrors}`);
63
+ }
64
+ throw error;
65
+ }
66
+ };
67
+ export const formatEventOutput = (event)=>event;
68
+ export const parseEvent = (event)=>{
69
+ try {
70
+ const parsed = performEventTransformation(event);
71
+ return parsed;
72
+ } catch (error) {
73
+ if (error instanceof EventValidationError) {
74
+ throw error;
75
+ }
76
+ throw new EventValidationError(`Event parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
77
+ }
78
+ };
79
+ const performEventTransformation = (event)=>{
80
+ const { _id, _key, address, cached, content, endDate, eventId, groupId, id, images, isGoing, latitude, location, longitude, mentions, name, maxGuestsPerPersona, postId, reactions, rsvpCount, startDate, tags, ticketCostCents, type, user, viewCount } = event;
81
+ const transformed = removeEmptyKeys({
82
+ ...parseDocument(event),
83
+ ...address && {
84
+ address: parseString(address, 160)
85
+ },
86
+ ...cached !== undefined && {
87
+ cached: parseNum(cached)
88
+ },
89
+ ...content && {
90
+ content: parseReaktorContent(content)
91
+ },
92
+ ...endDate !== undefined && {
93
+ endDate: parseReaktorDate(endDate)
94
+ },
95
+ ...(_id || id || _key || eventId) && {
96
+ id: parseArangoId(_id || id || `events/${_key || eventId}`)
97
+ },
98
+ ...(_key || eventId) && {
99
+ eventId: parseId(_key || eventId || '')
100
+ },
101
+ ...groupId && {
102
+ groupId: parseId(groupId)
103
+ },
104
+ ...images?.length && {
105
+ images: images.map((image)=>parseImage(image))
106
+ },
107
+ ...isGoing !== undefined && {
108
+ isGoing: !!isGoing
109
+ },
110
+ ...latitude !== undefined && {
111
+ latitude: parseNum(latitude, 15)
112
+ },
113
+ ...longitude !== undefined && {
114
+ longitude: parseNum(longitude, 15)
115
+ },
116
+ ...mentions?.length && {
117
+ mentions: mentions.map((mention)=>parseUser(mention))
118
+ },
119
+ ...name && {
120
+ name: parseString(name, 160)
121
+ },
122
+ ...maxGuestsPerPersona !== undefined && {
123
+ maxGuestsPerPersona: parseNum(maxGuestsPerPersona)
124
+ },
125
+ ...postId && {
126
+ postId: parseId(postId)
127
+ },
128
+ ...reactions?.length && {
129
+ reactions
130
+ },
131
+ ...rsvpCount !== undefined && {
132
+ rsvpCount: parseNum(rsvpCount)
133
+ },
134
+ ...startDate !== undefined && {
135
+ startDate: parseReaktorDate(startDate)
136
+ },
137
+ ...tags?.length && {
138
+ tags: tags.map((tag)=>parseTag(tag))
139
+ },
140
+ ...ticketCostCents !== undefined && {
141
+ ticketCostCents: parseNum(ticketCostCents)
142
+ },
143
+ ...type && {
144
+ type: parseReaktorType(type)
145
+ },
146
+ ...user && {
147
+ user: parseUser(user)
148
+ },
149
+ ...viewCount !== undefined && {
150
+ viewCount: parseNum(viewCount)
151
+ }
152
+ });
153
+ // Handle location object
154
+ if (location && typeof location === 'object') {
155
+ transformed.address = parseString(location.address, 160);
156
+ transformed.latitude = parseNum(location.latitude, 15);
157
+ transformed.longitude = parseNum(location.longitude, 15);
158
+ }
159
+ return transformed;
160
+ };
161
+
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvZXZlbnRBZGFwdGVyL2V2ZW50QWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZUFyYW5nb0lkLCBwYXJzZUlkLCBwYXJzZU51bSwgcGFyc2VTdHJpbmcgfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7IHBhcnNlRG9jdW1lbnQsIHJlbW92ZUVtcHR5S2V5cyB9IGZyb20gJy4uL2FyYW5nb0FkYXB0ZXIvYXJhbmdvQWRhcHRlci5qcyc7XG5pbXBvcnQgeyBwYXJzZUltYWdlIH0gZnJvbSAnLi4vaW1hZ2VBZGFwdGVyL2ltYWdlQWRhcHRlci5qcyc7XG5pbXBvcnQgeyBwYXJzZVJlYWt0b3JDb250ZW50LCBwYXJzZVJlYWt0b3JEYXRlLCBwYXJzZVJlYWt0b3JUeXBlIH0gZnJvbSAnLi4vcmVha3RvckFkYXB0ZXIvcmVha3RvckFkYXB0ZXIuanMnO1xuaW1wb3J0IHsgcGFyc2VUYWcgfSBmcm9tICcuLi90YWdBZGFwdGVyL3RhZ0FkYXB0ZXIuanMnO1xuaW1wb3J0IHsgcGFyc2VVc2VyIH0gZnJvbSAnLi4vdXNlckFkYXB0ZXIvdXNlckFkYXB0ZXIuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50VHlwZSB7XG4gIF9pZD86IHN0cmluZztcbiAgX2tleT86IHN0cmluZztcbiAgX3Jldj86IHN0cmluZztcbiAgX29sZFJldj86IHN0cmluZztcbiAgX2Zyb20/OiBzdHJpbmc7XG4gIF90bz86IHN0cmluZztcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgY2FjaGVkPzogbnVtYmVyO1xuICBjb250ZW50Pzogc3RyaW5nO1xuICBlbmREYXRlPzogbnVtYmVyO1xuICBldmVudElkPzogc3RyaW5nO1xuICBncm91cElkPzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgaW1hZ2VzPzogYW55W107XG4gIGlzR29pbmc/OiBib29sZWFuO1xuICBsYXRpdHVkZT86IG51bWJlcjtcbiAgbG9jYXRpb24/OiBzdHJpbmcgfCB7YWRkcmVzczogc3RyaW5nOyBsYXRpdHVkZTogbnVtYmVyOyBsb25naXR1ZGU6IG51bWJlcn07XG4gIGxvbmdpdHVkZT86IG51bWJlcjtcbiAgbWVudGlvbnM/OiBhbnlbXTtcbiAgbW9kaWZpZWQ/OiBudW1iZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIG1heEd1ZXN0c1BlclBlcnNvbmE/OiBudW1iZXI7XG4gIHBvc3RJZD86IHN0cmluZztcbiAgcmVhY3Rpb25zPzogc3RyaW5nW107XG4gIHJzdnBDb3VudD86IG51bWJlcjtcbiAgc3RhcnREYXRlPzogbnVtYmVyO1xuICB0YWdzPzogYW55W107XG4gIHRpY2tldENvc3RDZW50cz86IG51bWJlcjtcbiAgdHlwZT86IHN0cmluZztcbiAgdXNlcj86IGFueTtcbiAgdmlld0NvdW50PzogbnVtYmVyO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBFdmVudFZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnRXZlbnRWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IEV2ZW50SW5wdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIF9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfa2V5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9yZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX29sZFJldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfZnJvbTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfdG86IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYWRkcmVzczogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBjYWNoZWQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgY29udGVudDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBlbmREYXRlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGV2ZW50SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZ3JvdXBJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpbWFnZXM6IHouYXJyYXkoei5hbnkoKSkub3B0aW9uYWwoKSxcbiAgaXNHb2luZzogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgbGF0aXR1ZGU6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgbG9jYXRpb246IHoudW5pb24oW3ouc3RyaW5nKCksIHoub2JqZWN0KHtcbiAgICBhZGRyZXNzOiB6LnN0cmluZygpLFxuICAgIGxhdGl0dWRlOiB6Lm51bWJlcigpLFxuICAgIGxvbmdpdHVkZTogei5udW1iZXIoKVxuICB9KV0pLm9wdGlvbmFsKCksXG4gIGxvbmdpdHVkZTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBtZW50aW9uczogei5hcnJheSh6LmFueSgpKS5vcHRpb25hbCgpLFxuICBtb2RpZmllZDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIG1heEd1ZXN0c1BlclBlcnNvbmE6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgcG9zdElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHJlYWN0aW9uczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICByc3ZwQ291bnQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgc3RhcnREYXRlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHRhZ3M6IHouYXJyYXkoei5hbnkoKSkub3B0aW9uYWwoKSxcbiAgdGlja2V0Q29zdENlbnRzOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdXNlcjogei5hbnkoKS5vcHRpb25hbCgpLFxuICB2aWV3Q291bnQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKVxufSkubG9vc2UoKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRXZlbnRJbnB1dCA9IChldmVudDogdW5rbm93bik6IEV2ZW50VHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdmFsaWRhdGVkID0gRXZlbnRJbnB1dFNjaGVtYS5wYXJzZShldmVudCk7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBFdmVudFR5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0gZXJyb3IuaXNzdWVzLm1hcCgoZSkgPT4gYCR7ZS5wYXRoLmpvaW4oJy4nKX06ICR7ZS5tZXNzYWdlfWApLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgRXZlbnRWYWxpZGF0aW9uRXJyb3IoYEV2ZW50IHZhbGlkYXRpb24gZmFpbGVkOiAke2ZpZWxkRXJyb3JzfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdEV2ZW50T3V0cHV0ID0gKGV2ZW50OiBFdmVudFR5cGUpOiBFdmVudFR5cGUgPT4gZXZlbnQ7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUV2ZW50ID0gKGV2ZW50OiBFdmVudFR5cGUpOiBFdmVudFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBlcmZvcm1FdmVudFRyYW5zZm9ybWF0aW9uKGV2ZW50KTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiBFdmVudFZhbGlkYXRpb25FcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICAgIHRocm93IG5ldyBFdmVudFZhbGlkYXRpb25FcnJvcihgRXZlbnQgcGFyc2luZyBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCk7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1FdmVudFRyYW5zZm9ybWF0aW9uID0gKGV2ZW50OiBFdmVudFR5cGUpOiBFdmVudFR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgX2lkLFxuICAgIF9rZXksXG4gICAgYWRkcmVzcyxcbiAgICBjYWNoZWQsXG4gICAgY29udGVudCxcbiAgICBlbmREYXRlLFxuICAgIGV2ZW50SWQsXG4gICAgZ3JvdXBJZCxcbiAgICBpZCxcbiAgICBpbWFnZXMsXG4gICAgaXNHb2luZyxcbiAgICBsYXRpdHVkZSxcbiAgICBsb2NhdGlvbixcbiAgICBsb25naXR1ZGUsXG4gICAgbWVudGlvbnMsXG4gICAgbmFtZSxcbiAgICBtYXhHdWVzdHNQZXJQZXJzb25hLFxuICAgIHBvc3RJZCxcbiAgICByZWFjdGlvbnMsXG4gICAgcnN2cENvdW50LFxuICAgIHN0YXJ0RGF0ZSxcbiAgICB0YWdzLFxuICAgIHRpY2tldENvc3RDZW50cyxcbiAgICB0eXBlLFxuICAgIHVzZXIsXG4gICAgdmlld0NvdW50XG4gIH0gPSBldmVudDtcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHJlbW92ZUVtcHR5S2V5cyh7XG4gICAgLi4ucGFyc2VEb2N1bWVudChldmVudCksXG4gICAgLi4uKGFkZHJlc3MgJiYge2FkZHJlc3M6IHBhcnNlU3RyaW5nKGFkZHJlc3MsIDE2MCl9KSxcbiAgICAuLi4oY2FjaGVkICE9PSB1bmRlZmluZWQgJiYge2NhY2hlZDogcGFyc2VOdW0oY2FjaGVkKX0pLFxuICAgIC4uLihjb250ZW50ICYmIHtjb250ZW50OiBwYXJzZVJlYWt0b3JDb250ZW50KGNvbnRlbnQpfSksXG4gICAgLi4uKGVuZERhdGUgIT09IHVuZGVmaW5lZCAmJiB7ZW5kRGF0ZTogcGFyc2VSZWFrdG9yRGF0ZShlbmREYXRlKX0pLFxuICAgIC4uLigoX2lkIHx8IGlkIHx8IF9rZXkgfHwgZXZlbnRJZCkgJiYge2lkOiBwYXJzZUFyYW5nb0lkKF9pZCB8fCBpZCB8fCBgZXZlbnRzLyR7X2tleSB8fCBldmVudElkfWApfSksXG4gICAgLi4uKChfa2V5IHx8IGV2ZW50SWQpICYmIHtldmVudElkOiBwYXJzZUlkKF9rZXkgfHwgZXZlbnRJZCB8fCAnJyl9KSxcbiAgICAuLi4oZ3JvdXBJZCAmJiB7Z3JvdXBJZDogcGFyc2VJZChncm91cElkKX0pLFxuICAgIC4uLihpbWFnZXM/Lmxlbmd0aCAmJiB7aW1hZ2VzOiBpbWFnZXMubWFwKChpbWFnZSkgPT4gcGFyc2VJbWFnZShpbWFnZSkpfSksXG4gICAgLi4uKGlzR29pbmcgIT09IHVuZGVmaW5lZCAmJiB7aXNHb2luZzogISFpc0dvaW5nfSksXG4gICAgLi4uKGxhdGl0dWRlICE9PSB1bmRlZmluZWQgJiYge2xhdGl0dWRlOiBwYXJzZU51bShsYXRpdHVkZSwgMTUpfSksXG4gICAgLi4uKGxvbmdpdHVkZSAhPT0gdW5kZWZpbmVkICYmIHtsb25naXR1ZGU6IHBhcnNlTnVtKGxvbmdpdHVkZSwgMTUpfSksXG4gICAgLi4uKG1lbnRpb25zPy5sZW5ndGggJiYge21lbnRpb25zOiBtZW50aW9ucy5tYXAoKG1lbnRpb24pID0+IHBhcnNlVXNlcihtZW50aW9uKSl9KSxcbiAgICAuLi4obmFtZSAmJiB7bmFtZTogcGFyc2VTdHJpbmcobmFtZSwgMTYwKX0pLFxuICAgIC4uLihtYXhHdWVzdHNQZXJQZXJzb25hICE9PSB1bmRlZmluZWQgJiYge21heEd1ZXN0c1BlclBlcnNvbmE6IHBhcnNlTnVtKG1heEd1ZXN0c1BlclBlcnNvbmEpfSksXG4gICAgLi4uKHBvc3RJZCAmJiB7cG9zdElkOiBwYXJzZUlkKHBvc3RJZCl9KSxcbiAgICAuLi4ocmVhY3Rpb25zPy5sZW5ndGggJiYge3JlYWN0aW9uc30pLFxuICAgIC4uLihyc3ZwQ291bnQgIT09IHVuZGVmaW5lZCAmJiB7cnN2cENvdW50OiBwYXJzZU51bShyc3ZwQ291bnQpfSksXG4gICAgLi4uKHN0YXJ0RGF0ZSAhPT0gdW5kZWZpbmVkICYmIHtzdGFydERhdGU6IHBhcnNlUmVha3RvckRhdGUoc3RhcnREYXRlKX0pLFxuICAgIC4uLih0YWdzPy5sZW5ndGggJiYge3RhZ3M6IHRhZ3MubWFwKCh0YWcpID0+IHBhcnNlVGFnKHRhZykpfSksXG4gICAgLi4uKHRpY2tldENvc3RDZW50cyAhPT0gdW5kZWZpbmVkICYmIHt0aWNrZXRDb3N0Q2VudHM6IHBhcnNlTnVtKHRpY2tldENvc3RDZW50cyl9KSxcbiAgICAuLi4odHlwZSAmJiB7dHlwZTogcGFyc2VSZWFrdG9yVHlwZSh0eXBlKX0pLFxuICAgIC4uLih1c2VyICYmIHt1c2VyOiBwYXJzZVVzZXIodXNlcil9KSxcbiAgICAuLi4odmlld0NvdW50ICE9PSB1bmRlZmluZWQgJiYge3ZpZXdDb3VudDogcGFyc2VOdW0odmlld0NvdW50KX0pXG4gIH0pO1xuXG4gIC8vIEhhbmRsZSBsb2NhdGlvbiBvYmplY3RcbiAgaWYobG9jYXRpb24gJiYgdHlwZW9mIGxvY2F0aW9uID09PSAnb2JqZWN0Jykge1xuICAgIHRyYW5zZm9ybWVkLmFkZHJlc3MgPSBwYXJzZVN0cmluZyhsb2NhdGlvbi5hZGRyZXNzLCAxNjApO1xuICAgIHRyYW5zZm9ybWVkLmxhdGl0dWRlID0gcGFyc2VOdW0obG9jYXRpb24ubGF0aXR1ZGUsIDE1KTtcbiAgICB0cmFuc2Zvcm1lZC5sb25naXR1ZGUgPSBwYXJzZU51bShsb2NhdGlvbi5sb25naXR1ZGUsIDE1KTtcbiAgfVxuXG4gIHJldHVybiB0cmFuc2Zvcm1lZDtcbn07XG4iXSwibmFtZXMiOlsicGFyc2VBcmFuZ29JZCIsInBhcnNlSWQiLCJwYXJzZU51bSIsInBhcnNlU3RyaW5nIiwieiIsInBhcnNlRG9jdW1lbnQiLCJyZW1vdmVFbXB0eUtleXMiLCJwYXJzZUltYWdlIiwicGFyc2VSZWFrdG9yQ29udGVudCIsInBhcnNlUmVha3RvckRhdGUiLCJwYXJzZVJlYWt0b3JUeXBlIiwicGFyc2VUYWciLCJwYXJzZVVzZXIiLCJFdmVudFZhbGlkYXRpb25FcnJvciIsIkVycm9yIiwibWVzc2FnZSIsImZpZWxkIiwibmFtZSIsIkV2ZW50SW5wdXRTY2hlbWEiLCJvYmplY3QiLCJfaWQiLCJzdHJpbmciLCJvcHRpb25hbCIsIl9rZXkiLCJfcmV2IiwiX29sZFJldiIsIl9mcm9tIiwiX3RvIiwiYWRkcmVzcyIsImNhY2hlZCIsIm51bWJlciIsImNvbnRlbnQiLCJlbmREYXRlIiwiZXZlbnRJZCIsImdyb3VwSWQiLCJpZCIsImltYWdlcyIsImFycmF5IiwiYW55IiwiaXNHb2luZyIsImJvb2xlYW4iLCJsYXRpdHVkZSIsImxvY2F0aW9uIiwidW5pb24iLCJsb25naXR1ZGUiLCJtZW50aW9ucyIsIm1vZGlmaWVkIiwibWF4R3Vlc3RzUGVyUGVyc29uYSIsInBvc3RJZCIsInJlYWN0aW9ucyIsInJzdnBDb3VudCIsInN0YXJ0RGF0ZSIsInRhZ3MiLCJ0aWNrZXRDb3N0Q2VudHMiLCJ0eXBlIiwidXNlciIsInZpZXdDb3VudCIsImxvb3NlIiwidmFsaWRhdGVFdmVudElucHV0IiwiZXZlbnQiLCJ2YWxpZGF0ZWQiLCJwYXJzZSIsImVycm9yIiwiWm9kRXJyb3IiLCJmaWVsZEVycm9ycyIsImlzc3VlcyIsIm1hcCIsImUiLCJwYXRoIiwiam9pbiIsImZvcm1hdEV2ZW50T3V0cHV0IiwicGFyc2VFdmVudCIsInBhcnNlZCIsInBlcmZvcm1FdmVudFRyYW5zZm9ybWF0aW9uIiwidHJhbnNmb3JtZWQiLCJ1bmRlZmluZWQiLCJsZW5ndGgiLCJpbWFnZSIsIm1lbnRpb24iLCJ0YWciXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsUUFBUSxlQUFlO0FBQzdFLFNBQVNDLENBQUMsUUFBUSxNQUFNO0FBRXhCLFNBQVNDLGFBQWEsRUFBRUMsZUFBZSxRQUFRLG9DQUFvQztBQUNuRixTQUFTQyxVQUFVLFFBQVEsa0NBQWtD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
@@ -20,10 +20,11 @@ export interface FileType {
20
20
  [key: string]: any;
21
21
  }
22
22
  export declare class FileValidationError extends Error {
23
- field?: string | undefined;
24
- constructor(message: string, field?: string | undefined);
23
+ field?: string;
24
+ constructor(message: string, field?: string);
25
25
  }
26
26
  export declare const validateFileInput: (file: unknown) => FileType;
27
27
  export declare const formatFileOutput: (file: FileType) => FileType;
28
28
  export declare const getFileType: (file: FileType) => string;
29
29
  export declare const parseFile: (file: FileType) => FileType;
30
+ //# sourceMappingURL=fileAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/fileAdapter/fileAdapter.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IACR,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM;CAInD;AAsBD,eAAO,MAAM,iBAAiB,GAAI,MAAM,OAAO,KAAG,QAWjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,QAAQ,KAAG,QAAgB,CAAC;AAEnE,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAqB5C,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,MAAM,QAAQ,KAAG,QAU1C,CAAC"}
@@ -1,2 +1,118 @@
1
- import{parseArangoId as I,parseId as a,parseNum as h,parseString as T,parseUrl as _}from"@nlabs/utils";import{z as e}from"zod";import{parseDocument as b}from"../arangoAdapter/arangoAdapter";import{parseReaktorContent as w,parseReaktorType as x}from"../reaktorAdapter/reaktorAdapter";class p extends Error{constructor(t,n){super(t);this.field=n;this.name="FileValidationError"}}const k=e.object({_from:e.string().optional(),_id:e.string().optional(),_key:e.string().optional(),_oldRev:e.string().optional(),_rev:e.string().optional(),_to:e.string().optional(),base64:e.string().optional(),buffer:e.any().optional(),description:e.string().optional(),fileId:e.string().optional(),fileSize:e.number().optional(),fileType:e.string().optional(),itemId:e.string().optional(),itemType:e.string().optional(),name:e.string().optional(),url:e.string().optional(),userId:e.string().optional()}).passthrough(),A=i=>{try{return k.parse(i)}catch(r){if(r instanceof e.ZodError){const t=r.issues.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ");throw new p(`File validation failed: ${t}`)}throw r}},U=i=>i,v=i=>{const{fileType:r,name:t}=i;if(r)return T(r,16);const n=t?.split(".")||[];switch(n.length>0?n[n.length-1]:""){case"jpeg":case"jpg":return"image/jpeg";case"png":return"image/png";case"zip":return"application/zip";default:return""}},V=i=>{try{return z(i)}catch(r){throw r instanceof p?r:new p(`File parsing failed: ${r instanceof Error?r.message:"Unknown error"}`)}},z=i=>{const{_id:r,_key:t,base64:n,buffer:s,description:l,fileId:o,fileSize:g,fileType:F,id:d,itemId:f,itemType:m,name:c,url:u,userId:y}=i;return{...b(i),...n&&{base64:n},...s&&{buffer:s},...l&&{description:w(l)},...(t||o)&&{fileId:a(t||o||"")},...(r||d||t||o)&&{id:I(r||d||`files/${t||o}`)},...g!==void 0&&{fileSize:h(g)},...F&&{fileType:v(i)},...f&&{itemId:a(f)},...m&&{itemType:x(m)},...c&&{name:T(c,160)},...u&&{url:_(u)},...y&&{userId:a(y)}}};export{p as FileValidationError,U as formatFileOutput,v as getFileType,V as parseFile,A as validateFileInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL2ZpbGVBZGFwdGVyL2ZpbGVBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge3BhcnNlQXJhbmdvSWQsIHBhcnNlSWQsIHBhcnNlTnVtLCBwYXJzZVN0cmluZywgcGFyc2VVcmx9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7cGFyc2VEb2N1bWVudH0gZnJvbSAnLi4vYXJhbmdvQWRhcHRlci9hcmFuZ29BZGFwdGVyJztcbmltcG9ydCB7cGFyc2VSZWFrdG9yQ29udGVudCwgcGFyc2VSZWFrdG9yVHlwZX0gZnJvbSAnLi4vcmVha3RvckFkYXB0ZXIvcmVha3RvckFkYXB0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVUeXBlIHtcbiAgX2Zyb20/OiBzdHJpbmc7XG4gIF9pZD86IHN0cmluZztcbiAgX2tleT86IHN0cmluZztcbiAgX29sZFJldj86IHN0cmluZztcbiAgX3Jldj86IHN0cmluZztcbiAgX3RvPzogc3RyaW5nO1xuICBiYXNlNjQ/OiBzdHJpbmc7XG4gIGJ1ZmZlcj86IGFueTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGZpbGVJZD86IHN0cmluZztcbiAgZmlsZVNpemU/OiBudW1iZXI7XG4gIGZpbGVUeXBlPzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgaXRlbUlkPzogc3RyaW5nO1xuICBpdGVtVHlwZT86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICB1c2VySWQ/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEZpbGVWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0ZpbGVWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IEZpbGVJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgX2Zyb206IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX29sZFJldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfcmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBiYXNlNjQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYnVmZmVyOiB6LmFueSgpLm9wdGlvbmFsKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGZpbGVJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBmaWxlU2l6ZTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBmaWxlVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpdGVtSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaXRlbVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB1cmw6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdXNlcklkOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pLnBhc3N0aHJvdWdoKCk7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUZpbGVJbnB1dCA9IChmaWxlOiB1bmtub3duKTogRmlsZVR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IEZpbGVJbnB1dFNjaGVtYS5wYXJzZShmaWxlKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIEZpbGVUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZEVycm9ycyA9IGVycm9yLmlzc3Vlcy5tYXAoKGUpID0+IGAke2UucGF0aC5qb2luKCcuJyl9OiAke2UubWVzc2FnZX1gKS5qb2luKCcsICcpO1xuICAgICAgdGhyb3cgbmV3IEZpbGVWYWxpZGF0aW9uRXJyb3IoYEZpbGUgdmFsaWRhdGlvbiBmYWlsZWQ6ICR7ZmllbGRFcnJvcnN9YCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0RmlsZU91dHB1dCA9IChmaWxlOiBGaWxlVHlwZSk6IEZpbGVUeXBlID0+IGZpbGU7XG5cbmV4cG9ydCBjb25zdCBnZXRGaWxlVHlwZSA9IChmaWxlOiBGaWxlVHlwZSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHtmaWxlVHlwZSwgbmFtZX0gPSBmaWxlO1xuXG4gIGlmKGZpbGVUeXBlKSB7XG4gICAgcmV0dXJuIHBhcnNlU3RyaW5nKGZpbGVUeXBlLCAxNik7XG4gIH1cblxuICBjb25zdCBuYW1lQXJyOiBzdHJpbmdbXSA9IG5hbWU/LnNwbGl0KCcuJykgfHwgW107XG4gIGNvbnN0IGV4dCA9IG5hbWVBcnIubGVuZ3RoID4gMCA/IG5hbWVBcnJbbmFtZUFyci5sZW5ndGggLSAxXSA6ICcnO1xuXG4gIHN3aXRjaChleHQpIHtcbiAgICBjYXNlICdqcGVnJzpcbiAgICBjYXNlICdqcGcnOlxuICAgICAgcmV0dXJuICdpbWFnZS9qcGVnJztcbiAgICBjYXNlICdwbmcnOlxuICAgICAgcmV0dXJuICdpbWFnZS9wbmcnO1xuICAgIGNhc2UgJ3ppcCc6XG4gICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3ppcCc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnJztcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlRmlsZSA9IChmaWxlOiBGaWxlVHlwZSk6IEZpbGVUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwZXJmb3JtRmlsZVRyYW5zZm9ybWF0aW9uKGZpbGUpO1xuICAgIHJldHVybiBwYXJzZWQ7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIEZpbGVWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRmlsZVZhbGlkYXRpb25FcnJvcihgRmlsZSBwYXJzaW5nIGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gKTtcbiAgfVxufTtcblxuY29uc3QgcGVyZm9ybUZpbGVUcmFuc2Zvcm1hdGlvbiA9IChmaWxlOiBGaWxlVHlwZSk6IEZpbGVUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGJhc2U2NCxcbiAgICBidWZmZXIsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgZmlsZUlkLFxuICAgIGZpbGVTaXplLFxuICAgIGZpbGVUeXBlLFxuICAgIGlkLFxuICAgIGl0ZW1JZCxcbiAgICBpdGVtVHlwZSxcbiAgICBuYW1lLFxuICAgIHVybCxcbiAgICB1c2VySWRcbiAgfSA9IGZpbGU7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSB7XG4gICAgLi4ucGFyc2VEb2N1bWVudChmaWxlKSxcbiAgICAuLi4oYmFzZTY0ICYmIHtiYXNlNjR9KSxcbiAgICAuLi4oYnVmZmVyICYmIHtidWZmZXJ9KSxcbiAgICAuLi4oZGVzY3JpcHRpb24gJiYge2Rlc2NyaXB0aW9uOiBwYXJzZVJlYWt0b3JDb250ZW50KGRlc2NyaXB0aW9uKX0pLFxuICAgIC4uLigoX2tleSB8fCBmaWxlSWQpICYmIHtmaWxlSWQ6IHBhcnNlSWQoX2tleSB8fCBmaWxlSWQgfHwgJycpfSksXG4gICAgLi4uKChfaWQgfHwgaWQgfHwgX2tleSB8fCBmaWxlSWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgYGZpbGVzLyR7X2tleSB8fCBmaWxlSWR9YCl9KSxcbiAgICAuLi4oZmlsZVNpemUgIT09IHVuZGVmaW5lZCAmJiB7ZmlsZVNpemU6IHBhcnNlTnVtKGZpbGVTaXplKX0pLFxuICAgIC4uLihmaWxlVHlwZSAmJiB7ZmlsZVR5cGU6IGdldEZpbGVUeXBlKGZpbGUpfSksXG4gICAgLi4uKGl0ZW1JZCAmJiB7aXRlbUlkOiBwYXJzZUlkKGl0ZW1JZCl9KSxcbiAgICAuLi4oaXRlbVR5cGUgJiYge2l0ZW1UeXBlOiBwYXJzZVJlYWt0b3JUeXBlKGl0ZW1UeXBlKX0pLFxuICAgIC4uLihuYW1lICYmIHtuYW1lOiBwYXJzZVN0cmluZyhuYW1lLCAxNjApfSksXG4gICAgLi4uKHVybCAmJiB7dXJsOiBwYXJzZVVybCh1cmwpfSksXG4gICAgLi4uKHVzZXJJZCAmJiB7dXNlcklkOiBwYXJzZUlkKHVzZXJJZCl9KVxuICB9O1xuXG4gIHJldHVybiB0cmFuc2Zvcm1lZDtcbn07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsT0FBUSxpQkFBQUEsRUFBZSxXQUFBQyxFQUFTLFlBQUFDLEVBQVUsZUFBQUMsRUFBYSxZQUFBQyxNQUFlLGVBQ3RFLE9BQVEsS0FBQUMsTUFBUSxNQUVoQixPQUFRLGlCQUFBQyxNQUFvQixpQ0FDNUIsT0FBUSx1QkFBQUMsRUFBcUIsb0JBQUFDLE1BQXVCLG1DQXdCN0MsTUFBTUMsVUFBNEIsS0FBTSxDQUM3QyxZQUFZQyxFQUF3QkMsRUFBZ0IsQ0FDbEQsTUFBTUQsQ0FBTyxFQURxQixXQUFBQyxFQUVsQyxLQUFLLEtBQU8scUJBQ2QsQ0FDRixDQUVBLE1BQU1DLEVBQWtCUCxFQUFFLE9BQU8sQ0FDL0IsTUFBT0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMzQixJQUFLQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQ3pCLEtBQU1BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDMUIsUUFBU0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUM3QixLQUFNQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzFCLElBQUtBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDekIsT0FBUUEsRUFB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Q0FBUSxDQUFDLEVBQ3JELEdBQUliLEdBQVEsQ0FBQyxLQUFNbEIsRUFBWWtCLEVBQU0sR0FBRyxDQUFDLEVBQ3pDLEdBQUljLEdBQU8sQ0FBQyxJQUFLL0IsRUFBUytCLENBQUcsQ0FBQyxFQUM5QixHQUFJQyxHQUFVLENBQUMsT0FBUW5DLEVBQVFtQyxDQUFNLENBQUMsQ0FDeEMsQ0FHRiIsCiAgIm5hbWVzIjogWyJwYXJzZUFyYW5nb0lkIiwgInBhcnNlSWQiLCAicGFyc2VOdW0iLCAicGFyc2VTdHJpbmciLCAicGFyc2VVcmwiLCAieiIsICJwYXJzZURvY3VtZW50IiwgInBhcnNlUmVha3RvckNvbnRlbnQiLCAicGFyc2VSZWFrdG9yVHlwZSIsICJGaWxlVmFsaWRhdGlvbkVycm9yIiwgIm1lc3NhZ2UiLCAiZmllbGQiLCAiRmlsZUlucHV0U2NoZW1hIiwgInZhbGlkYXRlRmlsZUlucHV0IiwgImZpbGUiLCAiZXJyb3IiLCAiZmllbGRFcnJvcnMiLCAiZSIsICJmb3JtYXRGaWxlT3V0cHV0IiwgImdldEZpbGVUeXBlIiwgImZpbGVUeXBlIiwgIm5hbWUiLCAibmFtZUFyciIsICJwYXJzZUZpbGUiLCAicGVyZm9ybUZpbGVUcmFuc2Zvcm1hdGlvbiIsICJfaWQiLCAiX2tleSIsICJiYXNlNjQiLCAiYnVmZmVyIiwgImRlc2NyaXB0aW9uIiwgImZpbGVJZCIsICJmaWxlU2l6ZSIsICJpZCIsICJpdGVtSWQiLCAiaXRlbVR5cGUiLCAidXJsIiwgInVzZXJJZCJdCn0K
1
+ import { parseArangoId, parseId, parseNum, parseString, parseUrl } from '@nlabs/utils';
2
+ import { z } from 'zod';
3
+ import { parseDocument } from '../arangoAdapter/arangoAdapter.js';
4
+ import { parseReaktorContent, parseReaktorType } from '../reaktorAdapter/reaktorAdapter.js';
5
+ export class FileValidationError extends Error {
6
+ field;
7
+ constructor(message, field){
8
+ super(message), this.field = field;
9
+ this.name = 'FileValidationError';
10
+ }
11
+ }
12
+ const FileInputSchema = z.object({
13
+ _from: z.string().optional(),
14
+ _id: z.string().optional(),
15
+ _key: z.string().optional(),
16
+ _oldRev: z.string().optional(),
17
+ _rev: z.string().optional(),
18
+ _to: z.string().optional(),
19
+ base64: z.string().optional(),
20
+ buffer: z.any().optional(),
21
+ description: z.string().optional(),
22
+ fileId: z.string().optional(),
23
+ fileSize: z.number().optional(),
24
+ fileType: z.string().optional(),
25
+ itemId: z.string().optional(),
26
+ itemType: z.string().optional(),
27
+ name: z.string().optional(),
28
+ url: z.string().optional(),
29
+ userId: z.string().optional()
30
+ }).loose();
31
+ export const validateFileInput = (file)=>{
32
+ try {
33
+ const validated = FileInputSchema.parse(file);
34
+ return validated;
35
+ } catch (error) {
36
+ if (error instanceof z.ZodError) {
37
+ const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
38
+ throw new FileValidationError(`File validation failed: ${fieldErrors}`);
39
+ }
40
+ throw error;
41
+ }
42
+ };
43
+ export const formatFileOutput = (file)=>file;
44
+ export const getFileType = (file)=>{
45
+ const { fileType, name } = file;
46
+ if (fileType) {
47
+ return parseString(fileType, 16);
48
+ }
49
+ const nameArr = name?.split('.') || [];
50
+ const ext = nameArr.length > 0 ? nameArr[nameArr.length - 1] : '';
51
+ switch(ext){
52
+ case 'jpeg':
53
+ case 'jpg':
54
+ return 'image/jpeg';
55
+ case 'png':
56
+ return 'image/png';
57
+ case 'zip':
58
+ return 'application/zip';
59
+ default:
60
+ return '';
61
+ }
62
+ };
63
+ export const parseFile = (file)=>{
64
+ try {
65
+ const parsed = performFileTransformation(file);
66
+ return parsed;
67
+ } catch (error) {
68
+ if (error instanceof FileValidationError) {
69
+ throw error;
70
+ }
71
+ throw new FileValidationError(`File parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
72
+ }
73
+ };
74
+ const performFileTransformation = (file)=>{
75
+ const { _id, _key, base64, buffer, description, fileId, fileSize, fileType, id, itemId, itemType, name, url, userId } = file;
76
+ const transformed = {
77
+ ...parseDocument(file),
78
+ ...base64 && {
79
+ base64
80
+ },
81
+ ...buffer && {
82
+ buffer
83
+ },
84
+ ...description && {
85
+ description: parseReaktorContent(description)
86
+ },
87
+ ...(_key || fileId) && {
88
+ fileId: parseId(_key || fileId || '')
89
+ },
90
+ ...(_id || id || _key || fileId) && {
91
+ id: parseArangoId(_id || id || `files/${_key || fileId}`)
92
+ },
93
+ ...fileSize !== undefined && {
94
+ fileSize: parseNum(fileSize)
95
+ },
96
+ ...fileType && {
97
+ fileType: getFileType(file)
98
+ },
99
+ ...itemId && {
100
+ itemId: parseId(itemId)
101
+ },
102
+ ...itemType && {
103
+ itemType: parseReaktorType(itemType)
104
+ },
105
+ ...name && {
106
+ name: parseString(name, 160)
107
+ },
108
+ ...url && {
109
+ url: parseUrl(url)
110
+ },
111
+ ...userId && {
112
+ userId: parseId(userId)
113
+ }
114
+ };
115
+ return transformed;
116
+ };
117
+
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvZmlsZUFkYXB0ZXIvZmlsZUFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VBcmFuZ29JZCwgcGFyc2VJZCwgcGFyc2VOdW0sIHBhcnNlU3RyaW5nLCBwYXJzZVVybCB9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHsgcGFyc2VEb2N1bWVudCB9IGZyb20gJy4uL2FyYW5nb0FkYXB0ZXIvYXJhbmdvQWRhcHRlci5qcyc7XG5pbXBvcnQgeyBwYXJzZVJlYWt0b3JDb250ZW50LCBwYXJzZVJlYWt0b3JUeXBlIH0gZnJvbSAnLi4vcmVha3RvckFkYXB0ZXIvcmVha3RvckFkYXB0ZXIuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVUeXBlIHtcbiAgX2Zyb20/OiBzdHJpbmc7XG4gIF9pZD86IHN0cmluZztcbiAgX2tleT86IHN0cmluZztcbiAgX29sZFJldj86IHN0cmluZztcbiAgX3Jldj86IHN0cmluZztcbiAgX3RvPzogc3RyaW5nO1xuICBiYXNlNjQ/OiBzdHJpbmc7XG4gIGJ1ZmZlcj86IGFueTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGZpbGVJZD86IHN0cmluZztcbiAgZmlsZVNpemU/OiBudW1iZXI7XG4gIGZpbGVUeXBlPzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgaXRlbUlkPzogc3RyaW5nO1xuICBpdGVtVHlwZT86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICB1c2VySWQ/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEZpbGVWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0ZpbGVWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IEZpbGVJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgX2Zyb206IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX29sZFJldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfcmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBiYXNlNjQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYnVmZmVyOiB6LmFueSgpLm9wdGlvbmFsKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGZpbGVJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBmaWxlU2l6ZTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBmaWxlVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpdGVtSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaXRlbVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB1cmw6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdXNlcklkOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pLmxvb3NlKCk7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUZpbGVJbnB1dCA9IChmaWxlOiB1bmtub3duKTogRmlsZVR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IEZpbGVJbnB1dFNjaGVtYS5wYXJzZShmaWxlKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIEZpbGVUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZEVycm9ycyA9IGVycm9yLmlzc3Vlcy5tYXAoKGUpID0+IGAke2UucGF0aC5qb2luKCcuJyl9OiAke2UubWVzc2FnZX1gKS5qb2luKCcsICcpO1xuICAgICAgdGhyb3cgbmV3IEZpbGVWYWxpZGF0aW9uRXJyb3IoYEZpbGUgdmFsaWRhdGlvbiBmYWlsZWQ6ICR7ZmllbGRFcnJvcnN9YCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0RmlsZU91dHB1dCA9IChmaWxlOiBGaWxlVHlwZSk6IEZpbGVUeXBlID0+IGZpbGU7XG5cbmV4cG9ydCBjb25zdCBnZXRGaWxlVHlwZSA9IChmaWxlOiBGaWxlVHlwZSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHtmaWxlVHlwZSwgbmFtZX0gPSBmaWxlO1xuXG4gIGlmKGZpbGVUeXBlKSB7XG4gICAgcmV0dXJuIHBhcnNlU3RyaW5nKGZpbGVUeXBlLCAxNik7XG4gIH1cblxuICBjb25zdCBuYW1lQXJyOiBzdHJpbmdbXSA9IG5hbWU/LnNwbGl0KCcuJykgfHwgW107XG4gIGNvbnN0IGV4dCA9IG5hbWVBcnIubGVuZ3RoID4gMCA/IG5hbWVBcnJbbmFtZUFyci5sZW5ndGggLSAxXSA6ICcnO1xuXG4gIHN3aXRjaChleHQpIHtcbiAgICBjYXNlICdqcGVnJzpcbiAgICBjYXNlICdqcGcnOlxuICAgICAgcmV0dXJuICdpbWFnZS9qcGVnJztcbiAgICBjYXNlICdwbmcnOlxuICAgICAgcmV0dXJuICdpbWFnZS9wbmcnO1xuICAgIGNhc2UgJ3ppcCc6XG4gICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3ppcCc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnJztcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlRmlsZSA9IChmaWxlOiBGaWxlVHlwZSk6IEZpbGVUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwZXJmb3JtRmlsZVRyYW5zZm9ybWF0aW9uKGZpbGUpO1xuICAgIHJldHVybiBwYXJzZWQ7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIEZpbGVWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRmlsZVZhbGlkYXRpb25FcnJvcihgRmlsZSBwYXJzaW5nIGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gKTtcbiAgfVxufTtcblxuY29uc3QgcGVyZm9ybUZpbGVUcmFuc2Zvcm1hdGlvbiA9IChmaWxlOiBGaWxlVHlwZSk6IEZpbGVUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGJhc2U2NCxcbiAgICBidWZmZXIsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgZmlsZUlkLFxuICAgIGZpbGVTaXplLFxuICAgIGZpbGVUeXBlLFxuICAgIGlkLFxuICAgIGl0ZW1JZCxcbiAgICBpdGVtVHlwZSxcbiAgICBuYW1lLFxuICAgIHVybCxcbiAgICB1c2VySWRcbiAgfSA9IGZpbGU7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSB7XG4gICAgLi4ucGFyc2VEb2N1bWVudChmaWxlKSxcbiAgICAuLi4oYmFzZTY0ICYmIHtiYXNlNjR9KSxcbiAgICAuLi4oYnVmZmVyICYmIHtidWZmZXJ9KSxcbiAgICAuLi4oZGVzY3JpcHRpb24gJiYge2Rlc2NyaXB0aW9uOiBwYXJzZVJlYWt0b3JDb250ZW50KGRlc2NyaXB0aW9uKX0pLFxuICAgIC4uLigoX2tleSB8fCBmaWxlSWQpICYmIHtmaWxlSWQ6IHBhcnNlSWQoX2tleSB8fCBmaWxlSWQgfHwgJycpfSksXG4gICAgLi4uKChfaWQgfHwgaWQgfHwgX2tleSB8fCBmaWxlSWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgYGZpbGVzLyR7X2tleSB8fCBmaWxlSWR9YCl9KSxcbiAgICAuLi4oZmlsZVNpemUgIT09IHVuZGVmaW5lZCAmJiB7ZmlsZVNpemU6IHBhcnNlTnVtKGZpbGVTaXplKX0pLFxuICAgIC4uLihmaWxlVHlwZSAmJiB7ZmlsZVR5cGU6IGdldEZpbGVUeXBlKGZpbGUpfSksXG4gICAgLi4uKGl0ZW1JZCAmJiB7aXRlbUlkOiBwYXJzZUlkKGl0ZW1JZCl9KSxcbiAgICAuLi4oaXRlbVR5cGUgJiYge2l0ZW1UeXBlOiBwYXJzZVJlYWt0b3JUeXBlKGl0ZW1UeXBlKX0pLFxuICAgIC4uLihuYW1lICYmIHtuYW1lOiBwYXJzZVN0cmluZyhuYW1lLCAxNjApfSksXG4gICAgLi4uKHVybCAmJiB7dXJsOiBwYXJzZVVybCh1cmwpfSksXG4gICAgLi4uKHVzZXJJZCAmJiB7dXNlcklkOiBwYXJzZUlkKHVzZXJJZCl9KVxuICB9O1xuXG4gIHJldHVybiB0cmFuc2Zvcm1lZDtcbn07Il0sIm5hbWVzIjpbInBhcnNlQXJhbmdvSWQiLCJwYXJzZUlkIiwicGFyc2VOdW0iLCJwYXJzZVN0cmluZyIsInBhcnNlVXJsIiwieiIsInBhcnNlRG9jdW1lbnQiLCJwYXJzZVJlYWt0b3JDb250ZW50IiwicGFyc2VSZWFrdG9yVHlwZSIsIkZpbGVWYWxpZGF0aW9uRXJyb3IiLCJFcnJvciIsIm1lc3NhZ2UiLCJmaWVsZCIsIm5hbWUiLCJGaWxlSW5wdXRTY2hlbWEiLCJvYmplY3QiLCJfZnJvbSIsInN0cmluZyIsIm9wdGlvbmFsIiwiX2lkIiwiX2tleSIsIl9vbGRSZXYiLCJfcmV2IiwiX3RvIiwiYmFzZTY0IiwiYnVmZmVyIiwiYW55IiwiZGVzY3JpcHRpb24iLCJmaWxlSWQiLCJmaWxlU2l6ZSIsIm51bWJlciIsImZpbGVUeXBlIiwiaXRlbUlkIiwiaXRlbVR5cGUiLCJ1cmwiLCJ1c2VySWQiLCJsb29zZSIsInZhbGlkYXRlRmlsZUlucHV0IiwiZmlsZSIsInZhbGlkYXRlZCIsInBhcnNlIiwiZXJyb3IiLCJab2RFcnJvciIsImZpZWxkRXJyb3JzIiwiaXNzdWVzIiwibWFwIiwiZSIsInBhdGgiLCJqb2luIiwiZm9ybWF0RmlsZU91dHB1dCIsImdldEZpbGVUeXBlIiwibmFtZUFyciIsInNwbGl0IiwiZXh0IiwibGVuZ3RoIiwicGFyc2VGaWxlIiwicGFyc2VkIiwicGVyZm9ybUZpbGVUcmFuc2Zvcm1hdGlvbiIsImlkIiwidHJhbnNmb3JtZWQiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsUUFBUSxRQUFRLGVBQWU7QUFDdkYsU0FBU0MsQ0FBQyxRQUFRLE1BQU07QUFFeEIsU0FBU0MsYUFBYSxRQUFRLG9DQUFvQztBQUNsRSxTQUFTQyxtQkFBbUIsRUFBRUMsZ0JBQWdCLFFBQVEsc0NBQXNDO0FBd0I1RixPQUFPLE1BQU1DLDRCQUE0QkM7O0lBQ3ZDLFlBQVlDLE9BQWUsRUFBRSxBQUFPQyxLQUFjLENBQUU7UUFDbEQsS0FBSyxDQUFDRCxlQUQ0QkMsUUFBQUE7UUFFbEMsSUFBSSxDQUFDQyxJQUFJLEdBQUc7SUFDZDtBQUNGO0FBRUEsTUFBTUMsa0JBQWtCVCxFQUFFVSxNQUFNLENBQUM7SUFDL0JDLE9BQU9YLEVBQUVZLE1BQU0sR0FBR0MsUUFBUTtJQUMxQkMsS0FBS2QsRUFBRVksTUFBTSxHQUFHQyxRQUFRO0lBQ3hCRSxNQUFNZixFQUFFWSxNQUFNLEdBQUdDLFFBQVE7SUFDekJHLFNBQVNoQixFQUFFWSxNQUFNLEdBQUdDLFFBQVE7SUFDNUJJLE1BQU1qQixFQUFFWSxNQUFNLEdBQUdDLFFBQVE7SUFDekJLLEtBQUtsQixFQUFFWSxNQUFNLEdBQUdDLFFBQVE7SUFDeEJNLFFBQVFuQixFQUFFWSxNQUFNLEdBQUdDLFFBQVE7SUFDM0JPLFFBQVFwQixFQUFFcUIsR0FBRyxHQUFHUixRQUFRO0lBQ3hCUyxhQUFhdEIsRUFBRVksTUFBTSxHQUFHQyxRQUFRO0lBQ2hDVSxRQUFRdkIsRUFBRVksTUFBTSxHQUFHQyxRQUFRO0lBQzNCVyxVQUFVeEIs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
@@ -0,0 +1,28 @@
1
+ export interface Group {
2
+ [key: string]: any;
3
+ _id?: string;
4
+ _key?: string;
5
+ _rev?: string;
6
+ _oldRev?: string;
7
+ _from?: string;
8
+ _to?: string;
9
+ added?: number;
10
+ description?: string;
11
+ groupId?: string;
12
+ id?: string;
13
+ imageId?: string;
14
+ name?: string;
15
+ ownerId?: string;
16
+ privacy?: string;
17
+ tags?: any[];
18
+ type?: string;
19
+ updated?: number;
20
+ userCount?: number;
21
+ }
22
+ export declare class GroupValidationError extends Error {
23
+ field?: string;
24
+ constructor(message: string, field?: string);
25
+ }
26
+ export declare const validateGroupInput: (group: unknown) => Group;
27
+ export declare const parseGroup: (item: any) => Group;
28
+ //# sourceMappingURL=groupAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/groupAdapter/groupAdapter.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,KAAK;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IACT,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM;CAInD;AAsBD,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,KAWnD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,GAAG,KAAG,KAkBtC,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Copyright (c) 2026-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { parseId, parseNum, parseString } from '@nlabs/utils';
5
+ import { z } from 'zod';
6
+ import { parseDocument } from '../arangoAdapter/arangoAdapter.js';
7
+ import { parseReaktorDate, parseReaktorItemId, parseReaktorName, parseReaktorType } from '../reaktorAdapter/reaktorAdapter.js';
8
+ import { parseTag } from '../tagAdapter/tagAdapter.js';
9
+ export class GroupValidationError extends Error {
10
+ field;
11
+ constructor(message, field){
12
+ super(message), this.field = field;
13
+ this.name = 'GroupValidationError';
14
+ }
15
+ }
16
+ const GroupInputSchema = z.object({
17
+ _from: z.string().optional(),
18
+ _id: z.string().optional(),
19
+ _key: z.string().optional(),
20
+ _oldRev: z.string().optional(),
21
+ _rev: z.string().optional(),
22
+ _to: z.string().optional(),
23
+ added: z.number().optional(),
24
+ description: z.string().optional(),
25
+ groupId: z.string().optional(),
26
+ imageId: z.string().optional(),
27
+ name: z.string().optional(),
28
+ ownerId: z.string().optional(),
29
+ privacy: z.string().optional(),
30
+ tags: z.array(z.any()).optional(),
31
+ type: z.string().optional(),
32
+ updated: z.number().optional(),
33
+ userCount: z.number().optional()
34
+ }).loose();
35
+ export const validateGroupInput = (group)=>{
36
+ try {
37
+ const validated = GroupInputSchema.parse(group);
38
+ return validated;
39
+ } catch (error) {
40
+ if (error instanceof z.ZodError) {
41
+ const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
42
+ throw new GroupValidationError(`Group validation failed: ${fieldErrors}`);
43
+ }
44
+ throw error;
45
+ }
46
+ };
47
+ export const parseGroup = (item)=>{
48
+ const base = parseDocument(item);
49
+ return {
50
+ ...base,
51
+ added: parseReaktorDate(item.added),
52
+ description: parseString(item.description),
53
+ groupId: parseReaktorItemId(item.groupId),
54
+ id: parseReaktorItemId(item.id),
55
+ imageId: parseId(item.imageId),
56
+ modified: parseReaktorDate(item.modified),
57
+ name: parseReaktorName(item.name),
58
+ ownerId: parseId(item.ownerId),
59
+ privacy: parseString(item.privacy),
60
+ tags: Array.isArray(item.tags) ? item.tags.map(parseTag) : [],
61
+ type: parseReaktorType(item.type),
62
+ userCount: parseNum(item.userCount)
63
+ };
64
+ };
65
+
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvZ3JvdXBBZGFwdGVyL2dyb3VwQWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNi1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtwYXJzZUlkLCBwYXJzZU51bSwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7cGFyc2VEb2N1bWVudH0gZnJvbSAnLi4vYXJhbmdvQWRhcHRlci9hcmFuZ29BZGFwdGVyLmpzJztcbmltcG9ydCB7XG4gIHBhcnNlUmVha3RvckRhdGUsXG4gIHBhcnNlUmVha3Rvckl0ZW1JZCxcbiAgcGFyc2VSZWFrdG9yTmFtZSxcbiAgcGFyc2VSZWFrdG9yVHlwZVxufSBmcm9tICcuLi9yZWFrdG9yQWRhcHRlci9yZWFrdG9yQWRhcHRlci5qcyc7XG5pbXBvcnQge3BhcnNlVGFnfSBmcm9tICcuLi90YWdBZGFwdGVyL3RhZ0FkYXB0ZXIuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuICBfaWQ/OiBzdHJpbmc7XG4gIF9rZXk/OiBzdHJpbmc7XG4gIF9yZXY/OiBzdHJpbmc7XG4gIF9vbGRSZXY/OiBzdHJpbmc7XG4gIF9mcm9tPzogc3RyaW5nO1xuICBfdG8/OiBzdHJpbmc7XG4gIGFkZGVkPzogbnVtYmVyO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZ3JvdXBJZD86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGltYWdlSWQ/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIG93bmVySWQ/OiBzdHJpbmc7XG4gIHByaXZhY3k/OiBzdHJpbmc7XG4gIHRhZ3M/OiBhbnlbXTtcbiAgdHlwZT86IHN0cmluZztcbiAgdXBkYXRlZD86IG51bWJlcjtcbiAgdXNlckNvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgR3JvdXBWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0dyb3VwVmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBHcm91cElucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBfZnJvbTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2tleTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9yZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3RvOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGFkZGVkOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGdyb3VwSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaW1hZ2VJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIG93bmVySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcHJpdmFjeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0YWdzOiB6LmFycmF5KHouYW55KCkpLm9wdGlvbmFsKCksXG4gIHR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdXBkYXRlZDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB1c2VyQ291bnQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKVxufSkubG9vc2UoKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlR3JvdXBJbnB1dCA9IChncm91cDogdW5rbm93bik6IEdyb3VwID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBHcm91cElucHV0U2NoZW1hLnBhcnNlKGdyb3VwKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIEdyb3VwO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZEVycm9ycyA9IGVycm9yLmlzc3Vlcy5tYXAoKGUpID0+IGAke2UucGF0aC5qb2luKCcuJyl9OiAke2UubWVzc2FnZX1gKS5qb2luKCcsICcpO1xuICAgICAgdGhyb3cgbmV3IEdyb3VwVmFsaWRhdGlvbkVycm9yKGBHcm91cCB2YWxpZGF0aW9uIGZhaWxlZDogJHtmaWVsZEVycm9yc31gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUdyb3VwID0gKGl0ZW06IGFueSk6IEdyb3VwID0+IHtcbiAgY29uc3QgYmFzZSA9IHBhcnNlRG9jdW1lbnQoaXRlbSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5iYXNlLFxuICAgIGFkZGVkOiBwYXJzZVJlYWt0b3JEYXRlKGl0ZW0uYWRkZWQpLFxuICAgIGRlc2NyaXB0aW9uOiBwYXJzZVN0cmluZyhpdGVtLmRlc2NyaXB0aW9uKSxcbiAgICBncm91cElkOiBwYXJzZVJlYWt0b3JJdGVtSWQoaXRlbS5ncm91cElkKSxcbiAgICBpZDogcGFyc2VSZWFrdG9ySXRlbUlkKGl0ZW0uaWQpLFxuICAgIGltYWdlSWQ6IHBhcnNlSWQoaXRlbS5pbWFnZUlkKSxcbiAgICBtb2RpZmllZDogcGFyc2VSZWFrdG9yRGF0ZShpdGVtLm1vZGlmaWVkKSxcbiAgICBuYW1lOiBwYXJzZVJlYWt0b3JOYW1lKGl0ZW0ubmFtZSksXG4gICAgb3duZXJJZDogcGFyc2VJZChpdGVtLm93bmVySWQpLFxuICAgIHByaXZhY3k6IHBhcnNlU3RyaW5nKGl0ZW0ucHJpdmFjeSksXG4gICAgdGFnczogQXJyYXkuaXNBcnJheShpdGVtLnRhZ3MpID8gaXRlbS50YWdzLm1hcChwYXJzZVRhZykgOiBbXSxcbiAgICB0eXBlOiBwYXJzZVJlYWt0b3JUeXBlKGl0ZW0udHlwZSksXG4gICAgdXNlckNvdW50OiBwYXJzZU51bShpdGVtLnVzZXJDb3VudClcbiAgfTtcbn07XG4iXSwibmFtZXMiOlsicGFyc2VJZCIsInBhcnNlTnVtIiwicGFyc2VTdHJpbmciLCJ6IiwicGFyc2VEb2N1bWVudCIsInBhcnNlUmVha3RvckRhdGUiLCJwYXJzZVJlYWt0b3JJdGVtSWQiLCJwYXJzZVJlYWt0b3JOYW1lIiwicGFyc2VSZWFrdG9yVHlwZSIsInBhcnNlVGFnIiwiR3JvdXBWYWxpZGF0aW9uRXJyb3IiLCJFcnJvciIsIm1lc3NhZ2UiLCJmaWVsZCIsIm5hbWUiLCJHcm91cElucHV0U2NoZW1hIiwib2JqZWN0IiwiX2Zyb20iLCJzdHJpbmciLCJvcHRpb25hbCIsIl9pZCIsIl9rZXkiLCJfb2xkUmV2IiwiX3JldiIsIl90byIsImFkZGVkIiwibnVtYmVyIiwiZGVzY3JpcHRpb24iLCJncm91cElkIiwiaW1hZ2VJZCIsIm93bmVySWQiLCJwcml2YWN5IiwidGFncyIsImFycmF5IiwiYW55IiwidHlwZSIsInVwZGF0ZWQiLCJ1c2VyQ291bnQiLCJsb29zZSIsInZhbGlkYXRlR3JvdXBJbnB1dCIsImdyb3VwIiwidmFsaWRhdGVkIiwicGFyc2UiLCJlcnJvciIsIlpvZEVycm9yIiwiZmllbGRFcnJvcnMiLCJpc3N1ZXMiLCJtYXAiLCJlIiwicGF0aCIsImpvaW4iLCJwYXJzZUdyb3VwIiwiaXRlbSIsImJhc2UiLCJpZCIsIm1vZGlmaWVkIiwiQXJyYXkiLCJpc0FycmF5Il0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxPQUFPLEVBQUVDLFFB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
@@ -5,13 +5,19 @@ export interface ImageType {
5
5
  _oldRev?: string;
6
6
  _from?: string;
7
7
  _to?: string;
8
+ base64?: string;
8
9
  bucket?: string;
9
10
  color?: string;
11
+ description?: string;
12
+ file?: File;
10
13
  id?: string;
11
14
  imageId?: string;
12
15
  height?: number;
16
+ itemId?: string;
17
+ itemType?: string;
13
18
  model?: string;
14
19
  make?: string;
20
+ privacy?: string;
15
21
  s3Options?: any;
16
22
  taken?: number;
17
23
  thumb?: string;
@@ -23,9 +29,10 @@ export interface ImageType {
23
29
  [key: string]: any;
24
30
  }
25
31
  export declare class ImageValidationError extends Error {
26
- field?: string | undefined;
27
- constructor(message: string, field?: string | undefined);
32
+ field?: string;
33
+ constructor(message: string, field?: string);
28
34
  }
29
35
  export declare const validateImageInput: (image: unknown) => ImageType;
30
36
  export declare const formatImageOutput: (image: ImageType) => ImageType;
31
37
  export declare const parseImage: (image: ImageType) => ImageType;
38
+ //# sourceMappingURL=imageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/imageAdapter/imageAdapter.ts"],"names":[],"mappings":"AAKA,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,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,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;AA+BD,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"}