@nlabs/reaktor 0.10.2 → 0.10.5

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 (165) hide show
  1. package/coverage/block-navigation.js +1 -1
  2. package/coverage/index.html +23 -23
  3. package/coverage/sorter.js +21 -7
  4. package/lib/actions/index.d.ts +1 -0
  5. package/lib/actions/notifications.d.ts +2 -2
  6. package/lib/actions/videos.d.ts +25 -0
  7. package/lib/mocks/video.d.ts +3 -0
  8. package/lib/types/arangodb.types.d.ts +1 -1
  9. package/lib/types/index.d.ts +1 -0
  10. package/lib/types/videos.types.d.ts +46 -0
  11. package/lib/utils/stripeUtils.d.ts +1 -1
  12. package/package.json +21 -22
  13. package/lib/actions/apps.js +0 -20
  14. package/lib/actions/connections.js +0 -7
  15. package/lib/actions/content.js +0 -17
  16. package/lib/actions/conversations.js +0 -33
  17. package/lib/actions/dynamodb.js +0 -2
  18. package/lib/actions/email.js +0 -2
  19. package/lib/actions/files.js +0 -5
  20. package/lib/actions/groups.js +0 -52
  21. package/lib/actions/images.js +0 -66
  22. package/lib/actions/index.js +0 -2
  23. package/lib/actions/ios.js +0 -11
  24. package/lib/actions/locations.js +0 -7
  25. package/lib/actions/messages.js +0 -33
  26. package/lib/actions/notifications.js +0 -2
  27. package/lib/actions/payments.js +0 -32
  28. package/lib/actions/posts.js +0 -143
  29. package/lib/actions/profiles.js +0 -8
  30. package/lib/actions/reactions.js +0 -35
  31. package/lib/actions/s3.js +0 -2
  32. package/lib/actions/search.js +0 -5
  33. package/lib/actions/sms.js +0 -2
  34. package/lib/actions/statistics.js +0 -8
  35. package/lib/actions/subscriptions.js +0 -12
  36. package/lib/actions/tags.js +0 -24
  37. package/lib/actions/users.js +0 -87
  38. package/lib/actions/websockets.js +0 -30
  39. package/lib/adapters/arangoAdapter.js +0 -2
  40. package/lib/adapters/contentAdapter.js +0 -2
  41. package/lib/adapters/fileAdapter.js +0 -2
  42. package/lib/adapters/imageAdapter.js +0 -2
  43. package/lib/adapters/index.js +0 -2
  44. package/lib/adapters/messageAdapter.js +0 -2
  45. package/lib/adapters/postAdapter.js +0 -2
  46. package/lib/adapters/reaktorAdapter.js +0 -2
  47. package/lib/adapters/tagAdapter.js +0 -2
  48. package/lib/adapters/userAdapter.js +0 -2
  49. package/lib/config.js +0 -2
  50. package/lib/handlers/graphqlHandler.js +0 -2
  51. package/lib/index.js +0 -2
  52. package/lib/lambdas/actions/websockets.js +0 -30
  53. package/lib/lambdas/authorizer.js +0 -2
  54. package/lib/lambdas/connection.js +0 -2
  55. package/lib/lambdas/utils/message.js +0 -2
  56. package/lib/lambdas/utils/websocket.js +0 -2
  57. package/lib/mocks/conversation.js +0 -2
  58. package/lib/mocks/file.js +0 -2
  59. package/lib/mocks/group.js +0 -2
  60. package/lib/mocks/image.js +0 -2
  61. package/lib/mocks/post.js +0 -2
  62. package/lib/mocks/tag.js +0 -2
  63. package/lib/mocks/user.js +0 -2
  64. package/lib/mutations/content.js +0 -2
  65. package/lib/mutations/index.js +0 -2
  66. package/lib/mutations/locations.js +0 -2
  67. package/lib/mutations/messages.js +0 -2
  68. package/lib/mutations/posts.js +0 -2
  69. package/lib/mutations/profiles.js +0 -2
  70. package/lib/mutations/reactions.js +0 -2
  71. package/lib/mutations/statistics.js +0 -2
  72. package/lib/mutations/subscriptions.js +0 -2
  73. package/lib/mutations/tags.js +0 -2
  74. package/lib/mutations/users.js +0 -2
  75. package/lib/objectTypes/app.js +0 -2
  76. package/lib/objectTypes/bankAccount.js +0 -2
  77. package/lib/objectTypes/connection.js +0 -2
  78. package/lib/objectTypes/content.js +0 -2
  79. package/lib/objectTypes/conversation.js +0 -2
  80. package/lib/objectTypes/creditCard.js +0 -2
  81. package/lib/objectTypes/document.js +0 -2
  82. package/lib/objectTypes/error.js +0 -2
  83. package/lib/objectTypes/external.js +0 -2
  84. package/lib/objectTypes/file.js +0 -2
  85. package/lib/objectTypes/filter.js +0 -2
  86. package/lib/objectTypes/group.js +0 -2
  87. package/lib/objectTypes/iapSubscription.js +0 -2
  88. package/lib/objectTypes/image.js +0 -2
  89. package/lib/objectTypes/index.js +0 -2
  90. package/lib/objectTypes/location.js +0 -2
  91. package/lib/objectTypes/message.js +0 -2
  92. package/lib/objectTypes/passcode.js +0 -2
  93. package/lib/objectTypes/plan.js +0 -2
  94. package/lib/objectTypes/post.js +0 -2
  95. package/lib/objectTypes/profile.js +0 -2
  96. package/lib/objectTypes/reaction.js +0 -2
  97. package/lib/objectTypes/relation.js +0 -2
  98. package/lib/objectTypes/search.js +0 -2
  99. package/lib/objectTypes/statistics.js +0 -2
  100. package/lib/objectTypes/subscription.js +0 -2
  101. package/lib/objectTypes/tag.js +0 -2
  102. package/lib/objectTypes/user.js +0 -2
  103. package/lib/queries/content.js +0 -2
  104. package/lib/queries/index.js +0 -2
  105. package/lib/queries/locations.js +0 -2
  106. package/lib/queries/messages.js +0 -2
  107. package/lib/queries/posts.js +0 -2
  108. package/lib/queries/reactions.js +0 -2
  109. package/lib/queries/statistics.js +0 -2
  110. package/lib/queries/subscriptions.js +0 -2
  111. package/lib/queries/tags.js +0 -2
  112. package/lib/queries/users.js +0 -2
  113. package/lib/templates/email/layout.js +0 -280
  114. package/lib/templates/email/passwordForgot.js +0 -16
  115. package/lib/templates/email/passwordRecovery.js +0 -13
  116. package/lib/templates/email/verifyEmail.js +0 -16
  117. package/lib/templates/email/welcome.js +0 -16
  118. package/lib/templates/sms/passwordForgot.js +0 -2
  119. package/lib/templates/sms/passwordRecovery.js +0 -2
  120. package/lib/templates/sms/verifyEmail.js +0 -2
  121. package/lib/templates/sms/verifyPhone.js +0 -2
  122. package/lib/templates/sms/welcome.js +0 -2
  123. package/lib/types/apps.types.js +0 -2
  124. package/lib/types/arangodb.types.js +0 -1
  125. package/lib/types/auth.types.js +0 -1
  126. package/lib/types/connections.types.js +0 -1
  127. package/lib/types/content.types.js +0 -1
  128. package/lib/types/conversations.types.js +0 -1
  129. package/lib/types/email.types.js +0 -1
  130. package/lib/types/error.types.js +0 -2
  131. package/lib/types/files.types.js +0 -1
  132. package/lib/types/google.types.js +0 -1
  133. package/lib/types/groups.types.js +0 -1
  134. package/lib/types/images.types.js +0 -1
  135. package/lib/types/index.js +0 -2
  136. package/lib/types/locations.types.js +0 -1
  137. package/lib/types/messages.types.js +0 -1
  138. package/lib/types/notifications.types.js +0 -1
  139. package/lib/types/payments.types.js +0 -1
  140. package/lib/types/posts.types.js +0 -1
  141. package/lib/types/profiles.types.js +0 -1
  142. package/lib/types/statistics.types.js +0 -1
  143. package/lib/types/tags.types.js +0 -1
  144. package/lib/types/users.types.js +0 -1
  145. package/lib/types/websockets.types.js +0 -1
  146. package/lib/utils/adapterUtils.js +0 -2
  147. package/lib/utils/analyticsUtils.js +0 -2
  148. package/lib/utils/arangodbUtils.js +0 -7
  149. package/lib/utils/authUtils.js +0 -2
  150. package/lib/utils/contextUtils.js +0 -2
  151. package/lib/utils/dbI18n.example.js +0 -6
  152. package/lib/utils/dbI18n.js +0 -2
  153. package/lib/utils/googleTranslate.js +0 -2
  154. package/lib/utils/graphqlUtils.js +0 -2
  155. package/lib/utils/index.js +0 -2
  156. package/lib/utils/languageDetection.js +0 -2
  157. package/lib/utils/localeUtils.example.js +0 -2
  158. package/lib/utils/localeUtils.js +0 -2
  159. package/lib/utils/middlewareUtils.js +0 -2
  160. package/lib/utils/sessionUtils.js +0 -2
  161. package/lib/utils/stripeUtils.js +0 -2
  162. package/lib/utils/templateUtils.js +0 -2
  163. package/lib/utils/testUtils.js +0 -2
  164. package/lib/utils/translationQueue.example.js +0 -2
  165. package/lib/utils/translationQueue.js +0 -2
@@ -1,87 +0,0 @@
1
- import{parseNum as Y}from"@nlabs/utils/parsers/numbers";import{createHash as L,createPassword as b,parseArangoId as x,parseChar as j,parseEmail as _,parsePassword as M,parsePhone as Q,parseUsername as w}from"@nlabs/utils/parsers/strings";import{aql as U}from"arangojs";import{DateTime as X}from"luxon";import z from"stripe";import{parseUser as D}from"../adapters/userAdapter.js";import{Config as K}from"../config.js";import{ErrorTypes as T}from"../types/error.types.js";import{logError as g,logException as q}from"../utils/analyticsUtils.js";import{getDocId as Z,getLimit as ee,selectReactionCountByType as se,useDb as f}from"../utils/arangodbUtils.js";import{detectLanguage as re}from"../utils/languageDetection.js";import{getSession as B,setSession as te}from"../utils/sessionUtils.js";import{sendEmail as oe}from"./email.js";import{sendSms as ne}from"./sms.js";const E="users",ae="2025-07-30.basil";var ie=(n=>(n[n.DEACTIVATED=0]="DEACTIVATED",n[n.ACTIVE=1]="ACTIVE",n[n.PREMIUM=2]="PREMIUM",n[n.CONTENT_ADMIN=3]="CONTENT_ADMIN",n[n.ADMIN=4]="ADMIN",n))(ie||{});const F=(e,o="",s=0,a=15)=>{const t=X.local(),n=t.plus({minutes:a}),c=Math.floor(t.toSeconds()),r=Math.floor(n.toSeconds()),l=te({exp:r,iat:c,userAccess:s,userId:e,username:o});return{expires:n.toMillis(),issued:t.toMillis(),token:l,userId:e,username:o}},C=(e=[])=>e.reduce((o,s)=>s.includes("Count")?se("users","u",s,o):o,{objects:[],queries:[]}),v=(e={})=>{const{from:o=0,to:s=30}=e,a=ee(o,s);return{...e,limit:a}},Ue=async(e,o)=>{const s="addUser",{databaseName:a,languageContext:t}=e,{confirm:n,...c}=o,{email:r,password:l,phone:u,username:i,userId:p,_key:m,_id:d,...y}=D(c);if(!!!l||!(!!i||!!u||!!r))return q({action:s,category:E,params:{username:i},value:T.INVALID_ARGUMENTS},e),null;const h=L(`${i||u||r}${l}`,""),O=b(l,h),$=[];i&&$.push(`u.username == "${i}"`),r&&$.push(`u.email == "${r}"`),u&&$.push(`u.phone == ${u}`);const P=`FOR u IN users
2
- FILTER ${$.join(" || ")}
3
- LIMIT 1
4
- RETURN u`;try{if((await f(a).query(P).then(J=>J.all())).length)throw q({action:s,category:E,params:{email:r,phone:u,username:i},value:T.EXISTING_ITEM},e)}catch(S){throw g({action:s,category:E,params:{email:r,phone:u,username:i},value:T.DATABASE_ERROR},S,e)}const N=u?.replace(/\D/g,"").substring(0,3),k=re({...t,phoneCountryCode:N||"",userPreference:y.locale||"en"}),G=Math.floor(1e5+Math.random()*9e5),V=Math.floor(1e5+Math.random()*9e5),W={...y,_key:L(i),added:Date.now(),email:r,locale:k,modified:Date.now(),password:O,phone:u,salt:h,userAccess:1,username:i,verifiedEmail:!1,verifiedEmailCode:G,verifiedPhone:!1,verifiedSmsCode:V},H=U`INSERT ${W} IN users RETURN NEW`;return await f(a).query(H).then(S=>S.next()).catch(S=>{throw g({action:s,category:E,params:{username:i},value:T.DATABASE_ERROR},S,e)})},he=async(e,o)=>{const s="updateUser",{databaseName:a}=e,t=D(o),{_key:n,_id:c,tags:r=[],...l}=t,{id:u}=t,i=U`LET u = DOCUMENT(${u})
5
- UPDATE u WITH ${l} IN users
6
- RETURN NEW`;try{const p=f(a),m=await p.query(i).then(y=>y.next()),d=p.collection("isTagged");return await Promise.all(r.map(({id:y,name:I})=>{const R=U`FOR it IN isTagged
7
- FILTER it._from == ${y} && it._to == ${u} && it.name == ${I}
8
- LIMIT 1
9
- RETURN it`;return p.query(R).then(A=>A.next()).then(A=>{if(A)return A;const h={_from:y,_key:L(`isTagged-${y}-${u}`),_to:u,added:Date.now(),name:I};return d.save(h,{returnNew:!0}).then(()=>h)})})),m}catch(p){throw g({action:s,category:E,params:{user:o},value:T.DATABASE_ERROR},p,e)}},Ne=async(e,{email:o,phone:s,username:a})=>{const t="forgotPassword",{databaseName:n}=e,c=U`FOR u IN users
10
- FILTER u.email == ${o} || u.phone == ${s} || u.username == ${a}
11
- LIMIT 1
12
- RETURN u`;try{return await f(n).query(c).then(async r=>{const l=r.next();if(l){const{email:u,phone:i,verifiedEmail:p,verifiedPhone:m}=l,d=1e3*60*15,y=Math.floor(1e5+Math.random()*9e5),I=Z("users",l);let R;if(u&&p&&(oe({context:e,text:`Your code is ${y}`}),R={verifiedEmailCode:y,verifiedEmailExpires:d}),i&&m&&(ne({context:e,text:`Your code is ${y}`}),R={verifiedPhoneExpires:d,verifiedSmsCode:y}),R.verifiedEmailCode||R.verifiedSmsCode){const A=U`UPDATE ${I} WITH ${R} IN users`;return await f(n).query(A),!0}return!1}return!1})}catch(r){return g({action:t,category:E,params:{email:o,phone:s,username:a},value:T.DATABASE_ERROR},r,e),!1}},Oe=async(e,{code:o,password:s,type:a,username:t})=>{const n="resetPassword",{databaseName:c}=e,r=M(s),l=U`FOR u IN users
13
- FILTER u.username == ${t}
14
- LIMIT 1
15
- RETURN u`;try{return await f(c).query(l).then(async u=>{const i=u.next();if(i){const{_id:p,salt:m,verifiedEmailCode:d,verifiedEmailExpires:y=0,verifiedSmsCode:I,verifiedPhoneExpires:R=0}=i,A=Date.now();let h;switch(a){case"email":o===d&&y>A&&(h={password:b(r,m)});break;case"phone":o===I&&R>A&&(h={password:b(r,m)});break;default:return!1}if(h){const O=U`UPDATE ${p} WITH ${h} IN users`;return await f(c).query(O),!0}}return!1})}catch(u){return g({action:n,category:E,params:{username:t},value:T.DATABASE_ERROR},u,e),!1}},$e=async(e,{code:o,type:s,value:a})=>{const t="confirmCode",{databaseName:n}=e,c=s==="sms",r=c?Q(a):_(a),u=`FOR u IN users
16
- ${c?`FILTER u.phone == "${r}" && u.verifiedSmsCode == ${o}`:`FILTER u.email == "${r}" && u.verifiedEmailCode == ${o}`}
17
- LIMIT 1
18
- RETURN u`;try{return await f(n).query(u).then(i=>i.next()).then(i=>{if(i){const p=c?{verifiedPhone:!0,verifiedSmsCode:0}:{verifiedEmail:!0,verifiedEmailCode:0},m=U`UPDATE ${i._key} WITH ${p} IN users`;return f(n).query(m).then(()=>!0).catch(d=>(g({action:t,category:E,params:{code:o,type:s,value:r},value:T.DATABASE_ERROR},d,e),!1))}return!1})}catch(i){return g({action:t,category:E,params:{code:o,type:s,value:r},value:T.DATABASE_ERROR},i,e),!1}},Ce=(e,o)=>{const s="deleteUser",{databaseName:a}=e,{id:t}=D(o),n=U`LET u = DOCUMENT(${t})
19
- REMOVE u IN users
20
- RETURN OLD`,c=new z(K.get("stripe.token"),{apiVersion:ae,typescript:!0});return f(a).query(n).then(r=>r.next()).then(r=>c.customers.del(r?.stripeCustomerId).then(()=>c.accounts.del(r?.stripeAccountId)).then(()=>r)).catch(r=>g({action:s,category:E,params:{id:t},value:T.DATABASE_ERROR},r,e))},Se=(e,o)=>{const s="delete",{databaseName:a}=e,{id:t}=D(o),c=U`UPDATE ${t} WITH ${{userAccess:0}} IN users LIMIT 1 RETURN NEW`;return f(a).query(c).then(r=>r.next()).catch(r=>{throw g({action:s,category:E,params:{id:t},value:T.DATABASE_ERROR},r,e)})},we=e=>{const{first:o,last:s,name:a="",username:t=""}=e,n=[o,s].join(" ").trim();return a||(n!==""?n:t||"Unknown")},qe=e=>{const o="getSessionUser",{databaseName:s,fields:a,session:{userId:t,username:n}={}}=e,{objects:c,queries:r}=C(a),u=`LET u = DOCUMENT("${x(`users/${t}`)}")
21
- ${r.join(`
22
- `)}
23
- RETURN MERGE(u, {${c.join(", ")}})`;return f(s).query(u).then(i=>i.next()).catch(i=>{throw g({action:o,category:E,params:{userId:t,username:n},value:T.DATABASE_ERROR},i,e)})},De=(e,o)=>{const s="getUser",{email:a,id:t,phone:n,userId:c,username:r}=D(o),{databaseName:l,fields:u}=e,{objects:i,queries:p}=C(u);let m="";return t?m=`LET u = DOCUMENT("${t}")
24
- ${p.join(`
25
- `)}
26
- FILTER u.userAccess > 0
27
- RETURN MERGE(u, {${i.join(", ")}})`:r?m=`FOR u IN users
28
- FILTER u.username == "${r}"
29
- ${p.join(`
30
- `)}
31
- RETURN MERGE(u, {${i.join(", ")}})`:a?m=`FOR u IN users
32
- FILTER u.email == "${a}"
33
- ${p.join(`
34
- `)}
35
- RETURN MERGE(u, {${i.join(", ")}})`:n&&(m=`FOR u IN users
36
- FILTER u.phone == "${n}"
37
- ${p.join(`
38
- `)}
39
- RETURN MERGE(u, {${i.join(", ")}})`),f(l).query(m).then(d=>d.next()).then(d=>d).catch(d=>g({action:s,category:E,params:{id:t,userId:c,username:r},value:T.DATABASE_ERROR},d,e))},ve=(e,o)=>{const s="getUserList",{databaseName:a,fields:t}=e,{limit:n,username:c}=v(o),{objects:r,queries:l}=C(t),u=["u.userAccess > 0"];c&&u.push(`CONTAINS(u.username, "${w(c)}")`);const i=`FOR u IN users
40
- FILTER ${u.join(" && ")}
41
- ${l.join(`
42
- `)}
43
- ${n.aql}
44
- SORT u.username
45
- RETURN MERGE(u, {${r.join(", ")}})`;return f(a).query(i).then(p=>p.all()).catch(p=>(g({action:s,category:E,value:T.DATABASE_ERROR},p,e),[]))},be=(e,{reactions:o=[],username:s},a)=>{const t="getUsersByReactions",{databaseName:n,fields:c,session:{userId:r}={}}=e,l=o.map(R=>j(R,32).toLowerCase()),{limit:u}=v(a),{objects:i,queries:p}=C(c),m=`users/${r}`,d=w(s),y=["u.userAccess > 0",`POSITION(${JSON.stringify(l)}, LOWER(r.name))`];s&&y.push(`CONTAINS(u.username, "${d}")`);const I=`FOR u, r IN OUTBOUND "${m}" hasReaction
46
- OPTIONS {vertexCollections: "users"}
47
- ${p.join(`
48
- `)}
49
- FILTER ${y.join(" && ")}
50
- ${u.aql}
51
- RETURN MERGE(u, {${i.join(", ")}})`;return f(n).query(I).then(R=>R.all()).catch(R=>(g({action:t,category:E,value:T.DATABASE_ERROR},R,e),[]))},Pe=(e,{tags:o,username:s},a)=>{const t="getUsersByTags",{databaseName:n,fields:c,session:{userId:r}={}}=e,l=o?.reduce((I,R)=>(R&&I.push(j(R,32).toLowerCase()),I),[]),{limit:u}=v(a),{objects:i,queries:p}=C(c),m=w(s),d=[`u._key != "${r}"`,"u.userAccess > 0"];s&&d.push(`CONTAINS(u.username, "${m}")`);const y=`FOR t IN tags
52
- FILTER POSITION(${JSON.stringify(l)}, LOWER(t.name))
53
- FOR u, it IN OUTBOUND t isTagged
54
- OPTIONS {bfs: true, uniqueVertices: "global", vertexCollections: "users"}
55
- ${p.join(`
56
- `)}
57
- FILTER ${d.join(" && ")}
58
- ${u.aql}
59
- RETURN DISTINCT MERGE(u, {${i.join(", ")}})`;return f(n).query(y).then(I=>I.all()).catch(I=>(g({action:t,category:E,value:T.DATABASE_ERROR},I,e),[]))},Le=(e,{username:o},s)=>{const a="getUsersByLatest",{databaseName:t,fields:n,session:{userId:c}={}}=e,{limit:r}=v(s),l=["u._id != session._id","u.userAccess > 0"],{objects:u,queries:i}=C(n);o&&l.push(`CONTAINS(u.username, "${w(o)}")`);const p=`FOR u IN users
60
- LET session = DOCUMENT("users/${c}")
61
- FILTER ${l.join(" && ")}
62
- ${i.join(`
63
- `)}
64
- LET distance = DISTANCE(u.latitude || 0, u.longitude || 0, session.latitude || 0, session.longitude || 0)
65
- ${r.aql}
66
- SORT distance ASC, u.added DESC
67
- RETURN MERGE(u, {${u.join(", ")}})`;return f(t).query(p).then(m=>m.all()).catch(m=>(g({action:a,category:E,value:T.DATABASE_ERROR},m,e),[]))},xe=(e,{userId:o},s)=>{const a="getUsersByConnection",{databaseName:t,fields:n}=e,{limit:c,username:r}=v(s),{objects:l,queries:u}=C(n),i=x(`users/${o}`),p=["u.userAccess > 0"];r&&p.push(`CONTAINS(u.username, "${w(r)}")`);const m=`FOR cu IN users
68
- LET session = DOCUMENT("${i}")
69
- FOR u, connection IN OUTBOUND cu hasConnection
70
- OPTIONS {bfs: true, uniqueVertices: "global", vertexCollections: "users"}
71
- ${u.join(`
72
- `)}
73
- FILTER ${p.join(" && ")}
74
- ${c.aql}
75
- RETURN DISTINCT MERGE(u, {${l.join(", ")}})`;return f(t).query(m).then(d=>d.all()).catch(d=>(g({action:a,category:E,value:T.DATABASE_ERROR},d,e),[]))},je=({expires:e,token:o})=>{try{const{userId:s,username:a,userAccess:t}=B(o);return F(s,a,t,e)}catch(s){throw s}},_e=async(e,o)=>{const s="signIn",{databaseName:a}=e,{email:t,expires:n,password:c,phone:r,username:l}=o,u=_(t),i=w(l),p=M(c),m=Q(r),d=Y(n)||15;if(!i&&!u&&!m||!p)throw q({action:s,category:E,params:{username:l},value:T.INVALID_ARGUMENTS},e);const y=[];u&&y.push(`u.email == "${u}"`),m&&y.push(`u.phone == ${m}`),i&&y.push(`u.username == "${i}"`);const I=`FOR u IN users
76
- FILTER ${y.join(" || ")}
77
- LIMIT 1
78
- RETURN u`;let R;try{R=await f(a).query(I).then(N=>N.next())}catch(N){throw g({action:s,category:E,params:{username:i},value:T.DATABASE_ERROR},N,e)}if(!R)throw q({action:s,category:E,params:{username:l},value:T.INVALID_AUTHENTICATION},e);const{_key:A,password:h,salt:O,userAccess:$}=R,P=b(p,O);if(h!==P)throw q({action:s,category:E,params:{userAccess:$,userId:A,username:l},value:T.INVALID_AUTHENTICATION},e);try{return F(A||"",l||"",$,d)}catch(N){throw g({action:s,category:E,params:{userId:A,username:l},value:T.DATABASE_ERROR},N,e)}},Me=async e=>{const o="signOut",{databaseName:s,session:{userId:a,username:t}={}}=e,n=`users/${a}`,c={lastOnline:Date.now(),sessionId:null},r=U`LET u = DOCUMENT(${n})
79
- UPDATE u WITH ${c} IN users
80
- LIMIT 1
81
- RETURN NEW`;try{await f(s).query(r).then(l=>l.next())}catch(l){return g({action:o,category:E,params:{userId:a,username:t},value:T.DATABASE_ERROR},l,e),!1}return!0},Qe=e=>{const o="getActiveUserCount",{databaseName:s}=e,a=U`LET docs = (
82
- FOR u IN users
83
- FILTER u.active == true
84
- RETURN u
85
- )
86
- RETURN LENGTH(docs)`;return f(s).query(a).then(t=>t.next()).catch(t=>{throw g({action:o,category:E,value:T.DATABASE_ERROR},t,e)})},Be=(e,o)=>{const s="getUserByToken",{databaseName:a}=e,{userId:t}=B(o),n=x(`users/${t}`),c=U`LET u = DOCUMENT("${n}") RETURN u`;return f(a).query(c).then(r=>r.next()).catch(r=>{throw g({action:s,category:E,params:{userId:t},value:T.DATABASE_ERROR},r,e)})};export{ie as UserAccess,Ue as addUser,$e as confirmCode,F as createToken,Se as deactivateUser,Ce as deleteUser,Ne as forgotPassword,Qe as getActiveUserCount,we as getDisplayName,qe as getSessionUser,De as getUser,Be as getUserByToken,C as getUserOptional,ve as getUsers,xe as getUsersByConnection,Le as getUsersByLatest,be as getUsersByReactions,Pe as getUsersByTags,v as parseUserOptions,je as refreshSession,Oe as resetPassword,_e as signIn,Me as signOut,he as updateUser};
87
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvdXNlcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge3BhcnNlTnVtfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9udW1iZXJzJztcbmltcG9ydCB7XG4gIGNyZWF0ZUhhc2gsXG4gIGNyZWF0ZVBhc3N3b3JkLFxuICBwYXJzZUFyYW5nb0lkLFxuICBwYXJzZUNoYXIsXG4gIHBhcnNlRW1haWwsXG4gIHBhcnNlUGFzc3dvcmQsXG4gIHBhcnNlUGhvbmUsXG4gIHBhcnNlVXNlcm5hbWVcbn0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtEYXRlVGltZX0gZnJvbSAnbHV4b24nO1xuaW1wb3J0IFN0cmlwZSBmcm9tICdzdHJpcGUnO1xuXG5pbXBvcnQge3BhcnNlVXNlcn0gZnJvbSAnLi4vYWRhcHRlcnMvdXNlckFkYXB0ZXIuanMnO1xuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5pbXBvcnQge0Vycm9yVHlwZXMsIHR5cGUgU2Vzc2lvbkVycm9yfSBmcm9tICcuLi90eXBlcy9lcnJvci50eXBlcy5qcyc7XG5pbXBvcnQge2xvZ0Vycm9yLCBsb2dFeGNlcHRpb259IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzLmpzJztcbmltcG9ydCB7Z2V0RG9jSWQsIGdldExpbWl0LCBzZWxlY3RSZWFjdGlvbkNvdW50QnlUeXBlLCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5pbXBvcnQge2RldGVjdExhbmd1YWdlfSBmcm9tICcuLi91dGlscy9sYW5ndWFnZURldGVjdGlvbi5qcyc7XG5pbXBvcnQge2dldFNlc3Npb24sIHNldFNlc3Npb24sIHR5cGUgU2Vzc2lvblRva2VufSBmcm9tICcuLi91dGlscy9zZXNzaW9uVXRpbHMuanMnO1xuaW1wb3J0IHtzZW5kRW1haWx9IGZyb20gJy4vZW1haWwuanMnO1xuaW1wb3J0IHtzZW5kU21zfSBmcm9tICcuL3Ntcy5qcyc7XG5cbmltcG9ydCB0eXBlIHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcbmltcG9ydCB0eXBlIHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1VzZXJJbnB1dCwgVXNlclR5cGV9IGZyb20gJy4uL3R5cGVzL3VzZXJzLnR5cGVzLmpzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeSA9ICd1c2Vycyc7XG5jb25zdCBTVFJJUEVfQVBJX1ZFUlNJT04gPSAnMjAyNS0wNy0zMC5iYXNpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlck9wdGlvbnMge1xuICByZWFkb25seSBmcm9tPzogbnVtYmVyO1xuICByZWFkb25seSB0bz86IG51bWJlcjtcbiAgcmVhZG9ubHkgdXNlcm5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFVzZXJBY2Nlc3Mge1xuICBERUFDVElWQVRFRCA9IDAsXG4gIEFDVElWRSA9IDEsXG4gIFBSRU1JVU0gPSAyLFxuICBDT05URU5UX0FETUlOID0gMyxcbiAgQURNSU4gPSA0XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVUb2tlbiA9IChcbiAgdXNlcklkOiBzdHJpbmcsXG4gIHVzZXJuYW1lOiBzdHJpbmcgPSAnJyxcbiAgdXNlckFjY2VzczogbnVtYmVyID0gMCxcbiAgZXhwaXJlc0luTWludXRlczogbnVtYmVyID0gMTVcbik6IFNlc3Npb25Ub2tlbiA9PiB7XG4gIGNvbnN0IG5vdzogRGF0ZVRpbWUgPSBEYXRlVGltZS5sb2NhbCgpO1xuICBjb25zdCBzZXNzaW9uRXhwaXJlczogRGF0ZVRpbWUgPSBub3cucGx1cyh7bWludXRlczogZXhwaXJlc0luTWludXRlc30pO1xuICBjb25zdCBpYXQ6IG51bWJlciA9IE1hdGguZmxvb3Iobm93LnRvU2Vjb25kcygpKTtcbiAgY29uc3QgZXhwOiBudW1iZXIgPSBNYXRoLmZsb29yKHNlc3Npb25FeHBpcmVzLnRvU2Vjb25kcygpKTtcbiAgY29uc3QgdG9rZW4gPSBzZXRTZXNzaW9uKHtcbiAgICBleHAsXG4gICAgaWF0LFxuICAgIHVzZXJBY2Nlc3MsXG4gICAgdXNlcklkLFxuICAgIHVzZXJuYW1lXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgZXhwaXJlczogc2Vzc2lvbkV4cGlyZXMudG9NaWxsaXMoKSxcbiAgICBpc3N1ZWQ6IG5vdy50b01pbGxpcygpLFxuICAgIHRva2VuLFxuICAgIHVzZXJJZCxcbiAgICB1c2VybmFtZVxuICB9O1xufTtcblxuaW50ZXJmYWNlIFNlbGVjdEFjY3VtdWxhdG9yIHtcbiAgb2JqZWN0czogc3RyaW5nW107XG4gIHF1ZXJpZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0VXNlck9wdGlvbmFsID0gKGZpZWxkczogc3RyaW5nW10gPSBbXSk6IFNlbGVjdEFjY3VtdWxhdG9yID0+XG4gIGZpZWxkcy5yZWR1Y2UoKHNlbGVjdHM6IFNlbGVjdEFjY3VtdWxhdG9yLCBmaWVsZDogc3RyaW5nKSA9PiB7XG4gICAgaWYoZmllbGQuaW5jbHVkZXMoJ0NvdW50JykpIHtcbiAgICAgIHJldHVybiBzZWxlY3RSZWFjdGlvbkNvdW50QnlUeXBlKCd1c2VycycsICd1JywgZmllbGQsIHNlbGVjdHMpO1xuICAgIH1cblxuICAgIHJldHVybiBzZWxlY3RzO1xuICB9LCB7b2JqZWN0czogW10sIHF1ZXJpZXM6IFtdfSk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZVVzZXJPcHRpb25zID0gKG9wdGlvbnM6IFVzZXJPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGZyb20gPSAwLFxuICAgIHRvID0gMzBcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuXG4gIHJldHVybiB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBsaW1pdFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFVzZXIgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcjogVXNlcklucHV0KTogUHJvbWlzZTxVc2VyVHlwZSB8IG51bGw+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2FkZFVzZXInO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBsYW5ndWFnZUNvbnRleHR9ID0gY29udGV4dDtcbiAgY29uc3Qge2NvbmZpcm06IF9jb25maXJtLCAuLi5uZXdVc2VyfSA9IHVzZXI7XG4gIGNvbnN0IHtlbWFpbCwgcGFzc3dvcmQsIHBob25lLCB1c2VybmFtZSwgdXNlcklkLCBfa2V5LCBfaWQsIC4uLmluc2VydFVzZXJ9ID0gcGFyc2VVc2VyKG5ld1VzZXIpO1xuICBjb25zdCBoYXNQYXNzd29yZCA9ICEhcGFzc3dvcmQ7XG4gIGNvbnN0IGhhc1VzZXJuYW1lID0gISF1c2VybmFtZSB8fCAhIXBob25lIHx8ICEhZW1haWw7XG5cbiAgaWYoIWhhc1Bhc3N3b3JkIHx8ICFoYXNVc2VybmFtZSkge1xuICAgIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHBhcmFtczoge3VzZXJuYW1lfSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLklOVkFMSURfQVJHVU1FTlRTXG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGhhc2hJZCA9IHVzZXJuYW1lIHx8IHBob25lIHx8IGVtYWlsO1xuICBjb25zdCBzYWx0OiBzdHJpbmcgPSBjcmVhdGVIYXNoKGAke2hhc2hJZH0ke3Bhc3N3b3JkfWAsICcnKTtcbiAgY29uc3QgZW5jcnlwdGVkUGFzc3dvcmQgPSBjcmVhdGVQYXNzd29yZChwYXNzd29yZCwgc2FsdCk7XG4gIGNvbnN0IGZpbHRlcnM6IHN0cmluZ1tdID0gW107XG5cbiAgaWYodXNlcm5hbWUpIHtcbiAgICBmaWx0ZXJzLnB1c2goYHUudXNlcm5hbWUgPT0gXCIke3VzZXJuYW1lfVwiYCk7XG4gIH1cblxuICBpZihlbWFpbCkge1xuICAgIGZpbHRlcnMucHVzaChgdS5lbWFpbCA9PSBcIiR7ZW1haWx9XCJgKTtcbiAgfVxuXG4gIGlmKHBob25lKSB7XG4gICAgZmlsdGVycy5wdXNoKGB1LnBob25lID09ICR7cGhvbmV9YCk7XG4gIH1cblxuICBjb25zdCBjaGVja1F1ZXJ5OiBzdHJpbmcgPSBgRk9SIHUgSU4gdXNlcnNcbiAgICBGSUxURVIgJHtmaWx0ZXJzLmpvaW4oJyB8fCAnKX1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIHVgO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgZXhpc3RpbmdVc2VycyA9IGF3YWl0IHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoY2hlY2tRdWVyeSkudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpO1xuXG4gICAgaWYoZXhpc3RpbmdVc2Vycy5sZW5ndGgpIHtcbiAgICAgIHRocm93IGxvZ0V4Y2VwdGlvbih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIGVtYWlsLFxuICAgICAgICAgIHBob25lLFxuICAgICAgICAgIHVzZXJuYW1lXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkVYSVNUSU5HX0lURU1cbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH1cbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHRocm93IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgcGFyYW1zOiB7ZW1haWwsIHBob25lLCB1c2VybmFtZX0sXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IHBob25lQ291bnRyeUNvZGUgPSBwaG9uZT8ucmVwbGFjZSgvXFxEL2csICcnKS5zdWJzdHJpbmcoMCwgMyk7XG4gIGNvbnN0IGxvY2FsZSA9IGRldGVjdExhbmd1YWdlKHtcbiAgICAuLi5sYW5ndWFnZUNvbnRleHQsXG4gICAgcGhvbmVDb3VudHJ5Q29kZTogcGhvbmVDb3VudHJ5Q29kZSB8fCAnJyxcbiAgICB1c2VyUHJlZmVyZW5jZTogaW5zZXJ0VXNlci5sb2NhbGUgfHwgJ2VuJ1xuICB9KTtcbiAgY29uc3QgdmVyaWZpZWRFbWFpbENvZGU6IG51bWJlciA9IE1hdGguZmxvb3IoMTAwMDAwICsgKE1hdGgucmFuZG9tKCkgKiA5MDAwMDApKTtcbiAgY29uc3QgdmVyaWZpZWRTbXNDb2RlOiBudW1iZXIgPSBNYXRoLmZsb29yKDEwMDAwMCArIChNYXRoLnJhbmRvbSgpICogOTAwMDAwKSk7XG5cbiAgY29uc3QgaW5zZXJ0OiBVc2VyVHlwZSA9IHtcbiAgICAuLi5pbnNlcnRVc2VyLFxuICAgIF9rZXk6IGNyZWF0ZUhhc2godXNlcm5hbWUpLFxuICAgIGFkZGVkOiBEYXRlLm5vdygpLFxuICAgIGVtYWlsLFxuICAgIGxvY2FsZSxcbiAgICBtb2RpZmllZDogRGF0ZS5ub3coKSxcbiAgICBwYXNzd29yZDogZW5jcnlwdGVkUGFzc3dvcmQsXG4gICAgcGhvbmUsXG4gICAgc2FsdCxcbiAgICB1c2VyQWNjZXNzOiAxLFxuICAgIHVzZXJuYW1lLFxuICAgIHZlcmlmaWVkRW1haWw6IGZhbHNlLFxuICAgIHZlcmlmaWVkRW1haWxDb2RlLFxuICAgIHZlcmlmaWVkUGhvbmU6IGZhbHNlLFxuICAgIHZlcmlmaWVkU21zQ29kZVxuICB9O1xuXG4gIGNvbnN0IGluc2VydFF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHVzZXJzIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBhd2FpdCB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGluc2VydFF1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBwYXJhbXM6IHt1c2VybmFtZX0sXG4gICAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwgY29udGV4dCk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlVXNlciA9IGFzeW5jIChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VyOiBVc2VyVHlwZSk6IFByb21pc2U8VXNlclR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ3VwZGF0ZVVzZXInO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHVwZGF0ZWRVc2VyID0gcGFyc2VVc2VyKHVzZXIpO1xuICBjb25zdCB7X2tleSwgX2lkLCB0YWdzID0gW10sIC4uLnVwZGF0ZX0gPSB1cGRhdGVkVXNlcjtcbiAgY29uc3Qge2lkfSA9IHVwZGF0ZWRVc2VyO1xuXG4gIGNvbnN0IHVzZXJRdWVyeTogQXFsUXVlcnkgPSBhcWxgTEVUIHUgPSBET0NVTUVOVCgke2lkfSlcbiAgICBVUERBVEUgdSBXSVRIICR7dXBkYXRlfSBJTiB1c2Vyc1xuICAgIFJFVFVSTiBORVdgO1xuICB0cnkge1xuICAgIGNvbnN0IGRhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KHVzZXJRdWVyeSkudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKTtcbiAgICBjb25zdCB0YWdDb2xsZWN0aW9uOiBFZGdlQ29sbGVjdGlvbiA9IGRhdGFiYXNlLmNvbGxlY3Rpb24oJ2lzVGFnZ2VkJyk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0YWdzLm1hcCgoe2lkOiB0YWdEb2NJZCwgbmFtZX0pID0+IHtcbiAgICAgIGNvbnN0IHRhZ1F1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgaXQgSU4gaXNUYWdnZWRcbiAgICAgICAgRklMVEVSIGl0Ll9mcm9tID09ICR7dGFnRG9jSWR9ICYmIGl0Ll90byA9PSAke2lkfSAmJiBpdC5uYW1lID09ICR7bmFtZX1cbiAgICAgICAgTElNSVQgMVxuICAgICAgICBSRVRVUk4gaXRgO1xuXG4gICAgICByZXR1cm4gZGF0YWJhc2UucXVlcnkodGFnUXVlcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKCh0YWdFZGdlKSA9PiB7XG4gICAgICAgICAgaWYoISF0YWdFZGdlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFnRWRnZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBlZGdlID0ge1xuICAgICAgICAgICAgX2Zyb206IHRhZ0RvY0lkLFxuICAgICAgICAgICAgX2tleTogY3JlYXRlSGFzaChgaXNUYWdnZWQtJHt0YWdEb2NJZH0tJHtpZH1gKSxcbiAgICAgICAgICAgIF90bzogaWQsXG4gICAgICAgICAgICBhZGRlZDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmV0dXJuIHRhZ0NvbGxlY3Rpb24uc2F2ZShlZGdlLCB7cmV0dXJuTmV3OiB0cnVlfSkudGhlbigoKSA9PiBlZGdlKTtcbiAgICAgICAgfSk7XG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRVc2VyO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHt1c2VyfSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZm9yZ290UGFzc3dvcmQgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwge2VtYWlsLCBwaG9uZSwgdXNlcm5hbWV9KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdmb3Jnb3RQYXNzd29yZCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgYXFsUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiB1IElOIHVzZXJzXG4gICAgRklMVEVSIHUuZW1haWwgPT0gJHtlbWFpbH0gfHwgdS5waG9uZSA9PSAke3Bob25lfSB8fCB1LnVzZXJuYW1lID09ICR7dXNlcm5hbWV9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiB1YDtcblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgICAgLnRoZW4oYXN5bmMgKGN1cnNvcikgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gY3Vyc29yLm5leHQoKTtcblxuICAgICAgICBpZih1c2VyKSB7XG4gICAgICAgICAgY29uc3Qge2VtYWlsLCBwaG9uZSwgdmVyaWZpZWRFbWFpbCwgdmVyaWZpZWRQaG9uZX0gPSB1c2VyIGFzIFVzZXJUeXBlO1xuICAgICAgICAgIGNvbnN0IGNvZGVFeHBpcmVzID0gMTAwMCAqIDYwICogMTU7IC8vIDE1IG1pbnV0ZXNcbiAgICAgICAgICBjb25zdCBjb2RlID0gTWF0aC5mbG9vcigxMDAwMDAgKyAoTWF0aC5yYW5kb20oKSAqIDkwMDAwMCkpO1xuICAgICAgICAgIGNvbnN0IHVzZXJEb2NJZCA9IGdldERvY0lkKCd1c2VycycsIHVzZXIpO1xuICAgICAgICAgIGxldCB1cGRhdGU7XG5cbiAgICAgICAgICBpZihlbWFpbCAmJiB2ZXJpZmllZEVtYWlsKSB7XG4gICAgICAgICAgICBzZW5kRW1haWwoe1xuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICB0ZXh0OiBgWW91ciBjb2RlIGlzICR7Y29kZX1gXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHVwZGF0ZSA9IHt2ZXJpZmllZEVtYWlsQ29kZTogY29kZSwgdmVyaWZpZWRFbWFpbEV4cGlyZXM6IGNvZGVFeHBpcmVzfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZihwaG9uZSAmJiB2ZXJpZmllZFBob25lKSB7XG4gICAgICAgICAgICBzZW5kU21zKHtcbiAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgdGV4dDogYFlvdXIgY29kZSBpcyAke2NvZGV9YFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB1cGRhdGUgPSB7dmVyaWZpZWRQaG9uZUV4cGlyZXM6IGNvZGVFeHBpcmVzLCB2ZXJpZmllZFNtc0NvZGU6IGNvZGV9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmKHVwZGF0ZS52ZXJpZmllZEVtYWlsQ29kZSB8fCB1cGRhdGUudmVyaWZpZWRTbXNDb2RlKSB7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVRdWVyeTogQXFsUXVlcnkgPSBhcWxgVVBEQVRFICR7dXNlckRvY0lkfSBXSVRIICR7dXBkYXRlfSBJTiB1c2Vyc2A7XG5cbiAgICAgICAgICAgIGF3YWl0IHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkodXBkYXRlUXVlcnkpO1xuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgcGFyYW1zOiB7ZW1haWwsIHBob25lLCB1c2VybmFtZX0sXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHJlc2V0UGFzc3dvcmQgPSBhc3luYyAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIHtcbiAgICBjb2RlLFxuICAgIHBhc3N3b3JkLFxuICAgIHR5cGUsXG4gICAgdXNlcm5hbWVcbiAgfToge1xuICAgIGNvZGU6IG51bWJlcjtcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgIHR5cGU6ICdwaG9uZScgfCAnZW1haWwnO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gIH1cbik6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAncmVzZXRQYXNzd29yZCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0UGFzc3dvcmQ6IHN0cmluZyA9IHBhcnNlUGFzc3dvcmQocGFzc3dvcmQpO1xuICBjb25zdCBhcWxRdWVyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUgSU4gdXNlcnNcbiAgICBGSUxURVIgdS51c2VybmFtZSA9PSAke3VzZXJuYW1lfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gdWA7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRdWVyeSlcbiAgICAgIC50aGVuKGFzeW5jIChjdXJzb3IpID0+IHtcbiAgICAgICAgY29uc3QgdXNlciA9IGN1cnNvci5uZXh0KCk7XG5cbiAgICAgICAgaWYodXNlcikge1xuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIF9pZDogdXNlckRvY0lkLFxuICAgICAgICAgICAgc2FsdCxcbiAgICAgICAgICAgIHZlcmlmaWVkRW1haWxDb2RlLFxuICAgICAgICAgICAgdmVyaWZpZWRFbWFpbEV4cGlyZXMgPSAwLFxuICAgICAgICAgICAgdmVyaWZpZWRTbXNDb2RlLFxuICAgICAgICAgICAgdmVyaWZpZWRQaG9uZUV4cGlyZXMgPSAwXG4gICAgICAgICAgfSA9IHVzZXIgYXMgVXNlclR5cGU7XG4gICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICBsZXQgdXBkYXRlO1xuXG4gICAgICAgICAgc3dpdGNoKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2VtYWlsJzpcbiAgICAgICAgICAgICAgaWYoY29kZSA9PT0gdmVyaWZpZWRFbWFpbENvZGUgJiYgdmVyaWZpZWRFbWFpbEV4cGlyZXMgPiBub3cpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXNzd29yZDogc3RyaW5nID0gY3JlYXRlUGFzc3dvcmQoZm9ybWF0UGFzc3dvcmQsIHNhbHQpO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSA9IHtwYXNzd29yZH07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwaG9uZSc6XG4gICAgICAgICAgICAgIGlmKGNvZGUgPT09IHZlcmlmaWVkU21zQ29kZSAmJiB2ZXJpZmllZFBob25lRXhwaXJlcyA+IG5vdykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhc3N3b3JkOiBzdHJpbmcgPSBjcmVhdGVQYXNzd29yZChmb3JtYXRQYXNzd29yZCwgc2FsdCk7XG4gICAgICAgICAgICAgICAgdXBkYXRlID0ge3Bhc3N3b3JkfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZih1cGRhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBVUERBVEUgJHt1c2VyRG9jSWR9IFdJVEggJHt1cGRhdGV9IElOIHVzZXJzYDtcblxuICAgICAgICAgICAgYXdhaXQgdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeSh1cGRhdGVRdWVyeSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHt1c2VybmFtZX0sXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNvbmZpcm1Db2RlID0gYXN5bmMgKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICB7XG4gICAgY29kZSxcbiAgICB0eXBlLFxuICAgIHZhbHVlXG4gIH06IHtcbiAgICBjb2RlOiBudW1iZXI7XG4gICAgdHlwZTogJ3NtcycgfCAnZW1haWwnO1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gIH1cbik6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnY29uZmlybUNvZGUnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlzU21zID0gdHlwZSA9PT0gJ3Ntcyc7XG4gIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gaXNTbXMgPyBwYXJzZVBob25lKHZhbHVlKSA6IHBhcnNlRW1haWwodmFsdWUpO1xuICBjb25zdCBmaWx0ZXJCeVR5cGUgPSBpc1Ntc1xuICAgID8gYEZJTFRFUiB1LnBob25lID09IFwiJHtmb3JtYXR0ZWRWYWx1ZX1cIiAmJiB1LnZlcmlmaWVkU21zQ29kZSA9PSAke2NvZGV9YFxuICAgIDogYEZJTFRFUiB1LmVtYWlsID09IFwiJHtmb3JtYXR0ZWRWYWx1ZX1cIiAmJiB1LnZlcmlmaWVkRW1haWxDb2RlID09ICR7Y29kZX1gO1xuICBjb25zdCBhcWxRdWVyeTogc3RyaW5nID0gYEZPUiB1IElOIHVzZXJzXG4gICAgJHtmaWx0ZXJCeVR5cGV9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiB1YDtcblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC50aGVuKCh1c2VyKSA9PiB7XG4gICAgICAgIGlmKHVzZXIpIHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkVXNlciA9IGlzU21zXG4gICAgICAgICAgICA/IHt2ZXJpZmllZFBob25lOiB0cnVlLCB2ZXJpZmllZFNtc0NvZGU6IDB9XG4gICAgICAgICAgICA6IHt2ZXJpZmllZEVtYWlsOiB0cnVlLCB2ZXJpZmllZEVtYWlsQ29kZTogMH07XG4gICAgICAgICAgY29uc3QgYXFsUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQREFURSAke3VzZXIuX2tleX0gV0lUSCAke3VwZGF0ZWRVc2VyfSBJTiB1c2Vyc2A7XG5cbiAgICAgICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRdWVyeSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHRydWUpXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgICAgICBsb2dFcnJvcih7XG4gICAgICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICAgICAgICAgIHBhcmFtczoge2NvZGUsIHR5cGUsIHZhbHVlOiBmb3JtYXR0ZWRWYWx1ZX0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgICAgICAgICAgfSwgZXJyb3IsIGNvbnRleHQpO1xuXG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHBhcmFtczoge2NvZGUsIHR5cGUsIHZhbHVlOiBmb3JtYXR0ZWRWYWx1ZX0sXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVVzZXIgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcjogVXNlclR5cGUpOiBQcm9taXNlPFVzZXJUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdkZWxldGVVc2VyJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCB7aWR9ID0gcGFyc2VVc2VyKHVzZXIpO1xuXG4gIGNvbnN0IGFxbFF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBMRVQgdSA9IERPQ1VNRU5UKCR7aWR9KVxuICAgIFJFTU9WRSB1IElOIHVzZXJzXG4gICAgUkVUVVJOIE9MRGA7XG5cbiAgY29uc3Qgc3RyaXBlQ2xpZW50ID0gbmV3IFN0cmlwZShDb25maWcuZ2V0KCdzdHJpcGUudG9rZW4nKSwge2FwaVZlcnNpb246IFNUUklQRV9BUElfVkVSU0lPTiwgdHlwZXNjcmlwdDogdHJ1ZX0pO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKGRlbGV0ZWRVc2VyKSA9PiBzdHJpcGVDbGllbnQuY3VzdG9tZXJzLmRlbChkZWxldGVkVXNlcj8uc3RyaXBlQ3VzdG9tZXJJZClcbiAgICAgIC50aGVuKCgpID0+IHN0cmlwZUNsaWVudC5hY2NvdW50cy5kZWwoZGVsZXRlZFVzZXI/LnN0cmlwZUFjY291bnRJZCkpXG4gICAgICAudGhlbigoKSA9PiBkZWxldGVkVXNlcikpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgcGFyYW1zOiB7aWR9LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlYWN0aXZhdGVVc2VyID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXI6IFVzZXJUeXBlKTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnZGVsZXRlJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCB7aWR9ID0gcGFyc2VVc2VyKHVzZXIpO1xuICBjb25zdCB1cGRhdGVkOiBVc2VyVHlwZSA9IHtcbiAgICB1c2VyQWNjZXNzOiAwXG4gIH07XG4gIGNvbnN0IGFxbFF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBVUERBVEUgJHtpZH0gV0lUSCAke3VwZGF0ZWR9IElOIHVzZXJzIExJTUlUIDEgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHtpZH0sXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGlzcGxheU5hbWUgPSAodXNlcjogVXNlclR5cGUpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7Zmlyc3QsIGxhc3QsIG5hbWUgPSAnJywgdXNlcm5hbWUgPSAnJ30gPSB1c2VyO1xuICBjb25zdCBmdWxsbmFtZSA9IChbZmlyc3QsIGxhc3RdKS5qb2luKCcgJykudHJpbSgpO1xuXG4gIGlmKG5hbWUpIHtcbiAgICByZXR1cm4gbmFtZTtcbiAgfSBlbHNlIGlmKGZ1bGxuYW1lICE9PSAnJykge1xuICAgIHJldHVybiBmdWxsbmFtZTtcbiAgfSBlbHNlIGlmKHVzZXJuYW1lKSB7XG4gICAgcmV0dXJuIHVzZXJuYW1lO1xuICB9XG5cbiAgcmV0dXJuICdVbmtub3duJztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTZXNzaW9uVXNlciA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnZ2V0U2Vzc2lvblVzZXInO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBmaWVsZHMsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZCwgdXNlcm5hbWV9ID0ge319ID0gY29udGV4dDtcbiAgY29uc3Qge29iamVjdHM6IHNlbGVjdE9iamVjdHMsIHF1ZXJpZXM6IHNlbGVjdFF1ZXJpZXN9ID0gZ2V0VXNlck9wdGlvbmFsKGZpZWxkcyk7XG4gIGNvbnN0IGZvcm1hdFNlc3Npb25JZCA9IHBhcnNlQXJhbmdvSWQoYHVzZXJzLyR7c2Vzc2lvbklkfWApO1xuXG4gIGNvbnN0IGFxbFF1ZXJ5OiBzdHJpbmcgPSBgTEVUIHUgPSBET0NVTUVOVChcIiR7Zm9ybWF0U2Vzc2lvbklkfVwiKVxuICAke3NlbGVjdFF1ZXJpZXMuam9pbignXFxuJyl9XG4gIFJFVFVSTiBNRVJHRSh1LCB7JHtzZWxlY3RPYmplY3RzLmpvaW4oJywgJyl9fSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkgYXMgdW5rbm93biBhcyBVc2VyVHlwZSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBwYXJhbXM6IHt1c2VySWQ6IHNlc3Npb25JZCwgdXNlcm5hbWV9LFxuICAgICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgfSwgZXJyb3IsIGNvbnRleHQpO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFVzZXIgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcjogVXNlclR5cGUpOiBQcm9taXNlPFVzZXJUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdnZXRVc2VyJztcbiAgY29uc3Qge2VtYWlsLCBpZCwgcGhvbmUsIHVzZXJJZCwgdXNlcm5hbWV9ID0gcGFyc2VVc2VyKHVzZXIpO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBmaWVsZHN9ID0gY29udGV4dDtcbiAgY29uc3Qge29iamVjdHM6IHNlbGVjdE9iamVjdHMsIHF1ZXJpZXM6IHNlbGVjdFF1ZXJpZXN9ID0gZ2V0VXNlck9wdGlvbmFsKGZpZWxkcyk7XG4gIGxldCBhcWxRdWVyeTogc3RyaW5nID0gJyc7XG5cbiAgaWYoaWQpIHtcbiAgICBhcWxRdWVyeSA9IGBMRVQgdSA9IERPQ1VNRU5UKFwiJHtpZH1cIilcbiAgICAke3NlbGVjdFF1ZXJpZXMuam9pbignXFxuJyl9XG4gICAgRklMVEVSIHUudXNlckFjY2VzcyA+IDBcbiAgICBSRVRVUk4gTUVSR0UodSwgeyR7c2VsZWN0T2JqZWN0cy5qb2luKCcsICcpfX0pYDtcbiAgfSBlbHNlIGlmKHVzZXJuYW1lKSB7XG4gICAgYXFsUXVlcnkgPSBgRk9SIHUgSU4gdXNlcnNcbiAgICBGSUxURVIgdS51c2VybmFtZSA9PSBcIiR7dXNlcm5hbWV9XCJcbiAgICAke3NlbGVjdFF1ZXJpZXMuam9pbignXFxuJyl9XG4gICAgUkVUVVJOIE1FUkdFKHUsIHske3NlbGVjdE9iamVjdHMuam9pbignLCAnKX19KWA7XG4gIH0gZWxzZSBpZihlbWFpbCkge1xuICAgIGFxbFF1ZXJ5ID0gYEZPUiB1IElOIHVzZXJzXG4gICAgRklMVEVSIHUuZW1haWwgPT0gXCIke2VtYWlsfVwiXG4gICAgJHtzZWxlY3RRdWVyaWVzLmpvaW4oJ1xcbicpfVxuICAgIFJFVFVSTiBNRVJHRSh1LCB7JHtzZWxlY3RPYmplY3RzLmpvaW4oJywgJyl9fSlgO1xuICB9IGVsc2UgaWYocGhvbmUpIHtcbiAgICBhcWxRdWVyeSA9IGBGT1IgdSBJTiB1c2Vyc1xuICAgIEZJTFRFUiB1LnBob25lID09IFwiJHtwaG9uZX1cIlxuICAgICR7c2VsZWN0UXVlcmllcy5qb2luKCdcXG4nKX1cbiAgICBSRVRVUk4gTUVSR0UodSwgeyR7c2VsZWN0T2JqZWN0cy5qb2luKCcsICcpfX0pYDtcbiAgfVxuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpXG4gICAgLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVzZXIpID0+IHVzZXIpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgcGFyYW1zOiB7aWQsIHVzZXJJZCwgdXNlcm5hbWV9LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFVzZXJzID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIG9wdGlvbnM/OiBVc2VyT3B0aW9ucyk6IFByb21pc2U8VXNlclR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnZ2V0VXNlckxpc3QnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBmaWVsZHN9ID0gY29udGV4dDtcbiAgY29uc3Qge2xpbWl0LCB1c2VybmFtZX0gPSBwYXJzZVVzZXJPcHRpb25zKG9wdGlvbnMpO1xuICBjb25zdCB7b2JqZWN0czogc2VsZWN0T2JqZWN0cywgcXVlcmllczogc2VsZWN0UXVlcmllc30gPSBnZXRVc2VyT3B0aW9uYWwoZmllbGRzKTtcbiAgY29uc3QgZmlsdGVyQnk6IHN0cmluZ1tdID0gWyd1LnVzZXJBY2Nlc3MgPiAwJ107XG5cbiAgaWYodXNlcm5hbWUpIHtcbiAgICBmaWx0ZXJCeS5wdXNoKGBDT05UQUlOUyh1LnVzZXJuYW1lLCBcIiR7cGFyc2VVc2VybmFtZSh1c2VybmFtZSl9XCIpYCk7XG4gIH1cblxuICBjb25zdCBhcWxRdWVyeTogc3RyaW5nID0gYEZPUiB1IElOIHVzZXJzXG4gICAgRklMVEVSICR7ZmlsdGVyQnkuam9pbignICYmICcpfVxuICAgICR7c2VsZWN0UXVlcmllcy5qb2luKCdcXG4nKX1cbiAgICAke2xpbWl0LmFxbH1cbiAgICBTT1JUIHUudXNlcm5hbWVcbiAgICBSRVRVUk4gTUVSR0UodSwgeyR7c2VsZWN0T2JqZWN0cy5qb2luKCcsICcpfX0pYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkgYXMgdW5rbm93biBhcyBVc2VyVHlwZVtdKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiBbXSBhcyBVc2VyVHlwZVtdO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFVzZXJzQnlSZWFjdGlvbnMgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIHtyZWFjdGlvbnMgPSBbXSwgdXNlcm5hbWV9OiB7cmVhY3Rpb25zPzogc3RyaW5nW107IHVzZXJuYW1lPzogc3RyaW5nfSxcbiAgb3B0aW9ucz86IFVzZXJPcHRpb25zXG4pOiBQcm9taXNlPFVzZXJUeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2dldFVzZXJzQnlSZWFjdGlvbnMnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBmaWVsZHMsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH0gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbnM6IHN0cmluZ1tdID0gcmVhY3Rpb25zLm1hcCgocmVhY3Rpb25OYW1lOiBzdHJpbmcpID0+IHBhcnNlQ2hhcihyZWFjdGlvbk5hbWUsIDMyKS50b0xvd2VyQ2FzZSgpKTtcbiAgY29uc3Qge2xpbWl0fSA9IHBhcnNlVXNlck9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IHtvYmplY3RzOiBzZWxlY3RPYmplY3RzLCBxdWVyaWVzOiBzZWxlY3RRdWVyaWVzfSA9IGdldFVzZXJPcHRpb25hbChmaWVsZHMpO1xuICBjb25zdCBmb3JtYXRTZXNzaW9uSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBmb3JtYXRVc2VybmFtZTogc3RyaW5nID0gcGFyc2VVc2VybmFtZSh1c2VybmFtZSk7XG4gIGNvbnN0IGZpbHRlckJ5OiBzdHJpbmdbXSA9IFtcbiAgICAndS51c2VyQWNjZXNzID4gMCcsXG4gICAgYFBPU0lUSU9OKCR7SlNPTi5zdHJpbmdpZnkoZm9ybWF0UmVhY3Rpb25zKX0sIExPV0VSKHIubmFtZSkpYFxuICBdO1xuXG4gIGlmKHVzZXJuYW1lKSB7XG4gICAgZmlsdGVyQnkucHVzaChgQ09OVEFJTlModS51c2VybmFtZSwgXCIke2Zvcm1hdFVzZXJuYW1lfVwiKWApO1xuICB9XG5cbiAgY29uc3QgYXFsUXVlcnk6IHN0cmluZyA9IGBGT1IgdSwgciBJTiBPVVRCT1VORCBcIiR7Zm9ybWF0U2Vzc2lvbklkfVwiIGhhc1JlYWN0aW9uXG4gICAgT1BUSU9OUyB7dmVydGV4Q29sbGVjdGlvbnM6IFwidXNlcnNcIn1cbiAgICAke3NlbGVjdFF1ZXJpZXMuam9pbignXFxuJyl9XG4gICAgRklMVEVSICR7ZmlsdGVyQnkuam9pbignICYmICcpfVxuICAgICR7bGltaXQuYXFsfVxuICAgIFJFVFVSTiBNRVJHRSh1LCB7JHtzZWxlY3RPYmplY3RzLmpvaW4oJywgJyl9fSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSBhcyB1bmtub3duIGFzIFVzZXJUeXBlW10pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgIH0sIGVycm9yLCBjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIFtdIGFzIFVzZXJUeXBlW107XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlcnNCeVRhZ3MgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIHt0YWdzLCB1c2VybmFtZX0sXG4gIG9wdGlvbnM/OiBVc2VyT3B0aW9uc1xuKTogUHJvbWlzZTxVc2VyVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdnZXRVc2Vyc0J5VGFncyc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIGZpZWxkcywgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdFRhZ3M6IHN0cmluZ1tdID0gdGFncz8ucmVkdWNlKChsaXN0OiBzdHJpbmdbXSwgdGFnTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgaWYodGFnTmFtZSkge1xuICAgICAgbGlzdC5wdXNoKHBhcnNlQ2hhcih0YWdOYW1lLCAzMikudG9Mb3dlckNhc2UoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpc3Q7XG4gIH0sIFtdKTtcbiAgY29uc3Qge2xpbWl0fSA9IHBhcnNlVXNlck9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IHtvYmplY3RzOiBzZWxlY3RPYmplY3RzLCBxdWVyaWVzOiBzZWxlY3RRdWVyaWVzfSA9IGdldFVzZXJPcHRpb25hbChmaWVsZHMpO1xuICBjb25zdCBmb3JtYXRVc2VybmFtZTogc3RyaW5nID0gcGFyc2VVc2VybmFtZSh1c2VybmFtZSk7XG4gIGNvbnN0IGZpbHRlckJ5OiBzdHJpbmdbXSA9IFtcbiAgICBgdS5fa2V5ICE9IFwiJHtzZXNzaW9uSWR9XCJgLFxuICAgICd1LnVzZXJBY2Nlc3MgPiAwJ1xuICBdO1xuXG4gIGlmKHVzZXJuYW1lKSB7XG4gICAgZmlsdGVyQnkucHVzaChgQ09OVEFJTlModS51c2VybmFtZSwgXCIke2Zvcm1hdFVzZXJuYW1lfVwiKWApO1xuICB9XG5cbiAgY29uc3QgYXFsUXVlcnk6IHN0cmluZyA9IGBGT1IgdCBJTiB0YWdzXG4gICAgRklMVEVSIFBPU0lUSU9OKCR7SlNPTi5zdHJpbmdpZnkoZm9ybWF0VGFncyl9LCBMT1dFUih0Lm5hbWUpKVxuICAgIEZPUiB1LCBpdCBJTiBPVVRCT1VORCB0IGlzVGFnZ2VkXG4gICAgT1BUSU9OUyB7YmZzOiB0cnVlLCB1bmlxdWVWZXJ0aWNlczogXCJnbG9iYWxcIiwgdmVydGV4Q29sbGVjdGlvbnM6IFwidXNlcnNcIn1cbiAgICAke3NlbGVjdFF1ZXJpZXMuam9pbignXFxuJyl9XG4gICAgRklMVEVSICR7ZmlsdGVyQnkuam9pbignICYmICcpfVxuICAgICR7bGltaXQuYXFsfVxuICAgIFJFVFVSTiBESVNUSU5DVCBNRVJHRSh1LCB7JHtzZWxlY3RPYmplY3RzLmpvaW4oJywgJyl9fSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSBhcyB1bmtub3duIGFzIFVzZXJUeXBlW10pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgIH0sIGVycm9yLCBjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIFtdIGFzIFVzZXJUeXBlW107XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlcnNCeUxhdGVzdCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB7dXNlcm5hbWV9LCBvcHRpb25zPzogVXNlck9wdGlvbnMpOiBQcm9taXNlPFVzZXJUeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2dldFVzZXJzQnlMYXRlc3QnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBmaWVsZHMsIHNlc3Npb246IHt1c2VySWR9ID0ge319ID0gY29udGV4dDtcbiAgY29uc3Qge2xpbWl0fSA9IHBhcnNlVXNlck9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IGZpbHRlciA9IFtcbiAgICAndS5faWQgIT0gc2Vzc2lvbi5faWQnLFxuICAgICd1LnVzZXJBY2Nlc3MgPiAwJ1xuICBdO1xuICBjb25zdCB7b2JqZWN0czogc2VsZWN0T2JqZWN0cywgcXVlcmllczogc2VsZWN0UXVlcmllc30gPSBnZXRVc2VyT3B0aW9uYWwoZmllbGRzKTtcblxuICBpZih1c2VybmFtZSkge1xuICAgIGZpbHRlci5wdXNoKGBDT05UQUlOUyh1LnVzZXJuYW1lLCBcIiR7cGFyc2VVc2VybmFtZSh1c2VybmFtZSl9XCIpYCk7XG4gIH1cblxuICAvLyBHZXQgZGF0YSBmcm9tIGRhdGFiYXNlXG4gIGNvbnN0IGFxbFF1ZXJ5OiBzdHJpbmcgPSBgRk9SIHUgSU4gdXNlcnNcbiAgICBMRVQgc2Vzc2lvbiA9IERPQ1VNRU5UKFwidXNlcnMvJHt1c2VySWR9XCIpXG4gICAgRklMVEVSICR7ZmlsdGVyLmpvaW4oJyAmJiAnKX1cbiAgICAke3NlbGVjdFF1ZXJpZXMuam9pbignXFxuJyl9XG4gICAgTEVUIGRpc3RhbmNlID0gRElTVEFOQ0UodS5sYXRpdHVkZSB8fCAwLCB1LmxvbmdpdHVkZSB8fCAwLCBzZXNzaW9uLmxhdGl0dWRlIHx8IDAsIHNlc3Npb24ubG9uZ2l0dWRlIHx8IDApXG4gICAgJHtsaW1pdC5hcWx9XG4gICAgU09SVCBkaXN0YW5jZSBBU0MsIHUuYWRkZWQgREVTQ1xuICAgIFJFVFVSTiBNRVJHRSh1LCB7JHtzZWxlY3RPYmplY3RzLmpvaW4oJywgJyl9fSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFF1ZXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSBhcyB1bmtub3duIGFzIFVzZXJUeXBlW10pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgIH0sIGVycm9yLCBjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIFtdIGFzIFVzZXJUeXBlW107XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlcnNCeUNvbm5lY3Rpb24gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIHt1c2VySWR9OiBVc2VyVHlwZSxcbiAgb3B0aW9ucz86IFVzZXJPcHRpb25zXG4pOiBQcm9taXNlPFVzZXJUeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2dldFVzZXJzQnlDb25uZWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgZmllbGRzfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtsaW1pdCwgdXNlcm5hbWV9ID0gcGFyc2VVc2VyT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3Qge29iamVjdHM6IHNlbGVjdE9iamVjdHMsIHF1ZXJpZXM6IHNlbGVjdFF1ZXJpZXN9ID0gZ2V0VXNlck9wdGlvbmFsKGZpZWxkcyk7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChgdXNlcnMvJHt1c2VySWR9YCk7XG4gIGNvbnN0IGZpbHRlckJ5OiBzdHJpbmdbXSA9IFtcbiAgICAndS51c2VyQWNjZXNzID4gMCdcbiAgXTtcblxuICBpZih1c2VybmFtZSkge1xuICAgIGZpbHRlckJ5LnB1c2goYENPTlRBSU5TKHUudXNlcm5hbWUsIFwiJHtwYXJzZVVzZXJuYW1lKHVzZXJuYW1lKX1cIilgKTtcbiAgfVxuXG4gIGNvbnN0IGFxbFF1ZXJ5OiBzdHJpbmcgPSBgRk9SIGN1IElOIHVzZXJzXG4gICAgTEVUIHNlc3Npb24gPSBET0NVTUVOVChcIiR7Zm9ybWF0VXNlcklkfVwiKVxuICAgIEZPUiB1LCBjb25uZWN0aW9uIElOIE9VVEJPVU5EIGN1IGhhc0Nvbm5lY3Rpb25cbiAgICBPUFRJT05TIHtiZnM6IHRydWUsIHVuaXF1ZVZlcnRpY2VzOiBcImdsb2JhbFwiLCB2ZXJ0ZXhDb2xsZWN0aW9uczogXCJ1c2Vyc1wifVxuICAgICR7c2VsZWN0UXVlcmllcy5qb2luKCdcXG4nKX1cbiAgICBGSUxURVIgJHtmaWx0ZXJCeS5qb2luKCcgJiYgJyl9XG4gICAgJHtsaW1pdC5hcWx9XG4gICAgUkVUVVJOIERJU1RJTkNUIE1FUkdFKHUsIHske3NlbGVjdE9iamVjdHMuam9pbignLCAnKX19KWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpIGFzIHVua25vd24gYXMgVXNlclR5cGVbXSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgfSwgZXJyb3IsIGNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gW10gYXMgVXNlclR5cGVbXTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWZyZXNoU2Vzc2lvbiA9ICh7ZXhwaXJlcywgdG9rZW59KTogU2Vzc2lvblRva2VuIHwgU2Vzc2lvbkVycm9yID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7dXNlcklkLCB1c2VybmFtZSwgdXNlckFjY2Vzc30gPSBnZXRTZXNzaW9uKHRva2VuKTtcbiAgICByZXR1cm4gY3JlYXRlVG9rZW4odXNlcklkLCB1c2VybmFtZSwgdXNlckFjY2VzcywgZXhwaXJlcyk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0aHJvdyBlcnJvcjsgLy8gUmUtdGhyb3cgdGhlIGVycm9yIGZyb20gZ2V0U2Vzc2lvblxuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc2lnbkluID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIGFyZ3MpOiBQcm9taXNlPFNlc3Npb25Ub2tlbiB8IG51bGw+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ3NpZ25Jbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3Qge2VtYWlsLCBleHBpcmVzLCBwYXNzd29yZCwgcGhvbmUsIHVzZXJuYW1lfSA9IGFyZ3M7XG4gIGNvbnN0IGZvcm1hdEVtYWlsOiBzdHJpbmcgPSBwYXJzZUVtYWlsKGVtYWlsKTtcbiAgY29uc3QgZm9ybWF0VXNlcm5hbWU6IHN0cmluZyA9IHBhcnNlVXNlcm5hbWUodXNlcm5hbWUpO1xuICBjb25zdCBmb3JtYXRQYXNzd29yZDogc3RyaW5nID0gcGFyc2VQYXNzd29yZChwYXNzd29yZCk7XG4gIGNvbnN0IGZvcm1hdFBob25lOiBzdHJpbmcgPSBwYXJzZVBob25lKHBob25lKTtcbiAgY29uc3QgZm9ybWF0RXhwaXJlczogbnVtYmVyID0gcGFyc2VOdW0oZXhwaXJlcykgfHwgMTU7XG5cbiAgaWYoKCFmb3JtYXRVc2VybmFtZSAmJiAhZm9ybWF0RW1haWwgJiYgIWZvcm1hdFBob25lKSB8fCAhZm9ybWF0UGFzc3dvcmQpIHtcbiAgICB0aHJvdyBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHt1c2VybmFtZX0sXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5JTlZBTElEX0FSR1VNRU5UU1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgY29uc3QgZmlsdGVyczogc3RyaW5nW10gPSBbXTtcblxuICBpZihmb3JtYXRFbWFpbCkge1xuICAgIGZpbHRlcnMucHVzaChgdS5lbWFpbCA9PSBcIiR7Zm9ybWF0RW1haWx9XCJgKTtcbiAgfVxuXG4gIGlmKGZvcm1hdFBob25lKSB7XG4gICAgZmlsdGVycy5wdXNoKGB1LnBob25lID09ICR7Zm9ybWF0UGhvbmV9YCk7XG4gIH1cblxuICBpZihmb3JtYXRVc2VybmFtZSkge1xuICAgIGZpbHRlcnMucHVzaChgdS51c2VybmFtZSA9PSBcIiR7Zm9ybWF0VXNlcm5hbWV9XCJgKTtcbiAgfVxuXG4gIGNvbnN0IGNoZWNrUXVlcnk6IHN0cmluZyA9IGBGT1IgdSBJTiB1c2Vyc1xuICAgIEZJTFRFUiAke2ZpbHRlcnMuam9pbignIHx8ICcpfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gdWA7XG5cbiAgbGV0IGNoZWNrVXNlcjogVXNlclR5cGU7XG5cbiAgdHJ5IHtcbiAgICBjaGVja1VzZXIgPSBhd2FpdCB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGNoZWNrUXVlcnkpLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHBhcmFtczoge3VzZXJuYW1lOiBmb3JtYXRVc2VybmFtZX0sXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KTtcbiAgfVxuXG4gIGlmKCFjaGVja1VzZXIpIHtcbiAgICB0aHJvdyBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHt1c2VybmFtZX0sXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5JTlZBTElEX0FVVEhFTlRJQ0FUSU9OXG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBjb25zdCB7X2tleTogdXNlcklkLCBwYXNzd29yZDogdmFsaWRQYXNzd29yZCwgc2FsdCwgdXNlckFjY2Vzc30gPSBjaGVja1VzZXIgYXMgVXNlclR5cGU7XG4gIGNvbnN0IGF1dGhQYXNzd29yZDogc3RyaW5nID0gY3JlYXRlUGFzc3dvcmQoZm9ybWF0UGFzc3dvcmQsIHNhbHQpO1xuXG4gIGNvbnNvbGUubG9nKHtcbiAgICBjcmVhdGVQYXNzd29yZCxcbiAgICBhdXRoUGFzc3dvcmQsXG4gICAgdmFsaWRQYXNzd29yZCxcbiAgICBmb3JtYXRQYXNzd29yZCxcbiAgICBzYWx0XG4gIH0pO1xuXG4gIGlmKHZhbGlkUGFzc3dvcmQgIT09IGF1dGhQYXNzd29yZCkge1xuICAgIHRocm93IGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHBhcmFtczoge3VzZXJBY2Nlc3MsIHVzZXJJZCwgdXNlcm5hbWV9LFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuSU5WQUxJRF9BVVRIRU5USUNBVElPTlxuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB0b2tlbiA9IGNyZWF0ZVRva2VuKHVzZXJJZCB8fCAnJywgdXNlcm5hbWUgfHwgJycsIHVzZXJBY2Nlc3MsIGZvcm1hdEV4cGlyZXMpO1xuXG4gICAgcmV0dXJuIHRva2VuO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBwYXJhbXM6IHt1c2VySWQsIHVzZXJuYW1lfSxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc2lnbk91dCA9IGFzeW5jIChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdzaWduT3V0JztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkLCB1c2VybmFtZX0gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCB1c2VyRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuXG4gIGNvbnN0IHVwZGF0ZSA9IHtcbiAgICBsYXN0T25saW5lOiBEYXRlLm5vdygpLFxuICAgIHNlc3Npb25JZDogbnVsbFxuICB9O1xuICBjb25zdCBzZXNzaW9uUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCB1ID0gRE9DVU1FTlQoJHt1c2VyRG9jSWR9KVxuICAgIFVQREFURSB1IFdJVEggJHt1cGRhdGV9IElOIHVzZXJzXG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBORVdgO1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShzZXNzaW9uUXVlcnkpLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIHBhcmFtczoge3VzZXJJZDogc2Vzc2lvbklkLCB1c2VybmFtZX0sXG4gICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFjdGl2ZVVzZXJDb3VudCA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2dldEFjdGl2ZVVzZXJDb3VudCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgY291bnRRdWVyeTogQXFsUXVlcnkgPSBhcWxgTEVUIGRvY3MgPSAoXG4gICAgRk9SIHUgSU4gdXNlcnNcbiAgICBGSUxURVIgdS5hY3RpdmUgPT0gdHJ1ZVxuICAgIFJFVFVSTiB1XG4gIClcbiAgUkVUVVJOIExFTkdUSChkb2NzKWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoY291bnRRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgIHRocm93IGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgdmFsdWU6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgIH0sIGVycm9yLCBjb250ZXh0KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVc2VyQnlUb2tlbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB0b2tlbjogc3RyaW5nKTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnZ2V0VXNlckJ5VG9rZW4nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHt1c2VySWR9ID0gZ2V0U2Vzc2lvbih0b2tlbik7XG4gIGNvbnN0IHVzZXJEb2NJZCA9IHBhcnNlQXJhbmdvSWQoYHVzZXJzLyR7dXNlcklkfWApO1xuICBjb25zdCBhcWxRdWVyeTogQXFsUXVlcnkgPSBhcWxgTEVUIHUgPSBET0NVTUVOVChcIiR7dXNlckRvY0lkfVwiKSBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSlcbiAgICAucXVlcnkoYXFsUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBwYXJhbXM6IHt1c2VySWR9LFxuICAgICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgfSwgZXJyb3IsIGNvbnRleHQpO1xuICAgIH0pO1xufTsiXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFRLFlBQUFBLE1BQWUsK0JBQ3ZCLE9BQ0UsY0FBQUMsRUFDQSxrQkFBQUMsRUFDQSxpQkFBQUMsRUFDQSxhQUFBQyxFQUNBLGNBQUFDLEVBQ0EsaUJBQUFDLEVBQ0EsY0FBQUMsRUFDQSxpQkFBQUMsTUFDSywrQkFDUCxPQUFRLE9BQUFDLE1BQVUsV0FDbEIsT0FBUSxZQUFBQyxNQUFlLFFBQ3ZCLE9BQU9DLE1BQVksU0FFbkIsT0FBUSxhQUFBQyxNQUFnQiw2QkFDeEIsT0FBUSxVQUFBQyxNQUFhLGVBQ3JCLE9BQVEsY0FBQUMsTUFBb0MsMEJBQzVDLE9BQVEs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SWQiLCAicGFyc2VDaGFyIiwgInBhcnNlRW1haWwiLCAicGFyc2VQYXNzd29yZCIsICJwYXJzZVBob25lIiwgInBhcnNlVXNlcm5hbWUiLCAiYXFsIiwgIkRhdGVUaW1lIiwgIlN0cmlwZSIsICJwYXJzZVVzZXIiLCAiQ29uZmlnIiwgIkVycm9yVHlwZXMiLCAibG9nRXJyb3IiLCAibG9nRXhjZXB0aW9uIiwgImdldERvY0lkIiwgImdldExpbWl0IiwgInNlbGVjdFJlYWN0aW9uQ291bnRCeVR5cGUiLCAidXNlRGIiLCAiZGV0ZWN0TGFuZ3VhZ2UiLCAiZ2V0U2Vzc2lvbiIsICJzZXRTZXNzaW9uIiwgInNlbmRFbWFpbCIsICJzZW5kU21zIiwgImV2ZW50Q2F0ZWdvcnkiLCAiU1RSSVBFX0FQSV9WRVJTSU9OIiwgIlVzZXJBY2Nlc3MiLCAiY3JlYXRlVG9rZW4iLCAidXNlcklkIiwgInVzZXJuYW1lIiwgInVzZXJBY2Nlc3MiLCAiZXhwaXJlc0luTWludXRlcyIsICJub3ciLCAic2Vzc2lvbkV4cGlyZXMiLCAiaWF0IiwgImV4cCIsICJ0b2tlbiIsICJnZXRVc2VyT3B0aW9uYWwiLCAiZmllbGRzIiwgInNlbGVjdHMiLCAiZmllbGQiLCAicGFyc2VVc2VyT3B0aW9ucyIsICJvcHRpb25zIiwgImZyb20iLCAidG8iLCAibGltaXQiLCAiYWRkVXNlciIsICJjb250ZXh0IiwgInVzZXIiLCAiYWN0aW9uIiwgImRhdGFiYXNlTmFtZSIsICJsYW5ndWFnZUNvbnRleHQiLCAiX2NvbmZpcm0iLCAibmV3VXNlciIsICJlbWFpbCIsICJwYXNzd29yZCIsICJwaG9uZSIsICJfa2V5IiwgIl9pZCIsICJpbnNlcnRVc2VyIiwgInNhbHQiLCAiZW5jcnlwdGVkUGFzc3dvcmQiLCAiZmlsdGVycyIsICJjaGVja1F1ZXJ5IiwgImN1cnNvciIsICJlcnJvciIsICJwaG9uZUNvdW50cnlDb2RlIiwgImxvY2FsZSIsICJ2ZXJpZmllZEVtYWlsQ29kZSIsICJ2ZXJpZmllZFNtc0NvZGUiLCAiaW5zZXJ0IiwgImluc2VydFF1ZXJ5IiwgInVwZGF0ZVVzZXIiLCAidXBkYXRlZFVzZXIiLCAidGFncyIsICJ1cGRhdGUiLCAiaWQiLCAidXNlclF1ZXJ5IiwgImRhdGFiYXNlIiwgInRhZ0NvbGxlY3Rpb24iLCAidGFnRG9jSWQiLCAibmFtZSIsICJ0YWdRdWVyeSIsICJ0YWdFZGdlIiwgImVkZ2UiLCAiZm9yZ290UGFzc3dvcmQiLCAiYXFsUXVlcnkiLCAidmVyaWZpZWRFbWFpbCIsICJ2ZXJpZmllZFBob25lIiwgImNvZGVFeHBpcmVzIiwgImNvZGUiLCAidXNlckRvY0lkIiwgInVwZGF0ZVF1ZXJ5IiwgInJlc2V0UGFzc3dvcmQiLCAidHlwZSIsICJmb3JtYXRQYXNzd29yZCIsICJ2ZXJpZmllZEVtYWlsRXhwaXJlcyIsICJ2ZXJpZmllZFBob25lRXhwaXJlcyIsICJjb25maXJtQ29kZSIsICJ2YWx1ZSIsICJpc1NtcyIsICJmb3JtYXR0ZWRWYWx1ZSIsICJkZWxldGVVc2VyIiwgInN0cmlwZUNsaWVudCIsICJkZWxldGVkVXNlciIsICJkZWFjdGl2YXRlVXNlciIsICJnZXREaXNwbGF5TmFtZSIsICJmaXJzdCIsICJsYXN0IiwgImZ1bGxuYW1lIiwgImdldFNlc3Npb25Vc2VyIiwgInNlc3Npb25JZCIsICJzZWxlY3RPYmplY3RzIiwgInNlbGVjdFF1ZXJpZXMiLCAiZ2V0VXNlciIsICJnZXRVc2VycyIsICJmaWx0ZXJCeSIsICJnZXRVc2Vyc0J5UmVhY3Rpb25zIiwgInJlYWN0aW9ucyIsICJmb3JtYXRSZWFjdGlvbnMiLCAicmVhY3Rpb25OYW1lIiwgImZvcm1hdFNlc3Npb25JZCIsICJmb3JtYXRVc2VybmFtZSIsICJnZXRVc2Vyc0J5VGFncyIsICJmb3JtYXRUYWdzIiwgImxpc3QiLCAidGFnTmFtZSIsICJnZXRVc2Vyc0J5TGF0ZXN0IiwgImZpbHRlciIsICJnZXRVc2Vyc0J5Q29ubmVjdGlvbiIsICJmb3JtYXRVc2VySWQiLCAicmVmcmVzaFNlc3Npb24iLCAiZXhwaXJlcyIsICJzaWduSW4iLCAiYXJncyIsICJmb3JtYXRFbWFpbCIsICJmb3JtYXRQaG9uZSIsICJmb3JtYXRFeHBpcmVzIiwgImNoZWNrVXNlciIsICJ2YWxpZFBhc3N3b3JkIiwgImF1dGhQYXNzd29yZCIsICJzaWduT3V0IiwgInNlc3Npb25RdWVyeSIsICJnZXRBY3RpdmVVc2VyQ291bnQiLCAiY291bnRRdWVyeSIsICJnZXRVc2VyQnlUb2tlbiJdCn0K
@@ -1,30 +0,0 @@
1
- import{ApiGatewayManagementApi as N}from"@aws-sdk/client-apigatewaymanagementapi";import{createHash as T,parseId as u,parseString as p}from"@nlabs/utils/parsers/strings";import{aql as d}from"arangojs";import{Config as g}from"../config.js";import{useDb as I}from"../utils/arangodbUtils.js";import{getUserByToken as k}from"./users.js";import{ErrorTypes as E}from"../types/error.types.js";import{logError as R}from"../utils/analyticsUtils.js";const x=async(n,t)=>{const r="addSocket",s=p(n,32),o=p(t);try{const e=process.env.ARANGODB_DATABASE||"",a=I(e),i=await k({config:g.get(),databaseName:e},o);if(!i)throw new Error("Unauthorized");const c={socketId:s,modified:Date.now()},l={...c,_key:T(`socket-${s}`),userId:i.userId},y=d`UPSERT {userId: ${i.userId}}
2
- INSERT ${l}
3
- UPDATE ${c}
4
- IN sockets RETURN NEW`;return a.query(y).then(m=>m.next()).catch(m=>{throw R({action:r,category:"websockets",value:E.DATABASE_ERROR},m,{})})}catch{throw new Error("Unauthorized")}},B=n=>{const t=u(n),r=process.env.ARANGODB_DATABASE||"",s=I(r),o=d`FOR s IN sockets
5
- FILTER s.userId == ${t}
6
- LIMIT 1
7
- RETURN s`;return s.query(o).then(e=>e.next()).catch(e=>{throw e})},$=n=>{const t=u(n),r=process.env.ARANGODB_DATABASE||"",s=I(r),o=d`FOR s IN sockets
8
- FILTER s.socketId == ${t}
9
- LET user = FIRST(
10
- FOR u IN users
11
- FILTER u.sub == s.sub
12
- LIMIT 1
13
- RETURN u;
14
- )
15
- LIMIT 1
16
- RETURN MERGE(c, {user:user}`;return s.query(o).then(e=>e.next()).catch(e=>{throw e})},q=(n,t)=>{const{databaseName:r,session:{userId:s}={}}=n,o=`users/${u(s)}`,e=`conversations/${u(t)}`,a=I(r),i=d`FOR c, e IN 1..1 OUTBOUND ${o} hasConversation
17
- FILTER c._id == ${e}
18
- LIMIT 1
19
- LET u = (
20
- FOR inUser, inEdge IN 1..1 INBOUND ${e} hasConversation
21
- FOR n IN connections
22
- FILTER inUser.sub == n.sub
23
- RETURN n.connectionId
24
- )
25
- RETURN u`;return a.query(i).then(c=>c.all()).catch(c=>{throw c})},A=n=>{const t="removeSocket",r=p(n,32),s=process.env.ARANGODB_DATABASE||"",o=I(s),e=d`FOR s IN sockets
26
- FILTER s.socketId == ${r}
27
- LIMIT 1
28
- REMOVE s IN sockets
29
- RETURN OLD`;return o.query(e).then(a=>a.next()).catch(a=>{throw R({action:t,category:"websockets",value:E.DATABASE_ERROR},a,{})})};class v{client;constructor(t){t&&this.setupClient(t||{})}async setupClient({requestContext:t}){if(!this.client&&t){const{apiId:r,domainName:s,stage:o}=t;let e=s;r&&(e=`${r}.execute-api.${process.env.API_REGION}.amazonaws.com`),this.client=new N({credentials:g.get("aws.credentials"),endpoint:`https://${e}/${o}`,region:g.get("aws.region")})}}async send(t,r){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(r)}).promise().catch(async o=>{o.statusCode===410&&await A(s)}),!0}}export{v as WebsocketClient,x as addSocket,q as getConnectionByConvo,$ as getSocketById,B as getSocketByUser,A as removeSocket};
30
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvd2Vic29ja2V0cy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7QXBpR2F0ZXdheU1hbmFnZW1lbnRBcGl9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1hcGlnYXRld2F5bWFuYWdlbWVudGFwaSc7XG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcbmltcG9ydCB7YXFsLCBEYXRhYmFzZX0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5pbXBvcnQge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHt1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5pbXBvcnQge2dldFVzZXJCeVRva2VufSBmcm9tICcuL3VzZXJzLmpzJztcblxuaW1wb3J0IHtFcnJvclR5cGVzfSBmcm9tICcuLi90eXBlcy9lcnJvci50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7V2Vic29ja2V0Q29ubmVjdGlvbn0gZnJvbSAnLi4vdHlwZXMvd2Vic29ja2V0cy50eXBlcy5qcyc7XG5pbXBvcnQge2xvZ0Vycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5cbmV4cG9ydCBjb25zdCBhZGRTb2NrZXQgPSBhc3luYyAoc29ja2V0SWQ6IHN0cmluZywgdG9rZW46IHN0cmluZyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRTb2NrZXQnO1xuICBjb25zdCBmb3JtYXRTb2NrZXRJZDogc3RyaW5nID0gcGFyc2VTdHJpbmcoc29ja2V0SWQsIDMyKTtcbiAgY29uc3QgZm9ybWF0VG9rZW46IHN0cmluZyA9IHBhcnNlU3RyaW5nKHRva2VuKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGRhdGFiYXNlTmFtZTogc3RyaW5nID0gcHJvY2Vzcy5lbnYuQVJBTkdPREJfREFUQUJBU0UgfHwgJyc7XG4gICAgY29uc3QgZGF0YWJhc2U6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgZ2V0VXNlckJ5VG9rZW4oe2NvbmZpZzogQ29uZmlnLmdldCgpLCBkYXRhYmFzZU5hbWV9LCBmb3JtYXRUb2tlbik7XG5cbiAgICBpZighdXNlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmF1dGhvcml6ZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGUgPSB7XG4gICAgICBzb2NrZXRJZDogZm9ybWF0U29ja2V0SWQsXG4gICAgICBtb2RpZmllZDogRGF0ZS5ub3coKVxuICAgIH07XG4gICAgY29uc3QgaW5zZXJ0ID0ge1xuICAgICAgLi4udXBkYXRlLFxuICAgICAgX2tleTogY3JlYXRlSGFzaChgc29ja2V0LSR7Zm9ybWF0U29ja2V0SWR9YCksXG4gICAgICB1c2VySWQ6IHVzZXIudXNlcklkXG4gICAgfTtcbiAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7dXNlcklkOiAke3VzZXIudXNlcklkfX1cbiAgICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICAgIElOIHNvY2tldHMgUkVUVVJOIE5FV2A7XG5cbiAgICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IGxvZ0Vycm9yKHtcbiAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgY2F0ZWdvcnk6ICd3ZWJzb2NrZXRzJyxcbiAgICAgICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgICB9LCBlcnJvciwge30pO1xuICAgICAgfSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYXV0aG9yaXplZCcpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U29ja2V0QnlVc2VyID0gKHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxXZWJzb2NrZXRDb25uZWN0aW9uPiA9PiB7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBkYXRhYmFzZU5hbWU6IHN0cmluZyA9IHByb2Nlc3MuZW52LkFSQU5HT0RCX0RBVEFCQVNFIHx8ICcnO1xuICBjb25zdCBkYXRhYmFzZTogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHMgSU4gc29ja2V0c1xuICAgIEZJTFRFUiBzLnVzZXJJZCA9PSAke2Zvcm1hdFVzZXJJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIHNgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U29ja2V0QnlJZCA9IChzb2NrZXRJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3QgZm9ybWF0U29ja2V0SWQ6IHN0cmluZyA9IHBhcnNlSWQoc29ja2V0SWQpO1xuICBjb25zdCBkYXRhYmFzZU5hbWU6IHN0cmluZyA9IHByb2Nlc3MuZW52LkFSQU5HT0RCX0RBVEFCQVNFIHx8ICcnO1xuICBjb25zdCBkYXRhYmFzZTogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHMgSU4gc29ja2V0c1xuICAgIEZJTFRFUiBzLnNvY2tldElkID09ICR7Zm9ybWF0U29ja2V0SWR9XG4gICAgTEVUIHVzZXIgPSBGSVJTVChcbiAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICBGSUxURVIgdS5zdWIgPT0gcy5zdWJcbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiB1O1xuICAgIClcbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIE1FUkdFKGMsIHt1c2VyOnVzZXJ9YDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25CeUNvbnZvID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH0gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3BhcnNlSWQoc2Vzc2lvbklkKX1gO1xuICBjb25zdCBjb252b0RvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke3BhcnNlSWQoY29udm9JZCl9YDtcbiAgY29uc3QgZGF0YWJhc2U6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtzZXNzaW9uRG9jSWR9IGhhc0NvbnZlcnNhdGlvblxuICBGSUxURVIgYy5faWQgPT0gJHtjb252b0RvY0lkfVxuICBMSU1JVCAxXG4gIExFVCB1ID0gKFxuICAgIEZPUiBpblVzZXIsIGluRWRnZSBJTiAxLi4xIElOQk9VTkQgJHtjb252b0RvY0lkfSBoYXNDb252ZXJzYXRpb25cbiAgICBGT1IgbiBJTiBjb25uZWN0aW9uc1xuICAgIEZJTFRFUiBpblVzZXIuc3ViID09IG4uc3ViXG4gICAgUkVUVVJOIG4uY29ubmVjdGlvbklkXG4gIClcbiAgUkVUVVJOIHVgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTb2NrZXQgPSAoc29ja2V0SWQ6IHN0cmluZyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdyZW1vdmVTb2NrZXQnO1xuICBjb25zdCBmb3JtYXRTb2NrZXRJZDogc3RyaW5nID0gcGFyc2VTdHJpbmcoc29ja2V0SWQsIDMyKTtcbiAgY29uc3QgZGF0YWJhc2VOYW1lOiBzdHJpbmcgPSBwcm9jZXNzLmVudi5BUkFOR09EQl9EQVRBQkFTRSB8fCAnJztcbiAgY29uc3QgZGF0YWJhc2U6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBzIElOIHNvY2tldHNcbiAgICAgIEZJTFRFUiBzLnNvY2tldElkID09ICR7Zm9ybWF0U29ja2V0SWR9XG4gICAgICBMSU1JVCAxXG4gICAgICBSRU1PVkUgcyBJTiBzb2NrZXRzXG4gICAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogJ3dlYnNvY2tldHMnLFxuICAgICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgfSwgZXJyb3IsIHt9KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViU29ja2V0Q2xpZW50Q29udGV4dCB7XG4gIHJlYWRvbmx5IHJlcXVlc3RDb250ZXh0Pzoge1xuICAgIHJlYWRvbmx5IGFwaUlkOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHN0YWdlOiBzdHJpbmc7XG4gIH07XG59XG5leHBvcnQgY2xhc3MgV2Vic29ja2V0Q2xpZW50IHtcbiAgY2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz8pIHtcbiAgICBpZihjb25maWcpIHtcbiAgICAgIHRoaXMuc2V0dXBDbGllbnQoY29uZmlnIHx8IHt9KTtcbiAgICB9XG4gIH1cblxuICAvLyBBbGxvdyBqdXN0IHBhc3NpbmcgYSBzaW5nbGUgZXZlbnQgdG8gc2V0dXAgdGhlIGNsaWVudCBmb3IgZWFzZSBvZiB1c2VcbiAgYXN5bmMgc2V0dXBDbGllbnQoe3JlcXVlc3RDb250ZXh0fTogV2ViU29ja2V0Q2xpZW50Q29udGV4dCkge1xuICAgIGlmKCF0aGlzLmNsaWVudCAmJiByZXF1ZXN0Q29udGV4dCkge1xuICAgICAgY29uc3Qge2FwaUlkLCBkb21haW5OYW1lLCBzdGFnZX0gPSByZXF1ZXN0Q29udGV4dDtcbiAgICAgIGxldCB1cGRhdGVkRG9tYWluTmFtZTogc3RyaW5nID0gZG9tYWluTmFtZTtcblxuICAgICAgaWYoYXBpSWQpIHtcbiAgICAgICAgdXBkYXRlZERvbWFpbk5hbWUgPSBgJHthcGlJZH0uZXhlY3V0ZS1hcGkuJHtwcm9jZXNzLmVudi5BUElfUkVHSU9OfS5hbWF6b25hd3MuY29tYDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jbGllbnQgPSBuZXcgQXBpR2F0ZXdheU1hbmFnZW1lbnRBcGkoe1xuICAgICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICAgIGVuZHBvaW50OiBgaHR0cHM6Ly8ke3VwZGF0ZWREb21haW5OYW1lfS8ke3N0YWdlfWAsXG4gICAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzZW5kKGNvbm5lY3Rpb24sIHBheWxvYWQpIHtcbiAgICBjb25zb2xlLmxvZyhjb25uZWN0aW9uLCBwYXlsb2FkKTtcblxuICAgIC8vIENoZWF0IGFuZCBhbGxvdyBldmVudCB0byBiZSBwYXNzZWQgaW4gdGhpcyBhbHNvIGxldHMgdXMgZGVmYXVsdCB0byBzZXR1cENsaWVudCB0b29cbiAgICBsZXQgc29ja2V0SWQ7XG5cbiAgICBpZihjb25uZWN0aW9uPy5yZXF1ZXN0Q29udGV4dCkge1xuICAgICAgYXdhaXQgdGhpcy5zZXR1cENsaWVudChjb25uZWN0aW9uKTtcbiAgICAgIGNvbnN0IHtzb2NrZXRJZDogdXBkYXRlZFNvY2tldElkfSA9IGNvbm5lY3Rpb24ucmVxdWVzdENvbnRleHQ7XG4gICAgICBzb2NrZXRJZCA9IHVwZGF0ZWRTb2NrZXRJZDtcbiAgICB9IGVsc2Uge1xuICAgICAgc29ja2V0SWQgPSBjb25uZWN0aW9uO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnBvc3RUb0Nvbm5lY3Rpb24oe0Nvbm5lY3Rpb25JZDogc29ja2V0SWQsIERhdGE6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpfSlcbiAgICAgIC5wcm9taXNlKClcbiAgICAgIC5jYXRjaChhc3luYyAocG9zdEVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHBvc3RFcnJvcikpO1xuXG4gICAgICAgIGlmKHBvc3RFcnJvci5zdGF0dXNDb2RlID09PSA0MTApIHtcbiAgICAgICAgICAvLyBEaXNjb25uZWN0IGNsaWVudFxuICAgICAgICAgIGF3YWl0IHJlbW92ZVNvY2tldChzb2NrZXRJZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQVEsMkJBQUFBLE1BQThCLDBDQUN0QyxPQUFRLGNBQUFDLEVBQVksV0FBQUMsRUFBUyxlQUFBQyxNQUFrQiwrQkFDL0MsT0FBUSxPQUFBQyxNQUFvQixXQUc1QixPQUFRLFVBQUFDLE1BQWEsZUFFckIsT0FBUSxTQUFBQyxNQUFZLDRCQUNwQixPQUFRLGtCQUFBQyxNQUFxQixhQUU3QixPQUFRLGNBQUFDLE1BQWlCLDBCQUV6QixPQUFRLFlBQUFDLE1BQWUsNkJBRWhCLE1BQU1DLEVBQVksTUFBT0MsRUFBa0JDLElBQWdELENBQ2hHLE1BQU1DLEVBQWlCLFlBQ2pCQyxFQUF5QlgsRUFBWVEsRUFBVSxFQUFFLEVBQ2pESSxFQUFzQlosRUFBWVMsQ0FBSyxFQUU3QyxHQUFJLENBQ0YsTUFBTUksRUFBdUIsUUFBUSxJQUFJLG1CQUFxQixHQUN4REMsRUFBcUJYLEVBQU1VLENBQVksRUFDdkNFLEVBQU8sTUFBTVgsRUFBZSxDQUFDLE9BQVFGLEVBQU8sSUFBSSxFQUFHLGFBQUFXLENBQVksRUFBR0QsQ0FBVyxFQUVuRixHQUFHLENBQUNHLEVBQ0YsTUFBTSxJQUFJLE1BQU0sY0FBYyxFQUdoQyxNQUFNQyxFQUFTLENBQ2IsU0FBVUwsRUFDVixTQUFVLEtBQUssSUFBSSxDQUNyQixFQUNNTSxFQUFTLENBQ2IsR0FBR0QsRUFDSCxLQUFNbEIsRUFBVyxVQUFVYSxDQUFjLEVBQUUsRUFDM0MsT0FBUUksRUFBSyxNQUNmLEVBQ01HLEVBQW1CakIsb0JBQXNCYyxFQUFLLE1BQU07QUFBQSxlQUMvQ0UsQ0FB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SSxVQUFVLGtCQUdwRSxLQUFLLE9BQVMsSUFBSXRDLEVBQXdCLENBQ3hDLFlBQWFLLEVBQU8sSUFBSSxpQkFBaUIsRUFDekMsU0FBVSxXQUFXb0MsQ0FBaUIsSUFBSUQsQ0FBSyxHQUMvQyxPQUFRbkMsRUFBTyxJQUFJLFlBQVksQ0FDakMsQ0FBQyxDQUNILENBQ0YsQ0FFQSxNQUFNLEtBQUtxQyxFQUFZQyxFQUFTLENBSTlCLElBQUloQyxFQUVKLEdBQUcrQixHQUFZLGVBQWdCLENBQzdCLE1BQU0sS0FBSyxZQUFZQSxDQUFVLEVBQ2pDLEtBQU0sQ0FBQyxTQUFVRSxDQUFlLEVBQUlGLEVBQVcsZUFDL0MvQixFQUFXaUMsQ0FDYixNQUNFakMsRUFBVytCLEVBR2IsYUFBTSxLQUFLLE9BQU8saUJBQWlCLENBQUMsYUFBYy9CLEVBQVUsS0FBTSxLQUFLLFVBQVVnQyxDQUFPLENBQUMsQ0FBQyxFQUN2RixRQUFRLEVBQ1IsTUFBTSxNQUFPRSxHQUFjLENBR3ZCQSxFQUFVLGFBQWUsS0FFMUIsTUFBTVgsRUFBYXZCLENBQVEsQ0FFL0IsQ0FBQyxFQUVJLEVBQ1QsQ0FDRiIsCiAgIm5hbWVzIjogWyJBcGlHYXRld2F5TWFuYWdlbWVudEFwaSIsICJjcmVhdGVIYXNoIiwgInBhcnNlSWQiLCAicGFyc2VTdHJpbmciLCAiYXFsIiwgIkNvbmZpZyIsICJ1c2VEYiIsICJnZXRVc2VyQnlUb2tlbiIsICJFcnJvclR5cGVzIiwgImxvZ0Vycm9yIiwgImFkZFNvY2tldCIsICJzb2NrZXRJZCIsICJ0b2tlbiIsICJhY3Rpb24iLCAiZm9ybWF0U29ja2V0SWQiLCAiZm9ybWF0VG9rZW4iLCAiZGF0YWJhc2VOYW1lIiwgImRhdGFiYXNlIiwgInVzZXIiLCAidXBkYXRlIiwgImluc2VydCIsICJhcWxRcnkiLCAiY3Vyc29yIiwgImVycm9yIiwgImdldFNvY2tldEJ5VXNlciIsICJ1c2VySWQiLCAiZm9ybWF0VXNlcklkIiwgImdldFNvY2tldEJ5SWQiLCAiZ2V0Q29ubmVjdGlvbkJ5Q29udm8iLCAiY29udGV4dCIsICJjb252b0lkIiwgInNlc3Npb25JZCIsICJzZXNzaW9uRG9jSWQiLCAiY29udm9Eb2NJZCIsICJyZW1vdmVTb2NrZXQiLCAiV2Vic29ja2V0Q2xpZW50IiwgImNvbmZpZyIsICJyZXF1ZXN0Q29udGV4dCIsICJhcGlJZCIsICJkb21haW5OYW1lIiwgInN0YWdlIiwgInVwZGF0ZWREb21haW5OYW1lIiwgImNvbm5lY3Rpb24iLCAicGF5bG9hZCIsICJ1cGRhdGVkU29ja2V0SWQiLCAicG9zdEVycm9yIl0KfQo=
@@ -1,2 +0,0 @@
1
- import{parseNum as d}from"@nlabs/utils/parsers/numbers";import{parseArangoId as m,parseId as p}from"@nlabs/utils/parsers/strings";import{z as r}from"zod";import{removeEmptyKeys as c}from"../utils/adapterUtils.js";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(),T=t=>{try{return u.parse(t)}catch(o){if(o instanceof r.ZodError){const e=o.issues.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ");throw new i(`Document validation failed: ${e}`)}throw o}},_=t=>t,w=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:m(o)},...e&&{_key:p(e)},...n!==void 0&&{added:d(n,13)},...(o||a)&&{id:m(o||a)},...s!==void 0&&{modified:d(s,13)}})};export{i as ArangoValidationError,_ as formatDocumentOutput,w as parseDocument,T as validateDocumentInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2FyYW5nb0FkYXB0ZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7cGFyc2VOdW19IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL251bWJlcnMnO1xuaW1wb3J0IHtwYXJzZUFyYW5nb0lkLCBwYXJzZUlkfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtEb2N1bWVudFR5cGV9IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiLnR5cGVzLmpzJztcbmltcG9ydCB7cmVtb3ZlRW1wdHlLZXlzfSBmcm9tICcuLi91dGlscy9hZGFwdGVyVXRpbHMuanMnO1xuXG5leHBvcnQgY2xhc3MgQXJhbmdvVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmaWVsZD86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdBcmFuZ29WYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IERvY3VtZW50SW5wdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfa2V5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9vbGRSZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfdG86IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYWRkZWQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbW9kaWZpZWQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKVxufSkucGFzc3Rocm91Z2goKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRG9jdW1lbnRJbnB1dCA9IChkb2M6IHVua25vd24pOiBEb2N1bWVudFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IERvY3VtZW50SW5wdXRTY2hlbWEucGFyc2UoZG9jKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIERvY3VtZW50VHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5pc3N1ZXMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBBcmFuZ29WYWxpZGF0aW9uRXJyb3IoYERvY3VtZW50IHZhbGlkYXRpb24gZmFpbGVkOiAke2ZpZWxkRXJyb3JzfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdERvY3VtZW50T3V0cHV0ID0gKGRvYzogRG9jdW1lbnRUeXBlKTogRG9jdW1lbnRUeXBlID0+IGRvYztcblxuZXhwb3J0IGNvbnN0IHBhcnNlRG9jdW1lbnQgPSAoZG9jOiBEb2N1bWVudFR5cGUpOiBEb2N1bWVudFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBlcmZvcm1Eb2N1bWVudFRyYW5zZm9ybWF0aW9uKGRvYyk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2YgQXJhbmdvVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEFyYW5nb1ZhbGlkYXRpb25FcnJvcihgRG9jdW1lbnQgcGFyc2luZyBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCk7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1Eb2N1bWVudFRyYW5zZm9ybWF0aW9uID0gKGRvYzogRG9jdW1lbnRUeXBlKTogRG9jdW1lbnRUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGFkZGVkLFxuICAgIGlkLFxuICAgIG1vZGlmaWVkXG4gIH0gPSBkb2M7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSByZW1vdmVFbXB0eUtleXMoe1xuICAgIC4uLmRvYyxcbiAgICAuLi4oX2lkICYmIHtfaWQ6IHBhcnNlQXJhbmdvSWQoX2lkKX0pLFxuICAgIC4uLihfa2V5ICYmIHtfa2V5OiBwYXJzZUlkKF9rZXkpfSksXG4gICAgLi4uKGFkZGVkICE9PSB1bmRlZmluZWQgJiYge2FkZGVkOiBwYXJzZU51bShhZGRlZCwgMTMpfSksXG4gICAgLi4uKChfaWQgfHwgaWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQpfSksXG4gICAgLi4uKG1vZGlmaWVkICE9PSB1bmRlZmluZWQgJiYge21vZGlmaWVkOiBwYXJzZU51bShtb2RpZmllZCwgMTMpfSlcbiAgfSk7XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkO1xufTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxPQUFRLFlBQUFBLE1BQWUsK0JBQ3ZCLE9BQVEsaUJBQUFDLEVBQWUsV0FBQUMsTUFBYywrQkFDckMsT0FBUSxLQUFBQyxNQUFRLE1BR2hCLE9BQVEsbUJBQUFDLE1BQXNCLDJCQUV2QixNQUFNQyxVQUE4QixLQUFNLENBQy9DLFlBQVlDLEVBQXdCQyxFQUFnQixDQUNsRCxNQUFNRCxDQUFPLEVBRHFCLFdBQUFDLEVBRWxDLEtBQUssS0FBTyx1QkFDZCxDQUNGLENBRUEsTUFBTUMsRUFBc0JMLEVBQUUsT0FBTyxDQUNuQyxNQUFPQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzNCLElBQUtBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDekIsS0FBTUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMxQixRQUFTQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzdCLEtBQU1BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDMUIsSUFBS0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUN6QixNQUFPQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzNCLEdBQUlBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDeEIsU0FBVUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUNoQyxDQUFDLEVBQUUsWUFBWSxFQUVGTSxFQUF5QkMsR0FBK0IsQ0FDbkUsR0FBSSxDQUVGLE9BRGtCRixFQUFvQixNQUFNRSxDQUFHLENBRWpELE9BQVFDLEVBQU8sQ0FDYixHQUFHQSxhQUFpQlIsRUFBRSxTQUFVLENBQzlCLE1BQU1TLEVBQWNELEVBQU0sT0FBTyxJQUFLRSxHQUFNLEdBQUdBLEVBQUUsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFLQSxFQUFFLE9BQU8sRUFBRSxFQUFFLEtBQUssSUFBSSxFQUMxRixNQUFNLElBQUlSLEVBQXNCLCtCQUErQk8sQ0FBVyxFQUFFLENBQzlFLENBQ0EsTUFBTUQsQ0FDUixDQUNGLEVBRWFHLEVBQXdCSixHQUFvQ0EsRUFFNURLLEVBQWlCTCxHQUFvQyxDQUNoRSxHQUFJLENBRUYsT0FEZU0sRUFBOEJOLENBQUcsQ0FFbEQsT0FBUUMsRUFBTyxDQUNiLE1BQUdBLGFBQWlCTixFQUNaTSxFQUVGLElBQUlOLEVBQXNCLDRCQUE0Qk0sYUFBaUIsTUFBUUEsRUFBTSxRQUFVLGVBQWUsRUFBRSxDQUN4SCxDQUNGLEVBRU1LLEVBQWlDTixHQUFvQyxDQUN6RSxLQUFNLENBQ0osSUFBQU8sRUFDQSxLQUFBQyxFQUNBLE1BQUFDLEVBQ0EsR0FBQUMsRUFDQSxTQUFBQyxDQUNGLEVBQUlYLEVBV0osT0FUb0JOLEVBQWdCLENBQ2xDLEdBQUdNLEVBQ0gsR0FBSU8sR0FBTyxDQUFDLElBQUtoQixFQUFjZ0IsQ0FBRyxDQUFDLEVBQ25DLEdBQUlDLEdBQVEsQ0FBQyxLQUFNaEIsRUFBUWdCLENBQUksQ0FBQyxFQUNoQyxHQUFJQyxJQUFVLFFBQWEsQ0FBQyxNQUFPbkIsRUFBU21CLEVBQU8sRUFBRSxDQUFDLEVBQ3RELElBQUtGLEdBQU9HLElBQU8sQ0FBQyxHQUFJbkIsRUFBY2dCLEdBQU9HLENBQUUsQ0FBQyxFQUNoRCxHQUFJQyxJQUFhLFFBQWEsQ0FBQyxTQUFVckIsRUFBU3FCLEVBQVUsRUFBRSxDQUFDLENBQ2pFLENBQUMsQ0FHSCIsCiAgIm5hbWVzIjogWyJwYXJzZU51bSIsICJwYXJzZUFyYW5nb0lkIiwgInBhcnNlSWQiLCAieiIsICJyZW1vdmVFbXB0eUtleXMiLCAiQXJhbmdvVmFsaWRhdGlvbkVycm9yIiwgIm1lc3NhZ2UiLCAiZmllbGQiLCAiRG9jdW1lbnRJbnB1dFNjaGVtYSIsICJ2YWxpZGF0ZURvY3VtZW50SW5wdXQiLCAiZG9jIiwgImVycm9yIiwgImZpZWxkRXJyb3JzIiwgImUiLCAiZm9ybWF0RG9jdW1lbnRPdXRwdXQiLCAicGFyc2VEb2N1bWVudCIsICJwZXJmb3JtRG9jdW1lbnRUcmFuc2Zvcm1hdGlvbiIsICJfaWQiLCAiX2tleSIsICJhZGRlZCIsICJpZCIsICJtb2RpZmllZCJdCn0K
@@ -1,2 +0,0 @@
1
- import{parseArangoId as C,parseId as d,parseString as r}from"@nlabs/utils/parsers/strings";import{z as t}from"zod";import{removeEmptyKeys as f}from"../utils/adapterUtils.js";import{parseDocument as b}from"./arangoAdapter.js";class l extends Error{constructor(n,s){super(n);this.field=s;this.name="ContentValidationError"}}const I=t.object({contentId:t.string().optional(),key:t.string().min(1,"Key is required").max(200,"Key must be less than 200 characters"),locale:t.enum(["en","es","fr","de","pt","it"],{message:"Locale must be one of: en, es, fr, de, pt, it"}),content:t.string().min(1,"Content is required").max(1e4,"Content must be less than 10000 characters"),description:t.string().max(500,"Description must be less than 500 characters").optional(),category:t.string().max(100,"Category must be less than 100 characters").optional(),isActive:t.boolean().optional(),userId:t.string().optional()}),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"],{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.issues[0]?.path.join("."),s=e.issues[0]?.message||"Validation failed";throw new l(s,n)}throw e}},j=o=>{try{return T.parse(o)}catch(e){if(e instanceof t.ZodError){const n=e.issues[0]?.path.join("."),s=e.issues[0]?.message||"Validation failed";throw new l(s,n)}throw e}},x=o=>{const{_id:e,_key:n,contentId:s,id:a,key:u,locale:y,content:g,description:i,category:c,isActive:p,userId:m}=o,h={...b(o),...(n||s)&&{contentId:d(n||s)},...(e||a||n||s)&&{id:C(e||a||`content/${n||s}`)},key:r(u,200),locale:y,content:r(g,1e4),...i&&{description:r(i,500)},...c&&{category:r(c,100)},...p!==void 0&&{isActive:p},...m&&{userId:d(m)}};return f(h)},q=o=>x(o);export{l as ContentValidationError,K as parseContent,q as parseContentFromDb,j as parseContentInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2NvbnRlbnRBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtwYXJzZUFyYW5nb0lkLCBwYXJzZUlkLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7Q29udGVudElucHV0VHlwZSwgQ29udGVudFR5cGV9IGZyb20gJy4uL3R5cGVzL2NvbnRlbnQudHlwZXMuanMnO1xuaW1wb3J0IHtyZW1vdmVFbXB0eUtleXN9IGZyb20gJy4uL3V0aWxzL2FkYXB0ZXJVdGlscy5qcyc7XG5pbXBvcnQge3BhcnNlRG9jdW1lbnR9IGZyb20gJy4vYXJhbmdvQWRhcHRlci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBDb250ZW50VmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmaWVsZD86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdDb250ZW50VmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBjb250ZW50U2NoZW1hID0gei5vYmplY3Qoe1xuICBjb250ZW50SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAga2V5OiB6LnN0cmluZygpLm1pbigxLCAnS2V5IGlzIHJlcXVpcmVkJykubWF4KDIwMCwgJ0tleSBtdXN0IGJlIGxlc3MgdGhhbiAyMDAgY2hhcmFjdGVycycpLFxuICBsb2NhbGU6IHouZW51bShbJ2VuJywgJ2VzJywgJ2ZyJywgJ2RlJywgJ3B0JywgJ2l0J10sIHtcbiAgICBtZXNzYWdlOiAnTG9jYWxlIG11c3QgYmUgb25lIG9mOiBlbiwgZXMsIGZyLCBkZSwgcHQsIGl0J1xuICB9KSxcbiAgY29udGVudDogei5zdHJpbmcoKS5taW4oMSwgJ0NvbnRlbnQgaXMgcmVxdWlyZWQnKS5tYXgoMTAwMDAsICdDb250ZW50IG11c3QgYmUgbGVzcyB0aGFuIDEwMDAwIGNoYXJhY3RlcnMnKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkubWF4KDUwMCwgJ0Rlc2NyaXB0aW9uIG11c3QgYmUgbGVzcyB0aGFuIDUwMCBjaGFyYWN0ZXJzJykub3B0aW9uYWwoKSxcbiAgY2F0ZWdvcnk6IHouc3RyaW5nKCkubWF4KDEwMCwgJ0NhdGVnb3J5IG11c3QgYmUgbGVzcyB0aGFuIDEwMCBjaGFyYWN0ZXJzJykub3B0aW9uYWwoKSxcbiAgaXNBY3RpdmU6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIHVzZXJJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KTtcblxuY29uc3QgY29udGVudElucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBjb250ZW50SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAga2V5OiB6LnN0cmluZygpLm1pbigxLCAnS2V5IGlzIHJlcXVpcmVkJykubWF4KDIwMCwgJ0tleSBtdXN0IGJlIGxlc3MgdGhhbiAyMDAgY2hhcmFjdGVycycpLFxuICBsb2NhbGU6IHouZW51bShbJ2VuJywgJ2VzJywgJ2ZyJywgJ2RlJywgJ3B0JywgJ2l0J10sIHtcbiAgICBtZXNzYWdlOiAnTG9jYWxlIG11c3QgYmUgb25lIG9mOiBlbiwgZXMsIGZyLCBkZSwgcHQsIGl0J1xuICB9KS5vcHRpb25hbCgpLFxuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLm1heCgxMDAwMCwgJ0NvbnRlbnQgbXVzdCBiZSBsZXNzIHRoYW4gMTAwMDAgY2hhcmFjdGVycycpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5tYXgoNTAwLCAnRGVzY3JpcHRpb24gbXVzdCBiZSBsZXNzIHRoYW4gNTAwIGNoYXJhY3RlcnMnKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5tYXgoMTAwLCAnQ2F0ZWdvcnkgbXVzdCBiZSBsZXNzIHRoYW4gMTAwIGNoYXJhY3RlcnMnKS5vcHRpb25hbCgpLFxuICBpc0FjdGl2ZTogei5ib29sZWFuKCkub3B0aW9uYWwoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnRlbnQgPSAoY29udGVudDogQ29udGVudFR5cGUpOiBDb250ZW50VHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdmFsaWRhdGVkID0gY29udGVudFNjaGVtYS5wYXJzZShjb250ZW50KTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIENvbnRlbnRUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZCA9IGVycm9yLmlzc3Vlc1swXT8ucGF0aC5qb2luKCcuJyk7XG4gICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IuaXNzdWVzWzBdPy5tZXNzYWdlIHx8ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudFZhbGlkYXRpb25FcnJvcihtZXNzYWdlLCBmaWVsZCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VDb250ZW50SW5wdXQgPSAoY29udGVudDogQ29udGVudElucHV0VHlwZSk6IENvbnRlbnRJbnB1dFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IGNvbnRlbnRJbnB1dFNjaGVtYS5wYXJzZShjb250ZW50KTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIENvbnRlbnRJbnB1dFR5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkID0gZXJyb3IuaXNzdWVzWzBdPy5wYXRoLmpvaW4oJy4nKTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5pc3N1ZXNbMF0/Lm1lc3NhZ2UgfHwgJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICAgIHRocm93IG5ldyBDb250ZW50VmFsaWRhdGlvbkVycm9yKG1lc3NhZ2UsIGZpZWxkKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1Db250ZW50VHJhbnNmb3JtYXRpb24gPSAoY29udGVudDogQ29udGVudFR5cGUpOiBDb250ZW50VHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfaWQsXG4gICAgX2tleSxcbiAgICBjb250ZW50SWQsXG4gICAgaWQsXG4gICAga2V5LFxuICAgIGxvY2FsZSxcbiAgICBjb250ZW50OiBjb250ZW50VGV4dCxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBjYXRlZ29yeSxcbiAgICBpc0FjdGl2ZSxcbiAgICB1c2VySWRcbiAgfSA9IGNvbnRlbnQ7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSB7XG4gICAgLi4ucGFyc2VEb2N1bWVudChjb250ZW50KSxcbiAgICAuLi4oKF9rZXkgfHwgY29udGVudElkKSAmJiB7Y29udGVudElkOiBwYXJzZUlkKF9rZXkgfHwgY29udGVudElkKX0pLFxuICAgIC4uLigoX2lkIHx8IGlkIHx8IF9rZXkgfHwgY29udGVudElkKSAmJiB7aWQ6IHBhcnNlQXJhbmdvSWQoX2lkIHx8IGlkIHx8IGBjb250ZW50LyR7X2tleSB8fCBjb250ZW50SWR9YCl9KSxcbiAgICBrZXk6IHBhcnNlU3RyaW5nKGtleSwgMjAwKSxcbiAgICBsb2NhbGUsXG4gICAgY29udGVudDogcGFyc2VTdHJpbmcoY29udGVudFRleHQsIDEwMDAwKSxcbiAgICAuLi4oZGVzY3JpcHRpb24gJiYge2Rlc2NyaXB0aW9uOiBwYXJzZVN0cmluZyhkZXNjcmlwdGlvbiwgNTAwKX0pLFxuICAgIC4uLihjYXRlZ29yeSAmJiB7Y2F0ZWdvcnk6IHBhcnNlU3RyaW5nKGNhdGVnb3J5LCAxMDApfSksXG4gICAgLi4uKGlzQWN0aXZlICE9PSB1bmRlZmluZWQgJiYge2lzQWN0aXZlfSksXG4gICAgLi4uKHVzZXJJZCAmJiB7dXNlcklkOiBwYXJzZUlkKHVzZXJJZCl9KVxuICB9O1xuXG4gIHJldHVybiByZW1vdmVFbXB0eUtleXModHJhbnNmb3JtZWQpIGFzIENvbnRlbnRUeXBlO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29udGVudEZyb21EYiA9IChjb250ZW50OiBDb250ZW50VHlwZSk6IENvbnRlbnRUeXBlID0+IHBlcmZvcm1Db250ZW50VHJhbnNmb3JtYXRpb24oY29udGVudCk7Il0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxpQkFBQUEsRUFBZSxXQUFBQyxFQUFTLGVBQUFDLE1BQWtCLCtCQUNsRCxPQUFRLEtBQUFDLE1BQVEsTUFHaEIsT0FBUSxtQkFBQUMsTUFBc0IsMkJBQzlCLE9BQVEsaUJBQUFDLE1BQW9CLHFCQUVyQixNQUFNQyxVQUErQixLQUFNLENBQ2hELFlBQVlDLEVBQXdCQyxFQUFnQixDQUNsRCxNQUFNRCxDQUFPLEVBRHFCLFdBQUFDLEVBRWxDLEtBQUssS0FBTyx3QkFDZCxDQUNGLENBRUEsTUFBTUMsRUFBZ0JOLEVBQUUsT0FBTyxDQUM3QixVQUFXQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQy9CLElBQUtBLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxpQkFBaUIsRUFBRSxJQUFJLElBQUssc0NBQXNDLEVBQ3pGLE9BQVFBLEVBQUUsS0FBSyxDQUFDLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxJQUFJLEVBQUcsQ0FDbkQsUUFBUywrQ0FDWCxDQUFDLEVBQ0QsUUFBU0EsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLHFCQUFxQixFQUFFLElBQUksSUFBTyw0Q0FBNEMsRUFDekcsWUFBYUEsRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFLLDhDQUE4QyxFQUFFLFNBQVMsRUFDMUYsU0FBVUEsRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFLLDJDQUEyQyxFQUFFLFNBQVMsRUFDcEYsU0FBVUEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUMvQixPQUFRQSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQzlCLENBQUMsRUFFS08sRUFBcUJQLEVBQUUsT0FBTyxDQUNsQyxVQUFXQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQy9CLElBQUtBLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxpQkFBaUIsRUFBRSxJQUFJLElBQUssc0NBQXNDLEVBQ3pGLE9BQVFBLEVBQUUsS0FBSyxDQUFDLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxJQUFJLEVBQUcsQ0FDbkQsUUFBUywrQ0FDWCxDQUFDLEVBQUUsU0FBUyxFQUNaLFFBQVNBLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxxQkFBcUIsRUFBRSxJQUFJLElBQU8sNENBQTRDLEVBQ3pHLFlBQWFBLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSyw4Q0FBOEMsRUFBRSxTQUFTLEVBQzFGLFNBQVVBLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSywyQ0FBMkMsRUFBRSxTQUFTLEVBQ3BGLFNBQVVBLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FDakMsQ0FBQyxFQUVZUSxFQUFnQkMsR0FBc0MsQ0FDakUsR0FBSSxDQUVGLE9BRGtCSCxFQUFjLE1BQU1HLENBQU8sQ0FFL0MsT0FBUUMsRUFBTyxDQUNiLEdBQUdBLGFBQWlCVixFQUFFLFNBQVUsQ0FDOUIsTUFBTUssRUFBUUssRUFBTSxPQUFPLENBQUMsR0FBRyxLQUFLLEtBQUssR0FBRyxFQUN0Q04sRUFBVU0sRUFBTSxPQUFPLENBQUMsR0FBRyxTQUFXLG9CQUM1QyxNQUFNLElBQUlQLEVBQXVCQyxFQUFTQyxDQUFLLENBQ2pELENBQ0EsTUFBTUssQ0FDUixDQUNGLEVBRWFDLEVBQXFCRixHQUFnRCxDQUNoRixHQUFJLENBRUYsT0FEa0JGLEVBQW1CLE1BQU1FLENBQU8sQ0FFcEQsT0FBUUMsRUFBTyxDQUNiLEdBQUdBLGFBQWlCVixFQUFFLFNBQVUsQ0FDOUIsTUFBTUssRUFBUUssRUFBTSxPQUFPLENBQUMsR0FBRyxLQUFLLEtBQUssR0FBRyxFQUN0Q04sRUFBVU0sRUFBTSxPQUFPLENBQUMsR0FBRyxTQUFXLG9CQUM1QyxNQUFNLElBQUlQLEVBQXVCQyxFQUFTQyxDQUFLLENBQ2pELENBQ0EsTUFBTUssQ0FDUixDQUNGLEVBRU1FLEVBQWdDSCxHQUFzQyxDQUMxRSxLQUFNLENBQ0osSUFBQUksRUFDQSxLQUFBQyxFQUNBLFVBQUFDLEVBQ0EsR0FBQUMsRUFDQSxJQUFBQyxFQUNBLE9BQUFDLEVBQ0EsUUFBU0MsRUFDVCxZQUFBQyxFQUNBLFNBQUFDLEVBQ0EsU0FBQUMsRUFDQSxPQUFBQyxDQUNGLEVBQUlkLEVBRUVlLEVBQWMsQ0FDbEIsR0FBR3RCLEVBQWNPLENBQU8sRUFDeEIsSUFBS0ssR0FBUUMsSUFBYyxDQUFDLFVBQVdqQixFQUFRZ0IsR0FBUUMsQ0FBUyxDQUFDLEVBQ2pFLElBQUtGLEdBQU9HLEdBQU1GLEdBQVFDLElBQWMsQ0FBQyxHQUFJbEIsRUFBY2dCLEdBQU9HLEdBQU0sV0FBV0YsR0FBUUMsQ0FBUyxFQUFFLENBQUMsRUFDdkcsSUFBS2hCLEVBQVlrQixFQUFLLEdBQUcsRUFDekIsT0FBQUMsRUFDQSxRQUFTbkIsRUFBWW9CLEVBQWEsR0FBSyxFQUN2QyxHQUFJQyxHQUFlLENBQUMsWUFBYXJCLEVBQVlxQixFQUFhLEdBQUcsQ0FBQyxFQUM5RCxHQUFJQyxHQUFZLENBQUMsU0FBVXRCLEVBQVlzQixFQUFVLEdBQUcsQ0FBQyxFQUNyRCxHQUFJQyxJQUFhLFFBQWEsQ0FBQyxTQUFBQSxDQUFRLEVBQ3ZDLEdBQUlDLEdBQVUsQ0FBQyxPQUFRekIsRUFBUXlCLENBQU0sQ0FBQyxDQUN4QyxFQUVBLE9BQU90QixFQUFnQnVCLENBQVcsQ0FDcEMsRUFFYUMsRUFBc0JoQixHQUFzQ0csRUFBNkJILENBQU8iLAogICJuYW1lcyI6IFsicGFyc2VBcmFuZ29JZCIsICJwYXJzZUlkIiwgInBhcnNlU3RyaW5nIiwgInoiLCAicmVtb3ZlRW1wdHlLZXlzIiwgInBhcnNlRG9jdW1lbnQiLCAiQ29udGVudFZhbGlkYXRpb25FcnJvciIsICJtZXNzYWdlIiwgImZpZWxkIiwgImNvbnRlbnRTY2hlbWEiLCAiY29udGVudElucHV0U2NoZW1hIiwgInBhcnNlQ29udGVudCIsICJjb250ZW50IiwgImVycm9yIiwgInBhcnNlQ29udGVudElucHV0IiwgInBlcmZvcm1Db250ZW50VHJhbnNmb3JtYXRpb24iLCAiX2lkIiwgIl9rZXkiLCAiY29udGVudElkIiwgImlkIiwgImtleSIsICJsb2NhbGUiLCAiY29udGVudFRleHQiLCAiZGVzY3JpcHRpb24iLCAiY2F0ZWdvcnkiLCAiaXNBY3RpdmUiLCAidXNlcklkIiwgInRyYW5zZm9ybWVkIiwgInBhcnNlQ29udGVudEZyb21EYiJdCn0K
@@ -1,2 +0,0 @@
1
- import{parseNum as h}from"@nlabs/utils/parsers/numbers";import{parseArangoId as I,parseId as a,parseString as F,parseUrl as w}from"@nlabs/utils/parsers/strings";import{z as e}from"zod";import{parseDocument as x}from"./arangoAdapter.js";import{parseReaktorContent as _,parseReaktorType as b}from"./reaktorAdapter.js";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(),U=i=>{try{return j.parse(i)}catch(r){if(r instanceof e.ZodError){const t=r.issues.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ");throw new p(`File validation failed: ${t}`)}throw r}},V=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}},C=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:s,description:l,fileId:o,fileSize:d,fileType:T,id:f,itemId:m,itemType:c,name:g,url:u,userId:y}=i;return{...x(i),...n&&{base64:n},...s&&{buffer:s},...l&&{description:_(l)},...(t||o)&&{fileId:a(t||o)},...(r||f||t||o)&&{id:I(r||f||`files/${t||o}`)},...d!==void 0&&{fileSize:h(d)},...T&&{fileType:k(i)},...m&&{itemId:a(m)},...c&&{itemType:b(c)},...g&&{name:F(g,160)},...u&&{url:w(u)},...y&&{userId:a(y)}}};export{p as FileValidationError,V as formatFileOutput,k as getFileType,C as parseFile,U as validateFileInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2ZpbGVBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge3BhcnNlTnVtfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9udW1iZXJzJztcbmltcG9ydCB7cGFyc2VBcmFuZ29JZCwgcGFyc2VJZCwgcGFyc2VTdHJpbmcsIHBhcnNlVXJsfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtGaWxlVHlwZX0gZnJvbSAnLi4vdHlwZXMvZmlsZXMudHlwZXMuanMnO1xuaW1wb3J0IHtwYXJzZURvY3VtZW50fSBmcm9tICcuL2FyYW5nb0FkYXB0ZXIuanMnO1xuaW1wb3J0IHtwYXJzZVJlYWt0b3JDb250ZW50LCBwYXJzZVJlYWt0b3JUeXBlfSBmcm9tICcuL3JlYWt0b3JBZGFwdGVyLmpzJztcblxuZXhwb3J0IGNsYXNzIEZpbGVWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0ZpbGVWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IEZpbGVJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgX2Zyb206IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX29sZFJldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfcmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBiYXNlNjQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYnVmZmVyOiB6LmFueSgpLm9wdGlvbmFsKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGZpbGVJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBmaWxlU2l6ZTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBmaWxlVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpdGVtSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaXRlbVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB1cmw6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdXNlcklkOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pLnBhc3N0aHJvdWdoKCk7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUZpbGVJbnB1dCA9IChmaWxlOiB1bmtub3duKTogRmlsZVR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IEZpbGVJbnB1dFNjaGVtYS5wYXJzZShmaWxlKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIEZpbGVUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZEVycm9ycyA9IGVycm9yLmlzc3Vlcy5tYXAoKGUpID0+IGAke2UucGF0aC5qb2luKCcuJyl9OiAke2UubWVzc2FnZX1gKS5qb2luKCcsICcpO1xuICAgICAgdGhyb3cgbmV3IEZpbGVWYWxpZGF0aW9uRXJyb3IoYEZpbGUgdmFsaWRhdGlvbiBmYWlsZWQ6ICR7ZmllbGRFcnJvcnN9YCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0RmlsZU91dHB1dCA9IChmaWxlOiBGaWxlVHlwZSk6IEZpbGVUeXBlID0+IGZpbGU7XG5cbmV4cG9ydCBjb25zdCBnZXRGaWxlVHlwZSA9IChmaWxlOiBGaWxlVHlwZSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHtmaWxlVHlwZSwgbmFtZX0gPSBmaWxlO1xuXG4gIGlmKGZpbGVUeXBlKSB7XG4gICAgcmV0dXJuIHBhcnNlU3RyaW5nKGZpbGVUeXBlLCAxNik7XG4gIH1cblxuICBjb25zdCBuYW1lQXJyOiBzdHJpbmdbXSA9IG5hbWU/LnNwbGl0KCcuJykgfHwgW107XG4gIGNvbnN0IGV4dDogc3RyaW5nID0gbmFtZUFyci5sZW5ndGggJiYgbmFtZUFycltuYW1lQXJyLmxlbmd0aCAtIDFdIHx8ICcnO1xuXG4gIHN3aXRjaChleHQpIHtcbiAgICBjYXNlICdqcGVnJzpcbiAgICBjYXNlICdqcGcnOlxuICAgICAgcmV0dXJuICdpbWFnZS9qcGVnJztcbiAgICBjYXNlICdwbmcnOlxuICAgICAgcmV0dXJuICdpbWFnZS9wbmcnO1xuICAgIGNhc2UgJ3ppcCc6XG4gICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3ppcCc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUZpbGUgPSAoZmlsZTogRmlsZVR5cGUpOiBGaWxlVHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGVyZm9ybUZpbGVUcmFuc2Zvcm1hdGlvbihmaWxlKTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiBGaWxlVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEZpbGVWYWxpZGF0aW9uRXJyb3IoYEZpbGUgcGFyc2luZyBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCk7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1GaWxlVHJhbnNmb3JtYXRpb24gPSAoZmlsZTogRmlsZVR5cGUpOiBGaWxlVHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfaWQsXG4gICAgX2tleSxcbiAgICBiYXNlNjQsXG4gICAgYnVmZmVyLFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGZpbGVJZCxcbiAgICBmaWxlU2l6ZSxcbiAgICBmaWxlVHlwZSxcbiAgICBpZCxcbiAgICBpdGVtSWQsXG4gICAgaXRlbVR5cGUsXG4gICAgbmFtZSxcbiAgICB1cmwsXG4gICAgdXNlcklkXG4gIH0gPSBmaWxlO1xuXG4gIGNvbnN0IHRyYW5zZm9ybWVkID0ge1xuICAgIC4uLnBhcnNlRG9jdW1lbnQoZmlsZSksXG4gICAgLi4uKGJhc2U2NCAmJiB7YmFzZTY0fSksXG4gICAgLi4uKGJ1ZmZlciAmJiB7YnVmZmVyfSksXG4gICAgLi4uKGRlc2NyaXB0aW9uICYmIHtkZXNjcmlwdGlvbjogcGFyc2VSZWFrdG9yQ29udGVudChkZXNjcmlwdGlvbil9KSxcbiAgICAuLi4oKF9rZXkgfHwgZmlsZUlkKSAmJiB7ZmlsZUlkOiBwYXJzZUlkKF9rZXkgfHwgZmlsZUlkKX0pLFxuICAgIC4uLigoX2lkIHx8IGlkIHx8IF9rZXkgfHwgZmlsZUlkKSAmJiB7aWQ6IHBhcnNlQXJhbmdvSWQoX2lkIHx8IGlkIHx8IGBmaWxlcy8ke19rZXkgfHwgZmlsZUlkfWApfSksXG4gICAgLi4uKGZpbGVTaXplICE9PSB1bmRlZmluZWQgJiYge2ZpbGVTaXplOiBwYXJzZU51bShmaWxlU2l6ZSl9KSxcbiAgICAuLi4oZmlsZVR5cGUgJiYge2ZpbGVUeXBlOiBnZXRGaWxlVHlwZShmaWxlKX0pLFxuICAgIC4uLihpdGVtSWQgJiYge2l0ZW1JZDogcGFyc2VJZChpdGVtSWQpfSksXG4gICAgLi4uKGl0ZW1UeXBlICYmIHtpdGVtVHlwZTogcGFyc2VSZWFrdG9yVHlwZShpdGVtVHlwZSl9KSxcbiAgICAuLi4obmFtZSAmJiB7bmFtZTogcGFyc2VTdHJpbmcobmFtZSwgMTYwKX0pLFxuICAgIC4uLih1cmwgJiYge3VybDogcGFyc2VVcmwodXJsKX0pLFxuICAgIC4uLih1c2VySWQgJiYge3VzZXJJZDogcGFyc2VJZCh1c2VySWQpfSlcbiAgfTtcblxuICByZXR1cm4gdHJhbnNmb3JtZWQ7XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLE9BQVEsWUFBQUEsTUFBZSwrQkFDdkIsT0FBUSxpQkFBQUMsRUFBZSxXQUFBQyxFQUFTLGVBQUFDLEVBQWEsWUFBQUMsTUFBZSwrQkFDNUQsT0FBUSxLQUFBQyxNQUFRLE1BR2hCLE9BQVEsaUJBQUFDLE1BQW9CLHFCQUM1QixPQUFRLHVCQUFBQyxFQUFxQixvQkFBQUMsTUFBdUIsc0JBRTdDLE1BQU1DLFVBQTRCLEtBQU0sQ0FDN0MsWUFBWUMsRUFBd0JDLEVBQWdCLENBQ2xELE1BQU1ELENBQU8sRUFEcUIsV0FBQUMsRUFFbEMsS0FBSyxLQUFPLHFCQUNkLENBQ0YsQ0FFQSxNQUFNQyxFQUFrQlAsRUFBRSxPQUFPLENBQy9CLE1BQU9BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDM0IsSUFBS0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUN6QixLQUFNQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzFCLFFBQVNBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDN0IsS0FBTUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMxQixJQUFLQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQ3pCLE9BQVFBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDNUIsT0FBUUEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUN6QixZQUFhQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQ2pDLE9BQVFBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDNUIsU0FBVUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUM5QixTQUFVQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzlCLE9BQVFBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDNUIsU0FBVUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUM5QixLQUFNQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzFCLElBQUtBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDekIsT0FBUUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUM5QixDQUFDLEVBQUUsWUFBWSxFQUVGUSxFQUFxQkMsR0FBNEIsQ0FDNUQsR0FBSSxDQUVGLE9BRGtCRixFQUFnQixNQUFNRSxDQUFJLENBRTlDLE9BQVFDLEVBQU8sQ0FDYixHQUFHQSxhQUFpQlYsRUFBRSxTQUFVLENBQzlCLE1BQU1XLEVBQWNELEVBQU0sT0FBTyxJQUFLRSxHQUFNLEdBQUdBLEVBQUUsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFLQSxFQUFFLE9BQU8sRUFBRSxFQUFFLEtBQUssSUFBSSxFQUMxRixNQUFNLElBQUlSLEVBQW9CLDJCQUEyQk8sQ0FBVyxFQUFFLENBQ3hFLENBQ0EsTUFBTUQsQ0FDUixDQUNGLEVBRWFHLEVBQW9CSixHQUE2QkEsRUFFakRLLEVBQWVMLEdBQXVDLENBQ2pFLEtBQU0sQ0FBQyxTQUFBTSxFQUFVLEtBQUFDLENBQUksRUFBSVAsRUFFekIsR0FBR00sRUFDRCxPQUFPakIsRUFBWWlCLEVBQVUsRUFBRSxFQUdqQyxNQUFNRSxFQUFvQkQsR0FBTSxNQUFNLEdBQUcsR0FBSyxDQUFDLEVBRy9DLE9BRm9CQyxFQUFRLFFBQVVBLEVBQVFBLEVBQVEsT0FBUyxDQUFDLEdBQUssR0FFekQsQ0FDVixJQUFLLE9BQ0wsSUFBSyxNQUNILE1BQU8sYUFDVCxJQUFLLE1BQ0gsTUFBTyxZQUNULElBQUssTUFDSCxNQUFPLGtCQUNULFFBQ0UsTUFDSixDQUNGLEVBRWFDLEVBQWFULEdBQTZCLENBQ3JELEdBQUksQ0FFRixPQURlVSxFQUEwQlYsQ0FBSSxDQUUvQyxPQUFRQyxFQUFPLENBQ2IsTUFBR0EsYUFBaUJOLEVBQ1pNLEVBRUYsSUFBSU4sRUFBb0Isd0JBQXdCTSxhQUFpQixNQUFRQSxFQUFNLFFBQVUsZUFBZSxFQUFFLENBQ2xILENBQ0YsRUFFTVMsRUFBNkJWLEdBQTZCLENBQzlELEtBQU0sQ0FDSixJQUFBVyxFQUNBLEtBQUFDLEVBQ0EsT0FBQUMsRUFDQSxPQUFBQyxFQUNBLFlBQUFDLEVBQ0EsT0FBQUMsRUFDQSxTQUFBQyxFQUNBLFNBQUFYLEVBQ0EsR0FBQVksRUFDQSxPQUFBQyxFQUNBLFNBQUFDLEVBQ0EsS0FBQWIsRUFDQSxJQUFBYyxFQUNBLE9BQUFDLENBQ0YsRUFBSXRCLEVBa0JKLE1BaEJvQixDQUNsQixHQUFHUixFQUFjUSxDQUFJLEVBQ3JCLEdBQUlhLEdBQVUsQ0FBQyxPQUFBQSxDQUFNLEVBQ3JCLEdBQUlDLEdBQVUsQ0FBQyxPQUFBQSxDQUFNLEVBQ3JCLEdBQUlDLEdBQWUsQ0FBQyxZQUFhdEIsRUFBb0JzQixDQUFXLENBQUMsRUFDakUsSUFBS0gsR0FBUUksSUFBVyxDQUFDLE9BQVE1QixFQUFRd0IsR0FBUUksQ0FBTSxDQUFDLEVBQ3hELElBQUtMLEdBQU9PLEdBQU1OLEdBQVFJLElBQVcsQ0FBQyxHQUFJN0IsRUFBY3dCLEdBQU9PLEdBQU0sU0FBU04sR0FBUUksQ0FBTSxFQUFFLENBQUMsRUFDL0YsR0FBSUMsSUFBYSxRQUFhLENBQUMsU0FBVS9CLEVBQVMrQixDQUFRLENBQUMsRUFDM0QsR0FBSVgsR0FBWSxDQUFDLFNBQVVELEVBQVlMLENBQUksQ0FBQyxFQUM1QyxHQUFJbUIsR0FBVSxDQUFDLE9BQVEvQixFQUFRK0IsQ0FBTSxDQUFDLEVBQ3RDLEdBQUlDLEdBQVksQ0FBQyxTQUFVMUIsRUFBaUIwQixDQUFRLENBQUMsRUFDckQsR0FBSWIsR0FBUSxDQUFDLEtBQU1sQixFQUFZa0IsRUFBTSxHQUFHLENBQUMsRUFDekMsR0FBSWMsR0FBTyxDQUFDLElBQUsvQixFQUFTK0IsQ0FBRyxDQUFDLEVBQzlCLEdBQUlDLEdBQVUsQ0FBQyxPQUFRbEMsRUFBUWtDLENBQU0sQ0FBQyxDQUN4QyxDQUdGIiwKICAibmFtZXMiOiBbInBhcnNlTnVtIiwgInBhcnNlQXJhbmdvSWQiLCAicGFyc2VJZCIsICJwYXJzZVN0cmluZyIsICJwYXJzZVVybCIsICJ6IiwgInBhcnNlRG9jdW1lbnQiLCAicGFyc2VSZWFrdG9yQ29udGVudCIsICJwYXJzZVJlYWt0b3JUeXBlIiwgIkZpbGVWYWxpZGF0aW9uRXJyb3IiLCAibWVzc2FnZSIsICJmaWVsZCIsICJGaWxlSW5wdXRTY2hlbWEiLCAidmFsaWRhdGVGaWxlSW5wdXQiLCAiZmlsZSIsICJlcnJvciIsICJmaWVsZEVycm9ycyIsICJlIiwgImZvcm1hdEZpbGVPdXRwdXQiLCAiZ2V0RmlsZVR5cGUiLCAiZmlsZVR5cGUiLCAibmFtZSIsICJuYW1lQXJyIiwgInBhcnNlRmlsZSIsICJwZXJmb3JtRmlsZVRyYW5zZm9ybWF0aW9uIiwgIl9pZCIsICJfa2V5IiwgImJhc2U2NCIsICJidWZmZXIiLCAiZGVzY3JpcHRpb24iLCAiZmlsZUlkIiwgImZpbGVTaXplIiwgImlkIiwgIml0ZW1JZCIsICJpdGVtVHlwZSIsICJ1cmwiLCAidXNlcklkIl0KfQo=
@@ -1,2 +0,0 @@
1
- import{z as e}from"zod";import{removeEmptyKeys as _}from"../utils/adapterUtils.js";import{parseDocument as v}from"./arangoAdapter.js";import{parseNum as i}from"@nlabs/utils/parsers/numbers";import{parseArangoId as b,parseString as a,parseUrl as E}from"@nlabs/utils/parsers/strings";class s 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(),A=o=>{try{return x.parse(o)}catch(t){if(t instanceof e.ZodError){const r=t.issues.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ");throw new s(`Image validation failed: ${r}`)}throw t}},D=o=>o,K=o=>{try{return $(o)}catch(t){throw t instanceof s?t:new s(`Image parsing failed: ${t instanceof Error?t.message:"Unknown error"}`)}},$=o=>{const{_id:t,_key:r,bucket:n,color:p,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 _({...v(o),...r&&{imageId:b(r)},...n&&{bucket:n},...p&&{color:p},...(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:E(T)},...k!==void 0&&{width:i(k)},...w&&{name:a(w,160)}})};export{s as ImageValidationError,D as formatImageOutput,K as parseImage,A as validateImageInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2ltYWdlQWRhcHRlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuXG5pbXBvcnQge3JlbW92ZUVtcHR5S2V5c30gZnJvbSAnLi4vdXRpbHMvYWRhcHRlclV0aWxzLmpzJztcbmltcG9ydCB7cGFyc2VEb2N1bWVudH0gZnJvbSAnLi9hcmFuZ29BZGFwdGVyLmpzJztcblxuaW1wb3J0IHtwYXJzZU51bX0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvbnVtYmVycyc7XG5pbXBvcnQge3BhcnNlQXJhbmdvSWQsIHBhcnNlU3RyaW5nLCBwYXJzZVVybH0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQgdHlwZSB7SW1hZ2VUeXBlfSBmcm9tICcuLi90eXBlcy9pbWFnZXMudHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgSW1hZ2VWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0ltYWdlVmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBJbWFnZUlucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBidWNrZXQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgY29sb3I6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaW1hZ2VJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBoZWlnaHQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgbW9kZWw6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbWFrZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBzM09wdGlvbnM6IHouYW55KCkub3B0aW9uYWwoKSxcbiAgdGFrZW46IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgdGh1bWI6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZmlsZVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB1cmw6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgd2lkdGg6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2tleTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfcmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9vbGRSZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2Zyb206IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3RvOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pLnBhc3N0aHJvdWdoKCk7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUltYWdlSW5wdXQgPSAoaW1hZ2U6IHVua25vd24pOiBJbWFnZVR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IEltYWdlSW5wdXRTY2hlbWEucGFyc2UoaW1hZ2UpO1xuICAgIHJldHVybiB2YWxpZGF0ZWQgYXMgSW1hZ2VUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZEVycm9ycyA9IGVycm9yLmlzc3Vlcy5tYXAoKGUpID0+IGAke2UucGF0aC5qb2luKCcuJyl9OiAke2UubWVzc2FnZX1gKS5qb2luKCcsICcpO1xuICAgICAgdGhyb3cgbmV3IEltYWdlVmFsaWRhdGlvbkVycm9yKGBJbWFnZSB2YWxpZGF0aW9uIGZhaWxlZDogJHtmaWVsZEVycm9yc31gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRJbWFnZU91dHB1dCA9IChpbWFnZTogSW1hZ2VUeXBlKTogSW1hZ2VUeXBlID0+IGltYWdlO1xuXG5leHBvcnQgY29uc3QgcGFyc2VJbWFnZSA9IChpbWFnZTogSW1hZ2VUeXBlKTogSW1hZ2VUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwZXJmb3JtSW1hZ2VUcmFuc2Zvcm1hdGlvbihpbWFnZSk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2YgSW1hZ2VWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW1hZ2VWYWxpZGF0aW9uRXJyb3IoYEltYWdlIHBhcnNpbmcgZmFpbGVkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfWApO1xuICB9XG59O1xuXG5jb25zdCBwZXJmb3JtSW1hZ2VUcmFuc2Zvcm1hdGlvbiA9IChpbWFnZTogSW1hZ2VUeXBlKTogSW1hZ2VUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGJ1Y2tldCxcbiAgICBjb2xvcixcbiAgICBpZCxcbiAgICBpbWFnZUlkLFxuICAgIGhlaWdodCxcbiAgICBtb2RlbCxcbiAgICBtYWtlLFxuICAgIHMzT3B0aW9ucyxcbiAgICB0YWtlbixcbiAgICB0aHVtYixcbiAgICBmaWxlVHlwZSxcbiAgICB0eXBlLFxuICAgIHVybCxcbiAgICB3aWR0aCxcbiAgICBuYW1lXG4gIH0gPSBpbWFnZTtcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHJlbW92ZUVtcHR5S2V5cyh7XG4gICAgLi4ucGFyc2VEb2N1bWVudChpbWFnZSksXG4gICAgLi4uKF9rZXkgJiYge2ltYWdlSWQ6IHBhcnNlQXJhbmdvSWQoX2tleSl9KSxcbiAgICAuLi4oYnVja2V0ICYmIHtidWNrZXR9KSxcbiAgICAuLi4oY29sb3IgJiYge2NvbG9yfSksXG4gICAgLi4uKChfaWQgfHwgaWQgfHwgX2tleSB8fCBpbWFnZUlkKSAmJiB7aW1hZ2VJZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgYGltYWdlcy8ke19rZXkgfHwgaW1hZ2VJZH1gKX0pLFxuICAgIC4uLihoZWlnaHQgIT09IHVuZGVmaW5lZCAmJiB7aGVpZ2h0OiBwYXJzZU51bShoZWlnaHQpfSksXG4gICAgLi4uKG1vZGVsICYmIHttb2RlbDogcGFyc2VTdHJpbmcobW9kZWwsIDE2MCl9KSxcbiAgICAuLi4obWFrZSAmJiB7bWFrZTogcGFyc2VTdHJpbmcobWFrZSwgMTYwKX0pLFxuICAgIC4uLihzM09wdGlvbnMgJiYge3MzT3B0aW9uc30pLFxuICAgIC4uLih0YWtlbiAhPT0gdW5kZWZpbmVkICYmIHt0YWtlbjogcGFyc2VOdW0odGFrZW4pfSksXG4gICAgLi4uKHRodW1iICYmIHt0aHVtYn0pLFxuICAgIC4uLihmaWxlVHlwZSAmJiB7ZmlsZVR5cGU6IHBhcnNlU3RyaW5nKGZpbGVUeXBlLCAxNil9KSxcbiAgICAuLi4odHlwZSAmJiB7dHlwZTogcGFyc2VTdHJpbmcodHlwZSwgMTYpfSksXG4gICAgLi4uKHVybCAmJiB7dXJsOiBwYXJzZVVybCh1cmwpfSksXG4gICAgLi4uKHdpZHRoICE9PSB1bmRlZmluZWQgJiYge3dpZHRoOiBwYXJzZU51bSh3aWR0aCl9KSxcbiAgICAuLi4obmFtZSAmJiB7bmFtZTogcGFyc2VTdHJpbmcobmFtZSwgMTYwKX0pXG4gIH0pO1xuXG4gIHJldHVybiB0cmFuc2Zvcm1lZDtcbn07XG5cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBLE9BQVEsS0FBQUEsTUFBUSxNQUVoQixPQUFRLG1CQUFBQyxNQUFzQiwyQkFDOUIsT0FBUSxpQkFBQUMsTUFBb0IscUJBRTVCLE9BQVEsWUFBQUMsTUFBZSwrQkFDdkIsT0FBUSxpQkFBQUMsRUFBZSxlQUFBQyxFQUFhLFlBQUFDLE1BQWUsK0JBRzVDLE1BQU1DLFVBQTZCLEtBQU0sQ0FDOUMsWUFBWUMsRUFBd0JDLEVBQWdCLENBQ2xELE1BQU1ELENBQU8sRUFEcUIsV0FBQUMsRUFFbEMsS0FBSyxLQUFPLHNCQUNkLENBQ0YsQ0FFQSxNQUFNQyxFQUFtQlYsRUFBRSxPQUFPLENBQ2hDLE9BQVFBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDNUIsTUFBT0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMzQixRQUFTQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzdCLE9BQVFBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDNUIsTUFBT0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMzQixLQUFNQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzFCLFVBQVdBLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFDNUIsTUFBT0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMzQixNQUFPQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzNCLFNBQVVBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDOUIsS0FBTUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMxQixJQUFLQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQ3pCLE1BQU9BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDM0IsS0FBTUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMxQixJQUFLQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQ3pCLEtBQU1BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDMUIsS0FBTUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMxQixRQUFTQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzdCLE1BQU9BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDM0IsSUFBS0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUMzQixDQUFDLEVBQUUsWUFBWSxFQUVGVyxFQUFzQkMsR0FBOEIsQ0FDL0QsR0FBSSxDQUVGLE9BRGtCRixFQUFpQixNQUFNRSxDQUFLLENBRWhELE9BQVFDLEVBQU8sQ0FDYixHQUFHQSxhQUFpQmIsRUFBRSxTQUFVLENBQzlCLE1BQU1jLEVBQWNELEVBQU0sT0FBTyxJQUFLRSxHQUFNLEdBQUdBLEVBQUUsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFLQSxFQUFFLE9BQU8sRUFBRSxFQUFFLEtBQUssSUFBSSxFQUMxRixNQUFNLElBQUlSLEVBQXFCLDRCQUE0Qk8sQ0FBVyxFQUFFLENBQzFFLENBQ0EsTUFBTUQsQ0FDUixDQUNGLEVBRWFHLEVBQXFCSixHQUFnQ0EsRUFFckRLLEVBQWNMLEdBQWdDLENBQ3pELEdBQUksQ0FFRixPQURlTSxFQUEyQk4sQ0FBSyxDQUVqRCxPQUFRQyxFQUFPLENBQ2IsTUFBR0EsYUFBaUJOLEVBQ1pNLEVBRUYsSUFBSU4sRUFBcUIseUJBQXlCTSxhQUFpQixNQUFRQSxFQUFNLFFBQVUsZUFBZSxFQUFFLENBQ3BILENBQ0YsRUFFTUssRUFBOEJOLEdBQWdDLENBQ2xFLEtBQU0sQ0FDSixJQUFBTyxFQUNBLEtBQUFDLEVBQ0EsT0FBQUMsRUFDQSxNQUFBQyxFQUNBLEdBQUFDLEVBQ0EsUUFBQUMsRUFDQSxPQUFBQyxFQUNBLE1BQUFDLEVBQ0EsS0FBQUMsRUFDQSxVQUFBQyxFQUNBLE1BQUFDLEVBQ0EsTUFBQUMsRUFDQSxTQUFBQyxFQUNBLEtBQUFDLEVBQ0EsSUFBQUMsRUFDQSxNQUFBQyxFQUNBLEtBQUFDLENBQ0YsRUFBSXZCLEVBcUJKLE9BbkJvQlgsRUFBZ0IsQ0FDbEMsR0FBR0MsRUFBY1UsQ0FBSyxFQUN0QixHQUFJUSxHQUFRLENBQUMsUUFBU2hCLEVBQWNnQixDQUFJLENBQUMsRUFDekMsR0FBSUMsR0FBVSxDQUFDLE9BQUFBLENBQU0sRUFDckIsR0FBSUMsR0FBUyxDQUFDLE1BQUFBLENBQUssRUFDbkIsSUFBS0gsR0FBT0ksR0FBTUgsR0FBUUksSUFBWSxDQUFDLFFBQVNwQixFQUFjZSxHQUFPSSxHQUFNLFVBQVVILEdBQVFJLENBQU8sRUFBRSxDQUFDLEVBQ3ZHLEdBQUlDLElBQVcsUUFBYSxDQUFDLE9BQVF0QixFQUFTc0IsQ0FBTSxDQUFDLEVBQ3JELEdBQUlDLEdBQVMsQ0FBQyxNQUFPckIsRUFBWXFCLEVBQU8sR0FBRyxDQUFDLEVBQzVDLEdBQUlDLEdBQVEsQ0FBQyxLQUFNdEIsRUFBWXNCLEVBQU0sR0FBRyxDQUFDLEVBQ3pDLEdBQUlDLEdBQWEsQ0FBQyxVQUFBQSxDQUFTLEVBQzNCLEdBQUlDLElBQVUsUUFBYSxDQUFDLE1BQU8xQixFQUFTMEIsQ0FBSyxDQUFDLEVBQ2xELEdBQUlDLEdBQVMsQ0FBQyxNQUFBQSxDQUFLLEVBQ25CLEdBQUlDLEdBQVksQ0FBQyxTQUFVMUIsRUFBWTBCLEVBQVUsRUFBRSxDQUFDLEVBQ3BELEdBQUlDLEdBQVEsQ0FBQyxLQUFNM0IsRUFBWTJCLEVBQU0sRUFBRSxDQUFDLEVBQ3hDLEdBQUlDLEdBQU8sQ0FBQyxJQUFLM0IsRUFBUzJCLENBQUcsQ0FBQyxFQUM5QixHQUFJQyxJQUFVLFFBQWEsQ0FBQyxNQUFPL0IsRUFBUytCLENBQUssQ0FBQyxFQUNsRCxHQUFJQyxHQUFRLENBQUMsS0FBTTlCLEVBQVk4QixFQUFNLEdBQUcsQ0FBQyxDQUMzQyxDQUFDLENBR0giLAogICJuYW1lcyI6IFsieiIsICJyZW1vdmVFbXB0eUtleXMiLCAicGFyc2VEb2N1bWVudCIsICJwYXJzZU51bSIsICJwYXJzZUFyYW5nb0lkIiwgInBhcnNlU3RyaW5nIiwgInBhcnNlVXJsIiwgIkltYWdlVmFsaWRhdGlvbkVycm9yIiwgIm1lc3NhZ2UiLCAiZmllbGQiLCAiSW1hZ2VJbnB1dFNjaGVtYSIsICJ2YWxpZGF0ZUltYWdlSW5wdXQiLCAiaW1hZ2UiLCAiZXJyb3IiLCAiZmllbGRFcnJvcnMiLCAiZSIsICJmb3JtYXRJbWFnZU91dHB1dCIsICJwYXJzZUltYWdlIiwgInBlcmZvcm1JbWFnZVRyYW5zZm9ybWF0aW9uIiwgIl9pZCIsICJfa2V5IiwgImJ1Y2tldCIsICJjb2xvciIsICJpZCIsICJpbWFnZUlkIiwgImhlaWdodCIsICJtb2RlbCIsICJtYWtlIiwgInMzT3B0aW9ucyIsICJ0YWtlbiIsICJ0aHVtYiIsICJmaWxlVHlwZSIsICJ0eXBlIiwgInVybCIsICJ3aWR0aCIsICJuYW1lIl0KfQo=
@@ -1,2 +0,0 @@
1
- export*from"./arangoAdapter.js";export*from"./contentAdapter.js";export*from"./fileAdapter.js";export*from"./imageAdapter.js";export*from"./messageAdapter.js";export*from"./postAdapter.js";export*from"./reaktorAdapter.js";export*from"./tagAdapter.js";export*from"./userAdapter.js";
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJleHBvcnQgKiBmcm9tICcuL2FyYW5nb0FkYXB0ZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50QWRhcHRlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGVBZGFwdGVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2VBZGFwdGVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZUFkYXB0ZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3N0QWRhcHRlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3JlYWt0b3JBZGFwdGVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdGFnQWRhcHRlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXJBZGFwdGVyLmpzJztcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFdBQWMscUJBQ2QsV0FBYyxzQkFDZCxXQUFjLG1CQUNkLFdBQWMsb0JBQ2QsV0FBYyxzQkFDZCxXQUFjLG1CQUNkLFdBQWMsc0JBQ2QsV0FBYyxrQkFDZCxXQUFjIiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,2 +0,0 @@
1
- import{parseArangoId as d,parseId as l}from"@nlabs/utils/parsers/strings";import{z as e}from"zod";import{removeEmptyKeys as c}from"../utils/adapterUtils.js";import{parseDocument as y}from"./arangoAdapter.js";import{parseFile as f}from"./fileAdapter.js";import{parseImage as M}from"./imageAdapter.js";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.issues.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 c({...y(r),...a&&{content:a},...Array.isArray(n)&&{files:n.map(f)},...Array.isArray(p)&&{images:p.map(M)},...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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL21lc3NhZ2VBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge3BhcnNlQXJhbmdvSWQsIHBhcnNlSWR9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuXG5pbXBvcnQge3JlbW92ZUVtcHR5S2V5c30gZnJvbSAnLi4vdXRpbHMvYWRhcHRlclV0aWxzLmpzJztcbmltcG9ydCB7cGFyc2VEb2N1bWVudH0gZnJvbSAnLi9hcmFuZ29BZGFwdGVyLmpzJztcbmltcG9ydCB7cGFyc2VGaWxlfSBmcm9tICcuL2ZpbGVBZGFwdGVyLmpzJztcbmltcG9ydCB7cGFyc2VJbWFnZX0gZnJvbSAnLi9pbWFnZUFkYXB0ZXIuanMnO1xuXG5pbXBvcnQgdHlwZSB7TWVzc2FnZVR5cGV9IGZyb20gJy4uL3R5cGVzL21lc3NhZ2VzLnR5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ01lc3NhZ2VWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IE1lc3NhZ2VJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY29udGVudDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBjb252ZXJzYXRpb25JZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBmaWxlczogei5hcnJheSh6LmFueSgpKS5vcHRpb25hbCgpLFxuICBpbWFnZXM6IHouYXJyYXkoei5hbnkoKSkub3B0aW9uYWwoKSxcbiAgaXRlbUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGl0ZW1UeXBlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIG1lc3NhZ2VJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICByZWFkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBzYXZlZDogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgdXNlcklkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfa2V5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9yZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX29sZFJldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfZnJvbTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfdG86IHouc3RyaW5nKCkub3B0aW9uYWwoKVxufSkucGFzc3Rocm91Z2goKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTWVzc2FnZUlucHV0ID0gKG1lc3NhZ2U6IHVua25vd24pOiBNZXNzYWdlVHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdmFsaWRhdGVkID0gTWVzc2FnZUlucHV0U2NoZW1hLnBhcnNlKG1lc3NhZ2UpO1xuICAgIHJldHVybiB2YWxpZGF0ZWQgYXMgTWVzc2FnZVR5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0gZXJyb3IuaXNzdWVzLm1hcCgoZSkgPT4gYCR7ZS5wYXRoLmpvaW4oJy4nKX06ICR7ZS5tZXNzYWdlfWApLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgTWVzc2FnZVZhbGlkYXRpb25FcnJvcihgTWVzc2FnZSB2YWxpZGF0aW9uIGZhaWxlZDogJHtmaWVsZEVycm9yc31gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRNZXNzYWdlT3V0cHV0ID0gKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlKTogTWVzc2FnZVR5cGUgPT4gbWVzc2FnZTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlTWVzc2FnZSA9IChtZXNzYWdlOiBNZXNzYWdlVHlwZSk6IE1lc3NhZ2VUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwZXJmb3JtTWVzc2FnZVRyYW5zZm9ybWF0aW9uKG1lc3NhZ2UpO1xuICAgIHJldHVybiBwYXJzZWQ7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIE1lc3NhZ2VWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgTWVzc2FnZVZhbGlkYXRpb25FcnJvcihgTWVzc2FnZSBwYXJzaW5nIGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gKTtcbiAgfVxufTtcblxuY29uc3QgcGVyZm9ybU1lc3NhZ2VUcmFuc2Zvcm1hdGlvbiA9IChtZXNzYWdlOiBNZXNzYWdlVHlwZSk6IE1lc3NhZ2VUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGNvbnRlbnQsXG4gICAgZmlsZXMsXG4gICAgaWQsXG4gICAgaW1hZ2VzLFxuICAgIG1lc3NhZ2VJZCxcbiAgICBzYXZlZFxuICB9ID0gbWVzc2FnZTtcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHJlbW92ZUVtcHR5S2V5cyh7XG4gICAgLi4ucGFyc2VEb2N1bWVudChtZXNzYWdlKSxcbiAgICAuLi4oY29udGVudCAmJiB7Y29udGVudH0pLFxuICAgIC4uLihBcnJheS5pc0FycmF5KGZpbGVzKSAmJiB7ZmlsZXM6IGZpbGVzLm1hcChwYXJzZUZpbGUpfSksXG4gICAgLi4uKEFycmF5LmlzQXJyYXkoaW1hZ2VzKSAmJiB7aW1hZ2VzOiBpbWFnZXMubWFwKHBhcnNlSW1hZ2UpfSksXG4gICAgLi4uKF9rZXkgJiYge21lc3NhZ2VJZDogcGFyc2VJZChfa2V5KX0pLFxuICAgIC4uLigoX2lkIHx8IGlkIHx8IF9rZXkgfHwgbWVzc2FnZUlkKSAmJiB7bWVzc2FnZUlkOiBwYXJzZUFyYW5nb0lkKF9pZCB8fCBpZCB8fCBgbWVzc2FnZXMvJHtfa2V5IHx8IG1lc3NhZ2VJZH1gKX0pLFxuICAgIC4uLihzYXZlZCAhPT0gdW5kZWZpbmVkICYmIHtzYXZlZDogISFzYXZlZH0pXG4gIH0pO1xuXG4gIHJldHVybiB0cmFuc2Zvcm1lZDtcbn07XG5cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBLE9BQVEsaUJBQUFBLEVBQWUsV0FBQUMsTUFBYywrQkFDckMsT0FBUSxLQUFBQyxNQUFRLE1BRWhCLE9BQVEsbUJBQUFDLE1BQXNCLDJCQUM5QixPQUFRLGlCQUFBQyxNQUFvQixxQkFDNUIsT0FBUSxhQUFBQyxNQUFnQixtQkFDeEIsT0FBUSxjQUFBQyxNQUFpQixvQkFJbEIsTUFBTUMsVUFBK0IsS0FBTSxDQUNoRCxZQUFZQyxFQUF3QkMsRUFBZ0IsQ0FDbEQsTUFBTUQsQ0FBTyxFQURxQixXQUFBQyxFQUVsQyxLQUFLLEtBQU8sd0JBQ2QsQ0FDRixDQUVBLE1BQU1DLEVBQXFCUixFQUFFLE9BQU8sQ0FDbEMsUUFBU0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUM3QixlQUFnQkEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUNwQyxNQUFPQSxFQUFFLE1BQU1BLEVBQUUsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUNqQyxPQUFRQSxFQUFFLE1BQU1BLEVBQUUsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUNsQyxPQUFRQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzVCLFNBQVVBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDOUIsVUFBV0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMvQixLQUFNQSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQzNCLE1BQU9BLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFDNUIsT0FBUUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUM1QixJQUFLQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQ3pCLEtBQU1BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDMUIsS0FBTUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMxQixRQUFTQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzdCLE1BQU9BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDM0IsSUFBS0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUMzQixDQUFDLEVBQUUsWUFBWSxFQUVGUyxFQUF3QkgsR0FBa0MsQ0FDckUsR0FBSSxDQUVGLE9BRGtCRSxFQUFtQixNQUFNRixDQUFPLENBRXBELE9BQVFJLEVBQU8sQ0FDYixHQUFHQSxhQUFpQlYsRUFBRSxTQUFVLENBQzlCLE1BQU1XLEVBQWNELEVBQU0sT0FBTyxJQUFLRSxHQUFNLEdBQUdBLEVBQUUsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFLQSxFQUFFLE9BQU8sRUFBRSxFQUFFLEtBQUssSUFBSSxFQUMxRixNQUFNLElBQUlQLEVBQXVCLDhCQUE4Qk0sQ0FBVyxFQUFFLENBQzlFLENBQ0EsTUFBTUQsQ0FDUixDQUNGLEVBRWFHLEVBQXVCUCxHQUFzQ0EsRUFFN0RRLEVBQWdCUixHQUFzQyxDQUNqRSxHQUFJLENBRUYsT0FEZVMsRUFBNkJULENBQU8sQ0FFckQsT0FBUUksRUFBTyxDQUNiLE1BQUdBLGFBQWlCTCxFQUNaSyxFQUVGLElBQUlMLEVBQXVCLDJCQUEyQkssYUFBaUIsTUFBUUEsRUFBTSxRQUFVLGVBQWUsRUFBRSxDQUN4SCxDQUNGLEVBRU1LLEVBQWdDVCxHQUFzQyxDQUMxRSxLQUFNLENBQ0osSUFBQVUsRUFDQSxLQUFBQyxFQUNBLFFBQUFDLEVBQ0EsTUFBQUMsRUFDQSxHQUFBQyxFQUNBLE9BQUFDLEVBQ0EsVUFBQUMsRUFDQSxNQUFBQyxDQUNGLEVBQUlqQixFQVlKLE9BVm9CTCxFQUFnQixDQUNsQyxHQUFHQyxFQUFjSSxDQUFPLEVBQ3hCLEdBQUlZLEdBQVcsQ0FBQyxRQUFBQSxDQUFPLEVBQ3ZCLEdBQUksTUFBTSxRQUFRQyxDQUFLLEdBQUssQ0FBQyxNQUFPQSxFQUFNLElBQUloQixDQUFTLENBQUMsRUFDeEQsR0FBSSxNQUFNLFFBQVFrQixDQUFNLEdBQUssQ0FBQyxPQUFRQSxFQUFPLElBQUlqQixDQUFVLENBQUMsRUFDNUQsR0FBSWEsR0FBUSxDQUFDLFVBQVdsQixFQUFRa0IsQ0FBSSxDQUFDLEVBQ3JDLElBQUtELEdBQU9JLEdBQU1ILEdBQVFLLElBQWMsQ0FBQyxVQUFXeEIsRUFBY2tCLEdBQU9JLEdBQU0sWUFBWUgsR0FBUUssQ0FBUyxFQUFFLENBQUMsRUFDL0csR0FBSUMsSUFBVSxRQUFhLENBQUMsTUFBTyxDQUFDLENBQUNBLENBQUssQ0FDNUMsQ0FBQyxDQUdIIiwKICAibmFtZXMiOiBbInBhcnNlQXJhbmdvSWQiLCAicGFyc2VJZCIsICJ6IiwgInJlbW92ZUVtcHR5S2V5cyIsICJwYXJzZURvY3VtZW50IiwgInBhcnNlRmlsZSIsICJwYXJzZUltYWdlIiwgIk1lc3NhZ2VWYWxpZGF0aW9uRXJyb3IiLCAibWVzc2FnZSIsICJmaWVsZCIsICJNZXNzYWdlSW5wdXRTY2hlbWEiLCAidmFsaWRhdGVNZXNzYWdlSW5wdXQiLCAiZXJyb3IiLCAiZmllbGRFcnJvcnMiLCAiZSIsICJmb3JtYXRNZXNzYWdlT3V0cHV0IiwgInBhcnNlTWVzc2FnZSIsICJwZXJmb3JtTWVzc2FnZVRyYW5zZm9ybWF0aW9uIiwgIl9pZCIsICJfa2V5IiwgImNvbnRlbnQiLCAiZmlsZXMiLCAiaWQiLCAiaW1hZ2VzIiwgIm1lc3NhZ2VJZCIsICJzYXZlZCJdCn0K
@@ -1,2 +0,0 @@
1
- import{parseNum as _}from"@nlabs/utils/parsers/numbers";import{parseArangoId as w,parseId as s,parseString as E,parseVarChar as b}from"@nlabs/utils/parsers/strings";import{z as t}from"zod";import{removeEmptyKeys as k}from"../utils/adapterUtils.js";import{parseDocument as D}from"./arangoAdapter.js";import{parseFile as x}from"./fileAdapter.js";import{parseReaktorContent as $,parseReaktorDate as j,parseReaktorType as N}from"./reaktorAdapter.js";import{parseTag as R}from"./tagAdapter.js";const C=1e5;class p extends Error{constructor(n,e){super(n);this.field=e;this.name="PostValidationError"}}const V=t.object({content:t.string().optional(),endDate:t.number().optional(),files:t.array(t.any()).optional(),groupId:t.string().optional(),postId:t.string().optional(),latitude:t.number().optional(),location:t.string().optional(),longitude:t.number().optional(),name:t.string().optional(),parentId:t.string().optional(),privacy:t.string().optional(),startDate:t.number().optional(),tags:t.array(t.any()).optional(),type:t.string().optional(),userId:t.string().optional(),_id:t.string().optional(),_key:t.string().optional(),_rev:t.string().optional(),_oldRev:t.string().optional(),_from:t.string().optional(),_to:t.string().optional()}).passthrough(),U=r=>{try{return V.parse(r)}catch(o){if(o instanceof t.ZodError){const n=o.issues.map(e=>`${e.path.join(".")}: ${e.message}`).join(", ");throw new p(`Post validation failed: ${n}`)}throw o}},X=r=>r,Z=r=>{try{return A(r)}catch(o){throw o instanceof p?o:new p(`Post parsing failed: ${o instanceof Error?o.message:"Unknown error"}`)}},A=r=>{const{_id:o,_key:n,content:e,endDate:d,files:l,groupId:m,id:g,latitude:u,location:c,longitude:f,name:y,parentId:P,postId:a,privacy:I,tags:T,type:h,userId:v}=r;return k({...D(r),...e&&{content:$(e,C)},...d!==void 0&&{endDate:j(d)},...l?.length&&{files:l.map(i=>x(i))},...m&&{groupId:s(m)},...u!==void 0&&{latitude:_(u,15)},...c&&{location:E(c,160)},...f!==void 0&&{longitude:_(f,15)},...y&&{name:E(y,160)},...P&&{parentId:s(P)},...(o||g||n||a)&&{id:w(o||g||`posts/${n||a||""}`)},...(n||a)&&{postId:s(n||a||"")},...I&&{privacy:b(I,16)},...T?.length&&{tags:T.map(i=>R(i))},...h&&{type:N(h)},...v&&{userId:s(v)}})};export{p as PostValidationError,X as formatPostOutput,Z as parsePost,U as validatePostInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL3Bvc3RBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge3BhcnNlTnVtfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9udW1iZXJzJztcbmltcG9ydCB7cGFyc2VBcmFuZ29JZCwgcGFyc2VJZCwgcGFyc2VTdHJpbmcsIHBhcnNlVmFyQ2hhcn0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7cmVtb3ZlRW1wdHlLZXlzfSBmcm9tICcuLi91dGlscy9hZGFwdGVyVXRpbHMuanMnO1xuaW1wb3J0IHtwYXJzZURvY3VtZW50fSBmcm9tICcuL2FyYW5nb0FkYXB0ZXIuanMnO1xuaW1wb3J0IHtwYXJzZUZpbGV9IGZyb20gJy4vZmlsZUFkYXB0ZXIuanMnO1xuaW1wb3J0IHtcbiAgcGFyc2VSZWFrdG9yQ29udGVudCxcbiAgcGFyc2VSZWFrdG9yRGF0ZSxcbiAgcGFyc2VSZWFrdG9yVHlwZVxufSBmcm9tICcuL3JlYWt0b3JBZGFwdGVyLmpzJztcbmltcG9ydCB7cGFyc2VUYWd9IGZyb20gJy4vdGFnQWRhcHRlci5qcyc7XG5cbmltcG9ydCB0eXBlIHtQb3N0VHlwZX0gZnJvbSAnLi4vdHlwZXMvcG9zdHMudHlwZXMuanMnO1xuXG5jb25zdCBNQVhfQ09OVEVOVF9MRU5HVEg6IG51bWJlciA9IDEwMDAwMDtcblxuZXhwb3J0IGNsYXNzIFBvc3RWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ1Bvc3RWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IFBvc3RJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY29udGVudDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBlbmREYXRlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGZpbGVzOiB6LmFycmF5KHouYW55KCkpLm9wdGlvbmFsKCksXG4gIGdyb3VwSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcG9zdElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGxhdGl0dWRlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGxvY2F0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGxvbmdpdHVkZTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHBhcmVudElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHByaXZhY3k6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgc3RhcnREYXRlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHRhZ3M6IHouYXJyYXkoei5hbnkoKSkub3B0aW9uYWwoKSxcbiAgdHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KS5wYXNzdGhyb3VnaCgpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQb3N0SW5wdXQgPSAocG9zdDogdW5rbm93bik6IFBvc3RUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBQb3N0SW5wdXRTY2hlbWEucGFyc2UocG9zdCk7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBQb3N0VHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5pc3N1ZXMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBQb3N0VmFsaWRhdGlvbkVycm9yKGBQb3N0IHZhbGlkYXRpb24gZmFpbGVkOiAke2ZpZWxkRXJyb3JzfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdFBvc3RPdXRwdXQgPSAocG9zdDogUG9zdFR5cGUpOiBQb3N0VHlwZSA9PiBwb3N0O1xuXG5leHBvcnQgY29uc3QgcGFyc2VQb3N0ID0gKHBvc3Q6IFBvc3RUeXBlKTogUG9zdFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBlcmZvcm1Qb3N0VHJhbnNmb3JtYXRpb24ocG9zdCk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2YgUG9zdFZhbGlkYXRpb25FcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICAgIHRocm93IG5ldyBQb3N0VmFsaWRhdGlvbkVycm9yKGBQb3N0IHBhcnNpbmcgZmFpbGVkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfWApO1xuICB9XG59O1xuXG5jb25zdCBwZXJmb3JtUG9zdFRyYW5zZm9ybWF0aW9uID0gKHBvc3Q6IFBvc3RUeXBlKTogUG9zdFR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgX2lkLFxuICAgIF9rZXksXG4gICAgY29udGVudCxcbiAgICBlbmREYXRlLFxuICAgIGZpbGVzLFxuICAgIGdyb3VwSWQsXG4gICAgaWQsXG4gICAgbGF0aXR1ZGUsXG4gICAgbG9jYXRpb24sXG4gICAgbG9uZ2l0dWRlLFxuICAgIG5hbWUsXG4gICAgcGFyZW50SWQsXG4gICAgcG9zdElkLFxuICAgIHByaXZhY3ksXG4gICAgdGFncyxcbiAgICB0eXBlLFxuICAgIHVzZXJJZFxuICB9ID0gcG9zdDtcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHJlbW92ZUVtcHR5S2V5cyh7XG4gICAgLi4ucGFyc2VEb2N1bWVudChwb3N0KSxcbiAgICAuLi4oY29udGVudCAmJiB7Y29udGVudDogcGFyc2VSZWFrdG9yQ29udGVudChjb250ZW50LCBNQVhfQ09OVEVOVF9MRU5HVEgpfSksXG4gICAgLi4uKGVuZERhdGUgIT09IHVuZGVmaW5lZCAmJiB7ZW5kRGF0ZTogcGFyc2VSZWFrdG9yRGF0ZShlbmREYXRlKX0pLFxuICAgIC4uLihmaWxlcz8ubGVuZ3RoICYmIHtmaWxlczogZmlsZXMubWFwKChmaWxlKSA9PiBwYXJzZUZpbGUoZmlsZSkpfSksXG4gICAgLi4uKGdyb3VwSWQgJiYge2dyb3VwSWQ6IHBhcnNlSWQoZ3JvdXBJZCl9KSxcbiAgICAuLi4obGF0aXR1ZGUgIT09IHVuZGVmaW5lZCAmJiB7bGF0aXR1ZGU6IHBhcnNlTnVtKGxhdGl0dWRlLCAxNSl9KSxcbiAgICAuLi4obG9jYXRpb24gJiYge2xvY2F0aW9uOiBwYXJzZVN0cmluZyhsb2NhdGlvbiwgMTYwKX0pLFxuICAgIC4uLihsb25naXR1ZGUgIT09IHVuZGVmaW5lZCAmJiB7bG9uZ2l0dWRlOiBwYXJzZU51bShsb25naXR1ZGUsIDE1KX0pLFxuICAgIC4uLihuYW1lICYmIHtuYW1lOiBwYXJzZVN0cmluZyhuYW1lLCAxNjApfSksXG4gICAgLi4uKHBhcmVudElkICYmIHtwYXJlbnRJZDogcGFyc2VJZChwYXJlbnRJZCl9KSxcbiAgICAuLi4oKF9pZCB8fCBpZCB8fCBfa2V5IHx8IHBvc3RJZCkgJiYge2lkOiBwYXJzZUFyYW5nb0lkKF9pZCB8fCBpZCB8fCBgcG9zdHMvJHtfa2V5IHx8IHBvc3RJZCB8fCAnJ31gKX0pLFxuICAgIC4uLigoX2tleSB8fCBwb3N0SWQpICYmIHtwb3N0SWQ6IHBhcnNlSWQoX2tleSB8fCBwb3N0SWQgfHwgJycpfSksXG4gICAgLi4uKHByaXZhY3kgJiYge3ByaXZhY3k6IHBhcnNlVmFyQ2hhcihwcml2YWN5LCAxNil9KSxcbiAgICAuLi4odGFncz8ubGVuZ3RoICYmIHt0YWdzOiB0YWdzLm1hcCgodGFnKSA9PiBwYXJzZVRhZyh0YWcpKX0pLFxuICAgIC4uLih0eXBlICYmIHt0eXBlOiBwYXJzZVJlYWt0b3JUeXBlKHR5cGUpfSksXG4gICAgLi4uKHVzZXJJZCAmJiB7dXNlcklkOiBwYXJzZUlkKHVzZXJJZCl9KVxuICB9KTtcblxuICByZXR1cm4gdHJhbnNmb3JtZWQ7XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLE9BQVEsWUFBQUEsTUFBZSwrQkFDdkIsT0FBUSxpQkFBQUMsRUFBZSxXQUFBQyxFQUFTLGVBQUFDLEVBQWEsZ0JBQUFDLE1BQW1CLCtCQUNoRSxPQUFRLEtBQUFDLE1BQVEsTUFFaEIsT0FBUSxtQkFBQUMsTUFBc0IsMkJBQzlCLE9BQVEsaUJBQUFDLE1BQW9CLHFCQUM1QixPQUFRLGFBQUFDLE1BQWdCLG1CQUN4QixPQUNFLHVCQUFBQyxFQUNBLG9CQUFBQyxFQUNBLG9CQUFBQyxNQUNLLHNCQUNQLE9BQVEsWUFBQUMsTUFBZSxrQkFJdkIsTUFBTUMsRUFBNkIsSUFFNUIsTUFBTUMsVUFBNEIsS0FBTSxDQUM3QyxZQUFZQyxFQUF3QkMsRUFBZ0IsQ0FDbEQsTUFBTUQsQ0FBTyxFQURxQixXQUFBQyxFQUVsQyxLQUFLLEtBQU8scUJBQ2QsQ0FDRixDQUVBLE1BQU1DLEVBQWtCWixFQUFFLE9BQU8sQ0FDL0IsUUFBU0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUM3QixRQUFTQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzdCLE1BQU9BLEVBQUUsTUFBTUEsRUFBRSxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQ2pDLFFBQVNBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDN0IsT0FBUUEsRUFBRSxP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TCxHQUFRVyxJQUFXLENBQUMsR0FBSXBDLEVBQWN3QixHQUFPTSxHQUFNLFNBQVNMLEdBQVFXLEdBQVUsRUFBRSxFQUFFLENBQUMsRUFDckcsSUFBS1gsR0FBUVcsSUFBVyxDQUFDLE9BQVFuQyxFQUFRd0IsR0FBUVcsR0FBVSxFQUFFLENBQUMsRUFDOUQsR0FBSUMsR0FBVyxDQUFDLFFBQVNsQyxFQUFha0MsRUFBUyxFQUFFLENBQUMsRUFDbEQsR0FBSUMsR0FBTSxRQUFVLENBQUMsS0FBTUEsRUFBSyxJQUFLSSxHQUFRL0IsRUFBUytCLENBQUcsQ0FBQyxDQUFDLEVBQzNELEdBQUlILEdBQVEsQ0FBQyxLQUFNN0IsRUFBaUI2QixDQUFJLENBQUMsRUFDekMsR0FBSUMsR0FBVSxDQUFDLE9BQVF2QyxFQUFRdUMsQ0FBTSxDQUFDLENBQ3hDLENBQUMsQ0FHSCIsCiAgIm5hbWVzIjogWyJwYXJzZU51bSIsICJwYXJzZUFyYW5nb0lkIiwgInBhcnNlSWQiLCAicGFyc2VTdHJpbmciLCAicGFyc2VWYXJDaGFyIiwgInoiLCAicmVtb3ZlRW1wdHlLZXlzIiwgInBhcnNlRG9jdW1lbnQiLCAicGFyc2VGaWxlIiwgInBhcnNlUmVha3RvckNvbnRlbnQiLCAicGFyc2VSZWFrdG9yRGF0ZSIsICJwYXJzZVJlYWt0b3JUeXBlIiwgInBhcnNlVGFnIiwgIk1BWF9DT05URU5UX0xFTkdUSCIsICJQb3N0VmFsaWRhdGlvbkVycm9yIiwgIm1lc3NhZ2UiLCAiZmllbGQiLCAiUG9zdElucHV0U2NoZW1hIiwgInZhbGlkYXRlUG9zdElucHV0IiwgInBvc3QiLCAiZXJyb3IiLCAiZmllbGRFcnJvcnMiLCAiZm9ybWF0UG9zdE91dHB1dCIsICJwYXJzZVBvc3QiLCAicGVyZm9ybVBvc3RUcmFuc2Zvcm1hdGlvbiIsICJfaWQiLCAiX2tleSIsICJjb250ZW50IiwgImVuZERhdGUiLCAiZmlsZXMiLCAiZ3JvdXBJZCIsICJpZCIsICJsYXRpdHVkZSIsICJsb2NhdGlvbiIsICJsb25naXR1ZGUiLCAibmFtZSIsICJwYXJlbnRJZCIsICJwb3N0SWQiLCAicHJpdmFjeSIsICJ0YWdzIiwgInR5cGUiLCAidXNlcklkIiwgImZpbGUiLCAidGFnIl0KfQo=
@@ -1,2 +0,0 @@
1
- import{parseNum as a}from"@nlabs/utils/parsers/numbers";import{parseId as i,parseString as o,parseUrl as s,parseVarChar as d}from"@nlabs/utils/parsers/strings";class n extends Error{constructor(t,m){super(t);this.field=m;this.name="ReaktorValidationError"}}const R=(r,e=500)=>{try{return c(r,e)}catch(t){throw new n(`Content validation failed: ${t instanceof Error?t.message:"Unknown error"}`,"content")}},h=r=>{try{return u(r)}catch(e){throw new n(`Date validation failed: ${e instanceof Error?e.message:"Unknown error"}`,"date")}},x=r=>{try{return f(r)}catch(e){throw new n(`Item ID validation failed: ${e instanceof Error?e.message:"Unknown error"}`,"itemId")}},v=r=>{try{return p(r)}catch(e){throw new n(`Name validation failed: ${e instanceof Error?e.message:"Unknown error"}`,"name")}},U=r=>{try{return g(r)}catch(e){throw new n(`Type validation failed: ${e instanceof Error?e.message:"Unknown error"}`,"type")}},y=r=>{try{return l(r)}catch(e){throw new n(`URL validation failed: ${e instanceof Error?e.message:"Unknown error"}`,"url")}},c=(r,e=500)=>r?o(r,e):void 0,u=r=>r?a(r,13):void 0,f=r=>r?i(r):void 0,p=r=>r?o(r,160):void 0,g=r=>r?d(r,160):void 0,l=r=>r?s(r):void 0;export{n as ReaktorValidationError,c as parseReaktorContent,u as parseReaktorDate,f as parseReaktorItemId,p as parseReaktorName,g as parseReaktorType,l as parseReaktorUrl,R as validateReaktorContent,h as validateReaktorDate,x as validateReaktorItemId,v as validateReaktorName,U as validateReaktorType,y as validateReaktorUrl};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL3JlYWt0b3JBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge3BhcnNlTnVtfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9udW1iZXJzJztcbmltcG9ydCB7cGFyc2VJZCwgcGFyc2VTdHJpbmcsIHBhcnNlVXJsLCBwYXJzZVZhckNoYXJ9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuXG5leHBvcnQgY2xhc3MgUmVha3RvclZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnUmVha3RvclZhbGlkYXRpb25FcnJvcic7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUmVha3RvckNvbnRlbnQgPSAoY29udGVudD86IHN0cmluZywgbGVuZ3RoOiBudW1iZXIgPSA1MDApOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBwYXJzZVJlYWt0b3JDb250ZW50KGNvbnRlbnQsIGxlbmd0aCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgUmVha3RvclZhbGlkYXRpb25FcnJvcihgQ29udGVudCB2YWxpZGF0aW9uIGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gLCAnY29udGVudCcpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVSZWFrdG9yRGF0ZSA9IChkYXRlPzogbnVtYmVyKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VSZWFrdG9yRGF0ZShkYXRlKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHRocm93IG5ldyBSZWFrdG9yVmFsaWRhdGlvbkVycm9yKGBEYXRlIHZhbGlkYXRpb24gZmFpbGVkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfWAsICdkYXRlJyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlYWt0b3JJdGVtSWQgPSAoaXRlbUlkPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VSZWFrdG9ySXRlbUlkKGl0ZW1JZCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgUmVha3RvclZhbGlkYXRpb25FcnJvcihgSXRlbSBJRCB2YWxpZGF0aW9uIGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gLCAnaXRlbUlkJyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlYWt0b3JOYW1lID0gKG5hbWU/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBwYXJzZVJlYWt0b3JOYW1lKG5hbWUpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IFJlYWt0b3JWYWxpZGF0aW9uRXJyb3IoYE5hbWUgdmFsaWRhdGlvbiBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCwgJ25hbWUnKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUmVha3RvclR5cGUgPSAodHlwZT86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHBhcnNlUmVha3RvclR5cGUodHlwZSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgUmVha3RvclZhbGlkYXRpb25FcnJvcihgVHlwZSB2YWxpZGF0aW9uIGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gLCAndHlwZScpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVSZWFrdG9yVXJsID0gKHVybD86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHBhcnNlUmVha3RvclVybCh1cmwpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IFJlYWt0b3JWYWxpZGF0aW9uRXJyb3IoYFVSTCB2YWxpZGF0aW9uIGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gLCAndXJsJyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZVJlYWt0b3JDb250ZW50ID0gKGNvbnRlbnQ/OiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyID0gNTAwKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+XG4gIChjb250ZW50ID8gcGFyc2VTdHJpbmcoY29udGVudCwgbGVuZ3RoKSA6IHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZVJlYWt0b3JEYXRlID0gKGRhdGU/OiBudW1iZXIpOiBudW1iZXIgfCB1bmRlZmluZWQgPT5cbiAgKGRhdGUgPyBwYXJzZU51bShkYXRlLCAxMykgOiB1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgcGFyc2VSZWFrdG9ySXRlbUlkID0gKGl0ZW1JZD86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PlxuICAoaXRlbUlkID8gcGFyc2VJZChpdGVtSWQpIDogdW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlUmVha3Rvck5hbWUgPSAobmFtZT86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PlxuICAobmFtZSA/IHBhcnNlU3RyaW5nKG5hbWUsIDE2MCkgOiB1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgcGFyc2VSZWFrdG9yVHlwZSA9ICh0eXBlPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+XG4gICh0eXBlID8gcGFyc2VWYXJDaGFyKHR5cGUsIDE2MCkgOiB1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgcGFyc2VSZWFrdG9yVXJsID0gKHVybD86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PlxuICAodXJsID8gcGFyc2VVcmwodXJsKSA6IHVuZGVmaW5lZCk7XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQSxPQUFRLFlBQUFBLE1BQWUsK0JBQ3ZCLE9BQVEsV0FBQUMsRUFBUyxlQUFBQyxFQUFhLFlBQUFDLEVBQVUsZ0JBQUFDLE1BQW1CLCtCQUVwRCxNQUFNQyxVQUErQixLQUFNLENBQ2hELFlBQVlDLEVBQXdCQyxFQUFnQixDQUNsRCxNQUFNRCxDQUFPLEVBRHFCLFdBQUFDLEVBRWxDLEtBQUssS0FBTyx3QkFDZCxDQUNGLENBRU8sTUFBTUMsRUFBeUIsQ0FBQ0MsRUFBa0JDLEVBQWlCLE1BQTRCLENBQ3BHLEdBQUksQ0FDRixPQUFPQyxFQUFvQkYsRUFBU0MsQ0FBTSxDQUM1QyxPQUFRRSxFQUFPLENBQ2IsTUFBTSxJQUFJUCxFQUF1Qiw4QkFBOEJPLGFBQWlCLE1BQVFBLEVBQU0sUUFBVSxlQUFlLEdBQUksU0FBUyxDQUN0SSxDQUNGLEVBRWFDLEVBQXVCQyxHQUFzQyxDQUN4RSxHQUFJLENBQ0YsT0FBT0MsRUFBaUJELENBQUksQ0FDOUIsT0FBUUYsRUFBTyxDQUNiLE1BQU0sSUFBSVAsRUFBdUIsMkJBQTJCTyxhQUFpQixNQUFRQSxFQUFNLFFBQVUsZUFBZSxHQUFJLE1BQU0sQ0FDaEksQ0FDRixFQUVhSSxFQUF5QkMsR0FBd0MsQ0FDNUUsR0FBSSxDQUNGLE9BQU9DLEVBQW1CRCxDQUFNLENBQ2xDLE9BQVFMLEVBQU8sQ0FDYixNQUFNLElBQUlQLEVBQXVCLDhCQUE4Qk8sYUFBaUIsTUFBUUEsRUFBTSxRQUFVLGVBQWUsR0FBSSxRQUFRLENBQ3JJLENBQ0YsRUFFYU8sRUFBdUJDLEdBQXNDLENBQ3hFLEdBQUksQ0FDRixPQUFPQyxFQUFpQkQsQ0FBSSxDQUM5QixPQUFRUixFQUFPLENBQ2IsTUFBTSxJQUFJUCxFQUF1QiwyQkFBMkJPLGFBQWlCLE1BQVFBLEVBQU0sUUFBVSxlQUFlLEdBQUksTUFBTSxDQUNoSSxDQUNGLEVBRWFVLEVBQXVCQyxHQUFzQyxDQUN4RSxHQUFJLENBQ0YsT0FBT0MsRUFBaUJELENBQUksQ0FDOUIsT0FBUVgsRUFBTyxDQUNiLE1BQU0sSUFBSVAsRUFBdUIsMkJBQTJCTyxhQUFpQixNQUFRQSxFQUFNLFFBQVUsZUFBZSxHQUFJLE1BQU0sQ0FDaEksQ0FDRixFQUVhYSxFQUFzQkMsR0FBcUMsQ0FDdEUsR0FBSSxDQUNGLE9BQU9DLEVBQWdCRCxDQUFHLENBQzVCLE9BQVFkLEVBQU8sQ0FDYixNQUFNLElBQUlQLEVBQXVCLDBCQUEwQk8sYUFBaUIsTUFBUUEsRUFBTSxRQUFVLGVBQWUsR0FBSSxLQUFLLENBQzlILENBQ0YsRUFFYUQsRUFBc0IsQ0FBQ0YsRUFBa0JDLEVBQWlCLE1BQ3BFRCxFQUFVUCxFQUFZTyxFQUFTQyxDQUFNLEVBQUksT0FFL0JLLEVBQW9CRCxHQUM5QkEsRUFBT2QsRUFBU2MsRUFBTSxFQUFFLEVBQUksT0FFbEJJLEVBQXNCRCxHQUNoQ0EsRUFBU2hCLEVBQVFnQixDQUFNLEVBQUksT0FFakJJLEVBQW9CRCxHQUM5QkEsRUFBT2xCLEVBQVlrQixFQUFNLEdBQUcsRUFBSSxPQUV0QkksRUFBb0JELEdBQzlCQSxFQUFPbkIsRUFBYW1CLEVBQU0sR0FBRyxFQUFJLE9BRXZCSSxFQUFtQkQsR0FDN0JBLEVBQU12QixFQUFTdUIsQ0FBRyxFQUFJIiwKICAibmFtZXMiOiBbInBhcnNlTnVtIiwgInBhcnNlSWQiLCAicGFyc2VTdHJpbmciLCAicGFyc2VVcmwiLCAicGFyc2VWYXJDaGFyIiwgIlJlYWt0b3JWYWxpZGF0aW9uRXJyb3IiLCAibWVzc2FnZSIsICJmaWVsZCIsICJ2YWxpZGF0ZVJlYWt0b3JDb250ZW50IiwgImNvbnRlbnQiLCAibGVuZ3RoIiwgInBhcnNlUmVha3RvckNvbnRlbnQiLCAiZXJyb3IiLCAidmFsaWRhdGVSZWFrdG9yRGF0ZSIsICJkYXRlIiwgInBhcnNlUmVha3RvckRhdGUiLCAidmFsaWRhdGVSZWFrdG9ySXRlbUlkIiwgIml0ZW1JZCIsICJwYXJzZVJlYWt0b3JJdGVtSWQiLCAidmFsaWRhdGVSZWFrdG9yTmFtZSIsICJuYW1lIiwgInBhcnNlUmVha3Rvck5hbWUiLCAidmFsaWRhdGVSZWFrdG9yVHlwZSIsICJ0eXBlIiwgInBhcnNlUmVha3RvclR5cGUiLCAidmFsaWRhdGVSZWFrdG9yVXJsIiwgInVybCIsICJwYXJzZVJlYWt0b3JVcmwiXQp9Cg==
@@ -1,2 +0,0 @@
1
- import{z as t}from"zod";import{parseArangoId as f,parseId as n,parseString as l}from"@nlabs/utils/parsers/strings";import{removeEmptyKeys as u}from"../utils/adapterUtils.js";import{parseDocument as I}from"./arangoAdapter.js";import{parseReaktorContent as _,parseReaktorType as k}from"./reaktorAdapter.js";class s extends Error{constructor(a,i){super(a);this.field=i;this.name="TagValidationError"}}const h=t.object({_id:t.string().optional(),_key:t.string().optional(),category:t.string().max(160).optional(),description:t.string().optional(),id:t.string().optional(),name:t.string().max(160).optional(),tagBy:t.string().optional(),tagId:t.string().optional(),userId:t.string().optional()}).passthrough(),b=r=>{try{return h.parse(r)}catch(o){if(o instanceof t.ZodError){const a=o.issues.map(i=>`${i.path.join(".")}: ${i.message}`).join(", ");throw new s(`Tag validation failed: ${a}`)}throw o}},R=r=>r,w=r=>{try{return x(r)}catch(o){throw o instanceof s?o:new s(`Tag parsing failed: ${o instanceof Error?o.message:"Unknown error"}`)}},x=r=>{const{_id:o,_key:a,category:i,description:p,id:d,name:g,tagBy:y,tagId:T,userId:c}=r,m={...I(r),...i&&{category:k(i)},...p&&{description:_(p)},...(o||d)&&{id:f(o||d||"")},...(a||T)&&{tagId:n(a||T||"")},...g&&{name:l(g,160)},...y&&{tagBy:n(y)},...c&&{userId:n(c)}},e=u(m);return r._id?(e.id=r._id,e._id=r._id):r.id&&!e.id&&(e.id=r.id,e._id=r.id),r._key?(e.tagId=r._key,e._key=r._key):r.tagId&&!e.tagId&&(e.tagId=r.tagId,e._key=r.tagId),r.tagId&&!e._key&&(e._key=r.tagId),r.id&&!e._id&&(e._id=r.id),e},S=r=>w(r);export{s as TagValidationError,R as formatTagOutput,w as parseTag,S as parseTagLegacy,b as validateTagInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL3RhZ0FkYXB0ZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIlxuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuXG5pbXBvcnQge3BhcnNlQXJhbmdvSWQsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcbmltcG9ydCB0eXBlIHtUYWdUeXBlfSBmcm9tICcuLi90eXBlcy90YWdzLnR5cGVzLmpzJztcbmltcG9ydCB7cmVtb3ZlRW1wdHlLZXlzfSBmcm9tICcuLi91dGlscy9hZGFwdGVyVXRpbHMuanMnO1xuaW1wb3J0IHtwYXJzZURvY3VtZW50fSBmcm9tICcuL2FyYW5nb0FkYXB0ZXIuanMnO1xuaW1wb3J0IHtwYXJzZVJlYWt0b3JDb250ZW50LCBwYXJzZVJlYWt0b3JUeXBlfSBmcm9tICcuL3JlYWt0b3JBZGFwdGVyLmpzJztcblxuZXhwb3J0IGNsYXNzIFRhZ1ZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnVGFnVmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBUYWdJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgY2F0ZWdvcnk6IHouc3RyaW5nKCkubWF4KDE2MCkub3B0aW9uYWwoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbmFtZTogei5zdHJpbmcoKS5tYXgoMTYwKS5vcHRpb25hbCgpLFxuICB0YWdCeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0YWdJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKVxufSkucGFzc3Rocm91Z2goKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlVGFnSW5wdXQgPSAodGFnOiB1bmtub3duKTogVGFnVHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdmFsaWRhdGVkID0gVGFnSW5wdXRTY2hlbWEucGFyc2UodGFnKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIFRhZ1R5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0gZXJyb3IuaXNzdWVzLm1hcCgoZSkgPT4gYCR7ZS5wYXRoLmpvaW4oJy4nKX06ICR7ZS5tZXNzYWdlfWApLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgVGFnVmFsaWRhdGlvbkVycm9yKGBUYWcgdmFsaWRhdGlvbiBmYWlsZWQ6ICR7ZmllbGRFcnJvcnN9YCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0VGFnT3V0cHV0ID0gKHRhZzogVGFnVHlwZSk6IFRhZ1R5cGUgPT4gdGFnO1xuXG5leHBvcnQgY29uc3QgcGFyc2VUYWcgPSAodGFnOiBUYWdUeXBlKTogVGFnVHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGVyZm9ybVRhZ1RyYW5zZm9ybWF0aW9uKHRhZyk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2YgVGFnVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFRhZ1ZhbGlkYXRpb25FcnJvcihgVGFnIHBhcnNpbmcgZmFpbGVkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InfWApO1xuICB9XG59O1xuXG5jb25zdCBwZXJmb3JtVGFnVHJhbnNmb3JtYXRpb24gPSAodGFnOiBUYWdUeXBlKTogVGFnVHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfaWQsXG4gICAgX2tleSxcbiAgICBjYXRlZ29yeSxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBpZCxcbiAgICBuYW1lLFxuICAgIHRhZ0J5LFxuICAgIHRhZ0lkLFxuICAgIHVzZXJJZFxuICB9ID0gdGFnO1xuXG4gIGNvbnN0IHRyYW5zZm9ybWVkID0ge1xuICAgIC4uLnBhcnNlRG9jdW1lbnQodGFnKSxcbiAgICAuLi4oY2F0ZWdvcnkgJiYge2NhdGVnb3J5OiBwYXJzZVJlYWt0b3JUeXBlKGNhdGVnb3J5KX0pLFxuICAgIC4uLihkZXNjcmlwdGlvbiAmJiB7ZGVzY3JpcHRpb246IHBhcnNlUmVha3RvckNvbnRlbnQoZGVzY3JpcHRpb24pfSksXG4gICAgLi4uKChfaWQgfHwgaWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgJycpfSksXG4gICAgLi4uKChfa2V5IHx8IHRhZ0lkKSAmJiB7dGFnSWQ6IHBhcnNlSWQoX2tleSB8fCB0YWdJZCB8fCAnJyl9KSxcbiAgICAuLi4obmFtZSAmJiB7bmFtZTogcGFyc2VTdHJpbmcobmFtZSwgMTYwKX0pLFxuICAgIC4uLih0YWdCeSAmJiB7dGFnQnk6IHBhcnNlSWQodGFnQnkpfSksXG4gICAgLi4uKHVzZXJJZCAmJiB7dXNlcklkOiBwYXJzZUlkKHVzZXJJZCl9KVxuICB9O1xuXG4gIGNvbnN0IHJlc3VsdCA9IHJlbW92ZUVtcHR5S2V5cyh0cmFuc2Zvcm1lZCk7XG5cbiAgaWYodGFnLl9pZCkge1xuICAgIHJlc3VsdC5pZCA9IHRhZy5faWQ7XG4gICAgcmVzdWx0Ll9pZCA9IHRhZy5faWQ7XG4gIH0gZWxzZSBpZih0YWcuaWQgJiYgIXJlc3VsdC5pZCkge1xuICAgIHJlc3VsdC5pZCA9IHRhZy5pZDtcbiAgICByZXN1bHQuX2lkID0gdGFnLmlkO1xuICB9XG5cbiAgaWYodGFnLl9rZXkpIHtcbiAgICByZXN1bHQudGFnSWQgPSB0YWcuX2tleTtcbiAgICByZXN1bHQuX2tleSA9IHRhZy5fa2V5O1xuICB9IGVsc2UgaWYodGFnLnRhZ0lkICYmICFyZXN1bHQudGFnSWQpIHtcbiAgICByZXN1bHQudGFnSWQgPSB0YWcudGFnSWQ7XG4gICAgcmVzdWx0Ll9rZXkgPSB0YWcudGFnSWQ7XG4gIH1cblxuICBpZih0YWcudGFnSWQgJiYgIXJlc3VsdC5fa2V5KSB7XG4gICAgcmVzdWx0Ll9rZXkgPSB0YWcudGFnSWQ7XG4gIH1cblxuICBpZih0YWcuaWQgJiYgIXJlc3VsdC5faWQpIHtcbiAgICByZXN1bHQuX2lkID0gdGFnLmlkO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZVRhZ0xlZ2FjeSA9ICh0YWc6IFRhZ1R5cGUpOiBUYWdUeXBlID0+IHBhcnNlVGFnKHRhZyk7Il0sCiAgIm1hcHBpbmdzIjogIkFBQ0EsT0FBUSxLQUFBQSxNQUFRLE1BRWhCLE9BQVEsaUJBQUFDLEVBQWUsV0FBQUMsRUFBUyxlQUFBQyxNQUFrQiwrQkFFbEQsT0FBUSxtQkFBQUMsTUFBc0IsMkJBQzlCLE9BQVEsaUJBQUFDLE1BQW9CLHFCQUM1QixPQUFRLHVCQUFBQyxFQUFxQixvQkFBQUMsTUFBdUIsc0JBRTdDLE1BQU1DLFVBQTJCLEtBQU0sQ0FDNUMsWUFBWUMsRUFBd0JDLEVBQWdCLENBQ2xELE1BQU1ELENBQU8sRUFEcUIsV0FBQUMsRUFFbEMsS0FBSyxLQUFPLG9CQUNkLENBQ0YsQ0FFQSxNQUFNQyxFQUFpQlgsRUFBRSxPQUFPLENBQzlCLElBQUtBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDekIsS0FBTUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMxQixTQUFVQSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUcsRUFBRSxTQUFTLEVBQ3ZDLFlBQWFBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDakMsR0FBSUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUN4QixLQUFNQSxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUcsRUFBRSxTQUFTLEVBQ25DLE1BQU9BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDM0IsTUFBT0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMzQixPQUFRQSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQzlCLENBQUMsRUFBRSxZQUFZLEVBRUZZLEVBQW9CQyxHQUEwQixDQUN6RCxHQUFJLENBRUYsT0FEa0JGLEVBQWUsTUFBTUUsQ0FBRyxDQUU1QyxPQUFRQyxFQUFPLENBQ2IsR0FBR0EsYUFBaUJkLEVBQUUsU0FBVSxDQUM5QixNQUFNZSxFQUFjRCxFQUFNLE9BQU8sSUFBS0UsR0FBTSxHQUFHQSxFQUFFLEtBQUssS0FBSyxHQUFHLENBQUMsS0FBS0EsRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLElBQUksRUFDMUYsTUFBTSxJQUFJUixFQUFtQiwwQkFBMEJPLENBQVcsRUFBRSxDQUN0RSxDQUNBLE1BQU1ELENBQ1IsQ0FDRixFQUVhRyxFQUFtQkosR0FBMEJBLEVBRTdDSyxFQUFZTCxHQUEwQixDQUNqRCxHQUFJLENBRUYsT0FEZU0sRUFBeUJOLENBQUcsQ0FFN0MsT0FBUUMsRUFBTyxDQUNiLE1BQUdBLGFBQWlCTixFQUNaTSxFQUVGLElBQUlOLEVBQW1CLHVCQUF1Qk0sYUFBaUIsTUFBUUEsRUFBTSxRQUFVLGVBQWUsRUFBRSxDQUNoSCxDQUNGLEVBRU1LLEVBQTRCTixHQUEwQixDQUMxRCxLQUFNLENBQ0osSUFBQU8sRUFDQSxLQUFBQyxFQUNBLFNBQUFDLEVBQ0EsWUFBQUMsRUFDQSxHQUFBQyxFQUNBLEtBQUFDLEVBQ0EsTUFBQUMsRUFDQSxNQUFBQyxFQUNBLE9BQUFDLENBQ0YsRUFBSWYsRUFFRWdCLEVBQWMsQ0FDbEIsR0FBR3hCLEVBQWNRLENBQUcsRUFDcEIsR0FBSVMsR0FBWSxDQUFDLFNBQVVmLEVBQWlCZSxDQUFRLENBQUMsRUFDckQsR0FBSUMsR0FBZSxDQUFDLFlBQWFqQixFQUFvQmlCLENBQVcsQ0FBQyxFQUNqRSxJQUFLSCxHQUFPSSxJQUFPLENBQUMsR0FBSXZCLEVBQWNtQixHQUFPSSxHQUFNLEVBQUUsQ0FBQyxFQUN0RCxJQUFLSCxHQUFRTSxJQUFVLENBQUMsTUFBT3pCLEVBQVFtQixHQUFRTSxHQUFTLEVBQUUsQ0FBQyxFQUMzRCxHQUFJRixHQUFRLENBQUMsS0FBTXRCLEVBQVlzQixFQUFNLEdBQUcsQ0FBQyxFQUN6QyxHQUFJQyxHQUFTLENBQUMsTUFBT3hCLEVBQVF3QixDQUFLLENBQUMsRUFDbkMsR0FBSUUsR0FBVSxDQUFDLE9BQVExQixFQUFRMEIsQ0FBTSxDQUFDLENBQ3hDLEVBRU1FLEVBQVMxQixFQUFnQnlCLENBQVcsRUFFMUMsT0FBR2hCLEVBQUksS0FDTGlCLEVBQU8sR0FBS2pCLEVBQUksSUFDaEJpQixFQUFPLElBQU1qQixFQUFJLEtBQ1RBLEVBQUksSUFBTSxDQUFDaUIsRUFBTyxLQUMxQkEsRUFBTyxHQUFLakIsRUFBSSxHQUNoQmlCLEVBQU8sSUFBTWpCLEVBQUksSUFHaEJBLEVBQUksTUFDTGlCLEVBQU8sTUFBUWpCLEVBQUksS0FDbkJpQixFQUFPLEtBQU9qQixFQUFJLE1BQ1ZBLEVBQUksT0FBUyxDQUFDaUIsRUFBTyxRQUM3QkEsRUFBTyxNQUFRakIsRUFBSSxNQUNuQmlCLEVBQU8sS0FBT2pCLEVBQUksT0FHakJBLEVBQUksT0FBUyxDQUFDaUIsRUFBTyxPQUN0QkEsRUFBTyxLQUFPakIsRUFBSSxPQUdqQkEsRUFBSSxJQUFNLENBQUNpQixFQUFPLE1BQ25CQSxFQUFPLElBQU1qQixFQUFJLElBR1ppQixDQUNULEVBRWFDLEVBQWtCbEIsR0FBMEJLLEVBQVNMLENBQUciLAogICJuYW1lcyI6IFsieiIsICJwYXJzZUFyYW5nb0lkIiwgInBhcnNlSWQiLCAicGFyc2VTdHJpbmciLCAicmVtb3ZlRW1wdHlLZXlzIiwgInBhcnNlRG9jdW1lbnQiLCAicGFyc2VSZWFrdG9yQ29udGVudCIsICJwYXJzZVJlYWt0b3JUeXBlIiwgIlRhZ1ZhbGlkYXRpb25FcnJvciIsICJtZXNzYWdlIiwgImZpZWxkIiwgIlRhZ0lucHV0U2NoZW1hIiwgInZhbGlkYXRlVGFnSW5wdXQiLCAidGFnIiwgImVycm9yIiwgImZpZWxkRXJyb3JzIiwgImUiLCAiZm9ybWF0VGFnT3V0cHV0IiwgInBhcnNlVGFnIiwgInBlcmZvcm1UYWdUcmFuc2Zvcm1hdGlvbiIsICJfaWQiLCAiX2tleSIsICJjYXRlZ29yeSIsICJkZXNjcmlwdGlvbiIsICJpZCIsICJuYW1lIiwgInRhZ0J5IiwgInRhZ0lkIiwgInVzZXJJZCIsICJ0cmFuc2Zvcm1lZCIsICJyZXN1bHQiLCAicGFyc2VUYWdMZWdhY3kiXQp9Cg==
@@ -1,2 +0,0 @@
1
- import{z as e}from"zod";import{parseNum as d}from"@nlabs/utils/parsers/numbers";import{parseArangoId as W,parseChar as X,parseEmail as Y,parseId as ee,parsePassword as re,parsePhone as te,parseString as B,parseVarChar as n}from"@nlabs/utils/parsers/strings";import{removeEmptyKeys as ie}from"../utils/adapterUtils.js";import{parseDocument as ne}from"./arangoAdapter.js";import{parseReaktorDate as H,parseReaktorItemId as oe,parseReaktorName as se,parseReaktorType as ae}from"./reaktorAdapter.js";import{parseTag as de}from"./tagAdapter.js";class a extends Error{constructor(o,s){super(o);this.field=s;this.name="UserValidationError"}}const pe=e.object({_id:e.string().optional(),_key:e.string().optional(),active:e.boolean().optional(),bankId:e.string().max(160).optional(),city:e.string().max(160).optional(),country:e.string().length(2).optional(),currency:e.string().length(3).optional(),deviceToken:e.string().max(160).optional(),dob:e.number().optional(),email:e.string().email().optional(),first:e.string().max(160).optional(),gender:e.string().length(1).optional(),id:e.string().optional(),imageId:e.string().optional(),last:e.string().max(160).optional(),lastActive:e.number().optional(),locale:e.string().max(5).optional(),mailingList:e.boolean().optional(),name:e.string().max(160).optional(),password:e.string().max(160).optional(),phone:e.string().max(20).optional(),salt:e.string().max(160).optional(),state:e.string().length(2).optional(),street1:e.string().max(160).optional(),street2:e.string().max(160).optional(),stripeAccountId:e.string().max(160).optional(),stripeCustomerId:e.string().max(160).optional(),tags:e.array(e.any()).optional(),timezone:e.string().max(160).optional(),type:e.string().max(160).optional(),userAccess:e.number().optional(),userId:e.string().optional(),username:e.string().max(160).optional(),verifiedEmail:e.boolean().optional(),verifiedEmailCode:e.number().optional(),verifiedEmailExpires:e.number().optional(),verifiedPhone:e.boolean().optional(),verifiedPhoneExpires:e.number().optional(),verifiedSmsCode:e.number().optional(),zip:e.string().max(20).optional()}).passthrough(),le=r=>{if(!r)return;const t=r.toUpperCase();if(!/^[A-Z]{2}$/.test(t))throw new a("Country must be a 2-letter ISO code","country");return t},me=r=>{if(!r)return;const t=r.toUpperCase();if(!/^[A-Z]{2}$/.test(t))throw new a("State must be a 2-letter code","state");return t},ce=r=>{if(!r)return;const t=r.toUpperCase();if(!/^[MF]$/.test(t))throw new a("Gender must be M or F","gender");return t},J=new Map,Ee=r=>{try{return pe.parse(r)}catch(t){if(t instanceof e.ZodError){const o=t.issues.map(s=>`${s.path.join(".")}: ${s.message}`).join(", ");throw new a(`User validation failed: ${o}`)}throw t}},be=r=>{const{password:t,salt:o,verifiedEmailCode:s,verifiedSmsCode:m,...p}=r;return p},fe=r=>{try{return ue(r)}catch(t){throw t instanceof a?t:new a(`User parsing failed: ${t instanceof Error?t.message:"Unknown error"}`)}},ue=r=>{const{_id:t,_key:o,active:s,bankId:m,city:p,country:u,currency:g,deviceToken:y,dob:v,email:h,first:x,gender:I,id:U,imageId:E,last:b,lastActive:C,locale:k,mailingList:w,name:T,password:_,phone:A,salt:S,state:z,street1:P,street2:$,stripeAccountId:j,stripeCustomerId:L,tags:R,timezone:M,type:V,userAccess:c,userId:l,username:Z,verifiedEmail:D,verifiedEmailCode:F,verifiedEmailExpires:G,verifiedPhone:N,verifiedPhoneExpires:O,verifiedSmsCode:K,zip:q}=r,Q={...ne(r),...s!==void 0&&{active:!!s},...m&&{bankId:n(m,160)},...p&&{city:n(p,160)},...u&&{country:le(u)},...g&&{currency:X(g,3).toUpperCase()},...y&&{deviceToken:n(y,160)},...v!==void 0&&{dob:H(v)},...h&&{email:Y(h)},...x&&{first:n(x,160)},...I&&{gender:ce(I)},...(U||t||o||l)&&{id:W(U||t||`users/${o||l}`)},...E&&{imageId:oe(E)},...b&&{last:n(b,160)},...C!==void 0&&{lastActive:H(C)},...k&&{locale:B(k,5)},...w!==void 0&&{mailingList:!!w},...T&&{name:se(T)},..._&&{password:re(_)},...A&&{phone:te(A)},...S&&{salt:n(S,160)},...z&&{state:me(z)},...P&&{street1:n(P,160)},...$&&{street2:n($,160)},...j&&{stripeAccountId:n(j,160)},...L&&{stripeCustomerId:n(L,160)},...R?.length&&{tags:R.filter(f=>!!f).map(f=>de(f))},...M&&{timezone:B(M,160)},...V&&{type:ae(V)},...c!==void 0&&{userAccess:c?d(c):0},...(l||o)&&{userId:ee(o||l||"")},...Z&&{username:n(Z,160)},...D!==void 0&&{verifiedEmail:!!D},...F!==void 0&&{verifiedEmailCode:d(F,10)},...G!==void 0&&{verifiedEmailExpires:d(G,10)},...N!==void 0&&{verifiedPhone:!!N},...O!==void 0&&{verifiedPhoneExpires:d(O,10)},...K!==void 0&&{verifiedSmsCode:d(K,10)},...q&&{zip:n(q,20)}},i=ie(Q);return r._id?(i.id=r._id,i._id=r._id):r.id&&!i.id&&(i.id=r.id,i._id=r.id),r._key?(i.userId=r._key,i._key=r._key):r.userId&&!i.userId&&(i.userId=r.userId,i._key=r.userId),r.userId&&!i._key&&(i._key=r.userId),r.id&&!i._id&&(i._id=r.id),i},Ce=()=>{J.clear()},ke=()=>J.size;const we=r=>fe(r);export{a as UserValidationError,Ce as clearUserCache,be as formatUserOutput,ke as getUserCacheSize,fe as parseUser,we as parseUserLegacy,J as userCache,Ee as validateUserInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL3VzZXJBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJcbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtwYXJzZU51bX0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvbnVtYmVycyc7XG5pbXBvcnQge3BhcnNlQXJhbmdvSWQsIHBhcnNlQ2hhciwgcGFyc2VFbWFpbCwgcGFyc2VJZCwgcGFyc2VQYXNzd29yZCwgcGFyc2VQaG9uZSwgcGFyc2VTdHJpbmcsIHBhcnNlVmFyQ2hhcn0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQgdHlwZSB7VXNlclR5cGV9IGZyb20gJy4uL3R5cGVzL3VzZXJzLnR5cGVzLmpzJztcbmltcG9ydCB7cmVtb3ZlRW1wdHlLZXlzfSBmcm9tICcuLi91dGlscy9hZGFwdGVyVXRpbHMuanMnO1xuaW1wb3J0IHtwYXJzZURvY3VtZW50fSBmcm9tICcuL2FyYW5nb0FkYXB0ZXIuanMnO1xuaW1wb3J0IHtwYXJzZVJlYWt0b3JEYXRlLCBwYXJzZVJlYWt0b3JJdGVtSWQsIHBhcnNlUmVha3Rvck5hbWUsIHBhcnNlUmVha3RvclR5cGV9IGZyb20gJy4vcmVha3RvckFkYXB0ZXIuanMnO1xuaW1wb3J0IHtwYXJzZVRhZ30gZnJvbSAnLi90YWdBZGFwdGVyLmpzJztcblxuZXhwb3J0IGNsYXNzIFVzZXJWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ1VzZXJWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IFVzZXJJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYWN0aXZlOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBiYW5rSWQ6IHouc3RyaW5nKCkubWF4KDE2MCkub3B0aW9uYWwoKSxcbiAgY2l0eTogei5zdHJpbmcoKS5tYXgoMTYwKS5vcHRpb25hbCgpLFxuICBjb3VudHJ5OiB6LnN0cmluZygpLmxlbmd0aCgyKS5vcHRpb25hbCgpLFxuICBjdXJyZW5jeTogei5zdHJpbmcoKS5sZW5ndGgoMykub3B0aW9uYWwoKSxcbiAgZGV2aWNlVG9rZW46IHouc3RyaW5nKCkubWF4KDE2MCkub3B0aW9uYWwoKSxcbiAgZG9iOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGVtYWlsOiB6LnN0cmluZygpLmVtYWlsKCkub3B0aW9uYWwoKSxcbiAgZmlyc3Q6IHouc3RyaW5nKCkubWF4KDE2MCkub3B0aW9uYWwoKSxcbiAgZ2VuZGVyOiB6LnN0cmluZygpLmxlbmd0aCgxKS5vcHRpb25hbCgpLFxuICBpZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpbWFnZUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGxhc3Q6IHouc3RyaW5nKCkubWF4KDE2MCkub3B0aW9uYWwoKSxcbiAgbGFzdEFjdGl2ZTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBsb2NhbGU6IHouc3RyaW5nKCkubWF4KDUpLm9wdGlvbmFsKCksXG4gIG1haWxpbmdMaXN0OiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBuYW1lOiB6LnN0cmluZygpLm1heCgxNjApLm9wdGlvbmFsKCksXG4gIHBhc3N3b3JkOiB6LnN0cmluZygpLm1heCgxNjApLm9wdGlvbmFsKCksXG4gIHBob25lOiB6LnN0cmluZygpLm1heCgyMCkub3B0aW9uYWwoKSxcbiAgc2FsdDogei5zdHJpbmcoKS5tYXgoMTYwKS5vcHRpb25hbCgpLFxuICBzdGF0ZTogei5zdHJpbmcoKS5sZW5ndGgoMikub3B0aW9uYWwoKSxcbiAgc3RyZWV0MTogei5zdHJpbmcoKS5tYXgoMTYwKS5vcHRpb25hbCgpLFxuICBzdHJlZXQyOiB6LnN0cmluZygpLm1heCgxNjApLm9wdGlvbmFsKCksXG4gIHN0cmlwZUFjY291bnRJZDogei5zdHJpbmcoKS5tYXgoMTYwKS5vcHRpb25hbCgpLFxuICBzdHJpcGVDdXN0b21lcklkOiB6LnN0cmluZygpLm1heCgxNjApLm9wdGlvbmFsKCksXG4gIHRhZ3M6IHouYXJyYXkoei5hbnkoKSkub3B0aW9uYWwoKSxcbiAgdGltZXpvbmU6IHouc3RyaW5nKCkubWF4KDE2MCkub3B0aW9uYWwoKSxcbiAgdHlwZTogei5zdHJpbmcoKS5tYXgoMTYwKS5vcHRpb25hbCgpLFxuICB1c2VyQWNjZXNzOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHVzZXJJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB1c2VybmFtZTogei5zdHJpbmcoKS5tYXgoMTYwKS5vcHRpb25hbCgpLFxuICB2ZXJpZmllZEVtYWlsOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICB2ZXJpZmllZEVtYWlsQ29kZTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB2ZXJpZmllZEVtYWlsRXhwaXJlczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB2ZXJpZmllZFBob25lOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICB2ZXJpZmllZFBob25lRXhwaXJlczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB2ZXJpZmllZFNtc0NvZGU6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgemlwOiB6LnN0cmluZygpLm1heCgyMCkub3B0aW9uYWwoKVxufSkucGFzc3Rocm91Z2goKTtcblxuY29uc3QgdmFsaWRhdGVDb3VudHJ5ID0gKGNvdW50cnk/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBpZighY291bnRyeSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgdXBwZXIgPSBjb3VudHJ5LnRvVXBwZXJDYXNlKCk7XG4gIGlmKCEvXltBLVpdezJ9JC8udGVzdCh1cHBlcikpIHtcbiAgICB0aHJvdyBuZXcgVXNlclZhbGlkYXRpb25FcnJvcignQ291bnRyeSBtdXN0IGJlIGEgMi1sZXR0ZXIgSVNPIGNvZGUnLCAnY291bnRyeScpO1xuICB9XG4gIHJldHVybiB1cHBlcjtcbn07XG5cbmNvbnN0IHZhbGlkYXRlU3RhdGUgPSAoc3RhdGU/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBpZighc3RhdGUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHVwcGVyID0gc3RhdGUudG9VcHBlckNhc2UoKTtcbiAgaWYoIS9eW0EtWl17Mn0kLy50ZXN0KHVwcGVyKSkge1xuICAgIHRocm93IG5ldyBVc2VyVmFsaWRhdGlvbkVycm9yKCdTdGF0ZSBtdXN0IGJlIGEgMi1sZXR0ZXIgY29kZScsICdzdGF0ZScpO1xuICB9XG4gIHJldHVybiB1cHBlcjtcbn07XG5cbmNvbnN0IHZhbGlkYXRlR2VuZGVyID0gKGdlbmRlcj86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmKCFnZW5kZXIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHVwcGVyID0gZ2VuZGVyLnRvVXBwZXJDYXNlKCk7XG4gIGlmKCEvXltNRl0kLy50ZXN0KHVwcGVyKSkge1xuICAgIHRocm93IG5ldyBVc2VyVmFsaWRhdGlvbkVycm9yKCdHZW5kZXIgbXVzdCBiZSBNIG9yIEYnLCAnZ2VuZGVyJyk7XG4gIH1cbiAgcmV0dXJuIHVwcGVyO1xufTtcblxuY29uc3QgdXNlckNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFVzZXJUeXBlPigpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVVc2VySW5wdXQgPSAodXNlcjogdW5rbm93bik6IFVzZXJUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBVc2VySW5wdXRTY2hlbWEucGFyc2UodXNlcik7XG4gICAgcmV0dXJuIHZhbGlkYXRlZCBhcyBVc2VyVHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5pc3N1ZXMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBVc2VyVmFsaWRhdGlvbkVycm9yKGBVc2VyIHZhbGlkYXRpb24gZmFpbGVkOiAke2ZpZWxkRXJyb3JzfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdFVzZXJPdXRwdXQgPSAodXNlcjogVXNlclR5cGUpOiBVc2VyVHlwZSA9PiB7XG4gIGNvbnN0IHtwYXNzd29yZCwgc2FsdCwgdmVyaWZpZWRFbWFpbENvZGUsIHZlcmlmaWVkU21zQ29kZSwgLi4uc2FmZVVzZXJ9ID0gdXNlcjtcbiAgcmV0dXJuIHNhZmVVc2VyO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlVXNlciA9ICh1c2VyOiBVc2VyVHlwZSk6IFVzZXJUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwZXJmb3JtVXNlclRyYW5zZm9ybWF0aW9uKHVzZXIpO1xuICAgIHJldHVybiBwYXJzZWQ7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIFVzZXJWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgVXNlclZhbGlkYXRpb25FcnJvcihgVXNlciBwYXJzaW5nIGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gKTtcbiAgfVxufTtcblxuY29uc3QgcGVyZm9ybVVzZXJUcmFuc2Zvcm1hdGlvbiA9ICh1c2VyOiBVc2VyVHlwZSk6IFVzZXJUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGFjdGl2ZSxcbiAgICBiYW5rSWQsXG4gICAgY2l0eSxcbiAgICBjb3VudHJ5LFxuICAgIGN1cnJlbmN5LFxuICAgIGRldmljZVRva2VuLFxuICAgIGRvYixcbiAgICBlbWFpbCxcbiAgICBmaXJzdCxcbiAgICBnZW5kZXIsXG4gICAgaWQsXG4gICAgaW1hZ2VJZCxcbiAgICBsYXN0LFxuICAgIGxhc3RBY3RpdmUsXG4gICAgbG9jYWxlLFxuICAgIG1haWxpbmdMaXN0LFxuICAgIG5hbWUsXG4gICAgcGFzc3dvcmQsXG4gICAgcGhvbmUsXG4gICAgc2FsdCxcbiAgICBzdGF0ZSxcbiAgICBzdHJlZXQxLFxuICAgIHN0cmVldDIsXG4gICAgc3RyaXBlQWNjb3VudElkLFxuICAgIHN0cmlwZUN1c3RvbWVySWQsXG4gICAgdGFncyxcbiAgICB0aW1lem9uZSxcbiAgICB0eXBlLFxuICAgIHVzZXJBY2Nlc3MsXG4gICAgdXNlcklkLFxuICAgIHVzZXJuYW1lLFxuICAgIHZlcmlmaWVkRW1haWwsXG4gICAgdmVyaWZpZWRFbWFpbENvZGUsXG4gICAgdmVyaWZpZWRFbWFpbEV4cGlyZXMsXG4gICAgdmVyaWZpZWRQaG9uZSxcbiAgICB2ZXJpZmllZFBob25lRXhwaXJlcyxcbiAgICB2ZXJpZmllZFNtc0NvZGUsXG4gICAgemlwXG4gIH0gPSB1c2VyO1xuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHtcbiAgICAuLi5wYXJzZURvY3VtZW50KHVzZXIpLFxuICAgIC4uLihhY3RpdmUgIT09IHVuZGVmaW5lZCAmJiB7YWN0aXZlOiAhIWFjdGl2ZX0pLFxuICAgIC4uLihiYW5rSWQgJiYge2JhbmtJZDogcGFyc2VWYXJDaGFyKGJhbmtJZCwgMTYwKX0pLFxuICAgIC4uLihjaXR5ICYmIHtjaXR5OiBwYXJzZVZhckNoYXIoY2l0eSwgMTYwKX0pLFxuICAgIC4uLihjb3VudHJ5ICYmIHtjb3VudHJ5OiB2YWxpZGF0ZUNvdW50cnkoY291bnRyeSl9KSxcbiAgICAuLi4oY3VycmVuY3kgJiYge2N1cnJlbmN5OiBwYXJzZUNoYXIoY3VycmVuY3ksIDMpLnRvVXBwZXJDYXNlKCl9KSxcbiAgICAuLi4oZGV2aWNlVG9rZW4gJiYge2RldmljZVRva2VuOiBwYXJzZVZhckNoYXIoZGV2aWNlVG9rZW4sIDE2MCl9KSxcbiAgICAuLi4oZG9iICE9PSB1bmRlZmluZWQgJiYge2RvYjogcGFyc2VSZWFrdG9yRGF0ZShkb2IpfSksXG4gICAgLi4uKGVtYWlsICYmIHtlbWFpbDogcGFyc2VFbWFpbChlbWFpbCl9KSxcbiAgICAuLi4oZmlyc3QgJiYge2ZpcnN0OiBwYXJzZVZhckNoYXIoZmlyc3QsIDE2MCl9KSxcbiAgICAuLi4oZ2VuZGVyICYmIHtnZW5kZXI6IHZhbGlkYXRlR2VuZGVyKGdlbmRlcil9KSxcbiAgICAuLi4oKGlkIHx8IF9pZCB8fCBfa2V5IHx8IHVzZXJJZCkgJiYge2lkOiBwYXJzZUFyYW5nb0lkKGlkIHx8IF9pZCB8fCBgdXNlcnMvJHtfa2V5IHx8IHVzZXJJZH1gKX0pLFxuICAgIC4uLihpbWFnZUlkICYmIHtpbWFnZUlkOiBwYXJzZVJlYWt0b3JJdGVtSWQoaW1hZ2VJZCl9KSxcbiAgICAuLi4obGFzdCAmJiB7bGFzdDogcGFyc2VWYXJDaGFyKGxhc3QsIDE2MCl9KSxcbiAgICAuLi4obGFzdEFjdGl2ZSAhPT0gdW5kZWZpbmVkICYmIHtsYXN0QWN0aXZlOiBwYXJzZVJlYWt0b3JEYXRlKGxhc3RBY3RpdmUpfSksXG4gICAgLi4uKGxvY2FsZSAmJiB7bG9jYWxlOiBwYXJzZVN0cmluZyhsb2NhbGUsIDUpfSksXG4gICAgLi4uKG1haWxpbmdMaXN0ICE9PSB1bmRlZmluZWQgJiYge21haWxpbmdMaXN0OiAhIW1haWxpbmdMaXN0fSksXG4gICAgLi4uKG5hbWUgJiYge25hbWU6IHBhcnNlUmVha3Rvck5hbWUobmFtZSl9KSxcbiAgICAuLi4ocGFzc3dvcmQgJiYge3Bhc3N3b3JkOiBwYXJzZVBhc3N3b3JkKHBhc3N3b3JkKX0pLFxuICAgIC4uLihwaG9uZSAmJiB7cGhvbmU6IHBhcnNlUGhvbmUocGhvbmUpfSksXG4gICAgLi4uKHNhbHQgJiYge3NhbHQ6IHBhcnNlVmFyQ2hhcihzYWx0LCAxNjApfSksXG4gICAgLi4uKHN0YXRlICYmIHtzdGF0ZTogdmFsaWRhdGVTdGF0ZShzdGF0ZSl9KSxcbiAgICAuLi4oc3RyZWV0MSAmJiB7c3RyZWV0MTogcGFyc2VWYXJDaGFyKHN0cmVldDEsIDE2MCl9KSxcbiAgICAuLi4oc3RyZWV0MiAmJiB7c3RyZWV0MjogcGFyc2VWYXJDaGFyKHN0cmVldDIsIDE2MCl9KSxcbiAgICAuLi4oc3RyaXBlQWNjb3VudElkICYmIHtzdHJpcGVBY2NvdW50SWQ6IHBhcnNlVmFyQ2hhcihzdHJpcGVBY2NvdW50SWQsIDE2MCl9KSxcbiAgICAuLi4oc3RyaXBlQ3VzdG9tZXJJZCAmJiB7c3RyaXBlQ3VzdG9tZXJJZDogcGFyc2VWYXJDaGFyKHN0cmlwZUN1c3RvbWVySWQsIDE2MCl9KSxcbiAgICAuLi4odGFncz8ubGVuZ3RoICYmIHt0YWdzOiB0YWdzLmZpbHRlcigodGFnKSA9PiAhIXRhZykubWFwKCh0YWcpID0+IHBhcnNlVGFnKHRhZykpfSksXG4gICAgLi4uKHRpbWV6b25lICYmIHt0aW1lem9uZTogcGFyc2VTdHJpbmcodGltZXpvbmUsIDE2MCl9KSxcbiAgICAuLi4odHlwZSAmJiB7dHlwZTogcGFyc2VSZWFrdG9yVHlwZSh0eXBlKX0pLFxuICAgIC4uLih1c2VyQWNjZXNzICE9PSB1bmRlZmluZWQgJiYge3VzZXJBY2Nlc3M6IHVzZXJBY2Nlc3MgPyBwYXJzZU51bSh1c2VyQWNjZXNzKSA6IDB9KSxcbiAgICAuLi4oKHVzZXJJZCB8fCBfa2V5KSAmJiB7dXNlcklkOiBwYXJzZUlkKF9rZXkgfHwgdXNlcklkIHx8ICcnKX0pLFxuICAgIC4uLih1c2VybmFtZSAmJiB7dXNlcm5hbWU6IHBhcnNlVmFyQ2hhcih1c2VybmFtZSwgMTYwKX0pLFxuICAgIC4uLih2ZXJpZmllZEVtYWlsICE9PSB1bmRlZmluZWQgJiYge3ZlcmlmaWVkRW1haWw6ICEhdmVyaWZpZWRFbWFpbH0pLFxuICAgIC4uLih2ZXJpZmllZEVtYWlsQ29kZSAhPT0gdW5kZWZpbmVkICYmIHt2ZXJpZmllZEVtYWlsQ29kZTogcGFyc2VOdW0odmVyaWZpZWRFbWFpbENvZGUsIDEwKX0pLFxuICAgIC4uLih2ZXJpZmllZEVtYWlsRXhwaXJlcyAhPT0gdW5kZWZpbmVkICYmIHt2ZXJpZmllZEVtYWlsRXhwaXJlczogcGFyc2VOdW0odmVyaWZpZWRFbWFpbEV4cGlyZXMsIDEwKX0pLFxuICAgIC4uLih2ZXJpZmllZFBob25lICE9PSB1bmRlZmluZWQgJiYge3ZlcmlmaWVkUGhvbmU6ICEhdmVyaWZpZWRQaG9uZX0pLFxuICAgIC4uLih2ZXJpZmllZFBob25lRXhwaXJlcyAhPT0gdW5kZWZpbmVkICYmIHt2ZXJpZmllZFBob25lRXhwaXJlczogcGFyc2VOdW0odmVyaWZpZWRQaG9uZUV4cGlyZXMsIDEwKX0pLFxuICAgIC4uLih2ZXJpZmllZFNtc0NvZGUgIT09IHVuZGVmaW5lZCAmJiB7dmVyaWZpZWRTbXNDb2RlOiBwYXJzZU51bSh2ZXJpZmllZFNtc0NvZGUsIDEwKX0pLFxuICAgIC4uLih6aXAgJiYge3ppcDogcGFyc2VWYXJDaGFyKHppcCwgMjApfSlcbiAgfTtcblxuICBjb25zdCByZXN1bHQgPSByZW1vdmVFbXB0eUtleXModHJhbnNmb3JtZWQpO1xuXG4gIGlmKHVzZXIuX2lkKSB7XG4gICAgcmVzdWx0LmlkID0gdXNlci5faWQ7XG4gICAgcmVzdWx0Ll9pZCA9IHVzZXIuX2lkO1xuICB9IGVsc2UgaWYodXNlci5pZCAmJiAhcmVzdWx0LmlkKSB7XG4gICAgcmVzdWx0LmlkID0gdXNlci5pZDtcbiAgICByZXN1bHQuX2lkID0gdXNlci5pZDtcbiAgfVxuXG4gIGlmKHVzZXIuX2tleSkge1xuICAgIHJlc3VsdC51c2VySWQgPSB1c2VyLl9rZXk7XG4gICAgcmVzdWx0Ll9rZXkgPSB1c2VyLl9rZXk7XG4gIH0gZWxzZSBpZih1c2VyLnVzZXJJZCAmJiAhcmVzdWx0LnVzZXJJZCkge1xuICAgIHJlc3VsdC51c2VySWQgPSB1c2VyLnVzZXJJZDtcbiAgICByZXN1bHQuX2tleSA9IHVzZXIudXNlcklkO1xuICB9XG5cbiAgaWYodXNlci51c2VySWQgJiYgIXJlc3VsdC5fa2V5KSB7XG4gICAgcmVzdWx0Ll9rZXkgPSB1c2VyLnVzZXJJZDtcbiAgfVxuXG4gIGlmKHVzZXIuaWQgJiYgIXJlc3VsdC5faWQpIHtcbiAgICByZXN1bHQuX2lkID0gdXNlci5pZDtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJVc2VyQ2FjaGUgPSAoKTogdm9pZCA9PiB7XG4gIHVzZXJDYWNoZS5jbGVhcigpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFVzZXJDYWNoZVNpemUgPSAoKTogbnVtYmVyID0+IHVzZXJDYWNoZS5zaXplO1xuXG5leHBvcnQge3VzZXJDYWNoZX07XG5cbmV4cG9ydCBjb25zdCBwYXJzZVVzZXJMZWdhY3kgPSAodXNlcjogVXNlclR5cGUpOiBVc2VyVHlwZSA9PiBwYXJzZVVzZXIodXNlcik7Il0sCiAgIm1hcHBpbmdzIjogIkFBQ0EsT0FBUSxLQUFBQSxNQUFRLE1BRWhCLE9BQVEsWUFBQUMsTUFBZSwrQkFDdkIsT0FBUSxpQkFBQUMsRUFBZSxhQUFBQyxFQUFXLGNBQUFDLEVBQVksV0FBQUMsR0FBUyxpQkFBQUMsR0FBZSxjQUFBQyxHQUFZLGVBQUFDLEVBQWEsZ0JBQUFDLE1BQW1CLCtCQUVsSCxPQUFRLG1CQUFBQyxPQUFzQiwyQkFDOUIsT0FBUSxpQkFBQUMsT0FBb0IscUJBQzVCLE9BQVEsb0JBQUFDLEVBQWtCLHNCQUFBQyxHQUFvQixvQkFBQUMsR0FBa0Isb0JBQUFDLE9BQXVCLHNCQUN2RixPQUFRLFlBQUFDLE9BQWUsa0JBRWhCLE1BQU1DLFVBQTRCLEtBQU0sQ0FDN0MsWUFBWUMsRUFBd0JDLEVBQWdCLENBQ2xELE1BQU1ELENBQU8sRUFEcUIsV0FBQUMsRUFFbEMsS0FBSyxLQUFPLHFCQUNkLENBQ0Ys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LEdBQUsvQyxFQUFLLElBQ2pCK0MsRUFBTyxJQUFNL0MsRUFBSyxLQUNWQSxFQUFLLElBQU0sQ0FBQytDLEVBQU8sS0FDM0JBLEVBQU8sR0FBSy9DLEVBQUssR0FDakIrQyxFQUFPLElBQU0vQyxFQUFLLElBR2pCQSxFQUFLLE1BQ04rQyxFQUFPLE9BQVMvQyxFQUFLLEtBQ3JCK0MsRUFBTyxLQUFPL0MsRUFBSyxNQUNYQSxFQUFLLFFBQVUsQ0FBQytDLEVBQU8sU0FDL0JBLEVBQU8sT0FBUy9DLEVBQUssT0FDckIrQyxFQUFPLEtBQU8vQyxFQUFLLFFBR2xCQSxFQUFLLFFBQVUsQ0FBQytDLEVBQU8sT0FDeEJBLEVBQU8sS0FBTy9DLEVBQUssUUFHbEJBLEVBQUssSUFBTSxDQUFDK0MsRUFBTyxNQUNwQkEsRUFBTyxJQUFNL0MsRUFBSyxJQUdiK0MsQ0FDVCxFQUVhQyxHQUFpQixJQUFZLENBQ3hDbEQsRUFBVSxNQUFNLENBQ2xCLEVBRWFtRCxHQUFtQixJQUFjbkQsRUFBVSxLQUlqRCxNQUFNb0QsR0FBbUJDLEdBQTZCQyxHQUFVRCxDQUFJIiwKICAibmFtZXMiOiBbInoiLCAicGFyc2VOdW0iLCAicGFyc2VBcmFuZ29JZCIsICJwYXJzZUNoYXIiLCAicGFyc2VFbWFpbCIsICJwYXJzZUlkIiwgInBhcnNlUGFzc3dvcmQiLCAicGFyc2VQaG9uZSIsICJwYXJzZVN0cmluZyIsICJwYXJzZVZhckNoYXIiLCAicmVtb3ZlRW1wdHlLZXlzIiwgInBhcnNlRG9jdW1lbnQiLCAicGFyc2VSZWFrdG9yRGF0ZSIsICJwYXJzZVJlYWt0b3JJdGVtSWQiLCAicGFyc2VSZWFrdG9yTmFtZSIsICJwYXJzZVJlYWt0b3JUeXBlIiwgInBhcnNlVGFnIiwgIlVzZXJWYWxpZGF0aW9uRXJyb3IiLCAibWVzc2FnZSIsICJmaWVsZCIsICJVc2VySW5wdXRTY2hlbWEiLCAidmFsaWRhdGVDb3VudHJ5IiwgImNvdW50cnkiLCAidXBwZXIiLCAidmFsaWRhdGVTdGF0ZSIsICJzdGF0ZSIsICJ2YWxpZGF0ZUdlbmRlciIsICJnZW5kZXIiLCAidXNlckNhY2hlIiwgInZhbGlkYXRlVXNlcklucHV0IiwgInVzZXIiLCAiZXJyb3IiLCAiZmllbGRFcnJvcnMiLCAiZSIsICJmb3JtYXRVc2VyT3V0cHV0IiwgInBhc3N3b3JkIiwgInNhbHQiLCAidmVyaWZpZWRFbWFpbENvZGUiLCAidmVyaWZpZWRTbXNDb2RlIiwgInNhZmVVc2VyIiwgInBhcnNlVXNlciIsICJwZXJmb3JtVXNlclRyYW5zZm9ybWF0aW9uIiwgIl9pZCIsICJfa2V5IiwgImFjdGl2ZSIsICJiYW5rSWQiLCAiY2l0eSIsICJjdXJyZW5jeSIsICJkZXZpY2VUb2tlbiIsICJkb2IiLCAiZW1haWwiLCAiZmlyc3QiLCAiaWQiLCAiaW1hZ2VJZCIsICJsYXN0IiwgImxhc3RBY3RpdmUiLCAibG9jYWxlIiwgIm1haWxpbmdMaXN0IiwgIm5hbWUiLCAicGhvbmUiLCAic3RyZWV0MSIsICJzdHJlZXQyIiwgInN0cmlwZUFjY291bnRJZCIsICJzdHJpcGVDdXN0b21lcklkIiwgInRhZ3MiLCAidGltZXpvbmUiLCAidHlwZSIsICJ1c2VyQWNjZXNzIiwgInVzZXJJZCIsICJ1c2VybmFtZSIsICJ2ZXJpZmllZEVtYWlsIiwgInZlcmlmaWVkRW1haWxFeHBpcmVzIiwgInZlcmlmaWVkUGhvbmUiLCAidmVyaWZpZWRQaG9uZUV4cGlyZXMiLCAiemlwIiwgInRyYW5zZm9ybWVkIiwgInRhZyIsICJyZXN1bHQiLCAiY2xlYXJVc2VyQ2FjaGUiLCAiZ2V0VXNlckNhY2hlU2l6ZSIsICJwYXJzZVVzZXJMZWdhY3kiLCAidXNlciIsICJwYXJzZVVzZXIiXQp9Cg==