@nlabs/reaktor 0.10.5 → 0.10.7

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 (535) hide show
  1. package/lib/actions/apps.d.ts +1 -0
  2. package/lib/actions/apps.d.ts.map +1 -0
  3. package/lib/actions/apps.js +221 -0
  4. package/lib/actions/connections.d.ts +1 -0
  5. package/lib/actions/connections.d.ts.map +1 -0
  6. package/lib/actions/connections.js +62 -0
  7. package/lib/actions/content.d.ts +1 -0
  8. package/lib/actions/content.d.ts.map +1 -0
  9. package/lib/actions/content.js +240 -0
  10. package/lib/actions/conversations.d.ts +1 -0
  11. package/lib/actions/conversations.d.ts.map +1 -0
  12. package/lib/actions/conversations.js +335 -0
  13. package/lib/actions/dynamodb.d.ts +1 -0
  14. package/lib/actions/dynamodb.d.ts.map +1 -0
  15. package/lib/actions/dynamodb.js +119 -0
  16. package/lib/actions/email.d.ts +1 -0
  17. package/lib/actions/email.d.ts.map +1 -0
  18. package/lib/actions/email.js +56 -0
  19. package/lib/actions/files.d.ts +1 -0
  20. package/lib/actions/files.d.ts.map +1 -0
  21. package/lib/actions/files.js +226 -0
  22. package/lib/actions/groups.d.ts +1 -0
  23. package/lib/actions/groups.d.ts.map +1 -0
  24. package/lib/actions/groups.js +267 -0
  25. package/lib/actions/images.d.ts +1 -0
  26. package/lib/actions/images.d.ts.map +1 -0
  27. package/lib/actions/images.js +723 -0
  28. package/lib/actions/index.d.ts +1 -0
  29. package/lib/actions/index.d.ts.map +1 -0
  30. package/lib/actions/index.js +29 -0
  31. package/lib/actions/ios.d.ts +1 -0
  32. package/lib/actions/ios.d.ts.map +1 -0
  33. package/lib/actions/ios.js +230 -0
  34. package/lib/actions/locations.d.ts +1 -0
  35. package/lib/actions/locations.d.ts.map +1 -0
  36. package/lib/actions/locations.js +111 -0
  37. package/lib/actions/messages.d.ts +1 -0
  38. package/lib/actions/messages.d.ts.map +1 -0
  39. package/lib/actions/messages.js +167 -0
  40. package/lib/actions/notifications.d.ts +3 -2
  41. package/lib/actions/notifications.d.ts.map +1 -0
  42. package/lib/actions/notifications.js +37 -0
  43. package/lib/actions/payments.d.ts +1 -0
  44. package/lib/actions/payments.d.ts.map +1 -0
  45. package/lib/actions/payments.js +449 -0
  46. package/lib/actions/posts.d.ts +1 -0
  47. package/lib/actions/posts.d.ts.map +1 -0
  48. package/lib/actions/posts.js +608 -0
  49. package/lib/actions/profiles.d.ts +1 -0
  50. package/lib/actions/profiles.d.ts.map +1 -0
  51. package/lib/actions/profiles.js +58 -0
  52. package/lib/actions/reactions.d.ts +1 -0
  53. package/lib/actions/reactions.d.ts.map +1 -0
  54. package/lib/actions/reactions.js +286 -0
  55. package/lib/actions/s3.d.ts +1 -0
  56. package/lib/actions/s3.d.ts.map +1 -0
  57. package/lib/actions/s3.js +102 -0
  58. package/lib/actions/search.d.ts +1 -0
  59. package/lib/actions/search.d.ts.map +1 -0
  60. package/lib/actions/search.js +81 -0
  61. package/lib/actions/sms.d.ts +1 -0
  62. package/lib/actions/sms.d.ts.map +1 -0
  63. package/lib/actions/sms.js +52 -0
  64. package/lib/actions/statistics.d.ts +1 -0
  65. package/lib/actions/statistics.d.ts.map +1 -0
  66. package/lib/actions/statistics.js +43 -0
  67. package/lib/actions/subscriptions.d.ts +1 -0
  68. package/lib/actions/subscriptions.d.ts.map +1 -0
  69. package/lib/actions/subscriptions.js +202 -0
  70. package/lib/actions/tags.d.ts +1 -0
  71. package/lib/actions/tags.d.ts.map +1 -0
  72. package/lib/actions/tags.js +263 -0
  73. package/lib/actions/users.d.ts +1 -0
  74. package/lib/actions/users.d.ts.map +1 -0
  75. package/lib/actions/users.js +802 -0
  76. package/lib/actions/videos.d.ts +1 -0
  77. package/lib/actions/videos.d.ts.map +1 -0
  78. package/lib/actions/videos.js +423 -0
  79. package/lib/actions/websockets.d.ts +1 -0
  80. package/lib/actions/websockets.d.ts.map +1 -0
  81. package/lib/actions/websockets.js +164 -0
  82. package/lib/adapters/arangoAdapter.d.ts +1 -0
  83. package/lib/adapters/arangoAdapter.d.ts.map +1 -0
  84. package/lib/adapters/arangoAdapter.js +70 -0
  85. package/lib/adapters/contentAdapter.d.ts +1 -0
  86. package/lib/adapters/contentAdapter.d.ts.map +1 -0
  87. package/lib/adapters/contentAdapter.js +108 -0
  88. package/lib/adapters/fileAdapter.d.ts +1 -0
  89. package/lib/adapters/fileAdapter.d.ts.map +1 -0
  90. package/lib/adapters/fileAdapter.js +119 -0
  91. package/lib/adapters/imageAdapter.d.ts +1 -0
  92. package/lib/adapters/imageAdapter.d.ts.map +1 -0
  93. package/lib/adapters/imageAdapter.js +112 -0
  94. package/lib/adapters/index.d.ts +1 -0
  95. package/lib/adapters/index.d.ts.map +1 -0
  96. package/lib/adapters/index.js +11 -0
  97. package/lib/adapters/messageAdapter.d.ts +1 -0
  98. package/lib/adapters/messageAdapter.d.ts.map +1 -0
  99. package/lib/adapters/messageAdapter.js +82 -0
  100. package/lib/adapters/postAdapter.d.ts +1 -0
  101. package/lib/adapters/postAdapter.d.ts.map +1 -0
  102. package/lib/adapters/postAdapter.js +117 -0
  103. package/lib/adapters/reaktorAdapter.d.ts +1 -0
  104. package/lib/adapters/reaktorAdapter.d.ts.map +1 -0
  105. package/lib/adapters/reaktorAdapter.js +59 -0
  106. package/lib/adapters/tagAdapter.d.ts +1 -0
  107. package/lib/adapters/tagAdapter.d.ts.map +1 -0
  108. package/lib/adapters/tagAdapter.js +99 -0
  109. package/lib/adapters/userAdapter.d.ts +1 -0
  110. package/lib/adapters/userAdapter.d.ts.map +1 -0
  111. package/lib/adapters/userAdapter.js +264 -0
  112. package/lib/config.d.ts +1 -0
  113. package/lib/config.d.ts.map +1 -0
  114. package/lib/config.js +161 -0
  115. package/lib/handlers/graphqlHandler.d.ts +1 -0
  116. package/lib/handlers/graphqlHandler.d.ts.map +1 -0
  117. package/lib/handlers/graphqlHandler.js +118 -0
  118. package/lib/index.d.ts +1 -0
  119. package/lib/index.d.ts.map +1 -0
  120. package/lib/index.js +18 -0
  121. package/lib/lambdas/actions/websockets.d.ts +1 -0
  122. package/lib/lambdas/actions/websockets.d.ts.map +1 -0
  123. package/lib/lambdas/actions/websockets.js +105 -0
  124. package/lib/lambdas/authorizer.d.ts +1 -0
  125. package/lib/lambdas/authorizer.d.ts.map +1 -0
  126. package/lib/lambdas/authorizer.js +41 -0
  127. package/lib/lambdas/connection.d.ts +1 -0
  128. package/lib/lambdas/connection.d.ts.map +1 -0
  129. package/lib/lambdas/connection.js +85 -0
  130. package/lib/lambdas/utils/message.d.ts +1 -0
  131. package/lib/lambdas/utils/message.d.ts.map +1 -0
  132. package/lib/lambdas/utils/message.js +20 -0
  133. package/lib/lambdas/utils/websocket.d.ts +1 -0
  134. package/lib/lambdas/utils/websocket.d.ts.map +1 -0
  135. package/lib/lambdas/utils/websocket.js +78 -0
  136. package/lib/mocks/conversation.d.ts +1 -0
  137. package/lib/mocks/conversation.d.ts.map +1 -0
  138. package/lib/mocks/conversation.js +10 -0
  139. package/lib/mocks/file.d.ts +1 -0
  140. package/lib/mocks/file.d.ts.map +1 -0
  141. package/lib/mocks/file.js +13 -0
  142. package/lib/mocks/group.d.ts +1 -0
  143. package/lib/mocks/group.d.ts.map +1 -0
  144. package/lib/mocks/group.js +20 -0
  145. package/lib/mocks/image.d.ts +1 -0
  146. package/lib/mocks/image.d.ts.map +1 -0
  147. package/lib/mocks/image.js +17 -0
  148. package/lib/mocks/post.d.ts +1 -0
  149. package/lib/mocks/post.d.ts.map +1 -0
  150. package/lib/mocks/post.js +28 -0
  151. package/lib/mocks/tag.d.ts +1 -0
  152. package/lib/mocks/tag.d.ts.map +1 -0
  153. package/lib/mocks/tag.js +12 -0
  154. package/lib/mocks/user.d.ts +1 -0
  155. package/lib/mocks/user.d.ts.map +1 -0
  156. package/lib/mocks/user.js +61 -0
  157. package/lib/mocks/video.d.ts +1 -0
  158. package/lib/mocks/video.d.ts.map +1 -0
  159. package/lib/mocks/video.js +17 -0
  160. package/lib/mutations/content.d.ts +1 -0
  161. package/lib/mutations/content.d.ts.map +1 -0
  162. package/lib/mutations/content.js +27 -0
  163. package/lib/mutations/index.d.ts +1 -0
  164. package/lib/mutations/index.d.ts.map +1 -0
  165. package/lib/mutations/index.js +29 -0
  166. package/lib/mutations/locations.d.ts +1 -0
  167. package/lib/mutations/locations.d.ts.map +1 -0
  168. package/lib/mutations/locations.js +22 -0
  169. package/lib/mutations/messages.d.ts +1 -0
  170. package/lib/mutations/messages.d.ts.map +1 -0
  171. package/lib/mutations/messages.js +75 -0
  172. package/lib/mutations/posts.d.ts +1 -0
  173. package/lib/mutations/posts.d.ts.map +1 -0
  174. package/lib/mutations/posts.js +31 -0
  175. package/lib/mutations/profiles.d.ts +1 -0
  176. package/lib/mutations/profiles.d.ts.map +1 -0
  177. package/lib/mutations/profiles.js +78 -0
  178. package/lib/mutations/reactions.d.ts +1 -0
  179. package/lib/mutations/reactions.d.ts.map +1 -0
  180. package/lib/mutations/reactions.js +29 -0
  181. package/lib/mutations/statistics.d.ts +1 -0
  182. package/lib/mutations/statistics.d.ts.map +1 -0
  183. package/lib/mutations/statistics.js +17 -0
  184. package/lib/mutations/subscriptions.d.ts +1 -0
  185. package/lib/mutations/subscriptions.d.ts.map +1 -0
  186. package/lib/mutations/subscriptions.js +38 -0
  187. package/lib/mutations/tags.d.ts +1 -0
  188. package/lib/mutations/tags.d.ts.map +1 -0
  189. package/lib/mutations/tags.js +109 -0
  190. package/lib/mutations/users.d.ts +1 -0
  191. package/lib/mutations/users.d.ts.map +1 -0
  192. package/lib/mutations/users.js +129 -0
  193. package/lib/objectTypes/app.d.ts +1 -0
  194. package/lib/objectTypes/app.d.ts.map +1 -0
  195. package/lib/objectTypes/app.js +147 -0
  196. package/lib/objectTypes/bankAccount.d.ts +1 -0
  197. package/lib/objectTypes/bankAccount.d.ts.map +1 -0
  198. package/lib/objectTypes/bankAccount.js +54 -0
  199. package/lib/objectTypes/connection.d.ts +1 -0
  200. package/lib/objectTypes/connection.d.ts.map +1 -0
  201. package/lib/objectTypes/connection.js +26 -0
  202. package/lib/objectTypes/content.d.ts +1 -0
  203. package/lib/objectTypes/content.d.ts.map +1 -0
  204. package/lib/objectTypes/content.js +79 -0
  205. package/lib/objectTypes/conversation.d.ts +1 -0
  206. package/lib/objectTypes/conversation.d.ts.map +1 -0
  207. package/lib/objectTypes/conversation.js +53 -0
  208. package/lib/objectTypes/creditCard.d.ts +1 -0
  209. package/lib/objectTypes/creditCard.d.ts.map +1 -0
  210. package/lib/objectTypes/creditCard.js +64 -0
  211. package/lib/objectTypes/document.d.ts +1 -0
  212. package/lib/objectTypes/document.d.ts.map +1 -0
  213. package/lib/objectTypes/document.js +21 -0
  214. package/lib/objectTypes/error.d.ts +1 -0
  215. package/lib/objectTypes/error.d.ts.map +1 -0
  216. package/lib/objectTypes/error.js +24 -0
  217. package/lib/objectTypes/external.d.ts +1 -0
  218. package/lib/objectTypes/external.d.ts.map +1 -0
  219. package/lib/objectTypes/external.js +52 -0
  220. package/lib/objectTypes/file.d.ts +1 -0
  221. package/lib/objectTypes/file.d.ts.map +1 -0
  222. package/lib/objectTypes/file.js +76 -0
  223. package/lib/objectTypes/filter.d.ts +1 -0
  224. package/lib/objectTypes/filter.d.ts.map +1 -0
  225. package/lib/objectTypes/filter.js +21 -0
  226. package/lib/objectTypes/group.d.ts +1 -0
  227. package/lib/objectTypes/group.d.ts.map +1 -0
  228. package/lib/objectTypes/group.js +97 -0
  229. package/lib/objectTypes/iapSubscription.d.ts +1 -0
  230. package/lib/objectTypes/iapSubscription.d.ts.map +1 -0
  231. package/lib/objectTypes/iapSubscription.js +18 -0
  232. package/lib/objectTypes/image.d.ts +1 -0
  233. package/lib/objectTypes/image.d.ts.map +1 -0
  234. package/lib/objectTypes/image.js +105 -0
  235. package/lib/objectTypes/index.d.ts +1 -0
  236. package/lib/objectTypes/index.d.ts.map +1 -0
  237. package/lib/objectTypes/index.js +28 -0
  238. package/lib/objectTypes/location.d.ts +1 -0
  239. package/lib/objectTypes/location.d.ts.map +1 -0
  240. package/lib/objectTypes/location.js +85 -0
  241. package/lib/objectTypes/message.d.ts +1 -0
  242. package/lib/objectTypes/message.d.ts.map +1 -0
  243. package/lib/objectTypes/message.js +72 -0
  244. package/lib/objectTypes/passcode.d.ts +1 -0
  245. package/lib/objectTypes/passcode.d.ts.map +1 -0
  246. package/lib/objectTypes/passcode.js +20 -0
  247. package/lib/objectTypes/plan.d.ts +1 -0
  248. package/lib/objectTypes/plan.d.ts.map +1 -0
  249. package/lib/objectTypes/plan.js +71 -0
  250. package/lib/objectTypes/post.d.ts +1 -0
  251. package/lib/objectTypes/post.d.ts.map +1 -0
  252. package/lib/objectTypes/post.js +101 -0
  253. package/lib/objectTypes/profile.d.ts +1 -0
  254. package/lib/objectTypes/profile.d.ts.map +1 -0
  255. package/lib/objectTypes/profile.js +68 -0
  256. package/lib/objectTypes/reaction.d.ts +1 -0
  257. package/lib/objectTypes/reaction.d.ts.map +1 -0
  258. package/lib/objectTypes/reaction.js +37 -0
  259. package/lib/objectTypes/relation.d.ts +1 -0
  260. package/lib/objectTypes/relation.d.ts.map +1 -0
  261. package/lib/objectTypes/relation.js +27 -0
  262. package/lib/objectTypes/search.d.ts +1 -0
  263. package/lib/objectTypes/search.d.ts.map +1 -0
  264. package/lib/objectTypes/search.js +50 -0
  265. package/lib/objectTypes/statistics.d.ts +1 -0
  266. package/lib/objectTypes/statistics.d.ts.map +1 -0
  267. package/lib/objectTypes/statistics.js +17 -0
  268. package/lib/objectTypes/subscription.d.ts +1 -0
  269. package/lib/objectTypes/subscription.d.ts.map +1 -0
  270. package/lib/objectTypes/subscription.js +102 -0
  271. package/lib/objectTypes/tag.d.ts +1 -0
  272. package/lib/objectTypes/tag.d.ts.map +1 -0
  273. package/lib/objectTypes/tag.js +41 -0
  274. package/lib/objectTypes/user.d.ts +1 -0
  275. package/lib/objectTypes/user.d.ts.map +1 -0
  276. package/lib/objectTypes/user.js +111 -0
  277. package/lib/queries/content.d.ts +1 -0
  278. package/lib/queries/content.d.ts.map +1 -0
  279. package/lib/queries/content.js +50 -0
  280. package/lib/queries/index.d.ts +1 -0
  281. package/lib/queries/index.d.ts.map +1 -0
  282. package/lib/queries/index.js +27 -0
  283. package/lib/queries/locations.d.ts +1 -0
  284. package/lib/queries/locations.d.ts.map +1 -0
  285. package/lib/queries/locations.js +23 -0
  286. package/lib/queries/messages.d.ts +1 -0
  287. package/lib/queries/messages.d.ts.map +1 -0
  288. package/lib/queries/messages.js +35 -0
  289. package/lib/queries/posts.d.ts +1 -0
  290. package/lib/queries/posts.d.ts.map +1 -0
  291. package/lib/queries/posts.js +154 -0
  292. package/lib/queries/reactions.d.ts +1 -0
  293. package/lib/queries/reactions.d.ts.map +1 -0
  294. package/lib/queries/reactions.js +34 -0
  295. package/lib/queries/statistics.d.ts +1 -0
  296. package/lib/queries/statistics.d.ts.map +1 -0
  297. package/lib/queries/statistics.js +17 -0
  298. package/lib/queries/subscriptions.d.ts +1 -0
  299. package/lib/queries/subscriptions.d.ts.map +1 -0
  300. package/lib/queries/subscriptions.js +21 -0
  301. package/lib/queries/tags.d.ts +1 -0
  302. package/lib/queries/tags.d.ts.map +1 -0
  303. package/lib/queries/tags.js +56 -0
  304. package/lib/queries/users.d.ts +1 -0
  305. package/lib/queries/users.d.ts.map +1 -0
  306. package/lib/queries/users.js +39 -0
  307. package/lib/templates/email/layout.d.ts +1 -0
  308. package/lib/templates/email/layout.d.ts.map +1 -0
  309. package/lib/templates/email/layout.js +281 -0
  310. package/lib/templates/email/passwordForgot.d.ts +1 -0
  311. package/lib/templates/email/passwordForgot.d.ts.map +1 -0
  312. package/lib/templates/email/passwordForgot.js +17 -0
  313. package/lib/templates/email/passwordRecovery.d.ts +1 -0
  314. package/lib/templates/email/passwordRecovery.d.ts.map +1 -0
  315. package/lib/templates/email/passwordRecovery.js +14 -0
  316. package/lib/templates/email/verifyEmail.d.ts +1 -0
  317. package/lib/templates/email/verifyEmail.d.ts.map +1 -0
  318. package/lib/templates/email/verifyEmail.js +17 -0
  319. package/lib/templates/email/welcome.d.ts +1 -0
  320. package/lib/templates/email/welcome.d.ts.map +1 -0
  321. package/lib/templates/email/welcome.js +17 -0
  322. package/lib/templates/sms/passwordForgot.d.ts +1 -0
  323. package/lib/templates/sms/passwordForgot.d.ts.map +1 -0
  324. package/lib/templates/sms/passwordForgot.js +3 -0
  325. package/lib/templates/sms/passwordRecovery.d.ts +1 -0
  326. package/lib/templates/sms/passwordRecovery.d.ts.map +1 -0
  327. package/lib/templates/sms/passwordRecovery.js +3 -0
  328. package/lib/templates/sms/verifyEmail.d.ts +1 -0
  329. package/lib/templates/sms/verifyEmail.d.ts.map +1 -0
  330. package/lib/templates/sms/verifyEmail.js +3 -0
  331. package/lib/templates/sms/verifyPhone.d.ts +1 -0
  332. package/lib/templates/sms/verifyPhone.d.ts.map +1 -0
  333. package/lib/templates/sms/verifyPhone.js +3 -0
  334. package/lib/templates/sms/welcome.d.ts +1 -0
  335. package/lib/templates/sms/welcome.d.ts.map +1 -0
  336. package/lib/templates/sms/welcome.js +3 -0
  337. package/lib/types/apps.types.d.ts +1 -0
  338. package/lib/types/apps.types.d.ts.map +1 -0
  339. package/lib/types/apps.types.js +10 -0
  340. package/lib/types/arangodb.types.d.ts +1 -0
  341. package/lib/types/arangodb.types.d.ts.map +1 -0
  342. package/lib/types/arangodb.types.js +6 -0
  343. package/lib/types/auth.types.d.ts +1 -0
  344. package/lib/types/auth.types.d.ts.map +1 -0
  345. package/lib/types/auth.types.js +6 -0
  346. package/lib/types/connections.types.d.ts +1 -0
  347. package/lib/types/connections.types.d.ts.map +1 -0
  348. package/lib/types/connections.types.js +6 -0
  349. package/lib/types/content.types.d.ts +1 -0
  350. package/lib/types/content.types.d.ts.map +1 -0
  351. package/lib/types/content.types.js +6 -0
  352. package/lib/types/conversations.types.d.ts +1 -0
  353. package/lib/types/conversations.types.d.ts.map +1 -0
  354. package/lib/types/conversations.types.js +6 -0
  355. package/lib/types/email.types.d.ts +1 -0
  356. package/lib/types/email.types.d.ts.map +1 -0
  357. package/lib/types/email.types.js +6 -0
  358. package/lib/types/error.types.d.ts +1 -0
  359. package/lib/types/error.types.d.ts.map +1 -0
  360. package/lib/types/error.types.js +20 -0
  361. package/lib/types/files.types.d.ts +1 -0
  362. package/lib/types/files.types.d.ts.map +1 -0
  363. package/lib/types/files.types.js +6 -0
  364. package/lib/types/google.types.d.ts +1 -0
  365. package/lib/types/google.types.d.ts.map +1 -0
  366. package/lib/types/google.types.js +6 -0
  367. package/lib/types/groups.types.d.ts +1 -0
  368. package/lib/types/groups.types.d.ts.map +1 -0
  369. package/lib/types/groups.types.js +6 -0
  370. package/lib/types/images.types.d.ts +1 -0
  371. package/lib/types/images.types.d.ts.map +1 -0
  372. package/lib/types/images.types.js +6 -0
  373. package/lib/types/index.d.ts +1 -0
  374. package/lib/types/index.d.ts.map +1 -0
  375. package/lib/types/index.js +28 -0
  376. package/lib/types/locations.types.d.ts +1 -0
  377. package/lib/types/locations.types.d.ts.map +1 -0
  378. package/lib/types/locations.types.js +6 -0
  379. package/lib/types/messages.types.d.ts +1 -0
  380. package/lib/types/messages.types.d.ts.map +1 -0
  381. package/lib/types/messages.types.js +6 -0
  382. package/lib/types/notifications.types.d.ts +1 -0
  383. package/lib/types/notifications.types.d.ts.map +1 -0
  384. package/lib/types/notifications.types.js +6 -0
  385. package/lib/types/payments.types.d.ts +1 -0
  386. package/lib/types/payments.types.d.ts.map +1 -0
  387. package/lib/types/payments.types.js +6 -0
  388. package/lib/types/posts.types.d.ts +1 -0
  389. package/lib/types/posts.types.d.ts.map +1 -0
  390. package/lib/types/posts.types.js +6 -0
  391. package/lib/types/profiles.types.d.ts +1 -0
  392. package/lib/types/profiles.types.d.ts.map +1 -0
  393. package/lib/types/profiles.types.js +3 -0
  394. package/lib/types/statistics.types.d.ts +1 -0
  395. package/lib/types/statistics.types.d.ts.map +1 -0
  396. package/lib/types/statistics.types.js +3 -0
  397. package/lib/types/tags.types.d.ts +1 -0
  398. package/lib/types/tags.types.d.ts.map +1 -0
  399. package/lib/types/tags.types.js +6 -0
  400. package/lib/types/users.types.d.ts +1 -0
  401. package/lib/types/users.types.d.ts.map +1 -0
  402. package/lib/types/users.types.js +6 -0
  403. package/lib/types/videos.types.d.ts +1 -0
  404. package/lib/types/videos.types.d.ts.map +1 -0
  405. package/lib/types/videos.types.js +6 -0
  406. package/lib/types/websockets.types.d.ts +1 -0
  407. package/lib/types/websockets.types.d.ts.map +1 -0
  408. package/lib/types/websockets.types.js +6 -0
  409. package/lib/utils/adapterUtils.d.ts +1 -0
  410. package/lib/utils/adapterUtils.d.ts.map +1 -0
  411. package/lib/utils/adapterUtils.js +23 -0
  412. package/lib/utils/analyticsUtils.d.ts +1 -0
  413. package/lib/utils/analyticsUtils.d.ts.map +1 -0
  414. package/lib/utils/analyticsUtils.js +45 -0
  415. package/lib/utils/arangodbUtils.d.ts +1 -0
  416. package/lib/utils/arangodbUtils.d.ts.map +1 -0
  417. package/lib/utils/arangodbUtils.js +130 -0
  418. package/lib/utils/authUtils.d.ts +1 -0
  419. package/lib/utils/authUtils.d.ts.map +1 -0
  420. package/lib/utils/authUtils.js +54 -0
  421. package/lib/utils/contextUtils.d.ts +1 -0
  422. package/lib/utils/contextUtils.d.ts.map +1 -0
  423. package/lib/utils/contextUtils.js +10 -0
  424. package/lib/utils/dbI18n.d.ts +1 -0
  425. package/lib/utils/dbI18n.d.ts.map +1 -0
  426. package/lib/utils/dbI18n.example.d.ts +1 -0
  427. package/lib/utils/dbI18n.example.d.ts.map +1 -0
  428. package/lib/utils/dbI18n.example.js +93 -0
  429. package/lib/utils/dbI18n.js +28 -0
  430. package/lib/utils/googleTranslate.d.ts +1 -0
  431. package/lib/utils/googleTranslate.d.ts.map +1 -0
  432. package/lib/utils/googleTranslate.js +70 -0
  433. package/lib/utils/graphqlUtils.d.ts +1 -0
  434. package/lib/utils/graphqlUtils.d.ts.map +1 -0
  435. package/lib/utils/graphqlUtils.js +11 -0
  436. package/lib/utils/index.d.ts +1 -0
  437. package/lib/utils/index.d.ts.map +1 -0
  438. package/lib/utils/index.js +19 -0
  439. package/lib/utils/languageDetection.d.ts +1 -0
  440. package/lib/utils/languageDetection.d.ts.map +1 -0
  441. package/lib/utils/languageDetection.js +120 -0
  442. package/lib/utils/localeUtils.d.ts +1 -0
  443. package/lib/utils/localeUtils.d.ts.map +1 -0
  444. package/lib/utils/localeUtils.example.d.ts +1 -0
  445. package/lib/utils/localeUtils.example.d.ts.map +1 -0
  446. package/lib/utils/localeUtils.example.js +124 -0
  447. package/lib/utils/localeUtils.js +71 -0
  448. package/lib/utils/middlewareUtils.d.ts +1 -0
  449. package/lib/utils/middlewareUtils.d.ts.map +1 -0
  450. package/lib/utils/middlewareUtils.js +10 -0
  451. package/lib/utils/sessionUtils.d.ts +1 -0
  452. package/lib/utils/sessionUtils.d.ts.map +1 -0
  453. package/lib/utils/sessionUtils.js +26 -0
  454. package/lib/utils/stripeUtils.d.ts +2 -1
  455. package/lib/utils/stripeUtils.d.ts.map +1 -0
  456. package/lib/utils/stripeUtils.js +12 -0
  457. package/lib/utils/templateUtils.d.ts +1 -0
  458. package/lib/utils/templateUtils.d.ts.map +1 -0
  459. package/lib/utils/templateUtils.js +11 -0
  460. package/lib/utils/testUtils.d.ts +1 -0
  461. package/lib/utils/testUtils.d.ts.map +1 -0
  462. package/lib/utils/testUtils.js +292 -0
  463. package/lib/utils/translationQueue.d.ts +1 -0
  464. package/lib/utils/translationQueue.d.ts.map +1 -0
  465. package/lib/utils/translationQueue.example.d.ts +1 -0
  466. package/lib/utils/translationQueue.example.d.ts.map +1 -0
  467. package/lib/utils/translationQueue.example.js +340 -0
  468. package/lib/utils/translationQueue.js +113 -0
  469. package/package.json +54 -24
  470. package/.env +0 -1
  471. package/.env.example +0 -1
  472. package/DATABASE_I18N_GUIDE.md +0 -434
  473. package/TEST_UTILITIES_GUIDE.md +0 -360
  474. package/coverage/actions/groups.ts.html +0 -1039
  475. package/coverage/actions/images.ts.html +0 -2500
  476. package/coverage/actions/index.html +0 -116
  477. package/coverage/actions/notifications.ts.html +0 -223
  478. package/coverage/actions/posts.ts.html +0 -2356
  479. package/coverage/actions/tags.ts.html +0 -1000
  480. package/coverage/adapters/arangoAdapter.ts.html +0 -301
  481. package/coverage/adapters/fileAdapter.ts.html +0 -445
  482. package/coverage/adapters/index.html +0 -176
  483. package/coverage/adapters/postAdapter.ts.html +0 -436
  484. package/coverage/adapters/reaktorAdapter.ts.html +0 -310
  485. package/coverage/adapters/tagAdapter.ts.html +0 -409
  486. package/coverage/adapters/userAdapter.ts.html +0 -829
  487. package/coverage/analyticsUtils.ts.html +0 -286
  488. package/coverage/base.css +0 -224
  489. package/coverage/block-navigation.js +0 -87
  490. package/coverage/clover.xml +0 -6
  491. package/coverage/config.ts.html +0 -766
  492. package/coverage/coverage-final.json +0 -1
  493. package/coverage/favicon.png +0 -0
  494. package/coverage/index.html +0 -221
  495. package/coverage/lcov-report/base.css +0 -224
  496. package/coverage/lcov-report/block-navigation.js +0 -87
  497. package/coverage/lcov-report/favicon.png +0 -0
  498. package/coverage/lcov-report/index.html +0 -101
  499. package/coverage/lcov-report/prettify.css +0 -1
  500. package/coverage/lcov-report/prettify.js +0 -2
  501. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  502. package/coverage/lcov-report/sorter.js +0 -196
  503. package/coverage/lcov.info +0 -0
  504. package/coverage/mocks/file.ts.html +0 -118
  505. package/coverage/mocks/group.ts.html +0 -145
  506. package/coverage/mocks/image.ts.html +0 -142
  507. package/coverage/mocks/index.html +0 -176
  508. package/coverage/mocks/post.ts.html +0 -169
  509. package/coverage/mocks/tag.ts.html +0 -121
  510. package/coverage/mocks/user.ts.html +0 -271
  511. package/coverage/prettify.css +0 -1
  512. package/coverage/prettify.js +0 -2
  513. package/coverage/sort-arrow-sprite.png +0 -0
  514. package/coverage/sorter.js +0 -210
  515. package/coverage/testUtils.ts.html +0 -1309
  516. package/coverage/translationQueue.ts.html +0 -592
  517. package/coverage/types/error.ts.html +0 -145
  518. package/coverage/types/error.types.ts.html +0 -148
  519. package/coverage/types/index.html +0 -116
  520. package/coverage/utils/adapterUtils.ts.html +0 -163
  521. package/coverage/utils/analyticsUtils.ts.html +0 -286
  522. package/coverage/utils/arangodbUtils.ts.html +0 -463
  523. package/coverage/utils/authUtils.ts.html +0 -328
  524. package/coverage/utils/dbI18n.ts.html +0 -280
  525. package/coverage/utils/googleTranslate.ts.html +0 -385
  526. package/coverage/utils/index.html +0 -131
  527. package/coverage/utils/localeUtils.ts.html +0 -193
  528. package/coverage/utils/sessionUtils.ts.html +0 -211
  529. package/coverage/utils/testUtils.ts.html +0 -1309
  530. package/index.js +0 -5
  531. package/jpg:- +0 -0
  532. package/lex.config.mjs +0 -34
  533. package/tsconfig.build.json +0 -21
  534. package/tsconfig.lint.json +0 -33
  535. package/tsconfig.test.json +0 -31
@@ -6,3 +6,4 @@ export interface LanguageDetectionContext {
6
6
  userPreference?: Locale;
7
7
  }
8
8
  export declare const detectLanguage: (context: LanguageDetectionContext) => Locale;
9
+ //# sourceMappingURL=languageDetection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languageDetection.d.ts","sourceRoot":"","sources":["../../src/utils/languageDetection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAEtD,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAiFD,eAAO,MAAM,cAAc,GAAI,SAAS,wBAAwB,KAAG,MA2BlE,CAAC"}
@@ -0,0 +1,120 @@
1
+ const countryToLocaleMap = {
2
+ AR: 'es',
3
+ AU: 'en',
4
+ BE: 'fr',
5
+ BO: 'es',
6
+ BR: 'pt',
7
+ CA: 'en',
8
+ CL: 'es',
9
+ CO: 'es',
10
+ CR: 'es',
11
+ CU: 'es',
12
+ CV: 'pt',
13
+ DO: 'es',
14
+ EC: 'es',
15
+ ES: 'es',
16
+ FR: 'fr',
17
+ GB: 'en',
18
+ GQ: 'es',
19
+ GT: 'es',
20
+ GW: 'pt',
21
+ HN: 'es',
22
+ IT: 'it',
23
+ LI: 'de',
24
+ LU: 'fr',
25
+ MC: 'fr',
26
+ MX: 'es',
27
+ MZ: 'pt',
28
+ NI: 'es',
29
+ PA: 'es',
30
+ PE: 'es',
31
+ PY: 'es',
32
+ SM: 'it',
33
+ SV: 'es',
34
+ TL: 'pt',
35
+ US: 'en',
36
+ VA: 'it',
37
+ VE: 'es'
38
+ };
39
+ const phoneCodeToLocaleMap = {
40
+ 1: 'en',
41
+ 32: 'fr',
42
+ 33: 'fr',
43
+ 34: 'es',
44
+ 39: 'it',
45
+ 41: 'fr',
46
+ 43: 'de',
47
+ 49: 'de',
48
+ 51: 'es',
49
+ 52: 'es',
50
+ 53: 'es',
51
+ 54: 'es',
52
+ 55: 'pt',
53
+ 56: 'es',
54
+ 57: 'es',
55
+ 58: 'es',
56
+ 240: 'es',
57
+ 244: 'pt',
58
+ 245: 'pt',
59
+ 258: 'pt',
60
+ 351: 'pt',
61
+ 352: 'fr',
62
+ 377: 'fr',
63
+ 378: 'it',
64
+ 379: 'it',
65
+ 423: 'de',
66
+ 502: 'es',
67
+ 503: 'es',
68
+ 504: 'es',
69
+ 505: 'es',
70
+ 506: 'es',
71
+ 507: 'es',
72
+ 591: 'es',
73
+ 593: 'es',
74
+ 595: 'es',
75
+ 670: 'pt',
76
+ 1809: 'es'
77
+ };
78
+ export const detectLanguage = (context)=>{
79
+ if (context.userPreference) {
80
+ return context.userPreference;
81
+ }
82
+ if (context.phoneCountryCode) {
83
+ const locale = phoneCodeToLocaleMap[context.phoneCountryCode];
84
+ if (locale) {
85
+ return locale;
86
+ }
87
+ }
88
+ if (context.acceptLanguage) {
89
+ const locale = parseAcceptLanguage(context.acceptLanguage);
90
+ if (locale) {
91
+ return locale;
92
+ }
93
+ }
94
+ if (context.ipCountry) {
95
+ const locale = countryToLocaleMap[context.ipCountry];
96
+ if (locale) {
97
+ return locale;
98
+ }
99
+ }
100
+ return 'en';
101
+ };
102
+ const parseAcceptLanguage = (acceptLanguage)=>{
103
+ const languages = acceptLanguage.split(',').map((lang)=>lang.trim().split(';')[0]).filter((lang)=>lang.length >= 2);
104
+ for (const lang of languages){
105
+ const locale = lang.substring(0, 2);
106
+ if ([
107
+ 'en',
108
+ 'es',
109
+ 'fr',
110
+ 'de',
111
+ 'pt',
112
+ 'it'
113
+ ].includes(locale)) {
114
+ return locale;
115
+ }
116
+ }
117
+ return null;
118
+ };
119
+
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3V0aWxzL2xhbmd1YWdlRGV0ZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtMb2NhbGV9IGZyb20gJy4uL3R5cGVzL2NvbnRlbnQudHlwZXMuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExhbmd1YWdlRGV0ZWN0aW9uQ29udGV4dCB7XG4gIGFjY2VwdExhbmd1YWdlPzogc3RyaW5nO1xuICBpcENvdW50cnk/OiBzdHJpbmc7XG4gIHBob25lQ291bnRyeUNvZGU/OiBzdHJpbmc7XG4gIHVzZXJQcmVmZXJlbmNlPzogTG9jYWxlO1xufVxuXG5jb25zdCBjb3VudHJ5VG9Mb2NhbGVNYXA6IFJlY29yZDxzdHJpbmcsIExvY2FsZT4gPSB7XG4gIEFSOiAnZXMnLFxuICBBVTogJ2VuJyxcbiAgQkU6ICdmcicsXG4gIEJPOiAnZXMnLFxuICBCUjogJ3B0JyxcbiAgQ0E6ICdlbicsXG4gIENMOiAnZXMnLFxuICBDTzogJ2VzJyxcbiAgQ1I6ICdlcycsXG4gIENVOiAnZXMnLFxuICBDVjogJ3B0JyxcbiAgRE86ICdlcycsXG4gIEVDOiAnZXMnLFxuICBFUzogJ2VzJyxcbiAgRlI6ICdmcicsXG4gIEdCOiAnZW4nLFxuICBHUTogJ2VzJyxcbiAgR1Q6ICdlcycsXG4gIEdXOiAncHQnLFxuICBITjogJ2VzJyxcbiAgSVQ6ICdpdCcsXG4gIExJOiAnZGUnLFxuICBMVTogJ2ZyJyxcbiAgTUM6ICdmcicsXG4gIE1YOiAnZXMnLFxuICBNWjogJ3B0JyxcbiAgTkk6ICdlcycsXG4gIFBBOiAnZXMnLFxuICBQRTogJ2VzJyxcbiAgUFk6ICdlcycsXG4gIFNNOiAnaXQnLFxuICBTVjogJ2VzJyxcbiAgVEw6ICdwdCcsXG4gIFVTOiAnZW4nLFxuICBWQTogJ2l0JyxcbiAgVkU6ICdlcydcbn07XG5cbmNvbnN0IHBob25lQ29kZVRvTG9jYWxlTWFwOiBSZWNvcmQ8c3RyaW5nLCBMb2NhbGU+ID0ge1xuICAxOiAnZW4nLFxuICAzMjogJ2ZyJyxcbiAgMzM6ICdmcicsXG4gIDM0OiAnZXMnLFxuICAzOTogJ2l0JyxcbiAgNDE6ICdmcicsXG4gIDQzOiAnZGUnLFxuICA0OTogJ2RlJyxcbiAgNTE6ICdlcycsXG4gIDUyOiAnZXMnLFxuICA1MzogJ2VzJyxcbiAgNTQ6ICdlcycsXG4gIDU1OiAncHQnLFxuICA1NjogJ2VzJyxcbiAgNTc6ICdlcycsXG4gIDU4OiAnZXMnLFxuICAyNDA6ICdlcycsXG4gIDI0NDogJ3B0JyxcbiAgMjQ1OiAncHQnLFxuICAyNTg6ICdwdCcsXG4gIDM1MTogJ3B0JyxcbiAgMzUyOiAnZnInLFxuICAzNzc6ICdmcicsXG4gIDM3ODogJ2l0JyxcbiAgMzc5OiAnaXQnLFxuICA0MjM6ICdkZScsXG4gIDUwMjogJ2VzJyxcbiAgNTAzOiAnZXMnLFxuICA1MDQ6ICdlcycsXG4gIDUwNTogJ2VzJyxcbiAgNTA2OiAnZXMnLFxuICA1MDc6ICdlcycsXG4gIDU5MTogJ2VzJyxcbiAgNTkzOiAnZXMnLFxuICA1OTU6ICdlcycsXG4gIDY3MDogJ3B0JyxcbiAgMTgwOTogJ2VzJ1xufTtcblxuZXhwb3J0IGNvbnN0IGRldGVjdExhbmd1YWdlID0gKGNvbnRleHQ6IExhbmd1YWdlRGV0ZWN0aW9uQ29udGV4dCk6IExvY2FsZSA9PiB7XG4gIGlmKGNvbnRleHQudXNlclByZWZlcmVuY2UpIHtcbiAgICByZXR1cm4gY29udGV4dC51c2VyUHJlZmVyZW5jZTtcbiAgfVxuXG4gIGlmKGNvbnRleHQucGhvbmVDb3VudHJ5Q29kZSkge1xuICAgIGNvbnN0IGxvY2FsZSA9IHBob25lQ29kZVRvTG9jYWxlTWFwW2NvbnRleHQucGhvbmVDb3VudHJ5Q29kZV07XG4gICAgaWYobG9jYWxlKSB7XG4gICAgICByZXR1cm4gbG9jYWxlO1xuICAgIH1cbiAgfVxuXG4gIGlmKGNvbnRleHQuYWNjZXB0TGFuZ3VhZ2UpIHtcbiAgICBjb25zdCBsb2NhbGUgPSBwYXJzZUFjY2VwdExhbmd1YWdlKGNvbnRleHQuYWNjZXB0TGFuZ3VhZ2UpO1xuICAgIGlmKGxvY2FsZSkge1xuICAgICAgcmV0dXJuIGxvY2FsZTtcbiAgICB9XG4gIH1cblxuICBpZihjb250ZXh0LmlwQ291bnRyeSkge1xuICAgIGNvbnN0IGxvY2FsZSA9IGNvdW50cnlUb0xvY2FsZU1hcFtjb250ZXh0LmlwQ291bnRyeV07XG4gICAgaWYobG9jYWxlKSB7XG4gICAgICByZXR1cm4gbG9jYWxlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnZW4nO1xufTtcblxuY29uc3QgcGFyc2VBY2NlcHRMYW5ndWFnZSA9IChhY2NlcHRMYW5ndWFnZTogc3RyaW5nKTogTG9jYWxlIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGxhbmd1YWdlcyA9IGFjY2VwdExhbmd1YWdlXG4gICAgLnNwbGl0KCcsJylcbiAgICAubWFwKChsYW5nKSA9PiBsYW5nLnRyaW0oKS5zcGxpdCgnOycpWzBdKVxuICAgIC5maWx0ZXIoKGxhbmcpID0+IGxhbmcubGVuZ3RoID49IDIpO1xuXG4gIGZvcihjb25zdCBsYW5nIG9mIGxhbmd1YWdlcykge1xuICAgIGNvbnN0IGxvY2FsZSA9IGxhbmcuc3Vic3RyaW5nKDAsIDIpIGFzIExvY2FsZTtcbiAgICBpZihbJ2VuJywgJ2VzJywgJ2ZyJywgJ2RlJywgJ3B0JywgJ2l0J10uaW5jbHVkZXMobG9jYWxlKSkge1xuICAgICAgcmV0dXJuIGxvY2FsZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07Il0sIm5hbWVzIjpbImNvdW50cnlUb0xvY2FsZU1hcCIsIkFSIiwiQVUiLCJCRSIsIkJPIiwiQlIiLCJDQSIsIkNMIiwiQ08iLCJDUiIsIkNVIiwiQ1YiLCJETyIsIkVDIiwiRVMiLCJGUiIsIkdCIiwiR1EiLCJHVCIsIkdXIiwiSE4iLCJJVCIsIkxJIiwiTFUiLCJNQyIsIk1YIiwiTVoiLCJOSSIsIlBBIiwiUEUiLCJQWSIsIlNNIiwiU1YiLCJUTCIsIlVTIiwiVkEiLCJWRSIsInBob25lQ29kZVRvTG9jYWxlTWFwIiwiZGV0ZWN0TGFuZ3VhZ2UiLCJjb250ZXh0IiwidXNlclByZWZlcmVuY2UiLCJwaG9uZUNvdW50cnlDb2RlIiwibG9jYWxlIiwiYWNjZXB0TGFuZ3VhZ2UiLCJwYXJzZUFjY2VwdExhbmd1YWdlIiwiaXBDb3VudHJ5IiwibGFuZ3VhZ2VzIiwic3BsaXQiLCJtYXAiLCJsYW5nIiwidHJpbSIsImZpbHRlciIsImxlbmd0aCIsInN1YnN0cmluZyIsImluY2x1ZGVzIl0sIm1hcHBpbmdzIjoiQUFTQSxNQUFNQSxxQkFBNkM7SUFDakRDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0FBQ047QUFFQSxNQUFNQyx1QkFBK0M7SUFDbkQsR0FBRztJQUNILElBQUk7SUFDSixJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osSUFBSTtJQUNKLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsTUFBTTtBQUNSO0FBRUEsT0FBTyxNQUFNQyxpQkFBaUIsQ0FBQ0M7SUFDN0IsSUFBR0EsUUFBUUMsY0FBYyxFQUFFO1FBQ3pCLE9BQU9ELFFBQVFDLGNBQWM7SUFDL0I7SUFFQSxJQUFHRCxRQUFRRSxnQkFBZ0IsRUFBRTtRQUMzQixNQUFNQyxTQUFTTCxvQkFBb0IsQ0FBQ0UsUUFBUUUsZ0JBQWdCLENBQUM7UUFDN0QsSUFBR0MsUUFBUTtZQUNULE9BQU9BO1FBQ1Q7SUFDRjtJQUVBLElBQUdILFFBQVFJLGNBQWMsRUFBRTtRQUN6QixNQUFNRCxTQUFTRSxvQkFBb0JMLFFBQVFJLGNBQWM7UUFDekQsSUFBR0QsUUFBUTtZQUNULE9BQU9BO1FBQ1Q7SUFDRjtJQUVBLElBQUdILFFBQVFNLFNBQVMsRUFBRTtRQUNwQixNQUFNSCxTQUFTMUMsa0JBQWtCLENBQUN1QyxRQUFRTSxTQUFTLENBQUM7UUFDcEQsSUFBR0gsUUFBUTtZQUNULE9BQU9BO1FBQ1Q7SUFDRjtJQUVBLE9BQU87QUFDVCxFQUFFO0FBRUYsTUFBTUUsc0JBQXNCLENBQUNEO0lBQzNCLE1BQU1HLFlBQVlILGVBQ2ZJLEtBQUssQ0FBQyxLQUNOQyxHQUFHLENBQUMsQ0FBQ0MsT0FBU0EsS0FBS0MsSUFBSSxHQUFHSCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFDdkNJLE1BQU0sQ0FBQyxDQUFDRixPQUFTQSxLQUFLRyxNQUFNLElBQUk7SUFFbkMsS0FBSSxNQUFNSCxRQUFRSCxVQUFXO1FBQzNCLE1BQU1KLFNBQVNPLEtBQUtJLFNBQVMsQ0FBQyxHQUFHO1FBQ2pDLElBQUc7WUFBQztZQUFNO1lBQU07WUFBTTtZQUFNO1lBQU07U0FBSyxDQUFDQyxRQUFRLENBQUNaLFNBQVM7WUFDeEQsT0FBT0E7UUFDVDtJQUNGO0lBRUEsT0FBTztBQUNUIn0=
@@ -9,3 +9,4 @@ export declare const getFallbackChain: (locale: string) => string[];
9
9
  export declare const getPrimaryLanguages: () => string[];
10
10
  export declare const isValidLocale: (locale: string) => locale is Locale;
11
11
  export declare const getSupportedLocales: () => Locale[];
12
+ //# sourceMappingURL=localeUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localeUtils.d.ts","sourceRoot":"","sources":["../../src/utils/localeUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAEtD,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,MAA8B,CAAC;AAEhF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,OAA+B,CAAC;AAElF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,MAAM,EAGvD,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,MAAM,EAA0C,CAAC;AAExF,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,MAAM,IAAI,MAUxD,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,MAAM,EAO5C,CAAC"}
@@ -3,3 +3,4 @@
3
3
  * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
4
  */
5
5
  export declare const runLocaleExamples: () => Promise<void>;
6
+ //# sourceMappingURL=localeUtils.example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localeUtils.example.d.ts","sourceRoot":"","sources":["../../src/utils/localeUtils.example.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiJH,eAAO,MAAM,iBAAiB,qBAW7B,CAAC"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Copyright (c) 2025-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { extractLanguage, getFallbackChain, getPrimaryLanguages, getSupportedLocales, isRegionalLocale, isValidLocale } from './localeUtils.js';
5
+ /**
6
+ * Example: Locale Utilities with Regional Support
7
+ *
8
+ * This example demonstrates how to use the locale utilities for handling
9
+ * regional locales (e.g., "en-us", "es-mx") with language extraction
10
+ * for translation APIs while maintaining full locale support for
11
+ * time, currency, and other regional formatting.
12
+ */ // Example 1: Language Extraction for Translation APIs
13
+ console.log('=== Language Extraction Examples ===');
14
+ console.log(extractLanguage('en-us')); // 'en'
15
+ console.log(extractLanguage('es-mx')); // 'es'
16
+ console.log(extractLanguage('fr-ca')); // 'fr'
17
+ console.log(extractLanguage('en')); // 'en'
18
+ // Example 2: Regional Locale Detection
19
+ console.log('\n=== Regional Locale Detection ===');
20
+ console.log(isRegionalLocale('en-us')); // true
21
+ console.log(isRegionalLocale('es-mx')); // true
22
+ console.log(isRegionalLocale('en')); // false
23
+ console.log(isRegionalLocale('fr')); // false
24
+ // Example 3: Fallback Chain Generation
25
+ console.log('\n=== Fallback Chain Examples ===');
26
+ console.log(getFallbackChain('en-us')); // ['en-us', 'en']
27
+ console.log(getFallbackChain('es-mx')); // ['es-mx', 'es']
28
+ console.log(getFallbackChain('fr-ca')); // ['fr-ca', 'fr']
29
+ console.log(getFallbackChain('en')); // ['en']
30
+ // Example 4: Translation API Integration
31
+ const translateText = async (text, targetLocale, sourceLocale = 'en')=>{
32
+ // Extract language codes for translation API
33
+ const targetLanguage = extractLanguage(targetLocale);
34
+ const sourceLanguage = extractLanguage(sourceLocale);
35
+ console.log(`Translating from ${sourceLanguage} to ${targetLanguage}`);
36
+ console.log(`Full locales: ${sourceLocale} → ${targetLocale}`);
37
+ // Call translation API with language codes
38
+ // const result = await googleTranslateAPI.translate(text, targetLanguage, sourceLanguage);
39
+ return `[Translated: ${text}]`;
40
+ };
41
+ // Example 5: Database Storage Strategy
42
+ const storeTranslation = async (key, content, locale)=>{
43
+ // Store with full locale for regional support
44
+ console.log(`Storing translation for key "${key}" with locale "${locale}"`);
45
+ // Database record would include:
46
+ // - key: "welcome_message"
47
+ // - locale: "en-us" (full locale with region)
48
+ // - content: "Welcome to our US site!"
49
+ return {
50
+ key,
51
+ locale,
52
+ content
53
+ };
54
+ };
55
+ // Example 6: Content Retrieval with Fallback
56
+ const getContentWithFallback = async (key, requestedLocale)=>{
57
+ console.log(`\n=== Content Retrieval for "${key}" with locale "${requestedLocale}" ===`);
58
+ // 1. Try exact locale match first
59
+ console.log(`1. Trying exact match: ${requestedLocale}`);
60
+ // 2. If regional locale and no exact match, try language fallback
61
+ if (isRegionalLocale(requestedLocale)) {
62
+ const language = extractLanguage(requestedLocale);
63
+ console.log(`2. Trying language fallback: ${language}`);
64
+ // If found, store the regional version for future use
65
+ console.log(`3. Storing extracted content for ${requestedLocale}`);
66
+ }
67
+ // 3. If still no match, use app default locale
68
+ console.log('4. Falling back to app default locale');
69
+ return `[Content for ${key} in ${requestedLocale}]`;
70
+ };
71
+ // Example 7: Validation
72
+ console.log('\n=== Locale Validation ===');
73
+ console.log(isValidLocale('en-us')); // true
74
+ console.log(isValidLocale('es-mx')); // true
75
+ console.log(isValidLocale('invalid')); // false
76
+ console.log(isValidLocale('en-xx')); // false
77
+ // Example 8: Supported Locales
78
+ console.log('\n=== Supported Locales ===');
79
+ const supportedLocales = getSupportedLocales();
80
+ console.log(`Total supported locales: ${supportedLocales.length}`);
81
+ console.log('English variants:', supportedLocales.filter((l)=>l.startsWith('en')));
82
+ console.log('Spanish variants:', supportedLocales.filter((l)=>l.startsWith('es')));
83
+ // Example 9: Primary Languages
84
+ console.log('\n=== Primary Languages ===');
85
+ const primaryLanguages = getPrimaryLanguages();
86
+ console.log('Primary languages:', primaryLanguages);
87
+ // Example 10: Complete Workflow
88
+ const completeTranslationWorkflow = async ()=>{
89
+ console.log('\n=== Complete Translation Workflow ===');
90
+ const key = 'welcome_message';
91
+ const userLocale = 'es-mx'; // User's full locale
92
+ const appLocale = 'en-us'; // App's default locale
93
+ // 1. Extract language for translation API
94
+ const userLanguage = extractLanguage(userLocale);
95
+ const appLanguage = extractLanguage(appLocale);
96
+ console.log(`User locale: ${userLocale} (language: ${userLanguage})`);
97
+ console.log(`App locale: ${appLocale} (language: ${appLanguage})`);
98
+ // 2. Check if we need translation
99
+ if (userLanguage !== appLanguage) {
100
+ console.log('Translation needed!');
101
+ // 3. Get source content (from app locale)
102
+ const sourceContent = await getContentWithFallback(key, appLocale);
103
+ // 4. Translate using language codes
104
+ const translatedContent = await translateText(sourceContent, userLanguage, appLanguage);
105
+ // 5. Store with full locale
106
+ await storeTranslation(key, translatedContent, userLocale);
107
+ console.log(`Translation complete: ${translatedContent}`);
108
+ } else {
109
+ console.log('No translation needed - same language');
110
+ }
111
+ };
112
+ // Run examples
113
+ export const runLocaleExamples = async ()=>{
114
+ console.log('Locale Utilities Examples\n');
115
+ // Run synchronous examples
116
+ console.log('Synchronous examples completed above');
117
+ // Run async examples
118
+ await getContentWithFallback('welcome_message', 'es-mx');
119
+ await completeTranslationWorkflow();
120
+ console.log('\n=== Example Complete ===');
121
+ }; // Uncomment to run examples
122
+ // runLocaleExamples();
123
+
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3V0aWxzL2xvY2FsZVV0aWxzLmV4YW1wbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cblxuaW1wb3J0IHtcbiAgZXh0cmFjdExhbmd1YWdlLFxuICBnZXRGYWxsYmFja0NoYWluLFxuICBnZXRQcmltYXJ5TGFuZ3VhZ2VzLFxuICBnZXRTdXBwb3J0ZWRMb2NhbGVzLFxuICBpc1JlZ2lvbmFsTG9jYWxlLFxuICBpc1ZhbGlkTG9jYWxlXG59IGZyb20gJy4vbG9jYWxlVXRpbHMuanMnO1xuXG4vKipcbiAqIEV4YW1wbGU6IExvY2FsZSBVdGlsaXRpZXMgd2l0aCBSZWdpb25hbCBTdXBwb3J0XG4gKlxuICogVGhpcyBleGFtcGxlIGRlbW9uc3RyYXRlcyBob3cgdG8gdXNlIHRoZSBsb2NhbGUgdXRpbGl0aWVzIGZvciBoYW5kbGluZ1xuICogcmVnaW9uYWwgbG9jYWxlcyAoZS5nLiwgXCJlbi11c1wiLCBcImVzLW14XCIpIHdpdGggbGFuZ3VhZ2UgZXh0cmFjdGlvblxuICogZm9yIHRyYW5zbGF0aW9uIEFQSXMgd2hpbGUgbWFpbnRhaW5pbmcgZnVsbCBsb2NhbGUgc3VwcG9ydCBmb3JcbiAqIHRpbWUsIGN1cnJlbmN5LCBhbmQgb3RoZXIgcmVnaW9uYWwgZm9ybWF0dGluZy5cbiAqL1xuXG4vLyBFeGFtcGxlIDE6IExhbmd1YWdlIEV4dHJhY3Rpb24gZm9yIFRyYW5zbGF0aW9uIEFQSXNcbmNvbnNvbGUubG9nKCc9PT0gTGFuZ3VhZ2UgRXh0cmFjdGlvbiBFeGFtcGxlcyA9PT0nKTtcbmNvbnNvbGUubG9nKGV4dHJhY3RMYW5ndWFnZSgnZW4tdXMnKSk7IC8vICdlbidcbmNvbnNvbGUubG9nKGV4dHJhY3RMYW5ndWFnZSgnZXMtbXgnKSk7IC8vICdlcydcbmNvbnNvbGUubG9nKGV4dHJhY3RMYW5ndWFnZSgnZnItY2EnKSk7IC8vICdmcidcbmNvbnNvbGUubG9nKGV4dHJhY3RMYW5ndWFnZSgnZW4nKSk7IC8vICdlbidcblxuLy8gRXhhbXBsZSAyOiBSZWdpb25hbCBMb2NhbGUgRGV0ZWN0aW9uXG5jb25zb2xlLmxvZygnXFxuPT09IFJlZ2lvbmFsIExvY2FsZSBEZXRlY3Rpb24gPT09Jyk7XG5jb25zb2xlLmxvZyhpc1JlZ2lvbmFsTG9jYWxlKCdlbi11cycpKTsgLy8gdHJ1ZVxuY29uc29sZS5sb2coaXNSZWdpb25hbExvY2FsZSgnZXMtbXgnKSk7IC8vIHRydWVcbmNvbnNvbGUubG9nKGlzUmVnaW9uYWxMb2NhbGUoJ2VuJykpOyAvLyBmYWxzZVxuY29uc29sZS5sb2coaXNSZWdpb25hbExvY2FsZSgnZnInKSk7IC8vIGZhbHNlXG5cbi8vIEV4YW1wbGUgMzogRmFsbGJhY2sgQ2hhaW4gR2VuZXJhdGlvblxuY29uc29sZS5sb2coJ1xcbj09PSBGYWxsYmFjayBDaGFpbiBFeGFtcGxlcyA9PT0nKTtcbmNvbnNvbGUubG9nKGdldEZhbGxiYWNrQ2hhaW4oJ2VuLXVzJykpOyAvLyBbJ2VuLXVzJywgJ2VuJ11cbmNvbnNvbGUubG9nKGdldEZhbGxiYWNrQ2hhaW4oJ2VzLW14JykpOyAvLyBbJ2VzLW14JywgJ2VzJ11cbmNvbnNvbGUubG9nKGdldEZhbGxiYWNrQ2hhaW4oJ2ZyLWNhJykpOyAvLyBbJ2ZyLWNhJywgJ2ZyJ11cbmNvbnNvbGUubG9nKGdldEZhbGxiYWNrQ2hhaW4oJ2VuJykpOyAvLyBbJ2VuJ11cblxuLy8gRXhhbXBsZSA0OiBUcmFuc2xhdGlvbiBBUEkgSW50ZWdyYXRpb25cbmNvbnN0IHRyYW5zbGF0ZVRleHQgPSBhc3luYyAodGV4dDogc3RyaW5nLCB0YXJnZXRMb2NhbGU6IHN0cmluZywgc291cmNlTG9jYWxlOiBzdHJpbmcgPSAnZW4nKSA9PiB7XG4gIC8vIEV4dHJhY3QgbGFuZ3VhZ2UgY29kZXMgZm9yIHRyYW5zbGF0aW9uIEFQSVxuICBjb25zdCB0YXJnZXRMYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZSh0YXJnZXRMb2NhbGUpO1xuICBjb25zdCBzb3VyY2VMYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZShzb3VyY2VMb2NhbGUpO1xuXG4gIGNvbnNvbGUubG9nKGBUcmFuc2xhdGluZyBmcm9tICR7c291cmNlTGFuZ3VhZ2V9IHRvICR7dGFyZ2V0TGFuZ3VhZ2V9YCk7XG4gIGNvbnNvbGUubG9nKGBGdWxsIGxvY2FsZXM6ICR7c291cmNlTG9jYWxlfSDihpIgJHt0YXJnZXRMb2NhbGV9YCk7XG5cbiAgLy8gQ2FsbCB0cmFuc2xhdGlvbiBBUEkgd2l0aCBsYW5ndWFnZSBjb2Rlc1xuICAvLyBjb25zdCByZXN1bHQgPSBhd2FpdCBnb29nbGVUcmFuc2xhdGVBUEkudHJhbnNsYXRlKHRleHQsIHRhcmdldExhbmd1YWdlLCBzb3VyY2VMYW5ndWFnZSk7XG5cbiAgcmV0dXJuIGBbVHJhbnNsYXRlZDogJHt0ZXh0fV1gO1xufTtcblxuLy8gRXhhbXBsZSA1OiBEYXRhYmFzZSBTdG9yYWdlIFN0cmF0ZWd5XG5jb25zdCBzdG9yZVRyYW5zbGF0aW9uID0gYXN5bmMgKGtleTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIGxvY2FsZTogc3RyaW5nKSA9PiB7XG4gIC8vIFN0b3JlIHdpdGggZnVsbCBsb2NhbGUgZm9yIHJlZ2lvbmFsIHN1cHBvcnRcbiAgY29uc29sZS5sb2coYFN0b3JpbmcgdHJhbnNsYXRpb24gZm9yIGtleSBcIiR7a2V5fVwiIHdpdGggbG9jYWxlIFwiJHtsb2NhbGV9XCJgKTtcblxuICAvLyBEYXRhYmFzZSByZWNvcmQgd291bGQgaW5jbHVkZTpcbiAgLy8gLSBrZXk6IFwid2VsY29tZV9tZXNzYWdlXCJcbiAgLy8gLSBsb2NhbGU6IFwiZW4tdXNcIiAoZnVsbCBsb2NhbGUgd2l0aCByZWdpb24pXG4gIC8vIC0gY29udGVudDogXCJXZWxjb21lIHRvIG91ciBVUyBzaXRlIVwiXG5cbiAgcmV0dXJuIHtrZXksIGxvY2FsZSwgY29udGVudH07XG59O1xuXG4vLyBFeGFtcGxlIDY6IENvbnRlbnQgUmV0cmlldmFsIHdpdGggRmFsbGJhY2tcbmNvbnN0IGdldENvbnRlbnRXaXRoRmFsbGJhY2sgPSBhc3luYyAoa2V5OiBzdHJpbmcsIHJlcXVlc3RlZExvY2FsZTogc3RyaW5nKSA9PiB7XG4gIGNvbnNvbGUubG9nKGBcXG49PT0gQ29udGVudCBSZXRyaWV2YWwgZm9yIFwiJHtrZXl9XCIgd2l0aCBsb2NhbGUgXCIke3JlcXVlc3RlZExvY2FsZX1cIiA9PT1gKTtcblxuICAvLyAxLiBUcnkgZXhhY3QgbG9jYWxlIG1hdGNoIGZpcnN0XG4gIGNvbnNvbGUubG9nKGAxLiBUcnlpbmcgZXhhY3QgbWF0Y2g6ICR7cmVxdWVzdGVkTG9jYWxlfWApO1xuXG4gIC8vIDIuIElmIHJlZ2lvbmFsIGxvY2FsZSBhbmQgbm8gZXhhY3QgbWF0Y2gsIHRyeSBsYW5ndWFnZSBmYWxsYmFja1xuICBpZihpc1JlZ2lvbmFsTG9jYWxlKHJlcXVlc3RlZExvY2FsZSkpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZShyZXF1ZXN0ZWRMb2NhbGUpO1xuICAgIGNvbnNvbGUubG9nKGAyLiBUcnlpbmcgbGFuZ3VhZ2UgZmFsbGJhY2s6ICR7bGFuZ3VhZ2V9YCk7XG5cbiAgICAvLyBJZiBmb3VuZCwgc3RvcmUgdGhlIHJlZ2lvbmFsIHZlcnNpb24gZm9yIGZ1dHVyZSB1c2VcbiAgICBjb25zb2xlLmxvZyhgMy4gU3RvcmluZyBleHRyYWN0ZWQgY29udGVudCBmb3IgJHtyZXF1ZXN0ZWRMb2NhbGV9YCk7XG4gIH1cblxuICAvLyAzLiBJZiBzdGlsbCBubyBtYXRjaCwgdXNlIGFwcCBkZWZhdWx0IGxvY2FsZVxuICBjb25zb2xlLmxvZygnNC4gRmFsbGluZyBiYWNrIHRvIGFwcCBkZWZhdWx0IGxvY2FsZScpO1xuXG4gIHJldHVybiBgW0NvbnRlbnQgZm9yICR7a2V5fSBpbiAke3JlcXVlc3RlZExvY2FsZX1dYDtcbn07XG5cbi8vIEV4YW1wbGUgNzogVmFsaWRhdGlvblxuY29uc29sZS5sb2coJ1xcbj09PSBMb2NhbGUgVmFsaWRhdGlvbiA9PT0nKTtcbmNvbnNvbGUubG9nKGlzVmFsaWRMb2NhbGUoJ2VuLXVzJykpOyAvLyB0cnVlXG5jb25zb2xlLmxvZyhpc1ZhbGlkTG9jYWxlKCdlcy1teCcpKTsgLy8gdHJ1ZVxuY29uc29sZS5sb2coaXNWYWxpZExvY2FsZSgnaW52YWxpZCcpKTsgLy8gZmFsc2VcbmNvbnNvbGUubG9nKGlzVmFsaWRMb2NhbGUoJ2VuLXh4JykpOyAvLyBmYWxzZVxuXG4vLyBFeGFtcGxlIDg6IFN1cHBvcnRlZCBMb2NhbGVzXG5jb25zb2xlLmxvZygnXFxuPT09IFN1cHBvcnRlZCBMb2NhbGVzID09PScpO1xuY29uc3Qgc3VwcG9ydGVkTG9jYWxlcyA9IGdldFN1cHBvcnRlZExvY2FsZXMoKTtcbmNvbnNvbGUubG9nKGBUb3RhbCBzdXBwb3J0ZWQgbG9jYWxlczogJHtzdXBwb3J0ZWRMb2NhbGVzLmxlbmd0aH1gKTtcbmNvbnNvbGUubG9nKCdFbmdsaXNoIHZhcmlhbnRzOicsIHN1cHBvcnRlZExvY2FsZXMuZmlsdGVyKChsKSA9PiBsLnN0YXJ0c1dpdGgoJ2VuJykpKTtcbmNvbnNvbGUubG9nKCdTcGFuaXNoIHZhcmlhbnRzOicsIHN1cHBvcnRlZExvY2FsZXMuZmlsdGVyKChsKSA9PiBsLnN0YXJ0c1dpdGgoJ2VzJykpKTtcblxuLy8gRXhhbXBsZSA5OiBQcmltYXJ5IExhbmd1YWdlc1xuY29uc29sZS5sb2coJ1xcbj09PSBQcmltYXJ5IExhbmd1YWdlcyA9PT0nKTtcbmNvbnN0IHByaW1hcnlMYW5ndWFnZXMgPSBnZXRQcmltYXJ5TGFuZ3VhZ2VzKCk7XG5jb25zb2xlLmxvZygnUHJpbWFyeSBsYW5ndWFnZXM6JywgcHJpbWFyeUxhbmd1YWdlcyk7XG5cbi8vIEV4YW1wbGUgMTA6IENvbXBsZXRlIFdvcmtmbG93XG5jb25zdCBjb21wbGV0ZVRyYW5zbGF0aW9uV29ya2Zsb3cgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdcXG49PT0gQ29tcGxldGUgVHJhbnNsYXRpb24gV29ya2Zsb3cgPT09Jyk7XG5cbiAgY29uc3Qga2V5ID0gJ3dlbGNvbWVfbWVzc2FnZSc7XG4gIGNvbnN0IHVzZXJMb2NhbGUgPSAnZXMtbXgnOyAvLyBVc2VyJ3MgZnVsbCBsb2NhbGVcbiAgY29uc3QgYXBwTG9jYWxlID0gJ2VuLXVzJzsgLy8gQXBwJ3MgZGVmYXVsdCBsb2NhbGVcblxuICAvLyAxLiBFeHRyYWN0IGxhbmd1YWdlIGZvciB0cmFuc2xhdGlvbiBBUElcbiAgY29uc3QgdXNlckxhbmd1YWdlID0gZXh0cmFjdExhbmd1YWdlKHVzZXJMb2NhbGUpO1xuICBjb25zdCBhcHBMYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZShhcHBMb2NhbGUpO1xuXG4gIGNvbnNvbGUubG9nKGBVc2VyIGxvY2FsZTogJHt1c2VyTG9jYWxlfSAobGFuZ3VhZ2U6ICR7dXNlckxhbmd1YWdlfSlgKTtcbiAgY29uc29sZS5sb2coYEFwcCBsb2NhbGU6ICR7YXBwTG9jYWxlfSAobGFuZ3VhZ2U6ICR7YXBwTGFuZ3VhZ2V9KWApO1xuXG4gIC8vIDIuIENoZWNrIGlmIHdlIG5lZWQgdHJhbnNsYXRpb25cbiAgaWYodXNlckxhbmd1YWdlICE9PSBhcHBMYW5ndWFnZSkge1xuICAgIGNvbnNvbGUubG9nKCdUcmFuc2xhdGlvbiBuZWVkZWQhJyk7XG5cbiAgICAvLyAzLiBHZXQgc291cmNlIGNvbnRlbnQgKGZyb20gYXBwIGxvY2FsZSlcbiAgICBjb25zdCBzb3VyY2VDb250ZW50ID0gYXdhaXQgZ2V0Q29udGVudFdpdGhGYWxsYmFjayhrZXksIGFwcExvY2FsZSk7XG5cbiAgICAvLyA0LiBUcmFuc2xhdGUgdXNpbmcgbGFuZ3VhZ2UgY29kZXNcbiAgICBjb25zdCB0cmFuc2xhdGVkQ29udGVudCA9IGF3YWl0IHRyYW5zbGF0ZVRleHQoc291cmNlQ29udGVudCwgdXNlckxhbmd1YWdlLCBhcHBMYW5ndWFnZSk7XG5cbiAgICAvLyA1LiBTdG9yZSB3aXRoIGZ1bGwgbG9jYWxlXG4gICAgYXdhaXQgc3RvcmVUcmFuc2xhdGlvbihrZXksIHRyYW5zbGF0ZWRDb250ZW50LCB1c2VyTG9jYWxlKTtcblxuICAgIGNvbnNvbGUubG9nKGBUcmFuc2xhdGlvbiBjb21wbGV0ZTogJHt0cmFuc2xhdGVkQ29udGVudH1gKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZygnTm8gdHJhbnNsYXRpb24gbmVlZGVkIC0gc2FtZSBsYW5ndWFnZScpO1xuICB9XG59O1xuXG4vLyBSdW4gZXhhbXBsZXNcbmV4cG9ydCBjb25zdCBydW5Mb2NhbGVFeGFtcGxlcyA9IGFzeW5jICgpID0+IHtcbiAgY29uc29sZS5sb2coJ0xvY2FsZSBVdGlsaXRpZXMgRXhhbXBsZXNcXG4nKTtcblxuICAvLyBSdW4gc3luY2hyb25vdXMgZXhhbXBsZXNcbiAgY29uc29sZS5sb2coJ1N5bmNocm9ub3VzIGV4YW1wbGVzIGNvbXBsZXRlZCBhYm92ZScpO1xuXG4gIC8vIFJ1biBhc3luYyBleGFtcGxlc1xuICBhd2FpdCBnZXRDb250ZW50V2l0aEZhbGxiYWNrKCd3ZWxjb21lX21lc3NhZ2UnLCAnZXMtbXgnKTtcbiAgYXdhaXQgY29tcGxldGVUcmFuc2xhdGlvbldvcmtmbG93KCk7XG5cbiAgY29uc29sZS5sb2coJ1xcbj09PSBFeGFtcGxlIENvbXBsZXRlID09PScpO1xufTtcblxuLy8gVW5jb21tZW50IHRvIHJ1biBleGFtcGxlc1xuLy8gcnVuTG9jYWxlRXhhbXBsZXMoKTsiXSwibmFtZXMiOlsiZXh0cmFjdExhbmd1YWdlIiwiZ2V0RmFsbGJhY2tDaGFpbiIsImdldFByaW1hcnlMYW5ndWFnZXMiLCJnZXRTdXBwb3J0ZWRMb2NhbGVzIiwiaXNSZWdpb25hbExvY2FsZSIsImlzVmFsaWRMb2NhbGUiLCJjb25zb2xlIiwibG9nIiwidHJhbnNsYXRlVGV4dCIsInRleHQiLCJ0YXJnZXRMb2NhbGUiLCJzb3VyY2VMb2NhbGUiLCJ0YXJnZXRMYW5ndWFnZSIsInNvdXJjZUxhbmd1YWdlIiwic3RvcmVUcmFuc2xhdGlvbiIsImtleSIsImNvbnRlbnQiLCJsb2NhbGUiLCJnZXRDb250ZW50V2l0aEZhbGxiYWNrIiwicmVxdWVzdGVkTG9jYWxlIiwibGFuZ3VhZ2UiLCJzdXBwb3J0ZWRMb2NhbGVzIiwibGVuZ3RoIiwiZmlsdGVyIiwibCIsInN0YXJ0c1dpdGgiLCJwcmltYXJ5TGFuZ3VhZ2VzIiwiY29tcGxldGVUcmFuc2xhdGlvbldvcmtmbG93IiwidXNlckxvY2FsZSIsImFwcExvY2FsZSIsInVzZXJMYW5ndWFnZSIsImFwcExhbmd1YWdlIiwic291cmNlQ29udGVudCIsInRyYW5zbGF0ZWRDb250ZW50IiwicnVuTG9jYWxlRXhhbXBsZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUVELFNBQ0VBLGVBQWUsRUFDZkMsZ0JBQWdCLEVBQ2hCQyxtQkFBbUIsRUFDbkJDLG1CQUFtQixFQUNuQkMsZ0JBQWdCLEVBQ2hCQyxhQUFhLFFBQ1IsbUJBQW1CO0FBRTFCOzs7Ozs7O0NBT0MsR0FFRCxzREFBc0Q7QUFDdERDLFFBQVFDLEdBQUcsQ0FBQztBQUNaRCxRQUFRQyxHQUFHLENBQUNQLGdCQUFnQixXQUFXLE9BQU87QUFDOUNNLFFBQVFDLEdBQUcsQ0FBQ1AsZ0JBQWdCLFdBQVcsT0FBTztBQUM5Q00sUUFBUUMsR0FBRyxDQUFDUCxnQkFBZ0IsV0FBVyxPQUFPO0FBQzlDTSxRQUFRQyxHQUFHLENBQUNQLGdCQUFnQixRQUFRLE9BQU87QUFFM0MsdUNBQXVDO0FBQ3ZDTSxRQUFRQyxHQUFHLENBQUM7QUFDWkQsUUFBUUMsR0FBRyxDQUFDSCxpQkFBaUIsV0FBVyxPQUFPO0FBQy9DRSxRQUFRQyxHQUFHLENBQUNILGlCQUFpQixXQUFXLE9BQU87QUFDL0NFLFFBQVFDLEdBQUcsQ0FBQ0gsaUJBQWlCLFFBQVEsUUFBUTtBQUM3Q0UsUUFBUUMsR0FBRyxDQUFD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
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Copyright (c) 2025-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ export const extractLanguage = (locale)=>locale.split('-')[0];
5
+ export const isRegionalLocale = (locale)=>locale.includes('-');
6
+ export const getFallbackChain = (locale)=>{
7
+ const language = extractLanguage(locale);
8
+ return isRegionalLocale(locale) ? [
9
+ locale,
10
+ language
11
+ ] : [
12
+ locale
13
+ ];
14
+ };
15
+ export const getPrimaryLanguages = ()=>[
16
+ 'en',
17
+ 'es',
18
+ 'fr',
19
+ 'de',
20
+ 'pt',
21
+ 'it'
22
+ ];
23
+ export const isValidLocale = (locale)=>{
24
+ const validLocales = [
25
+ 'en',
26
+ 'en-us',
27
+ 'en-gb',
28
+ 'en-ca',
29
+ 'en-au',
30
+ 'es',
31
+ 'es-mx',
32
+ 'es-es',
33
+ 'es-ar',
34
+ 'fr',
35
+ 'fr-fr',
36
+ 'fr-ca',
37
+ 'de',
38
+ 'de-de',
39
+ 'de-at',
40
+ 'pt',
41
+ 'pt-br',
42
+ 'pt-pt',
43
+ 'it',
44
+ 'it-it'
45
+ ];
46
+ return validLocales.includes(locale);
47
+ };
48
+ export const getSupportedLocales = ()=>[
49
+ 'en',
50
+ 'en-us',
51
+ 'en-gb',
52
+ 'en-ca',
53
+ 'en-au',
54
+ 'es',
55
+ 'es-mx',
56
+ 'es-es',
57
+ 'es-ar',
58
+ 'fr',
59
+ 'fr-fr',
60
+ 'fr-ca',
61
+ 'de',
62
+ 'de-de',
63
+ 'de-at',
64
+ 'pt',
65
+ 'pt-br',
66
+ 'pt-pt',
67
+ 'it',
68
+ 'it-it'
69
+ ];
70
+
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3V0aWxzL2xvY2FsZVV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgdHlwZSB7TG9jYWxlfSBmcm9tICcuLi90eXBlcy9jb250ZW50LnR5cGVzLmpzJztcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RMYW5ndWFnZSA9IChsb2NhbGU6IHN0cmluZyk6IHN0cmluZyA9PiBsb2NhbGUuc3BsaXQoJy0nKVswXTtcblxuZXhwb3J0IGNvbnN0IGlzUmVnaW9uYWxMb2NhbGUgPSAobG9jYWxlOiBzdHJpbmcpOiBib29sZWFuID0+IGxvY2FsZS5pbmNsdWRlcygnLScpO1xuXG5leHBvcnQgY29uc3QgZ2V0RmFsbGJhY2tDaGFpbiA9IChsb2NhbGU6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgbGFuZ3VhZ2UgPSBleHRyYWN0TGFuZ3VhZ2UobG9jYWxlKTtcbiAgcmV0dXJuIGlzUmVnaW9uYWxMb2NhbGUobG9jYWxlKSA/IFtsb2NhbGUsIGxhbmd1YWdlXSA6IFtsb2NhbGVdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFByaW1hcnlMYW5ndWFnZXMgPSAoKTogc3RyaW5nW10gPT4gWydlbicsICdlcycsICdmcicsICdkZScsICdwdCcsICdpdCddO1xuXG5leHBvcnQgY29uc3QgaXNWYWxpZExvY2FsZSA9IChsb2NhbGU6IHN0cmluZyk6IGxvY2FsZSBpcyBMb2NhbGUgPT4ge1xuICBjb25zdCB2YWxpZExvY2FsZXM6IExvY2FsZVtdID0gW1xuICAgICdlbicsICdlbi11cycsICdlbi1nYicsICdlbi1jYScsICdlbi1hdScsXG4gICAgJ2VzJywgJ2VzLW14JywgJ2VzLWVzJywgJ2VzLWFyJyxcbiAgICAnZnInLCAnZnItZnInLCAnZnItY2EnLFxuICAgICdkZScsICdkZS1kZScsICdkZS1hdCcsXG4gICAgJ3B0JywgJ3B0LWJyJywgJ3B0LXB0JyxcbiAgICAnaXQnLCAnaXQtaXQnXG4gIF07XG4gIHJldHVybiB2YWxpZExvY2FsZXMuaW5jbHVkZXMobG9jYWxlIGFzIExvY2FsZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3VwcG9ydGVkTG9jYWxlcyA9ICgpOiBMb2NhbGVbXSA9PiBbXG4gICdlbicsICdlbi11cycsICdlbi1nYicsICdlbi1jYScsICdlbi1hdScsXG4gICdlcycsICdlcy1teCcsICdlcy1lcycsICdlcy1hcicsXG4gICdmcicsICdmci1mcicsICdmci1jYScsXG4gICdkZScsICdkZS1kZScsICdkZS1hdCcsXG4gICdwdCcsICdwdC1icicsICdwdC1wdCcsXG4gICdpdCcsICdpdC1pdCdcbl07Il0sIm5hbWVzIjpbImV4dHJhY3RMYW5ndWFnZSIsImxvY2FsZSIsInNwbGl0IiwiaXNSZWdpb25hbExvY2FsZSIsImluY2x1ZGVzIiwiZ2V0RmFsbGJhY2tDaGFpbiIsImxhbmd1YWdlIiwiZ2V0UHJpbWFyeUxhbmd1YWdlcyIsImlzVmFsaWRMb2NhbGUiLCJ2YWxpZExvY2FsZXMiLCJnZXRTdXBwb3J0ZWRMb2NhbGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FHRCxPQUFPLE1BQU1BLGtCQUFrQixDQUFDQyxTQUEyQkEsT0FBT0MsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7QUFFaEYsT0FBTyxNQUFNQyxtQkFBbUIsQ0FBQ0YsU0FBNEJBLE9BQU9HLFFBQVEsQ0FBQyxLQUFLO0FBRWxGLE9BQU8sTUFBTUMsbUJBQW1CLENBQUNKO0lBQy9CLE1BQU1LLFdBQVdOLGdCQUFnQkM7SUFDakMsT0FBT0UsaUJBQWlCRixVQUFVO1FBQUNBO1FBQVFLO0tBQVMsR0FBRztRQUFDTDtLQUFPO0FBQ2pFLEVBQUU7QUFFRixPQUFPLE1BQU1NLHNCQUFzQixJQUFnQjtRQUFDO1FBQU07UUFBTTtRQUFNO1FBQU07UUFBTTtLQUFLLENBQUM7QUFFeEYsT0FBTyxNQUFNQyxnQkFBZ0IsQ0FBQ1A7SUFDNUIsTUFBTVEsZUFBeUI7UUFDN0I7UUFBTTtRQUFTO1FBQVM7UUFBUztRQUNqQztRQUFNO1FBQVM7UUFBUztRQUN4QjtRQUFNO1FBQVM7UUFDZjtRQUFNO1FBQVM7UUFDZjtRQUFNO1FBQVM7UUFDZjtRQUFNO0tBQ1A7SUFDRCxPQUFPQSxhQUFhTCxRQUFRLENBQUNIO0FBQy9CLEVBQUU7QUFFRixPQUFPLE1BQU1TLHNCQUFzQixJQUFnQjtRQUNqRDtRQUFNO1FBQVM7UUFBUztRQUFTO1FBQ2pDO1FBQU07UUFBUztRQUFTO1FBQ3hCO1FBQU07UUFBUztRQUNmO1FBQU07UUFBUztRQUNmO1FBQU07UUFBUztRQUNmO1FBQU07S0FDUCxDQUFDIn0=
@@ -1,2 +1,3 @@
1
1
  import type { ApiContext } from '../types/auth.types.js';
2
2
  export declare const addFieldsToContext: (resolve: Function, parent: any, args: any, context: ApiContext, info: any) => any;
3
+ //# sourceMappingURL=middlewareUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middlewareUtils.d.ts","sourceRoot":"","sources":["../../src/utils/middlewareUtils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,kBAAkB,GAC7B,SAAS,QAAQ,EACjB,QAAQ,GAAG,EACX,MAAM,GAAG,EACT,SAAS,UAAU,EACnB,MAAM,GAAG,QAQV,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { getGqlFields } from './arangodbUtils.js';
2
+ export const addFieldsToContext = (resolve, parent, args, context, info)=>{
3
+ const contextWithFields = {
4
+ ...context,
5
+ fields: getGqlFields(info)
6
+ };
7
+ return resolve(parent, args, contextWithFields, info);
8
+ };
9
+
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3V0aWxzL21pZGRsZXdhcmVVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2dldEdxbEZpZWxkc30gZnJvbSAnLi9hcmFuZ29kYlV0aWxzLmpzJztcblxuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuXG5leHBvcnQgY29uc3QgYWRkRmllbGRzVG9Db250ZXh0ID0gKFxuICByZXNvbHZlOiBGdW5jdGlvbixcbiAgcGFyZW50OiBhbnksXG4gIGFyZ3M6IGFueSxcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaW5mbzogYW55XG4pID0+IHtcbiAgY29uc3QgY29udGV4dFdpdGhGaWVsZHMgPSB7XG4gICAgLi4uY29udGV4dCxcbiAgICBmaWVsZHM6IGdldEdxbEZpZWxkcyhpbmZvKVxuICB9O1xuXG4gIHJldHVybiByZXNvbHZlKHBhcmVudCwgYXJncywgY29udGV4dFdpdGhGaWVsZHMsIGluZm8pO1xufTsiXSwibmFtZXMiOlsiZ2V0R3FsRmllbGRzIiwiYWRkRmllbGRzVG9Db250ZXh0IiwicmVzb2x2ZSIsInBhcmVudCIsImFyZ3MiLCJjb250ZXh0IiwiaW5mbyIsImNvbnRleHRXaXRoRmllbGRzIiwiZmllbGRzIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxZQUFZLFFBQU8scUJBQXFCO0FBSWhELE9BQU8sTUFBTUMscUJBQXFCLENBQ2hDQyxTQUNBQyxRQUNBQyxNQUNBQyxTQUNBQztJQUVBLE1BQU1DLG9CQUFvQjtRQUN4QixHQUFHRixPQUFPO1FBQ1ZHLFFBQVFSLGFBQWFNO0lBQ3ZCO0lBRUEsT0FBT0osUUFBUUMsUUFBUUMsTUFBTUcsbUJBQW1CRDtBQUNsRCxFQUFFIn0=
@@ -16,3 +16,4 @@ export type SessionToken = {
16
16
  export declare const setSession: (session: Session) => string;
17
17
  export declare const getSession: (token: string) => Session;
18
18
  export declare const isAdminUser: (session?: Session) => boolean;
19
+ //# sourceMappingURL=sessionUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionUtils.d.ts","sourceRoot":"","sources":["../../src/utils/sessionUtils.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,SAAS,OAAO,KAAG,MAAuD,CAAC;AAEtG,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,OAe1C,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,UAAU,OAAO,KAAG,OAA0D,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import jwt from 'jsonwebtoken';
5
+ export const setSession = (session)=>jwt.sign(session, process.env.SESSION_SECRET);
6
+ export const getSession = (token)=>{
7
+ try {
8
+ return jwt.verify(token, process.env.SESSION_SECRET);
9
+ } catch (error) {
10
+ switch(error.message){
11
+ case 'jwt expired':
12
+ {
13
+ const err = new Error('expired_session');
14
+ throw err;
15
+ }
16
+ default:
17
+ {
18
+ const err = new Error('invalid_session');
19
+ throw err;
20
+ }
21
+ }
22
+ }
23
+ };
24
+ export const isAdminUser = (session)=>!!session?.userAccess && session.userAccess > 2;
25
+
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3V0aWxzL3Nlc3Npb25VdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IGp3dCBmcm9tICdqc29ud2VidG9rZW4nO1xuXG5leHBvcnQgdHlwZSBTZXNzaW9uID0ge1xuICByZWFkb25seSBlcnJvcnM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZXhwPzogbnVtYmVyO1xuICByZWFkb25seSBpYXQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHVzZXJuYW1lPzogc3RyaW5nO1xuICByZWFkb25seSB1c2VyQWNjZXNzPzogbnVtYmVyO1xuICByZWFkb25seSB1c2VySWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNlc3Npb25Ub2tlbiA9IHtcbiAgcmVhZG9ubHkgZXhwaXJlczogbnVtYmVyO1xuICByZWFkb25seSBpc3N1ZWQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgdG9rZW46IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlcklkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZXJuYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0U2Vzc2lvbiA9IChzZXNzaW9uOiBTZXNzaW9uKTogc3RyaW5nID0+IGp3dC5zaWduKHNlc3Npb24sIHByb2Nlc3MuZW52LlNFU1NJT05fU0VDUkVUKTtcblxuZXhwb3J0IGNvbnN0IGdldFNlc3Npb24gPSAodG9rZW46IHN0cmluZyk6IFNlc3Npb24gPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBqd3QudmVyaWZ5KHRva2VuLCBwcm9jZXNzLmVudi5TRVNTSU9OX1NFQ1JFVCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBzd2l0Y2goZXJyb3IubWVzc2FnZSkge1xuICAgICAgY2FzZSAnand0IGV4cGlyZWQnOiB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcignZXhwaXJlZF9zZXNzaW9uJyk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKCdpbnZhbGlkX3Nlc3Npb24nKTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzQWRtaW5Vc2VyID0gKHNlc3Npb24/OiBTZXNzaW9uKTogYm9vbGVhbiA9PiAhIXNlc3Npb24/LnVzZXJBY2Nlc3MgJiYgc2Vzc2lvbi51c2VyQWNjZXNzID4gMjsiXSwibmFtZXMiOlsiand0Iiwic2V0U2Vzc2lvbiIsInNlc3Npb24iLCJzaWduIiwicHJvY2VzcyIsImVudiIsIlNFU1NJT05fU0VDUkVUIiwiZ2V0U2Vzc2lvbiIsInRva2VuIiwidmVyaWZ5IiwiZXJyb3IiLCJtZXNzYWdlIiwiZXJyIiwiRXJyb3IiLCJpc0FkbWluVXNlciIsInVzZXJBY2Nlc3MiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELE9BQU9BLFNBQVMsZUFBZTtBQW1CL0IsT0FBTyxNQUFNQyxhQUFhLENBQUNDLFVBQTZCRixJQUFJRyxJQUFJLENBQUNELFNBQVNFLFFBQVFDLEdBQUcsQ0FBQ0MsY0FBYyxFQUFFO0FBRXRHLE9BQU8sTUFBTUMsYUFBYSxDQUFDQztJQUN6QixJQUFJO1FBQ0YsT0FBT1IsSUFBSVMsTUFBTSxDQUFDRCxPQUFPSixRQUFRQyxHQUFHLENBQUNDLGNBQWM7SUFDckQsRUFBRSxPQUFNSSxPQUFPO1FBQ2IsT0FBT0EsTUFBTUMsT0FBTztZQUNsQixLQUFLO2dCQUFlO29CQUNsQixNQUFNQyxNQUFNLElBQUlDLE1BQU07b0JBQ3RCLE1BQU1EO2dCQUNSO1lBQ0E7Z0JBQVM7b0JBQ1AsTUFBTUEsTUFBTSxJQUFJQyxNQUFNO29CQUN0QixNQUFNRDtnQkFDUjtRQUNGO0lBQ0Y7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNRSxjQUFjLENBQUNaLFVBQStCLENBQUMsQ0FBQ0EsU0FBU2EsY0FBY2IsUUFBUWEsVUFBVSxHQUFHLEVBQUUifQ==
@@ -3,5 +3,6 @@
3
3
  * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
4
  */
5
5
  import stripe from 'stripe';
6
- export declare const stripeApiVersion = "2025-09-30.clover";
6
+ export declare const stripeApiVersion = "2025-12-15.clover";
7
7
  export declare const getStripeClient: () => stripe;
8
+ //# sourceMappingURL=stripeUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripeUtils.d.ts","sourceRoot":"","sources":["../../src/utils/stripeUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AAEpD,eAAO,MAAM,eAAe,cAAiG,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copyright (c) 2025-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import stripe from 'stripe';
5
+ import { Config } from '../config.js';
6
+ export const stripeApiVersion = '2025-12-15.clover';
7
+ export const getStripeClient = ()=>new stripe(Config.get('stripe.token'), {
8
+ apiVersion: stripeApiVersion,
9
+ typescript: true
10
+ });
11
+
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3V0aWxzL3N0cmlwZVV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgc3RyaXBlIGZyb20gJ3N0cmlwZSc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcuanMnO1xuXG5leHBvcnQgY29uc3Qgc3RyaXBlQXBpVmVyc2lvbiA9ICcyMDI1LTEyLTE1LmNsb3Zlcic7XG5cbmV4cG9ydCBjb25zdCBnZXRTdHJpcGVDbGllbnQgPSAoKSA9PiBuZXcgc3RyaXBlKENvbmZpZy5nZXQoJ3N0cmlwZS50b2tlbicpLCB7YXBpVmVyc2lvbjogc3RyaXBlQXBpVmVyc2lvbiwgdHlwZXNjcmlwdDogdHJ1ZX0pOyJdLCJuYW1lcyI6WyJzdHJpcGUiLCJDb25maWciLCJzdHJpcGVBcGlWZXJzaW9uIiwiZ2V0U3RyaXBlQ2xpZW50IiwiZ2V0IiwiYXBpVmVyc2lvbiIsInR5cGVzY3JpcHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELE9BQU9BLFlBQVksU0FBUztBQUU1QixTQUFRQyxNQUFNLFFBQU8sZUFBZTtBQUVwQyxPQUFPLE1BQU1DLG1CQUFtQixvQkFBb0I7QUFFcEQsT0FBTyxNQUFNQyxrQkFBa0IsSUFBTSxJQUFJSCxPQUFPQyxPQUFPRyxHQUFHLENBQUMsaUJBQWlCO1FBQUNDLFlBQVlIO1FBQWtCSSxZQUFZO0lBQUksR0FBRyJ9
@@ -1,3 +1,4 @@
1
1
  export type TemplateParams = Record<string, string>;
2
2
  export declare const parseTemplate: (template: string, params: TemplateParams) => string;
3
3
  export declare const createTemplate: <T extends TemplateParams>(templateString: string, params: T) => string;
4
+ //# sourceMappingURL=templateUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateUtils.d.ts","sourceRoot":"","sources":["../../src/utils/templateUtils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpD,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,EAAE,QAAQ,cAAc,KAAG,MASxE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,cAAc,EAAE,gBAAgB,MAAM,EAAE,QAAQ,CAAC,KAAG,MACtD,CAAC"}
@@ -0,0 +1,11 @@
1
+ export const parseTemplate = (template, params)=>{
2
+ let result = template;
3
+ Object.keys(params).forEach((key)=>{
4
+ const regex = new RegExp(`\\[${key}\\]`, 'g');
5
+ result = result.replace(regex, params[key]);
6
+ });
7
+ return result;
8
+ };
9
+ export const createTemplate = (templateString, params)=>parseTemplate(templateString, params);
10
+
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3V0aWxzL3RlbXBsYXRlVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVGVtcGxhdGVQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5leHBvcnQgY29uc3QgcGFyc2VUZW1wbGF0ZSA9ICh0ZW1wbGF0ZTogc3RyaW5nLCBwYXJhbXM6IFRlbXBsYXRlUGFyYW1zKTogc3RyaW5nID0+IHtcbiAgbGV0IHJlc3VsdCA9IHRlbXBsYXRlO1xuXG4gIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcWyR7a2V5fVxcXFxdYCwgJ2cnKTtcbiAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShyZWdleCwgcGFyYW1zW2tleV0pO1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRlbXBsYXRlID0gPFQgZXh0ZW5kcyBUZW1wbGF0ZVBhcmFtcz4odGVtcGxhdGVTdHJpbmc6IHN0cmluZywgcGFyYW1zOiBUKTogc3RyaW5nID0+XG4gIHBhcnNlVGVtcGxhdGUodGVtcGxhdGVTdHJpbmcsIHBhcmFtcyk7Il0sIm5hbWVzIjpbInBhcnNlVGVtcGxhdGUiLCJ0ZW1wbGF0ZSIsInBhcmFtcyIsInJlc3VsdCIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicmVnZXgiLCJSZWdFeHAiLCJyZXBsYWNlIiwiY3JlYXRlVGVtcGxhdGUiLCJ0ZW1wbGF0ZVN0cmluZyJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxNQUFNQSxnQkFBZ0IsQ0FBQ0MsVUFBa0JDO0lBQzlDLElBQUlDLFNBQVNGO0lBRWJHLE9BQU9DLElBQUksQ0FBQ0gsUUFBUUksT0FBTyxDQUFDLENBQUNDO1FBQzNCLE1BQU1DLFFBQVEsSUFBSUMsT0FBTyxDQUFDLEdBQUcsRUFBRUYsSUFBSSxHQUFHLENBQUMsRUFBRTtRQUN6Q0osU0FBU0EsT0FBT08sT0FBTyxDQUFDRixPQUFPTixNQUFNLENBQUNLLElBQUk7SUFDNUM7SUFFQSxPQUFPSjtBQUNULEVBQUU7QUFFRixPQUFPLE1BQU1RLGlCQUFpQixDQUEyQkMsZ0JBQXdCVixTQUMvRUYsY0FBY1ksZ0JBQWdCVixRQUFRIn0=
@@ -93,3 +93,4 @@ export declare const createUtilsTestSuite: (name: string, utilsPath: string, tes
93
93
  expectedOutput: TestReturnValue;
94
94
  }>) => void;
95
95
  export {};
96
+ //# sourceMappingURL=testUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../src/utils/testUtils.ts"],"names":[],"mappings":"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"}