@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
@@ -0,0 +1,41 @@
1
+ export declare enum PermissionLevel {
2
+ GUEST = 0,
3
+ USER = 1,
4
+ MODERATOR = 2,
5
+ ADMIN = 3,
6
+ SUPER_ADMIN = 4
7
+ }
8
+ export declare const PermissionLevelNames: Record<PermissionLevel, string>;
9
+ export interface Permission {
10
+ _id?: string;
11
+ _key?: string;
12
+ _rev?: string;
13
+ _oldRev?: string;
14
+ added?: number;
15
+ description?: string;
16
+ id?: string;
17
+ level?: PermissionLevel;
18
+ name?: string;
19
+ permissionId?: string;
20
+ resource?: string;
21
+ roleId?: string;
22
+ type?: string;
23
+ updated?: number;
24
+ userId?: string;
25
+ [key: string]: any;
26
+ }
27
+ export declare class PermissionValidationError extends Error {
28
+ field?: string;
29
+ constructor(message: string, field?: string);
30
+ }
31
+ export declare const validatePermissionInput: (permission: unknown) => Permission;
32
+ export declare const formatPermissionOutput: (permission: Permission) => Permission;
33
+ export declare const parsePermission: (permission: Permission) => Permission;
34
+ export declare const hasPermission: (userLevel: number, requiredLevel: PermissionLevel) => boolean;
35
+ export declare const getPermissionLevelName: (level: number) => string;
36
+ export declare const isGuest: (userLevel: number) => boolean;
37
+ export declare const isUser: (userLevel: number) => boolean;
38
+ export declare const isModerator: (userLevel: number) => boolean;
39
+ export declare const isAdmin: (userLevel: number) => boolean;
40
+ export declare const isSuperAdmin: (userLevel: number) => boolean;
41
+ //# sourceMappingURL=permissionAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissionAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/permissionAdapter/permissionAdapter.ts"],"names":[],"mappings":"AAMA,oBAAY,eAAe;IACzB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,SAAS,IAAI;IACb,KAAK,IAAI;IACT,WAAW,IAAI;CAChB;AAED,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAMhE,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IACd,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM;CAInD;AAoBD,eAAO,MAAM,uBAAuB,GAAI,YAAY,OAAO,KAAG,UAW7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,YAAY,UAAU,KAAG,UAAwB,CAAC;AAEzF,eAAO,MAAM,eAAe,GAAI,YAAY,UAAU,KAAG,UAYxD,CAAC;AAuCF,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,EAAE,eAAe,eAAe,KAAG,OAEjF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,KAAG,MAEtD,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,WAAW,MAAM,KAAG,OAA8C,CAAC;AAC3F,eAAO,MAAM,MAAM,GAAI,WAAW,MAAM,KAAG,OAA4C,CAAC;AACxF,eAAO,MAAM,WAAW,GAAI,WAAW,MAAM,KAAG,OAAiD,CAAC;AAClG,eAAO,MAAM,OAAO,GAAI,WAAW,MAAM,KAAG,OAA6C,CAAC;AAC1F,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,OAAmD,CAAC"}
@@ -0,0 +1,120 @@
1
+ import { parseArangoId, parseNum, parseString, parseVarChar } from '@nlabs/utils';
2
+ import { z } from 'zod';
3
+ import { parseDocument, removeEmptyKeys } from '../arangoAdapter/arangoAdapter.js';
4
+ import { parseReaktorDate, parseReaktorItemId, parseReaktorName } from '../reaktorAdapter/reaktorAdapter.js';
5
+ export var PermissionLevel = /*#__PURE__*/ function(PermissionLevel) {
6
+ PermissionLevel[PermissionLevel["GUEST"] = 0] = "GUEST";
7
+ PermissionLevel[PermissionLevel["USER"] = 1] = "USER";
8
+ PermissionLevel[PermissionLevel["MODERATOR"] = 2] = "MODERATOR";
9
+ PermissionLevel[PermissionLevel["ADMIN"] = 3] = "ADMIN";
10
+ PermissionLevel[PermissionLevel["SUPER_ADMIN"] = 4] = "SUPER_ADMIN";
11
+ return PermissionLevel;
12
+ }({});
13
+ export const PermissionLevelNames = {
14
+ [0]: 'Guest',
15
+ [1]: 'User',
16
+ [2]: 'Moderator',
17
+ [3]: 'Admin',
18
+ [4]: 'Super Admin'
19
+ };
20
+ export class PermissionValidationError extends Error {
21
+ field;
22
+ constructor(message, field){
23
+ super(message), this.field = field;
24
+ this.name = 'PermissionValidationError';
25
+ }
26
+ }
27
+ const PermissionInputSchema = z.object({
28
+ _id: z.string().optional(),
29
+ _key: z.string().optional(),
30
+ _rev: z.string().optional(),
31
+ _oldRev: z.string().optional(),
32
+ added: z.number().optional(),
33
+ description: z.string().max(512).optional(),
34
+ id: z.string().optional(),
35
+ level: z.number().min(0).max(4).optional(),
36
+ name: z.string().max(160).optional(),
37
+ permissionId: z.string().optional(),
38
+ resource: z.string().max(160).optional(),
39
+ roleId: z.string().optional(),
40
+ type: z.string().max(160).optional(),
41
+ updated: z.number().optional(),
42
+ userId: z.string().optional()
43
+ }).loose();
44
+ export const validatePermissionInput = (permission)=>{
45
+ try {
46
+ const validated = PermissionInputSchema.parse(permission);
47
+ return validated;
48
+ } catch (error) {
49
+ if (error instanceof z.ZodError) {
50
+ const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
51
+ throw new PermissionValidationError(`Permission validation failed: ${fieldErrors}`);
52
+ }
53
+ throw error;
54
+ }
55
+ };
56
+ export const formatPermissionOutput = (permission)=>permission;
57
+ export const parsePermission = (permission)=>{
58
+ try {
59
+ const parsed = performPermissionTransformation(permission);
60
+ return parsed;
61
+ } catch (error) {
62
+ if (error instanceof PermissionValidationError) {
63
+ throw error;
64
+ }
65
+ throw new PermissionValidationError(`Permission parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
66
+ }
67
+ };
68
+ const performPermissionTransformation = (permission)=>{
69
+ const { _id, _key, added, description, id, level, name, permissionId, resource, roleId, type, updated, userId } = permission;
70
+ const transformed = removeEmptyKeys({
71
+ ...parseDocument(permission),
72
+ ...(_id || id || _key || permissionId) && {
73
+ id: parseArangoId(_id || id || `permissions/${_key || permissionId}`)
74
+ },
75
+ ...added && {
76
+ added: parseReaktorDate(added)
77
+ },
78
+ ...description && {
79
+ description: parseString(description)
80
+ },
81
+ ...level !== undefined && {
82
+ level: parseNum(level)
83
+ },
84
+ ...name && {
85
+ name: parseReaktorName(name)
86
+ },
87
+ ...permissionId && {
88
+ permissionId: parseReaktorItemId(permissionId)
89
+ },
90
+ ...resource && {
91
+ resource: parseVarChar(resource, 160)
92
+ },
93
+ ...roleId && {
94
+ roleId: parseReaktorItemId(roleId)
95
+ },
96
+ ...type && {
97
+ type: parseVarChar(type, 160)
98
+ },
99
+ ...updated && {
100
+ updated: parseReaktorDate(updated)
101
+ },
102
+ ...userId && {
103
+ userId: parseReaktorItemId(userId)
104
+ }
105
+ });
106
+ return transformed;
107
+ };
108
+ export const hasPermission = (userLevel, requiredLevel)=>{
109
+ return userLevel >= requiredLevel;
110
+ };
111
+ export const getPermissionLevelName = (level)=>{
112
+ return PermissionLevelNames[level] || 'Unknown';
113
+ };
114
+ export const isGuest = (userLevel)=>userLevel === 0;
115
+ export const isUser = (userLevel)=>userLevel >= 1;
116
+ export const isModerator = (userLevel)=>userLevel >= 2;
117
+ export const isAdmin = (userLevel)=>userLevel >= 3;
118
+ export const isSuperAdmin = (userLevel)=>userLevel >= 4;
119
+
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvcGVybWlzc2lvbkFkYXB0ZXIvcGVybWlzc2lvbkFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwYXJzZUFyYW5nb0lkLCBwYXJzZUlkLCBwYXJzZU51bSwgcGFyc2VTdHJpbmcsIHBhcnNlVmFyQ2hhcn0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtwYXJzZURvY3VtZW50LCByZW1vdmVFbXB0eUtleXN9IGZyb20gJy4uL2FyYW5nb0FkYXB0ZXIvYXJhbmdvQWRhcHRlci5qcyc7XG5pbXBvcnQge3BhcnNlUmVha3RvckRhdGUsIHBhcnNlUmVha3Rvckl0ZW1JZCwgcGFyc2VSZWFrdG9yTmFtZX0gZnJvbSAnLi4vcmVha3RvckFkYXB0ZXIvcmVha3RvckFkYXB0ZXIuanMnO1xuXG5leHBvcnQgZW51bSBQZXJtaXNzaW9uTGV2ZWwge1xuICBHVUVTVCA9IDAsXG4gIFVTRVIgPSAxLFxuICBNT0RFUkFUT1IgPSAyLFxuICBBRE1JTiA9IDMsXG4gIFNVUEVSX0FETUlOID0gNFxufVxuXG5leHBvcnQgY29uc3QgUGVybWlzc2lvbkxldmVsTmFtZXM6IFJlY29yZDxQZXJtaXNzaW9uTGV2ZWwsIHN0cmluZz4gPSB7XG4gIFtQZXJtaXNzaW9uTGV2ZWwuR1VFU1RdOiAnR3Vlc3QnLFxuICBbUGVybWlzc2lvbkxldmVsLlVTRVJdOiAnVXNlcicsXG4gIFtQZXJtaXNzaW9uTGV2ZWwuTU9ERVJBVE9SXTogJ01vZGVyYXRvcicsXG4gIFtQZXJtaXNzaW9uTGV2ZWwuQURNSU5dOiAnQWRtaW4nLFxuICBbUGVybWlzc2lvbkxldmVsLlNVUEVSX0FETUlOXTogJ1N1cGVyIEFkbWluJ1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uIHtcbiAgX2lkPzogc3RyaW5nO1xuICBfa2V5Pzogc3RyaW5nO1xuICBfcmV2Pzogc3RyaW5nO1xuICBfb2xkUmV2Pzogc3RyaW5nO1xuICBhZGRlZD86IG51bWJlcjtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBsZXZlbD86IFBlcm1pc3Npb25MZXZlbDtcbiAgbmFtZT86IHN0cmluZztcbiAgcGVybWlzc2lvbklkPzogc3RyaW5nO1xuICByZXNvdXJjZT86IHN0cmluZztcbiAgcm9sZUlkPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICB1cGRhdGVkPzogbnVtYmVyO1xuICB1c2VySWQ/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25WYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ1Blcm1pc3Npb25WYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IFBlcm1pc3Npb25JbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGFkZGVkOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm1heCg1MTIpLm9wdGlvbmFsKCksXG4gIGlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGxldmVsOiB6Lm51bWJlcigpLm1pbigwKS5tYXgoNCkub3B0aW9uYWwoKSxcbiAgbmFtZTogei5zdHJpbmcoKS5tYXgoMTYwKS5vcHRpb25hbCgpLFxuICBwZXJtaXNzaW9uSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcmVzb3VyY2U6IHouc3RyaW5nKCkubWF4KDE2MCkub3B0aW9uYWwoKSxcbiAgcm9sZUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHR5cGU6IHouc3RyaW5nKCkubWF4KDE2MCkub3B0aW9uYWwoKSxcbiAgdXBkYXRlZDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKVxufSkubG9vc2UoKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUGVybWlzc2lvbklucHV0ID0gKHBlcm1pc3Npb246IHVua25vd24pOiBQZXJtaXNzaW9uID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBQZXJtaXNzaW9uSW5wdXRTY2hlbWEucGFyc2UocGVybWlzc2lvbik7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBQZXJtaXNzaW9uO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0gZXJyb3IuaXNzdWVzLm1hcCgoZSkgPT4gYCR7ZS5wYXRoLmpvaW4oJy4nKX06ICR7ZS5tZXNzYWdlfWApLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgUGVybWlzc2lvblZhbGlkYXRpb25FcnJvcihgUGVybWlzc2lvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHtmaWVsZEVycm9yc31gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRQZXJtaXNzaW9uT3V0cHV0ID0gKHBlcm1pc3Npb246IFBlcm1pc3Npb24pOiBQZXJtaXNzaW9uID0+IHBlcm1pc3Npb247XG5cbmV4cG9ydCBjb25zdCBwYXJzZVBlcm1pc3Npb24gPSAocGVybWlzc2lvbjogUGVybWlzc2lvbik6IFBlcm1pc3Npb24gPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBlcmZvcm1QZXJtaXNzaW9uVHJhbnNmb3JtYXRpb24ocGVybWlzc2lvbik7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBQZXJtaXNzaW9uVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFBlcm1pc3Npb25WYWxpZGF0aW9uRXJyb3IoXG4gICAgICBgUGVybWlzc2lvbiBwYXJzaW5nIGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gXG4gICAgKTtcbiAgfVxufTtcblxuY29uc3QgcGVyZm9ybVBlcm1pc3Npb25UcmFuc2Zvcm1hdGlvbiA9IChwZXJtaXNzaW9uOiBQZXJtaXNzaW9uKTogUGVybWlzc2lvbiA9PiB7XG4gIGNvbnN0IHtcbiAgICBfaWQsXG4gICAgX2tleSxcbiAgICBhZGRlZCxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBpZCxcbiAgICBsZXZlbCxcbiAgICBuYW1lLFxuICAgIHBlcm1pc3Npb25JZCxcbiAgICByZXNvdXJjZSxcbiAgICByb2xlSWQsXG4gICAgdHlwZSxcbiAgICB1cGRhdGVkLFxuICAgIHVzZXJJZFxuICB9ID0gcGVybWlzc2lvbjtcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHJlbW92ZUVtcHR5S2V5cyh7XG4gICAgLi4ucGFyc2VEb2N1bWVudChwZXJtaXNzaW9uKSxcbiAgICAuLi4oKF9pZCB8fCBpZCB8fCBfa2V5IHx8IHBlcm1pc3Npb25JZCkgJiYge1xuICAgICAgaWQ6IHBhcnNlQXJhbmdvSWQoX2lkIHx8IGlkIHx8IGBwZXJtaXNzaW9ucy8ke19rZXkgfHwgcGVybWlzc2lvbklkfWApXG4gICAgfSksXG4gICAgLi4uKGFkZGVkICYmIHthZGRlZDogcGFyc2VSZWFrdG9yRGF0ZShhZGRlZCl9KSxcbiAgICAuLi4oZGVzY3JpcHRpb24gJiYge2Rlc2NyaXB0aW9uOiBwYXJzZVN0cmluZyhkZXNjcmlwdGlvbil9KSxcbiAgICAuLi4obGV2ZWwgIT09IHVuZGVmaW5lZCAmJiB7bGV2ZWw6IHBhcnNlTnVtKGxldmVsKX0pLFxuICAgIC4uLihuYW1lICYmIHtuYW1lOiBwYXJzZVJlYWt0b3JOYW1lKG5hbWUpfSksXG4gICAgLi4uKHBlcm1pc3Npb25JZCAmJiB7cGVybWlzc2lvbklkOiBwYXJzZVJlYWt0b3JJdGVtSWQocGVybWlzc2lvbklkKX0pLFxuICAgIC4uLihyZXNvdXJjZSAmJiB7cmVzb3VyY2U6IHBhcnNlVmFyQ2hhcihyZXNvdXJjZSwgMTYwKX0pLFxuICAgIC4uLihyb2xlSWQgJiYge3JvbGVJZDogcGFyc2VSZWFrdG9ySXRlbUlkKHJvbGVJZCl9KSxcbiAgICAuLi4odHlwZSAmJiB7dHlwZTogcGFyc2VWYXJDaGFyKHR5cGUsIDE2MCl9KSxcbiAgICAuLi4odXBkYXRlZCAmJiB7dXBkYXRlZDogcGFyc2VSZWFrdG9yRGF0ZSh1cGRhdGVkKX0pLFxuICAgIC4uLih1c2VySWQgJiYge3VzZXJJZDogcGFyc2VSZWFrdG9ySXRlbUlkKHVzZXJJZCl9KVxuICB9KTtcblxuICByZXR1cm4gdHJhbnNmb3JtZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgaGFzUGVybWlzc2lvbiA9ICh1c2VyTGV2ZWw6IG51bWJlciwgcmVxdWlyZWRMZXZlbDogUGVybWlzc2lvbkxldmVsKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiB1c2VyTGV2ZWwgPj0gcmVxdWlyZWRMZXZlbDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRQZXJtaXNzaW9uTGV2ZWxOYW1lID0gKGxldmVsOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gUGVybWlzc2lvbkxldmVsTmFtZXNbbGV2ZWwgYXMgUGVybWlzc2lvbkxldmVsXSB8fCAnVW5rbm93bic7XG59O1xuXG5leHBvcnQgY29uc3QgaXNHdWVzdCA9ICh1c2VyTGV2ZWw6IG51bWJlcik6IGJvb2xlYW4gPT4gdXNlckxldmVsID09PSBQZXJtaXNzaW9uTGV2ZWwuR1VFU1Q7XG5leHBvcnQgY29uc3QgaXNVc2VyID0gKHVzZXJMZXZlbDogbnVtYmVyKTogYm9vbGVhbiA9PiB1c2VyTGV2ZWwgPj0gUGVybWlzc2lvbkxldmVsLlVTRVI7XG5leHBvcnQgY29uc3QgaXNNb2RlcmF0b3IgPSAodXNlckxldmVsOiBudW1iZXIpOiBib29sZWFuID0+IHVzZXJMZXZlbCA+PSBQZXJtaXNzaW9uTGV2ZWwuTU9ERVJBVE9SO1xuZXhwb3J0IGNvbnN0IGlzQWRtaW4gPSAodXNlckxldmVsOiBudW1iZXIpOiBib29sZWFuID0+IHVzZXJMZXZlbCA+PSBQZXJtaXNzaW9uTGV2ZWwuQURNSU47XG5leHBvcnQgY29uc3QgaXNTdXBlckFkbWluID0gKHVzZXJMZXZlbDogbnVtYmVyKTogYm9vbGVhbiA9PiB1c2VyTGV2ZWwgPj0gUGVybWlzc2lvbkxldmVsLlNVUEVSX0FETUlOO1xuIl0sIm5hbWVzIjpbInBhcnNlQXJhbmdvSWQiLCJwYXJzZU51bSIsInBhcnNlU3RyaW5nIiwicGFyc2VWYXJDaGFyIiwieiIsInBhcnNlRG9jdW1lbnQiLCJyZW1vdmVFbXB0eUtleXMiLCJwYXJzZVJlYWt0b3JEYXRlIiwicGFyc2VSZWFrdG9ySXRlbUlkIiwicGFyc2VSZWFrdG9yTmFtZSIsIlBlcm1pc3Npb25MZXZlbCIsIlBlcm1pc3Npb25MZXZlbE5hbWVzIiwiUGVybWlzc2lvblZhbGlkYXRpb25FcnJvciIsIkVycm9yIiwibWVzc2FnZSIsImZpZWxkIiwibmFtZSIsIlBlcm1pc3Npb25JbnB1dFNjaGVtYSIsIm9iamVjdCIsIl9pZCIsInN0cmluZyIsIm9wdGlvbmFsIiwiX2tleSIsIl9yZXYiLCJfb2xkUmV2IiwiYWRkZWQiLCJudW1iZXIiLCJkZXNjcmlwdGlvbiIsIm1heCIsImlkIiwibGV2ZWwiLCJtaW4iLCJwZXJtaXNzaW9uSWQiLCJyZXNvdXJjZSIsInJvbGVJZCIsInR5cGUiLCJ1cGRhdGVkIiwidXNlcklkIiwibG9vc2UiLCJ2YWxpZGF0ZVBlcm1pc3Npb25JbnB1dCIsInBlcm1pc3Npb24iLCJ2YWxpZGF0ZWQiLCJwYXJzZSIsImVycm9yIiwiWm9kRXJyb3IiLCJmaWVsZEVycm9ycyIsImlzc3VlcyIsIm1hcCIsImUiLCJwYXRoIiwiam9pbiIsImZvcm1hdFBlcm1pc3Npb25PdXRwdXQiLCJwYXJzZVBlcm1pc3Npb24iLCJwYXJzZWQiLCJwZXJmb3JtUGVybWlzc2lvblRyYW5zZm9ybWF0aW9uIiwidHJhbnNmb3JtZWQiLCJ1bmRlZmluZWQiLCJoYXNQZXJtaXNzaW9uIiwidXNlckxldmVsIiwicmVxdWlyZWRMZXZlbCIsImdldFBlcm1pc3Npb25MZXZlbE5hbWUiLCJpc0d1ZXN0IiwiaXNVc2VyIiwiaXNNb2RlcmF0b3IiLCJpc0FkbWluIiwiaXNTdXBlckFkbWluIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxhQUFhLEVBQVdDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxZQUFZLFFBQU8sZUFBZTtBQUN6RixTQUFRQyxDQUFDLFFBQU8sTUFBTTtBQUV0QixTQUFRQyxhQUFhLEVBQUVDLGVBQWUsUUFBTyxvQ0FBb0M7QUFDakYsU0FBUUMsZ0JBQWdCLEVBQUVDLGtCQUFrQixFQUFFQyxnQkFBZ0IsUUFBTyxzQ0FBc0M7QUFFM0csT0FBTyxJQUFBLEFBQUtDLHlDQUFBQTs7Ozs7O1dBQUFBO01BTVg7QUFFRCxPQUFPLE1BQU1DLHVCQUF3RDtJQUNuRSxHQUF1QixFQUFFO0lBQ3pCLEdBQXNCLEVBQUU7SUFDeEIsR0FBMkIsRUFBRTtJQUM3QixHQUF1QixFQUFFO0lBQ3pCLEdBQTZCLEVBQUU7QUFDakMsRUFBRTtBQXFCRixPQUFPLE1BQU1DLGtDQUFrQ0M7O0lBQzdDLFlBQVlDLE9BQWUsRUFBRSxBQUFPQyxLQUFjLENBQUU7UUFDbEQsS0FBSyxDQUFDRCxlQUQ0QkMsUUFBQUE7UUFFbEMsSUFBSSxDQUFDQyxJQUFJLEdBQUc7SUFDZDtBQUNGO0FBRUEsTUFBTUMsd0JBQXdCYixFQUFFYyxNQUFNLENBQUM7SUFDckNDLEtBQUtmLEVBQUVnQixNQUFNLEdBQUdDLFFBQVE7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
@@ -5,14 +5,40 @@ export interface PersonaType {
5
5
  _oldRev?: string;
6
6
  _from?: string;
7
7
  _to?: string;
8
+ active?: boolean;
9
+ afterglow?: number;
10
+ birthdate?: number;
11
+ followerCount?: number;
12
+ followingCount?: number;
13
+ gender?: string;
14
+ hasLike?: boolean;
15
+ hasView?: boolean;
8
16
  id?: string;
17
+ images?: any[];
18
+ imageCount?: number;
19
+ imageId?: string;
20
+ imageUrl?: string;
21
+ isBlocked?: boolean;
22
+ isFollowedBy?: boolean;
23
+ isFollowing?: boolean;
24
+ isFriend?: boolean;
25
+ latitude?: number;
26
+ location?: string;
27
+ longitude?: number;
28
+ likeCount?: number;
29
+ name?: string;
9
30
  personaId?: string;
31
+ tags?: any[];
32
+ thumbUrl?: string;
33
+ userId?: string;
34
+ viewCount?: number;
10
35
  [key: string]: any;
11
36
  }
12
37
  export declare class PersonaValidationError extends Error {
13
- field?: string | undefined;
14
- constructor(message: string, field?: string | undefined);
38
+ field?: string;
39
+ constructor(message: string, field?: string);
15
40
  }
16
41
  export declare const validatePersonaInput: (persona: unknown) => PersonaType;
17
42
  export declare const formatPersonaOutput: (persona: PersonaType) => PersonaType;
18
43
  export declare const parsePersona: (persona: PersonaType) => PersonaType;
44
+ //# sourceMappingURL=personaAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personaAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/personaAdapter/personaAdapter.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,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,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,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;AAsCD,eAAO,MAAM,oBAAoB,GAAI,SAAS,OAAO,KAAG,WAWvD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,SAAS,WAAW,KAAG,WAAsB,CAAC;AAElF,eAAO,MAAM,YAAY,GAAI,SAAS,WAAW,KAAG,WAUnD,CAAC"}
@@ -1,2 +1,161 @@
1
- import{parseArangoId as i,parseId as p}from"@nlabs/utils";import{z as o}from"zod";import{parseDocument as d,removeEmptyKeys as c}from"../arangoAdapter/arangoAdapter";class a extends Error{constructor(e,t){super(e);this.field=t;this.name="PersonaValidationError"}}const g=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(),id:o.string().optional(),personaId:o.string().optional()}).passthrough(),u=n=>{try{return g.parse(n)}catch(r){if(r instanceof o.ZodError){const e=r.issues.map(t=>`${t.path.join(".")}: ${t.message}`).join(", ");throw new a(`Persona validation failed: ${e}`)}throw r}},_=n=>n,h=n=>{try{return l(n)}catch(r){throw r instanceof a?r:new a(`Persona parsing failed: ${r instanceof Error?r.message:"Unknown error"}`)}},l=n=>{const{_id:r,_key:e,id:t,personaId:s}=n;return c({...d(n),...(r||t||e||s)&&{id:i(r||t||`personas/${e||s}`)},...(e||s)&&{personaId:p(e||s||"")}})};export{a as PersonaValidationError,_ as formatPersonaOutput,h as parsePersona,u as validatePersonaInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL3BlcnNvbmFBZGFwdGVyL3BlcnNvbmFBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge3BhcnNlQXJhbmdvSWQsIHBhcnNlSWR9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7cGFyc2VEb2N1bWVudCwgcmVtb3ZlRW1wdHlLZXlzfSBmcm9tICcuLi9hcmFuZ29BZGFwdGVyL2FyYW5nb0FkYXB0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvbmFUeXBlIHtcbiAgX2lkPzogc3RyaW5nO1xuICBfa2V5Pzogc3RyaW5nO1xuICBfcmV2Pzogc3RyaW5nO1xuICBfb2xkUmV2Pzogc3RyaW5nO1xuICBfZnJvbT86IHN0cmluZztcbiAgX3RvPzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgcGVyc29uYUlkPzogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJzb25hVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmaWVsZD86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdQZXJzb25hVmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBQZXJzb25hSW5wdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIF9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfa2V5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9yZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX29sZFJldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfZnJvbTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfdG86IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcGVyc29uYUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pLnBhc3N0aHJvdWdoKCk7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVBlcnNvbmFJbnB1dCA9IChwZXJzb25hOiB1bmtub3duKTogUGVyc29uYVR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IFBlcnNvbmFJbnB1dFNjaGVtYS5wYXJzZShwZXJzb25hKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIFBlcnNvbmFUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZEVycm9ycyA9IGVycm9yLmlzc3Vlcy5tYXAoKGUpID0+IGAke2UucGF0aC5qb2luKCcuJyl9OiAke2UubWVzc2FnZX1gKS5qb2luKCcsICcpO1xuICAgICAgdGhyb3cgbmV3IFBlcnNvbmFWYWxpZGF0aW9uRXJyb3IoYFBlcnNvbmEgdmFsaWRhdGlvbiBmYWlsZWQ6ICR7ZmllbGRFcnJvcnN9YCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0UGVyc29uYU91dHB1dCA9IChwZXJzb25hOiBQZXJzb25hVHlwZSk6IFBlcnNvbmFUeXBlID0+IHBlcnNvbmE7XG5cbmV4cG9ydCBjb25zdCBwYXJzZVBlcnNvbmEgPSAocGVyc29uYTogUGVyc29uYVR5cGUpOiBQZXJzb25hVHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGVyZm9ybVBlcnNvbmFUcmFuc2Zvcm1hdGlvbihwZXJzb25hKTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiBQZXJzb25hVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFBlcnNvbmFWYWxpZGF0aW9uRXJyb3IoYFBlcnNvbmEgcGFyc2luZyBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCk7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1QZXJzb25hVHJhbnNmb3JtYXRpb24gPSAocGVyc29uYTogUGVyc29uYVR5cGUpOiBQZXJzb25hVHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfaWQsXG4gICAgX2tleSxcbiAgICBpZCxcbiAgICBwZXJzb25hSWRcbiAgfSA9IHBlcnNvbmE7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSByZW1vdmVFbXB0eUtleXMoe1xuICAgIC4uLnBhcnNlRG9jdW1lbnQocGVyc29uYSksXG4gICAgLi4uKChfaWQgfHwgaWQgfHwgX2tleSB8fCBwZXJzb25hSWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgYHBlcnNvbmFzLyR7X2tleSB8fCBwZXJzb25hSWR9YCl9KSxcbiAgICAuLi4oKF9rZXkgfHwgcGVyc29uYUlkKSAmJiB7cGVyc29uYUlkOiBwYXJzZUlkKF9rZXkgfHwgcGVyc29uYUlkIHx8ICcnKX0pXG4gIH0pO1xuXG4gIHJldHVybiB0cmFuc2Zvcm1lZDtcbn07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsT0FBUSxpQkFBQUEsRUFBZSxXQUFBQyxNQUFjLGVBQ3JDLE9BQVEsS0FBQUMsTUFBUSxNQUVoQixPQUFRLGlCQUFBQyxFQUFlLG1CQUFBQyxNQUFzQixpQ0FjdEMsTUFBTUMsVUFBK0IsS0FBTSxDQUNoRCxZQUFZQyxFQUF3QkMsRUFBZ0IsQ0FDbEQsTUFBTUQsQ0FBTyxFQURxQixXQUFBQyxFQUVsQyxLQUFLLEtBQU8sd0JBQ2QsQ0FDRixDQUVBLE1BQU1DLEVBQXFCTixFQUFFLE9BQU8sQ0FDbEMsSUFBS0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUN6QixLQUFNQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzFCLEtBQU1BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDMUIsUUFBU0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUM3QixNQUFPQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzNCLElBQUtBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDekIsR0FBSUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUN4QixVQUFXQSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQ2pDLENBQUMsRUFBRSxZQUFZLEVBRUZPLEVBQXdCQyxHQUFrQyxDQUNyRSxHQUFJLENBRUYsT0FEa0JGLEVBQW1CLE1BQU1FLENBQU8sQ0FFcEQsT0FBUUMsRUFBTyxDQUNiLEdBQUdBLGFBQWlCVCxFQUFFLFNBQVUsQ0FDOUIsTUFBTVUsRUFBY0QsRUFBTSxPQUFPLElBQUtFLEdBQU0sR0FBR0EsRUFBRSxLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUtBLEVBQUUsT0FBTyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQzFGLE1BQU0sSUFBSVIsRUFBdUIsOEJBQThCTyxDQUFXLEVBQUUsQ0FDOUUsQ0FDQSxNQUFNRCxDQUNSLENBQ0YsRUFFYUcsRUFBdUJKLEdBQXNDQSxFQUU3REssRUFBZ0JMLEdBQXNDLENBQ2pFLEdBQUksQ0FFRixPQURlTSxFQUE2Qk4sQ0FBTyxDQUVyRCxPQUFRQyxFQUFPLENBQ2IsTUFBR0EsYUFBaUJOLEVBQ1pNLEVBRUYsSUFBSU4sRUFBdUIsMkJBQTJCTSxhQUFpQixNQUFRQSxFQUFNLFFBQVUsZUFBZSxFQUFFLENBQ3hILENBQ0YsRUFFTUssRUFBZ0NOLEdBQXNDLENBQzFFLEtBQU0sQ0FDSixJQUFBTyxFQUNBLEtBQUFDLEVBQ0EsR0FBQUMsRUFDQSxVQUFBQyxDQUNGLEVBQUlWLEVBUUosT0FOb0JOLEVBQWdCLENBQ2xDLEdBQUdELEVBQWNPLENBQU8sRUFDeEIsSUFBS08sR0FBT0UsR0FBTUQsR0FBUUUsSUFBYyxDQUFDLEdBQUlwQixFQUFjaUIsR0FBT0UsR0FBTSxZQUFZRCxHQUFRRSxDQUFTLEVBQUUsQ0FBQyxFQUN4RyxJQUFLRixHQUFRRSxJQUFjLENBQUMsVUFBV25CLEVBQVFpQixHQUFRRSxHQUFhLEVBQUUsQ0FBQyxDQUN6RSxDQUFDLENBR0giLAogICJuYW1lcyI6IFsicGFyc2VBcmFuZ29JZCIsICJwYXJzZUlkIiwgInoiLCAicGFyc2VEb2N1bWVudCIsICJyZW1vdmVFbXB0eUtleXMiLCAiUGVyc29uYVZhbGlkYXRpb25FcnJvciIsICJtZXNzYWdlIiwgImZpZWxkIiwgIlBlcnNvbmFJbnB1dFNjaGVtYSIsICJ2YWxpZGF0ZVBlcnNvbmFJbnB1dCIsICJwZXJzb25hIiwgImVycm9yIiwgImZpZWxkRXJyb3JzIiwgImUiLCAiZm9ybWF0UGVyc29uYU91dHB1dCIsICJwYXJzZVBlcnNvbmEiLCAicGVyZm9ybVBlcnNvbmFUcmFuc2Zvcm1hdGlvbiIsICJfaWQiLCAiX2tleSIsICJpZCIsICJwZXJzb25hSWQiXQp9Cg==
1
+ import { parseArangoId, parseBoolean, parseChar, 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 { parseTag } from '../tagAdapter/tagAdapter.js';
6
+ export class PersonaValidationError extends Error {
7
+ field;
8
+ constructor(message, field){
9
+ super(message), this.field = field;
10
+ this.name = 'PersonaValidationError';
11
+ }
12
+ }
13
+ const PersonaInputSchema = z.object({
14
+ _id: z.string().optional(),
15
+ _key: z.string().optional(),
16
+ _rev: z.string().optional(),
17
+ _oldRev: z.string().optional(),
18
+ _from: z.string().optional(),
19
+ _to: z.string().optional(),
20
+ active: z.boolean().optional(),
21
+ afterglow: z.number().optional(),
22
+ birthdate: z.number().optional(),
23
+ followerCount: z.number().optional(),
24
+ followingCount: z.number().optional(),
25
+ gender: z.string().max(1).optional(),
26
+ hasLike: z.boolean().optional(),
27
+ hasView: z.boolean().optional(),
28
+ id: z.string().optional(),
29
+ images: z.array(z.any()).optional(),
30
+ imageCount: z.number().optional(),
31
+ imageId: z.string().optional(),
32
+ imageUrl: z.string().optional(),
33
+ isBlocked: z.boolean().optional(),
34
+ isFollowedBy: z.boolean().optional(),
35
+ isFollowing: z.boolean().optional(),
36
+ isFriend: z.boolean().optional(),
37
+ latitude: z.number().optional(),
38
+ location: z.string().optional(),
39
+ longitude: z.number().optional(),
40
+ likeCount: z.number().optional(),
41
+ name: z.string().max(64).optional(),
42
+ personaId: z.string().optional(),
43
+ tags: z.array(z.any()).optional(),
44
+ thumbUrl: z.string().optional(),
45
+ userId: z.string().optional(),
46
+ viewCount: z.number().optional()
47
+ }).loose();
48
+ export const validatePersonaInput = (persona)=>{
49
+ try {
50
+ const validated = PersonaInputSchema.parse(persona);
51
+ return validated;
52
+ } catch (error) {
53
+ if (error instanceof z.ZodError) {
54
+ const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
55
+ throw new PersonaValidationError(`Persona validation failed: ${fieldErrors}`);
56
+ }
57
+ throw error;
58
+ }
59
+ };
60
+ export const formatPersonaOutput = (persona)=>persona;
61
+ export const parsePersona = (persona)=>{
62
+ try {
63
+ const parsed = performPersonaTransformation(persona);
64
+ return parsed;
65
+ } catch (error) {
66
+ if (error instanceof PersonaValidationError) {
67
+ throw error;
68
+ }
69
+ throw new PersonaValidationError(`Persona parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
70
+ }
71
+ };
72
+ const performPersonaTransformation = (persona)=>{
73
+ const { _id, _key, active, afterglow, birthdate, followerCount, followingCount, gender, hasLike, hasView, id, images, imageCount, imageId, imageUrl, isBlocked, isFollowedBy, isFollowing, isFriend, latitude, location, longitude, likeCount, name, personaId, tags, thumbUrl, userId, viewCount } = persona;
74
+ const transformed = removeEmptyKeys({
75
+ ...parseDocument(persona),
76
+ ...active !== undefined && {
77
+ active: parseBoolean(active)
78
+ },
79
+ ...afterglow !== undefined && {
80
+ afterglow: parseNum(afterglow)
81
+ },
82
+ ...birthdate !== undefined && {
83
+ birthdate: parseNum(birthdate)
84
+ },
85
+ ...followerCount !== undefined && {
86
+ followerCount: parseNum(followerCount)
87
+ },
88
+ ...followingCount !== undefined && {
89
+ followingCount: parseNum(followingCount)
90
+ },
91
+ ...gender && {
92
+ gender: parseChar(gender, 1)
93
+ },
94
+ ...hasLike !== undefined && {
95
+ hasLike: parseBoolean(hasLike)
96
+ },
97
+ ...hasView !== undefined && {
98
+ hasView: parseBoolean(hasView)
99
+ },
100
+ ...(_id || id || _key || personaId) && {
101
+ id: parseArangoId(_id || id || `personas/${_key || personaId}`)
102
+ },
103
+ ...images?.length && {
104
+ images: images.map((image)=>parseImage(image))
105
+ },
106
+ ...imageCount !== undefined && {
107
+ imageCount: parseNum(imageCount)
108
+ },
109
+ ...imageId && {
110
+ imageId: parseId(imageId)
111
+ },
112
+ ...imageUrl && {
113
+ imageUrl
114
+ },
115
+ ...isBlocked !== undefined && {
116
+ isBlocked: parseBoolean(isBlocked)
117
+ },
118
+ ...isFollowedBy !== undefined && {
119
+ isFollowedBy: parseBoolean(isFollowedBy)
120
+ },
121
+ ...isFollowing !== undefined && {
122
+ isFollowing: parseBoolean(isFollowing)
123
+ },
124
+ ...isFriend !== undefined && {
125
+ isFriend: parseBoolean(isFriend)
126
+ },
127
+ ...latitude !== undefined && {
128
+ latitude: parseNum(latitude, 12)
129
+ },
130
+ ...location && {
131
+ location: parseString(location, 160)
132
+ },
133
+ ...longitude !== undefined && {
134
+ longitude: parseNum(longitude, 12)
135
+ },
136
+ ...likeCount !== undefined && {
137
+ likeCount: parseNum(likeCount)
138
+ },
139
+ ...name && {
140
+ name: parseString(name, 64)
141
+ },
142
+ ...(_key || personaId) && {
143
+ personaId: parseId(_key || personaId || '')
144
+ },
145
+ ...tags?.length && {
146
+ tags: tags.map((tag)=>parseTag(tag))
147
+ },
148
+ ...thumbUrl && {
149
+ thumbUrl
150
+ },
151
+ ...userId && {
152
+ userId: parseId(userId)
153
+ },
154
+ ...viewCount !== undefined && {
155
+ viewCount: parseNum(viewCount)
156
+ }
157
+ });
158
+ return transformed;
159
+ };
160
+
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvcGVyc29uYUFkYXB0ZXIvcGVyc29uYUFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VBcmFuZ29JZCwgcGFyc2VCb29sZWFuLCBwYXJzZUNoYXIsIHBhcnNlSWQsIHBhcnNlTnVtLCBwYXJzZVN0cmluZyB9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHsgcGFyc2VEb2N1bWVudCwgcmVtb3ZlRW1wdHlLZXlzIH0gZnJvbSAnLi4vYXJhbmdvQWRhcHRlci9hcmFuZ29BZGFwdGVyLmpzJztcbmltcG9ydCB7IHBhcnNlSW1hZ2UgfSBmcm9tICcuLi9pbWFnZUFkYXB0ZXIvaW1hZ2VBZGFwdGVyLmpzJztcbmltcG9ydCB7IHBhcnNlVGFnIH0gZnJvbSAnLi4vdGFnQWRhcHRlci90YWdBZGFwdGVyLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBQZXJzb25hVHlwZSB7XG4gIF9pZD86IHN0cmluZztcbiAgX2tleT86IHN0cmluZztcbiAgX3Jldj86IHN0cmluZztcbiAgX29sZFJldj86IHN0cmluZztcbiAgX2Zyb20/OiBzdHJpbmc7XG4gIF90bz86IHN0cmluZztcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgYWZ0ZXJnbG93PzogbnVtYmVyO1xuICBiaXJ0aGRhdGU/OiBudW1iZXI7XG4gIGZvbGxvd2VyQ291bnQ/OiBudW1iZXI7XG4gIGZvbGxvd2luZ0NvdW50PzogbnVtYmVyO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIGhhc0xpa2U/OiBib29sZWFuO1xuICBoYXNWaWV3PzogYm9vbGVhbjtcbiAgaWQ/OiBzdHJpbmc7XG4gIGltYWdlcz86IGFueVtdO1xuICBpbWFnZUNvdW50PzogbnVtYmVyO1xuICBpbWFnZUlkPzogc3RyaW5nO1xuICBpbWFnZVVybD86IHN0cmluZztcbiAgaXNCbG9ja2VkPzogYm9vbGVhbjtcbiAgaXNGb2xsb3dlZEJ5PzogYm9vbGVhbjtcbiAgaXNGb2xsb3dpbmc/OiBib29sZWFuO1xuICBpc0ZyaWVuZD86IGJvb2xlYW47XG4gIGxhdGl0dWRlPzogbnVtYmVyO1xuICBsb2NhdGlvbj86IHN0cmluZztcbiAgbG9uZ2l0dWRlPzogbnVtYmVyO1xuICBsaWtlQ291bnQ/OiBudW1iZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHBlcnNvbmFJZD86IHN0cmluZztcbiAgdGFncz86IGFueVtdO1xuICB0aHVtYlVybD86IHN0cmluZztcbiAgdXNlcklkPzogc3RyaW5nO1xuICB2aWV3Q291bnQ/OiBudW1iZXI7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFBlcnNvbmFWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ1BlcnNvbmFWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IFBlcnNvbmFJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBhY3RpdmU6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGFmdGVyZ2xvdzogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBiaXJ0aGRhdGU6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgZm9sbG93ZXJDb3VudDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBmb2xsb3dpbmdDb3VudDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBnZW5kZXI6IHouc3RyaW5nKCkubWF4KDEpLm9wdGlvbmFsKCksXG4gIGhhc0xpa2U6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGhhc1ZpZXc6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGltYWdlczogei5hcnJheSh6LmFueSgpKS5vcHRpb25hbCgpLFxuICBpbWFnZUNvdW50OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGltYWdlSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaW1hZ2VVcmw6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaXNCbG9ja2VkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBpc0ZvbGxvd2VkQnk6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGlzRm9sbG93aW5nOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBpc0ZyaWVuZDogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgbGF0aXR1ZGU6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgbG9jYXRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbG9uZ2l0dWRlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGxpa2VDb3VudDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBuYW1lOiB6LnN0cmluZygpLm1heCg2NCkub3B0aW9uYWwoKSxcbiAgcGVyc29uYUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHRhZ3M6IHouYXJyYXkoei5hbnkoKSkub3B0aW9uYWwoKSxcbiAgdGh1bWJVcmw6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdXNlcklkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHZpZXdDb3VudDogei5udW1iZXIoKS5vcHRpb25hbCgpXG59KS5sb29zZSgpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQZXJzb25hSW5wdXQgPSAocGVyc29uYTogdW5rbm93bik6IFBlcnNvbmFUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBQZXJzb25hSW5wdXRTY2hlbWEucGFyc2UocGVyc29uYSk7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBQZXJzb25hVHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5pc3N1ZXMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBQZXJzb25hVmFsaWRhdGlvbkVycm9yKGBQZXJzb25hIHZhbGlkYXRpb24gZmFpbGVkOiAke2ZpZWxkRXJyb3JzfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdFBlcnNvbmFPdXRwdXQgPSAocGVyc29uYTogUGVyc29uYVR5cGUpOiBQZXJzb25hVHlwZSA9PiBwZXJzb25hO1xuXG5leHBvcnQgY29uc3QgcGFyc2VQZXJzb25hID0gKHBlcnNvbmE6IFBlcnNvbmFUeXBlKTogUGVyc29uYVR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBlcmZvcm1QZXJzb25hVHJhbnNmb3JtYXRpb24ocGVyc29uYSk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2YgUGVyc29uYVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICAgIHRocm93IG5ldyBQZXJzb25hVmFsaWRhdGlvbkVycm9yKGBQZXJzb25hIHBhcnNpbmcgZmFpbGVkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfWApO1xuICB9XG59O1xuXG5jb25zdCBwZXJmb3JtUGVyc29uYVRyYW5zZm9ybWF0aW9uID0gKHBlcnNvbmE6IFBlcnNvbmFUeXBlKTogUGVyc29uYVR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgX2lkLFxuICAgIF9rZXksXG4gICAgYWN0aXZlLFxuICAgIGFmdGVyZ2xvdyxcbiAgICBiaXJ0aGRhdGUsXG4gICAgZm9sbG93ZXJDb3VudCxcbiAgICBmb2xsb3dpbmdDb3VudCxcbiAgICBnZW5kZXIsXG4gICAgaGFzTGlrZSxcbiAgICBoYXNWaWV3LFxuICAgIGlkLFxuICAgIGltYWdlcyxcbiAgICBpbWFnZUNvdW50LFxuICAgIGltYWdlSWQsXG4gICAgaW1hZ2VVcmwsXG4gICAgaXNCbG9ja2VkLFxuICAgIGlzRm9sbG93ZWRCeSxcbiAgICBpc0ZvbGxvd2luZyxcbiAgICBpc0ZyaWVuZCxcbiAgICBsYXRpdHVkZSxcbiAgICBsb2NhdGlvbixcbiAgICBsb25naXR1ZGUsXG4gICAgbGlrZUNvdW50LFxuICAgIG5hbWUsXG4gICAgcGVyc29uYUlkLFxuICAgIHRhZ3MsXG4gICAgdGh1bWJVcmwsXG4gICAgdXNlcklkLFxuICAgIHZpZXdDb3VudFxuICB9ID0gcGVyc29uYTtcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHJlbW92ZUVtcHR5S2V5cyh7XG4gICAgLi4ucGFyc2VEb2N1bWVudChwZXJzb25hKSxcbiAgICAuLi4oYWN0aXZlICE9PSB1bmRlZmluZWQgJiYge2FjdGl2ZTogcGFyc2VCb29sZWFuKGFjdGl2ZSl9KSxcbiAgICAuLi4oYWZ0ZXJnbG93ICE9PSB1bmRlZmluZWQgJiYge2FmdGVyZ2xvdzogcGFyc2VOdW0oYWZ0ZXJnbG93KX0pLFxuICAgIC4uLihiaXJ0aGRhdGUgIT09IHVuZGVmaW5lZCAmJiB7YmlydGhkYXRlOiBwYXJzZU51bShiaXJ0aGRhdGUpfSksXG4gICAgLi4uKGZvbGxvd2VyQ291bnQgIT09IHVuZGVmaW5lZCAmJiB7Zm9sbG93ZXJDb3VudDogcGFyc2VOdW0oZm9sbG93ZXJDb3VudCl9KSxcbiAgICAuLi4oZm9sbG93aW5nQ291bnQgIT09IHVuZGVmaW5lZCAmJiB7Zm9sbG93aW5nQ291bnQ6IHBhcnNlTnVtKGZvbGxvd2luZ0NvdW50KX0pLFxuICAgIC4uLihnZW5kZXIgJiYge2dlbmRlcjogcGFyc2VDaGFyKGdlbmRlciwgMSl9KSxcbiAgICAuLi4oaGFzTGlrZSAhPT0gdW5kZWZpbmVkICYmIHtoYXNMaWtlOiBwYXJzZUJvb2xlYW4oaGFzTGlrZSl9KSxcbiAgICAuLi4oaGFzVmlldyAhPT0gdW5kZWZpbmVkICYmIHtoYXNWaWV3OiBwYXJzZUJvb2xlYW4oaGFzVmlldyl9KSxcbiAgICAuLi4oKF9pZCB8fCBpZCB8fCBfa2V5IHx8IHBlcnNvbmFJZCkgJiYge2lkOiBwYXJzZUFyYW5nb0lkKF9pZCB8fCBpZCB8fCBgcGVyc29uYXMvJHtfa2V5IHx8IHBlcnNvbmFJZH1gKX0pLFxuICAgIC4uLihpbWFnZXM/Lmxlbmd0aCAmJiB7aW1hZ2VzOiBpbWFnZXMubWFwKChpbWFnZSkgPT4gcGFyc2VJbWFnZShpbWFnZSkpfSksXG4gICAgLi4uKGltYWdlQ291bnQgIT09IHVuZGVmaW5lZCAmJiB7aW1hZ2VDb3VudDogcGFyc2VOdW0oaW1hZ2VDb3VudCl9KSxcbiAgICAuLi4oaW1hZ2VJZCAmJiB7aW1hZ2VJZDogcGFyc2VJZChpbWFnZUlkKX0pLFxuICAgIC4uLihpbWFnZVVybCAmJiB7aW1hZ2VVcmx9KSxcbiAgICAuLi4oaXNCbG9ja2VkICE9PSB1bmRlZmluZWQgJiYge2lzQmxvY2tlZDogcGFyc2VCb29sZWFuKGlzQmxvY2tlZCl9KSxcbiAgICAuLi4oaXNGb2xsb3dlZEJ5ICE9PSB1bmRlZmluZWQgJiYge2lzRm9sbG93ZWRCeTogcGFyc2VCb29sZWFuKGlzRm9sbG93ZWRCeSl9KSxcbiAgICAuLi4oaXNGb2xsb3dpbmcgIT09IHVuZGVmaW5lZCAmJiB7aXNGb2xsb3dpbmc6IHBhcnNlQm9vbGVhbihpc0ZvbGxvd2luZyl9KSxcbiAgICAuLi4oaXNGcmllbmQgIT09IHVuZGVmaW5lZCAmJiB7aXNGcmllbmQ6IHBhcnNlQm9vbGVhbihpc0ZyaWVuZCl9KSxcbiAgICAuLi4obGF0aXR1ZGUgIT09IHVuZGVmaW5lZCAmJiB7bGF0aXR1ZGU6IHBhcnNlTnVtKGxhdGl0dWRlLCAxMil9KSxcbiAgICAuLi4obG9jYXRpb24gJiYge2xvY2F0aW9uOiBwYXJzZVN0cmluZyhsb2NhdGlvbiwgMTYwKX0pLFxuICAgIC4uLihsb25naXR1ZGUgIT09IHVuZGVmaW5lZCAmJiB7bG9uZ2l0dWRlOiBwYXJzZU51bShsb25naXR1ZGUsIDEyKX0pLFxuICAgIC4uLihsaWtlQ291bnQgIT09IHVuZGVmaW5lZCAmJiB7bGlrZUNvdW50OiBwYXJzZU51bShsaWtlQ291bnQpfSksXG4gICAgLi4uKG5hbWUgJiYge25hbWU6IHBhcnNlU3RyaW5nKG5hbWUsIDY0KX0pLFxuICAgIC4uLigoX2tleSB8fCBwZXJzb25hSWQpICYmIHtwZXJzb25hSWQ6IHBhcnNlSWQoX2tleSB8fCBwZXJzb25hSWQgfHwgJycpfSksXG4gICAgLi4uKHRhZ3M/Lmxlbmd0aCAmJiB7dGFnczogdGFncy5tYXAoKHRhZykgPT4gcGFyc2VUYWcodGFnKSl9KSxcbiAgICAuLi4odGh1bWJVcmwgJiYge3RodW1iVXJsfSksXG4gICAgLi4uKHVzZXJJZCAmJiB7dXNlcklkOiBwYXJzZUlkKHVzZXJJZCl9KSxcbiAgICAuLi4odmlld0NvdW50ICE9PSB1bmRlZmluZWQgJiYge3ZpZXdDb3VudDogcGFyc2VOdW0odmlld0NvdW50KX0pXG4gIH0pO1xuXG4gIHJldHVybiB0cmFuc2Zvcm1lZCBhcyBQZXJzb25hVHlwZTtcbn07XG4iXSwibmFtZXMiOlsicGFyc2VBcmFuZ29JZCIsInBhcnNlQm9vbGVhbiIsInBhcnNlQ2hhciIsInBhcnNlSWQiLCJwYXJzZU51bSIsInBhcnNlU3RyaW5nIiwieiIsInBhcnNlRG9jdW1lbnQiLCJyZW1vdmVFbXB0eUtleXMiLCJwYXJzZUltYWdlIiwicGFyc2VUYWciLCJQZXJzb25hVmFsaWRhdGlvbkVycm9yIiwiRXJyb3IiLCJtZXNzYWdlIiwiZmllbGQiLCJuYW1lIiwiUGVyc29uYUlucHV0U2NoZW1hIiwib2JqZWN0IiwiX2lkIiwic3RyaW5nIiwib3B0aW9uYWwiLCJfa2V5IiwiX3JldiIsIl9vbGRSZXYiLCJfZnJvbSIsIl90byIsImFjdGl2ZSIsImJvb2xlYW4iLCJhZnRlcmdsb3ciLCJudW1iZXIiLCJiaXJ0aGRhdGUiLCJmb2xsb3dlckNvdW50IiwiZm9sbG93aW5nQ291bnQiLCJnZW5kZXIiLCJtYXgiLCJoYXNMaWtlIiwiaGFzVmlldyIsImlkIiwiaW1hZ2VzIiwiYXJyYXkiLCJhbnkiLCJpbWFnZUNvdW50IiwiaW1hZ2VJZCIsImltYWdlVXJsIiwiaXNCbG9ja2VkIiwiaXNGb2xsb3dlZEJ5IiwiaXNGb2xsb3dpbmciLCJpc0ZyaWVuZCIsImxhdGl0dWRlIiwibG9jYXRpb24iLCJsb25naXR1ZGUiLCJsaWtlQ291bnQiLCJwZXJzb25hSWQiLCJ0YWdzIiwidGh1bWJVcmwiLCJ1c2VySWQiLCJ2aWV3Q291bnQiLCJsb29zZSIsInZhbGlkYXRlUGVyc29uYUlucHV0IiwicGVyc29uYSIsInZhbGlkYXRlZCIsInBhcnNlIiwiZXJyb3IiLCJab2RFcnJvciIsImZpZWxkRXJyb3JzIiwiaXNzdWVzIiwibWFwIiwiZSIsInBhdGgiLCJqb2luIiwiZm9ybWF0UGVyc29uYU91dHB1dCIsInBhcnNlUGVyc29uYSIsInBhcnNlZCIsInBlcmZvcm1QZXJzb25hVHJhbnNmb3JtYXRpb24iLCJ0cmFuc2Zvcm1lZCIsInVuZGVmaW5lZCIsImxlbmd0aCIsImltYWdlIiwidGFnIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxhQUFhLEVBQUVDLFlBQVksRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxRQUFRLGVBQWU7QUFDdEcsU0FBU0MsQ0FBQyxRQUFRLE1BQU07QUFFeEIsU0FBU0MsYUFBYSxFQUFFQyxlQUFlLFFBQVEsb0NBQW9DO0FBQ25GLFNBQVNDLFVB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
@@ -24,9 +24,10 @@ export interface PostType {
24
24
  [key: string]: any;
25
25
  }
26
26
  export declare class PostValidationError extends Error {
27
- field?: string | undefined;
28
- constructor(message: string, field?: string | undefined);
27
+ field?: string;
28
+ constructor(message: string, field?: string);
29
29
  }
30
30
  export declare const validatePostInput: (post: unknown) => PostType;
31
31
  export declare const formatPostOutput: (post: PostType) => PostType;
32
32
  export declare const parsePost: (post: PostType) => PostType;
33
+ //# sourceMappingURL=postAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/postAdapter/postAdapter.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,QAAQ;IACvB,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,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,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;AA0BD,eAAO,MAAM,iBAAiB,GAAI,MAAM,OAAO,KAAG,QAWjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,QAAQ,KAAG,QAAgB,CAAC;AAEnE,eAAO,MAAM,SAAS,GAAI,MAAM,QAAQ,KAAG,QAU1C,CAAC"}
@@ -1,2 +1,115 @@
1
- import{parseArangoId as k,parseId as s,parseNum as v,parseString as b,parseVarChar as E}from"@nlabs/utils";import{z as t}from"zod";import{parseDocument as w,removeEmptyKeys as D}from"../arangoAdapter/arangoAdapter";import{parseFile as x}from"../fileAdapter/fileAdapter";import{parseReaktorContent as R,parseReaktorDate as $,parseReaktorType as N}from"../reaktorAdapter/reaktorAdapter";import{parseTag as j}from"../tagAdapter/tagAdapter";const C=1e5;class p extends Error{constructor(n,e){super(n);this.field=e;this.name="PostValidationError"}}const V=t.object({content:t.string().optional(),endDate:t.number().optional(),files:t.array(t.any()).optional(),groupId:t.string().optional(),postId:t.string().optional(),latitude:t.number().optional(),location:t.string().optional(),longitude:t.number().optional(),name:t.string().optional(),parentId:t.string().optional(),privacy:t.string().optional(),startDate:t.number().optional(),tags:t.array(t.any()).optional(),type:t.string().optional(),userId:t.string().optional(),_id:t.string().optional(),_key:t.string().optional(),_rev:t.string().optional(),_oldRev:t.string().optional(),_from:t.string().optional(),_to:t.string().optional()}).passthrough(),L=o=>{try{return V.parse(o)}catch(r){if(r instanceof t.ZodError){const n=r.issues.map(e=>`${e.path.join(".")}: ${e.message}`).join(", ");throw new p(`Post validation failed: ${n}`)}throw r}},M=o=>o,U=o=>{try{return A(o)}catch(r){throw r instanceof p?r:new p(`Post parsing failed: ${r instanceof Error?r.message:"Unknown error"}`)}},A=o=>{const{_id:r,_key:n,content:e,endDate:d,files:g,groupId:l,id:m,latitude:u,location:c,longitude:y,name:f,parentId:I,postId:a,privacy:P,tags:_,type:T,userId:h}=o;return D({...w(o),...e&&{content:R(e,C)},...d!==void 0&&{endDate:$(d)},...g?.length&&{files:g.map(i=>x(i))},...l&&{groupId:s(l)},...u!==void 0&&{latitude:v(u,15)},...c&&{location:b(c,160)},...y!==void 0&&{longitude:v(y,15)},...f&&{name:b(f,160)},...I&&{parentId:s(I)},...(r||m||n||a)&&{id:k(r||m||`posts/${n||a}`)},...(n||a)&&{postId:s(n||a||"")},...P&&{privacy:E(P,16)},..._?.length&&{tags:_.map(i=>j(i))},...T&&{type:N(T)},...h&&{userId:s(h)}})};export{p as PostValidationError,M as formatPostOutput,U as parsePost,L as validatePostInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL3Bvc3RBZGFwdGVyL3Bvc3RBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge3BhcnNlQXJhbmdvSWQsIHBhcnNlSWQsIHBhcnNlTnVtLCBwYXJzZVN0cmluZywgcGFyc2VWYXJDaGFyfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuXG5pbXBvcnQge3BhcnNlRG9jdW1lbnQsIHJlbW92ZUVtcHR5S2V5c30gZnJvbSAnLi4vYXJhbmdvQWRhcHRlci9hcmFuZ29BZGFwdGVyJztcbmltcG9ydCB7cGFyc2VGaWxlfSBmcm9tICcuLi9maWxlQWRhcHRlci9maWxlQWRhcHRlcic7XG5pbXBvcnQge1xuICBwYXJzZVJlYWt0b3JDb250ZW50LFxuICBwYXJzZVJlYWt0b3JEYXRlLFxuICBwYXJzZVJlYWt0b3JUeXBlXG59IGZyb20gJy4uL3JlYWt0b3JBZGFwdGVyL3JlYWt0b3JBZGFwdGVyJztcbmltcG9ydCB7cGFyc2VUYWd9IGZyb20gJy4uL3RhZ0FkYXB0ZXIvdGFnQWRhcHRlcic7XG5cbmNvbnN0IE1BWF9DT05URU5UX0xFTkdUSDogbnVtYmVyID0gMTAwMDAwO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RUeXBlIHtcbiAgX2lkPzogc3RyaW5nO1xuICBfa2V5Pzogc3RyaW5nO1xuICBfcmV2Pzogc3RyaW5nO1xuICBfb2xkUmV2Pzogc3RyaW5nO1xuICBfZnJvbT86IHN0cmluZztcbiAgX3RvPzogc3RyaW5nO1xuICBjb250ZW50Pzogc3RyaW5nO1xuICBlbmREYXRlPzogbnVtYmVyO1xuICBmaWxlcz86IGFueVtdO1xuICBncm91cElkPzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgbGF0aXR1ZGU/OiBudW1iZXI7XG4gIGxvY2F0aW9uPzogc3RyaW5nO1xuICBsb25naXR1ZGU/OiBudW1iZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHBhcmVudElkPzogc3RyaW5nO1xuICBwb3N0SWQ/OiBzdHJpbmc7XG4gIHByaXZhY3k/OiBzdHJpbmc7XG4gIHN0YXJ0RGF0ZT86IG51bWJlcjtcbiAgdGFncz86IGFueVtdO1xuICB0eXBlPzogc3RyaW5nO1xuICB1c2VySWQ/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFBvc3RWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ1Bvc3RWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IFBvc3RJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY29udGVudDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBlbmREYXRlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGZpbGVzOiB6LmFycmF5KHouYW55KCkpLm9wdGlvbmFsKCksXG4gIGdyb3VwSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcG9zdElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGxhdGl0dWRlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGxvY2F0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGxvbmdpdHVkZTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHBhcmVudElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHByaXZhY3k6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgc3RhcnREYXRlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHRhZ3M6IHouYXJyYXkoei5hbnkoKSkub3B0aW9uYWwoKSxcbiAgdHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KS5wYXNzdGhyb3VnaCgpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQb3N0SW5wdXQgPSAocG9zdDogdW5rbm93bik6IFBvc3RUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBQb3N0SW5wdXRTY2hlbWEucGFyc2UocG9zdCk7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBQb3N0VHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5pc3N1ZXMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBQb3N0VmFsaWRhdGlvbkVycm9yKGBQb3N0IHZhbGlkYXRpb24gZmFpbGVkOiAke2ZpZWxkRXJyb3JzfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdFBvc3RPdXRwdXQgPSAocG9zdDogUG9zdFR5cGUpOiBQb3N0VHlwZSA9PiBwb3N0O1xuXG5leHBvcnQgY29uc3QgcGFyc2VQb3N0ID0gKHBvc3Q6IFBvc3RUeXBlKTogUG9zdFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBlcmZvcm1Qb3N0VHJhbnNmb3JtYXRpb24ocG9zdCk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2YgUG9zdFZhbGlkYXRpb25FcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICAgIHRocm93IG5ldyBQb3N0VmFsaWRhdGlvbkVycm9yKGBQb3N0IHBhcnNpbmcgZmFpbGVkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfWApO1xuICB9XG59O1xuXG5jb25zdCBwZXJmb3JtUG9zdFRyYW5zZm9ybWF0aW9uID0gKHBvc3Q6IFBvc3RUeXBlKTogUG9zdFR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgX2lkLFxuICAgIF9rZXksXG4gICAgY29udGVudCxcbiAgICBlbmREYXRlLFxuICAgIGZpbGVzLFxuICAgIGdyb3VwSWQsXG4gICAgaWQsXG4gICAgbGF0aXR1ZGUsXG4gICAgbG9jYXRpb24sXG4gICAgbG9uZ2l0dWRlLFxuICAgIG5hbWUsXG4gICAgcGFyZW50SWQsXG4gICAgcG9zdElkLFxuICAgIHByaXZhY3ksXG4gICAgdGFncyxcbiAgICB0eXBlLFxuICAgIHVzZXJJZFxuICB9ID0gcG9zdDtcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHJlbW92ZUVtcHR5S2V5cyh7XG4gICAgLi4ucGFyc2VEb2N1bWVudChwb3N0KSxcbiAgICAuLi4oY29udGVudCAmJiB7Y29udGVudDogcGFyc2VSZWFrdG9yQ29udGVudChjb250ZW50LCBNQVhfQ09OVEVOVF9MRU5HVEgpfSksXG4gICAgLi4uKGVuZERhdGUgIT09IHVuZGVmaW5lZCAmJiB7ZW5kRGF0ZTogcGFyc2VSZWFrdG9yRGF0ZShlbmREYXRlKX0pLFxuICAgIC4uLihmaWxlcz8ubGVuZ3RoICYmIHtmaWxlczogZmlsZXMubWFwKChmaWxlKSA9PiBwYXJzZUZpbGUoZmlsZSkpfSksXG4gICAgLi4uKGdyb3VwSWQgJiYge2dyb3VwSWQ6IHBhcnNlSWQoZ3JvdXBJZCl9KSxcbiAgICAuLi4obGF0aXR1ZGUgIT09IHVuZGVmaW5lZCAmJiB7bGF0aXR1ZGU6IHBhcnNlTnVtKGxhdGl0dWRlLCAxNSl9KSxcbiAgICAuLi4obG9jYXRpb24gJiYge2xvY2F0aW9uOiBwYXJzZVN0cmluZyhsb2NhdGlvbiwgMTYwKX0pLFxuICAgIC4uLihsb25naXR1ZGUgIT09IHVuZGVmaW5lZCAmJiB7bG9uZ2l0dWRlOiBwYXJzZU51bShsb25naXR1ZGUsIDE1KX0pLFxuICAgIC4uLihuYW1lICYmIHtuYW1lOiBwYXJzZVN0cmluZyhuYW1lLCAxNjApfSksXG4gICAgLi4uKHBhcmVudElkICYmIHtwYXJlbnRJZDogcGFyc2VJZChwYXJlbnRJZCl9KSxcbiAgICAuLi4oKF9pZCB8fCBpZCB8fCBfa2V5IHx8IHBvc3RJZCkgJiYge2lkOiBwYXJzZUFyYW5nb0lkKF9pZCB8fCBpZCB8fCBgcG9zdHMvJHtfa2V5IHx8IHBvc3RJZH1gKX0pLFxuICAgIC4uLigoX2tleSB8fCBwb3N0SWQpICYmIHtwb3N0SWQ6IHBhcnNlSWQoX2tleSB8fCBwb3N0SWQgfHwgJycpfSksXG4gICAgLi4uKHByaXZhY3kgJiYge3ByaXZhY3k6IHBhcnNlVmFyQ2hhcihwcml2YWN5LCAxNil9KSxcbiAgICAuLi4odGFncz8ubGVuZ3RoICYmIHt0YWdzOiB0YWdzLm1hcCgodGFnKSA9PiBwYXJzZVRhZyh0YWcpKX0pLFxuICAgIC4uLih0eXBlICYmIHt0eXBlOiBwYXJzZVJlYWt0b3JUeXBlKHR5cGUpfSksXG4gICAgLi4uKHVzZXJJZCAmJiB7dXNlcklkOiBwYXJzZUlkKHVzZXJJZCl9KVxuICB9KTtcblxuICByZXR1cm4gdHJhbnNmb3JtZWQ7XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLE9BQVEsaUJBQUFBLEVBQWUsV0FBQUMsRUFBUyxZQUFBQyxFQUFVLGVBQUFDLEVBQWEsZ0JBQUFDLE1BQW1CLGVBQzFFLE9BQVEsS0FBQUMsTUFBUSxNQUVoQixPQUFRLGlCQUFBQyxFQUFlLG1CQUFBQyxNQUFzQixpQ0FDN0MsT0FBUSxhQUFBQyxNQUFnQiw2QkFDeEIsT0FDRSx1QkFBQUMsRUFDQSxvQkFB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QUFTbEMsRUFBVWtDLENBQUksQ0FBQyxDQUFDLEVBQ2pFLEdBQUlaLEdBQVcsQ0FBQyxRQUFTN0IsRUFBUTZCLENBQU8sQ0FBQyxFQUN6QyxHQUFJRSxJQUFhLFFBQWEsQ0FBQyxTQUFVOUIsRUFBUzhCLEVBQVUsRUFBRSxDQUFDLEVBQy9ELEdBQUlDLEdBQVksQ0FBQyxTQUFVOUIsRUFBWThCLEVBQVUsR0FBRyxDQUFDLEVBQ3JELEdBQUlDLElBQWMsUUFBYSxDQUFDLFVBQVdoQyxFQUFTZ0MsRUFBVyxFQUFFLENBQUMsRUFDbEUsR0FBSUMsR0FBUSxDQUFDLEtBQU1oQyxFQUFZZ0MsRUFBTSxHQUFHLENBQUMsRUFDekMsR0FBSUMsR0FBWSxDQUFDLFNBQVVuQyxFQUFRbUMsQ0FBUSxDQUFDLEVBQzVDLElBQUtYLEdBQU9NLEdBQU1MLEdBQVFXLElBQVcsQ0FBQyxHQUFJckMsRUFBY3lCLEdBQU9NLEdBQU0sU0FBU0wsR0FBUVcsQ0FBTSxFQUFFLENBQUMsRUFDL0YsSUFBS1gsR0FBUVcsSUFBVyxDQUFDLE9BQVFwQyxFQUFReUIsR0FBUVcsR0FBVSxFQUFFLENBQUMsRUFDOUQsR0FBSUMsR0FBVyxDQUFDLFFBQVNsQyxFQUFha0MsRUFBUyxFQUFFLENBQUMsRUFDbEQsR0FBSUMsR0FBTSxRQUFVLENBQUMsS0FBTUEsRUFBSyxJQUFLSSxHQUFRL0IsRUFBUytCLENBQUcsQ0FBQyxDQUFDLEVBQzNELEdBQUlILEdBQVEsQ0FBQyxLQUFNN0IsRUFBaUI2QixDQUFJLENBQUMsRUFDekMsR0FBSUMsR0FBVSxDQUFDLE9BQVF4QyxFQUFRd0MsQ0FBTSxDQUFDLENBQ3hDLENBQUMsQ0FHSCIsCiAgIm5hbWVzIjogWyJwYXJzZUFyYW5nb0lkIiwgInBhcnNlSWQiLCAicGFyc2VOdW0iLCAicGFyc2VTdHJpbmciLCAicGFyc2VWYXJDaGFyIiwgInoiLCAicGFyc2VEb2N1bWVudCIsICJyZW1vdmVFbXB0eUtleXMiLCAicGFyc2VGaWxlIiwgInBhcnNlUmVha3RvckNvbnRlbnQiLCAicGFyc2VSZWFrdG9yRGF0ZSIsICJwYXJzZVJlYWt0b3JUeXBlIiwgInBhcnNlVGFnIiwgIk1BWF9DT05URU5UX0xFTkdUSCIsICJQb3N0VmFsaWRhdGlvbkVycm9yIiwgIm1lc3NhZ2UiLCAiZmllbGQiLCAiUG9zdElucHV0U2NoZW1hIiwgInZhbGlkYXRlUG9zdElucHV0IiwgInBvc3QiLCAiZXJyb3IiLCAiZmllbGRFcnJvcnMiLCAiZm9ybWF0UG9zdE91dHB1dCIsICJwYXJzZVBvc3QiLCAicGVyZm9ybVBvc3RUcmFuc2Zvcm1hdGlvbiIsICJfaWQiLCAiX2tleSIsICJjb250ZW50IiwgImVuZERhdGUiLCAiZmlsZXMiLCAiZ3JvdXBJZCIsICJpZCIsICJsYXRpdHVkZSIsICJsb2NhdGlvbiIsICJsb25naXR1ZGUiLCAibmFtZSIsICJwYXJlbnRJZCIsICJwb3N0SWQiLCAicHJpdmFjeSIsICJ0YWdzIiwgInR5cGUiLCAidXNlcklkIiwgImZpbGUiLCAidGFnIl0KfQo=
1
+ import { parseArangoId, parseId, parseNum, parseString, parseVarChar } from '@nlabs/utils';
2
+ import { z } from 'zod';
3
+ import { parseDocument, removeEmptyKeys } from '../arangoAdapter/arangoAdapter.js';
4
+ import { parseFile } from '../fileAdapter/fileAdapter.js';
5
+ import { parseReaktorContent, parseReaktorDate, parseReaktorType } from '../reaktorAdapter/reaktorAdapter.js';
6
+ import { parseTag } from '../tagAdapter/tagAdapter.js';
7
+ const MAX_CONTENT_LENGTH = 100000;
8
+ export class PostValidationError extends Error {
9
+ field;
10
+ constructor(message, field){
11
+ super(message), this.field = field;
12
+ this.name = 'PostValidationError';
13
+ }
14
+ }
15
+ const PostInputSchema = z.object({
16
+ content: z.string().optional(),
17
+ endDate: z.number().optional(),
18
+ files: z.array(z.any()).optional(),
19
+ groupId: z.string().optional(),
20
+ postId: z.string().optional(),
21
+ latitude: z.number().optional(),
22
+ location: z.string().optional(),
23
+ longitude: z.number().optional(),
24
+ name: z.string().optional(),
25
+ parentId: z.string().optional(),
26
+ privacy: z.string().optional(),
27
+ startDate: z.number().optional(),
28
+ tags: z.array(z.any()).optional(),
29
+ type: z.string().optional(),
30
+ userId: z.string().optional(),
31
+ _id: z.string().optional(),
32
+ _key: z.string().optional(),
33
+ _rev: z.string().optional(),
34
+ _oldRev: z.string().optional(),
35
+ _from: z.string().optional(),
36
+ _to: z.string().optional()
37
+ }).loose();
38
+ export const validatePostInput = (post)=>{
39
+ try {
40
+ const validated = PostInputSchema.parse(post);
41
+ return validated;
42
+ } catch (error) {
43
+ if (error instanceof z.ZodError) {
44
+ const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
45
+ throw new PostValidationError(`Post validation failed: ${fieldErrors}`);
46
+ }
47
+ throw error;
48
+ }
49
+ };
50
+ export const formatPostOutput = (post)=>post;
51
+ export const parsePost = (post)=>{
52
+ try {
53
+ const parsed = performPostTransformation(post);
54
+ return parsed;
55
+ } catch (error) {
56
+ if (error instanceof PostValidationError) {
57
+ throw error;
58
+ }
59
+ throw new PostValidationError(`Post parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
60
+ }
61
+ };
62
+ const performPostTransformation = (post)=>{
63
+ const { _id, _key, content, endDate, files, groupId, id, latitude, location, longitude, name, parentId, postId, privacy, tags, type, userId } = post;
64
+ const transformed = removeEmptyKeys({
65
+ ...parseDocument(post),
66
+ ...content && {
67
+ content: parseReaktorContent(content, MAX_CONTENT_LENGTH)
68
+ },
69
+ ...endDate !== undefined && {
70
+ endDate: parseReaktorDate(endDate)
71
+ },
72
+ ...files?.length && {
73
+ files: files.map((file)=>parseFile(file))
74
+ },
75
+ ...groupId && {
76
+ groupId: parseId(groupId)
77
+ },
78
+ ...latitude !== undefined && {
79
+ latitude: parseNum(latitude, 15)
80
+ },
81
+ ...location && {
82
+ location: parseString(location, 160)
83
+ },
84
+ ...longitude !== undefined && {
85
+ longitude: parseNum(longitude, 15)
86
+ },
87
+ ...name && {
88
+ name: parseString(name, 160)
89
+ },
90
+ ...parentId && {
91
+ parentId: parseId(parentId)
92
+ },
93
+ ...(_id || id || _key || postId) && {
94
+ id: parseArangoId(_id || id || `posts/${_key || postId}`)
95
+ },
96
+ ...(_key || postId) && {
97
+ postId: parseId(_key || postId || '')
98
+ },
99
+ ...privacy && {
100
+ privacy: parseVarChar(privacy, 16)
101
+ },
102
+ ...tags?.length && {
103
+ tags: tags.map((tag)=>parseTag(tag))
104
+ },
105
+ ...type && {
106
+ type: parseReaktorType(type)
107
+ },
108
+ ...userId && {
109
+ userId: parseId(userId)
110
+ }
111
+ });
112
+ return transformed;
113
+ };
114
+
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvcG9zdEFkYXB0ZXIvcG9zdEFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VBcmFuZ29JZCwgcGFyc2VJZCwgcGFyc2VOdW0sIHBhcnNlU3RyaW5nLCBwYXJzZVZhckNoYXIgfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7IHBhcnNlRG9jdW1lbnQsIHJlbW92ZUVtcHR5S2V5cyB9IGZyb20gJy4uL2FyYW5nb0FkYXB0ZXIvYXJhbmdvQWRhcHRlci5qcyc7XG5pbXBvcnQgeyBwYXJzZUZpbGUgfSBmcm9tICcuLi9maWxlQWRhcHRlci9maWxlQWRhcHRlci5qcyc7XG5pbXBvcnQge1xuICAgIHBhcnNlUmVha3RvckNvbnRlbnQsXG4gICAgcGFyc2VSZWFrdG9yRGF0ZSxcbiAgICBwYXJzZVJlYWt0b3JUeXBlXG59IGZyb20gJy4uL3JlYWt0b3JBZGFwdGVyL3JlYWt0b3JBZGFwdGVyLmpzJztcbmltcG9ydCB7IHBhcnNlVGFnIH0gZnJvbSAnLi4vdGFnQWRhcHRlci90YWdBZGFwdGVyLmpzJztcblxuY29uc3QgTUFYX0NPTlRFTlRfTEVOR1RIOiBudW1iZXIgPSAxMDAwMDA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9zdFR5cGUge1xuICBfaWQ/OiBzdHJpbmc7XG4gIF9rZXk/OiBzdHJpbmc7XG4gIF9yZXY/OiBzdHJpbmc7XG4gIF9vbGRSZXY/OiBzdHJpbmc7XG4gIF9mcm9tPzogc3RyaW5nO1xuICBfdG8/OiBzdHJpbmc7XG4gIGNvbnRlbnQ/OiBzdHJpbmc7XG4gIGVuZERhdGU/OiBudW1iZXI7XG4gIGZpbGVzPzogYW55W107XG4gIGdyb3VwSWQ/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBsYXRpdHVkZT86IG51bWJlcjtcbiAgbG9jYXRpb24/OiBzdHJpbmc7XG4gIGxvbmdpdHVkZT86IG51bWJlcjtcbiAgbmFtZT86IHN0cmluZztcbiAgcGFyZW50SWQ/OiBzdHJpbmc7XG4gIHBvc3RJZD86IHN0cmluZztcbiAgcHJpdmFjeT86IHN0cmluZztcbiAgc3RhcnREYXRlPzogbnVtYmVyO1xuICB0YWdzPzogYW55W107XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgY2xhc3MgUG9zdFZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnUG9zdFZhbGlkYXRpb25FcnJvcic7XG4gIH1cbn1cblxuY29uc3QgUG9zdElucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBjb250ZW50OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGVuZERhdGU6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgZmlsZXM6IHouYXJyYXkoei5hbnkoKSkub3B0aW9uYWwoKSxcbiAgZ3JvdXBJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwb3N0SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbGF0aXR1ZGU6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgbG9jYXRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbG9uZ2l0dWRlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIG5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcGFyZW50SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcHJpdmFjeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBzdGFydERhdGU6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgdGFnczogei5hcnJheSh6LmFueSgpKS5vcHRpb25hbCgpLFxuICB0eXBlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHVzZXJJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2tleTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfcmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9vbGRSZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2Zyb206IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3RvOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pLmxvb3NlKCk7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVBvc3RJbnB1dCA9IChwb3N0OiB1bmtub3duKTogUG9zdFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IFBvc3RJbnB1dFNjaGVtYS5wYXJzZShwb3N0KTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIFBvc3RUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZEVycm9ycyA9IGVycm9yLmlzc3Vlcy5tYXAoKGUpID0+IGAke2UucGF0aC5qb2luKCcuJyl9OiAke2UubWVzc2FnZX1gKS5qb2luKCcsICcpO1xuICAgICAgdGhyb3cgbmV3IFBvc3RWYWxpZGF0aW9uRXJyb3IoYFBvc3QgdmFsaWRhdGlvbiBmYWlsZWQ6ICR7ZmllbGRFcnJvcnN9YCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0UG9zdE91dHB1dCA9IChwb3N0OiBQb3N0VHlwZSk6IFBvc3RUeXBlID0+IHBvc3Q7XG5cbmV4cG9ydCBjb25zdCBwYXJzZVBvc3QgPSAocG9zdDogUG9zdFR5cGUpOiBQb3N0VHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGVyZm9ybVBvc3RUcmFuc2Zvcm1hdGlvbihwb3N0KTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiBQb3N0VmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFBvc3RWYWxpZGF0aW9uRXJyb3IoYFBvc3QgcGFyc2luZyBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCk7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1Qb3N0VHJhbnNmb3JtYXRpb24gPSAocG9zdDogUG9zdFR5cGUpOiBQb3N0VHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfaWQsXG4gICAgX2tleSxcbiAgICBjb250ZW50LFxuICAgIGVuZERhdGUsXG4gICAgZmlsZXMsXG4gICAgZ3JvdXBJZCxcbiAgICBpZCxcbiAgICBsYXRpdHVkZSxcbiAgICBsb2NhdGlvbixcbiAgICBsb25naXR1ZGUsXG4gICAgbmFtZSxcbiAgICBwYXJlbnRJZCxcbiAgICBwb3N0SWQsXG4gICAgcHJpdmFjeSxcbiAgICB0YWdzLFxuICAgIHR5cGUsXG4gICAgdXNlcklkXG4gIH0gPSBwb3N0O1xuXG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gcmVtb3ZlRW1wdHlLZXlzKHtcbiAgICAuLi5wYXJzZURvY3VtZW50KHBvc3QpLFxuICAgIC4uLihjb250ZW50ICYmIHtjb250ZW50OiBwYXJzZVJlYWt0b3JDb250ZW50KGNvbnRlbnQsIE1BWF9DT05URU5UX0xFTkdUSCl9KSxcbiAgICAuLi4oZW5kRGF0ZSAhPT0gdW5kZWZpbmVkICYmIHtlbmREYXRlOiBwYXJzZVJlYWt0b3JEYXRlKGVuZERhdGUpfSksXG4gICAgLi4uKGZpbGVzPy5sZW5ndGggJiYge2ZpbGVzOiBmaWxlcy5tYXAoKGZpbGUpID0+IHBhcnNlRmlsZShmaWxlKSl9KSxcbiAgICAuLi4oZ3JvdXBJZCAmJiB7Z3JvdXBJZDogcGFyc2VJZChncm91cElkKX0pLFxuICAgIC4uLihsYXRpdHVkZSAhPT0gdW5kZWZpbmVkICYmIHtsYXRpdHVkZTogcGFyc2VOdW0obGF0aXR1ZGUsIDE1KX0pLFxuICAgIC4uLihsb2NhdGlvbiAmJiB7bG9jYXRpb246IHBhcnNlU3RyaW5nKGxvY2F0aW9uLCAxNjApfSksXG4gICAgLi4uKGxvbmdpdHVkZSAhPT0gdW5kZWZpbmVkICYmIHtsb25naXR1ZGU6IHBhcnNlTnVtKGxvbmdpdHVkZSwgMTUpfSksXG4gICAgLi4uKG5hbWUgJiYge25hbWU6IHBhcnNlU3RyaW5nKG5hbWUsIDE2MCl9KSxcbiAgICAuLi4ocGFyZW50SWQgJiYge3BhcmVudElkOiBwYXJzZUlkKHBhcmVudElkKX0pLFxuICAgIC4uLigoX2lkIHx8IGlkIHx8IF9rZXkgfHwgcG9zdElkKSAmJiB7aWQ6IHBhcnNlQXJhbmdvSWQoX2lkIHx8IGlkIHx8IGBwb3N0cy8ke19rZXkgfHwgcG9zdElkfWApfSksXG4gICAgLi4uKChfa2V5IHx8IHBvc3RJZCkgJiYge3Bvc3RJZDogcGFyc2VJZChfa2V5IHx8IHBvc3RJZCB8fCAnJyl9KSxcbiAgICAuLi4ocHJpdmFjeSAmJiB7cHJpdmFjeTogcGFyc2VWYXJDaGFyKHByaXZhY3ksIDE2KX0pLFxuICAgIC4uLih0YWdzPy5sZW5ndGggJiYge3RhZ3M6IHRhZ3MubWFwKCh0YWcpID0+IHBhcnNlVGFnKHRhZykpfSksXG4gICAgLi4uKHR5cGUgJiYge3R5cGU6IHBhcnNlUmVha3RvclR5cGUodHlwZSl9KSxcbiAgICAuLi4odXNlcklkICYmIHt1c2VySWQ6IHBhcnNlSWQodXNlcklkKX0pXG4gIH0pO1xuXG4gIHJldHVybiB0cmFuc2Zvcm1lZDtcbn07Il0sIm5hbWVzIjpbInBhcnNlQXJhbmdvSWQiLCJwYXJzZUlkIiwicGFyc2VOdW0iLCJwYXJzZVN0cmluZyIsInBhcnNlVmFyQ2hhciIsInoiLCJwYXJzZURvY3VtZW50IiwicmVtb3ZlRW1wdHlLZXlzIiwicGFyc2VGaWxlIiwicGFyc2VSZWFrdG9yQ29udGVudCIsInBhcnNlUmVha3RvckRhdGUiLCJwYXJzZVJlYWt0b3JUeXBlIiwicGFyc2VUYWciLCJNQVhfQ09OVEVOVF9MRU5HVEgiLCJQb3N0VmFsaWRhdGlvbkVycm9yIiwiRXJyb3IiLCJtZXNzYWdlIiwiZmllbGQiLCJuYW1lIiwiUG9zdElucHV0U2NoZW1hIiwib2JqZWN0IiwiY29udGVudCIsInN0cmluZyIsIm9wdGlvbmFsIiwiZW5kRGF0ZSIsIm51bWJlciIsImZpbGVzIiwiYXJyYXkiLCJhbnkiLCJncm91cElkIiwicG9zdElkIiwibGF0aXR1ZGUiLCJsb2NhdGlvbiIsImxvbmdpdHVkZSIsInBhcmVudElkIiwicHJpdmFjeSIsInN0YXJ0RGF0ZSIsInRhZ3MiLCJ0eXBlIiwidXNlcklkIiwiX2lkIiwiX2tleSIsIl9yZXYiLCJfb2xkUmV2IiwiX2Zyb20iLCJfdG8iLCJsb29zZSIsInZhbGlkYXRlUG9zdElucHV0IiwicG9zdCIsInZhbGlkYXRlZCIsInBhcnNlIiwiZXJyb3IiLCJab2RFcnJvciIsImZpZWxkRXJyb3JzIiwiaXNzdWVzIiwibWFwIiwiZSIsInBhdGgiLCJqb2luIiwiZm9ybWF0UG9zdE91dHB1dCIsInBhcnNlUG9zdCIsInBhcnNlZCIsInBlcmZvcm1Qb3N0VHJhbnNmb3JtYXRpb24iLCJpZCIsInRyYW5zZm9ybWVkIiwidW5kZWZpbmVkIiwibGVuZ3RoIiwiZmlsZSIsInRhZyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsYUFBYSxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxZQUFZLFFBQVEsZUFBZTtBQUMzRixTQUFTQyxDQUFDLFFBQVEsTUFBTTtBQUV4QixTQUFTQyxhQUFhLEVBQUVDLGVBQWUsUUFBUSxvQ0FBb0M7QUFDbkYsU0FBU0MsU0FBUyxRQUFRLGdDQUFnQztBQUMxRCxTQUNJQyxtQkFBbUIsRUFDbkJDLGdCQUFnQixFQUNoQkMsZ0JBQWdCLFFBQ2Isc0NBQXNDO0FBQzdDLFNBQVNDLFFBQVEsUUFBUSw4QkFBOEI7QUFFdkQsTUFBTUMscUJBQTZCO0FBNEJuQyxPQUFPLE1BQU1DLDRCQUE0QkM7O0lBQ3ZDLFlBQVlDLE9BQWUsRUFBRSxBQUFPQyxLQUFjLENBQUU7UUFDbEQsS0FBSyxDQUFDRCxlQUQ0QkMsUUFBQUE7UUFFbEMsSUFBSSxDQUFDQyxJQUFJLEdBQUc7SUFDZDtBQUNGO0FBRUEsTUFBTUMsa0JBQWtCZCxFQUFFZSxNQUFNLENBQUM7SUFDL0JDLFNBQVNoQixFQUFFaUIsTUFBTSxHQUFHQyxRQUFRO0lBQzVCQyxTQUFTbkIsRUFBRW9CLE1BQU0sR0FBR0YsUUFBUTtJQUM1QkcsT0FBT3JCLEVBQUVzQixLQUFLLENBQUN0QixFQUFFdUIsR0FBRyxJQUFJTCxRQUFRO0lBQ2hDTSxTQUFTeEIsRUFBRWlCLE1BQU0sR0FBR0MsUUFBUTtJQUM1Qk8sUUFBUXpCLEVBQUVpQixNQUFNLEdBQUdDLFFBQVE7SUFDM0JRLFVBQVUxQixFQUFFb0IsTUFBTSxHQUFHRixRQUFRO0lBQzdCUyxVQUFVM0IsRUFBRWlCLE1BQU0sR0FBR0MsUUFBUTtJQUM3QlUsV0FBVzVCLEVBQUVvQixNQUFNLEdBQUdGLFFBQVE7SUFDOUJMLE1BQU1iLEVBQUVpQixNQUFNLEdBQUdDLFFBQVE7SUFDekJXLFVBQVU3QixFQUFFaUIsTUFBTSxHQUFHQyxRQUFRO0lBQzdCWSxTQUFTOUIsRUFBRWlCLE1BQU0sR0FBR0MsUUFBUTtJQUM1QmEsV0FBVy9CLEVBQUVvQixNQUFNLEdBQUdGLFFBQVE7SUFDOUJjLE1BQU1oQyxFQUFFc0IsS0FBSyxDQUFDdEIsRUFBRXVCLEdBQUcsSUFBSUwsUUFBUTtJQUMvQmUsTUFBTWpDLEVBQUVpQixNQUFNLEdBQUdDLFFBQVE7SUFDekJnQixRQUFRbEMsRUFBRWlCLE1BQU0sR0FBR0MsUUFBUTtJQUMzQmlCLEtBQUtuQyxFQUFFaUIsTUFBTSxHQUFHQyxRQUFRO0lBQ3hCa0IsTUFBTXBDLEVBQUVpQixNQUFNLEdBQUdDLFFBQVE7SUFDekJtQixNQUFNckMsRUFBRWlCLE1BQU0sR0FBR0MsUUFBUTtJQUN6Qm9CLFNBQVN0QyxFQUFFaUIsTUFBTSxHQUFHQyxRQUFRO0lBQzVCcUIsT0FBT3ZDLEVBQUVpQixNQUFNLEdBQUdDLFFBQVE7SUFDMUJzQixLQUFLeEMsRUFBRWlCLE1BQU0sR0FBR0MsUUFBUTtBQUMxQixHQUFHdUIsS0FBSztBQUVSLE9BQU8sTUFBTUMsb0JBQW9CLENBQUNDO0lBQ2hDLElBQUk7UUFDRixNQUFNQyxZQUFZOUIsZ0JBQWdCK0IsS0FBSyxDQUFDRjtRQUN4QyxPQUFPQztJQUNULEVBQUUsT0FBTUUsT0FBTztRQUNiLElBQUdBLGlCQUFpQjlDLEVBQUUrQyxRQUFRLEVBQUU7WUFDOUIsTUFBTUMsY0FBY0YsTUFBTUcsTUFBTSxDQUFDQyxHQUFHLENBQUMsQ0FBQ0MsSUFBTSxHQUFHQSxFQUFFQyxJQUFJLENBQUNDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRUYsRUFBRXhDLE9BQU8sRUFBRSxFQUFFMEMsSUFBSSxDQUFDO1lBQ3RGLE1BQU0sSUFBSTVDLG9CQUFvQixDQUFDLHdCQUF3QixFQUFFdUMsYUFBYTtRQUN4RTtRQUNBLE1BQU1GO0lBQ1I7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNUSxtQkFBbUIsQ0FBQ1gsT0FBNkJBLEtBQUs7QUFFbkUsT0FBTyxNQUFNWSxZQUFZLENBQUNaO0lBQ3hCLElBQUk7UUFDRixNQUFNYSxTQUFTQywwQkFBMEJkO1FBQ3pDLE9BQU9hO0lBQ1QsRUFBRSxPQUFNVixPQUFPO1FBQ2IsSUFBR0EsaUJBQWlCckMscUJBQXFCO1lBQ3ZDLE1BQU1xQztRQUNSO1FBQ0EsTUFBTSxJQUFJckMsb0JBQW9CLENBQUMscUJBQXFCLEVBQUVxQyxpQkFBaUJwQyxRQUFRb0MsTUFBTW5DLE9BQU8sR0FBRyxpQkFBaUI7SUFDbEg7QUFDRixFQUFFO0FBRUYsTUFBTThDLDRCQUE0QixDQUFDZDtJQUNqQyxNQUFNLEVBQ0pSLEdBQUcsRUFDSEMsSUFBSSxFQUNKcEIsT0FBTyxFQUNQRyxPQUFPLEVBQ1BFLEtBQUssRUFDTEcsT0FBTyxFQUNQa0MsRUFBRSxFQUNGaEMsUUFBUSxFQUNSQyxRQUFRLEVBQ1JDLFNBQVMsRUFDVGYsSUFBSSxFQUNKZ0IsUUFBUSxFQUNSSixNQUFNLEVBQ05LLE9BQU8sRUFDUEUsSUFBSSxFQUNKQyxJQUFJLEVBQ0pDLE1BQU0sRUFDUCxHQUFHUztJQUVKLE1BQU1nQixjQUFjekQsZ0JBQWdCO1FBQ2xDLEdBQUdELGNBQWMwQyxLQUFLO1FBQ3RCLEdBQUkzQixXQUFXO1lBQUNBLFNBQVNaLG9CQUFvQlksU0FBU1I7UUFBbUIsQ0FBQztRQUMxRSxHQUFJVyxZQUFZeUMsYUFBYTtZQUFDekMsU0FBU2QsaUJBQWlCYztRQUFRLENBQUM7UUFDakUsR0FBSUUsT0FBT3dDLFVBQVU7WUFBQ3hDLE9BQU9BLE1BQU02QixHQUFHLENBQUMsQ0FBQ1ksT0FBUzNELFVBQVUyRDtRQUFNLENBQUM7UUFDbEUsR0FBSXRDLFdBQVc7WUFBQ0EsU0FBUzVCLFFBQVE0QjtRQUFRLENBQUM7UUFDMUMsR0FBSUUsYUFBYWtDLGFBQWE7WUFBQ2xDLFVBQVU3QixTQUFTNkIsVUFBVTtRQUFHLENBQUM7UUFDaEUsR0FBSUMsWUFBWTtZQUFDQSxVQUFVN0IsWUFBWTZCLFVBQVU7UUFBSSxDQUFDO1FBQ3RELEdBQUlDLGNBQWNnQyxhQUFhO1lBQUNoQyxXQUFXL0IsU0FBUytCLFdBQVc7UUFBRyxDQUFDO1FBQ25FLEdBQUlmLFFBQVE7WUFBQ0EsTUFBTWYsWUFBWWUsTUFBTTtRQUFJLENBQUM7UUFDMUMsR0FBSWdCLFlBQVk7WUFBQ0EsVUFBVWpDLFFBQVFpQztRQUFTLENBQUM7UUFDN0MsR0FBSSxBQUFDTSxDQUFBQSxPQUFPdUIsTUFBTXRCLFFBQVFYLE1BQUssS0FBTTtZQUFDaUMsSUFBSS9ELGNBQWN3QyxPQUFPdUIsTUFBTSxDQUFDLE1BQU0sRUFBRXRCLFFBQVFYLFFBQVE7UUFBQyxDQUFDO1FBQ2hHLEdBQUksQUFBQ1csQ0FBQUEsUUFBUVgsTUFBSyxLQUFNO1lBQUNBLFFBQVE3QixRQUFRd0MsUUFBUVgsVUFBVTtRQUFHLENBQUM7UUFDL0QsR0FBSUssV0FBVztZQUFDQSxTQUFTL0IsYUFBYStCLFNBQVM7UUFBRyxDQUFDO1FBQ25ELEdBQUlFLE1BQU02QixVQUFVO1lBQUM3QixNQUFNQSxLQUFLa0IsR0FBRyxDQUFDLENBQUNhLE1BQVF4RCxTQUFTd0Q7UUFBSyxDQUFDO1FBQzVELEdBQUk5QixRQUFRO1lBQUNBLE1BQU0zQixpQkFBaUIyQjtRQUFLLENBQUM7UUFDMUMsR0FBSUMsVUFBVTtZQUFDQSxRQUFRdEMsUUFBUXNDO1FBQU8sQ0FBQztJQUN6QztJQUVBLE9BQU95QjtBQUNUIn0=