@sqrzro/server 4.0.0-alpha.63 → 4.0.0-alpha.65

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 (252) hide show
  1. package/dist/csv/generate-csv-blob.d.ts +3 -0
  2. package/dist/csv/generate-csv-blob.d.ts.map +1 -0
  3. package/dist/csv/generate-csv-blob.js +5 -0
  4. package/dist/csv/generate-csv.d.ts +3 -0
  5. package/dist/csv/generate-csv.d.ts.map +1 -0
  6. package/dist/csv/generate-csv.js +5 -0
  7. package/dist/csv/index.d.ts +4 -7
  8. package/dist/csv/index.d.ts.map +1 -0
  9. package/dist/csv/index.js +3 -2
  10. package/dist/csv/parse-csv.d.ts +3 -0
  11. package/dist/csv/parse-csv.d.ts.map +1 -0
  12. package/dist/csv/parse-csv.js +13 -0
  13. package/dist/database/create-repository.d.ts +41 -0
  14. package/dist/database/create-repository.d.ts.map +1 -0
  15. package/dist/database/create-repository.js +207 -0
  16. package/dist/database/db.d.ts +6 -0
  17. package/dist/database/db.d.ts.map +1 -0
  18. package/dist/database/db.js +7 -0
  19. package/dist/database/index.d.ts +5 -99
  20. package/dist/database/index.d.ts.map +1 -0
  21. package/dist/database/index.js +2 -2
  22. package/dist/database/interfaces.d.ts +52 -0
  23. package/dist/database/interfaces.d.ts.map +1 -0
  24. package/dist/database/interfaces.js +1 -0
  25. package/dist/forms/ValidationError.d.ts +12 -0
  26. package/dist/forms/ValidationError.d.ts.map +1 -0
  27. package/dist/forms/ValidationError.js +15 -0
  28. package/dist/forms/create-rule.d.ts +8 -0
  29. package/dist/forms/create-rule.d.ts.map +1 -0
  30. package/dist/forms/create-rule.js +4 -0
  31. package/dist/forms/files/put-file.d.ts +3 -0
  32. package/dist/forms/files/put-file.d.ts.map +1 -0
  33. package/dist/forms/files/put-file.js +9 -0
  34. package/dist/forms/files/upload-file.d.ts +4 -0
  35. package/dist/forms/files/upload-file.d.ts.map +1 -0
  36. package/dist/forms/files/upload-file.js +14 -0
  37. package/dist/forms/index.d.ts +13 -67
  38. package/dist/forms/index.d.ts.map +1 -0
  39. package/dist/forms/index.js +11 -2
  40. package/dist/forms/preprocesses/alpha.d.ts +3 -0
  41. package/dist/forms/preprocesses/alpha.d.ts.map +1 -0
  42. package/dist/forms/preprocesses/alpha.js +7 -0
  43. package/dist/forms/preprocesses/alphanumeric.d.ts +3 -0
  44. package/dist/forms/preprocesses/alphanumeric.d.ts.map +1 -0
  45. package/dist/forms/preprocesses/alphanumeric.js +7 -0
  46. package/dist/forms/preprocesses/lowercase.d.ts +1 -0
  47. package/dist/forms/preprocesses/lowercase.d.ts.map +1 -0
  48. package/dist/forms/preprocesses/lowercase.js +1 -0
  49. package/dist/forms/preprocesses/numeric.d.ts +1 -0
  50. package/dist/forms/preprocesses/numeric.d.ts.map +1 -0
  51. package/dist/forms/preprocesses/numeric.js +1 -0
  52. package/dist/forms/preprocesses/uppercase.d.ts +1 -0
  53. package/dist/forms/preprocesses/uppercase.d.ts.map +1 -0
  54. package/dist/forms/preprocesses/uppercase.js +1 -0
  55. package/dist/forms/refiner/get-not-exists-refiner.d.ts +9 -0
  56. package/dist/forms/refiner/get-not-exists-refiner.d.ts.map +1 -0
  57. package/dist/forms/refiner/get-not-exists-refiner.js +13 -0
  58. package/dist/forms/rules/get-csv-rule.d.ts +4 -0
  59. package/dist/forms/rules/get-csv-rule.d.ts.map +1 -0
  60. package/dist/forms/rules/get-csv-rule.js +8 -0
  61. package/dist/forms/rules/get-phone-rule.d.ts +9 -0
  62. package/dist/forms/rules/get-phone-rule.d.ts.map +1 -0
  63. package/dist/forms/rules/get-phone-rule.js +15 -0
  64. package/dist/forms/submit-form.d.ts +19 -0
  65. package/dist/forms/submit-form.d.ts.map +1 -0
  66. package/dist/forms/submit-form.js +33 -0
  67. package/dist/forms/transformers/get-exists-transformer.d.ts +3 -0
  68. package/dist/forms/transformers/get-exists-transformer.d.ts.map +1 -0
  69. package/dist/forms/transformers/get-exists-transformer.js +9 -0
  70. package/dist/forms/utility/clean-data.d.ts +3 -0
  71. package/dist/forms/utility/clean-data.d.ts.map +1 -0
  72. package/dist/forms/utility/clean-data.js +18 -0
  73. package/dist/forms/utility/handle-redirect.d.ts +3 -0
  74. package/dist/forms/utility/handle-redirect.d.ts.map +1 -0
  75. package/dist/forms/utility/handle-redirect.js +7 -0
  76. package/dist/forms/utility/interfaces.d.ts +12 -0
  77. package/dist/forms/utility/interfaces.d.ts.map +1 -0
  78. package/dist/forms/utility/interfaces.js +1 -0
  79. package/dist/forms/utility/transform-errors.d.ts +4 -0
  80. package/dist/forms/utility/transform-errors.d.ts.map +1 -0
  81. package/dist/forms/utility/transform-errors.js +7 -0
  82. package/dist/forms/utility/transform-file-path.d.ts +3 -0
  83. package/dist/forms/utility/transform-file-path.d.ts.map +1 -0
  84. package/dist/forms/utility/transform-file-path.js +9 -0
  85. package/dist/forms/utility/transform-issue.d.ts +6 -0
  86. package/dist/forms/utility/transform-issue.d.ts.map +1 -0
  87. package/dist/forms/utility/transform-issue.js +17 -0
  88. package/dist/forms/validate-schema.d.ts +4 -0
  89. package/dist/forms/validate-schema.d.ts.map +1 -0
  90. package/dist/forms/validate-schema.js +20 -0
  91. package/dist/forms/validators/get-exists-validator.d.ts +5 -0
  92. package/dist/forms/validators/get-exists-validator.d.ts.map +1 -0
  93. package/dist/forms/validators/get-exists-validator.js +10 -0
  94. package/dist/forms/validators/get-not-exists-validator.d.ts +5 -0
  95. package/dist/forms/validators/get-not-exists-validator.d.ts.map +1 -0
  96. package/dist/forms/validators/get-not-exists-validator.js +10 -0
  97. package/dist/index.d.ts +3 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +1 -0
  100. package/dist/json/index.d.ts +3 -7
  101. package/dist/json/index.d.ts.map +1 -0
  102. package/dist/json/index.js +2 -2
  103. package/dist/json/validate-json-response.d.ts +4 -0
  104. package/dist/json/validate-json-response.d.ts.map +1 -0
  105. package/dist/json/validate-json-response.js +7 -0
  106. package/dist/json/validate-json.d.ts +4 -0
  107. package/dist/json/validate-json.d.ts.map +1 -0
  108. package/dist/json/validate-json.js +4 -0
  109. package/dist/logs/LogRepository.d.ts +1 -0
  110. package/dist/logs/LogRepository.d.ts.map +1 -0
  111. package/dist/logs/LogRepository.js +1 -0
  112. package/dist/logs/index.d.ts +1 -0
  113. package/dist/logs/index.d.ts.map +1 -0
  114. package/dist/logs/index.js +1 -0
  115. package/dist/logs/log.d.ts +1 -0
  116. package/dist/logs/log.d.ts.map +1 -0
  117. package/dist/logs/log.js +1 -0
  118. package/dist/logs/utility/interfaces.d.ts +1 -0
  119. package/dist/logs/utility/interfaces.d.ts.map +1 -0
  120. package/dist/logs/utility/interfaces.js +1 -0
  121. package/dist/logs/utility/schema.d.ts +1 -0
  122. package/dist/logs/utility/schema.d.ts.map +1 -0
  123. package/dist/logs/utility/schema.js +1 -0
  124. package/dist/mail/create-mail.d.ts +4 -0
  125. package/dist/mail/create-mail.d.ts.map +1 -0
  126. package/dist/mail/create-mail.js +4 -0
  127. package/dist/mail/drivers/mailgun/index.d.ts +4 -0
  128. package/dist/mail/drivers/mailgun/index.d.ts.map +1 -0
  129. package/dist/mail/drivers/mailgun/index.js +24 -0
  130. package/dist/mail/drivers/mailgun/transform-mailgun-domain.d.ts +3 -0
  131. package/dist/mail/drivers/mailgun/transform-mailgun-domain.d.ts.map +1 -0
  132. package/dist/mail/drivers/mailgun/transform-mailgun-domain.js +4 -0
  133. package/dist/mail/drivers/mailtrap/index.d.ts +4 -0
  134. package/dist/mail/drivers/mailtrap/index.d.ts.map +1 -0
  135. package/dist/mail/drivers/mailtrap/index.js +31 -0
  136. package/dist/mail/drivers/mailtrap/transform-mailtrap-recipients.d.ts +5 -0
  137. package/dist/mail/drivers/mailtrap/transform-mailtrap-recipients.d.ts.map +1 -0
  138. package/dist/mail/drivers/mailtrap/transform-mailtrap-recipients.js +7 -0
  139. package/dist/mail/drivers/mandrill/index.d.ts +4 -0
  140. package/dist/mail/drivers/mandrill/index.d.ts.map +1 -0
  141. package/dist/mail/drivers/mandrill/index.js +34 -0
  142. package/dist/mail/drivers/mandrill/transform-mandrill-recipients.d.ts +6 -0
  143. package/dist/mail/drivers/mandrill/transform-mandrill-recipients.d.ts.map +1 -0
  144. package/dist/mail/drivers/mandrill/transform-mandrill-recipients.js +14 -0
  145. package/dist/mail/drivers/sendgrid/index.d.ts +4 -0
  146. package/dist/mail/drivers/sendgrid/index.d.ts.map +1 -0
  147. package/dist/mail/drivers/sendgrid/index.js +23 -0
  148. package/dist/mail/drivers/sendgrid/transform-sendgrid-recipients.d.ts +5 -0
  149. package/dist/mail/drivers/sendgrid/transform-sendgrid-recipients.d.ts.map +1 -0
  150. package/dist/mail/drivers/sendgrid/transform-sendgrid-recipients.js +7 -0
  151. package/dist/mail/get-mail.d.ts +7 -0
  152. package/dist/mail/get-mail.d.ts.map +1 -0
  153. package/dist/mail/get-mail.js +12 -0
  154. package/dist/mail/index.d.ts +5 -25
  155. package/dist/mail/index.d.ts.map +1 -0
  156. package/dist/mail/index.js +3 -3
  157. package/dist/mail/send-mail.d.ts +4 -0
  158. package/dist/mail/send-mail.d.ts.map +1 -0
  159. package/dist/mail/send-mail.js +45 -0
  160. package/dist/mail/utility/get-sender-details.d.ts +4 -0
  161. package/dist/mail/utility/get-sender-details.d.ts.map +1 -0
  162. package/dist/mail/utility/get-sender-details.js +15 -0
  163. package/dist/mail/utility/interfaces.d.ts +34 -0
  164. package/dist/mail/utility/interfaces.d.ts.map +1 -0
  165. package/dist/mail/utility/interfaces.js +1 -0
  166. package/dist/mail/utility/render-mail.d.ts +3 -0
  167. package/dist/mail/utility/render-mail.d.ts.map +1 -0
  168. package/dist/mail/utility/render-mail.js +20 -0
  169. package/dist/proxy/handle-proxy.d.ts +5 -0
  170. package/dist/proxy/handle-proxy.d.ts.map +1 -0
  171. package/dist/proxy/handle-proxy.js +17 -0
  172. package/dist/proxy/index.d.ts +3 -10
  173. package/dist/proxy/index.d.ts.map +1 -0
  174. package/dist/proxy/index.js +1 -2
  175. package/dist/proxy/utility/interfaces.d.ts +6 -0
  176. package/dist/proxy/utility/interfaces.d.ts.map +1 -0
  177. package/dist/proxy/utility/interfaces.js +1 -0
  178. package/dist/queue/add-to-queue.d.ts +3 -0
  179. package/dist/queue/add-to-queue.d.ts.map +1 -0
  180. package/dist/queue/add-to-queue.js +2 -0
  181. package/dist/queue/drivers/mail-queue-driver.d.ts +1 -0
  182. package/dist/queue/drivers/mail-queue-driver.d.ts.map +1 -0
  183. package/dist/queue/drivers/mail-queue-driver.js +1 -0
  184. package/dist/queue/handle-queue.d.ts +4 -0
  185. package/dist/queue/handle-queue.d.ts.map +1 -0
  186. package/dist/queue/handle-queue.js +2 -0
  187. package/dist/queue/index.d.ts +3 -0
  188. package/dist/queue/index.d.ts.map +1 -0
  189. package/dist/queue/index.js +2 -0
  190. package/dist/queue/utility/interfaces.d.ts +1 -0
  191. package/dist/queue/utility/interfaces.d.ts.map +1 -0
  192. package/dist/queue/utility/interfaces.js +1 -0
  193. package/dist/storage/index.d.ts +2 -2
  194. package/dist/storage/index.d.ts.map +1 -0
  195. package/dist/storage/index.js +66 -2
  196. package/dist/storage/utility/get-client.d.ts +10 -0
  197. package/dist/storage/utility/get-client.d.ts.map +1 -0
  198. package/dist/storage/utility/get-client.js +22 -0
  199. package/dist/storage/utility/get-ttl.d.ts +3 -0
  200. package/dist/storage/utility/get-ttl.d.ts.map +1 -0
  201. package/dist/storage/utility/get-ttl.js +15 -0
  202. package/dist/storage/utility/is-localhost.d.ts +8 -0
  203. package/dist/storage/utility/is-localhost.d.ts.map +1 -0
  204. package/dist/storage/utility/is-localhost.js +9 -0
  205. package/dist/storage/utility/make-key.d.ts +3 -0
  206. package/dist/storage/utility/make-key.d.ts.map +1 -0
  207. package/dist/storage/utility/make-key.js +4 -0
  208. package/dist/utility/db.d.ts +5 -0
  209. package/dist/utility/db.d.ts.map +1 -0
  210. package/dist/utility/db.js +2 -0
  211. package/dist/utility/ensure-id-from-params.d.ts +3 -0
  212. package/dist/utility/ensure-id-from-params.d.ts.map +1 -0
  213. package/dist/utility/ensure-id-from-params.js +7 -0
  214. package/dist/utility/ensure-id.d.ts +3 -0
  215. package/dist/utility/ensure-id.d.ts.map +1 -0
  216. package/dist/utility/ensure-id.js +9 -0
  217. package/dist/utility/generate-id.d.ts +3 -0
  218. package/dist/utility/generate-id.d.ts.map +1 -0
  219. package/dist/utility/generate-id.js +12 -0
  220. package/dist/utility/get-id-from-params.d.ts +3 -0
  221. package/dist/utility/get-id-from-params.d.ts.map +1 -0
  222. package/dist/utility/get-id-from-params.js +18 -0
  223. package/dist/utility/guard-id.d.ts +4 -0
  224. package/dist/utility/guard-id.d.ts.map +1 -0
  225. package/dist/utility/guard-id.js +11 -0
  226. package/dist/utility/index.d.ts +7 -14
  227. package/dist/utility/index.d.ts.map +1 -0
  228. package/dist/utility/index.js +6 -2
  229. package/dist/{interfaces-DTUqy5Oj.d.ts → utility/interfaces.d.ts} +4 -5
  230. package/dist/utility/interfaces.d.ts.map +1 -0
  231. package/dist/utility/interfaces.js +1 -0
  232. package/dist/utility/syslog.d.ts +3 -0
  233. package/dist/utility/syslog.d.ts.map +1 -0
  234. package/dist/utility/syslog.js +16 -0
  235. package/package.json +12 -12
  236. package/dist/chunk-2ZLU4AUD.js +0 -2
  237. package/dist/chunk-2ZLU4AUD.js.map +0 -1
  238. package/dist/chunk-6GDOIHTS.js +0 -2
  239. package/dist/chunk-6GDOIHTS.js.map +0 -1
  240. package/dist/chunk-BA3BC4CD.js +0 -2
  241. package/dist/chunk-BA3BC4CD.js.map +0 -1
  242. package/dist/chunk-UCMLSO7F.js +0 -3
  243. package/dist/chunk-UCMLSO7F.js.map +0 -1
  244. package/dist/csv/index.js.map +0 -1
  245. package/dist/database/index.js.map +0 -1
  246. package/dist/forms/index.js.map +0 -1
  247. package/dist/interfaces-cnzok1wV.d.ts +0 -13
  248. package/dist/json/index.js.map +0 -1
  249. package/dist/mail/index.js.map +0 -1
  250. package/dist/proxy/index.js.map +0 -1
  251. package/dist/storage/index.js.map +0 -1
  252. package/dist/utility/index.js.map +0 -1
@@ -1,2 +1 @@
1
- import {NextResponse}from'next/server';async function i(t,n){for(let s of n){let r=await s(t);if(r?.redirect){let{redirect:e}=r;return typeof e=="number"?new Response(null,{status:e}):NextResponse.redirect(new URL(e,t.url))}}return NextResponse.next()}var u=i;export{u as handleProxy};//# sourceMappingURL=index.js.map
2
- //# sourceMappingURL=index.js.map
1
+ export { default as handleProxy } from './handle-proxy';
@@ -0,0 +1,6 @@
1
+ import type { NextRequest } from 'next/server';
2
+ export interface ProxyRedirect {
3
+ redirect: string | number | null;
4
+ }
5
+ export type ProxyFunction = (request: NextRequest) => Promise<ProxyRedirect | null>;
6
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/proxy/utility/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ declare function addToQueue(name: string, data: unknown): Promise<void>;
2
+ export default addToQueue;
3
+ //# sourceMappingURL=add-to-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-to-queue.d.ts","sourceRoot":"","sources":["../../src/queue/add-to-queue.ts"],"names":[],"mappings":"AAAA,iBAAe,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAG;eAEzD,UAAU"}
@@ -0,0 +1,2 @@
1
+ async function addToQueue(name, data) { }
2
+ export default addToQueue;
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=mail-queue-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-queue-driver.d.ts","sourceRoot":"","sources":["../../../src/queue/drivers/mail-queue-driver.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,4 @@
1
+ import type { NextRequest } from 'next/server';
2
+ declare function handleQueue(request: NextRequest): Promise<void>;
3
+ export default handleQueue;
4
+ //# sourceMappingURL=handle-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-queue.d.ts","sourceRoot":"","sources":["../../src/queue/handle-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,iBAAe,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAG;eAEnD,WAAW"}
@@ -0,0 +1,2 @@
1
+ async function handleQueue(request) { }
2
+ export default handleQueue;
@@ -0,0 +1,3 @@
1
+ export { default as addToQueue } from './add-to-queue';
2
+ export { default as handleQueue } from './handle-queue';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as addToQueue } from './add-to-queue';
2
+ export { default as handleQueue } from './handle-queue';
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/queue/utility/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ "use strict";
@@ -28,5 +28,5 @@ declare const serverStorage: {
28
28
  */
29
29
  removeItem(prefix: string, key: string): Promise<void>;
30
30
  };
31
-
32
- export { serverStorage as default };
31
+ export default serverStorage;
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,QAAA,MAAM,aAAa;IACf;;;;;OAKG;IACG,OAAO,SAAS,MAAM,OAAO,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAc7E,QAAQ,SAAS,MAAM,OAAO,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKxD,QAAQ,SAAS,MAAM,OAAO,MAAM,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,UAAU,SAAS,MAAM,OAAO,MAAM,SAAS,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE,eAAe,SAAS,MAAM,OAAO,MAAM,SAAS,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhF;;;;;OAKG;IACG,OAAO,SACD,MAAM,OACT,MAAM,SACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QACxB,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAgBV,SAAS,SAAS,MAAM,OAAO,MAAM,OAAO,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE;;;;OAIG;IACG,UAAU,SAAS,MAAM,OAAO,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/D,CAAC;eAEa,aAAa"}
@@ -1,2 +1,66 @@
1
- import {createClient}from'redis';var s=null;async function c(){if(!process.env.REDIS_URL)throw new Error("REDIS_URL is not defined. Access to the cache is not possible.");return s||(s=createClient({url:process.env.REDIS_URL}),await s.connect(),s)}var i=c;async function g(t,r,e){if(typeof e=="number")return e;let a=await(await i()).ttl(`[${t}]:${r}`);return a<0?0:a}var m=g;function l(t,r){return `${process.env.REDIS_PREFIX?`[${process.env.REDIS_PREFIX}]`:""}[${t}]:${r}`}var n=l;var w={async getItem(t,r){let e=await(await i()).get(n(t,r));if(!e)return null;try{return JSON.parse(e)}catch{return null}},async getArray(t,r){return await(await i()).sMembers(n(t,r))},async setArray(t,r,e){await(await i()).del(n(t,r)),await(await i()).sAdd(n(t,r),e);},async addToArray(t,r,e){await(await i()).sAdd(n(t,r),e);},async removeFromArray(t,r,e){await(await i()).sRem(n(t,r),e);},async setItem(t,r,e,a){let o=await m(t,r,a);await(await i()).set(n(t,r),JSON.stringify(e),o>0?{expiration:{type:"EX",value:o}}:void 0);},async setExpiry(t,r,e){await(await i()).expire(n(t,r),e);},async removeItem(t,r){await(await i()).del(n(t,r));}},I=w;export{I as default};//# sourceMappingURL=index.js.map
2
- //# sourceMappingURL=index.js.map
1
+ import getClient from './utility/get-client';
2
+ import getTTL from './utility/get-ttl';
3
+ import makeKey from './utility/make-key';
4
+ /**
5
+ * Server-side storage utility for caching data using Redis. It is designed to match the interface of localStorage, but operates on the server side.
6
+ */
7
+ const serverStorage = {
8
+ /**
9
+ * Get an item from the cache.
10
+ * @param prefix The prefix to use for the cache key.
11
+ * @param key The key of the item to retrieve.
12
+ * @returns The cached item, or null if not found.
13
+ */
14
+ async getItem(prefix, key) {
15
+ const value = await (await getClient()).get(makeKey(prefix, key));
16
+ if (!value) {
17
+ return null;
18
+ }
19
+ try {
20
+ return JSON.parse(value);
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ },
26
+ async getArray(prefix, key) {
27
+ const values = await (await getClient()).sMembers(makeKey(prefix, key));
28
+ return values;
29
+ },
30
+ async setArray(prefix, key, value) {
31
+ await (await getClient()).del(makeKey(prefix, key));
32
+ await (await getClient()).sAdd(makeKey(prefix, key), value);
33
+ },
34
+ async addToArray(prefix, key, value) {
35
+ await (await getClient()).sAdd(makeKey(prefix, key), value);
36
+ },
37
+ async removeFromArray(prefix, key, value) {
38
+ await (await getClient()).sRem(makeKey(prefix, key), value);
39
+ },
40
+ /**
41
+ * Set an item in the cache.
42
+ * @param prefix The prefix to use for the cache key.
43
+ * @param key The key of the item to set.
44
+ * @param value The value of the item to set.
45
+ */
46
+ async setItem(prefix, key, value, ttl) {
47
+ const itemTTL = await getTTL(prefix, key, ttl);
48
+ await (await getClient()).set(makeKey(prefix, key), JSON.stringify(value), itemTTL > 0
49
+ ? {
50
+ expiration: { type: 'EX', value: itemTTL },
51
+ }
52
+ : undefined);
53
+ },
54
+ async setExpiry(prefix, key, ttl) {
55
+ await (await getClient()).expire(makeKey(prefix, key), ttl);
56
+ },
57
+ /**
58
+ * Remove an item from the cache.
59
+ * @param prefix The prefix to use for the cache key.
60
+ * @param key The key of the item to remove.
61
+ */
62
+ async removeItem(prefix, key) {
63
+ await (await getClient()).del(makeKey(prefix, key));
64
+ },
65
+ };
66
+ export default serverStorage;
@@ -0,0 +1,10 @@
1
+ import { createClient } from 'redis';
2
+ /**
3
+ * Get a Redis client instance. If the client does not exist, it creates a new one and connects to the Redis server.
4
+ * If the client already exists, it returns the existing instance.
5
+ *
6
+ * @returns A promise that resolves to a Redis client instance.
7
+ */
8
+ declare function getClient(): Promise<ReturnType<typeof createClient>>;
9
+ export default getClient;
10
+ //# sourceMappingURL=get-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-client.d.ts","sourceRoot":"","sources":["../../../src/storage/utility/get-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAMrC;;;;;GAKG;AACH,iBAAe,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAenE;eAEc,SAAS"}
@@ -0,0 +1,22 @@
1
+ import { createClient } from 'redis';
2
+ let client = null;
3
+ /**
4
+ * Get a Redis client instance. If the client does not exist, it creates a new one and connects to the Redis server.
5
+ * If the client already exists, it returns the existing instance.
6
+ *
7
+ * @returns A promise that resolves to a Redis client instance.
8
+ */
9
+ async function getClient() {
10
+ if (!process.env.REDIS_URL) {
11
+ throw new Error('REDIS_URL is not defined. Access to the cache is not possible.');
12
+ }
13
+ if (client) {
14
+ return client;
15
+ }
16
+ client = createClient({
17
+ url: process.env.REDIS_URL,
18
+ });
19
+ await client.connect();
20
+ return client;
21
+ }
22
+ export default getClient;
@@ -0,0 +1,3 @@
1
+ declare function getTTL(prefix: string, key: string, ttl?: number): Promise<number>;
2
+ export default getTTL;
3
+ //# sourceMappingURL=get-ttl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-ttl.d.ts","sourceRoot":"","sources":["../../../src/storage/utility/get-ttl.ts"],"names":[],"mappings":"AAEA,iBAAe,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBhF;eAEc,MAAM"}
@@ -0,0 +1,15 @@
1
+ import getClient from './get-client';
2
+ async function getTTL(prefix, key, ttl) {
3
+ // If a TTL is provided, return it directly
4
+ if (typeof ttl === 'number') {
5
+ return ttl;
6
+ }
7
+ // Otherwise, get the TTL from the storage
8
+ const result = await (await getClient()).ttl(`[${prefix}]:${key}`);
9
+ // If the result is -2, the key does not exist. If it's -1, the key exists but has no associated expire. In both cases, we return 0.
10
+ if (result < 0) {
11
+ return 0;
12
+ }
13
+ return result;
14
+ }
15
+ export default getTTL;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Check if the given URL is a localhost URL.
3
+ * @param url The URL to check.
4
+ * @returns True if the URL is a localhost URL, false otherwise.
5
+ */
6
+ declare function isLocalhost(url: string): boolean;
7
+ export default isLocalhost;
8
+ //# sourceMappingURL=is-localhost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-localhost.d.ts","sourceRoot":"","sources":["../../../src/storage/utility/is-localhost.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,iBAAS,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEzC;eAEc,WAAW"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Check if the given URL is a localhost URL.
3
+ * @param url The URL to check.
4
+ * @returns True if the URL is a localhost URL, false otherwise.
5
+ */
6
+ function isLocalhost(url) {
7
+ return url.includes('localhost') || url.includes('127.0.0.1');
8
+ }
9
+ export default isLocalhost;
@@ -0,0 +1,3 @@
1
+ declare function makeKey(prefix: string, key: string): string;
2
+ export default makeKey;
3
+ //# sourceMappingURL=make-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-key.d.ts","sourceRoot":"","sources":["../../../src/storage/utility/make-key.ts"],"names":[],"mappings":"AAAA,iBAAS,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;eAEc,OAAO"}
@@ -0,0 +1,4 @@
1
+ function makeKey(prefix, key) {
2
+ return `${process.env.REDIS_PREFIX ? `[${process.env.REDIS_PREFIX}]` : ''}[${prefix}]:${key}`;
3
+ }
4
+ export default makeKey;
@@ -0,0 +1,5 @@
1
+ declare const _default: import("drizzle-orm/node-postgres").NodePgDatabase<Record<string, never>> & {
2
+ $client: import("pg").Pool;
3
+ };
4
+ export default _default;
5
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/utility/db.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { drizzle } from 'drizzle-orm/node-postgres';
2
+ export default drizzle(process.env.DATABASE_URL ?? '');
@@ -0,0 +1,3 @@
1
+ declare function ensureIDFromParams<T extends string>(key: string, prefix: string, params?: Promise<Record<string, string>> | Record<string, string> | null): Promise<T>;
2
+ export default ensureIDFromParams;
3
+ //# sourceMappingURL=ensure-id-from-params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-id-from-params.d.ts","sourceRoot":"","sources":["../../src/utility/ensure-id-from-params.ts"],"names":[],"mappings":"AAGA,iBAAe,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAC9C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GACzE,OAAO,CAAC,CAAC,CAAC,CAGZ;eAEc,kBAAkB"}
@@ -0,0 +1,7 @@
1
+ import ensureID from './ensure-id';
2
+ import getIDFromParams from './get-id-from-params';
3
+ async function ensureIDFromParams(key, prefix, params) {
4
+ const id = await getIDFromParams(key, prefix, params);
5
+ return ensureID(id, prefix);
6
+ }
7
+ export default ensureIDFromParams;
@@ -0,0 +1,3 @@
1
+ declare function ensureID<T extends string>(id: string | null | undefined, prefix: string): T;
2
+ export default ensureID;
3
+ //# sourceMappingURL=ensure-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-id.d.ts","sourceRoot":"","sources":["../../src/utility/ensure-id.ts"],"names":[],"mappings":"AAEA,iBAAS,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAQpF;eAEc,QAAQ"}
@@ -0,0 +1,9 @@
1
+ import guardID from './guard-id';
2
+ function ensureID(id, prefix) {
3
+ const guardedID = guardID(id, prefix);
4
+ if (!guardedID) {
5
+ throw new Error(`Could not ensure ID. '${id}' is not a valid ID with prefix '${prefix}'.`);
6
+ }
7
+ return guardedID;
8
+ }
9
+ export default ensureID;
@@ -0,0 +1,3 @@
1
+ declare function generateID<T extends string = string>(prefix?: string | null, length?: number): T;
2
+ export default generateID;
3
+ //# sourceMappingURL=generate-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-id.d.ts","sourceRoot":"","sources":["../../src/utility/generate-id.ts"],"names":[],"mappings":"AAIA,iBAAS,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,SAAY,GAAG,CAAC,CAW5F;eAEc,UAAU"}
@@ -0,0 +1,12 @@
1
+ import { randomBytes } from 'crypto';
2
+ const ID_LENGTH = 16;
3
+ function generateID(prefix, length = ID_LENGTH) {
4
+ const chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
5
+ const bytes = randomBytes(length);
6
+ let result = '';
7
+ for (let i = 0; i < length; i++) {
8
+ result += chars[bytes[i] % chars.length];
9
+ }
10
+ return `${prefix ? prefix + '_' : ''}${result}`;
11
+ }
12
+ export default generateID;
@@ -0,0 +1,3 @@
1
+ declare function getIDFromParams<T extends string>(key: string, prefix: string, params?: Promise<Record<string, string[] | string>> | Record<string, string[] | string> | null): Promise<T | null>;
2
+ export default getIDFromParams;
3
+ //# sourceMappingURL=get-id-from-params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-id-from-params.d.ts","sourceRoot":"","sources":["../../src/utility/get-id-from-params.ts"],"names":[],"mappings":"AAaA,iBAAe,eAAe,CAAC,CAAC,SAAS,MAAM,EAC3C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,GAC/F,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CASnB;eAEc,eAAe"}
@@ -0,0 +1,18 @@
1
+ import guardID from './guard-id';
2
+ function getParamsValue(params, key) {
3
+ const match = key.match(/^([^\[]+)\[(\d+)\]$/);
4
+ if (match) {
5
+ const [, field, index] = match;
6
+ return Array.isArray(params[field]) ? params[field][Number(index)] : null;
7
+ }
8
+ return Array.isArray(params[key]) ? params[key][0] : params[key];
9
+ }
10
+ async function getIDFromParams(key, prefix, params) {
11
+ if (!params) {
12
+ return null;
13
+ }
14
+ const awaitedParams = params instanceof Promise ? await params : params;
15
+ const value = getParamsValue(awaitedParams, key);
16
+ return guardID(value, prefix);
17
+ }
18
+ export default getIDFromParams;
@@ -0,0 +1,4 @@
1
+ declare function guardID<T extends string>(id: (string | null | undefined)[], prefix: string): T[];
2
+ declare function guardID<T extends string>(id: string | null | undefined, prefix: string): T | null;
3
+ export default guardID;
4
+ //# sourceMappingURL=guard-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard-id.d.ts","sourceRoot":"","sources":["../../src/utility/guard-id.ts"],"names":[],"mappings":"AAEA,iBAAS,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;AAC3F,iBAAS,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;eAiB7E,OAAO"}
@@ -0,0 +1,11 @@
1
+ import { filterNull } from '@sqrzro/utility';
2
+ function guardID(id, prefix) {
3
+ if (Array.isArray(id)) {
4
+ return filterNull(id.map((item) => guardID(item, prefix)));
5
+ }
6
+ if (!id?.startsWith(prefix)) {
7
+ return null;
8
+ }
9
+ return id;
10
+ }
11
+ export default guardID;
@@ -1,14 +1,7 @@
1
- export { L as ListFunctionConfig, M as MakeNullOptional, P as Paginated } from '../interfaces-DTUqy5Oj.js';
2
-
3
- declare function ensureID<T extends string>(id: string | null | undefined, prefix: string): T;
4
-
5
- declare function generateID<T extends string = string>(prefix?: string | null, length?: number): T;
6
-
7
- declare function getIDFromParams<T extends string>(key: string, prefix: string, params?: Promise<Record<string, string[] | string>> | Record<string, string[] | string> | null): Promise<T | null>;
8
-
9
- declare function guardID<T extends string>(id: (string | null | undefined)[], prefix: string): T[];
10
- declare function guardID<T extends string>(id: string | null | undefined, prefix: string): T | null;
11
-
12
- declare function syslog(alias: string, fnName: string, message: string): void;
13
-
14
- export { ensureID, generateID, getIDFromParams, guardID, syslog };
1
+ export * from './interfaces';
2
+ export { default as ensureID } from './ensure-id';
3
+ export { default as generateID } from './generate-id';
4
+ export { default as getIDFromParams } from './get-id-from-params';
5
+ export { default as guardID } from './guard-id';
6
+ export { default as syslog } from './syslog';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utility/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -1,2 +1,6 @@
1
- export{a as generateID,b as syslog}from'../chunk-6GDOIHTS.js';export{b as ensureID,c as getIDFromParams,a as guardID}from'../chunk-BA3BC4CD.js';//# sourceMappingURL=index.js.map
2
- //# sourceMappingURL=index.js.map
1
+ export * from './interfaces';
2
+ export { default as ensureID } from './ensure-id';
3
+ export { default as generateID } from './generate-id';
4
+ export { default as getIDFromParams } from './get-id-from-params';
5
+ export { default as guardID } from './guard-id';
6
+ export { default as syslog } from './syslog';
@@ -1,15 +1,15 @@
1
- type ListFunctionConfig<Filters = undefined> = {
1
+ export type ListFunctionConfig<Filters = undefined> = {
2
2
  params?: Record<string, string> | null;
3
3
  page?: number | null;
4
4
  } & (Filters extends undefined ? {} : {
5
5
  filters?: Partial<Filters> | null;
6
6
  });
7
- type MakeNullOptional<T> = {
7
+ export type MakeNullOptional<T> = {
8
8
  [K in keyof T as null extends T[K] ? K : never]?: T[K];
9
9
  } & {
10
10
  [K in keyof T as null extends T[K] ? never : K]: T[K];
11
11
  };
12
- interface Paginated<T> {
12
+ export interface Paginated<T> {
13
13
  data: T[];
14
14
  meta: {
15
15
  limit: number;
@@ -17,5 +17,4 @@ interface Paginated<T> {
17
17
  total: number;
18
18
  };
19
19
  }
20
-
21
- export type { ListFunctionConfig as L, MakeNullOptional as M, Paginated as P };
20
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/utility/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,CAAC,OAAO,GAAG,SAAS,IAAI;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG,CAAC,OAAO,SAAS,SAAS,GAAG,EAAE,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC;AAE7E,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAC7B,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACzD,GAAG;KACC,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,WAAW,SAAS,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACxD"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ declare function syslog(alias: string, fnName: string, message: string): void;
2
+ export default syslog;
3
+ //# sourceMappingURL=syslog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syslog.d.ts","sourceRoot":"","sources":["../../src/utility/syslog.ts"],"names":[],"mappings":"AAaA,iBAAS,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIpE;eAEc,MAAM"}
@@ -0,0 +1,16 @@
1
+ function shouldLog(alias) {
2
+ if (process.env.SZ_LOG === 'true') {
3
+ return true;
4
+ }
5
+ if (typeof process.env.SZ_LOG === 'string') {
6
+ const logAliases = process.env.SZ_LOG.split(',');
7
+ return logAliases.includes(alias);
8
+ }
9
+ return false;
10
+ }
11
+ function syslog(alias, fnName, message) {
12
+ if (shouldLog(alias)) {
13
+ console.log(`[${alias}] ${fnName}: ${message}`); // eslint-disable-line no-console
14
+ }
15
+ }
16
+ export default syslog;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sqrzro/server",
3
- "version": "4.0.0-alpha.63",
3
+ "version": "4.0.0-alpha.65",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -40,40 +40,40 @@
40
40
  }
41
41
  },
42
42
  "files": [
43
- "dist/**/*"
43
+ "dist"
44
44
  ],
45
45
  "dependencies": {
46
46
  "@sendgrid/mail": "^8.1.6",
47
- "@sqrzro/utility": "^4.0.0-alpha.22",
47
+ "@sqrzro/utility": "^4.0.0-alpha.23",
48
48
  "@vercel/blob": "^2.8.1",
49
49
  "csv": "^6.6.4",
50
50
  "drizzle-orm": "^0.45.4",
51
51
  "form-data": "^4.0.6",
52
- "mailgun.js": "^13.3.0",
52
+ "mailgun.js": "^14.1.0",
53
53
  "pg": "^8.23.1",
54
54
  "react-dom": "^19.3.0",
55
- "redis": "^5.12.1",
56
- "zod": "^4.6.5"
55
+ "redis": "^6.3.0",
56
+ "zod": "^4.6.7"
57
57
  },
58
58
  "devDependencies": {
59
- "@types/jest": "^29.5.14",
59
+ "@types/jest": "^30.0.0",
60
60
  "@types/pg": "^8.23.1",
61
61
  "@types/react": "^19.3.0",
62
62
  "@types/react-dom": "^19.3.0",
63
- "jest": "^29.7.0",
64
- "rimraf": "^4.4.1",
63
+ "jest": "^30.5.2",
64
+ "rimraf": "^6.1.3",
65
65
  "ts-jest": "^29.4.14",
66
66
  "tsup": "^8.5.1",
67
- "typescript": "^5.9.3"
67
+ "typescript": "^7.0.2"
68
68
  },
69
69
  "peerDependencies": {
70
70
  "next": "^16.2.11",
71
71
  "react": "^19.2.8"
72
72
  },
73
73
  "scripts": {
74
- "build": "pnpm clean && tsup",
74
+ "build": "pnpm clean && tsc -p tsconfig.build.json",
75
75
  "clean": "rimraf ./dist",
76
- "dev": "tsup --watch",
76
+ "dev": "tsc -p tsconfig.build.json --watch",
77
77
  "lint": "tsc --noEmit && eslint \"./src/**/*.ts\"",
78
78
  "start": "pnpm dev",
79
79
  "test": "jest"
@@ -1,2 +0,0 @@
1
- function s(r){return r}var l=s;var t=class extends Error{messages;constructor(e){super(JSON.stringify(e)),this.messages=e,this.name="ValidationError";}},n=t;async function a(r,e,o){let i=await o(e);if(!i)throw new n({[r]:"NOT_FOUND"});return i}var c=a;export{l as a,n as b,c};//# sourceMappingURL=chunk-2ZLU4AUD.js.map
2
- //# sourceMappingURL=chunk-2ZLU4AUD.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/forms/create-rule.ts","../src/forms/ValidationError.ts","../src/forms/transformers/get-exists-transformer.ts"],"names":["createRule","config","create_rule_default","ValidationError","messages","ValidationError_default","getExistsTransformer","key","value","fn","result","get_exists_transformer_default"],"mappings":"AAEA,SAASA,CAAAA,CAA4CC,CAAAA,CAIzB,CACxB,OAAOA,CACX,CAEA,IAAOC,CAAAA,CAAQF,ECJf,IAAMG,CAAAA,CAAN,cAA8B,KAAM,CACzB,QAAA,CAEA,WAAA,CAAYC,CAAAA,CAAkC,CACjD,KAAA,CAAM,IAAA,CAAK,SAAA,CAAUA,CAAQ,CAAC,CAAA,CAE9B,IAAA,CAAK,QAAA,CAAWA,CAAAA,CAChB,IAAA,CAAK,KAAO,kBAChB,CACJ,CAAA,CAEOC,CAAAA,CAAQF,ECff,eAAeG,CAAAA,CACXC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACuB,CACvB,IAAMC,CAAAA,CAAS,MAAMD,CAAAA,CAAGD,CAAK,EAE7B,GAAI,CAACE,CAAAA,CACD,MAAM,IAAIL,CAAAA,CAAgB,CAAE,CAACE,CAAG,EAAG,WAAY,CAAC,CAAA,CAGpD,OAAOG,CACX,KAEOC,CAAAA,CAAQL","file":"chunk-2ZLU4AUD.js","sourcesContent":["import type { ValidationRule } from './utility/interfaces';\n\nfunction createRule<V, T = undefined, R = undefined>(config: {\n validator: V;\n transformer?: T;\n refiner?: R;\n}): ValidationRule<V, T, R> {\n return config as ValidationRule<V, T, R>;\n}\n\nexport default createRule;\n","/**\n * Custom error class to represent validation errors in form processing.\n *\n * It extends the built-in Error class and includes a messages property\n * that holds a record of validation error messages.\n */\nclass ValidationError extends Error {\n public messages: Record<string, string>;\n\n public constructor(messages: Record<string, string>) {\n super(JSON.stringify(messages));\n\n this.messages = messages;\n this.name = 'ValidationError';\n }\n}\n\nexport default ValidationError;\n","import ValidationError from '../ValidationError';\n\nasync function getExistsTransformer<T, ID>(\n key: string,\n value: ID,\n fn: (value: ID) => Promise<T>\n): Promise<NonNullable<T>> {\n const result = await fn(value);\n\n if (!result) {\n throw new ValidationError({ [key]: 'NOT_FOUND' });\n }\n\n return result;\n}\n\nexport default getExistsTransformer;\n"]}
@@ -1,2 +0,0 @@
1
- import {randomBytes}from'crypto';var a=16;function f(e,t=a){let r="abcdefghijklmnopqrstuvwxyz0123456789",n=randomBytes(t),o="";for(let s=0;s<t;s++)o+=r[n[s]%r.length];return `${e?e+"_":""}${o}`}var u=f;function i(e){return process.env.SZ_LOG==="true"?true:typeof process.env.SZ_LOG=="string"?process.env.SZ_LOG.split(",").includes(e):false}function g(e,t,r){i(e)&&console.log(`[${e}] ${t}: ${r}`);}var c=g;export{u as a,c as b};//# sourceMappingURL=chunk-6GDOIHTS.js.map
2
- //# sourceMappingURL=chunk-6GDOIHTS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utility/generate-id.ts","../src/utility/syslog.ts"],"names":["ID_LENGTH","generateID","prefix","length","chars","bytes","randomBytes","result","i","generate_id_default","shouldLog","alias","syslog","fnName","message","syslog_default"],"mappings":"iCAEA,IAAMA,EAAY,EAAA,CAElB,SAASC,EAAsCC,CAAAA,CAAwBC,CAAAA,CAASH,EAAc,CAC1F,IAAMI,EAAQ,sCAAA,CACRC,CAAAA,CAAQC,YAAYH,CAAM,CAAA,CAE5BI,EAAS,EAAA,CAEb,IAAA,IAASC,EAAI,CAAA,CAAGA,CAAAA,CAAIL,EAAQK,CAAAA,EAAAA,CACxBD,CAAAA,EAAUH,EAAMC,CAAAA,CAAMG,CAAC,EAAIJ,CAAAA,CAAM,MAAM,EAG3C,OAAO,CAAA,EAAGF,EAASA,CAAAA,CAAS,GAAA,CAAM,EAAE,CAAA,EAAGK,CAAM,CAAA,CACjD,CAEA,IAAOE,CAAAA,CAAQR,ECjBf,SAASS,CAAAA,CAAUC,EAAwB,CACvC,OAAI,QAAQ,GAAA,CAAI,MAAA,GAAW,OAChB,IAAA,CAGP,OAAO,QAAQ,GAAA,CAAI,MAAA,EAAW,SACX,OAAA,CAAQ,GAAA,CAAI,OAAO,KAAA,CAAM,GAAG,CAAA,CAC7B,QAAA,CAASA,CAAK,CAAA,CAG7B,KACX,CAEA,SAASC,EAAOD,CAAAA,CAAeE,CAAAA,CAAgBC,EAAuB,CAC9DJ,CAAAA,CAAUC,CAAK,CAAA,EACf,OAAA,CAAQ,IAAI,CAAA,CAAA,EAAIA,CAAK,KAAKE,CAAM,CAAA,EAAA,EAAKC,CAAO,CAAA,CAAE,EAEtD,CAEA,IAAOC,CAAAA,CAAQH","file":"chunk-6GDOIHTS.js","sourcesContent":["import { randomBytes } from 'crypto';\n\nconst ID_LENGTH = 16;\n\nfunction generateID<T extends string = string>(prefix?: string | null, length = ID_LENGTH): T {\n const chars = 'abcdefghijklmnopqrstuvwxyz0123456789';\n const bytes = randomBytes(length);\n\n let result = '';\n\n for (let i = 0; i < length; i++) {\n result += chars[bytes[i] % chars.length];\n }\n\n return `${prefix ? prefix + '_' : ''}${result}` as T;\n}\n\nexport default generateID;\n","function shouldLog(alias: string): boolean {\n if (process.env.SZ_LOG === 'true') {\n return true;\n }\n\n if (typeof process.env.SZ_LOG === 'string') {\n const logAliases = process.env.SZ_LOG.split(',');\n return logAliases.includes(alias);\n }\n\n return false;\n}\n\nfunction syslog(alias: string, fnName: string, message: string): void {\n if (shouldLog(alias)) {\n console.log(`[${alias}] ${fnName}: ${message}`); // eslint-disable-line no-console\n }\n}\n\nexport default syslog;\n"]}
@@ -1,2 +0,0 @@
1
- import {filterNull}from'@sqrzro/utility';function s(n,r){return Array.isArray(n)?filterNull(n.map(t=>s(t,r))):n?.startsWith(r)?n:null}var e=s;function g(n,r){let t=e(n,r);if(!t)throw new Error(`Could not ensure ID. '${n}' is not a valid ID with prefix '${r}'.`);return t}var T=g;function o(n,r){let t=r.match(/^([^\[]+)\[(\d+)\]$/);if(t){let[,i,u]=t;return Array.isArray(n[i])?n[i][Number(u)]:null}return Array.isArray(n[r])?n[r][0]:n[r]}async function d(n,r,t){if(!t)return null;let i=t instanceof Promise?await t:t,u=o(i,n);return e(u,r)}var D=d;export{e as a,T as b,D as c};//# sourceMappingURL=chunk-BA3BC4CD.js.map
2
- //# sourceMappingURL=chunk-BA3BC4CD.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utility/guard-id.ts","../src/utility/ensure-id.ts","../src/utility/get-id-from-params.ts"],"names":["guardID","id","prefix","filterNull","item","guard_id_default","ensureID","guardedID","ensure_id_default","getParamsValue","params","key","match","field","index","getIDFromParams","awaitedParams","value","get_id_from_params_default"],"mappings":"yCAKA,SAASA,EACLC,CAAAA,CACAC,CAAAA,CACc,CACd,OAAI,KAAA,CAAM,OAAA,CAAQD,CAAE,CAAA,CACTE,WAAWF,CAAAA,CAAG,GAAA,CAAKG,CAAAA,EAASJ,CAAAA,CAAWI,CAAAA,CAAMF,CAAM,CAAC,CAAC,EAG3DD,CAAAA,EAAI,UAAA,CAAWC,CAAM,CAAA,CAInBD,EAHI,IAIf,CAEA,IAAOI,CAAAA,CAAQL,EClBf,SAASM,CAAAA,CAA2BL,CAAAA,CAA+BC,CAAAA,CAAmB,CAClF,IAAMK,CAAAA,CAAYF,CAAAA,CAAWJ,EAAIC,CAAM,CAAA,CAEvC,GAAI,CAACK,CAAAA,CACD,MAAM,IAAI,KAAA,CAAM,yBAAyBN,CAAE,CAAA,iCAAA,EAAoCC,CAAM,CAAA,EAAA,CAAI,CAAA,CAG7F,OAAOK,CACX,KAEOC,CAAAA,CAAQF,ECVf,SAASG,CAAAA,CAAeC,EAA2CC,CAAAA,CAA4B,CAC3F,IAAMC,CAAAA,CAAQD,EAAI,KAAA,CAAM,qBAAqB,CAAA,CAE7C,GAAIC,CAAAA,CAAO,CACP,GAAM,EAAGC,CAAAA,CAAOC,CAAK,CAAA,CAAIF,CAAAA,CACzB,OAAO,KAAA,CAAM,OAAA,CAAQF,CAAAA,CAAOG,CAAK,CAAC,CAAA,CAAIH,CAAAA,CAAOG,CAAK,CAAA,CAAE,MAAA,CAAOC,CAAK,CAAC,EAAI,IACzE,CAEA,OAAO,KAAA,CAAM,QAAQJ,CAAAA,CAAOC,CAAG,CAAC,CAAA,CAAID,EAAOC,CAAG,CAAA,CAAE,CAAC,CAAA,CAAID,CAAAA,CAAOC,CAAG,CACnE,CAEA,eAAeI,CAAAA,CACXJ,CAAAA,CACAT,CAAAA,CACAQ,CAAAA,CACiB,CACjB,GAAI,CAACA,CAAAA,CACD,OAAO,KAGX,IAAMM,CAAAA,CAAgBN,CAAAA,YAAkB,OAAA,CAAU,MAAMA,CAAAA,CAASA,CAAAA,CAC3DO,CAAAA,CAAQR,EAAeO,CAAAA,CAAeL,CAAG,CAAA,CAE/C,OAAON,EAAWY,CAAAA,CAAOf,CAAM,CACnC,KAEOgB,CAAAA,CAAQH","file":"chunk-BA3BC4CD.js","sourcesContent":["import { filterNull } from '@sqrzro/utility';\n\nfunction guardID<T extends string>(id: (string | null | undefined)[], prefix: string): T[];\nfunction guardID<T extends string>(id: string | null | undefined, prefix: string): T | null;\n\nfunction guardID<T extends string>(\n id: (string | null | undefined)[] | string | null | undefined,\n prefix: string\n): T[] | T | null {\n if (Array.isArray(id)) {\n return filterNull(id.map((item) => guardID<T>(item, prefix)));\n }\n\n if (!id?.startsWith(prefix)) {\n return null;\n }\n\n return id as T;\n}\n\nexport default guardID;\n","import guardID from './guard-id';\n\nfunction ensureID<T extends string>(id: string | null | undefined, prefix: string): T {\n const guardedID = guardID<T>(id, prefix);\n\n if (!guardedID) {\n throw new Error(`Could not ensure ID. '${id}' is not a valid ID with prefix '${prefix}'.`);\n }\n\n return guardedID;\n}\n\nexport default ensureID;\n","import guardID from './guard-id';\n\nfunction getParamsValue(params: Record<string, string[] | string>, key: string): string | null {\n const match = key.match(/^([^\\[]+)\\[(\\d+)\\]$/);\n\n if (match) {\n const [, field, index] = match;\n return Array.isArray(params[field]) ? params[field][Number(index)] : null;\n }\n\n return Array.isArray(params[key]) ? params[key][0] : params[key];\n}\n\nasync function getIDFromParams<T extends string>(\n key: string,\n prefix: string,\n params?: Promise<Record<string, string[] | string>> | Record<string, string[] | string> | null\n): Promise<T | null> {\n if (!params) {\n return null;\n }\n\n const awaitedParams = params instanceof Promise ? await params : params;\n const value = getParamsValue(awaitedParams, key);\n\n return guardID<T>(value, prefix);\n}\n\nexport default getIDFromParams;\n"]}
@@ -1,3 +0,0 @@
1
- import {parse}from'csv/sync';function p(s){let t=[],n=s.split(`
2
- `).filter(r=>r.trim()!=="");for(let r of n){let i=parse(r,{skip_empty_lines:true});t.push(i[0].map(e=>e.trim()));}return t}var f=p;export{f as a};//# sourceMappingURL=chunk-UCMLSO7F.js.map
3
- //# sourceMappingURL=chunk-UCMLSO7F.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/csv/parse-csv.ts"],"names":["parseCSV","csv","records","lines","item","line","record","parse","parse_csv_default"],"mappings":"6BAEA,SAASA,CAAAA,CAASC,CAAAA,CAAyB,CACvC,IAAMC,CAAAA,CAAsB,EAAC,CACvBC,CAAAA,CAAQF,EAAI,KAAA,CAAM;AAAA,CAAI,EAAE,MAAA,CAAQG,CAAAA,EAASA,CAAAA,CAAK,IAAA,KAAW,EAAE,CAAA,CAEjE,IAAA,IAAWC,CAAAA,IAAQF,EAAO,CACtB,IAAMG,EAASC,KAAAA,CAAMF,CAAAA,CAAM,CACvB,gBAAA,CAAkB,IACtB,CAAC,CAAA,CAEDH,EAAQ,IAAA,CAAKI,CAAAA,CAAO,CAAC,CAAA,CAAE,IAAKF,CAAAA,EAASA,CAAAA,CAAK,IAAA,EAAM,CAAC,EACrD,CAEA,OAAOF,CACX,KAEOM,CAAAA,CAAQR","file":"chunk-UCMLSO7F.js","sourcesContent":["import { parse } from 'csv/sync';\n\nfunction parseCSV(csv: string): string[][] {\n const records: string[][] = [];\n const lines = csv.split('\\n').filter((item) => item.trim() !== '');\n\n for (const line of lines) {\n const record = parse(line, {\n skip_empty_lines: true,\n }) as string[][];\n\n records.push(record[0].map((item) => item.trim()));\n }\n\n return records;\n}\n\nexport default parseCSV;\n"]}