@nlabs/metropolisjs 0.1.1 → 0.2.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 (326) 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 +1343 -0
  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/factory-pattern-usage.ts +283 -0
  19. package/examples/i18n-import-examples.ts +86 -0
  20. package/examples/i18n-namespace-usage.ts +118 -0
  21. package/examples/i18next-singleton-demo.ts +187 -0
  22. package/examples/permission-system-usage.tsx +415 -0
  23. package/examples/project-details.tsx +397 -0
  24. package/examples/shared-i18n-usage.tsx +203 -0
  25. package/examples/signup-error-handling.ts +100 -0
  26. package/examples/translation-types.ts +86 -0
  27. package/examples/translation-usage.tsx +336 -0
  28. package/factoryPatternGuide.md +244 -0
  29. package/index.js +1 -0
  30. package/jest.config.mjs +28 -0
  31. package/lex.config.mjs +26 -0
  32. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts +22 -0
  33. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts.map +1 -0
  34. package/lib/__tests__/e2e/helpers/testGraphQLServer.js +197 -0
  35. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts +3 -0
  36. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts.map +1 -0
  37. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.js +52 -0
  38. package/lib/actions/appActions/appActions.d.ts +29 -0
  39. package/lib/actions/appActions/appActions.d.ts.map +1 -0
  40. package/lib/actions/appActions/appActions.js +159 -0
  41. package/lib/actions/connectionActions/connectionActions.d.ts +19 -0
  42. package/lib/actions/connectionActions/connectionActions.d.ts.map +1 -0
  43. package/lib/actions/connectionActions/connectionActions.js +131 -0
  44. package/lib/actions/contentActions/contentActions.d.ts +34 -0
  45. package/lib/actions/contentActions/contentActions.d.ts.map +1 -0
  46. package/lib/actions/contentActions/contentActions.js +314 -0
  47. package/lib/actions/conversationActions/conversationActions.d.ts +30 -0
  48. package/lib/actions/conversationActions/conversationActions.d.ts.map +1 -0
  49. package/lib/actions/conversationActions/conversationActions.js +225 -0
  50. package/lib/actions/eventActions/eventActions.d.ts +65 -0
  51. package/lib/actions/eventActions/eventActions.d.ts.map +1 -0
  52. package/lib/actions/eventActions/eventActions.js +436 -0
  53. package/lib/actions/groupActions/groupActions.d.ts +30 -0
  54. package/lib/actions/groupActions/groupActions.d.ts.map +1 -0
  55. package/lib/actions/groupActions/groupActions.js +229 -0
  56. package/lib/actions/imageActions/imageActions.d.ts +62 -0
  57. package/lib/actions/imageActions/imageActions.d.ts.map +1 -0
  58. package/lib/actions/imageActions/imageActions.js +593 -0
  59. package/lib/actions/index.d.ts +21 -0
  60. package/lib/actions/index.d.ts.map +1 -0
  61. package/lib/actions/index.js +22 -0
  62. package/lib/actions/locationActions/locationActions.d.ts +60 -0
  63. package/lib/actions/locationActions/locationActions.d.ts.map +1 -0
  64. package/lib/actions/locationActions/locationActions.js +388 -0
  65. package/lib/actions/messageActions/messageActions.d.ts +38 -0
  66. package/lib/actions/messageActions/messageActions.d.ts.map +1 -0
  67. package/lib/actions/messageActions/messageActions.js +235 -0
  68. package/lib/actions/permissionActions/permissionActions.d.ts +34 -0
  69. package/lib/actions/permissionActions/permissionActions.d.ts.map +1 -0
  70. package/lib/actions/permissionActions/permissionActions.js +330 -0
  71. package/lib/actions/personaActions/personaActions.d.ts +65 -0
  72. package/lib/actions/personaActions/personaActions.d.ts.map +1 -0
  73. package/lib/actions/personaActions/personaActions.js +572 -0
  74. package/lib/actions/postActions/postActions.d.ts +36 -0
  75. package/lib/actions/postActions/postActions.d.ts.map +1 -0
  76. package/lib/actions/postActions/postActions.js +447 -0
  77. package/lib/actions/reactionActions/reactionActions.d.ts +38 -0
  78. package/lib/actions/reactionActions/reactionActions.d.ts.map +1 -0
  79. package/lib/actions/reactionActions/reactionActions.js +413 -0
  80. package/lib/actions/sseActions/sseActions.d.ts +38 -0
  81. package/lib/actions/sseActions/sseActions.d.ts.map +1 -0
  82. package/lib/actions/sseActions/sseActions.js +148 -0
  83. package/lib/actions/subscriptionActions/subscriptionActions.d.ts +24 -0
  84. package/lib/actions/subscriptionActions/subscriptionActions.d.ts.map +1 -0
  85. package/lib/actions/subscriptionActions/subscriptionActions.js +329 -0
  86. package/lib/actions/tagActions/tagActions.d.ts +37 -0
  87. package/lib/actions/tagActions/tagActions.d.ts.map +1 -0
  88. package/lib/actions/tagActions/tagActions.js +347 -0
  89. package/lib/actions/translationActions/translationActions.d.ts +38 -0
  90. package/lib/actions/translationActions/translationActions.d.ts.map +1 -0
  91. package/lib/actions/translationActions/translationActions.js +189 -0
  92. package/lib/actions/userActions/userActions.d.ts +78 -0
  93. package/lib/actions/userActions/userActions.d.ts.map +1 -0
  94. package/lib/actions/userActions/userActions.js +844 -0
  95. package/lib/actions/videoActions/videoActions.d.ts +41 -0
  96. package/lib/actions/videoActions/videoActions.d.ts.map +1 -0
  97. package/lib/actions/videoActions/videoActions.js +532 -0
  98. package/lib/actions/websocketActions/websocketActions.d.ts +30 -0
  99. package/lib/actions/websocketActions/websocketActions.d.ts.map +1 -0
  100. package/lib/actions/websocketActions/websocketActions.js +377 -0
  101. package/lib/adapters/appAdapter/appAdapter.d.ts +8 -0
  102. package/lib/adapters/appAdapter/appAdapter.d.ts.map +1 -0
  103. package/lib/adapters/appAdapter/appAdapter.js +90 -0
  104. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +21 -0
  105. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +1 -0
  106. package/lib/adapters/arangoAdapter/arangoAdapter.js +75 -0
  107. package/lib/adapters/contentAdapter/contentAdapter.d.ts +32 -0
  108. package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +1 -0
  109. package/lib/adapters/contentAdapter/contentAdapter.js +107 -0
  110. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +24 -0
  111. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +1 -0
  112. package/lib/adapters/conversationAdapter/conversationAdapter.js +75 -0
  113. package/lib/adapters/eventAdapter/eventAdapter.d.ts +46 -0
  114. package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +1 -0
  115. package/lib/adapters/eventAdapter/eventAdapter.js +162 -0
  116. package/lib/adapters/fileAdapter/fileAdapter.d.ts +30 -0
  117. package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +1 -0
  118. package/lib/adapters/fileAdapter/fileAdapter.js +118 -0
  119. package/lib/adapters/groupAdapter/groupAdapter.d.ts +28 -0
  120. package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +1 -0
  121. package/lib/adapters/groupAdapter/groupAdapter.js +66 -0
  122. package/lib/adapters/imageAdapter/imageAdapter.d.ts +38 -0
  123. package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +1 -0
  124. package/lib/adapters/imageAdapter/imageAdapter.js +134 -0
  125. package/lib/adapters/index.d.ts +34 -0
  126. package/lib/adapters/index.d.ts.map +1 -0
  127. package/lib/adapters/index.js +19 -0
  128. package/lib/adapters/locationAdapter/locationAdapter.d.ts +28 -0
  129. package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +1 -0
  130. package/lib/adapters/locationAdapter/locationAdapter.js +95 -0
  131. package/lib/adapters/messageAdapter/messageAdapter.d.ts +31 -0
  132. package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +1 -0
  133. package/lib/adapters/messageAdapter/messageAdapter.js +82 -0
  134. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts +41 -0
  135. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +1 -0
  136. package/lib/adapters/permissionAdapter/permissionAdapter.js +120 -0
  137. package/lib/adapters/personaAdapter/personaAdapter.d.ts +44 -0
  138. package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +1 -0
  139. package/lib/adapters/personaAdapter/personaAdapter.js +161 -0
  140. package/lib/adapters/postAdapter/postAdapter.d.ts +33 -0
  141. package/lib/adapters/postAdapter/postAdapter.d.ts.map +1 -0
  142. package/lib/adapters/postAdapter/postAdapter.js +115 -0
  143. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +23 -0
  144. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +1 -0
  145. package/lib/adapters/reactionAdapter/reactionAdapter.js +81 -0
  146. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +17 -0
  147. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +1 -0
  148. package/lib/adapters/reaktorAdapter/reaktorAdapter.js +58 -0
  149. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +24 -0
  150. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +1 -0
  151. package/lib/adapters/sessionAdapter/sessionAdapter.js +80 -0
  152. package/lib/adapters/tagAdapter/tagAdapter.d.ts +21 -0
  153. package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +1 -0
  154. package/lib/adapters/tagAdapter/tagAdapter.js +98 -0
  155. package/lib/adapters/translationAdapter/translationAdapter.d.ts +21 -0
  156. package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +1 -0
  157. package/lib/adapters/translationAdapter/translationAdapter.js +55 -0
  158. package/lib/adapters/userAdapter/userAdapter.d.ts +67 -0
  159. package/lib/adapters/userAdapter/userAdapter.d.ts.map +1 -0
  160. package/lib/adapters/userAdapter/userAdapter.js +302 -0
  161. package/lib/adapters/videoAdapter/videoAdapter.d.ts +8 -0
  162. package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +1 -0
  163. package/lib/adapters/videoAdapter/videoAdapter.js +194 -0
  164. package/lib/config/index.d.ts +44 -0
  165. package/lib/config/index.d.ts.map +1 -0
  166. package/lib/config/index.js +97 -0
  167. package/lib/constants/Collections.d.ts +44 -0
  168. package/lib/constants/Collections.d.ts.map +1 -0
  169. package/lib/constants/Collections.js +40 -0
  170. package/lib/constants/MetropolisConstants.d.ts +15 -0
  171. package/lib/constants/MetropolisConstants.d.ts.map +1 -0
  172. package/lib/constants/MetropolisConstants.js +15 -0
  173. package/lib/graphql/message.d.ts +3 -0
  174. package/lib/graphql/message.d.ts.map +1 -0
  175. package/lib/graphql/message.js +20 -0
  176. package/lib/graphql/notification.d.ts +3 -0
  177. package/lib/graphql/notification.d.ts.map +1 -0
  178. package/lib/graphql/notification.js +20 -0
  179. package/lib/graphql/session.d.ts +2 -0
  180. package/lib/graphql/session.d.ts.map +1 -0
  181. package/lib/graphql/session.js +17 -0
  182. package/lib/index.d.ts +52 -0
  183. package/lib/index.d.ts.map +1 -0
  184. package/lib/index.js +248 -0
  185. package/lib/stores/appStore.d.ts +23 -0
  186. package/lib/stores/appStore.d.ts.map +1 -0
  187. package/lib/stores/appStore.js +23 -0
  188. package/lib/stores/contentStore.d.ts +36 -0
  189. package/lib/stores/contentStore.d.ts.map +1 -0
  190. package/lib/stores/contentStore.js +139 -0
  191. package/lib/stores/conversationStore.d.ts +38 -0
  192. package/lib/stores/conversationStore.d.ts.map +1 -0
  193. package/lib/stores/conversationStore.js +117 -0
  194. package/lib/stores/eventStore.d.ts +37 -0
  195. package/lib/stores/eventStore.d.ts.map +1 -0
  196. package/lib/stores/eventStore.js +47 -0
  197. package/lib/stores/groupStore.d.ts +37 -0
  198. package/lib/stores/groupStore.d.ts.map +1 -0
  199. package/lib/stores/groupStore.js +68 -0
  200. package/lib/stores/imageStore.d.ts +40 -0
  201. package/lib/stores/imageStore.d.ts.map +1 -0
  202. package/lib/stores/imageStore.js +53 -0
  203. package/lib/stores/index.d.ts +24 -0
  204. package/lib/stores/index.d.ts.map +1 -0
  205. package/lib/stores/index.js +24 -0
  206. package/lib/stores/locationStore.d.ts +34 -0
  207. package/lib/stores/locationStore.d.ts.map +1 -0
  208. package/lib/stores/locationStore.js +42 -0
  209. package/lib/stores/messageStore.d.ts +51 -0
  210. package/lib/stores/messageStore.d.ts.map +1 -0
  211. package/lib/stores/messageStore.js +137 -0
  212. package/lib/stores/notificationStore.d.ts +33 -0
  213. package/lib/stores/notificationStore.d.ts.map +1 -0
  214. package/lib/stores/notificationStore.js +55 -0
  215. package/lib/stores/permissionStore.d.ts +37 -0
  216. package/lib/stores/permissionStore.d.ts.map +1 -0
  217. package/lib/stores/permissionStore.js +117 -0
  218. package/lib/stores/personaStore.d.ts +26 -0
  219. package/lib/stores/personaStore.d.ts.map +1 -0
  220. package/lib/stores/personaStore.js +118 -0
  221. package/lib/stores/postStore.d.ts +34 -0
  222. package/lib/stores/postStore.d.ts.map +1 -0
  223. package/lib/stores/postStore.js +53 -0
  224. package/lib/stores/reactionStore.d.ts +25 -0
  225. package/lib/stores/reactionStore.d.ts.map +1 -0
  226. package/lib/stores/reactionStore.js +28 -0
  227. package/lib/stores/subscriptionStore.d.ts +41 -0
  228. package/lib/stores/subscriptionStore.d.ts.map +1 -0
  229. package/lib/stores/subscriptionStore.js +85 -0
  230. package/lib/stores/tagStore.d.ts +34 -0
  231. package/lib/stores/tagStore.d.ts.map +1 -0
  232. package/lib/stores/tagStore.js +87 -0
  233. package/lib/stores/translationStore.d.ts +42 -0
  234. package/lib/stores/translationStore.d.ts.map +1 -0
  235. package/lib/stores/translationStore.js +122 -0
  236. package/lib/stores/userStore.d.ts +74 -0
  237. package/lib/stores/userStore.d.ts.map +1 -0
  238. package/lib/stores/userStore.js +319 -0
  239. package/lib/stores/videoStore.d.ts +39 -0
  240. package/lib/stores/videoStore.d.ts.map +1 -0
  241. package/lib/stores/videoStore.js +132 -0
  242. package/lib/stores/websocketStore.d.ts +24 -0
  243. package/lib/stores/websocketStore.d.ts.map +1 -0
  244. package/lib/stores/websocketStore.js +51 -0
  245. package/lib/types/apps.types.d.ts +17 -0
  246. package/lib/types/apps.types.d.ts.map +1 -0
  247. package/lib/types/apps.types.js +6 -0
  248. package/lib/types/common.types.d.ts +31 -0
  249. package/lib/types/common.types.d.ts.map +1 -0
  250. package/lib/types/common.types.js +6 -0
  251. package/lib/types/conversations.types.d.ts +17 -0
  252. package/lib/types/conversations.types.d.ts.map +1 -0
  253. package/lib/types/conversations.types.js +6 -0
  254. package/lib/types/edges.types.d.ts +38 -0
  255. package/lib/types/edges.types.d.ts.map +1 -0
  256. package/lib/types/edges.types.js +6 -0
  257. package/lib/types/groups.types.d.ts +19 -0
  258. package/lib/types/groups.types.d.ts.map +1 -0
  259. package/lib/types/groups.types.js +6 -0
  260. package/lib/types/index.d.ts +12 -0
  261. package/lib/types/index.d.ts.map +1 -0
  262. package/lib/types/index.js +12 -0
  263. package/lib/types/subscriptions.types.d.ts +32 -0
  264. package/lib/types/subscriptions.types.d.ts.map +1 -0
  265. package/lib/types/subscriptions.types.js +6 -0
  266. package/lib/types/videos.types.d.ts +61 -0
  267. package/lib/types/videos.types.d.ts.map +1 -0
  268. package/lib/types/videos.types.js +6 -0
  269. package/lib/utils/MetropolisProvider.d.ts +58 -0
  270. package/lib/utils/MetropolisProvider.d.ts.map +1 -0
  271. package/lib/utils/MetropolisProvider.js +31 -0
  272. package/lib/utils/actionFactory.d.ts +24 -0
  273. package/lib/utils/actionFactory.d.ts.map +1 -0
  274. package/lib/utils/actionFactory.js +95 -0
  275. package/lib/utils/api.d.ts +44 -0
  276. package/lib/utils/api.d.ts.map +1 -0
  277. package/lib/utils/api.js +253 -0
  278. package/lib/utils/app.d.ts +7 -0
  279. package/lib/utils/app.d.ts.map +1 -0
  280. package/lib/utils/app.js +15 -0
  281. package/lib/utils/baseActionFactory.d.ts +16 -0
  282. package/lib/utils/baseActionFactory.d.ts.map +1 -0
  283. package/lib/utils/baseActionFactory.js +72 -0
  284. package/lib/utils/configUtils.d.ts +11 -0
  285. package/lib/utils/configUtils.d.ts.map +1 -0
  286. package/lib/utils/configUtils.js +20 -0
  287. package/lib/utils/dateUtils.d.ts +3 -0
  288. package/lib/utils/dateUtils.d.ts.map +1 -0
  289. package/lib/utils/dateUtils.js +11 -0
  290. package/lib/utils/file.d.ts +3 -0
  291. package/lib/utils/file.d.ts.map +1 -0
  292. package/lib/utils/file.js +156 -0
  293. package/lib/utils/i18n.d.ts +7 -0
  294. package/lib/utils/i18n.d.ts.map +1 -0
  295. package/lib/utils/i18n.js +96 -0
  296. package/lib/utils/index.d.ts +20 -0
  297. package/lib/utils/index.d.ts.map +1 -0
  298. package/lib/utils/index.js +26 -0
  299. package/lib/utils/location.d.ts +10 -0
  300. package/lib/utils/location.d.ts.map +1 -0
  301. package/lib/utils/location.js +82 -0
  302. package/lib/utils/permissionUtils.d.ts +22 -0
  303. package/lib/utils/permissionUtils.d.ts.map +1 -0
  304. package/lib/utils/permissionUtils.js +72 -0
  305. package/lib/utils/requestCache.d.ts +8 -0
  306. package/lib/utils/requestCache.d.ts.map +1 -0
  307. package/lib/utils/requestCache.js +53 -0
  308. package/lib/utils/session.d.ts +14 -0
  309. package/lib/utils/session.d.ts.map +1 -0
  310. package/lib/utils/session.js +107 -0
  311. package/lib/utils/useConversationTyping.d.ts +26 -0
  312. package/lib/utils/useConversationTyping.d.ts.map +1 -0
  313. package/lib/utils/useConversationTyping.js +117 -0
  314. package/lib/utils/useMetropolis.d.ts +67 -0
  315. package/lib/utils/useMetropolis.d.ts.map +1 -0
  316. package/lib/utils/useMetropolis.js +311 -0
  317. package/lib/utils/useTranslations.d.ts +16 -0
  318. package/lib/utils/useTranslations.d.ts.map +1 -0
  319. package/lib/utils/useTranslations.js +105 -0
  320. package/lib/utils/validatorFactory.d.ts +49 -0
  321. package/lib/utils/validatorFactory.d.ts.map +1 -0
  322. package/lib/utils/validatorFactory.js +95 -0
  323. package/package.json +75 -28
  324. package/temp_signin.ts +73 -0
  325. package/tsconfig.lint.json +25 -0
  326. package/tsconfig.test.json +14 -0
@@ -0,0 +1,95 @@
1
+ import { parseArangoId, parseChar, parseId, parseNum, parseString, parseVarChar } from '@nlabs/utils';
2
+ import { z } from 'zod';
3
+ import { parseDocument, removeEmptyKeys } from '../arangoAdapter/arangoAdapter.js';
4
+ export class LocationValidationError extends Error {
5
+ field;
6
+ constructor(message, field){
7
+ super(message), this.field = field;
8
+ this.name = 'LocationValidationError';
9
+ }
10
+ }
11
+ const LocationInputSchema = z.object({
12
+ _id: z.string().optional(),
13
+ _key: z.string().optional(),
14
+ _rev: z.string().optional(),
15
+ _oldRev: z.string().optional(),
16
+ _from: z.string().optional(),
17
+ _to: z.string().optional(),
18
+ address: z.string().max(128).optional(),
19
+ city: z.string().max(32).optional(),
20
+ country: z.string().max(2).optional(),
21
+ id: z.string().optional(),
22
+ latitude: z.number().optional(),
23
+ location: z.string().optional(),
24
+ locationId: z.string().optional(),
25
+ longitude: z.number().optional(),
26
+ state: z.string().max(2).optional(),
27
+ street: z.string().max(32).optional(),
28
+ zip: z.string().max(16).optional()
29
+ }).loose();
30
+ export const validateLocationInput = (location)=>{
31
+ try {
32
+ const validated = LocationInputSchema.parse(location);
33
+ return validated;
34
+ } catch (error) {
35
+ if (error instanceof z.ZodError) {
36
+ const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
37
+ throw new LocationValidationError(`Location validation failed: ${fieldErrors}`);
38
+ }
39
+ throw error;
40
+ }
41
+ };
42
+ export const formatLocationOutput = (location)=>location;
43
+ export const parseLocation = (location)=>{
44
+ try {
45
+ const parsed = performLocationTransformation(location);
46
+ return parsed;
47
+ } catch (error) {
48
+ if (error instanceof LocationValidationError) {
49
+ throw error;
50
+ }
51
+ throw new LocationValidationError(`Location parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
52
+ }
53
+ };
54
+ const performLocationTransformation = (location)=>{
55
+ const { _id, _key, address, city, country, id, latitude, location: locationStr, locationId, longitude, state, street, zip } = location;
56
+ const transformed = removeEmptyKeys({
57
+ ...parseDocument(location),
58
+ ...(_id || id || _key || locationId) && {
59
+ id: parseArangoId(_id || id || `locations/${_key || locationId}`)
60
+ },
61
+ ...(_key || locationId) && {
62
+ locationId: parseId(_key || locationId || '')
63
+ },
64
+ ...address && {
65
+ address: parseString(address, 128)
66
+ },
67
+ ...city && {
68
+ city: parseString(city, 32)
69
+ },
70
+ ...country && {
71
+ country: parseChar(country, 2)
72
+ },
73
+ ...latitude !== undefined && {
74
+ latitude: parseNum(latitude, 15)
75
+ },
76
+ ...locationStr && {
77
+ location: parseString(locationStr, 128)
78
+ },
79
+ ...longitude !== undefined && {
80
+ longitude: parseNum(longitude, 15)
81
+ },
82
+ ...state && {
83
+ state: parseChar(state, 2)
84
+ },
85
+ ...street && {
86
+ street: parseString(street, 32)
87
+ },
88
+ ...zip && {
89
+ zip: parseVarChar(zip, 16)
90
+ }
91
+ });
92
+ return transformed;
93
+ };
94
+
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvbG9jYXRpb25BZGFwdGVyL2xvY2F0aW9uQWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZUFyYW5nb0lkLCBwYXJzZUNoYXIsIHBhcnNlSWQsIHBhcnNlTnVtLCBwYXJzZVN0cmluZywgcGFyc2VWYXJDaGFyIH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuXG5pbXBvcnQgeyBwYXJzZURvY3VtZW50LCByZW1vdmVFbXB0eUtleXMgfSBmcm9tICcuLi9hcmFuZ29BZGFwdGVyL2FyYW5nb0FkYXB0ZXIuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uVHlwZSB7XG4gIF9pZD86IHN0cmluZztcbiAgX2tleT86IHN0cmluZztcbiAgX3Jldj86IHN0cmluZztcbiAgX29sZFJldj86IHN0cmluZztcbiAgX2Zyb20/OiBzdHJpbmc7XG4gIF90bz86IHN0cmluZztcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgY2l0eT86IHN0cmluZztcbiAgY291bnRyeT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGxhdGl0dWRlPzogbnVtYmVyO1xuICBsb2NhdGlvbj86IHN0cmluZztcbiAgbG9jYXRpb25JZD86IHN0cmluZztcbiAgbG9uZ2l0dWRlPzogbnVtYmVyO1xuICBzdGF0ZT86IHN0cmluZztcbiAgc3RyZWV0Pzogc3RyaW5nO1xuICB6aXA/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIExvY2F0aW9uVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmaWVsZD86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdMb2NhdGlvblZhbGlkYXRpb25FcnJvcic7XG4gIH1cbn1cblxuY29uc3QgTG9jYXRpb25JbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBhZGRyZXNzOiB6LnN0cmluZygpLm1heCgxMjgpLm9wdGlvbmFsKCksXG4gIGNpdHk6IHouc3RyaW5nKCkubWF4KDMyKS5vcHRpb25hbCgpLFxuICBjb3VudHJ5OiB6LnN0cmluZygpLm1heCgyKS5vcHRpb25hbCgpLFxuICBpZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBsYXRpdHVkZTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBsb2NhdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBsb2NhdGlvbklkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGxvbmdpdHVkZTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBzdGF0ZTogei5zdHJpbmcoKS5tYXgoMikub3B0aW9uYWwoKSxcbiAgc3RyZWV0OiB6LnN0cmluZygpLm1heCgzMikub3B0aW9uYWwoKSxcbiAgemlwOiB6LnN0cmluZygpLm1heCgxNikub3B0aW9uYWwoKVxufSkubG9vc2UoKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTG9jYXRpb25JbnB1dCA9IChsb2NhdGlvbjogdW5rbm93bik6IExvY2F0aW9uVHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdmFsaWRhdGVkID0gTG9jYXRpb25JbnB1dFNjaGVtYS5wYXJzZShsb2NhdGlvbik7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBMb2NhdGlvblR5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0gZXJyb3IuaXNzdWVzLm1hcCgoZSkgPT4gYCR7ZS5wYXRoLmpvaW4oJy4nKX06ICR7ZS5tZXNzYWdlfWApLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgTG9jYXRpb25WYWxpZGF0aW9uRXJyb3IoYExvY2F0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke2ZpZWxkRXJyb3JzfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdExvY2F0aW9uT3V0cHV0ID0gKGxvY2F0aW9uOiBMb2NhdGlvblR5cGUpOiBMb2NhdGlvblR5cGUgPT4gbG9jYXRpb247XG5cbmV4cG9ydCBjb25zdCBwYXJzZUxvY2F0aW9uID0gKGxvY2F0aW9uOiBMb2NhdGlvblR5cGUpOiBMb2NhdGlvblR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBlcmZvcm1Mb2NhdGlvblRyYW5zZm9ybWF0aW9uKGxvY2F0aW9uKTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiBMb2NhdGlvblZhbGlkYXRpb25FcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICAgIHRocm93IG5ldyBMb2NhdGlvblZhbGlkYXRpb25FcnJvcihgTG9jYXRpb24gcGFyc2luZyBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCk7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1Mb2NhdGlvblRyYW5zZm9ybWF0aW9uID0gKGxvY2F0aW9uOiBMb2NhdGlvblR5cGUpOiBMb2NhdGlvblR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgX2lkLFxuICAgIF9rZXksXG4gICAgYWRkcmVzcyxcbiAgICBjaXR5LFxuICAgIGNvdW50cnksXG4gICAgaWQsXG4gICAgbGF0aXR1ZGUsXG4gICAgbG9jYXRpb246IGxvY2F0aW9uU3RyLFxuICAgIGxvY2F0aW9uSWQsXG4gICAgbG9uZ2l0dWRlLFxuICAgIHN0YXRlLFxuICAgIHN0cmVldCxcbiAgICB6aXBcbiAgfSA9IGxvY2F0aW9uO1xuXG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gcmVtb3ZlRW1wdHlLZXlzKHtcbiAgICAuLi5wYXJzZURvY3VtZW50KGxvY2F0aW9uKSxcbiAgICAuLi4oKF9pZCB8fCBpZCB8fCBfa2V5IHx8IGxvY2F0aW9uSWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgYGxvY2F0aW9ucy8ke19rZXkgfHwgbG9jYXRpb25JZH1gKX0pLFxuICAgIC4uLigoX2tleSB8fCBsb2NhdGlvbklkKSAmJiB7bG9jYXRpb25JZDogcGFyc2VJZChfa2V5IHx8IGxvY2F0aW9uSWQgfHwgJycpfSksXG4gICAgLi4uKGFkZHJlc3MgJiYge2FkZHJlc3M6IHBhcnNlU3RyaW5nKGFkZHJlc3MsIDEyOCl9KSxcbiAgICAuLi4oY2l0eSAmJiB7Y2l0eTogcGFyc2VTdHJpbmcoY2l0eSwgMzIpfSksXG4gICAgLi4uKGNvdW50cnkgJiYge2NvdW50cnk6IHBhcnNlQ2hhcihjb3VudHJ5LCAyKX0pLFxuICAgIC4uLihsYXRpdHVkZSAhPT0gdW5kZWZpbmVkICYmIHtsYXRpdHVkZTogcGFyc2VOdW0obGF0aXR1ZGUsIDE1KX0pLFxuICAgIC4uLihsb2NhdGlvblN0ciAmJiB7bG9jYXRpb246IHBhcnNlU3RyaW5nKGxvY2F0aW9uU3RyLCAxMjgpfSksXG4gICAgLi4uKGxvbmdpdHVkZSAhPT0gdW5kZWZpbmVkICYmIHtsb25naXR1ZGU6IHBhcnNlTnVtKGxvbmdpdHVkZSwgMTUpfSksXG4gICAgLi4uKHN0YXRlICYmIHtzdGF0ZTogcGFyc2VDaGFyKHN0YXRlLCAyKX0pLFxuICAgIC4uLihzdHJlZXQgJiYge3N0cmVldDogcGFyc2VTdHJpbmcoc3RyZWV0LCAzMil9KSxcbiAgICAuLi4oemlwICYmIHt6aXA6IHBhcnNlVmFyQ2hhcih6aXAsIDE2KX0pXG4gIH0pO1xuXG4gIHJldHVybiB0cmFuc2Zvcm1lZDtcbn07Il0sIm5hbWVzIjpbInBhcnNlQXJhbmdvSWQiLCJwYXJzZUNoYXIiLCJwYXJzZUlkIiwicGFyc2VOdW0iLCJwYXJzZVN0cmluZyIsInBhcnNlVmFyQ2hhciIsInoiLCJwYXJzZURvY3VtZW50IiwicmVtb3ZlRW1wdHlLZXlzIiwiTG9jYXRpb25WYWxpZGF0aW9uRXJyb3IiLCJFcnJvciIsIm1lc3NhZ2UiLCJmaWVsZCIsIm5hbWUiLCJMb2NhdGlvbklucHV0U2NoZW1hIiwib2JqZWN0IiwiX2lkIiwic3RyaW5nIiwib3B0aW9uYWwiLCJfa2V5IiwiX3JldiIsIl9vbGRSZXYiLCJfZnJvbSIsIl90byIsImFkZHJlc3MiLCJtYXgiLCJjaXR5IiwiY291bnRyeSIsImlkIiwibGF0aXR1ZGUiLCJudW1iZXIiLCJsb2NhdGlvbiIsImxvY2F0aW9uSWQiLCJsb25naXR1ZGUiLCJzdGF0ZSIsInN0cmVldCIsInppcCIsImxvb3NlIiwidmFsaWRhdGVMb2NhdGlvbklucHV0IiwidmFsaWRhdGVkIiwicGFyc2UiLCJlcnJvciIsIlpvZEVycm9yIiwiZmllbGRFcnJvcnMiLCJpc3N1ZXMiLCJtYXAiLCJlIiwicGF0aCIsImpvaW4iLCJmb3JtYXRMb2NhdGlvbk91dHB1dCIsInBhcnNlTG9jYXRpb24iLCJwYXJzZWQiLCJwZXJmb3JtTG9jYXRpb25UcmFuc2Zvcm1hdGlvbiIsImxvY2F0aW9uU3RyIiwidHJhbnNmb3JtZWQiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxZQUFZLFFBQVEsZUFBZTtBQUN0RyxTQUFTQyxDQUFDLFFBQVEsTUFBTTtBQUV4QixTQUFTQyxhQUFhLEVBQUVDLGVBQWUsUUFBUSxvQ0FBb0M7QUF1Qm5GLE9BQU8sTUFBTUMsZ0NBQWdDQzs7SUFDM0MsWUFBWUMsT0FBZSxFQUFFLEFBQU9DLEtBQWMsQ0FBRTtRQUNsRCxLQUFLLENBQUNELGVBRDRCQyxRQUFBQTtRQUVsQyxJQUFJLENBQUNDLElBQUksR0FBRztJQUNkO0FBQ0Y7QUFFQSxNQUFNQyxzQkFBc0JSLEVBQUVTLE1BQU0sQ0FBQztJQUNuQ0MsS0FBS1YsRUFBRVcsTUFBTSxHQUFHQyxRQUFRO0lBQ3hCQyxNQUFNYixFQUFFVyxNQUFNLEdBQUdDLFFBQVE7SUFDekJFLE1BQU1kLEVBQUVXLE1BQU0sR0FBR0MsUUFBUTtJQUN6QkcsU0FBU2YsRUFBRVcsTUFBTSxHQUFHQyxRQUFRO0lBQzVCSSxPQUFPaEIsRUFBRVcsTUFBTSxHQUFHQyxRQUFRO0lBQzFCSyxLQUFLakIsRUFBRVcsTUFBTSxHQUFHQyxRQUFRO0lBQ3hCTSxTQUFTbEIsRUFBRVcsTUFBTSxHQUFHUSxHQUFHLENBQUMsS0FBS1AsUUFBUTtJQUNyQ1EsTUFBTXBCLEVBQUVXLE1BQU0sR0FBR1EsR0FBRyxDQUFDLElBQUlQLFFBQVE7SUFDakNTLFNBQVNyQixFQUFFVyxNQUFNLEdBQUdRLEdBQUcsQ0FBQyxHQUFHUCxRQUFRO0lBQ25DVSxJQUFJdEIsRUFBRVcsTUFBTSxHQUFHQyxRQUFRO0lBQ3ZCVyxVQUFVdkIsRUFBRXdCLE1BQU0sR0FBR1osUUFBUTtJQUM3QmEsVUFBVXpCLEVBQUVXLE1BQU0sR0FBR0MsUUFBUTtJQUM3QmMsWUFBWTFCLEVBQUVXLE1BQU0sR0FBR0MsUUFBUTtJQUMvQmUsV0FBVzNCLEVBQUV3QixNQUFNLEdBQUdaLFFBQVE7SUFDOUJnQixPQUFPNUIsRUFBRVcsTUFBTSxHQUFHUSxHQUFHLENBQUMsR0FBR1AsUUFBUTtJQUNqQ2lCLFFBQVE3QixFQUFFVyxNQUFNLEdBQUdRLEdBQUcsQ0FBQyxJQUFJUCxRQUFRO0lBQ25Da0IsS0FBSzlCLEVBQUVXLE1BQU0sR0FBR1EsR0FBRyxDQUFDLElBQUlQLFFBQVE7QUFDbEMsR0FBR21CLEtBQUs7QUFFUixPQUFPLE1BQU1DLHdCQUF3QixDQUFDUDtJQUNwQyxJQUFJO1FBQ0YsTUFBTVEsWUFBWXpCLG9CQUFvQjBCLEtBQUssQ0FBQ1Q7UUFDNUMsT0FBT1E7SUFDVCxFQUFFLE9BQU1FLE9BQU87UUFDYixJQUFHQSxpQkFBaUJuQyxFQUFFb0MsUUFBUSxFQUFFO1lBQzlCLE1BQU1DLGNBQWNGLE1BQU1HLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLElBQU0sR0FBR0EsRUFBRUMsSUFBSSxDQUFDQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUVGLEVBQUVuQyxPQUFPLEVBQUUsRUFBRXFDLElBQUksQ0FBQztZQUN0RixNQUFNLElBQUl2Qyx3QkFBd0IsQ0FBQyw0QkFBNEIsRUFBRWtDLGFBQWE7UUFDaEY7UUFDQSxNQUFNRjtJQUNSO0FBQ0YsRUFBRTtBQUVGLE9BQU8sTUFBTVEsdUJBQXVCLENBQUNsQixXQUF5Q0EsU0FBUztBQUV2RixPQUFPLE1BQU1tQixnQkFBZ0IsQ0FBQ25CO0lBQzVCLElBQUk7UUFDRixNQUFNb0IsU0FBU0MsOEJBQThCckI7UUFDN0MsT0FBT29CO0lBQ1QsRUFBRSxPQUFNVixPQUFPO1FBQ2IsSUFBR0EsaUJBQWlCaEMseUJBQXlCO1lBQzNDLE1BQU1nQztRQUNSO1FBQ0EsTUFBTSxJQUFJaEMsd0JBQXdCLENBQUMseUJBQXlCLEVBQUVnQyxpQkFBaUIvQixRQUFRK0IsTUFBTTlCLE9BQU8sR0FBRyxpQkFBaUI7SUFDMUg7QUFDRixFQUFFO0FBRUYsTUFBTXlDLGdDQUFnQyxDQUFDckI7SUFDckMsTUFBTSxFQUNKZixHQUFHLEVBQ0hHLElBQUksRUFDSkssT0FBTyxFQUNQRSxJQUFJLEVBQ0pDLE9BQU8sRUFDUEMsRUFBRSxFQUNGQyxRQUFRLEVBQ1JFLFVBQVVzQixXQUFXLEVBQ3JCckIsVUFBVSxFQUNWQyxTQUFTLEVBQ1RDLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxHQUFHLEVBQ0osR0FBR0w7SUFFSixNQUFNdUIsY0FBYzlDLGdCQUFnQjtRQUNsQyxHQUFHRCxjQUFjd0IsU0FBUztRQUMxQixHQUFJLEFBQUNmLENBQUFBLE9BQU9ZLE1BQU1ULFFBQVFhLFVBQVMsS0FBTTtZQUFDSixJQUFJNUIsY0FBY2dCLE9BQU9ZLE1BQU0sQ0FBQyxVQUFVLEVBQUVULFFBQVFhLFlBQVk7UUFBQyxDQUFDO1FBQzVHLEdBQUksQUFBQ2IsQ0FBQUEsUUFBUWEsVUFBUyxLQUFNO1lBQUNBLFlBQVk5QixRQUFRaUIsUUFBUWEsY0FBYztRQUFHLENBQUM7UUFDM0UsR0FBSVIsV0FBVztZQUFDQSxTQUFTcEIsWUFBWW9CLFNBQVM7UUFBSSxDQUFDO1FBQ25ELEdBQUlFLFFBQVE7WUFBQ0EsTUFBTXRCLFlBQVlzQixNQUFNO1FBQUcsQ0FBQztRQUN6QyxHQUFJQyxXQUFXO1lBQUNBLFNBQVMxQixVQUFVMEIsU0FBUztRQUFFLENBQUM7UUFDL0MsR0FBSUUsYUFBYTBCLGFBQWE7WUFBQzFCLFVBQVUxQixTQUFTMEIsVUFBVTtRQUFHLENBQUM7UUFDaEUsR0FBSXdCLGVBQWU7WUFBQ3RCLFVBQVUzQixZQUFZaUQsYUFBYTtRQUFJLENBQUM7UUFDNUQsR0FBSXBCLGNBQWNzQixhQUFhO1lBQUN0QixXQUFXOUIsU0FBUzhCLFdBQVc7UUFBRyxDQUFDO1FBQ25FLEdBQUlDLFNBQVM7WUFBQ0EsT0FBT2pDLFVBQVVpQyxPQUFPO1FBQUUsQ0FBQztRQUN6QyxHQUFJQyxVQUFVO1lBQUNBLFFBQVEvQixZQUFZK0IsUUFBUTtRQUFHLENBQUM7UUFDL0MsR0FBSUMsT0FBTztZQUFDQSxLQUFLL0IsYUFBYStCLEtBQUs7UUFBRyxDQUFDO0lBQ3pDO0lBRUEsT0FBT2tCO0FBQ1QifQ==
@@ -0,0 +1,31 @@
1
+ import { User } from '../../adapters/userAdapter/userAdapter.js';
2
+ export interface MessageType {
3
+ readonly _id?: string;
4
+ readonly _key?: string;
5
+ readonly _rev?: string;
6
+ readonly _oldRev?: string;
7
+ readonly _from?: string;
8
+ readonly _to?: string;
9
+ readonly content?: string;
10
+ readonly conversationId?: string;
11
+ readonly files?: any[];
12
+ readonly id?: string;
13
+ readonly images?: any[];
14
+ readonly itemId?: string;
15
+ readonly itemType?: string;
16
+ readonly messageId?: string;
17
+ readonly personaId?: string;
18
+ readonly read?: boolean;
19
+ readonly saved?: boolean;
20
+ readonly user?: User;
21
+ readonly userId?: string;
22
+ [key: string]: any;
23
+ }
24
+ export declare class MessageValidationError extends Error {
25
+ field?: string;
26
+ constructor(message: string, field?: string);
27
+ }
28
+ export declare const validateMessageInput: (message: unknown) => MessageType;
29
+ export declare const formatMessageOutput: (message: MessageType) => MessageType;
30
+ export declare const parseMessage: (message: MessageType) => MessageType;
31
+ //# sourceMappingURL=messageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/messageAdapter/messageAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,IAAI,EAAC,MAAM,2CAA2C,CAAC;AAK/D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,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;AAsBD,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"}
@@ -0,0 +1,82 @@
1
+ import { parseArangoId, parseId } 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 { parseImage } from '../imageAdapter/imageAdapter.js';
6
+ export class MessageValidationError extends Error {
7
+ field;
8
+ constructor(message, field){
9
+ super(message), this.field = field;
10
+ this.name = 'MessageValidationError';
11
+ }
12
+ }
13
+ const MessageInputSchema = z.object({
14
+ content: z.string().optional(),
15
+ conversationId: z.string().optional(),
16
+ files: z.array(z.any()).optional(),
17
+ images: z.array(z.any()).optional(),
18
+ itemId: z.string().optional(),
19
+ itemType: z.string().optional(),
20
+ messageId: z.string().optional(),
21
+ personaId: z.string().optional(),
22
+ read: z.boolean().optional(),
23
+ saved: z.boolean().optional(),
24
+ userId: z.string().optional(),
25
+ _id: z.string().optional(),
26
+ _key: z.string().optional(),
27
+ _rev: z.string().optional(),
28
+ _oldRev: z.string().optional(),
29
+ _from: z.string().optional(),
30
+ _to: z.string().optional()
31
+ }).loose();
32
+ export const validateMessageInput = (message)=>{
33
+ try {
34
+ const validated = MessageInputSchema.parse(message);
35
+ return validated;
36
+ } catch (error) {
37
+ if (error instanceof z.ZodError) {
38
+ const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
39
+ throw new MessageValidationError(`Message validation failed: ${fieldErrors}`);
40
+ }
41
+ throw error;
42
+ }
43
+ };
44
+ export const formatMessageOutput = (message)=>message;
45
+ export const parseMessage = (message)=>{
46
+ try {
47
+ const parsed = performMessageTransformation(message);
48
+ return parsed;
49
+ } catch (error) {
50
+ if (error instanceof MessageValidationError) {
51
+ throw error;
52
+ }
53
+ throw new MessageValidationError(`Message parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
54
+ }
55
+ };
56
+ const performMessageTransformation = (message)=>{
57
+ const { _id, _key, content, files, id, images, messageId, saved } = message;
58
+ const transformed = removeEmptyKeys({
59
+ ...parseDocument(message),
60
+ ...(_id || id || _key || messageId) && {
61
+ id: parseArangoId(_id || id || `messages/${_key || messageId}`)
62
+ },
63
+ ...(_key || messageId) && {
64
+ messageId: parseId(_key || messageId || '')
65
+ },
66
+ ...content && {
67
+ content
68
+ },
69
+ ...Array.isArray(files) && {
70
+ files: files.map(parseFile)
71
+ },
72
+ ...Array.isArray(images) && {
73
+ images: images.map(parseImage)
74
+ },
75
+ ...saved !== undefined && {
76
+ saved: !!saved
77
+ }
78
+ });
79
+ return transformed;
80
+ };
81
+
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWRhcHRlcnMvbWVzc2FnZUFkYXB0ZXIvbWVzc2FnZUFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwYXJzZUFyYW5nb0lkLCBwYXJzZUlkfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuXG5pbXBvcnQge1VzZXJ9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL3VzZXJBZGFwdGVyL3VzZXJBZGFwdGVyLmpzJztcbmltcG9ydCB7cGFyc2VEb2N1bWVudCwgcmVtb3ZlRW1wdHlLZXlzfSBmcm9tICcuLi9hcmFuZ29BZGFwdGVyL2FyYW5nb0FkYXB0ZXIuanMnO1xuaW1wb3J0IHtwYXJzZUZpbGV9IGZyb20gJy4uL2ZpbGVBZGFwdGVyL2ZpbGVBZGFwdGVyLmpzJztcbmltcG9ydCB7cGFyc2VJbWFnZX0gZnJvbSAnLi4vaW1hZ2VBZGFwdGVyL2ltYWdlQWRhcHRlci5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZVR5cGUge1xuICByZWFkb25seSBfaWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IF9rZXk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IF9yZXY/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IF9vbGRSZXY/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IF9mcm9tPzogc3RyaW5nO1xuICByZWFkb25seSBfdG8/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbnRlbnQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbnZlcnNhdGlvbklkPzogc3RyaW5nO1xuICByZWFkb25seSBmaWxlcz86IGFueVtdO1xuICByZWFkb25seSBpZD86IHN0cmluZztcbiAgcmVhZG9ubHkgaW1hZ2VzPzogYW55W107XG4gIHJlYWRvbmx5IGl0ZW1JZD86IHN0cmluZztcbiAgcmVhZG9ubHkgaXRlbVR5cGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1lc3NhZ2VJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgcGVyc29uYUlkPzogc3RyaW5nO1xuICByZWFkb25seSByZWFkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc2F2ZWQ/OiBib29sZWFuO1xuICByZWFkb25seSB1c2VyPzogVXNlcjtcbiAgcmVhZG9ubHkgdXNlcklkPzogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBNZXNzYWdlVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmaWVsZD86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdNZXNzYWdlVmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBNZXNzYWdlSW5wdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvbnRlbnQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgY29udmVyc2F0aW9uSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZmlsZXM6IHouYXJyYXkoei5hbnkoKSkub3B0aW9uYWwoKSxcbiAgaW1hZ2VzOiB6LmFycmF5KHouYW55KCkpLm9wdGlvbmFsKCksXG4gIGl0ZW1JZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpdGVtVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBtZXNzYWdlSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcGVyc29uYUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHJlYWQ6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIHNhdmVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KS5sb29zZSgpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVNZXNzYWdlSW5wdXQgPSAobWVzc2FnZTogdW5rbm93bik6IE1lc3NhZ2VUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBNZXNzYWdlSW5wdXRTY2hlbWEucGFyc2UobWVzc2FnZSk7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBNZXNzYWdlVHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5pc3N1ZXMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBNZXNzYWdlVmFsaWRhdGlvbkVycm9yKGBNZXNzYWdlIHZhbGlkYXRpb24gZmFpbGVkOiAke2ZpZWxkRXJyb3JzfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdE1lc3NhZ2VPdXRwdXQgPSAobWVzc2FnZTogTWVzc2FnZVR5cGUpOiBNZXNzYWdlVHlwZSA9PiBtZXNzYWdlO1xuXG5leHBvcnQgY29uc3QgcGFyc2VNZXNzYWdlID0gKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlKTogTWVzc2FnZVR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBlcmZvcm1NZXNzYWdlVHJhbnNmb3JtYXRpb24obWVzc2FnZSk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2YgTWVzc2FnZVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICAgIHRocm93IG5ldyBNZXNzYWdlVmFsaWRhdGlvbkVycm9yKGBNZXNzYWdlIHBhcnNpbmcgZmFpbGVkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfWApO1xuICB9XG59O1xuXG5jb25zdCBwZXJmb3JtTWVzc2FnZVRyYW5zZm9ybWF0aW9uID0gKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlKTogTWVzc2FnZVR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgX2lkLFxuICAgIF9rZXksXG4gICAgY29udGVudCxcbiAgICBmaWxlcyxcbiAgICBpZCxcbiAgICBpbWFnZXMsXG4gICAgbWVzc2FnZUlkLFxuICAgIHNhdmVkXG4gIH0gPSBtZXNzYWdlO1xuXG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gcmVtb3ZlRW1wdHlLZXlzKHtcbiAgICAuLi5wYXJzZURvY3VtZW50KG1lc3NhZ2UpLFxuICAgIC4uLigoX2lkIHx8IGlkIHx8IF9rZXkgfHwgbWVzc2FnZUlkKSAmJiB7aWQ6IHBhcnNlQXJhbmdvSWQoX2lkIHx8IGlkIHx8IGBtZXNzYWdlcy8ke19rZXkgfHwgbWVzc2FnZUlkfWApfSksXG4gICAgLi4uKChfa2V5IHx8IG1lc3NhZ2VJZCkgJiYge21lc3NhZ2VJZDogcGFyc2VJZChfa2V5IHx8IG1lc3NhZ2VJZCB8fCAnJyl9KSxcbiAgICAuLi4oY29udGVudCAmJiB7Y29udGVudH0pLFxuICAgIC4uLihBcnJheS5pc0FycmF5KGZpbGVzKSAmJiB7ZmlsZXM6IGZpbGVzLm1hcChwYXJzZUZpbGUpfSksXG4gICAgLi4uKEFycmF5LmlzQXJyYXkoaW1hZ2VzKSAmJiB7aW1hZ2VzOiBpbWFnZXMubWFwKHBhcnNlSW1hZ2UpfSksXG4gICAgLi4uKHNhdmVkICE9PSB1bmRlZmluZWQgJiYge3NhdmVkOiAhIXNhdmVkfSlcbiAgfSk7XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkO1xufTtcbiJdLCJuYW1lcyI6WyJwYXJzZUFyYW5nb0lkIiwicGFyc2VJZCIsInoiLCJwYXJzZURvY3VtZW50IiwicmVtb3ZlRW1wdHlLZXlzIiwicGFyc2VGaWxlIiwicGFyc2VJbWFnZSIsIk1lc3NhZ2VWYWxpZGF0aW9uRXJyb3IiLCJFcnJvciIsIm1lc3NhZ2UiLCJmaWVsZCIsIm5hbWUiLCJNZXNzYWdlSW5wdXRTY2hlbWEiLCJvYmplY3QiLCJjb250ZW50Iiwic3RyaW5nIiwib3B0aW9uYWwiLCJjb252ZXJzYXRpb25JZCIsImZpbGVzIiwiYXJyYXkiLCJhbnkiLCJpbWFnZXMiLCJpdGVtSWQiLCJpdGVtVHlwZSIsIm1lc3NhZ2VJZCIsInBlcnNvbmFJZCIsInJlYWQiLCJib29sZWFuIiwic2F2ZWQiLCJ1c2VySWQiLCJfaWQiLCJfa2V5IiwiX3JldiIsIl9vbGRSZXYiLCJfZnJvbSIsIl90byIsImxvb3NlIiwidmFsaWRhdGVNZXNzYWdlSW5wdXQiLCJ2YWxpZGF0ZWQiLCJwYXJzZSIsImVycm9yIiwiWm9kRXJyb3IiLCJmaWVsZEVycm9ycyIsImlzc3VlcyIsIm1hcCIsImUiLCJwYXRoIiwiam9pbiIsImZvcm1hdE1lc3NhZ2VPdXRwdXQiLCJwYXJzZU1lc3NhZ2UiLCJwYXJzZWQiLCJwZXJmb3JtTWVzc2FnZVRyYW5zZm9ybWF0aW9uIiwiaWQiLCJ0cmFuc2Zvcm1lZCIsIkFycmF5IiwiaXNBcnJheSIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsYUFBYSxFQUFFQyxPQUFPLFFBQU8sZUFBZTtBQUNwRCxTQUFRQyxDQUFDLFFBQU8sTUFBTTtBQUd0QixTQUFRQyxhQUFhLEVBQUVDLGVBQWUsUUFBTyxvQ0FBb0M7QUFDakYsU0FBUUMsU0FBUyxRQUFPLGdDQUFnQztBQUN4RCxTQUFRQyxVQUFVLFFBQU8sa0NBQWtDO0FBeUIzRCxPQUFPLE1BQU1DLCtCQUErQkM7O0lBQzFDLFlBQVlDLE9BQWUsRUFBRSxBQUFPQyxLQUFjLENBQUU7UUFDbEQsS0FBSyxDQUFDRCxlQUQ0QkMsUUFBQUE7UUFFbEMsSUFBSSxDQUFDQyxJQUFJLEdBQUc7SUFDZDtBQUNGO0FBRUEsTUFBTUMscUJBQXFCVixFQUFFVyxNQUFNLENBQUM7SUFDbENDLFNBQVNaLEVBQUVhLE1BQU0sR0FBR0MsUUFBUTtJQUM1QkMsZ0JBQWdCZixFQUFFYSxNQUFNLEdBQUdDLFFBQVE7SUFDbkNFLE9BQU9oQixFQUFFaUIsS0FBSyxDQUFDakIsRUFBRWtCLEdBQUcsSUFBSUosUUFBUTtJQUNoQ0ssUUFBUW5CLEVBQUVpQixLQUFLLENBQUNqQixFQUFFa0IsR0FBRyxJQUFJSixRQUFRO0lBQ2pDTSxRQUFRcEIsRUFBRWEsTUFBTSxHQUFHQyxRQUFRO0lBQzNCTyxVQUFVckIsRUFBRWEsTUFBTSxHQUFHQyxRQUFRO0lBQzdCUSxXQUFXdEIsRUFBRWEsTUFBTSxHQUFHQyxRQUFRO0lBQzlCUyxXQUFXdkIsRUFBRWEsTUFBTSxHQUFHQyxRQUFRO0lBQzlCVSxNQUFNeEIsRUFBRXlCLE9BQU8sR0FBR1gsUUFBUTtJQUMxQlksT0FBTzFCLEVBQUV5QixPQUFPLEdBQUdYLFFBQVE7SUFDM0JhLFFBQVEzQixFQUFFYSxNQUFNLEdBQUdDLFFBQVE7SUFDM0JjLEtBQUs1QixFQUFFYSxNQUFNLEdBQUdDLFFBQVE7SUFDeEJlLE1BQU03QixFQUFFYSxNQUFNLEdBQUdDLFFBQVE7SUFDekJnQixNQUFNOUIsRUFBRWEsTUFBTSxHQUFHQyxRQUFRO0lBQ3pCaUIsU0FBUy9CLEVBQUVhLE1BQU0sR0FBR0MsUUFBUTtJQUM1QmtCLE9BQU9oQyxFQUFFYSxNQUFNLEdBQUdDLFFBQVE7SUFDMUJtQixLQUFLakMsRUFBRWEsTUFBTSxHQUFHQyxRQUFRO0FBQzFCLEdBQUdvQixLQUFLO0FBRVIsT0FBTyxNQUFNQyx1QkFBdUIsQ0FBQzVCO0lBQ25DLElBQUk7UUFDRixNQUFNNkIsWUFBWTFCLG1CQUFtQjJCLEtBQUssQ0FBQzlCO1FBQzNDLE9BQU82QjtJQUNULEVBQUUsT0FBTUUsT0FBTztRQUNiLElBQUdBLGlCQUFpQnRDLEVBQUV1QyxRQUFRLEVBQUU7WUFDOUIsTUFBTUMsY0FBY0YsTUFBTUcsTUFBTSxDQUFDQyxHQUFHLENBQUMsQ0FBQ0MsSUFBTSxHQUFHQSxFQUFFQyxJQUFJLENBQUNDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRUYsRUFBRXBDLE9BQU8sRUFBRSxFQUFFc0MsSUFBSSxDQUFDO1lBQ3RGLE1BQU0sSUFBSXhDLHVCQUF1QixDQUFDLDJCQUEyQixFQUFFbUMsYUFBYTtRQUM5RTtRQUNBLE1BQU1GO0lBQ1I7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNUSxzQkFBc0IsQ0FBQ3ZDLFVBQXNDQSxRQUFRO0FBRWxGLE9BQU8sTUFBTXdDLGVBQWUsQ0FBQ3hDO0lBQzNCLElBQUk7UUFDRixNQUFNeUMsU0FBU0MsNkJBQTZCMUM7UUFDNUMsT0FBT3lDO0lBQ1QsRUFBRSxPQUFNVixPQUFPO1FBQ2IsSUFBR0EsaUJBQWlCakMsd0JBQXdCO1lBQzFDLE1BQU1pQztRQUNSO1FBQ0EsTUFBTSxJQUFJakMsdUJBQXVCLENBQUMsd0JBQXdCLEVBQUVpQyxpQkFBaUJoQyxRQUFRZ0MsTUFBTS9CLE9BQU8sR0FBRyxpQkFBaUI7SUFDeEg7QUFDRixFQUFFO0FBRUYsTUFBTTBDLCtCQUErQixDQUFDMUM7SUFDcEMsTUFBTSxFQUNKcUIsR0FBRyxFQUNIQyxJQUFJLEVBQ0pqQixPQUFPLEVBQ1BJLEtBQUssRUFDTGtDLEVBQUUsRUFDRi9CLE1BQU0sRUFDTkcsU0FBUyxFQUNUSSxLQUFLLEVBQ04sR0FBR25CO0lBRUosTUFBTTRDLGNBQWNqRCxnQkFBZ0I7UUFDbEMsR0FBR0QsY0FBY00sUUFBUTtRQUN6QixHQUFJLEFBQUNxQixDQUFBQSxPQUFPc0IsTUFBTXJCLFFBQVFQLFNBQVEsS0FBTTtZQUFDNEIsSUFBSXBELGNBQWM4QixPQUFPc0IsTUFBTSxDQUFDLFNBQVMsRUFBRXJCLFFBQVFQLFdBQVc7UUFBQyxDQUFDO1FBQ3pHLEdBQUksQUFBQ08sQ0FBQUEsUUFBUVAsU0FBUSxLQUFNO1lBQUNBLFdBQVd2QixRQUFROEIsUUFBUVAsYUFBYTtRQUFHLENBQUM7UUFDeEUsR0FBSVYsV0FBVztZQUFDQTtRQUFPLENBQUM7UUFDeEIsR0FBSXdDLE1BQU1DLE9BQU8sQ0FBQ3JDLFVBQVU7WUFBQ0EsT0FBT0EsTUFBTTBCLEdBQUcsQ0FBQ3ZDO1FBQVUsQ0FBQztRQUN6RCxHQUFJaUQsTUFBTUMsT0FBTyxDQUFDbEMsV0FBVztZQUFDQSxRQUFRQSxPQUFPdUIsR0FBRyxDQUFDdEM7UUFBVyxDQUFDO1FBQzdELEdBQUlzQixVQUFVNEIsYUFBYTtZQUFDNUIsT0FBTyxDQUFDLENBQUNBO1FBQUssQ0FBQztJQUM3QztJQUVBLE9BQU95QjtBQUNUIn0=
@@ -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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
@@ -0,0 +1,44 @@
1
+ export interface PersonaType {
2
+ _id?: string;
3
+ _key?: string;
4
+ _rev?: string;
5
+ _oldRev?: string;
6
+ _from?: string;
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;
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;
30
+ personaId?: string;
31
+ tags?: any[];
32
+ thumbUrl?: string;
33
+ userId?: string;
34
+ viewCount?: number;
35
+ [key: string]: any;
36
+ }
37
+ export declare class PersonaValidationError extends Error {
38
+ field?: string;
39
+ constructor(message: string, field?: string);
40
+ }
41
+ export declare const validatePersonaInput: (persona: unknown) => PersonaType;
42
+ export declare const formatPersonaOutput: (persona: PersonaType) => PersonaType;
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"}