@nlabs/reaktor 0.10.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/.env +1 -0
  2. package/.env.example +1 -0
  3. package/DATABASE_I18N_GUIDE.md +434 -0
  4. package/TEST_UTILITIES_GUIDE.md +360 -0
  5. package/coverage/index.html +46 -76
  6. package/index.js +1 -1
  7. package/jest.config.js +17 -0
  8. package/jest.setup.js +36 -0
  9. package/lex.config.cjs +2 -2
  10. package/lib/actions/apps.js +17 -239
  11. package/lib/actions/connections.js +6 -89
  12. package/lib/actions/content.js +17 -0
  13. package/lib/actions/conversations.js +19 -336
  14. package/lib/actions/dynamodb.js +2 -150
  15. package/lib/actions/email.js +2 -152
  16. package/lib/actions/files.js +5 -283
  17. package/lib/actions/groups.js +19 -259
  18. package/lib/actions/images.js +31 -700
  19. package/lib/actions/index.js +2 -66
  20. package/lib/actions/ios.js +9 -162
  21. package/lib/actions/locations.js +7 -122
  22. package/lib/actions/messages.js +21 -196
  23. package/lib/actions/notifications.js +2 -59
  24. package/lib/actions/payments.js +11 -464
  25. package/lib/actions/posts.js +75 -527
  26. package/lib/actions/profiles.js +8 -0
  27. package/lib/actions/reactions.js +25 -312
  28. package/lib/actions/s3.js +2 -133
  29. package/lib/actions/search.js +5 -90
  30. package/lib/actions/sms.js +2 -108
  31. package/lib/actions/statistics.js +6 -60
  32. package/lib/actions/subscriptions.js +12 -0
  33. package/lib/actions/tags.js +19 -287
  34. package/lib/actions/users.js +64 -764
  35. package/lib/actions/websockets.js +14 -158
  36. package/lib/adapters/arangoAdapter.js +2 -46
  37. package/lib/adapters/contentAdapter.js +2 -0
  38. package/lib/adapters/fileAdapter.js +2 -76
  39. package/lib/adapters/imageAdapter.js +2 -40
  40. package/lib/adapters/messageAdapter.js +2 -49
  41. package/lib/adapters/postAdapter.js +2 -70
  42. package/lib/adapters/reaktorAdapter.js +2 -44
  43. package/lib/adapters/tagAdapter.js +2 -50
  44. package/lib/adapters/userAdapter.js +2 -115
  45. package/lib/config.js +2 -125
  46. package/lib/handlers/graphqlHandler.js +2 -0
  47. package/lib/index.js +2 -66
  48. package/lib/lambdas/actions/websockets.js +14 -116
  49. package/lib/lambdas/authorizer.js +2 -67
  50. package/lib/lambdas/connection.js +2 -91
  51. package/lib/lambdas/utils/message.js +2 -42
  52. package/lib/lambdas/utils/websocket.js +2 -105
  53. package/lib/mocks/conversation.js +2 -35
  54. package/lib/mocks/file.js +2 -38
  55. package/lib/mocks/group.js +2 -47
  56. package/lib/mocks/image.js +2 -44
  57. package/lib/mocks/post.js +2 -55
  58. package/lib/mocks/tag.js +2 -37
  59. package/lib/mocks/user.js +2 -88
  60. package/lib/mutations/index.js +2 -26
  61. package/lib/mutations/locations.integration.js +2 -0
  62. package/lib/mutations/locations.js +2 -44
  63. package/lib/mutations/messages.integration.js +2 -0
  64. package/lib/mutations/messages.js +2 -86
  65. package/lib/mutations/posts.integration.js +2 -0
  66. package/lib/mutations/posts.js +2 -53
  67. package/lib/mutations/profiles.integration.js +2 -0
  68. package/lib/mutations/profiles.js +2 -0
  69. package/lib/mutations/reactions.integration.js +2 -0
  70. package/lib/mutations/reactions.js +2 -51
  71. package/lib/mutations/statistics.integration.js +2 -0
  72. package/lib/mutations/statistics.js +2 -39
  73. package/lib/mutations/subscriptions.integration.js +2 -0
  74. package/lib/mutations/subscriptions.js +2 -56
  75. package/lib/mutations/tags.integration.js +2 -0
  76. package/lib/mutations/tags.js +2 -120
  77. package/lib/mutations/users.integration.js +2 -0
  78. package/lib/mutations/users.js +2 -116
  79. package/lib/objectTypes/app.js +2 -173
  80. package/lib/objectTypes/bankAccount.js +2 -76
  81. package/lib/objectTypes/connection.js +2 -48
  82. package/lib/objectTypes/conversation.js +2 -77
  83. package/lib/objectTypes/creditCard.js +2 -86
  84. package/lib/objectTypes/document.js +2 -46
  85. package/lib/objectTypes/error.js +2 -46
  86. package/lib/objectTypes/external.js +2 -74
  87. package/lib/objectTypes/file.js +2 -100
  88. package/lib/objectTypes/filter.js +2 -43
  89. package/lib/objectTypes/group.js +2 -123
  90. package/lib/objectTypes/iapSubscription.js +2 -40
  91. package/lib/objectTypes/image.js +2 -129
  92. package/lib/objectTypes/index.js +2 -68
  93. package/lib/objectTypes/location.js +2 -109
  94. package/lib/objectTypes/message.js +2 -96
  95. package/lib/objectTypes/passcode.js +2 -42
  96. package/lib/objectTypes/plan.js +2 -95
  97. package/lib/objectTypes/post.js +2 -125
  98. package/lib/objectTypes/profile.js +2 -0
  99. package/lib/objectTypes/reaction.js +2 -61
  100. package/lib/objectTypes/relation.js +2 -49
  101. package/lib/objectTypes/search.js +2 -72
  102. package/lib/objectTypes/statistics.js +2 -39
  103. package/lib/objectTypes/subscription.js +2 -117
  104. package/lib/objectTypes/tag.js +2 -65
  105. package/lib/objectTypes/user.js +2 -144
  106. package/lib/queries/index.js +2 -33
  107. package/lib/queries/locations.integration.js +2 -0
  108. package/lib/queries/locations.js +2 -45
  109. package/lib/queries/messages.integration.js +2 -0
  110. package/lib/queries/messages.js +2 -52
  111. package/lib/queries/posts.integration.js +2 -0
  112. package/lib/queries/posts.js +2 -154
  113. package/lib/queries/reactions.integration.js +2 -0
  114. package/lib/queries/reactions.js +2 -56
  115. package/lib/queries/statistics.js +2 -39
  116. package/lib/queries/subscriptions.js +2 -44
  117. package/lib/queries/tags.integration.js +2 -0
  118. package/lib/queries/tags.js +2 -75
  119. package/lib/queries/users.integration.js +2 -0
  120. package/lib/queries/users.js +2 -64
  121. package/lib/templates/email/layout.js +3 -25
  122. package/lib/templates/email/passwordForgot.js +3 -25
  123. package/lib/templates/email/passwordRecovery.js +3 -25
  124. package/lib/templates/email/verifyEmail.js +3 -25
  125. package/lib/templates/email/welcome.js +3 -25
  126. package/lib/templates/sms/passwordForgot.js +2 -24
  127. package/lib/templates/sms/passwordRecovery.js +2 -24
  128. package/lib/templates/sms/verifyEmail.js +2 -24
  129. package/lib/templates/sms/verifyPhone.js +2 -24
  130. package/lib/templates/sms/welcome.js +2 -24
  131. package/lib/types/apps.types.js +2 -32
  132. package/lib/types/arangodb.types.js +1 -16
  133. package/lib/types/auth.types.js +1 -16
  134. package/lib/types/connections.types.js +1 -16
  135. package/lib/types/content.types.js +1 -0
  136. package/lib/types/conversations.types.js +1 -16
  137. package/lib/types/email.types.js +1 -16
  138. package/lib/types/error.types.js +2 -44
  139. package/lib/types/files.types.js +1 -16
  140. package/lib/types/google.types.js +1 -16
  141. package/lib/types/groups.types.js +1 -16
  142. package/lib/types/images.types.js +1 -16
  143. package/lib/types/index.js +2 -60
  144. package/lib/types/locations.types.js +1 -16
  145. package/lib/types/messages.types.js +1 -16
  146. package/lib/types/notifications.types.js +1 -16
  147. package/lib/types/payments.types.js +1 -16
  148. package/lib/types/posts.types.js +1 -16
  149. package/lib/types/profiles.types.js +1 -0
  150. package/lib/types/statistics.types.js +1 -16
  151. package/lib/types/tags.types.js +1 -16
  152. package/lib/types/users.types.js +1 -16
  153. package/lib/types/websockets.types.js +1 -16
  154. package/lib/utils/adapterUtils.js +2 -45
  155. package/lib/utils/analyticsUtils.js +2 -72
  156. package/lib/utils/arangodbUtils.js +5 -163
  157. package/lib/utils/authUtils.js +2 -0
  158. package/lib/utils/contextUtils.js +2 -0
  159. package/lib/utils/dbI18n.example.js +6 -0
  160. package/lib/utils/dbI18n.js +2 -0
  161. package/lib/utils/googleTranslate.js +2 -0
  162. package/lib/utils/graphqlUtils.js +2 -0
  163. package/lib/utils/index.js +2 -30
  164. package/lib/utils/languageDetection.js +2 -0
  165. package/lib/utils/localeUtils.example.js +2 -0
  166. package/lib/utils/localeUtils.js +2 -0
  167. package/lib/utils/middlewareUtils.js +2 -0
  168. package/lib/utils/sessionUtils.js +2 -0
  169. package/lib/utils/stripeUtils.js +2 -43
  170. package/lib/utils/templateUtils.js +2 -0
  171. package/lib/utils/testUtils.js +2 -0
  172. package/lib/utils/translationQueue.example.js +2 -0
  173. package/lib/utils/translationQueue.js +2 -0
  174. package/package.json +27 -24
  175. package/.prettierrc.js +0 -4
  176. package/lib/actions/apps.d.ts +0 -25
  177. package/lib/actions/connections.d.ts +0 -4
  178. package/lib/actions/conversations.d.ts +0 -14
  179. package/lib/actions/dynamodb.d.ts +0 -8
  180. package/lib/actions/email.d.ts +0 -5
  181. package/lib/actions/files.d.ts +0 -19
  182. package/lib/actions/groups.d.ts +0 -14
  183. package/lib/actions/images.d.ts +0 -26
  184. package/lib/actions/index.d.ts +0 -23
  185. package/lib/actions/ios.d.ts +0 -7
  186. package/lib/actions/locations.d.ts +0 -6
  187. package/lib/actions/messages.d.ts +0 -14
  188. package/lib/actions/notifications.d.ts +0 -5
  189. package/lib/actions/payments.d.ts +0 -10
  190. package/lib/actions/personas.d.ts +0 -3
  191. package/lib/actions/personas.js +0 -110
  192. package/lib/actions/posts.d.ts +0 -22
  193. package/lib/actions/reactions.d.ts +0 -30
  194. package/lib/actions/s3.d.ts +0 -7
  195. package/lib/actions/search.d.ts +0 -3
  196. package/lib/actions/sms.d.ts +0 -9
  197. package/lib/actions/statistics.d.ts +0 -3
  198. package/lib/actions/subscription.d.ts +0 -7
  199. package/lib/actions/subscription.js +0 -208
  200. package/lib/actions/tags.d.ts +0 -34
  201. package/lib/actions/users.d.ts +0 -72
  202. package/lib/actions/websockets.d.ts +0 -20
  203. package/lib/adapters/arangoAdapter.d.ts +0 -2
  204. package/lib/adapters/fileAdapter.d.ts +0 -3
  205. package/lib/adapters/imageAdapter.d.ts +0 -2
  206. package/lib/adapters/messageAdapter.d.ts +0 -2
  207. package/lib/adapters/postAdapter.d.ts +0 -2
  208. package/lib/adapters/reaktorAdapter.d.ts +0 -6
  209. package/lib/adapters/tagAdapter.d.ts +0 -2
  210. package/lib/adapters/userAdapter.d.ts +0 -2
  211. package/lib/config.d.ts +0 -20
  212. package/lib/index.d.ts +0 -12
  213. package/lib/lambdas/actions/websockets.d.ts +0 -7
  214. package/lib/lambdas/authorizer.d.ts +0 -20
  215. package/lib/lambdas/connection.d.ts +0 -12
  216. package/lib/lambdas/utils/message.d.ts +0 -1
  217. package/lib/lambdas/utils/websocket.d.ts +0 -7
  218. package/lib/mocks/conversation.d.ts +0 -8
  219. package/lib/mocks/file.d.ts +0 -11
  220. package/lib/mocks/group.d.ts +0 -17
  221. package/lib/mocks/image.d.ts +0 -3
  222. package/lib/mocks/post.d.ts +0 -38
  223. package/lib/mocks/tag.d.ts +0 -2
  224. package/lib/mocks/user.d.ts +0 -4
  225. package/lib/mutations/index.d.ts +0 -3
  226. package/lib/mutations/locations.d.ts +0 -2
  227. package/lib/mutations/messages.d.ts +0 -2
  228. package/lib/mutations/personas.d.ts +0 -2
  229. package/lib/mutations/personas.js +0 -100
  230. package/lib/mutations/posts.d.ts +0 -2
  231. package/lib/mutations/reactions.d.ts +0 -2
  232. package/lib/mutations/statistics.d.ts +0 -2
  233. package/lib/mutations/subscriptions.d.ts +0 -2
  234. package/lib/mutations/tags.d.ts +0 -2
  235. package/lib/mutations/users.d.ts +0 -1
  236. package/lib/objectTypes/app.d.ts +0 -3
  237. package/lib/objectTypes/bankAccount.d.ts +0 -1
  238. package/lib/objectTypes/connection.d.ts +0 -1
  239. package/lib/objectTypes/conversation.d.ts +0 -2
  240. package/lib/objectTypes/creditCard.d.ts +0 -1
  241. package/lib/objectTypes/document.d.ts +0 -1
  242. package/lib/objectTypes/error.d.ts +0 -1
  243. package/lib/objectTypes/external.d.ts +0 -1
  244. package/lib/objectTypes/file.d.ts +0 -2
  245. package/lib/objectTypes/filter.d.ts +0 -1
  246. package/lib/objectTypes/group.d.ts +0 -3
  247. package/lib/objectTypes/iapSubscription.d.ts +0 -1
  248. package/lib/objectTypes/image.d.ts +0 -2
  249. package/lib/objectTypes/index.d.ts +0 -24
  250. package/lib/objectTypes/location.d.ts +0 -2
  251. package/lib/objectTypes/message.d.ts +0 -2
  252. package/lib/objectTypes/passcode.d.ts +0 -1
  253. package/lib/objectTypes/persona.d.ts +0 -3
  254. package/lib/objectTypes/persona.js +0 -87
  255. package/lib/objectTypes/plan.d.ts +0 -2
  256. package/lib/objectTypes/post.d.ts +0 -2
  257. package/lib/objectTypes/reaction.d.ts +0 -2
  258. package/lib/objectTypes/relation.d.ts +0 -1
  259. package/lib/objectTypes/search.d.ts +0 -1
  260. package/lib/objectTypes/statistics.d.ts +0 -1
  261. package/lib/objectTypes/subscription.d.ts +0 -2
  262. package/lib/objectTypes/tag.d.ts +0 -2
  263. package/lib/objectTypes/user.d.ts +0 -4
  264. package/lib/queries/index.d.ts +0 -3
  265. package/lib/queries/locations.d.ts +0 -2
  266. package/lib/queries/messages.d.ts +0 -2
  267. package/lib/queries/posts.d.ts +0 -2
  268. package/lib/queries/reactions.d.ts +0 -2
  269. package/lib/queries/statistics.d.ts +0 -2
  270. package/lib/queries/subscriptions.d.ts +0 -2
  271. package/lib/queries/tags.d.ts +0 -2
  272. package/lib/queries/users.d.ts +0 -1
  273. package/lib/templates/email/layout.d.ts +0 -2
  274. package/lib/templates/email/passwordForgot.d.ts +0 -2
  275. package/lib/templates/email/passwordRecovery.d.ts +0 -2
  276. package/lib/templates/email/verifyEmail.d.ts +0 -2
  277. package/lib/templates/email/welcome.d.ts +0 -2
  278. package/lib/templates/sms/passwordForgot.d.ts +0 -2
  279. package/lib/templates/sms/passwordRecovery.d.ts +0 -2
  280. package/lib/templates/sms/verifyEmail.d.ts +0 -2
  281. package/lib/templates/sms/verifyPhone.d.ts +0 -2
  282. package/lib/templates/sms/welcome.d.ts +0 -2
  283. package/lib/types/apps.types.d.ts +0 -46
  284. package/lib/types/arangodb.types.d.ts +0 -34
  285. package/lib/types/auth.types.d.ts +0 -9
  286. package/lib/types/connections.types.d.ts +0 -5
  287. package/lib/types/conversations.types.d.ts +0 -27
  288. package/lib/types/email.types.d.ts +0 -13
  289. package/lib/types/error.types.d.ts +0 -20
  290. package/lib/types/files.types.d.ts +0 -23
  291. package/lib/types/google.types.d.ts +0 -29
  292. package/lib/types/groups.types.d.ts +0 -18
  293. package/lib/types/images.types.d.ts +0 -52
  294. package/lib/types/index.d.ts +0 -20
  295. package/lib/types/locations.types.d.ts +0 -18
  296. package/lib/types/messages.types.d.ts +0 -16
  297. package/lib/types/notifications.types.d.ts +0 -19
  298. package/lib/types/payments.types.d.ts +0 -109
  299. package/lib/types/personas.types.d.ts +0 -32
  300. package/lib/types/personas.types.js +0 -16
  301. package/lib/types/posts.types.d.ts +0 -28
  302. package/lib/types/statistics.types.d.ts +0 -3
  303. package/lib/types/tags.types.d.ts +0 -15
  304. package/lib/types/users.types.d.ts +0 -79
  305. package/lib/types/websockets.types.d.ts +0 -18
  306. package/lib/utils/adapterUtils.d.ts +0 -1
  307. package/lib/utils/analyticsUtils.d.ts +0 -21
  308. package/lib/utils/arangodbUtils.d.ts +0 -66
  309. package/lib/utils/auth.d.ts +0 -21
  310. package/lib/utils/auth.js +0 -57
  311. package/lib/utils/index.d.ts +0 -5
  312. package/lib/utils/session.d.ts +0 -18
  313. package/lib/utils/session.js +0 -60
  314. package/lib/utils/stripeUtils.d.ts +0 -3
@@ -1,82 +1,11 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var websockets_exports = {};
19
- __export(websockets_exports, {
20
- WebsocketClient: () => WebsocketClient,
21
- addSocket: () => addSocket,
22
- getConnectionByConvo: () => getConnectionByConvo,
23
- getSocketById: () => getSocketById,
24
- getSocketByUser: () => getSocketByUser,
25
- removeSocket: () => removeSocket
26
- });
27
- module.exports = __toCommonJS(websockets_exports);
28
- var import_client_apigatewaymanagementapi = require("@aws-sdk/client-apigatewaymanagementapi");
29
- var import_utils = require("@nlabs/utils");
30
- var import_arangojs = require("arangojs");
31
- var import_users = require("./users");
32
- var import_config = require("../config");
33
- var import_arangodbUtils = require("../utils/arangodbUtils");
34
- const addSocket = async (socketId, token) => {
35
- const action = "addSocket";
36
- const formatSocketId = (0, import_utils.parseString)(socketId, 32);
37
- const formatToken = (0, import_utils.parseString)(token);
38
- try {
39
- const database = (0, import_arangodbUtils.useDb)(process.env.ARANGODB_DATABASE);
40
- const user = await (0, import_users.getUserByToken)({ database, session: null }, formatToken);
41
- if (!user) {
42
- throw new Error("Unauthorized");
43
- }
44
- const update = {
45
- socketId: formatSocketId,
46
- modified: Date.now()
47
- };
48
- const insert = {
49
- ...update,
50
- _key: (0, import_utils.createHash)(`socket-${formatSocketId}`),
51
- userId: user.userId
52
- };
53
- const aqlQry = import_arangojs.aql`UPSERT {userId: ${user.userId}}
54
- INSERT ${insert}
55
- UPDATE ${update}
56
- IN sockets RETURN NEW`;
57
- return database.query(aqlQry).then((cursor) => cursor.next()).catch((error) => {
58
- throw error;
59
- });
60
- } catch (error) {
61
- throw new Error("Unauthorized");
62
- }
63
- };
64
- const getSocketByUser = (userId) => {
65
- const formatUserId = (0, import_utils.parseId)(userId);
66
- const db = (0, import_arangodbUtils.useDb)(process.env.ARANGODB_DATABASE);
67
- const aqlQry = import_arangojs.aql`FOR s IN sockets
68
- FILTER s.userId == ${formatUserId}
1
+ import{ApiGatewayManagementApi as R}from"@aws-sdk/client-apigatewaymanagementapi";import{createHash as N,parseId as u,parseString as p}from"@nlabs/utils";import{aql as d}from"arangojs";import{Config as g}from"../config";import{getUserByToken as y}from"./users";import{useDb as I}from"../utils/arangodbUtils";const S=async(r,t)=>{const n="addSocket",s=p(r,32),o=p(t);try{const e=process.env.ARANGODB_DATABASE,a=I(e),i=await y({config:g.get(),databaseName:e,session:null},o);if(!i)throw new Error("Unauthorized");const c={socketId:s,modified:Date.now()},l={...c,_key:N(`socket-${s}`),userId:i.userId},E=d`UPSERT {userId: ${i.userId}}
2
+ INSERT ${l}
3
+ UPDATE ${c}
4
+ IN sockets RETURN NEW`;return a.query(E).then(m=>m.next()).catch(m=>{throw m})}catch{throw new Error("Unauthorized")}},w=r=>{const t=u(r),n=process.env.ARANGODB_DATABASE,s=I(n),o=d`FOR s IN sockets
5
+ FILTER s.userId == ${t}
69
6
  LIMIT 1
70
- RETURN s`;
71
- return db.query(aqlQry).then((cursor) => cursor.next()).catch((error) => {
72
- throw error;
73
- });
74
- };
75
- const getSocketById = (socketId) => {
76
- const formatSocketId = (0, import_utils.parseId)(socketId);
77
- const db = (0, import_arangodbUtils.useDb)(process.env.ARANGODB_DATABASE);
78
- const aqlQry = import_arangojs.aql`FOR s IN sockets
79
- FILTER s.socketId == ${formatSocketId}
7
+ RETURN s`;return s.query(o).then(e=>e.next()).catch(e=>{throw e})},O=r=>{const t=u(r),n=process.env.ARANGODB_DATABASE,s=I(n),o=d`FOR s IN sockets
8
+ FILTER s.socketId == ${t}
80
9
  LET user = FIRST(
81
10
  FOR u IN users
82
11
  FILTER u.sub == s.sub
@@ -84,91 +13,18 @@ const getSocketById = (socketId) => {
84
13
  RETURN u;
85
14
  )
86
15
  LIMIT 1
87
- RETURN MERGE(c, {user:user}`;
88
- return db.query(aqlQry).then((cursor) => cursor.next()).catch((error) => {
89
- throw error;
90
- });
91
- };
92
- const getConnectionByConvo = (context, convoId) => {
93
- const { database, session: { userId: sessionId } } = context;
94
- const sessionDocId = `users/${(0, import_utils.parseId)(sessionId)}`;
95
- const convoDocId = `conversations/${(0, import_utils.parseId)(convoId)}`;
96
- const db = database;
97
- const aqlQry = import_arangojs.aql`FOR c, e IN 1..1 OUTBOUND ${sessionDocId} hasConversation
98
- FILTER c._id == ${convoDocId}
16
+ RETURN MERGE(c, {user:user}`;return s.query(o).then(e=>e.next()).catch(e=>{throw e})},U=(r,t)=>{const{databaseName:n,session:{userId:s}}=r,o=`users/${u(s)}`,e=`conversations/${u(t)}`,a=I(n),i=d`FOR c, e IN 1..1 OUTBOUND ${o} hasConversation
17
+ FILTER c._id == ${e}
99
18
  LIMIT 1
100
19
  LET u = (
101
- FOR inUser, inEdge IN 1..1 INBOUND ${convoDocId} hasConversation
20
+ FOR inUser, inEdge IN 1..1 INBOUND ${e} hasConversation
102
21
  FOR n IN connections
103
22
  FILTER inUser.sub == n.sub
104
23
  RETURN n.connectionId
105
24
  )
106
- RETURN u`;
107
- return db.query(aqlQry).then((cursor) => cursor.all()).catch((error) => {
108
- throw error;
109
- });
110
- };
111
- const removeSocket = (socketId) => {
112
- const action = "removeSocket";
113
- const formatSocketId = (0, import_utils.parseString)(socketId, 32);
114
- const db = (0, import_arangodbUtils.useDb)(process.env.ARANGODB_DATABASE);
115
- const aqlQry = import_arangojs.aql`FOR s IN sockets
116
- FILTER s.socketId == ${formatSocketId}
25
+ RETURN u`;return a.query(i).then(c=>c.all()).catch(c=>{throw c})},k=r=>{const t="removeSocket",n=p(r,32),s=process.env.ARANGODB_DATABASE,o=I(s),e=d`FOR s IN sockets
26
+ FILTER s.socketId == ${n}
117
27
  LIMIT 1
118
28
  REMOVE s IN sockets
119
- RETURN OLD`;
120
- return db.query(aqlQry).then((cursor) => cursor.next()).catch((error) => {
121
- throw error;
122
- });
123
- };
124
- class WebsocketClient {
125
- client;
126
- constructor(config) {
127
- if (config) {
128
- this.setupClient(config || {});
129
- }
130
- }
131
- // Allow just passing a single event to setup the client for ease of use
132
- async setupClient({ requestContext }) {
133
- if (!this.client && requestContext) {
134
- const { apiId, domainName, stage } = requestContext;
135
- let updatedDomainName = domainName;
136
- if (apiId) {
137
- updatedDomainName = `${apiId}.execute-api.${process.env.API_REGION}.amazonaws.com`;
138
- }
139
- this.client = new import_client_apigatewaymanagementapi.ApiGatewayManagementApi({
140
- credentials: import_config.Config.get("aws.credentials"),
141
- endpoint: `https://${updatedDomainName}/${stage}`,
142
- region: import_config.Config.get("aws.region")
143
- });
144
- }
145
- }
146
- async send(connection, payload) {
147
- console.log(connection, payload);
148
- let socketId;
149
- if (connection?.requestContext) {
150
- await this.setupClient(connection);
151
- const { socketId: updatedSocketId } = connection.requestContext;
152
- socketId = updatedSocketId;
153
- } else {
154
- socketId = connection;
155
- }
156
- await this.client.postToConnection({ ConnectionId: socketId, Data: JSON.stringify(payload) }).promise().catch(async (postError) => {
157
- console.log(JSON.stringify(postError));
158
- if (postError.statusCode === 410) {
159
- await removeSocket(socketId);
160
- }
161
- });
162
- return true;
163
- }
164
- }
165
- // Annotate the CommonJS export names for ESM import in node:
166
- 0 && (module.exports = {
167
- WebsocketClient,
168
- addSocket,
169
- getConnectionByConvo,
170
- getSocketById,
171
- getSocketByUser,
172
- removeSocket
173
- });
174
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvd2Vic29ja2V0cy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7QXBpR2F0ZXdheU1hbmFnZW1lbnRBcGl9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1hcGlnYXRld2F5bWFuYWdlbWVudGFwaSc7XG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWwsIERhdGFiYXNlfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuXG5pbXBvcnQge2dldFVzZXJCeVRva2VufSBmcm9tICcuL3VzZXJzJztcbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzJztcbmltcG9ydCB7dXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMnO1xuXG5pbXBvcnQgdHlwZSB7V2Vic29ja2V0Q29ubmVjdGlvbn0gZnJvbSAnLi4vdHlwZXMvd2Vic29ja2V0cy50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBhZGRTb2NrZXQgPSBhc3luYyAoc29ja2V0SWQ6IHN0cmluZywgdG9rZW46IHN0cmluZyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRTb2NrZXQnO1xuICBjb25zdCBmb3JtYXRTb2NrZXRJZDogc3RyaW5nID0gcGFyc2VTdHJpbmcoc29ja2V0SWQsIDMyKTtcbiAgY29uc3QgZm9ybWF0VG9rZW46IHN0cmluZyA9IHBhcnNlU3RyaW5nKHRva2VuKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGRhdGFiYXNlOiBEYXRhYmFzZSA9IHVzZURiKHByb2Nlc3MuZW52LkFSQU5HT0RCX0RBVEFCQVNFKTtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgZ2V0VXNlckJ5VG9rZW4oe2RhdGFiYXNlLCBzZXNzaW9uOiBudWxsfSwgZm9ybWF0VG9rZW4pO1xuXG4gICAgaWYoIXVzZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5hdXRob3JpemVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlID0ge1xuICAgICAgc29ja2V0SWQ6IGZvcm1hdFNvY2tldElkLFxuICAgICAgbW9kaWZpZWQ6IERhdGUubm93KClcbiAgICB9O1xuICAgIGNvbnN0IGluc2VydCA9IHtcbiAgICAgIC4uLnVwZGF0ZSxcbiAgICAgIF9rZXk6IGNyZWF0ZUhhc2goYHNvY2tldC0ke2Zvcm1hdFNvY2tldElkfWApLFxuICAgICAgdXNlcklkOiB1c2VyLnVzZXJJZFxuICAgIH07XG4gICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge3VzZXJJZDogJHt1c2VyLnVzZXJJZH19XG4gICAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgICBVUERBVEUgJHt1cGRhdGV9XG4gICAgICBJTiBzb2NrZXRzIFJFVFVSTiBORVdgO1xuXG4gICAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmF1dGhvcml6ZWQnKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFNvY2tldEJ5VXNlciA9ICh1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbj4gPT4ge1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIocHJvY2Vzcy5lbnYuQVJBTkdPREJfREFUQUJBU0UpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHMgSU4gc29ja2V0c1xuICAgIEZJTFRFUiBzLnVzZXJJZCA9PSAke2Zvcm1hdFVzZXJJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIHNgO1xuXG4gIHJldHVybiBkYi5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U29ja2V0QnlJZCA9IChzb2NrZXRJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3QgZm9ybWF0U29ja2V0SWQ6IHN0cmluZyA9IHBhcnNlSWQoc29ja2V0SWQpO1xuICBjb25zdCBkYjogRGF0YWJhc2UgPSB1c2VEYihwcm9jZXNzLmVudi5BUkFOR09EQl9EQVRBQkFTRSk7XG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgcyBJTiBzb2NrZXRzXG4gICAgRklMVEVSIHMuc29ja2V0SWQgPT0gJHtmb3JtYXRTb2NrZXRJZH1cbiAgICBMRVQgdXNlciA9IEZJUlNUKFxuICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiB1LnN1YiA9PSBzLnN1YlxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIHU7XG4gICAgKVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gTUVSR0UoYywge3VzZXI6dXNlcn1gO1xuXG4gIHJldHVybiBkYi5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29ubmVjdGlvbkJ5Q29udm8gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udm9JZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7cGFyc2VJZChzZXNzaW9uSWQpfWA7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zLyR7cGFyc2VJZChjb252b0lkKX1gO1xuICBjb25zdCBkYjogRGF0YWJhc2UgPSBkYXRhYmFzZTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtzZXNzaW9uRG9jSWR9IGhhc0NvbnZlcnNhdGlvblxuICBGSUxURVIgYy5faWQgPT0gJHtjb252b0RvY0lkfVxuICBMSU1JVCAxXG4gIExFVCB1ID0gKFxuICAgIEZPUiBpblVzZXIsIGluRWRnZSBJTiAxLi4xIElOQk9VTkQgJHtjb252b0RvY0lkfSBoYXNDb252ZXJzYXRpb25cbiAgICBGT1IgbiBJTiBjb25uZWN0aW9uc1xuICAgIEZJTFRFUiBpblVzZXIuc3ViID09IG4uc3ViXG4gICAgUkVUVVJOIG4uY29ubmVjdGlvbklkXG4gIClcbiAgUkVUVVJOIHVgO1xuXG4gIHJldHVybiBkYi5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTb2NrZXQgPSAoc29ja2V0SWQ6IHN0cmluZyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdyZW1vdmVTb2NrZXQnO1xuICBjb25zdCBmb3JtYXRTb2NrZXRJZDogc3RyaW5nID0gcGFyc2VTdHJpbmcoc29ja2V0SWQsIDMyKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIocHJvY2Vzcy5lbnYuQVJBTkdPREJfREFUQUJBU0UpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHMgSU4gc29ja2V0c1xuICAgICAgRklMVEVSIHMuc29ja2V0SWQgPT0gJHtmb3JtYXRTb2NrZXRJZH1cbiAgICAgIExJTUlUIDFcbiAgICAgIFJFTU9WRSBzIElOIHNvY2tldHNcbiAgICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiBkYi5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFdlYlNvY2tldENsaWVudENvbnRleHQge1xuICByZWFkb25seSByZXF1ZXN0Q29udGV4dD86IHtcbiAgICByZWFkb25seSBhcGlJZDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcbiAgICByZWFkb25seSBzdGFnZTogc3RyaW5nO1xuICB9O1xufVxuZXhwb3J0IGNsYXNzIFdlYnNvY2tldENsaWVudCB7XG4gIGNsaWVudDtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc/KSB7XG4gICAgaWYoY29uZmlnKSB7XG4gICAgICB0aGlzLnNldHVwQ2xpZW50KGNvbmZpZyB8fCB7fSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQWxsb3cganVzdCBwYXNzaW5nIGEgc2luZ2xlIGV2ZW50IHRvIHNldHVwIHRoZSBjbGllbnQgZm9yIGVhc2Ugb2YgdXNlXG4gIGFzeW5jIHNldHVwQ2xpZW50KHtyZXF1ZXN0Q29udGV4dH06IFdlYlNvY2tldENsaWVudENvbnRleHQpIHtcbiAgICBpZighdGhpcy5jbGllbnQgJiYgcmVxdWVzdENvbnRleHQpIHtcbiAgICAgIGNvbnN0IHthcGlJZCwgZG9tYWluTmFtZSwgc3RhZ2V9ID0gcmVxdWVzdENvbnRleHQ7XG4gICAgICBsZXQgdXBkYXRlZERvbWFpbk5hbWU6IHN0cmluZyA9IGRvbWFpbk5hbWU7XG5cbiAgICAgIGlmKGFwaUlkKSB7XG4gICAgICAgIHVwZGF0ZWREb21haW5OYW1lID0gYCR7YXBpSWR9LmV4ZWN1dGUtYXBpLiR7cHJvY2Vzcy5lbnYuQVBJX1JFR0lPTn0uYW1hem9uYXdzLmNvbWA7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2xpZW50ID0gbmV3IEFwaUdhdGV3YXlNYW5hZ2VtZW50QXBpKHtcbiAgICAgICAgY3JlZGVudGlhbHM6IENvbmZpZy5nZXQoJ2F3cy5jcmVkZW50aWFscycpLFxuICAgICAgICBlbmRwb2ludDogYGh0dHBzOi8vJHt1cGRhdGVkRG9tYWluTmFtZX0vJHtzdGFnZX1gLFxuICAgICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2VuZChjb25uZWN0aW9uLCBwYXlsb2FkKSB7XG4gICAgY29uc29sZS5sb2coY29ubmVjdGlvbiwgcGF5bG9hZCk7XG5cbiAgICAvLyBDaGVhdCBhbmQgYWxsb3cgZXZlbnQgdG8gYmUgcGFzc2VkIGluIHRoaXMgYWxzbyBsZXRzIHVzIGRlZmF1bHQgdG8gc2V0dXBDbGllbnQgdG9vXG4gICAgbGV0IHNvY2tldElkO1xuXG4gICAgaWYoY29ubmVjdGlvbj8ucmVxdWVzdENvbnRleHQpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0dXBDbGllbnQoY29ubmVjdGlvbik7XG4gICAgICBjb25zdCB7c29ja2V0SWQ6IHVwZGF0ZWRTb2NrZXRJZH0gPSBjb25uZWN0aW9uLnJlcXVlc3RDb250ZXh0O1xuICAgICAgc29ja2V0SWQgPSB1cGRhdGVkU29ja2V0SWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNvY2tldElkID0gY29ubmVjdGlvbjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmNsaWVudC5wb3N0VG9Db25uZWN0aW9uKHtDb25uZWN0aW9uSWQ6IHNvY2tldElkLCBEYXRhOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKX0pXG4gICAgICAucHJvbWlzZSgpXG4gICAgICAuY2F0Y2goYXN5bmMgKHBvc3RFcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShwb3N0RXJyb3IpKTtcblxuICAgICAgICBpZihwb3N0RXJyb3Iuc3RhdHVzQ29kZSA9PT0gNDEwKSB7XG4gICAgICAgICAgLy8gRGlzY29ubmVjdCBjbGllbnRcbiAgICAgICAgICBhd2FpdCByZW1vdmVTb2NrZXQoc29ja2V0SWQpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsNENBQXNDO0FBQ3RDLG1CQUErQztBQUMvQyxzQkFBNEI7QUFHNUIsbUJBQTZCO0FBQzdCLG9CQUFxQjtBQUVyQiwyQkFBb0I7QUFJYixNQUFNLFlBQVksT0FBTyxVQUFrQixVQUFnRDtBQUNoRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0scUJBQXlCLDBCQUFZLFVBQVUsRUFBRTtBQUN2RCxRQUFNLGtCQUFzQiwwQkFBWSxLQUFLO0FBRTdDLE1BQUk7QUFDRixVQUFNLGVBQXFCLDRCQUFNLFFBQVEsSUFBSSxpQkFBaUI7QUFDOUQsVUFBTSxPQUFPLFVBQU0sNkJBQWUsRUFBQyxVQUFVLFNBQVMsS0FBSSxHQUFHLFdBQVc7QUFFeEUsUUFBRyxDQUFDLE1BQU07QUFDUixZQUFNLElBQUksTUFBTSxjQUFjO0FBQUEsSUFDaEM7QUFFQSxVQUFNLFNBQVM7QUFBQSxNQUNiLFVBQVU7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
29
+ RETURN OLD`;return o.query(e).then(a=>a.next()).catch(a=>{throw a})};class x{client;constructor(t){t&&this.setupClient(t||{})}async setupClient({requestContext:t}){if(!this.client&&t){const{apiId:n,domainName:s,stage:o}=t;let e=s;n&&(e=`${n}.execute-api.${process.env.API_REGION}.amazonaws.com`),this.client=new R({credentials:g.get("aws.credentials"),endpoint:`https://${e}/${o}`,region:g.get("aws.region")})}}async send(t,n){let s;if(t?.requestContext){await this.setupClient(t);const{socketId:o}=t.requestContext;s=o}else s=t;return await this.client.postToConnection({ConnectionId:s,Data:JSON.stringify(n)}).promise().catch(async o=>{o.statusCode===410&&await k(s)}),!0}}export{x as WebsocketClient,S as addSocket,U as getConnectionByConvo,O as getSocketById,w as getSocketByUser,k as removeSocket};
30
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvd2Vic29ja2V0cy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7QXBpR2F0ZXdheU1hbmFnZW1lbnRBcGl9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1hcGlnYXRld2F5bWFuYWdlbWVudGFwaSc7XG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWwsIERhdGFiYXNlfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7Z2V0VXNlckJ5VG9rZW59IGZyb20gJy4vdXNlcnMnO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzJztcbmltcG9ydCB7dXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMnO1xuXG5pbXBvcnQgdHlwZSB7V2Vic29ja2V0Q29ubmVjdGlvbn0gZnJvbSAnLi4vdHlwZXMvd2Vic29ja2V0cy50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBhZGRTb2NrZXQgPSBhc3luYyAoc29ja2V0SWQ6IHN0cmluZywgdG9rZW46IHN0cmluZyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRTb2NrZXQnO1xuICBjb25zdCBmb3JtYXRTb2NrZXRJZDogc3RyaW5nID0gcGFyc2VTdHJpbmcoc29ja2V0SWQsIDMyKTtcbiAgY29uc3QgZm9ybWF0VG9rZW46IHN0cmluZyA9IHBhcnNlU3RyaW5nKHRva2VuKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGRhdGFiYXNlTmFtZTogc3RyaW5nID0gcHJvY2Vzcy5lbnYuQVJBTkdPREJfREFUQUJBU0U7XG4gICAgY29uc3QgZGF0YWJhc2U6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgZ2V0VXNlckJ5VG9rZW4oe2NvbmZpZzogQ29uZmlnLmdldCgpLCBkYXRhYmFzZU5hbWUsIHNlc3Npb246IG51bGx9LCBmb3JtYXRUb2tlbik7XG5cbiAgICBpZighdXNlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmF1dGhvcml6ZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGUgPSB7XG4gICAgICBzb2NrZXRJZDogZm9ybWF0U29ja2V0SWQsXG4gICAgICBtb2RpZmllZDogRGF0ZS5ub3coKVxuICAgIH07XG4gICAgY29uc3QgaW5zZXJ0ID0ge1xuICAgICAgLi4udXBkYXRlLFxuICAgICAgX2tleTogY3JlYXRlSGFzaChgc29ja2V0LSR7Zm9ybWF0U29ja2V0SWR9YCksXG4gICAgICB1c2VySWQ6IHVzZXIudXNlcklkXG4gICAgfTtcbiAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7dXNlcklkOiAke3VzZXIudXNlcklkfX1cbiAgICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICAgIElOIHNvY2tldHMgUkVUVVJOIE5FV2A7XG5cbiAgICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYXV0aG9yaXplZCcpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U29ja2V0QnlVc2VyID0gKHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxXZWJzb2NrZXRDb25uZWN0aW9uPiA9PiB7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBkYXRhYmFzZU5hbWU6IHN0cmluZyA9IHByb2Nlc3MuZW52LkFSQU5HT0RCX0RBVEFCQVNFO1xuICBjb25zdCBkYXRhYmFzZTogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHMgSU4gc29ja2V0c1xuICAgIEZJTFRFUiBzLnVzZXJJZCA9PSAke2Zvcm1hdFVzZXJJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIHNgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U29ja2V0QnlJZCA9IChzb2NrZXRJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3QgZm9ybWF0U29ja2V0SWQ6IHN0cmluZyA9IHBhcnNlSWQoc29ja2V0SWQpO1xuICBjb25zdCBkYXRhYmFzZU5hbWU6IHN0cmluZyA9IHByb2Nlc3MuZW52LkFSQU5HT0RCX0RBVEFCQVNFO1xuICBjb25zdCBkYXRhYmFzZTogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHMgSU4gc29ja2V0c1xuICAgIEZJTFRFUiBzLnNvY2tldElkID09ICR7Zm9ybWF0U29ja2V0SWR9XG4gICAgTEVUIHVzZXIgPSBGSVJTVChcbiAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICBGSUxURVIgdS5zdWIgPT0gcy5zdWJcbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiB1O1xuICAgIClcbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIE1FUkdFKGMsIHt1c2VyOnVzZXJ9YDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25CeUNvbnZvID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtwYXJzZUlkKHNlc3Npb25JZCl9YDtcbiAgY29uc3QgY29udm9Eb2NJZDogc3RyaW5nID0gYGNvbnZlcnNhdGlvbnMvJHtwYXJzZUlkKGNvbnZvSWQpfWA7XG4gIGNvbnN0IGRhdGFiYXNlOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgYywgZSBJTiAxLi4xIE9VVEJPVU5EICR7c2Vzc2lvbkRvY0lkfSBoYXNDb252ZXJzYXRpb25cbiAgRklMVEVSIGMuX2lkID09ICR7Y29udm9Eb2NJZH1cbiAgTElNSVQgMVxuICBMRVQgdSA9IChcbiAgICBGT1IgaW5Vc2VyLCBpbkVkZ2UgSU4gMS4uMSBJTkJPVU5EICR7Y29udm9Eb2NJZH0gaGFzQ29udmVyc2F0aW9uXG4gICAgRk9SIG4gSU4gY29ubmVjdGlvbnNcbiAgICBGSUxURVIgaW5Vc2VyLnN1YiA9PSBuLnN1YlxuICAgIFJFVFVSTiBuLmNvbm5lY3Rpb25JZFxuICApXG4gIFJFVFVSTiB1YDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU29ja2V0ID0gKHNvY2tldElkOiBzdHJpbmcpOiBQcm9taXNlPFdlYnNvY2tldENvbm5lY3Rpb24+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAncmVtb3ZlU29ja2V0JztcbiAgY29uc3QgZm9ybWF0U29ja2V0SWQ6IHN0cmluZyA9IHBhcnNlU3RyaW5nKHNvY2tldElkLCAzMik7XG4gIGNvbnN0IGRhdGFiYXNlTmFtZTogc3RyaW5nID0gcHJvY2Vzcy5lbnYuQVJBTkdPREJfREFUQUJBU0U7XG4gIGNvbnN0IGRhdGFiYXNlOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgcyBJTiBzb2NrZXRzXG4gICAgICBGSUxURVIgcy5zb2NrZXRJZCA9PSAke2Zvcm1hdFNvY2tldElkfVxuICAgICAgTElNSVQgMVxuICAgICAgUkVNT1ZFIHMgSU4gc29ja2V0c1xuICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViU29ja2V0Q2xpZW50Q29udGV4dCB7XG4gIHJlYWRvbmx5IHJlcXVlc3RDb250ZXh0Pzoge1xuICAgIHJlYWRvbmx5IGFwaUlkOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHN0YWdlOiBzdHJpbmc7XG4gIH07XG59XG5leHBvcnQgY2xhc3MgV2Vic29ja2V0Q2xpZW50IHtcbiAgY2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz8pIHtcbiAgICBpZihjb25maWcpIHtcbiAgICAgIHRoaXMuc2V0dXBDbGllbnQoY29uZmlnIHx8IHt9KTtcbiAgICB9XG4gIH1cblxuICAvLyBBbGxvdyBqdXN0IHBhc3NpbmcgYSBzaW5nbGUgZXZlbnQgdG8gc2V0dXAgdGhlIGNsaWVudCBmb3IgZWFzZSBvZiB1c2VcbiAgYXN5bmMgc2V0dXBDbGllbnQoe3JlcXVlc3RDb250ZXh0fTogV2ViU29ja2V0Q2xpZW50Q29udGV4dCkge1xuICAgIGlmKCF0aGlzLmNsaWVudCAmJiByZXF1ZXN0Q29udGV4dCkge1xuICAgICAgY29uc3Qge2FwaUlkLCBkb21haW5OYW1lLCBzdGFnZX0gPSByZXF1ZXN0Q29udGV4dDtcbiAgICAgIGxldCB1cGRhdGVkRG9tYWluTmFtZTogc3RyaW5nID0gZG9tYWluTmFtZTtcblxuICAgICAgaWYoYXBpSWQpIHtcbiAgICAgICAgdXBkYXRlZERvbWFpbk5hbWUgPSBgJHthcGlJZH0uZXhlY3V0ZS1hcGkuJHtwcm9jZXNzLmVudi5BUElfUkVHSU9OfS5hbWF6b25hd3MuY29tYDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jbGllbnQgPSBuZXcgQXBpR2F0ZXdheU1hbmFnZW1lbnRBcGkoe1xuICAgICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICAgIGVuZHBvaW50OiBgaHR0cHM6Ly8ke3VwZGF0ZWREb21haW5OYW1lfS8ke3N0YWdlfWAsXG4gICAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzZW5kKGNvbm5lY3Rpb24sIHBheWxvYWQpIHtcbiAgICBjb25zb2xlLmxvZyhjb25uZWN0aW9uLCBwYXlsb2FkKTtcblxuICAgIC8vIENoZWF0IGFuZCBhbGxvdyBldmVudCB0byBiZSBwYXNzZWQgaW4gdGhpcyBhbHNvIGxldHMgdXMgZGVmYXVsdCB0byBzZXR1cENsaWVudCB0b29cbiAgICBsZXQgc29ja2V0SWQ7XG5cbiAgICBpZihjb25uZWN0aW9uPy5yZXF1ZXN0Q29udGV4dCkge1xuICAgICAgYXdhaXQgdGhpcy5zZXR1cENsaWVudChjb25uZWN0aW9uKTtcbiAgICAgIGNvbnN0IHtzb2NrZXRJZDogdXBkYXRlZFNvY2tldElkfSA9IGNvbm5lY3Rpb24ucmVxdWVzdENvbnRleHQ7XG4gICAgICBzb2NrZXRJZCA9IHVwZGF0ZWRTb2NrZXRJZDtcbiAgICB9IGVsc2Uge1xuICAgICAgc29ja2V0SWQgPSBjb25uZWN0aW9uO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnBvc3RUb0Nvbm5lY3Rpb24oe0Nvbm5lY3Rpb25JZDogc29ja2V0SWQsIERhdGE6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpfSlcbiAgICAgIC5wcm9taXNlKClcbiAgICAgIC5jYXRjaChhc3luYyAocG9zdEVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHBvc3RFcnJvcikpO1xuXG4gICAgICAgIGlmKHBvc3RFcnJvci5zdGF0dXNDb2RlID09PSA0MTApIHtcbiAgICAgICAgICAvLyBEaXNjb25uZWN0IGNsaWVudFxuICAgICAgICAgIGF3YWl0IHJlbW92ZVNvY2tldChzb2NrZXRJZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQVEsMkJBQUFBLE1BQThCLDBDQUN0QyxPQUFRLGNBQUFDLEVBQVksV0FBQUMsRUFBUyxlQUFBQyxNQUFrQixlQUMvQyxPQUFRLE9BQUFDLE1BQW9CLFdBRzVCLE9BQVEsVUFBQUMsTUFBYSxZQUNyQixPQUFRLGtCQUFBQyxNQUFxQixVQUU3QixPQUFRLFNBQUFDLE1BQVkseUJBSWIsTUFBTUMsRUFB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LENBQ1IsQ0FBQyxDQUNMLEVBU08sTUFBTVksQ0FBZ0IsQ0FDM0IsT0FFQSxZQUFZQyxFQUFTLENBQ2hCQSxHQUNELEtBQUssWUFBWUEsR0FBVSxDQUFDLENBQUMsQ0FFakMsQ0FHQSxNQUFNLFlBQVksQ0FBQyxlQUFBQyxDQUFjLEVBQTJCLENBQzFELEdBQUcsQ0FBQyxLQUFLLFFBQVVBLEVBQWdCLENBQ2pDLEtBQU0sQ0FBQyxNQUFBQyxFQUFPLFdBQUFDLEVBQVksTUFBQUMsQ0FBSyxFQUFJSCxFQUNuQyxJQUFJSSxFQUE0QkYsRUFFN0JELElBQ0RHLEVBQW9CLEdBQUdILENBQUssZ0JBQWdCLFFBQVEsSUFBSSxVQUFVLGtCQUdwRSxLQUFLLE9BQVMsSUFBSXBDLEVBQXdCLENBQ3hDLFlBQWFLLEVBQU8sSUFBSSxpQkFBaUIsRUFDekMsU0FBVSxXQUFXa0MsQ0FBaUIsSUFBSUQsQ0FBSyxHQUMvQyxPQUFRakMsRUFBTyxJQUFJLFlBQVksQ0FDakMsQ0FBQyxDQUNILENBQ0YsQ0FFQSxNQUFNLEtBQUttQyxFQUFZQyxFQUFTLENBSTlCLElBQUloQyxFQUVKLEdBQUcrQixHQUFZLGVBQWdCLENBQzdCLE1BQU0sS0FBSyxZQUFZQSxDQUFVLEVBQ2pDLEtBQU0sQ0FBQyxTQUFVRSxDQUFlLEVBQUlGLEVBQVcsZUFDL0MvQixFQUFXaUMsQ0FDYixNQUNFakMsRUFBVytCLEVBR2IsYUFBTSxLQUFLLE9BQU8saUJBQWlCLENBQUMsYUFBYy9CLEVBQVUsS0FBTSxLQUFLLFVBQVVnQyxDQUFPLENBQUMsQ0FBQyxFQUN2RixRQUFRLEVBQ1IsTUFBTSxNQUFPRSxHQUFjLENBR3ZCQSxFQUFVLGFBQWUsS0FFMUIsTUFBTVgsRUFBYXZCLENBQVEsQ0FFL0IsQ0FBQyxFQUVJLEVBQ1QsQ0FDRiIsCiAgIm5hbWVzIjogWyJBcGlHYXRld2F5TWFuYWdlbWVudEFwaSIsICJjcmVhdGVIYXNoIiwgInBhcnNlSWQiLCAicGFyc2VTdHJpbmciLCAiYXFsIiwgIkNvbmZpZyIsICJnZXRVc2VyQnlUb2tlbiIsICJ1c2VEYiIsICJhZGRTb2NrZXQiLCAic29ja2V0SWQiLCAidG9rZW4iLCAiYWN0aW9uIiwgImZvcm1hdFNvY2tldElkIiwgImZvcm1hdFRva2VuIiwgImRhdGFiYXNlTmFtZSIsICJkYXRhYmFzZSIsICJ1c2VyIiwgInVwZGF0ZSIsICJpbnNlcnQiLCAiYXFsUXJ5IiwgImN1cnNvciIsICJlcnJvciIsICJnZXRTb2NrZXRCeVVzZXIiLCAidXNlcklkIiwgImZvcm1hdFVzZXJJZCIsICJnZXRTb2NrZXRCeUlkIiwgImdldENvbm5lY3Rpb25CeUNvbnZvIiwgImNvbnRleHQiLCAiY29udm9JZCIsICJzZXNzaW9uSWQiLCAic2Vzc2lvbkRvY0lkIiwgImNvbnZvRG9jSWQiLCAicmVtb3ZlU29ja2V0IiwgIldlYnNvY2tldENsaWVudCIsICJjb25maWciLCAicmVxdWVzdENvbnRleHQiLCAiYXBpSWQiLCAiZG9tYWluTmFtZSIsICJzdGFnZSIsICJ1cGRhdGVkRG9tYWluTmFtZSIsICJjb25uZWN0aW9uIiwgInBheWxvYWQiLCAidXBkYXRlZFNvY2tldElkIiwgInBvc3RFcnJvciJdCn0K
@@ -1,46 +1,2 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var arangoAdapter_exports = {};
19
- __export(arangoAdapter_exports, {
20
- parseDocument: () => parseDocument
21
- });
22
- module.exports = __toCommonJS(arangoAdapter_exports);
23
- var import_utils = require("@nlabs/utils");
24
- var import_adapterUtils = require("../utils/adapterUtils");
25
- const parseDocument = (doc) => {
26
- const {
27
- _id,
28
- _key,
29
- added,
30
- id,
31
- modified
32
- } = doc;
33
- return (0, import_adapterUtils.removeEmptyKeys)({
34
- ...doc,
35
- _id: _id && (0, import_utils.parseArangoId)(_id),
36
- _key: _key && (0, import_utils.parseId)(_key),
37
- added: added && (0, import_utils.parseNum)(added, 13),
38
- id: (0, import_utils.parseArangoId)(_id || id),
39
- modified: modified && (0, import_utils.parseNum)(modified, 13)
40
- });
41
- };
42
- // Annotate the CommonJS export names for ESM import in node:
43
- 0 && (module.exports = {
44
- parseDocument
45
- });
46
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2FyYW5nb0FkYXB0ZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7cGFyc2VBcmFuZ29JZCwgcGFyc2VJZCwgcGFyc2VOdW19IGZyb20gJ0BubGFicy91dGlscyc7XG5cbmltcG9ydCB7RG9jdW1lbnRUeXBlfSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYi50eXBlcyc7XG5pbXBvcnQge3JlbW92ZUVtcHR5S2V5c30gZnJvbSAnLi4vdXRpbHMvYWRhcHRlclV0aWxzJztcblxuZXhwb3J0IGNvbnN0IHBhcnNlRG9jdW1lbnQgPSAoZG9jOiBEb2N1bWVudFR5cGUpOiBEb2N1bWVudFR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgX2lkLFxuICAgIF9rZXksXG4gICAgYWRkZWQsXG4gICAgaWQsXG4gICAgbW9kaWZpZWRcbiAgfSA9IGRvYztcblxuICByZXR1cm4gcmVtb3ZlRW1wdHlLZXlzKHtcbiAgICAuLi5kb2MsXG4gICAgX2lkOiBfaWQgJiYgcGFyc2VBcmFuZ29JZChfaWQpLFxuICAgIF9rZXk6IF9rZXkgJiYgcGFyc2VJZChfa2V5KSxcbiAgICBhZGRlZDogYWRkZWQgJiYgcGFyc2VOdW0oYWRkZWQsIDEzKSxcbiAgICBpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQpLFxuICAgIG1vZGlmaWVkOiBtb2RpZmllZCAmJiBwYXJzZU51bShtb2RpZmllZCwgMTMpXG4gIH0pO1xufTsiXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFBK0M7QUFHL0MsMEJBQThCO0FBRXZCLE1BQU0sZ0JBQWdCLENBQUMsUUFBb0M7QUFDaEUsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBRUosYUFBTyxxQ0FBZ0I7QUFBQSxJQUNyQixHQUFHO0FBQUEsSUFDSCxLQUFLLFdBQU8sNEJBQWMsR0FBRztBQUFBLElBQzdCLE1BQU0sWUFBUSxzQkFBUSxJQUFJO0FBQUEsSUFDMUIsT0FBTyxhQUFTLHVCQUFTLE9BQU8sRUFBRTtBQUFBLElBQ2xDLFFBQUksNEJBQWMsT0FBTyxFQUFFO0FBQUEsSUFDM0IsVUFBVSxnQkFBWSx1QkFBUyxVQUFVLEVBQUU7QUFBQSxFQUM3QyxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
1
+ import{parseArangoId as d,parseId as m,parseNum as p}from"@nlabs/utils";import{z as r}from"zod";import{removeEmptyKeys as c}from"../utils/adapterUtils";class i extends Error{constructor(e,n){super(e);this.field=n;this.name="ArangoValidationError"}}const u=r.object({_from:r.string().optional(),_id:r.string().optional(),_key:r.string().optional(),_oldRev:r.string().optional(),_rev:r.string().optional(),_to:r.string().optional(),added:r.number().optional(),id:r.string().optional(),modified:r.number().optional()}).passthrough(),h=t=>{try{return u.parse(t)}catch(o){if(o instanceof r.ZodError){const e=o.errors.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ");throw new i(`Document validation failed: ${e}`)}throw o}},T=t=>t,_=t=>{try{return f(t)}catch(o){throw o instanceof i?o:new i(`Document parsing failed: ${o instanceof Error?o.message:"Unknown error"}`)}},f=t=>{const{_id:o,_key:e,added:n,id:a,modified:s}=t;return c({...t,...o&&{_id:d(o)},...e&&{_key:m(e)},...n!==void 0&&{added:p(n,13)},...(o||a)&&{id:d(o||a)},...s!==void 0&&{modified:p(s,13)}})};export{i as ArangoValidationError,T as formatDocumentOutput,_ as parseDocument,h as validateDocumentInput};
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2FyYW5nb0FkYXB0ZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7cGFyc2VBcmFuZ29JZCwgcGFyc2VJZCwgcGFyc2VOdW19IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7RG9jdW1lbnRUeXBlfSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYi50eXBlcyc7XG5pbXBvcnQge3JlbW92ZUVtcHR5S2V5c30gZnJvbSAnLi4vdXRpbHMvYWRhcHRlclV0aWxzJztcblxuZXhwb3J0IGNsYXNzIEFyYW5nb1ZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnQXJhbmdvVmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBEb2N1bWVudElucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBfZnJvbTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2tleTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9yZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3RvOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGFkZGVkOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIG1vZGlmaWVkOiB6Lm51bWJlcigpLm9wdGlvbmFsKClcbn0pLnBhc3N0aHJvdWdoKCk7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZURvY3VtZW50SW5wdXQgPSAoZG9jOiB1bmtub3duKTogRG9jdW1lbnRUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBEb2N1bWVudElucHV0U2NoZW1hLnBhcnNlKGRvYyk7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBEb2N1bWVudFR5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0gZXJyb3IuZXJyb3JzLm1hcCgoZSkgPT4gYCR7ZS5wYXRoLmpvaW4oJy4nKX06ICR7ZS5tZXNzYWdlfWApLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgQXJhbmdvVmFsaWRhdGlvbkVycm9yKGBEb2N1bWVudCB2YWxpZGF0aW9uIGZhaWxlZDogJHtmaWVsZEVycm9yc31gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXREb2N1bWVudE91dHB1dCA9IChkb2M6IERvY3VtZW50VHlwZSk6IERvY3VtZW50VHlwZSA9PiBkb2M7XG5cbmV4cG9ydCBjb25zdCBwYXJzZURvY3VtZW50ID0gKGRvYzogRG9jdW1lbnRUeXBlKTogRG9jdW1lbnRUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwZXJmb3JtRG9jdW1lbnRUcmFuc2Zvcm1hdGlvbihkb2MpO1xuICAgIHJldHVybiBwYXJzZWQ7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIEFyYW5nb1ZhbGlkYXRpb25FcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICAgIHRocm93IG5ldyBBcmFuZ29WYWxpZGF0aW9uRXJyb3IoYERvY3VtZW50IHBhcnNpbmcgZmFpbGVkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfWApO1xuICB9XG59O1xuXG5jb25zdCBwZXJmb3JtRG9jdW1lbnRUcmFuc2Zvcm1hdGlvbiA9IChkb2M6IERvY3VtZW50VHlwZSk6IERvY3VtZW50VHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfaWQsXG4gICAgX2tleSxcbiAgICBhZGRlZCxcbiAgICBpZCxcbiAgICBtb2RpZmllZFxuICB9ID0gZG9jO1xuXG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gcmVtb3ZlRW1wdHlLZXlzKHtcbiAgICAuLi5kb2MsXG4gICAgLi4uKF9pZCAmJiB7X2lkOiBwYXJzZUFyYW5nb0lkKF9pZCl9KSxcbiAgICAuLi4oX2tleSAmJiB7X2tleTogcGFyc2VJZChfa2V5KX0pLFxuICAgIC4uLihhZGRlZCAhPT0gdW5kZWZpbmVkICYmIHthZGRlZDogcGFyc2VOdW0oYWRkZWQsIDEzKX0pLFxuICAgIC4uLigoX2lkIHx8IGlkKSAmJiB7aWQ6IHBhcnNlQXJhbmdvSWQoX2lkIHx8IGlkKX0pLFxuICAgIC4uLihtb2RpZmllZCAhPT0gdW5kZWZpbmVkICYmIHttb2RpZmllZDogcGFyc2VOdW0obW9kaWZpZWQsIDEzKX0pXG4gIH0pO1xuXG4gIHJldHVybiB0cmFuc2Zvcm1lZDtcbn07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsT0FBUSxpQkFBQUEsRUFBZSxXQUFBQyxFQUFTLFlBQUFDLE1BQWUsZUFDL0MsT0FBUSxLQUFBQyxNQUFRLE1BR2hCLE9BQVEsbUJBQUFDLE1BQXNCLHdCQUV2QixNQUFNQyxVQUE4QixLQUFNLENBQy9DLFlBQVlDLEVBQXdCQyxFQUFnQixDQUNsRCxNQUFNRCxDQUFPLEVBRHFCLFdBQUFDLEVBRWxDLEtBQUssS0FBTyx1QkFDZCxDQUNGLENBRUEsTUFBTUMsRUFBc0JMLEVBQUUsT0FBTyxDQUNuQyxNQUFPQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzNCLElBQUtBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDekIsS0FBTUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMxQixRQUFTQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzdCLEtBQU1BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDMUIsSUFBS0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUN6QixNQUFPQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzNCLEdBQUlBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDeEIsU0FBVUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUNoQyxDQUFDLEVBQUUsWUFBWSxFQUVGTSxFQUF5QkMsR0FBK0IsQ0FDbkUsR0FBSSxDQUVGLE9BRGtCRixFQUFvQixNQUFNRSxDQUFHLENBRWpELE9BQVFDLEVBQU8sQ0FDYixHQUFHQSxhQUFpQlIsRUFBRSxTQUFVLENBQzlCLE1BQU1TLEVBQWNELEVBQU0sT0FBTyxJQUFLRSxHQUFNLEdBQUdBLEVBQUUsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFLQSxFQUFFLE9BQU8sRUFBRSxFQUFFLEtBQUssSUFBSSxFQUMxRixNQUFNLElBQUlSLEVBQXNCLCtCQUErQk8sQ0FBVyxFQUFFLENBQzlFLENBQ0EsTUFBTUQsQ0FDUixDQUNGLEVBRWFHLEVBQXdCSixHQUFvQ0EsRUFFNURLLEVBQWlCTCxHQUFvQyxDQUNoRSxHQUFJLENBRUYsT0FEZU0sRUFBOEJOLENBQUcsQ0FFbEQsT0FBUUMsRUFBTyxDQUNiLE1BQUdBLGFBQWlCTixFQUNaTSxFQUVGLElBQUlOLEVBQXNCLDRCQUE0Qk0sYUFBaUIsTUFBUUEsRUFBTSxRQUFVLGVBQWUsRUFBRSxDQUN4SCxDQUNGLEVBRU1LLEVBQWlDTixHQUFvQyxDQUN6RSxLQUFNLENBQ0osSUFBQU8sRUFDQSxLQUFBQyxFQUNBLE1BQUFDLEVBQ0EsR0FBQUMsRUFDQSxTQUFBQyxDQUNGLEVBQUlYLEVBV0osT0FUb0JOLEVBQWdCLENBQ2xDLEdBQUdNLEVBQ0gsR0FBSU8sR0FBTyxDQUFDLElBQUtqQixFQUFjaUIsQ0FBRyxDQUFDLEVBQ25DLEdBQUlDLEdBQVEsQ0FBQyxLQUFNakIsRUFBUWlCLENBQUksQ0FBQyxFQUNoQyxHQUFJQyxJQUFVLFFBQWEsQ0FBQyxNQUFPakIsRUFBU2lCLEVBQU8sRUFBRSxDQUFDLEVBQ3RELElBQUtGLEdBQU9HLElBQU8sQ0FBQyxHQUFJcEIsRUFBY2lCLEdBQU9HLENBQUUsQ0FBQyxFQUNoRCxHQUFJQyxJQUFhLFFBQWEsQ0FBQyxTQUFVbkIsRUFBU21CLEVBQVUsRUFBRSxDQUFDLENBQ2pFLENBQUMsQ0FHSCIsCiAgIm5hbWVzIjogWyJwYXJzZUFyYW5nb0lkIiwgInBhcnNlSWQiLCAicGFyc2VOdW0iLCAieiIsICJyZW1vdmVFbXB0eUtleXMiLCAiQXJhbmdvVmFsaWRhdGlvbkVycm9yIiwgIm1lc3NhZ2UiLCAiZmllbGQiLCAiRG9jdW1lbnRJbnB1dFNjaGVtYSIsICJ2YWxpZGF0ZURvY3VtZW50SW5wdXQiLCAiZG9jIiwgImVycm9yIiwgImZpZWxkRXJyb3JzIiwgImUiLCAiZm9ybWF0RG9jdW1lbnRPdXRwdXQiLCAicGFyc2VEb2N1bWVudCIsICJwZXJmb3JtRG9jdW1lbnRUcmFuc2Zvcm1hdGlvbiIsICJfaWQiLCAiX2tleSIsICJhZGRlZCIsICJpZCIsICJtb2RpZmllZCJdCn0K
@@ -0,0 +1,2 @@
1
+ import{parseArangoId as C,parseId as d,parseString as s}from"@nlabs/utils";import{z as t}from"zod";import{parseDocument as f}from"./arangoAdapter";import{removeEmptyKeys as b}from"../utils/adapterUtils";class l extends Error{constructor(n,r){super(n);this.field=r;this.name="ContentValidationError"}}const I=t.object({contentId:t.string().optional(),key:t.string().min(1,"Key is required").max(200,"Key must be less than 200 characters"),locale:t.enum(["en","es","fr","de","pt","it"],{errorMap:()=>({message:"Locale must be one of: en, es, fr, de, pt, it"})}),content:t.string().min(1,"Content is required").max(1e4,"Content must be less than 10000 characters"),description:t.string().max(500,"Description must be less than 500 characters").optional(),category:t.string().max(100,"Category must be less than 100 characters").optional(),isActive:t.boolean().optional(),userId:t.string().optional()}),T=t.object({contentId:t.string().optional(),key:t.string().min(1,"Key is required").max(200,"Key must be less than 200 characters"),locale:t.enum(["en","es","fr","de","pt","it"],{errorMap:()=>({message:"Locale must be one of: en, es, fr, de, pt, it"})}).optional(),content:t.string().min(1,"Content is required").max(1e4,"Content must be less than 10000 characters"),description:t.string().max(500,"Description must be less than 500 characters").optional(),category:t.string().max(100,"Category must be less than 100 characters").optional(),isActive:t.boolean().optional()}),K=o=>{try{return I.parse(o)}catch(e){if(e instanceof t.ZodError){const n=e.errors[0]?.path.join("."),r=e.errors[0]?.message||"Validation failed";throw new l(r,n)}throw e}},j=o=>{try{return T.parse(o)}catch(e){if(e instanceof t.ZodError){const n=e.errors[0]?.path.join("."),r=e.errors[0]?.message||"Validation failed";throw new l(r,n)}throw e}},x=o=>{const{_id:e,_key:n,contentId:r,id:a,key:u,locale:y,content:g,description:i,category:c,isActive:p,userId:m}=o,h={...f(o),...(n||r)&&{contentId:d(n||r)},...(e||a||n||r)&&{id:C(e||a||`content/${n||r}`)},key:s(u,200),locale:y,content:s(g,1e4),...i&&{description:s(i,500)},...c&&{category:s(c,100)},...p!==void 0&&{isActive:p},...m&&{userId:d(m)}};return b(h)},q=o=>x(o);export{l as ContentValidationError,K as parseContent,q as parseContentFromDb,j as parseContentInput};
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2NvbnRlbnRBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtwYXJzZUFyYW5nb0lkLCBwYXJzZUlkLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtwYXJzZURvY3VtZW50fSBmcm9tICcuL2FyYW5nb0FkYXB0ZXInO1xuaW1wb3J0IHtDb250ZW50SW5wdXRUeXBlLCBDb250ZW50VHlwZX0gZnJvbSAnLi4vdHlwZXMvY29udGVudC50eXBlcyc7XG5pbXBvcnQge3JlbW92ZUVtcHR5S2V5c30gZnJvbSAnLi4vdXRpbHMvYWRhcHRlclV0aWxzJztcblxuZXhwb3J0IGNsYXNzIENvbnRlbnRWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0NvbnRlbnRWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IGNvbnRlbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvbnRlbnRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXk6IHouc3RyaW5nKCkubWluKDEsICdLZXkgaXMgcmVxdWlyZWQnKS5tYXgoMjAwLCAnS2V5IG11c3QgYmUgbGVzcyB0aGFuIDIwMCBjaGFyYWN0ZXJzJyksXG4gIGxvY2FsZTogei5lbnVtKFsnZW4nLCAnZXMnLCAnZnInLCAnZGUnLCAncHQnLCAnaXQnXSwge1xuICAgIGVycm9yTWFwOiAoKSA9PiAoe21lc3NhZ2U6ICdMb2NhbGUgbXVzdCBiZSBvbmUgb2Y6IGVuLCBlcywgZnIsIGRlLCBwdCwgaXQnfSlcbiAgfSksXG4gIGNvbnRlbnQ6IHouc3RyaW5nKCkubWluKDEsICdDb250ZW50IGlzIHJlcXVpcmVkJykubWF4KDEwMDAwLCAnQ29udGVudCBtdXN0IGJlIGxlc3MgdGhhbiAxMDAwMCBjaGFyYWN0ZXJzJyksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm1heCg1MDAsICdEZXNjcmlwdGlvbiBtdXN0IGJlIGxlc3MgdGhhbiA1MDAgY2hhcmFjdGVycycpLm9wdGlvbmFsKCksXG4gIGNhdGVnb3J5OiB6LnN0cmluZygpLm1heCgxMDAsICdDYXRlZ29yeSBtdXN0IGJlIGxlc3MgdGhhbiAxMDAgY2hhcmFjdGVycycpLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKVxufSk7XG5cbmNvbnN0IGNvbnRlbnRJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY29udGVudElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGtleTogei5zdHJpbmcoKS5taW4oMSwgJ0tleSBpcyByZXF1aXJlZCcpLm1heCgyMDAsICdLZXkgbXVzdCBiZSBsZXNzIHRoYW4gMjAwIGNoYXJhY3RlcnMnKSxcbiAgbG9jYWxlOiB6LmVudW0oWydlbicsICdlcycsICdmcicsICdkZScsICdwdCcsICdpdCddLCB7XG4gICAgZXJyb3JNYXA6ICgpID0+ICh7bWVzc2FnZTogJ0xvY2FsZSBtdXN0IGJlIG9uZSBvZjogZW4sIGVzLCBmciwgZGUsIHB0LCBpdCd9KVxuICB9KS5vcHRpb25hbCgpLFxuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLm1heCgxMDAwMCwgJ0NvbnRlbnQgbXVzdCBiZSBsZXNzIHRoYW4gMTAwMDAgY2hhcmFjdGVycycpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5tYXgoNTAwLCAnRGVzY3JpcHRpb24gbXVzdCBiZSBsZXNzIHRoYW4gNTAwIGNoYXJhY3RlcnMnKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5tYXgoMTAwLCAnQ2F0ZWdvcnkgbXVzdCBiZSBsZXNzIHRoYW4gMTAwIGNoYXJhY3RlcnMnKS5vcHRpb25hbCgpLFxuICBpc0FjdGl2ZTogei5ib29sZWFuKCkub3B0aW9uYWwoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnRlbnQgPSAoY29udGVudDogQ29udGVudFR5cGUpOiBDb250ZW50VHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdmFsaWRhdGVkID0gY29udGVudFNjaGVtYS5wYXJzZShjb250ZW50KTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIENvbnRlbnRUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZCA9IGVycm9yLmVycm9yc1swXT8ucGF0aC5qb2luKCcuJyk7XG4gICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IuZXJyb3JzWzBdPy5tZXNzYWdlIHx8ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudFZhbGlkYXRpb25FcnJvcihtZXNzYWdlLCBmaWVsZCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VDb250ZW50SW5wdXQgPSAoY29udGVudDogQ29udGVudElucHV0VHlwZSk6IENvbnRlbnRJbnB1dFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IGNvbnRlbnRJbnB1dFNjaGVtYS5wYXJzZShjb250ZW50KTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIENvbnRlbnRJbnB1dFR5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkID0gZXJyb3IuZXJyb3JzWzBdPy5wYXRoLmpvaW4oJy4nKTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5lcnJvcnNbMF0/Lm1lc3NhZ2UgfHwgJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICAgIHRocm93IG5ldyBDb250ZW50VmFsaWRhdGlvbkVycm9yKG1lc3NhZ2UsIGZpZWxkKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1Db250ZW50VHJhbnNmb3JtYXRpb24gPSAoY29udGVudDogQ29udGVudFR5cGUpOiBDb250ZW50VHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfaWQsXG4gICAgX2tleSxcbiAgICBjb250ZW50SWQsXG4gICAgaWQsXG4gICAga2V5LFxuICAgIGxvY2FsZSxcbiAgICBjb250ZW50OiBjb250ZW50VGV4dCxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBjYXRlZ29yeSxcbiAgICBpc0FjdGl2ZSxcbiAgICB1c2VySWRcbiAgfSA9IGNvbnRlbnQ7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSB7XG4gICAgLi4ucGFyc2VEb2N1bWVudChjb250ZW50KSxcbiAgICAuLi4oKF9rZXkgfHwgY29udGVudElkKSAmJiB7Y29udGVudElkOiBwYXJzZUlkKF9rZXkgfHwgY29udGVudElkKX0pLFxuICAgIC4uLigoX2lkIHx8IGlkIHx8IF9rZXkgfHwgY29udGVudElkKSAmJiB7aWQ6IHBhcnNlQXJhbmdvSWQoX2lkIHx8IGlkIHx8IGBjb250ZW50LyR7X2tleSB8fCBjb250ZW50SWR9YCl9KSxcbiAgICBrZXk6IHBhcnNlU3RyaW5nKGtleSwgMjAwKSxcbiAgICBsb2NhbGUsXG4gICAgY29udGVudDogcGFyc2VTdHJpbmcoY29udGVudFRleHQsIDEwMDAwKSxcbiAgICAuLi4oZGVzY3JpcHRpb24gJiYge2Rlc2NyaXB0aW9uOiBwYXJzZVN0cmluZyhkZXNjcmlwdGlvbiwgNTAwKX0pLFxuICAgIC4uLihjYXRlZ29yeSAmJiB7Y2F0ZWdvcnk6IHBhcnNlU3RyaW5nKGNhdGVnb3J5LCAxMDApfSksXG4gICAgLi4uKGlzQWN0aXZlICE9PSB1bmRlZmluZWQgJiYge2lzQWN0aXZlfSksXG4gICAgLi4uKHVzZXJJZCAmJiB7dXNlcklkOiBwYXJzZUlkKHVzZXJJZCl9KVxuICB9O1xuXG4gIHJldHVybiByZW1vdmVFbXB0eUtleXModHJhbnNmb3JtZWQpIGFzIENvbnRlbnRUeXBlO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29udGVudEZyb21EYiA9IChjb250ZW50OiBDb250ZW50VHlwZSk6IENvbnRlbnRUeXBlID0+IHBlcmZvcm1Db250ZW50VHJhbnNmb3JtYXRpb24oY29udGVudCk7Il0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxpQkFBQUEsRUFBZSxXQUFBQyxFQUFTLGVBQUFDLE1BQWtCLGVBQ2xELE9BQVEsS0FBQUMsTUFBUSxNQUVoQixPQUFRLGlCQUFBQyxNQUFvQixrQkFFNUIsT0FBUSxtQkFBQUMsTUFBc0Isd0JBRXZCLE1BQU1DLFVBQStCLEtBQU0sQ0FDaEQsWUFBWUMsRUFBd0JDLEVBQWdCLENBQ2xELE1BQU1ELENBQU8sRUFEcUIsV0FBQUMsRUFFbEMsS0FBSyxLQUFPLHdCQUNkLENBQ0YsQ0FFQSxNQUFNQyxFQUFnQk4sRUFBRSxPQUFPLENBQzdCLFVBQVdBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDL0IsSUFBS0EsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLGlCQUFpQixFQUFFLElBQUksSUFBSyxzQ0FBc0MsRUFDekYsT0FBUUEsRUFBRSxLQUFLLENBQUMsS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLElBQUksRUFBRyxDQUNuRCxTQUFVLEtBQU8sQ0FBQyxRQUFTLCtDQUErQyxFQUM1RSxDQUFDLEVBQ0QsUUFBU0EsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLHFCQUFx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Z0JzQixDQUFXLENBQ3BDLEVBRWFDLEVBQXNCaEIsR0FBc0NHLEVBQTZCSCxDQUFPIiwKICAibmFtZXMiOiBbInBhcnNlQXJhbmdvSWQiLCAicGFyc2VJZCIsICJwYXJzZVN0cmluZyIsICJ6IiwgInBhcnNlRG9jdW1lbnQiLCAicmVtb3ZlRW1wdHlLZXlzIiwgIkNvbnRlbnRWYWxpZGF0aW9uRXJyb3IiLCAibWVzc2FnZSIsICJmaWVsZCIsICJjb250ZW50U2NoZW1hIiwgImNvbnRlbnRJbnB1dFNjaGVtYSIsICJwYXJzZUNvbnRlbnQiLCAiY29udGVudCIsICJlcnJvciIsICJwYXJzZUNvbnRlbnRJbnB1dCIsICJwZXJmb3JtQ29udGVudFRyYW5zZm9ybWF0aW9uIiwgIl9pZCIsICJfa2V5IiwgImNvbnRlbnRJZCIsICJpZCIsICJrZXkiLCAibG9jYWxlIiwgImNvbnRlbnRUZXh0IiwgImRlc2NyaXB0aW9uIiwgImNhdGVnb3J5IiwgImlzQWN0aXZlIiwgInVzZXJJZCIsICJ0cmFuc2Zvcm1lZCIsICJwYXJzZUNvbnRlbnRGcm9tRGIiXQp9Cg==
@@ -1,76 +1,2 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var fileAdapter_exports = {};
19
- __export(fileAdapter_exports, {
20
- getFileType: () => getFileType,
21
- parseFile: () => parseFile
22
- });
23
- module.exports = __toCommonJS(fileAdapter_exports);
24
- var import_utils = require("@nlabs/utils");
25
- var import_arangoAdapter = require("./arangoAdapter");
26
- var import_reaktorAdapter = require("./reaktorAdapter");
27
- const getFileType = (file) => {
28
- const { fileType, name } = file;
29
- if (fileType) {
30
- return (0, import_utils.parseString)(fileType, 16);
31
- }
32
- const nameArr = name?.split(".") || [];
33
- const ext = nameArr.length && nameArr[nameArr.length - 1];
34
- switch (ext) {
35
- case "jpeg":
36
- case "jpg":
37
- return "image/jpeg";
38
- case "png":
39
- return "image/png";
40
- case "zip":
41
- return "application/zip";
42
- default:
43
- return void 0;
44
- }
45
- };
46
- const parseFile = (file) => {
47
- const {
48
- _key,
49
- description,
50
- fileId,
51
- fileSize,
52
- itemId,
53
- itemType,
54
- name,
55
- url,
56
- userId
57
- } = file;
58
- return {
59
- ...(0, import_arangoAdapter.parseDocument)(file),
60
- description: (0, import_reaktorAdapter.parseReaktorContent)(description),
61
- fileId: (0, import_reaktorAdapter.parseReaktorItemId)(_key || fileId),
62
- fileSize: fileSize ? (0, import_utils.parseNum)(fileSize) : void 0,
63
- fileType: getFileType(file),
64
- itemId: (0, import_reaktorAdapter.parseReaktorItemId)(itemId),
65
- itemType: (0, import_reaktorAdapter.parseReaktorType)(itemType),
66
- name: (0, import_reaktorAdapter.parseReaktorName)(name),
67
- url: (0, import_reaktorAdapter.parseReaktorUrl)(url),
68
- userId: (0, import_reaktorAdapter.parseReaktorItemId)(userId)
69
- };
70
- };
71
- // Annotate the CommonJS export names for ESM import in node:
72
- 0 && (module.exports = {
73
- getFileType,
74
- parseFile
75
- });
76
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2ZpbGVBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge3BhcnNlTnVtLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzJztcblxuaW1wb3J0IHtGaWxlVHlwZX0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtwYXJzZURvY3VtZW50fSBmcm9tICcuL2FyYW5nb0FkYXB0ZXInO1xuaW1wb3J0IHtcbiAgcGFyc2VSZWFrdG9yQ29udGVudCxcbiAgcGFyc2VSZWFrdG9ySXRlbUlkLFxuICBwYXJzZVJlYWt0b3JOYW1lLFxuICBwYXJzZVJlYWt0b3JUeXBlLFxuICBwYXJzZVJlYWt0b3JVcmxcbn0gZnJvbSAnLi9yZWFrdG9yQWRhcHRlcic7XG5cbmV4cG9ydCBjb25zdCBnZXRGaWxlVHlwZSA9IChmaWxlOiBGaWxlVHlwZSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHtmaWxlVHlwZSwgbmFtZX0gPSBmaWxlO1xuXG4gIGlmKGZpbGVUeXBlKSB7XG4gICAgcmV0dXJuIHBhcnNlU3RyaW5nKGZpbGVUeXBlLCAxNik7XG4gIH1cblxuICBjb25zdCBuYW1lQXJyOiBzdHJpbmdbXSA9IG5hbWU/LnNwbGl0KCcuJykgfHwgW107XG4gIGNvbnN0IGV4dDogc3RyaW5nID0gbmFtZUFyci5sZW5ndGggJiYgbmFtZUFycltuYW1lQXJyLmxlbmd0aCAtIDFdO1xuXG4gIHN3aXRjaChleHQpIHtcbiAgICBjYXNlICdqcGVnJzpcbiAgICBjYXNlICdqcGcnOlxuICAgICAgcmV0dXJuICdpbWFnZS9qcGVnJztcbiAgICBjYXNlICdwbmcnOlxuICAgICAgcmV0dXJuICdpbWFnZS9wbmcnO1xuICAgIGNhc2UgJ3ppcCc6XG4gICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3ppcCc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUZpbGUgPSAoZmlsZTogRmlsZVR5cGUpOiBGaWxlVHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfa2V5LFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGZpbGVJZCxcbiAgICBmaWxlU2l6ZSxcbiAgICBpdGVtSWQsXG4gICAgaXRlbVR5cGUsXG4gICAgbmFtZSxcbiAgICB1cmwsXG4gICAgdXNlcklkXG4gIH0gPSBmaWxlO1xuXG4gIHJldHVybiB7XG4gICAgLi4ucGFyc2VEb2N1bWVudChmaWxlKSxcbiAgICBkZXNjcmlwdGlvbjogcGFyc2VSZWFrdG9yQ29udGVudChkZXNjcmlwdGlvbiksXG4gICAgZmlsZUlkOiBwYXJzZVJlYWt0b3JJdGVtSWQoX2tleSB8fCBmaWxlSWQpLFxuICAgIGZpbGVTaXplOiBmaWxlU2l6ZSA/IHBhcnNlTnVtKGZpbGVTaXplKSA6IHVuZGVmaW5lZCxcbiAgICBmaWxlVHlwZTogZ2V0RmlsZVR5cGUoZmlsZSksXG4gICAgaXRlbUlkOiBwYXJzZVJlYWt0b3JJdGVtSWQoaXRlbUlkKSxcbiAgICBpdGVtVHlwZTogcGFyc2VSZWFrdG9yVHlwZShpdGVtVHlwZSksXG4gICAgbmFtZTogcGFyc2VSZWFrdG9yTmFtZShuYW1lKSxcbiAgICB1cmw6IHBhcnNlUmVha3RvclVybCh1cmwpLFxuICAgIHVzZXJJZDogcGFyc2VSZWFrdG9ySXRlbUlkKHVzZXJJZClcbiAgfTtcbn07Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFBb0M7QUFHcEMsMkJBQTRCO0FBQzVCLDRCQU1PO0FBRUEsTUFBTSxjQUFjLENBQUMsU0FBMkI7QUFDckQsUUFBTSxFQUFDLFVBQVUsS0FBSSxJQUFJO0FBRXpCLE1BQUcsVUFBVTtBQUNYLGVBQU8sMEJBQVksVUFBVSxFQUFFO0FBQUEsRUFDakM7QUFFQSxRQUFNLFVBQW9CLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQztBQUMvQyxRQUFNLE1BQWMsUUFBUSxVQUFVLFFBQVEsUUFBUSxTQUFTLENBQUM7QUFFaEUsVUFBTyxLQUFLO0FBQUEsSUFDVixLQUFLO0FBQUEsSUFDTCxLQUFLO0FBQ0gsYUFBTztBQUFBLElBQ1QsS0FBSztBQUNILGFBQU87QUFBQSxJQUNULEtBQUs7QUFDSCxhQUFPO0FBQUEsSUFDVDtBQUNFLGFBQU87QUFBQSxFQUNYO0FBQ0Y7QUFFTyxNQUFNLFlBQVksQ0FBQyxTQUE2QjtBQUNyRCxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBRUosU0FBTztBQUFBLElBQ0wsT0FBRyxvQ0FBYyxJQUFJO0FBQUEsSUFDckIsaUJBQWEsMkNBQW9CLFdBQVc7QUFBQSxJQUM1QyxZQUFRLDBDQUFtQixRQUFRLE1BQU07QUFBQSxJQUN6QyxVQUFVLGVBQVcsdUJBQVMsUUFBUSxJQUFJO0FBQUEsSUFDMUMsVUFBVSxZQUFZLElBQUk7QUFBQSxJQUMxQixZQUFRLDBDQUFtQixNQUFNO0FBQUEsSUFDakMsY0FBVSx3Q0FBaUIsUUFBUTtBQUFBLElBQ25DLFVBQU0sd0NBQWlCLElBQUk7QUFBQSxJQUMzQixTQUFLLHVDQUFnQixHQUFHO0FBQUEsSUFDeEIsWUFBUSwwQ0FBbUIsTUFBTTtBQUFBLEVBQ25DO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
1
+ import{parseArangoId as h,parseId as s,parseNum as I,parseString as F,parseUrl as w}from"@nlabs/utils";import{z as e}from"zod";import{parseDocument as x}from"./arangoAdapter";import{parseReaktorContent as _,parseReaktorType as b}from"./reaktorAdapter";class p extends Error{constructor(t,n){super(t);this.field=n;this.name="FileValidationError"}}const j=e.object({_from:e.string().optional(),_id:e.string().optional(),_key:e.string().optional(),_oldRev:e.string().optional(),_rev:e.string().optional(),_to:e.string().optional(),base64:e.string().optional(),buffer:e.any().optional(),description:e.string().optional(),fileId:e.string().optional(),fileSize:e.number().optional(),fileType:e.string().optional(),itemId:e.string().optional(),itemType:e.string().optional(),name:e.string().optional(),url:e.string().optional(),userId:e.string().optional()}).passthrough(),A=i=>{try{return j.parse(i)}catch(r){if(r instanceof e.ZodError){const t=r.errors.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ");throw new p(`File validation failed: ${t}`)}throw r}},U=i=>i,k=i=>{const{fileType:r,name:t}=i;if(r)return F(r,16);const n=t?.split(".")||[];switch(n.length&&n[n.length-1]){case"jpeg":case"jpg":return"image/jpeg";case"png":return"image/png";case"zip":return"application/zip";default:return}},V=i=>{try{return v(i)}catch(r){throw r instanceof p?r:new p(`File parsing failed: ${r instanceof Error?r.message:"Unknown error"}`)}},v=i=>{const{_id:r,_key:t,base64:n,buffer:a,description:l,fileId:o,fileSize:d,fileType:T,id:c,itemId:f,itemType:m,name:g,url:u,userId:y}=i;return{...x(i),...n&&{base64:n},...a&&{buffer:a},...l&&{description:_(l)},...(t||o)&&{fileId:s(t||o)},...(r||c||t||o)&&{id:h(r||c||`files/${t||o}`)},...d!==void 0&&{fileSize:I(d)},...T&&{fileType:k(i)},...f&&{itemId:s(f)},...m&&{itemType:b(m)},...g&&{name:F(g,160)},...u&&{url:w(u)},...y&&{userId:s(y)}}};export{p as FileValidationError,U as formatFileOutput,k as getFileType,V as parseFile,A as validateFileInput};
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2ZpbGVBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge3BhcnNlQXJhbmdvSWQsIHBhcnNlSWQsIHBhcnNlTnVtLCBwYXJzZVN0cmluZywgcGFyc2VVcmx9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7RmlsZVR5cGV9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7cGFyc2VEb2N1bWVudH0gZnJvbSAnLi9hcmFuZ29BZGFwdGVyJztcbmltcG9ydCB7cGFyc2VSZWFrdG9yQ29udGVudCwgcGFyc2VSZWFrdG9yVHlwZX0gZnJvbSAnLi9yZWFrdG9yQWRhcHRlcic7XG5cbmV4cG9ydCBjbGFzcyBGaWxlVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmaWVsZD86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdGaWxlVmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBGaWxlSW5wdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfa2V5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9vbGRSZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfdG86IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYmFzZTY0OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGJ1ZmZlcjogei5hbnkoKS5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBmaWxlSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZmlsZVNpemU6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgZmlsZVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaXRlbUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGl0ZW1UeXBlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIG5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdXJsOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHVzZXJJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KS5wYXNzdGhyb3VnaCgpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVGaWxlSW5wdXQgPSAoZmlsZTogdW5rbm93bik6IEZpbGVUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBGaWxlSW5wdXRTY2hlbWEucGFyc2UoZmlsZSk7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBGaWxlVHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5lcnJvcnMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBGaWxlVmFsaWRhdGlvbkVycm9yKGBGaWxlIHZhbGlkYXRpb24gZmFpbGVkOiAke2ZpZWxkRXJyb3JzfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdEZpbGVPdXRwdXQgPSAoZmlsZTogRmlsZVR5cGUpOiBGaWxlVHlwZSA9PiBmaWxlO1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsZVR5cGUgPSAoZmlsZTogRmlsZVR5cGUpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7ZmlsZVR5cGUsIG5hbWV9ID0gZmlsZTtcblxuICBpZihmaWxlVHlwZSkge1xuICAgIHJldHVybiBwYXJzZVN0cmluZyhmaWxlVHlwZSwgMTYpO1xuICB9XG5cbiAgY29uc3QgbmFtZUFycjogc3RyaW5nW10gPSBuYW1lPy5zcGxpdCgnLicpIHx8IFtdO1xuICBjb25zdCBleHQ6IHN0cmluZyA9IG5hbWVBcnIubGVuZ3RoICYmIG5hbWVBcnJbbmFtZUFyci5sZW5ndGggLSAxXTtcblxuICBzd2l0Y2goZXh0KSB7XG4gICAgY2FzZSAnanBlZyc6XG4gICAgY2FzZSAnanBnJzpcbiAgICAgIHJldHVybiAnaW1hZ2UvanBlZyc7XG4gICAgY2FzZSAncG5nJzpcbiAgICAgIHJldHVybiAnaW1hZ2UvcG5nJztcbiAgICBjYXNlICd6aXAnOlxuICAgICAgcmV0dXJuICdhcHBsaWNhdGlvbi96aXAnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VGaWxlID0gKGZpbGU6IEZpbGVUeXBlKTogRmlsZVR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBlcmZvcm1GaWxlVHJhbnNmb3JtYXRpb24oZmlsZSk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2YgRmlsZVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICAgIHRocm93IG5ldyBGaWxlVmFsaWRhdGlvbkVycm9yKGBGaWxlIHBhcnNpbmcgZmFpbGVkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfWApO1xuICB9XG59O1xuXG5jb25zdCBwZXJmb3JtRmlsZVRyYW5zZm9ybWF0aW9uID0gKGZpbGU6IEZpbGVUeXBlKTogRmlsZVR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgX2lkLFxuICAgIF9rZXksXG4gICAgYmFzZTY0LFxuICAgIGJ1ZmZlcixcbiAgICBkZXNjcmlwdGlvbixcbiAgICBmaWxlSWQsXG4gICAgZmlsZVNpemUsXG4gICAgZmlsZVR5cGUsXG4gICAgaWQsXG4gICAgaXRlbUlkLFxuICAgIGl0ZW1UeXBlLFxuICAgIG5hbWUsXG4gICAgdXJsLFxuICAgIHVzZXJJZFxuICB9ID0gZmlsZTtcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHtcbiAgICAuLi5wYXJzZURvY3VtZW50KGZpbGUpLFxuICAgIC4uLihiYXNlNjQgJiYge2Jhc2U2NH0pLFxuICAgIC4uLihidWZmZXIgJiYge2J1ZmZlcn0pLFxuICAgIC4uLihkZXNjcmlwdGlvbiAmJiB7ZGVzY3JpcHRpb246IHBhcnNlUmVha3RvckNvbnRlbnQoZGVzY3JpcHRpb24pfSksXG4gICAgLi4uKChfa2V5IHx8IGZpbGVJZCkgJiYge2ZpbGVJZDogcGFyc2VJZChfa2V5IHx8IGZpbGVJZCl9KSxcbiAgICAuLi4oKF9pZCB8fCBpZCB8fCBfa2V5IHx8IGZpbGVJZCkgJiYge2lkOiBwYXJzZUFyYW5nb0lkKF9pZCB8fCBpZCB8fCBgZmlsZXMvJHtfa2V5IHx8IGZpbGVJZH1gKX0pLFxuICAgIC4uLihmaWxlU2l6ZSAhPT0gdW5kZWZpbmVkICYmIHtmaWxlU2l6ZTogcGFyc2VOdW0oZmlsZVNpemUpfSksXG4gICAgLi4uKGZpbGVUeXBlICYmIHtmaWxlVHlwZTogZ2V0RmlsZVR5cGUoZmlsZSl9KSxcbiAgICAuLi4oaXRlbUlkICYmIHtpdGVtSWQ6IHBhcnNlSWQoaXRlbUlkKX0pLFxuICAgIC4uLihpdGVtVHlwZSAmJiB7aXRlbVR5cGU6IHBhcnNlUmVha3RvclR5cGUoaXRlbVR5cGUpfSksXG4gICAgLi4uKG5hbWUgJiYge25hbWU6IHBhcnNlU3RyaW5nKG5hbWUsIDE2MCl9KSxcbiAgICAuLi4odXJsICYmIHt1cmw6IHBhcnNlVXJsKHVybCl9KSxcbiAgICAuLi4odXNlcklkICYmIHt1c2VySWQ6IHBhcnNlSWQodXNlcklkKX0pXG4gIH07XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkO1xufTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxP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Q0FDbEIsR0FBR1IsRUFBY1EsQ0FBSSxFQUNyQixHQUFJYSxHQUFVLENBQUMsT0FBQUEsQ0FBTSxFQUNyQixHQUFJQyxHQUFVLENBQUMsT0FBQUEsQ0FBTSxFQUNyQixHQUFJQyxHQUFlLENBQUMsWUFBYXRCLEVBQW9Cc0IsQ0FBVyxDQUFDLEVBQ2pFLElBQUtILEdBQVFJLElBQVcsQ0FBQyxPQUFRN0IsRUFBUXlCLEdBQVFJLENBQU0sQ0FBQyxFQUN4RCxJQUFLTCxHQUFPTyxHQUFNTixHQUFRSSxJQUFXLENBQUMsR0FBSTlCLEVBQWN5QixHQUFPTyxHQUFNLFNBQVNOLEdBQVFJLENBQU0sRUFBRSxDQUFDLEVBQy9GLEdBQUlDLElBQWEsUUFBYSxDQUFDLFNBQVU3QixFQUFTNkIsQ0FBUSxDQUFDLEVBQzNELEdBQUlYLEdBQVksQ0FBQyxTQUFVRCxFQUFZTCxDQUFJLENBQUMsRUFDNUMsR0FBSW1CLEdBQVUsQ0FBQyxPQUFRaEMsRUFBUWdDLENBQU0sQ0FBQyxFQUN0QyxHQUFJQyxHQUFZLENBQUMsU0FBVTFCLEVBQWlCMEIsQ0FBUSxDQUFDLEVBQ3JELEdBQUliLEdBQVEsQ0FBQyxLQUFNbEIsRUFBWWtCLEVBQU0sR0FBRyxDQUFDLEVBQ3pDLEdBQUljLEdBQU8sQ0FBQyxJQUFLL0IsRUFBUytCLENBQUcsQ0FBQyxFQUM5QixHQUFJQyxHQUFVLENBQUMsT0FBUW5DLEVBQVFtQyxDQUFNLENBQUMsQ0FDeEMsQ0FHRiIsCiAgIm5hbWVzIjogWyJwYXJzZUFyYW5nb0lkIiwgInBhcnNlSWQiLCAicGFyc2VOdW0iLCAicGFyc2VTdHJpbmciLCAicGFyc2VVcmwiLCAieiIsICJwYXJzZURvY3VtZW50IiwgInBhcnNlUmVha3RvckNvbnRlbnQiLCAicGFyc2VSZWFrdG9yVHlwZSIsICJGaWxlVmFsaWRhdGlvbkVycm9yIiwgIm1lc3NhZ2UiLCAiZmllbGQiLCAiRmlsZUlucHV0U2NoZW1hIiwgInZhbGlkYXRlRmlsZUlucHV0IiwgImZpbGUiLCAiZXJyb3IiLCAiZmllbGRFcnJvcnMiLCAiZSIsICJmb3JtYXRGaWxlT3V0cHV0IiwgImdldEZpbGVUeXBlIiwgImZpbGVUeXBlIiwgIm5hbWUiLCAibmFtZUFyciIsICJwYXJzZUZpbGUiLCAicGVyZm9ybUZpbGVUcmFuc2Zvcm1hdGlvbiIsICJfaWQiLCAiX2tleSIsICJiYXNlNjQiLCAiYnVmZmVyIiwgImRlc2NyaXB0aW9uIiwgImZpbGVJZCIsICJmaWxlU2l6ZSIsICJpZCIsICJpdGVtSWQiLCAiaXRlbVR5cGUiLCAidXJsIiwgInVzZXJJZCJdCn0K
@@ -1,40 +1,2 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var imageAdapter_exports = {};
19
- __export(imageAdapter_exports, {
20
- parseImage: () => parseImage
21
- });
22
- module.exports = __toCommonJS(imageAdapter_exports);
23
- var import_utils = require("@nlabs/utils");
24
- var import_arangoAdapter = require("./arangoAdapter");
25
- var import_adapterUtils = require("../utils/adapterUtils");
26
- const parseImage = (image) => {
27
- const {
28
- _key: imageId,
29
- name
30
- } = image;
31
- return (0, import_adapterUtils.removeEmptyKeys)({
32
- ...(0, import_arangoAdapter.parseDocument)(image),
33
- imageId: imageId ? (0, import_utils.parseArangoId)(imageId) : void 0
34
- });
35
- };
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- parseImage
39
- });
40
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2ltYWdlQWRhcHRlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtwYXJzZUFyYW5nb0lkfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuXG5pbXBvcnQge3BhcnNlRG9jdW1lbnR9IGZyb20gJy4vYXJhbmdvQWRhcHRlcic7XG5pbXBvcnQge3JlbW92ZUVtcHR5S2V5c30gZnJvbSAnLi4vdXRpbHMvYWRhcHRlclV0aWxzJztcblxuaW1wb3J0IHR5cGUge0ltYWdlVHlwZX0gZnJvbSAnLi4vdHlwZXMvaW1hZ2VzLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IHBhcnNlSW1hZ2UgPSAoaW1hZ2U6IEltYWdlVHlwZSk6IEltYWdlVHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfa2V5OiBpbWFnZUlkLFxuICAgIG5hbWVcbiAgfSA9IGltYWdlO1xuXG4gIHJldHVybiByZW1vdmVFbXB0eUtleXMoe1xuICAgIC4uLnBhcnNlRG9jdW1lbnQoaW1hZ2UpLFxuICAgIGltYWdlSWQ6IGltYWdlSWQgPyBwYXJzZUFyYW5nb0lkKGltYWdlSWQpIDogdW5kZWZpbmVkXG4gIH0pO1xufTtcblxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBQTRCO0FBRTVCLDJCQUE0QjtBQUM1QiwwQkFBOEI7QUFJdkIsTUFBTSxhQUFhLENBQUMsVUFBZ0M7QUFDekQsUUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ047QUFBQSxFQUNGLElBQUk7QUFFSixhQUFPLHFDQUFnQjtBQUFBLElBQ3JCLE9BQUcsb0NBQWMsS0FBSztBQUFBLElBQ3RCLFNBQVMsY0FBVSw0QkFBYyxPQUFPLElBQUk7QUFBQSxFQUM5QyxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
1
+ import{parseArangoId as b,parseNum as i,parseString as a,parseUrl as _}from"@nlabs/utils";import{z as e}from"zod";import{parseDocument as v}from"./arangoAdapter";import{removeEmptyKeys as E}from"../utils/adapterUtils";class p extends Error{constructor(r,n){super(r);this.field=n;this.name="ImageValidationError"}}const x=e.object({bucket:e.string().optional(),color:e.string().optional(),imageId:e.string().optional(),height:e.number().optional(),model:e.string().optional(),make:e.string().optional(),s3Options:e.any().optional(),taken:e.number().optional(),thumb:e.string().optional(),fileType:e.string().optional(),type:e.string().optional(),url:e.string().optional(),width:e.number().optional(),name:e.string().optional(),_id:e.string().optional(),_key:e.string().optional(),_rev:e.string().optional(),_oldRev:e.string().optional(),_from:e.string().optional(),_to:e.string().optional()}).passthrough(),z=o=>{try{return x.parse(o)}catch(t){if(t instanceof e.ZodError){const r=t.errors.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ");throw new p(`Image validation failed: ${r}`)}throw t}},A=o=>o,D=o=>{try{return $(o)}catch(t){throw t instanceof p?t:new p(`Image parsing failed: ${t instanceof Error?t.message:"Unknown error"}`)}},$=o=>{const{_id:t,_key:r,bucket:n,color:s,id:m,imageId:g,height:l,model:d,make:c,s3Options:u,taken:f,thumb:y,fileType:I,type:h,url:T,width:k,name:w}=o;return E({...v(o),...r&&{imageId:b(r)},...n&&{bucket:n},...s&&{color:s},...(t||m||r||g)&&{imageId:b(t||m||`images/${r||g}`)},...l!==void 0&&{height:i(l)},...d&&{model:a(d,160)},...c&&{make:a(c,160)},...u&&{s3Options:u},...f!==void 0&&{taken:i(f)},...y&&{thumb:y},...I&&{fileType:a(I,16)},...h&&{type:a(h,16)},...T&&{url:_(T)},...k!==void 0&&{width:i(k)},...w&&{name:a(w,160)}})};export{p as ImageValidationError,A as formatImageOutput,D as parseImage,z as validateImageInput};
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2ltYWdlQWRhcHRlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtwYXJzZUFyYW5nb0lkLCBwYXJzZU51bSwgcGFyc2VTdHJpbmcsIHBhcnNlVXJsfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuXG5pbXBvcnQge3BhcnNlRG9jdW1lbnR9IGZyb20gJy4vYXJhbmdvQWRhcHRlcic7XG5pbXBvcnQge3JlbW92ZUVtcHR5S2V5c30gZnJvbSAnLi4vdXRpbHMvYWRhcHRlclV0aWxzJztcblxuaW1wb3J0IHR5cGUge0ltYWdlVHlwZX0gZnJvbSAnLi4vdHlwZXMvaW1hZ2VzLnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIEltYWdlVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmaWVsZD86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdJbWFnZVZhbGlkYXRpb25FcnJvcic7XG4gIH1cbn1cblxuY29uc3QgSW1hZ2VJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgYnVja2V0OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGNvbG9yOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGltYWdlSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaGVpZ2h0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIG1vZGVsOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIG1ha2U6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgczNPcHRpb25zOiB6LmFueSgpLm9wdGlvbmFsKCksXG4gIHRha2VuOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHRodW1iOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGZpbGVUeXBlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdXJsOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHdpZHRoOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIG5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KS5wYXNzdGhyb3VnaCgpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVJbWFnZUlucHV0ID0gKGltYWdlOiB1bmtub3duKTogSW1hZ2VUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBJbWFnZUlucHV0U2NoZW1hLnBhcnNlKGltYWdlKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIEltYWdlVHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5lcnJvcnMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBJbWFnZVZhbGlkYXRpb25FcnJvcihgSW1hZ2UgdmFsaWRhdGlvbiBmYWlsZWQ6ICR7ZmllbGRFcnJvcnN9YCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0SW1hZ2VPdXRwdXQgPSAoaW1hZ2U6IEltYWdlVHlwZSk6IEltYWdlVHlwZSA9PiBpbWFnZTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlSW1hZ2UgPSAoaW1hZ2U6IEltYWdlVHlwZSk6IEltYWdlVHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGVyZm9ybUltYWdlVHJhbnNmb3JtYXRpb24oaW1hZ2UpO1xuICAgIHJldHVybiBwYXJzZWQ7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIEltYWdlVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEltYWdlVmFsaWRhdGlvbkVycm9yKGBJbWFnZSBwYXJzaW5nIGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gKTtcbiAgfVxufTtcblxuY29uc3QgcGVyZm9ybUltYWdlVHJhbnNmb3JtYXRpb24gPSAoaW1hZ2U6IEltYWdlVHlwZSk6IEltYWdlVHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfaWQsXG4gICAgX2tleSxcbiAgICBidWNrZXQsXG4gICAgY29sb3IsXG4gICAgaWQsXG4gICAgaW1hZ2VJZCxcbiAgICBoZWlnaHQsXG4gICAgbW9kZWwsXG4gICAgbWFrZSxcbiAgICBzM09wdGlvbnMsXG4gICAgdGFrZW4sXG4gICAgdGh1bWIsXG4gICAgZmlsZVR5cGUsXG4gICAgdHlwZSxcbiAgICB1cmwsXG4gICAgd2lkdGgsXG4gICAgbmFtZVxuICB9ID0gaW1hZ2U7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSByZW1vdmVFbXB0eUtleXMoe1xuICAgIC4uLnBhcnNlRG9jdW1lbnQoaW1hZ2UpLFxuICAgIC4uLihfa2V5ICYmIHtpbWFnZUlkOiBwYXJzZUFyYW5nb0lkKF9rZXkpfSksXG4gICAgLi4uKGJ1Y2tldCAmJiB7YnVja2V0fSksXG4gICAgLi4uKGNvbG9yICYmIHtjb2xvcn0pLFxuICAgIC4uLigoX2lkIHx8IGlkIHx8IF9rZXkgfHwgaW1hZ2VJZCkgJiYge2ltYWdlSWQ6IHBhcnNlQXJhbmdvSWQoX2lkIHx8IGlkIHx8IGBpbWFnZXMvJHtfa2V5IHx8IGltYWdlSWR9YCl9KSxcbiAgICAuLi4oaGVpZ2h0ICE9PSB1bmRlZmluZWQgJiYge2hlaWdodDogcGFyc2VOdW0oaGVpZ2h0KX0pLFxuICAgIC4uLihtb2RlbCAmJiB7bW9kZWw6IHBhcnNlU3RyaW5nKG1vZGVsLCAxNjApfSksXG4gICAgLi4uKG1ha2UgJiYge21ha2U6IHBhcnNlU3RyaW5nKG1ha2UsIDE2MCl9KSxcbiAgICAuLi4oczNPcHRpb25zICYmIHtzM09wdGlvbnN9KSxcbiAgICAuLi4odGFrZW4gIT09IHVuZGVmaW5lZCAmJiB7dGFrZW46IHBhcnNlTnVtKHRha2VuKX0pLFxuICAgIC4uLih0aHVtYiAmJiB7dGh1bWJ9KSxcbiAgICAuLi4oZmlsZVR5cGUgJiYge2ZpbGVUeXBlOiBwYXJzZVN0cmluZyhmaWxlVHlwZSwgMTYpfSksXG4gICAgLi4uKHR5cGUgJiYge3R5cGU6IHBhcnNlU3RyaW5nKHR5cGUsIDE2KX0pLFxuICAgIC4uLih1cmwgJiYge3VybDogcGFyc2VVcmwodXJsKX0pLFxuICAgIC4uLih3aWR0aCAhPT0gdW5kZWZpbmVkICYmIHt3aWR0aDogcGFyc2VOdW0od2lkdGgpfSksXG4gICAgLi4uKG5hbWUgJiYge25hbWU6IHBhcnNlU3RyaW5nKG5hbWUsIDE2MCl9KVxuICB9KTtcblxuICByZXR1cm4gdHJhbnNmb3JtZWQ7XG59O1xuXG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQSxPQUFRLGlCQUFBQSxFQUFlLFlBQUFDLEVBQVUsZUFBQUMsRUFBYSxZQUFBQyxNQUFlLGVBQzdELE9BQVEsS0FBQUMsTUFBUSxNQUVoQixPQUFRLGlCQUFBQyxNQUFvQixrQkFDNUIsT0FBUSxtQkFBQUMsTUFBc0Isd0JBSXZCLE1BQU1DLFVBQTZCLEtBQU0sQ0FDOUMsWUFBWUMsRUFBd0JDLEVBQWdCLENBQ2xELE1BQU1ELENBQU8sRUFEcUIsV0FBQUMsRUFFbEMsS0FBSyxLQUFPLHNCQUNkLENBQ0YsQ0FFQSxNQUFNQyxFQUFtQk4sRUFBRSxP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QUFVLFFBQWEsQ0FBQyxNQUFPNUIsRUFBUzRCLENBQUssQ0FBQyxFQUNsRCxHQUFJQyxHQUFTLENBQUMsTUFBQUEsQ0FBSyxFQUNuQixHQUFJQyxHQUFZLENBQUMsU0FBVTdCLEVBQVk2QixFQUFVLEVBQUUsQ0FBQyxFQUNwRCxHQUFJQyxHQUFRLENBQUMsS0FBTTlCLEVBQVk4QixFQUFNLEVBQUUsQ0FBQyxFQUN4QyxHQUFJQyxHQUFPLENBQUMsSUFBSzlCLEVBQVM4QixDQUFHLENBQUMsRUFDOUIsR0FBSUMsSUFBVSxRQUFhLENBQUMsTUFBT2pDLEVBQVNpQyxDQUFLLENBQUMsRUFDbEQsR0FBSUMsR0FBUSxDQUFDLEtBQU1qQyxFQUFZaUMsRUFBTSxHQUFHLENBQUMsQ0FDM0MsQ0FBQyxDQUdIIiwKICAibmFtZXMiOiBbInBhcnNlQXJhbmdvSWQiLCAicGFyc2VOdW0iLCAicGFyc2VTdHJpbmciLCAicGFyc2VVcmwiLCAieiIsICJwYXJzZURvY3VtZW50IiwgInJlbW92ZUVtcHR5S2V5cyIsICJJbWFnZVZhbGlkYXRpb25FcnJvciIsICJtZXNzYWdlIiwgImZpZWxkIiwgIkltYWdlSW5wdXRTY2hlbWEiLCAidmFsaWRhdGVJbWFnZUlucHV0IiwgImltYWdlIiwgImVycm9yIiwgImZpZWxkRXJyb3JzIiwgImUiLCAiZm9ybWF0SW1hZ2VPdXRwdXQiLCAicGFyc2VJbWFnZSIsICJwZXJmb3JtSW1hZ2VUcmFuc2Zvcm1hdGlvbiIsICJfaWQiLCAiX2tleSIsICJidWNrZXQiLCAiY29sb3IiLCAiaWQiLCAiaW1hZ2VJZCIsICJoZWlnaHQiLCAibW9kZWwiLCAibWFrZSIsICJzM09wdGlvbnMiLCAidGFrZW4iLCAidGh1bWIiLCAiZmlsZVR5cGUiLCAidHlwZSIsICJ1cmwiLCAid2lkdGgiLCAibmFtZSJdCn0K
@@ -1,49 +1,2 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var messageAdapter_exports = {};
19
- __export(messageAdapter_exports, {
20
- parseMessage: () => parseMessage
21
- });
22
- module.exports = __toCommonJS(messageAdapter_exports);
23
- var import_utils = require("@nlabs/utils");
24
- var import_arangoAdapter = require("./arangoAdapter");
25
- var import_fileAdapter = require("./fileAdapter");
26
- var import_imageAdapter = require("./imageAdapter");
27
- var import_adapterUtils = require("../utils/adapterUtils");
28
- const parseMessage = (message) => {
29
- const {
30
- _key: messageId,
31
- content,
32
- files,
33
- images,
34
- saved
35
- } = message;
36
- return (0, import_adapterUtils.removeEmptyKeys)({
37
- ...(0, import_arangoAdapter.parseDocument)(message),
38
- content,
39
- files: Array.isArray(files) ? files.map(import_fileAdapter.parseFile) : void 0,
40
- images: Array.isArray(images) ? images.map(import_imageAdapter.parseImage) : void 0,
41
- messageId: messageId ? (0, import_utils.parseArangoId)(messageId) : void 0,
42
- saved: !!saved
43
- });
44
- };
45
- // Annotate the CommonJS export names for ESM import in node:
46
- 0 && (module.exports = {
47
- parseMessage
48
- });
49
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL21lc3NhZ2VBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge3BhcnNlQXJhbmdvSWR9IGZyb20gJ0BubGFicy91dGlscyc7XG5cbmltcG9ydCB7cGFyc2VEb2N1bWVudH0gZnJvbSAnLi9hcmFuZ29BZGFwdGVyJztcbmltcG9ydCB7cGFyc2VGaWxlfSBmcm9tICcuL2ZpbGVBZGFwdGVyJztcbmltcG9ydCB7cGFyc2VJbWFnZX0gZnJvbSAnLi9pbWFnZUFkYXB0ZXInO1xuaW1wb3J0IHtyZW1vdmVFbXB0eUtleXN9IGZyb20gJy4uL3V0aWxzL2FkYXB0ZXJVdGlscyc7XG5cbmltcG9ydCB0eXBlIHtNZXNzYWdlVHlwZX0gZnJvbSAnLi4vdHlwZXMvbWVzc2FnZXMudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgcGFyc2VNZXNzYWdlID0gKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlKTogTWVzc2FnZVR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgX2tleTogbWVzc2FnZUlkLFxuICAgIGNvbnRlbnQsXG4gICAgZmlsZXMsXG4gICAgaW1hZ2VzLFxuICAgIHNhdmVkXG4gIH0gPSBtZXNzYWdlO1xuXG5cbiAgcmV0dXJuIHJlbW92ZUVtcHR5S2V5cyh7XG4gICAgLi4ucGFyc2VEb2N1bWVudChtZXNzYWdlKSxcbiAgICBjb250ZW50LFxuICAgIGZpbGVzOiBBcnJheS5pc0FycmF5KGZpbGVzKSA/IGZpbGVzLm1hcChwYXJzZUZpbGUpIDogdW5kZWZpbmVkLFxuICAgIGltYWdlczogQXJyYXkuaXNBcnJheShpbWFnZXMpID8gaW1hZ2VzLm1hcChwYXJzZUltYWdlKSA6IHVuZGVmaW5lZCxcbiAgICBtZXNzYWdlSWQ6IG1lc3NhZ2VJZCA/IHBhcnNlQXJhbmdvSWQobWVzc2FnZUlkKSA6IHVuZGVmaW5lZCxcbiAgICBzYXZlZDogISFzYXZlZFxuICB9KTtcbn07XG5cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUE0QjtBQUU1QiwyQkFBNEI7QUFDNUIseUJBQXdCO0FBQ3hCLDBCQUF5QjtBQUN6QiwwQkFBOEI7QUFJdkIsTUFBTSxlQUFlLENBQUMsWUFBc0M7QUFDakUsUUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ047QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFHSixhQUFPLHFDQUFnQjtBQUFBLElBQ3JCLE9BQUcsb0NBQWMsT0FBTztBQUFBLElBQ3hCO0FBQUEsSUFDQSxPQUFPLE1BQU0sUUFBUSxLQUFLLElBQUksTUFBTSxJQUFJLDRCQUFTLElBQUk7QUFBQSxJQUNyRCxRQUFRLE1BQU0sUUFBUSxNQUFNLElBQUksT0FBTyxJQUFJLDhCQUFVLElBQUk7QUFBQSxJQUN6RCxXQUFXLGdCQUFZLDRCQUFjLFNBQVMsSUFBSTtBQUFBLElBQ2xELE9BQU8sQ0FBQyxDQUFDO0FBQUEsRUFDWCxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
1
+ import{parseArangoId as d,parseId as l}from"@nlabs/utils";import{z as e}from"zod";import{parseDocument as c}from"./arangoAdapter";import{parseFile as y}from"./fileAdapter";import{parseImage as f}from"./imageAdapter";import{removeEmptyKeys as M}from"../utils/adapterUtils";class t extends Error{constructor(o,a){super(o);this.field=a;this.name="MessageValidationError"}}const u=e.object({content:e.string().optional(),conversationId:e.string().optional(),files:e.array(e.any()).optional(),images:e.array(e.any()).optional(),itemId:e.string().optional(),itemType:e.string().optional(),messageId:e.string().optional(),read:e.boolean().optional(),saved:e.boolean().optional(),userId:e.string().optional(),_id:e.string().optional(),_key:e.string().optional(),_rev:e.string().optional(),_oldRev:e.string().optional(),_from:e.string().optional(),_to:e.string().optional()}).passthrough(),A=r=>{try{return u.parse(r)}catch(s){if(s instanceof e.ZodError){const o=s.errors.map(a=>`${a.path.join(".")}: ${a.message}`).join(", ");throw new t(`Message validation failed: ${o}`)}throw s}},$=r=>r,b=r=>{try{return I(r)}catch(s){throw s instanceof t?s:new t(`Message parsing failed: ${s instanceof Error?s.message:"Unknown error"}`)}},I=r=>{const{_id:s,_key:o,content:a,files:n,id:i,images:p,messageId:g,saved:m}=r;return M({...c(r),...a&&{content:a},...Array.isArray(n)&&{files:n.map(y)},...Array.isArray(p)&&{images:p.map(f)},...o&&{messageId:l(o)},...(s||i||o||g)&&{messageId:d(s||i||`messages/${o||g}`)},...m!==void 0&&{saved:!!m}})};export{t as MessageValidationError,$ as formatMessageOutput,b as parseMessage,A as validateMessageInput};
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL21lc3NhZ2VBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge3BhcnNlQXJhbmdvSWQsIHBhcnNlSWR9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7cGFyc2VEb2N1bWVudH0gZnJvbSAnLi9hcmFuZ29BZGFwdGVyJztcbmltcG9ydCB7cGFyc2VGaWxlfSBmcm9tICcuL2ZpbGVBZGFwdGVyJztcbmltcG9ydCB7cGFyc2VJbWFnZX0gZnJvbSAnLi9pbWFnZUFkYXB0ZXInO1xuaW1wb3J0IHtyZW1vdmVFbXB0eUtleXN9IGZyb20gJy4uL3V0aWxzL2FkYXB0ZXJVdGlscyc7XG5cbmltcG9ydCB0eXBlIHtNZXNzYWdlVHlwZX0gZnJvbSAnLi4vdHlwZXMvbWVzc2FnZXMudHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgTWVzc2FnZVZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnTWVzc2FnZVZhbGlkYXRpb25FcnJvcic7XG4gIH1cbn1cblxuY29uc3QgTWVzc2FnZUlucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBjb250ZW50OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGNvbnZlcnNhdGlvbklkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGZpbGVzOiB6LmFycmF5KHouYW55KCkpLm9wdGlvbmFsKCksXG4gIGltYWdlczogei5hcnJheSh6LmFueSgpKS5vcHRpb25hbCgpLFxuICBpdGVtSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaXRlbVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbWVzc2FnZUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHJlYWQ6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIHNhdmVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KS5wYXNzdGhyb3VnaCgpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVNZXNzYWdlSW5wdXQgPSAobWVzc2FnZTogdW5rbm93bik6IE1lc3NhZ2VUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBNZXNzYWdlSW5wdXRTY2hlbWEucGFyc2UobWVzc2FnZSk7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBNZXNzYWdlVHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5lcnJvcnMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBNZXNzYWdlVmFsaWRhdGlvbkVycm9yKGBNZXNzYWdlIHZhbGlkYXRpb24gZmFpbGVkOiAke2ZpZWxkRXJyb3JzfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdE1lc3NhZ2VPdXRwdXQgPSAobWVzc2FnZTogTWVzc2FnZVR5cGUpOiBNZXNzYWdlVHlwZSA9PiBtZXNzYWdlO1xuXG5leHBvcnQgY29uc3QgcGFyc2VNZXNzYWdlID0gKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlKTogTWVzc2FnZVR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBlcmZvcm1NZXNzYWdlVHJhbnNmb3JtYXRpb24obWVzc2FnZSk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2YgTWVzc2FnZVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICAgIHRocm93IG5ldyBNZXNzYWdlVmFsaWRhdGlvbkVycm9yKGBNZXNzYWdlIHBhcnNpbmcgZmFpbGVkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfWApO1xuICB9XG59O1xuXG5jb25zdCBwZXJmb3JtTWVzc2FnZVRyYW5zZm9ybWF0aW9uID0gKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlKTogTWVzc2FnZVR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgX2lkLFxuICAgIF9rZXksXG4gICAgY29udGVudCxcbiAgICBmaWxlcyxcbiAgICBpZCxcbiAgICBpbWFnZXMsXG4gICAgbWVzc2FnZUlkLFxuICAgIHNhdmVkXG4gIH0gPSBtZXNzYWdlO1xuXG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gcmVtb3ZlRW1wdHlLZXlzKHtcbiAgICAuLi5wYXJzZURvY3VtZW50KG1lc3NhZ2UpLFxuICAgIC4uLihjb250ZW50ICYmIHtjb250ZW50fSksXG4gICAgLi4uKEFycmF5LmlzQXJyYXkoZmlsZXMpICYmIHtmaWxlczogZmlsZXMubWFwKHBhcnNlRmlsZSl9KSxcbiAgICAuLi4oQXJyYXkuaXNBcnJheShpbWFnZXMpICYmIHtpbWFnZXM6IGltYWdlcy5tYXAocGFyc2VJbWFnZSl9KSxcbiAgICAuLi4oX2tleSAmJiB7bWVzc2FnZUlkOiBwYXJzZUlkKF9rZXkpfSksXG4gICAgLi4uKChfaWQgfHwgaWQgfHwgX2tleSB8fCBtZXNzYWdlSWQpICYmIHttZXNzYWdlSWQ6IHBhcnNlQXJhbmdvSWQoX2lkIHx8IGlkIHx8IGBtZXNzYWdlcy8ke19rZXkgfHwgbWVzc2FnZUlkfWApfSksXG4gICAgLi4uKHNhdmVkICE9PSB1bmRlZmluZWQgJiYge3NhdmVkOiAhIXNhdmVkfSlcbiAgfSk7XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkO1xufTtcblxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUEsT0FBUSxpQkFBQUEsRUFBZSxXQUFBQyxNQUFjLGVBQ3JDLE9BQVEsS0FBQUMsTUFBUSxNQUVoQixPQUFRLGlCQUFBQyxNQUFvQixrQkFDNUIsT0FBUSxhQUFBQyxNQUFnQixnQkFDeEIsT0FBUSxjQUFBQyxNQUFpQixpQkFDekIsT0FBUSxtQkFBQUMsTUFBc0Isd0JBSXZCLE1BQU1DLFVBQStCLEtBQU0sQ0FDaEQsWUFBWUMsRUFBd0JDLEVBQWdCLENBQ2xELE1BQU1ELENBQU8sRUFEcUIsV0FBQUMsRUFFbEMsS0FBSyxLQUFPLHdCQUNkLENBQ0YsQ0FFQSxNQUFNQyxFQUFxQlIsRUFBRSxPQUFPLENBQ2xDLFFBQVNBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDN0IsZUFBZ0JBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDcEMsTUFBT0EsRUFBRSxNQUFNQSxFQUFFLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFDakMsT0FBUUEsRUFBRSxNQUFNQSxFQUFFLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFDbEMsT0FBUUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUM1QixTQUFVQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzlCLFVBQVdBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDL0IsS0FBTUEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUMzQixNQUFPQSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQzVCLE9BQVFBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDNUIsSUFBS0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUN6QixLQUFNQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzFCLEtBQU1BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDMUIsUUFBU0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUM3QixNQUFPQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzNCLElBQUtBLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FDM0IsQ0FBQyxFQUFFLFlBQVksRUFFRlMsRUFBd0JILEdBQWtDLENBQ3JFLEdBQUksQ0FFRixPQURrQkUsRUFBbUIsTUFBTUYsQ0FBTyxDQUVwRCxPQUFRSSxFQUFPLENBQ2IsR0FBR0EsYUFBaUJWLEVBQUUsU0FBVSxDQUM5QixNQUFNVyxFQUFjRCxFQUFNLE9BQU8sSUFBS0UsR0FBTSxHQUFHQSxFQUFFLEtBQUssS0FBSyxHQUFHLENBQUMsS0FBS0EsRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLElBQUksRUFDMUYsTUFBTSxJQUFJUCxFQUF1Qiw4QkFBOEJNLENBQVcsRUFBRSxDQUM5RSxDQUNBLE1BQU1ELENBQ1IsQ0FDRixFQUVhRyxFQUF1QlAsR0FBc0NBLEVBRTdEUSxFQUFnQlIsR0FBc0MsQ0FDakUsR0FBSSxDQUVGLE9BRGVTLEVBQTZCVCxDQUFPLENBRXJELE9BQVFJLEVBQU8sQ0FDYixNQUFHQSxhQUFpQkwsRUFDWkssRUFFRixJQUFJTCxFQUF1QiwyQkFBMkJLLGFBQWlCLE1BQVFBLEVBQU0sUUFBVSxlQUFlLEVBQUUsQ0FDeEgsQ0FDRixFQUVNSyxFQUFnQ1QsR0FBc0MsQ0FDMUUsS0FBTSxDQUNKLElBQUFVLEVBQ0EsS0FBQUMsRUFDQSxRQUFBQyxFQUNBLE1BQUFDLEVBQ0EsR0FBQUMsRUFDQSxPQUFBQyxFQUNBLFVBQUFDLEVBQ0EsTUFBQUMsQ0FDRixFQUFJakIsRUFZSixPQVZvQkYsRUFBZ0IsQ0FDbEMsR0FBR0gsRUFBY0ssQ0FBTyxFQUN4QixHQUFJWSxHQUFXLENBQUMsUUFBQUEsQ0FBTyxFQUN2QixHQUFJLE1BQU0sUUFBUUMsQ0FBSyxHQUFLLENBQUMsTUFBT0EsRUFBTSxJQUFJakIsQ0FBUyxDQUFDLEVBQ3hELEdBQUksTUFBTSxRQUFRbUIsQ0FBTSxHQUFLLENBQUMsT0FBUUEsRUFBTyxJQUFJbEIsQ0FBVSxDQUFDLEVBQzVELEdBQUljLEdBQVEsQ0FBQyxVQUFXbEIsRUFBUWtCLENBQUksQ0FBQyxFQUNyQyxJQUFLRCxHQUFPSSxHQUFNSCxHQUFRSyxJQUFjLENBQUMsVUFBV3hCLEVBQWNrQixHQUFPSSxHQUFNLFlBQVlILEdBQVFLLENBQVMsRUFBRSxDQUFDLEVBQy9HLEdBQUlDLElBQVUsUUFBYSxDQUFDLE1BQU8sQ0FBQyxDQUFDQSxDQUFLLENBQzVDLENBQUMsQ0FHSCIsCiAgIm5hbWVzIjogWyJwYXJzZUFyYW5nb0lkIiwgInBhcnNlSWQiLCAieiIsICJwYXJzZURvY3VtZW50IiwgInBhcnNlRmlsZSIsICJwYXJzZUltYWdlIiwgInJlbW92ZUVtcHR5S2V5cyIsICJNZXNzYWdlVmFsaWRhdGlvbkVycm9yIiwgIm1lc3NhZ2UiLCAiZmllbGQiLCAiTWVzc2FnZUlucHV0U2NoZW1hIiwgInZhbGlkYXRlTWVzc2FnZUlucHV0IiwgImVycm9yIiwgImZpZWxkRXJyb3JzIiwgImUiLCAiZm9ybWF0TWVzc2FnZU91dHB1dCIsICJwYXJzZU1lc3NhZ2UiLCAicGVyZm9ybU1lc3NhZ2VUcmFuc2Zvcm1hdGlvbiIsICJfaWQiLCAiX2tleSIsICJjb250ZW50IiwgImZpbGVzIiwgImlkIiwgImltYWdlcyIsICJtZXNzYWdlSWQiLCAic2F2ZWQiXQp9Cg==