@opengis/fcore 0.0.1-beta.1 → 0.0.1-beta.11

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 (248) hide show
  1. package/LICENSE +3 -3
  2. package/README.md +71 -71
  3. package/dist/config.d.ts +2 -10
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +1 -1
  6. package/dist/context.js +1 -1
  7. package/dist/errors.js +1 -1
  8. package/dist/fastify.d.ts +5 -5
  9. package/dist/fastify.d.ts.map +1 -1
  10. package/dist/fastify.js +1 -1
  11. package/dist/fcore.js +1 -1
  12. package/dist/index.d.ts +1 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/migrations/cli.js +1 -1
  16. package/dist/migrations/runner.js +1 -1
  17. package/dist/modules/auth/adduser-cli.d.ts +3 -0
  18. package/dist/modules/auth/adduser-cli.d.ts.map +1 -0
  19. package/dist/modules/auth/adduser-cli.js +2 -0
  20. package/dist/modules/auth/passwd-cli.d.ts +3 -0
  21. package/dist/modules/auth/passwd-cli.d.ts.map +1 -0
  22. package/dist/modules/auth/passwd-cli.js +2 -0
  23. package/dist/modules/auth/permission-cli.d.ts +3 -0
  24. package/dist/modules/auth/permission-cli.d.ts.map +1 -0
  25. package/dist/modules/auth/permission-cli.js +2 -0
  26. package/dist/modules/auth/route.d.ts.map +1 -1
  27. package/dist/modules/auth/route.js +1 -1
  28. package/dist/modules/auth/schema.d.ts +10 -1
  29. package/dist/modules/auth/schema.d.ts.map +1 -1
  30. package/dist/modules/auth/schema.js +1 -1
  31. package/dist/modules/auth/services/change-password.d.ts +9 -0
  32. package/dist/modules/auth/services/change-password.d.ts.map +1 -0
  33. package/dist/modules/auth/services/change-password.js +1 -0
  34. package/dist/modules/auth/services/get-current-user.d.ts +1 -0
  35. package/dist/modules/auth/services/get-current-user.d.ts.map +1 -1
  36. package/dist/modules/auth/services/get-current-user.js +1 -1
  37. package/dist/modules/auth/services/registration.d.ts +14 -0
  38. package/dist/modules/auth/services/registration.d.ts.map +1 -0
  39. package/dist/modules/auth/services/registration.js +1 -0
  40. package/dist/modules/auth/services/verify-two-factor.js +1 -1
  41. package/dist/modules/file/mime.d.ts +3 -0
  42. package/dist/modules/file/mime.d.ts.map +1 -0
  43. package/dist/modules/file/mime.js +1 -0
  44. package/dist/modules/file/route.d.ts.map +1 -1
  45. package/dist/modules/file/route.js +1 -1
  46. package/dist/modules/file/schema.d.ts +3 -0
  47. package/dist/modules/file/schema.d.ts.map +1 -1
  48. package/dist/modules/file/schema.js +1 -1
  49. package/dist/modules/file/services/get-file.js +1 -1
  50. package/dist/modules/file/services/resize-file.d.ts.map +1 -1
  51. package/dist/modules/file/services/resize-file.js +1 -1
  52. package/dist/modules/file/services/upload-file.d.ts +4 -6
  53. package/dist/modules/file/services/upload-file.d.ts.map +1 -1
  54. package/dist/modules/file/services/upload-file.js +1 -1
  55. package/dist/modules/resource/route.d.ts +0 -3
  56. package/dist/modules/resource/route.d.ts.map +1 -1
  57. package/dist/modules/resource/route.js +1 -1
  58. package/dist/modules/resource/schema.d.ts +3 -0
  59. package/dist/modules/resource/schema.d.ts.map +1 -1
  60. package/dist/modules/resource/schema.js +1 -1
  61. package/dist/modules/resource/services/add-note.js +1 -1
  62. package/dist/modules/resource/services/add-resource-file.js +1 -1
  63. package/dist/modules/resource/services/create-resource-relation.d.ts +8 -2
  64. package/dist/modules/resource/services/create-resource-relation.d.ts.map +1 -1
  65. package/dist/modules/resource/services/create-resource-relation.js +1 -1
  66. package/dist/modules/resource/services/create-resource.js +1 -1
  67. package/dist/modules/resource/services/delete-resource-relation.d.ts +8 -1
  68. package/dist/modules/resource/services/delete-resource-relation.d.ts.map +1 -1
  69. package/dist/modules/resource/services/delete-resource-relation.js +1 -1
  70. package/dist/modules/resource/services/delete-resource.js +1 -1
  71. package/dist/modules/resource/services/export-resource.d.ts.map +1 -1
  72. package/dist/modules/resource/services/export-resource.js +1 -1
  73. package/dist/modules/resource/services/get-resource.d.ts.map +1 -1
  74. package/dist/modules/resource/services/get-resource.js +1 -1
  75. package/dist/modules/resource/services/list-resource-relation.d.ts +9 -2
  76. package/dist/modules/resource/services/list-resource-relation.d.ts.map +1 -1
  77. package/dist/modules/resource/services/list-resource-relation.js +1 -1
  78. package/dist/modules/resource/services/list-resources.d.ts.map +1 -1
  79. package/dist/modules/resource/services/list-resources.js +1 -1
  80. package/dist/modules/resource/services/search-resource.d.ts.map +1 -1
  81. package/dist/modules/resource/services/search-resource.js +1 -1
  82. package/dist/modules/resource/services/suggest-resource.d.ts +10 -4
  83. package/dist/modules/resource/services/suggest-resource.d.ts.map +1 -1
  84. package/dist/modules/resource/services/suggest-resource.js +1 -1
  85. package/dist/modules/resource/services/update-resource-relation.d.ts +10 -0
  86. package/dist/modules/resource/services/update-resource-relation.d.ts.map +1 -0
  87. package/dist/modules/resource/services/update-resource-relation.js +1 -0
  88. package/dist/modules/resource/services/update-resource.js +1 -1
  89. package/dist/modules/resource/services/upload-resource-file.js +1 -1
  90. package/dist/modules/system/route.d.ts +2 -1
  91. package/dist/modules/system/route.d.ts.map +1 -1
  92. package/dist/modules/system/route.js +1 -1
  93. package/dist/modules/system/schema.d.ts +22 -1
  94. package/dist/modules/system/schema.d.ts.map +1 -1
  95. package/dist/modules/system/schema.js +1 -1
  96. package/dist/modules/system/services/check-system.d.ts.map +1 -1
  97. package/dist/modules/system/services/check-system.js +1 -1
  98. package/dist/modules/system/services/get-access.d.ts +14 -0
  99. package/dist/modules/system/services/get-access.d.ts.map +1 -0
  100. package/dist/modules/system/services/get-access.js +1 -0
  101. package/dist/modules/system/services/get-api-list.d.ts +4 -1
  102. package/dist/modules/system/services/get-api-list.d.ts.map +1 -1
  103. package/dist/modules/system/services/get-api-list.js +1 -1
  104. package/dist/modules/system/services/get-audit-log.d.ts.map +1 -1
  105. package/dist/modules/system/services/get-audit-log.js +1 -1
  106. package/dist/modules/system/services/get-dictionary.js +1 -1
  107. package/dist/modules/system/services/get-system-log.d.ts +9 -5
  108. package/dist/modules/system/services/get-system-log.d.ts.map +1 -1
  109. package/dist/modules/system/services/get-system-log.js +1 -1
  110. package/dist/modules/system/services/get-system-settings.d.ts.map +1 -1
  111. package/dist/modules/system/services/get-system-settings.js +1 -1
  112. package/dist/modules/system/services/list-dictionaries.js +1 -1
  113. package/dist/modules/system/services/set-access.d.ts +16 -0
  114. package/dist/modules/system/services/set-access.d.ts.map +1 -0
  115. package/dist/modules/system/services/set-access.js +1 -0
  116. package/dist/modules/system/services/update-dictionary.d.ts +13 -0
  117. package/dist/modules/system/services/update-dictionary.d.ts.map +1 -0
  118. package/dist/modules/system/services/update-dictionary.js +1 -0
  119. package/dist/modules/system/services/update-system-settings.d.ts.map +1 -1
  120. package/dist/modules/system/services/update-system-settings.js +1 -1
  121. package/dist/modules/utils/require-admin.js +1 -1
  122. package/dist/modules/utils/safe-user.js +1 -1
  123. package/dist/modules/utils/unsupported.js +1 -1
  124. package/dist/plugins/audit/audit.js +1 -1
  125. package/dist/plugins/audit/index.js +1 -1
  126. package/dist/plugins/audit/services/write-audit.js +1 -1
  127. package/dist/plugins/auth/get-user-permissions.d.ts +3 -0
  128. package/dist/plugins/auth/get-user-permissions.d.ts.map +1 -0
  129. package/dist/plugins/auth/get-user-permissions.js +1 -0
  130. package/dist/plugins/auth/index.d.ts +4 -0
  131. package/dist/plugins/auth/index.d.ts.map +1 -1
  132. package/dist/plugins/auth/index.js +1 -1
  133. package/dist/plugins/auth/verifyUser.d.ts +9 -0
  134. package/dist/plugins/auth/verifyUser.d.ts.map +1 -0
  135. package/dist/plugins/auth/verifyUser.js +1 -0
  136. package/dist/plugins/dictionary.d.ts +3 -0
  137. package/dist/plugins/dictionary.d.ts.map +1 -1
  138. package/dist/plugins/dictionary.js +1 -1
  139. package/dist/plugins/file.d.ts +3 -6
  140. package/dist/plugins/file.d.ts.map +1 -1
  141. package/dist/plugins/file.js +1 -1
  142. package/dist/plugins/index.d.ts +2 -0
  143. package/dist/plugins/index.d.ts.map +1 -1
  144. package/dist/plugins/index.js +1 -1
  145. package/dist/plugins/jwt.d.ts +4 -0
  146. package/dist/plugins/jwt.d.ts.map +1 -0
  147. package/dist/plugins/jwt.js +1 -0
  148. package/dist/plugins/logger/index.js +1 -1
  149. package/dist/plugins/logger/transport.d.ts +3 -0
  150. package/dist/plugins/logger/transport.d.ts.map +1 -0
  151. package/dist/plugins/logger/transport.js +1 -0
  152. package/dist/plugins/pg.d.ts +4 -2
  153. package/dist/plugins/pg.d.ts.map +1 -1
  154. package/dist/plugins/pg.js +1 -1
  155. package/dist/plugins/redis.js +1 -1
  156. package/dist/plugins/resource/index.js +1 -1
  157. package/dist/plugins/resource/resource.d.ts.map +1 -1
  158. package/dist/plugins/resource/resource.js +1 -1
  159. package/dist/plugins/resource/resource.registry.js +1 -1
  160. package/dist/plugins/resource/resource.types.d.ts +65 -8
  161. package/dist/plugins/resource/resource.types.d.ts.map +1 -1
  162. package/dist/plugins/resource/services/add-dictionary-lookup-data.d.ts +3 -0
  163. package/dist/plugins/resource/services/add-dictionary-lookup-data.d.ts.map +1 -0
  164. package/dist/plugins/resource/services/add-dictionary-lookup-data.js +1 -0
  165. package/dist/plugins/resource/services/add-file-token.d.ts +3 -0
  166. package/dist/plugins/resource/services/add-file-token.d.ts.map +1 -0
  167. package/dist/plugins/resource/services/add-file-token.js +1 -0
  168. package/dist/plugins/resource/services/add-table-lookup-data.d.ts +4 -0
  169. package/dist/plugins/resource/services/add-table-lookup-data.d.ts.map +1 -0
  170. package/dist/plugins/resource/services/add-table-lookup-data.js +1 -0
  171. package/dist/plugins/resource/services/create-relation.d.ts +16 -0
  172. package/dist/plugins/resource/services/create-relation.d.ts.map +1 -0
  173. package/dist/plugins/resource/services/create-relation.js +1 -0
  174. package/dist/plugins/resource/services/create.d.ts +5 -2
  175. package/dist/plugins/resource/services/create.d.ts.map +1 -1
  176. package/dist/plugins/resource/services/create.js +1 -1
  177. package/dist/plugins/resource/services/delete-relation.d.ts +18 -0
  178. package/dist/plugins/resource/services/delete-relation.d.ts.map +1 -0
  179. package/dist/plugins/resource/services/delete-relation.js +1 -0
  180. package/dist/plugins/resource/services/delete.d.ts +9 -2
  181. package/dist/plugins/resource/services/delete.d.ts.map +1 -1
  182. package/dist/plugins/resource/services/delete.js +1 -1
  183. package/dist/plugins/resource/services/find-one.d.ts +3 -2
  184. package/dist/plugins/resource/services/find-one.d.ts.map +1 -1
  185. package/dist/plugins/resource/services/find-one.js +1 -1
  186. package/dist/plugins/resource/services/find-relation.d.ts +13 -0
  187. package/dist/plugins/resource/services/find-relation.d.ts.map +1 -0
  188. package/dist/plugins/resource/services/find-relation.js +1 -0
  189. package/dist/plugins/resource/services/find.d.ts.map +1 -1
  190. package/dist/plugins/resource/services/find.js +1 -1
  191. package/dist/plugins/resource/services/update-relation.d.ts +14 -0
  192. package/dist/plugins/resource/services/update-relation.d.ts.map +1 -0
  193. package/dist/plugins/resource/services/update-relation.js +1 -0
  194. package/dist/plugins/resource/services/update.d.ts +9 -2
  195. package/dist/plugins/resource/services/update.d.ts.map +1 -1
  196. package/dist/plugins/resource/services/update.js +1 -1
  197. package/dist/plugins/resource/utils/auto-index.d.ts +4 -0
  198. package/dist/plugins/resource/utils/auto-index.d.ts.map +1 -0
  199. package/dist/plugins/resource/utils/auto-index.js +1 -0
  200. package/dist/plugins/resource/utils/fields.d.ts +8 -1
  201. package/dist/plugins/resource/utils/fields.d.ts.map +1 -1
  202. package/dist/plugins/resource/utils/fields.js +1 -1
  203. package/dist/plugins/resource/utils/filters.d.ts +3 -2
  204. package/dist/plugins/resource/utils/filters.d.ts.map +1 -1
  205. package/dist/plugins/resource/utils/filters.js +1 -1
  206. package/dist/plugins/resource/utils/permissions.d.ts.map +1 -1
  207. package/dist/plugins/resource/utils/permissions.js +1 -1
  208. package/dist/plugins/resource/utils/sort.d.ts.map +1 -1
  209. package/dist/plugins/resource/utils/sort.js +1 -1
  210. package/dist/plugins/resource/utils/sql.js +1 -1
  211. package/dist/shared/getIP.js +1 -1
  212. package/dist/type.d.ts +37 -0
  213. package/dist/type.d.ts.map +1 -0
  214. package/dist/type.js +1 -0
  215. package/migrations/20260903120000_core_schema.sql +27 -21
  216. package/migrations/20260903130000_move_notes_files_to_admin.sql +17 -17
  217. package/migrations/20260903130001_add_file_fields.sql +5 -0
  218. package/migrations/20260903140000_settings_nulls_not_distinct.sql +18 -18
  219. package/migrations/20260905120000_add_user_foreign_keys.sql +43 -0
  220. package/migrations/20260907090000_core_schema.sql +32 -0
  221. package/package.json +12 -7
  222. package/dist/modules/auth/index.d.ts +0 -9
  223. package/dist/modules/auth/index.d.ts.map +0 -1
  224. package/dist/modules/auth/index.js +0 -1
  225. package/dist/modules/auth/services/login.d.ts +0 -10
  226. package/dist/modules/auth/services/login.d.ts.map +0 -1
  227. package/dist/modules/auth/services/login.js +0 -1
  228. package/dist/modules/auth/services/logout.d.ts +0 -9
  229. package/dist/modules/auth/services/logout.d.ts.map +0 -1
  230. package/dist/modules/auth/services/logout.js +0 -1
  231. package/dist/modules/auth/services/verifyPassword.d.ts +0 -11
  232. package/dist/modules/auth/services/verifyPassword.d.ts.map +0 -1
  233. package/dist/modules/auth/services/verifyPassword.js +0 -1
  234. package/dist/modules/file/index.d.ts +0 -8
  235. package/dist/modules/file/index.d.ts.map +0 -1
  236. package/dist/modules/file/index.js +0 -1
  237. package/dist/modules/resource/index.d.ts +0 -20
  238. package/dist/modules/resource/index.d.ts.map +0 -1
  239. package/dist/modules/resource/index.js +0 -1
  240. package/dist/modules/resource/services/list-children.d.ts +0 -6
  241. package/dist/modules/resource/services/list-children.d.ts.map +0 -1
  242. package/dist/modules/resource/services/list-children.js +0 -1
  243. package/dist/modules/system/index.d.ts +0 -13
  244. package/dist/modules/system/index.d.ts.map +0 -1
  245. package/dist/modules/system/index.js +0 -1
  246. package/dist/modules/utils/get-user-permissions.d.ts +0 -3
  247. package/dist/modules/utils/get-user-permissions.d.ts.map +0 -1
  248. package/dist/modules/utils/get-user-permissions.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/plugins/dictionary.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAMD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACrE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,IAAI,IAAI,OAAO,CACb,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;KAAE,CAAC,CACrE,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,EAAE,EACF,YAAiB,GAClB,EAAE,sBAAsB,GAAG,gBAAgB,CAiM3C"}
1
+ {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/plugins/dictionary.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAMD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACrE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,IAAI,IAAI,OAAO,CACb,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;KAAE,CAAC,CACrE,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,EAAE,EACF,YAAiB,GAClB,EAAE,sBAAsB,GAAG,gBAAgB,CAkN3C"}
@@ -1 +1 @@
1
- (function(D,L){const Q=p,s=D();while(!![]){try{const X=-parseInt(Q(0x129))/0x1+parseInt(Q(0x132))/0x2*(-parseInt(Q(0x172))/0x3)+-parseInt(Q(0x12c))/0x4+-parseInt(Q(0x17f))/0x5+parseInt(Q(0x162))/0x6*(-parseInt(Q(0x15d))/0x7)+parseInt(Q(0x136))/0x8+parseInt(Q(0x16b))/0x9*(parseInt(Q(0x17b))/0xa);if(X===L)break;else s['push'](s['shift']());}catch(M){s['push'](s['shift']());}}}(m,0xf06b7));import{ConflictError,NotFoundError,ValidationError}from'../errors.js';const dictionaryName=/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/;function p(D,L){D=D-0x118;const s=m();let X=s[D];return X;}function m(){const m0=['empty\x20pg','GzhmR','471yjcMSr','GIwos','CcmrZ','erZWg','static','Dictionary\x20items\x20must\x20be\x20an\x20array','source','LoQmI','mNrHg','90aRhvHu','test','YAjVZ','code','5920575XwkTGp','custom','yUfUD','Dictionary\x20not\x20found:\x20','get','fcore','UMyWA','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20di.id,\x20di.code,\x20di.name,\x20di.parent_id\x20AS\x20\x22parentId\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.dictionary_items\x20di\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20JOIN\x20admin.dictionaries\x20d\x20ON\x20d.id\x20=\x20di.dictionary_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20d.code\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20di.name\x0a\x20\x20\x20\x20\x20\x20\x20\x20','jExcq','COMMIT','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20code,\x20name,\x20\x27database\x27\x20AS\x20source\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.dictionaries\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20name\x0a\x20\x20\x20\x20\x20\x20\x20\x20','LXtgd','YfcHm','isArray','EVmYh','ceoDd','put','pMfqt','register','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.dictionaries\x20(code,\x20name,\x20module,\x20source,\x20editable)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(code)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20name\x20=\x20EXCLUDED.name,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20module\x20=\x20EXCLUDED.module,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20source\x20=\x20EXCLUDED.source,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20editable\x20=\x20EXCLUDED.editable,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20now()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','463590kwYmpj','eVzkl','taocS','692108nQQlBN','Dictionary\x20already\x20registered:\x20','eWilO','name','NUGGt','lWuoY','18134edDibZ','Invalid\x20dictionary\x20items:\x20','rows','kzZRV','10326424oYqWfO','query','dUCMF','then','connect','SbJOe','dictionaries','values','ROLLBACK','eKKBr','VYGKz','set','wCpBy','SPWTC','delete','length','pPflm','table_name','Invalid\x20dictionary\x20name:\x20','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.dictionary_items\x20(dictionary_id,\x20code,\x20name,\x20parent_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','bpOri','RoCph','cNhJW','BEMNb','database','Iousf','map','list','has','DELETE\x20FROM\x20admin.dictionary_items\x20WHERE\x20dictionary_id\x20=\x20$1','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20table_name\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20information_schema.tables\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20table_schema\x20=\x20\x27admin\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20table_name\x20=\x20\x27dictionaries\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x201\x0a\x20\x20\x20\x20\x20\x20\x20\x20','oadEY','buMjx','Utgez','BEGIN','rWOrs','ouxyC','clear','pYiSU','39977HDwPTe','DFpQK','rqJGj','swkNR','push','1248gBQnVv','ywFjM','pGzMz','Dictionary\x20table\x20not\x20found','DCwei','FVmBU','IdJUK','items','parentId','4126095EnCjuN','SwoDy','nnChf','eHUWn','release'];m=function(){return m0;};return m();}export function createDictionary({pg:L,dictionaries:dictionaries=[]}){const d=p,s={'buMjx':d(0x170),'IdJUK':d(0x13c),'LXtgd':d(0x174),'UMyWA':d(0x138),'eVzkl':function(g,J){return g!==J;},'nnChf':function(g,J){return g(J);},'EVmYh':d(0x176),'YfcHm':d(0x146),'oadEY':d(0x124),'GzhmR':d(0x142),'DCwei':d(0x164),'rqJGj':d(0x12b),'eHUWn':d(0x173),'Iousf':function(g){return g();},'ywFjM':d(0x165),'lWuoY':function(g,J){return g!==J;},'FVmBU':d(0x179),'SwoDy':d(0x14e),'jExcq':d(0x177),'rWOrs':d(0x140),'kzZRV':d(0x180),'eKKBr':d(0x11e),'DFpQK':d(0x13e),'BEMNb':d(0x17a),'erZWg':function(g,J){return g(J);},'yUfUD':function(g,J){return g!==J;},'YAjVZ':d(0x13b),'SPWTC':d(0x15a),'RoCph':function(g){return g();},'Utgez':function(g,J){return g===J;},'cNhJW':d(0x15c),'NUGGt':d(0x12e),'swkNR':function(g,J){return g(J);}},X=new Map();let M,u;async function o(){const T=d;if(s[T(0x120)]===s[T(0x11b)])throw new L(s[T(0x156)]);else{if(s[T(0x12a)](M,undefined))return M;if(!L)throw new Error(T(0x170));return u??=L[T(0x137)](T(0x154))[T(0x139)](J=>{const K=T,S=J[K(0x134)][0x0]?.[K(0x147)];M=S===s[K(0x168)]?S:null;}),await u,M;}}function r(g){const C=d;if(!dictionaryName[C(0x17c)](g))throw new ValidationError(C(0x148)+g);}function i(g){const G=d,J={'pMfqt':function(S,z){const k=p;return s[k(0x16d)](S,z);},'bpOri':s[G(0x123)]};if(s[G(0x121)]!==s[G(0x121)])for(const z of y[G(0x122)](E)?c:[H]){J[G(0x126)](P,z[G(0x17e)]);if(!v[G(0x122)](z[G(0x169)]))throw new U(G(0x133)+z[G(0x17e)]);if(Z[G(0x152)](z[G(0x17e)]))throw new b(G(0x12d)+z[G(0x17e)]);N[G(0x141)](z[G(0x17e)],{...z,'source':G(0x176)});}else for(const z of Array[G(0x122)](g)?g:[g]){if(s[G(0x155)]===s[G(0x171)])throw new L(s[G(0x156)]);else{r(z[G(0x17e)]);if(!Array[G(0x122)](z[G(0x169)])){if(s[G(0x166)]===s[G(0x166)])throw new ValidationError(G(0x133)+z[G(0x17e)]);else s[G(0x161)](X);}if(X[G(0x152)](z[G(0x17e)])){if(s[G(0x15f)]!==G(0x12b)){J[G(0x126)](h,g[G(0x17e)]);if(!J[G(0x122)](S[G(0x169)]))throw new a(G(0x133)+F[G(0x17e)]);if(t[G(0x152)](y[G(0x17e)]))throw new w(G(0x12d)+W[G(0x17e)]);const E={...V};E[G(0x178)]=J[G(0x14a)],H[G(0x141)](A[G(0x17e)],E);}else throw new ConflictError(G(0x12d)+z[G(0x17e)]);}X[G(0x141)](z[G(0x17e)],{...z,'source':s[G(0x123)]});}}}async function q(g){const j=d;s[j(0x16d)](r,g);const J=X[j(0x119)](g);if(J){if(s[j(0x12a)](s[j(0x16e)],j(0x173)))throw new s(j(0x133)+X[j(0x17e)]);else return J[j(0x169)];}const S=await s[j(0x14f)](o);if(!S)throw new NotFoundError(s[j(0x163)]);if(!L){if(s[j(0x131)](s[j(0x167)],s[j(0x167)]))return L;else throw new Error(s[j(0x156)]);}const z=await L[j(0x137)](j(0x11c),[g]);if(!z[j(0x134)][j(0x145)])throw new NotFoundError(j(0x118)+g);const l=z[j(0x134)];return X[j(0x141)](g,{'code':g,'name':g,'items':l,'source':s[j(0x16c)]}),l;}async function R(g,J){const e=d;r(g);if(!Array[e(0x122)](J))throw new ValidationError(s[e(0x11d)]);const S=await s[e(0x14f)](o);if(!S)throw new NotFoundError(s[e(0x163)]);if(!L){if(s[e(0x131)](s[e(0x159)],s[e(0x159)]))throw new s(e(0x118)+X);else throw new Error(e(0x170));}const z=await L[e(0x13a)]();try{await z[e(0x137)](e(0x158));const t=await z[e(0x137)](e(0x128),[g,g,e(0x11a),s[e(0x135)],!![]]),y=t[e(0x134)][0x0]['id'];await z[e(0x137)](e(0x153),[y]);for(const E of J){await z[e(0x137)](e(0x149),[y,E[e(0x17e)],E[e(0x12f)],E[e(0x16a)]??null]);}await z[e(0x137)](s[e(0x13f)]);}catch(c){await z[e(0x137)](s[e(0x15e)]);throw c;}finally{if(s[e(0x14d)]===s[e(0x14d)])z[e(0x16f)]();else return L[e(0x169)];}s[e(0x16d)](B,g);}function B(g){const Y=d;return s[Y(0x175)](r,g),X[Y(0x144)](g);}async function O(){const I=d;if(s[I(0x181)](s[I(0x17d)],s[I(0x143)])){const g=[...X[I(0x13d)]()][I(0x150)](({code:z,name:l,source:t})=>({'code':z,'name':l??z,'source':t})),J=await s[I(0x14b)](o);if(!J)return g;if(!L)throw new Error(s[I(0x156)]);const S=await L[I(0x137)](I(0x11f));for(const z of S[I(0x134)]){if(!X[I(0x152)](z[I(0x17e)])){if(s[I(0x157)](s[I(0x14c)],s[I(0x130)])){if(!M[I(0x17c)](u))throw new i(I(0x148)+q);}else g[I(0x161)](z);}}return g;}else{const y=s[I(0x134)][0x0]?.[I(0x147)];X=y===s[I(0x168)]?y:null;}}s[d(0x160)](i,dictionaries);const h={};return h[d(0x127)]=i,h[d(0x119)]=q,h[d(0x125)]=R,h[d(0x15b)]=B,h[d(0x151)]=O,h;}
1
+ function G(){const K=['empty\x20pg','Invalid\x20dictionary\x20name:\x20','items','Dictionary\x20already\x20registered:\x20','query','rows','length','database','Dictionary\x20not\x20found:\x20','checked','connect','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.dictionaries\x20(code,\x20name,\x20module,\x20source,\x20editable)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(code)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20name\x20=\x20EXCLUDED.name,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20module\x20=\x20EXCLUDED.module,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20source\x20=\x20EXCLUDED.source,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20editable\x20=\x20EXCLUDED.editable,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20now()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','custom','DELETE\x20FROM\x20admin.dictionary_items\x20WHERE\x20dictionary_id\x20=\x20$1','code','set','static','get','delete','has'];G=function(){return K;};return G();}function q(R,t){R=R-0x1ac;const X=G();let g=X[R];return g;}import{ConflictError,NotFoundError,ValidationError}from'../errors.js';const dictionaryName=/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/;export function createDictionary({pg:R,dictionaries:dictionaries=[]}){const t=new Map(),X=new Map();let g,m;async function Z(){const o=q;if(g!==undefined)return g;if(!R)throw new Error(o(0x1ac));return m??=R['query']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20table_name\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20information_schema.tables\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20table_schema\x20=\x20\x27admin\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20table_name\x20=\x20\x27dictionaries\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x201\x0a\x20\x20\x20\x20\x20\x20\x20\x20')['then'](O=>{const U=O['rows'][0x0]?.['table_name'];g=U==='dictionaries'?U:null;}),await m,g;}function z(O){const a=q;if(!dictionaryName['test'](O))throw new ValidationError(a(0x1ad)+O);}function l(O){const J=q;for(const U of Array['isArray'](O)?O:[O]){z(U['code']);if(!Array['isArray'](U[J(0x1ae)]))throw new ValidationError('Invalid\x20dictionary\x20items:\x20'+U['code']);if(t['has'](U['code']))throw new ConflictError(J(0x1af)+U['code']);t['set'](U['code'],{...U,'source':'static'});}}function y(O){return t['has'](O);}async function h(O){const F=q;z(O);const U=t['get'](O);if(U&&U['checked'])return U['items'];const e=await Z();if(!e)throw new NotFoundError('Dictionary\x20table\x20not\x20found');const H=await R?.[F(0x1b0)]('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20di.code,\x20di.name\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.dictionary_items\x20di\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20JOIN\x20admin.dictionaries\x20d\x20ON\x20d.id\x20=\x20di.dictionary_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20d.code\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20di.name\x0a\x20\x20\x20\x20\x20\x20\x20\x20',[O]);if(H?.[F(0x1b1)]?.[F(0x1b2)]){const n=H?.[F(0x1b1)];return t['set'](O,{'code':O,'name':O,'items':n,'source':F(0x1b3),'checked':!![]}),n;}if(!U?.['items'])throw new NotFoundError(F(0x1b4)+O);return U[F(0x1b5)]=!![],U['items'];}async function P(O,U){const Y=q;z(O);if(!Array['isArray'](U))throw new ValidationError('Dictionary\x20items\x20must\x20be\x20an\x20array');const e=await Z();if(!e)throw new NotFoundError('Dictionary\x20table\x20not\x20found');if(!R)throw new Error('empty\x20pg');const H=await R[Y(0x1b6)]();try{await H['query']('BEGIN');const n=await H['query'](Y(0x1b7),[O,O,'fcore',Y(0x1b8),!![]]),S=n[Y(0x1b1)][0x0]['id'];await H[Y(0x1b0)](Y(0x1b9),[S]);for(const c of U){await H['query']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.dictionary_items\x20(dictionary_id,\x20code,\x20name,\x20parent_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',[S,c[Y(0x1ba)],c['name'],c['parentId']??null]);}await H['query']('COMMIT');}catch(Q){await H['query']('ROLLBACK');throw Q;}finally{H['release']();}t[Y(0x1bb)](O,{'items':U,'code':O,'source':Y(0x1bc),'checked':!![]}),X['set'](O,(X[Y(0x1bd)](O)??0x0)+0x1);}function E(O){const A=q;return z(O),X['set'](O,(X[A(0x1bd)](O)??0x0)+0x1),t[A(0x1be)](O);}function C(O){const M=q;return X[M(0x1bd)](O)??0x0;}async function L(){const d=q,O=[...t['values']()]['map'](({code:H,name:n,source:S})=>({'code':H,'name':n??H,'source':S})),U=await Z();if(!U)return O;if(!R)throw new Error(d(0x1ac));const e=await R['query']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20code,\x20name,\x20\x27database\x27\x20AS\x20source\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.dictionaries\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20name\x0a\x20\x20\x20\x20\x20\x20\x20\x20');for(const H of e[d(0x1b1)]){!t[d(0x1bf)](H[d(0x1ba)])&&O['push'](H);}return O;}return l(dictionaries),{'register':l,'get':h,'put':P,'clear':E,'revision':C,'list':L,'has':y};}
@@ -1,17 +1,14 @@
1
1
  /**
2
2
  * Implements the S3-compatible file storage adapter and its contracts.
3
3
  */
4
+ import type { Readable } from "node:stream";
4
5
  export interface FileAdapter {
5
- put(path: string, buffer: Buffer): Promise<void>;
6
+ put(path: string, body: Buffer | Readable): Promise<void>;
6
7
  get(path: string): Promise<Buffer>;
7
8
  exists(path: string): Promise<boolean>;
8
9
  delete(path: string): Promise<void>;
9
10
  create(path: string, ttl?: number): string;
10
- verify(token: string): FileTokenPayload;
11
- }
12
- export interface FileTokenPayload {
13
- p: string;
14
- exp: number;
11
+ verify(token: string): string;
15
12
  }
16
13
  export interface FileS3Config {
17
14
  endpoint?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/plugins/file.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAC;CAC3C;AACD,MAAM,WAAW,gBAAgB;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAgCD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,CA4F9D"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/plugins/file.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,WAAW;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAKD,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAgCD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,CAiF9D"}
@@ -1 +1 @@
1
- (function(D,L){const y=p,s=D();while(!![]){try{const X=parseInt(y(0x249))/0x1*(-parseInt(y(0x231))/0x2)+-parseInt(y(0x1ef))/0x3+parseInt(y(0x219))/0x4+-parseInt(y(0x1e3))/0x5*(-parseInt(y(0x208))/0x6)+parseInt(y(0x24e))/0x7*(-parseInt(y(0x242))/0x8)+parseInt(y(0x216))/0x9+parseInt(y(0x23a))/0xa*(-parseInt(y(0x222))/0xb);if(X===L)break;else s['push'](s['shift']());}catch(M){s['push'](s['shift']());}}}(m,0x270f7));import{DeleteObjectCommand,GetObjectCommand,HeadObjectCommand,PutObjectCommand,S3Client}from'@aws-sdk/client-s3';function p(D,L){D=D-0x1df;const s=m();let X=s[D];return X;}import t from'node:crypto';import{ValidationError}from'../errors.js';import{UnauthorizedError}from'../errors.js';function keyFor(L,s){const E=p,X={};X[E(0x21d)]=function(r,i){return r===i;},X[E(0x21a)]=function(r,i){return r===i;},X[E(0x22c)]=E(0x237),X[E(0x217)]=E(0x1f1),X[E(0x1fe)]=E(0x1f5);const M=X;if(!s||s[E(0x24b)]('/')||s[E(0x248)]('..')){if(M[E(0x217)]===M[E(0x217)])throw new ValidationError(M[E(0x1fe)]);else{const i=s;if(M[E(0x21d)](i[E(0x227)]?.[E(0x1e2)],0x194)||M[E(0x21a)](i[E(0x200)],M[E(0x22c)]))return![];throw X;}}const u=s[E(0x1fd)](/\\/g,'/')[E(0x1fd)](/^\/+/,''),o=(L??'')[E(0x1fd)](/^\/+|\/+$/g,'');return o?o+'/'+u:u;}async function bodyToBuffer(L){const c=p,s={};s[c(0x1f7)]=function(o,r){return o===r;},s[c(0x21e)]=c(0x22b),s[c(0x1e0)]=c(0x20e),s[c(0x1eb)]=function(o,r){return o===r;},s[c(0x236)]=c(0x207);const X=s;if(!L)return X[c(0x1f7)](c(0x22b),X[c(0x21e)])?Buffer[c(0x212)](0x0):L[c(0x212)](0x0);const M=L;if(X[c(0x1f7)](typeof M[c(0x233)],X[c(0x1e0)]))return Buffer[c(0x20f)](await M[c(0x233)]());const u=[];for await(const r of L){if(X[c(0x1eb)](c(0x207),X[c(0x236)]))u[c(0x210)](Buffer[c(0x20f)](r));else throw new L(c(0x1f5));}return Buffer[c(0x245)](u);}function m(){const v=['qXBfN','RycsK','folder','createHmac','send','bucket','replace','rVADi','MEesa','name','vgfdy','accessKeyId','sumMk','RuTOj','credentials','jLswH','qckHy','6hiTOhT','split','USxna','us-east-1','ioFre','BzwwD','function','from','push','ztOGo','alloc','KxJiz','exp','File\x20token\x20expired','973179aAzNzP','Nhwcd','tokenTtl','849380cJVmRu','KjPhH','MsMoD','update','xQLSE','CZISc','INcoG','IVNGn','utf8','993322yIEsht','forcePathStyle','MtmVZ','KyYbG','secretKey','$metadata','GVWmO','NZVGu','secretAccessKey','MVSaX','nmbrv','stringify','uDNjS','PifSW','IKVJI','20846mPUWgr','AgiMq','transformToByteArray','JguGV','endpoint','bmTtb','NotFound','region','toString','10EySOwV','randomBytes','now','vdXPx','aIBTk','Body','aKUwv','HjrAe','8psgbTu','KVvdp','lUHHM','concat','length','HTIQt','includes','16XooFMs','mqTXc','startsWith','isInteger','base64url','992369ygtnqQ','eoMUX','FjZBy','parse','hex','DByXg','YJiRB','rALbX','LJpYY','httpStatusCode','1279085TUuLow','tokenSecret','accessKey','vpEAJ','svIxE','timingSafeEqual','CimkS','floor','FcjtQ','YHBJG','twuIt','OXfAa','52395dHlxWM','feiAD','PSlYy','Invalid\x20file\x20token','sha256','digest','Invalid\x20file\x20path','CECKr'];m=function(){return v;};return m();}export function createFileS3(L){const H=p,s={'YJiRB':function(r,i){return r===i;},'AgiMq':H(0x22f),'MtmVZ':function(r,i){return r(i);},'uDNjS':function(r,i){return r(i);},'sumMk':function(r,i){return r+i;},'NZVGu':H(0x24d),'MsMoD':function(r,i){return r!==i;},'CECKr':H(0x1e7),'BzwwD':function(r,i){return r===i;},'RuTOj':function(r,i){return r===i;},'RycsK':H(0x237),'mqTXc':H(0x1f2),'INcoG':H(0x1ed),'eoMUX':H(0x1ec),'jLswH':function(r,i){return r===i;},'USxna':H(0x225),'KVvdp':function(r,i){return r+i;},'MEesa':function(r,i){return r/ i;},'KxJiz':H(0x1f3),'aIBTk':H(0x1e1),'CimkS':H(0x201),'IVNGn':H(0x221),'aKUwv':H(0x250),'vpEAJ':H(0x241),'feiAD':H(0x230),'ioFre':function(r,i){return r<i;},'OXfAa':H(0x215),'JguGV':H(0x20b)},X=L[H(0x1e4)]??process.env.FILE_TOKEN_SECRET??t[H(0x23b)](0x20)[H(0x239)](H(0x252)),M={};M[H(0x235)]=L[H(0x235)],M[H(0x238)]=L[H(0x238)]??s[H(0x234)],M[H(0x223)]=L[H(0x223)]??!![],M[H(0x205)]=L[H(0x202)]||L[H(0x1e5)]?{'accessKeyId':L[H(0x202)]??L[H(0x1e5)],'secretAccessKey':L[H(0x22a)]??L[H(0x226)]}:undefined;const u=new S3Client(M),o=r=>keyFor(L[H(0x1f9)],r);return{async 'put'(r,i){const A=H;if(s[A(0x1df)](s[A(0x232)],s[A(0x232)]))await u[A(0x1fb)](new PutObjectCommand({'Bucket':L[A(0x1fc)],'Key':s[A(0x224)](o,r),'Body':i}));else return![];},async 'get'(r){const V=H,i=await u[V(0x1fb)](new GetObjectCommand({'Bucket':L[V(0x1fc)],'Key':s[V(0x224)](o,r)}));return s[V(0x22e)](bodyToBuffer,i[V(0x23f)]);},async 'exists'(r){const F=H,i={'GVWmO':function(q,R){const a=p;return s[a(0x203)](q,R);},'vdXPx':s[F(0x229)],'DByXg':F(0x1f3)};if(s[F(0x21b)](s[F(0x1f6)],s[F(0x1f6)])){const R={'p':i,'exp':i[F(0x228)](q[F(0x1ea)](R[F(0x23c)]()/0x3e8),B)},B=O[F(0x20f)](h[F(0x22d)](R))[F(0x239)](i[F(0x23d)]),O=g[F(0x1fa)](i[F(0x253)],J)[F(0x21c)](B)[F(0x1f4)](i[F(0x23d)]);return B+'.'+O;}else try{return await u[F(0x1fb)](new HeadObjectCommand({'Bucket':L[F(0x1fc)],'Key':o(r)})),!![];}catch(R){const B=R;if(s[F(0x20d)](B[F(0x227)]?.[F(0x1e2)],0x194)||s[F(0x204)](B[F(0x200)],s[F(0x1f8)]))return![];throw R;}},async 'delete'(r){const w=H,i={};i[w(0x211)]=s[w(0x24a)];const q=i;if(s[w(0x21b)](s[w(0x21f)],s[w(0x24f)]))await u[w(0x1fb)](new DeleteObjectCommand({'Bucket':L[w(0x1fc)],'Key':o(r)}));else throw new i(q[w(0x211)]);},'create'(r,i=L[H(0x218)]??0xe10){const W=H,q={};q[W(0x244)]=W(0x215);const R=q;if(s[W(0x206)](s[W(0x20a)],s[W(0x20a)])){const B={'p':r,'exp':s[W(0x243)](Math[W(0x1ea)](s[W(0x1ff)](Date[W(0x23c)](),0x3e8)),i)},O=Buffer[W(0x20f)](JSON[W(0x22d)](B))[W(0x239)](W(0x24d)),h=t[W(0x1fa)](s[W(0x213)],X)[W(0x21c)](O)[W(0x1f4)](s[W(0x229)]);return O+'.'+h;}else throw new q(R[W(0x244)]);},'verify'(r){const P=H,i={};i[P(0x247)]=s[P(0x24a)];const q=i,[R,B]=r[P(0x209)]('.');if(!R||!B){if(s[P(0x21b)](s[P(0x23e)],s[P(0x1e9)]))throw new UnauthorizedError(s[P(0x24a)]);else throw new i(P(0x1f2));}const O=t[P(0x1fa)](s[P(0x213)],X)[P(0x21c)](R)[P(0x1f4)](),h=Buffer[P(0x20f)](B,s[P(0x229)]);if(s[P(0x21b)](O[P(0x246)],h[P(0x246)])||!t[P(0x1e8)](O,h))throw new UnauthorizedError(s[P(0x24a)]);let g;try{g=JSON[P(0x251)](Buffer[P(0x20f)](R,s[P(0x229)])[P(0x239)](s[P(0x220)]));}catch{if(s[P(0x240)]===s[P(0x240)])throw new UnauthorizedError(s[P(0x24a)]);else throw new i(q[P(0x247)]);}if(!g['p']||!Number[P(0x24c)](g[P(0x214)])){if(s[P(0x21b)](s[P(0x1e6)],s[P(0x1f0)]))throw new UnauthorizedError(s[P(0x24a)]);else throw new i(s[P(0x24a)]);}if(s[P(0x20c)](g[P(0x214)],Math[P(0x1ea)](Date[P(0x23c)]()/0x3e8)))throw new UnauthorizedError(s[P(0x1ee)]);return g;}};}
1
+ import{DeleteObjectCommand,GetObjectCommand,HeadObjectCommand,PutObjectCommand,S3Client}from'@aws-sdk/client-s3';function q(R,t){R=R-0x1d4;const X=G();let g=X[R];return g;}import R from'node:crypto';import{ValidationError}from'../errors.js';import{UnauthorizedError}from'../errors.js';function G(){const c=['startsWith','Invalid\x20file\x20path','replace','function','push','from','randomBytes','us-east-1','accessKey','bucket','Body','name','tokenTtl','Invalid\x20file\x20token','createHmac','length'];G=function(){return c;};return G();}function keyFor(t,X){const E=q;if(!X||X[E(0x1d4)]('/')||X['includes']('..'))throw new ValidationError(E(0x1d5));const g=X['replace'](/\\/g,'/')[E(0x1d6)](/^\/+/,''),m=(t??'')['replace'](/^\/+|\/+$/g,'');return m?m+'/'+g:g;}async function bodyToBuffer(t){const C=q;if(!t)return Buffer['alloc'](0x0);const X=t;if(typeof X['transformToByteArray']===C(0x1d7))return Buffer['from'](await X['transformToByteArray']());const g=[];for await(const m of t){g[C(0x1d8)](Buffer[C(0x1d9)](m));}return Buffer['concat'](g);}export function createFileS3(t){const L=q,X=t['tokenSecret']??process.env.FILE_TOKEN_SECRET??R[L(0x1da)](0x20)['toString']('hex'),g=new S3Client({'endpoint':t['endpoint'],'region':t['region']??L(0x1db),'forcePathStyle':t['forcePathStyle']??!![],'credentials':t['accessKeyId']||t[L(0x1dc)]?{'accessKeyId':t['accessKeyId']??t['accessKey'],'secretAccessKey':t['secretAccessKey']??t['secretKey']}:undefined}),m=Z=>keyFor(t['folder'],Z);return{async 'put'(Z,z){const O=L;await g['send'](new PutObjectCommand({'Bucket':t[O(0x1dd)],'Key':m(Z),'Body':z}));},async 'get'(Z){const U=L,z=await g['send'](new GetObjectCommand({'Bucket':t['bucket'],'Key':m(Z)}));return bodyToBuffer(z[U(0x1de)]);},async 'exists'(Z){const e=L;try{return await g['send'](new HeadObjectCommand({'Bucket':t[e(0x1dd)],'Key':m(Z)})),!![];}catch(z){const l=z;if(l['$metadata']?.['httpStatusCode']===0x194||l[e(0x1df)]==='NotFound')return![];throw z;}},async 'delete'(Z){const H=L;await g['send'](new DeleteObjectCommand({'Bucket':t[H(0x1dd)],'Key':m(Z)}));},'create'(Z,z=t[L(0x1e0)]??0xe10){const n=L,l=Buffer[n(0x1d9)](Z)['toString']('base64url'),y=R['createHmac']('sha256',X)['update'](l)['digest']('base64url');return l+'.'+y;},'verify'(Z){const S=L,[z,l]=Z['split']('.');if(!z||!l)throw new UnauthorizedError(S(0x1e1));const y=R[S(0x1e2)]('sha256',X)['update'](z)['digest'](),h=Buffer['from'](l,'base64url');if(y['length']!==h[S(0x1e3)]||!R['timingSafeEqual'](y,h))throw new UnauthorizedError('Invalid\x20file\x20token');const P=Buffer[S(0x1d9)](z,'base64url')['toString']('utf8');return P;}};}
@@ -4,8 +4,10 @@
4
4
  export * from "./logger/index.js";
5
5
  export * from "./redis.js";
6
6
  export * from "./pg.js";
7
+ export * from "./auth/index.js";
7
8
  export * from "./file.js";
8
9
  export * from "./dictionary.js";
9
10
  export * from "./audit/index.js";
10
11
  export * from "./resource/index.js";
12
+ export * from './jwt.js';
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC"}
@@ -1 +1 @@
1
- (function(D,L){var u=p,s=D();while(!![]){try{var X=parseInt(u(0x1d4))/0x1+-parseInt(u(0x1d1))/0x2*(parseInt(u(0x1cc))/0x3)+parseInt(u(0x1d3))/0x4+-parseInt(u(0x1d2))/0x5+-parseInt(u(0x1cf))/0x6+-parseInt(u(0x1cd))/0x7+-parseInt(u(0x1ce))/0x8*(-parseInt(u(0x1d0))/0x9);if(X===L)break;else s['push'](s['shift']());}catch(M){s['push'](s['shift']());}}}(m,0xa1d07));export*from'./logger/index.js';export*from'./redis.js';export*from'./pg.js';export*from'./file.js';export*from'./dictionary.js';function m(){var o=['6JSVNnn','1999620pBHKws','2540460cypybS','1320294RHbXIE','1106517kFqoZE','8156533jGenBJ','328plKrkX','7124610sZqdpr','563373sBzGCd'];m=function(){return o;};return m();}function p(D,L){D=D-0x1cc;var s=m();var X=s[D];return X;}export*from'./audit/index.js';export*from'./resource/index.js';
1
+ export*from'./logger/index.js';export*from'./redis.js';export*from'./pg.js';export*from'./auth/index.js';export*from'./file.js';export*from'./dictionary.js';export*from'./audit/index.js';export*from'./resource/index.js';export*from'./jwt.js';
@@ -0,0 +1,4 @@
1
+ import { AuthUser } from './auth/auth.types.js';
2
+ export declare function jwtSignToken(user: Record<string, unknown>): Promise<string | undefined>;
3
+ export declare function jwtVerifyToken(token: string): Promise<AuthUser>;
4
+ //# sourceMappingURL=jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/plugins/jwt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,+BAY/D;AACD,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,qBAKjD"}
@@ -0,0 +1 @@
1
+ function q(R,t){R=R-0x75;const X=G();let g=X[R];return g;}const Z=q;import{SignJWT,jwtVerify}from'jose';const secret=new TextEncoder()[Z(0x75)](process.env.AUTH_JWT_SECRET);function G(){const y=['encode','setProtectedHeader','message'];G=function(){return y;};return G();}export async function jwtSignToken(R){const z=Z;if(!process.env.AUTH_JWT_SECRET)return;const {id:t,type:X,permissions:g}=R,m=await new SignJWT({'id':t,'type':X,'permissions':g})[z(0x76)]({'alg':'HS256'})['setIssuedAt']()['setExpirationTime']('1h')['sign'](secret);return m;}export async function jwtVerifyToken(R){const t=await jwtVerify(R,secret,{'algorithms':['HS256']})['catch'](X=>{const l=q;console['log'](X[l(0x77)]);});return t?.['payload'];}
@@ -1 +1 @@
1
- function p(D,L){D=D-0xec;const s=m();let X=s[D];return X;}(function(D,L){const l=p,s=D();while(!![]){try{const X=-parseInt(l(0xf8))/0x1+-parseInt(l(0xfe))/0x2+-parseInt(l(0x103))/0x3*(parseInt(l(0xef))/0x4)+parseInt(l(0xf6))/0x5*(parseInt(l(0x104))/0x6)+parseInt(l(0x101))/0x7+parseInt(l(0x10d))/0x8*(-parseInt(l(0xf0))/0x9)+parseInt(l(0xf4))/0xa;if(X===L)break;else s['push'](s['shift']());}catch(M){s['push'](s['shift']());}}}(m,0x7e2f2));import z from'pino';function m(){const E=['app','accessToken','GbGMX','./transport.js','vFuFw','35528lehbCv','HPosU','transport','isoTime','MOxvD','bind','538600LsdDlE','81oVWEki','end','token','password','17508110xqgeGg','refreshToken','86195qWURwc','WqQfL','851173zGsJGm','DTymJ','itDrQ','assign','info','WltwN','1029472CHwWfl','XozyY','OaZFP','4732273AZtVFq','[REDACTED]','12jQQzFU','12LJtPRZ','target','stdTimeFunctions','req.headers.authorization'];m=function(){return E;};return m();}export function createLogger(){const t=p,s={};s[t(0x100)]=function(q,R){return q+R;},s[t(0xfd)]=function(q,R){return q??R;},s[t(0xf7)]=t(0x10b),s[t(0xf9)]=t(0xfc),s[t(0xed)]=t(0x108),s[t(0x10e)]=t(0xf3),s[t(0xfa)]=t(0xf2),s[t(0x10c)]=t(0x109),s[t(0xff)]=t(0xf5),s[t(0x10a)]=t(0x102);const X=s,M={};M[t(0x105)]=X[t(0xf7)];const u=z[t(0x10f)](M),o=z({'level':X[t(0xf9)],'timestamp':z[t(0x106)][t(0xec)],'base':{'service':X[t(0xed)]},'redact':{'paths':[t(0x107),X[t(0x10e)],X[t(0xfa)],X[t(0x10c)],X[t(0xff)]],'censor':X[t(0x10a)]}},u),r={};function i(q,R){const y=t;if(q===undefined){const B={...r};return B;}r[q]=X[y(0x100)](r[q]??0x0,X[y(0xfd)](R,0x1));}return Object[t(0xfb)](o,{'close':async()=>u[t(0xf1)](),'metrics':i,'file':()=>o[t(0xfc)][t(0xee)](o)});}
1
+ import R from'pino';function q(R,t){R=R-0xe6;const X=G();let g=X[R];return g;}export function createLogger(){const l=q,t=R[l(0xe6)]({'target':'./transport.js'}),X=R({'level':'info','timestamp':R['stdTimeFunctions']['isoTime'],'base':{'service':l(0xe7)},'redact':{'paths':[l(0xe8),'password','token',l(0xe9),'refreshToken'],'censor':'[REDACTED]'}},t),g={};function m(Z,z){if(Z===undefined)return{...g};g[Z]=(g[Z]??0x0)+(z??0x1);}return Object['assign'](X,{'close':async()=>t[l(0xea)](),'metrics':m,'file':()=>X['info']['bind'](X)});}function G(){const y=['transport','app','req.headers.authorization','accessToken','end'];G=function(){return y;};return G();}
@@ -0,0 +1,3 @@
1
+ import build from 'pino-abstract-transport';
2
+ export default function loggerTransport(): Promise<import("stream").Transform & build.OnUnknown>;
3
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/plugins/logger/transport.js"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,yBAAyB,CAAC;AAuD5C,wBAA8B,eAAe,0DAM5C"}
@@ -0,0 +1 @@
1
+ import R from'node:fs';import t from'node:path';function q(R,t){R=R-0x162;const X=G();let g=X[R];return g;}import X from'pino-abstract-transport';const LEVELS={0x1e:'info',0x28:'warn',0x32:'error',0x3c:'error'},streams=new Map();function getDate(){const l=q;return new Date()['toISOString']()[l(0x162)](0x0,0xa);}function createStream(g,m){const y=q,Z=t['resolve']('logs',g);return R[y(0x163)](Z,{'recursive':!![]}),R['createWriteStream'](t[y(0x164)](Z,m+y(0x165)),{'flags':'a'});}function getStream(g){const h=q,m=getDate(),Z=streams['get'](g);if(Z&&Z[h(0x166)]===m)return Z[h(0x167)];Z?.['stream']['end']();const z=createStream(g,m);return streams['set'](g,{'date':m,'stream':z}),z;}function G(){const C=['slice','mkdirSync','join','.log','date','stream','values','clear','level','file'];G=function(){return C;};return G();}function closeStreams(){const P=q;for(const {stream:g}of streams[P(0x168)]()){g['end']();}streams[P(0x169)]();}export default async function loggerTransport(){return X(writeLogs,{'close':async()=>{closeStreams();}});}async function writeLogs(g){const E=q;for await(const m of g){const Z=LEVELS[m[E(0x16a)]];if(!Z)continue;const z=getStream(m[E(0x16b)]||Z);delete m['file'],z['write'](JSON['stringify'](m)+'\x0a');}}
@@ -10,6 +10,8 @@ export interface DatabaseConfig {
10
10
  password: string;
11
11
  max?: number;
12
12
  }
13
- export declare function createDatabase(config: DatabaseConfig): import("pg").Pool;
14
- export type DatabaseAdapter = pg.Pool;
13
+ export declare function createDatabase(config: DatabaseConfig): DatabaseAdapter;
14
+ export type DatabaseAdapter = pg.Pool & {
15
+ transaction: <T>(callback: (client: pg.PoolClient) => Promise<T>) => Promise<T>;
16
+ };
15
17
  //# sourceMappingURL=pg.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../src/plugins/pg.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,qBAGpD;AACD,MAAM,MAAM,eAAe,GAAG,EAAE,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../src/plugins/pg.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,wBAAgB,cAAc,CAC1B,MAAM,EAAE,cAAc,mBAiDzB;AACD,MAAM,MAAM,eAAe,GAAG,EAAE,CAAC,IAAI,GAAG;IACpC,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACnF,CAAC"}
@@ -1 +1 @@
1
- (function(D,L){const o=p,s=D();while(!![]){try{const X=parseInt(o(0x13d))/0x1+-parseInt(o(0x141))/0x2+parseInt(o(0x13f))/0x3*(-parseInt(o(0x138))/0x4)+parseInt(o(0x13c))/0x5*(-parseInt(o(0x13a))/0x6)+parseInt(o(0x139))/0x7+-parseInt(o(0x13b))/0x8+parseInt(o(0x140))/0x9*(parseInt(o(0x13e))/0xa);if(X===L)break;else s['push'](s['shift']());}catch(u){s['push'](s['shift']());}}}(m,0x9ee17));function p(D,L){D=D-0x138;const s=m();let X=s[D];return X;}import M from'pg';const {Pool}=M;function m(){const r=['2972144WtMkLw','549438KXoSIA','575384KkSvvq','35lUCmeN','1262317soNnTC','80uUVzqA','4965NBMZYJ','346779GyLMhF','1110636qmcTNf','184gBqHFU'];m=function(){return r;};return m();}export function createDatabase(D){return new Pool(D);}
1
+ import R from'pg';function q(R,t){R=R-0xc3;const X=G();let g=X[R];return g;}const {Pool}=R;export function createDatabase(t){const E=q,X=new Pool(t),g=X['query']['bind'](X);function m(Z,z){const l=new Error();return Error['captureStackTrace']?.(l,m),g(Z,z)['catch'](y=>{const h=y;h['sql']=Z,h['callerStack']=l['stack'];throw h;});}return X[E(0xc3)]=m,X['transaction']=async function(Z){const C=E,z=new Error();Error[C(0xc4)]?.(z,X['transaction']);const l=await X['connect']();try{await l[C(0xc3)]('BEGIN');const y=await Z(l);return await l['query']('COMMIT'),y;}catch(h){await l['query']('ROLLBACK');const P=h;P[C(0xc5)]=z['stack'];throw P;}finally{l[C(0xc6)]();}},X;}function G(){const L=['query','captureStackTrace','callerStack','release'];G=function(){return L;};return G();}
@@ -1 +1 @@
1
- (function(D,L){const x=p,s=D();while(!![]){try{const X=-parseInt(x(0x110))/0x1*(parseInt(x(0x112))/0x2)+parseInt(x(0x10d))/0x3*(parseInt(x(0x10a))/0x4)+parseInt(x(0x107))/0x5*(-parseInt(x(0x103))/0x6)+-parseInt(x(0x10c))/0x7*(-parseInt(x(0x100))/0x8)+parseInt(x(0x109))/0x9*(parseInt(x(0x106))/0xa)+parseInt(x(0x105))/0xb+-parseInt(x(0x113))/0xc*(parseInt(x(0x10e))/0xd);if(X===L)break;else s['push'](s['shift']());}catch(M){s['push'](s['shift']());}}}(m,0x6fec1));function m(){const b=['49914eXoDUI','79248ZWLeLh','hincrby','incrby','8dXEQml','ping','set','6eFBcRA','number','8131134NGjWKl','10TEcQqv','3813305BtyhFs','del','7911801YiZOdm','319220ropJyP','quit','4798787IZlQTS','3zjwcSp','962bqWWBi','iOapp','27CadVRv','get'];m=function(){return b;};return m();}function p(D,L){D=D-0x100;const s=m();let X=s[D];return X;}import{Redis}from'ioredis';export function createRedis(L){const N=p,s={};s[N(0x10f)]=N(0x104);const X=s,M=new Redis(L);return{'get':u=>M[N(0x111)](u),'set':(u,o,r,i)=>{const U=N;if(i)return M[U(0x102)](u,o,'EX',i);if(typeof r===X[U(0x10f)])return M[U(0x102)](u,o,'EX',r);return M[U(0x102)](u,o);},'del':u=>M[N(0x108)](u),'delete':u=>M[N(0x108)](u),'close':()=>M[N(0x10b)](),'ping':()=>M[N(0x101)](),'hincrby':(u,o,r)=>M[N(0x114)](u,o,r),'incrby':(u,o)=>M[N(0x115)](u,o)};}
1
+ function q(R,t){R=R-0x1c0;const X=G();let g=X[R];return g;}import{Redis}from'ioredis';export function createRedis(R){const l=q,t=new Redis(R);return{'get':X=>t['get'](X),'set':(X,g,m,Z)=>{const z=q;if(Z)return t[z(0x1c0)](X,g,'EX',Z);if(typeof m==='number')return t['set'](X,g,'EX',m);return t['set'](X,g);},'del':X=>t['del'](X),'delete':X=>t[l(0x1c1)](X),'close':()=>t[l(0x1c2)](),'ping':()=>t['ping'](),'hincrby':(X,g,m)=>t[l(0x1c3)](X,g,m),'incrby':(X,g)=>t['incrby'](X,g)};}function G(){const y=['set','del','quit','hincrby'];G=function(){return y;};return G();}
@@ -1 +1 @@
1
- function m(){var o=['1380478CmcbzJ','12OzQpfT','725763PmOzaK','5209960ApOmhV','302178wzVPkh','829752ywwcRn','9996876TFhDcs','8502960TrZOQB','35XeOcry'];m=function(){return o;};return m();}function p(D,L){D=D-0x89;var s=m();var X=s[D];return X;}(function(D,L){var u=p,s=D();while(!![]){try{var X=parseInt(u(0x8d))/0x1+parseInt(u(0x89))/0x2+parseInt(u(0x8f))/0x3*(-parseInt(u(0x8e))/0x4)+-parseInt(u(0x8c))/0x5*(-parseInt(u(0x91))/0x6)+-parseInt(u(0x90))/0x7+-parseInt(u(0x8b))/0x8+parseInt(u(0x8a))/0x9;if(X===L)break;else s['push'](s['shift']());}catch(M){s['push'](s['shift']());}}}(m,0xb12f2));export*from'./resource.types.js';export*from'./resource.registry.js';export*from'./resource.js';
1
+ export*from'./resource.types.js';export*from'./resource.registry.js';export*from'./resource.js';
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/plugins/resource/resource.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAMhF,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,cAAc,CAmBzE"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/plugins/resource/resource.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAUhF,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,cAAc,CA2BzE"}
@@ -1 +1 @@
1
- (function(D,L){const w=p,s=D();while(!![]){try{const X=-parseInt(w(0x103))/0x1+parseInt(w(0x100))/0x2+parseInt(w(0x106))/0x3*(-parseInt(w(0xfd))/0x4)+parseInt(w(0x101))/0x5+parseInt(w(0x10c))/0x6*(-parseInt(w(0xfe))/0x7)+parseInt(w(0x10d))/0x8*(-parseInt(w(0x10b))/0x9)+parseInt(w(0x107))/0xa;if(X===L)break;else s['push'](s['shift']());}catch(M){s['push'](s['shift']());}}}(m,0xdce7c));import{ResourceRegistry}from'./resource.registry.js';import{createFind}from'./services/find.js';function m(){const P=['has','983721lkPWPa','30269470JFcTcI','register','heBdE','list','9OFguCM','12VwJWMX','10028840YiDYuq','16mdCses','1861678EKsShk','zZAtN','26908ZvkPLx','5033570ZRXeOv','bind','45146GpFAXk','get'];m=function(){return P;};return m();}import{createFindOne}from'./services/find-one.js';import{createCreate}from'./services/create.js';import{createUpdate}from'./services/update.js';function p(D,L){D=D-0xfd;const s=m();let X=s[D];return X;}import{createRemove}from'./services/delete.js';export function createResource(D){const W=p,L={'heBdE':function(i,q,R){return i(q,R);},'zZAtN':function(i,q,R){return i(q,R);}},s=new ResourceRegistry(),X=L[W(0x109)](createFind,D,s),M=createFindOne(D,s),u=L[W(0x109)](createCreate,D,s),o=L[W(0xff)](createUpdate,D,s),r=L[W(0x109)](createRemove,D,s);return{'register':s[W(0x108)][W(0x102)](s),'has':s[W(0x105)][W(0x102)](s),'get':s[W(0x104)][W(0x102)](s),'list':s[W(0x10a)][W(0x102)](s),'find':X,'findOne':M,'create':u,'update':o,'delete':r};}
1
+ import{ResourceRegistry}from'./resource.registry.js';function q(R,t){R=R-0x108;const X=G();let g=X[R];return g;}function G(){const C=['get','list','bind'];G=function(){return C;};return G();}import{createFind}from'./services/find.js';import{createFindOne}from'./services/find-one.js';import{createCreate}from'./services/create.js';import{createUpdate}from'./services/update.js';import{createRemove}from'./services/delete.js';import{createFindRelation}from'./services/find-relation.js';import{createCreateRelation}from'./services/create-relation.js';import{createDeleteRelation}from'./services/delete-relation.js';import{createUpdateRelation}from'./services/update-relation.js';export function createResource(R){const E=q,t=new ResourceRegistry(),X=createFind(R,t),g=createFindOne(R,t),m=createCreate(R,t),Z=createUpdate(R,t),z=createRemove(R,t),l=createFindRelation(R,t),y=createCreateRelation(R,t),h=createUpdateRelation(R,t),P=createDeleteRelation(R,t);return{'register':t['register']['bind'](t),'has':t['has']['bind'](t),'get':t[E(0x108)]['bind'](t),'list':t[E(0x109)][E(0x10a)](t),'find':X,'findOne':g,'create':m,'update':Z,'delete':z,'findRelation':l,'createRelation':y,'updateRelation':h,'deleteRelation':P};}
@@ -1 +1 @@
1
- const d=p;(function(D,L){const f=p,s=D();while(!![]){try{const X=parseInt(f(0xd3))/0x1+-parseInt(f(0xd1))/0x2*(-parseInt(f(0xda))/0x3)+parseInt(f(0xdf))/0x4+-parseInt(f(0xc1))/0x5+parseInt(f(0xde))/0x6*(-parseInt(f(0xcc))/0x7)+parseInt(f(0xd6))/0x8+parseInt(f(0xc7))/0x9*(-parseInt(f(0xc0))/0xa);if(X===L)break;else s['push'](s['shift']());}catch(M){s['push'](s['shift']());}}}(m,0xadd38));function p(D,L){D=D-0xc0;const s=m();let X=s[D];return X;}function m(){const j=['fields','Resource\x20not\x20registered:\x20','length','27601bQKCnl','inNSB','get','test','entries','6XpfeLT','version','995035aaVRJT','set','values','4398328KqHGic','validate','isArray','has','1067613xcSoHX','column','list','key','888OJGqmi','3391152Wsauqo','every','name','register','Invalid\x20resource\x20field:\x20','tDJSg','Invalid\x20resource\x20contract:\x20','bsoSt','10LVUMOk','3340745IeulzK','split','table','Resource\x20already\x20registered:\x20','fMwIj','JIcCz','13468698oqMGRI','resources'];m=function(){return j;};return m();}import{ValidationError,ConflictError,NotFoundError}from'../../errors.js';const ident=/^[a-zA-Z_][a-zA-Z0-9_]*$/;function validQualified(D){const Q=p;return D[Q(0xc2)]('.')[Q(0xcb)]<=0x2&&D[Q(0xc2)]('.')[Q(0xe0)](L=>ident[Q(0xcf)](L));}export class ResourceRegistry{[d(0xc8)]=new Map();[d(0xe2)](D){const T=d;for(const L of Array[T(0xd8)](D)?D:[D]){this[T(0xd7)](L);if(this[T(0xc8)][T(0xd9)](L[T(0xe1)]))throw new ConflictError(T(0xc4)+L[T(0xe1)]);this[T(0xc8)][T(0xd4)](L[T(0xe1)],L);}}[d(0xd9)](D){const K=d;return this[K(0xc8)][K(0xd9)](D);}[d(0xce)](D){const C=d,L=this[C(0xc8)][C(0xce)](D);if(!L)throw new NotFoundError(C(0xca)+D);return L;}[d(0xdc)](){const k=d;return[...this[k(0xc8)][k(0xd5)]()];}[d(0xd7)](D){const G=d,L={'JIcCz':function(s,X){return s!==X;},'fMwIj':function(s,X){return s(X);},'tDJSg':function(s,X){return s===X;},'inNSB':G(0xe6)};if(L[G(0xc6)](D[G(0xd2)],0x1)||!ident[G(0xcf)](D[G(0xe1)])||!L[G(0xc5)](validQualified,D[G(0xc3)])||!ident[G(0xcf)](D[G(0xdd)]))throw new ValidationError(G(0xe5)+D[G(0xe1)]);for(const [s,X]of Object[G(0xd0)](D[G(0xc9)])){if(L[G(0xe4)](L[G(0xcd)],G(0xe6))){if(!ident[G(0xcf)](s)||!ident[G(0xcf)](X[G(0xdb)]??s))throw new ValidationError(G(0xe3)+s);}else{const u=this[G(0xc8)][G(0xce)](X);if(!u)throw new M(G(0xca)+u);return u;}}}}
1
+ function q(R,t){R=R-0x1a4;const X=G();let g=X[R];return g;}const Z=q;import{ValidationError,ConflictError,NotFoundError}from'../../errors.js';const ident=/^[a-zA-Z0-9_-]*$/;function validQualified(R){const g=q;return R[g(0x1a4)]('.')['length']<=0x2&&R['split']('.')['every'](t=>ident['test'](t));}export class ResourceRegistry{['resources']=new Map();['register'](R){const m=q;for(const t of Array['isArray'](R)?R:[R]){this['validate'](t);if(this['resources']['has'](t['name']))throw new ConflictError(m(0x1a5)+t[m(0x1a6)]);this['resources']['set'](t['name'],t);}}[Z(0x1a7)](R){return this['resources']['has'](R);}[Z(0x1a8)](R){const t=this['resources']['get'](R);if(!t)throw new NotFoundError('Resource\x20not\x20registered:\x20'+R);return t;}[Z(0x1a9)](){const z=Z;return[...this[z(0x1aa)][z(0x1ab)]()];}['validate'](R){const l=Z;if(R['version']!==0x1||!ident['test'](R['name'])||!validQualified(R['table'])||!ident['test'](R['key']))throw new ValidationError('Invalid\x20resource\x20contract:\x20'+R[l(0x1a6)]);for(const [t,X]of Object[l(0x1ac)](R['fields'])){if(!ident['test'](t)||!ident['test'](X[l(0x1ad)]??t))throw new ValidationError('Invalid\x20resource\x20field:\x20'+t);}}}function G(){const y=['split','Resource\x20already\x20registered:\x20','name','has','get','list','resources','values','entries','column'];G=function(){return y;};return G();}
@@ -4,11 +4,14 @@
4
4
  import type { DatabaseAdapter } from "../pg.js";
5
5
  import type { AppLogger } from "../logger/index.js";
6
6
  import type { AuditPlugin } from "../audit/index.js";
7
+ import type { DictionaryPlugin } from "../dictionary.js";
8
+ import type { FileAdapter } from "../file.js";
7
9
  import { User } from "../../context.js";
10
+ import type { AppContext } from "../../context.js";
8
11
  export type ResourceOperation = "read" | "create" | "update" | "delete";
9
12
  export interface ResourceFieldContract {
10
13
  column?: string;
11
- type?: "string" | "number" | "integer" | "boolean" | "date" | "json";
14
+ type?: "string" | "number" | "integer" | "boolean" | "date" | "json" | "text" | "timestamp" | "uuid" | "file" | "geometry" | "geom";
12
15
  read?: boolean;
13
16
  write?: boolean;
14
17
  readable?: boolean;
@@ -21,15 +24,30 @@ export interface ResourceFieldContract {
21
24
  filter?: boolean;
22
25
  sort?: boolean;
23
26
  search?: boolean;
27
+ dictionary?: string;
24
28
  lookup?: {
25
- dictionary: string;
29
+ table: string;
30
+ value: string;
31
+ text: string;
32
+ fields?: string[];
26
33
  };
34
+ enum?: string[] | number[];
35
+ minLength?: number;
36
+ maxLength?: number;
37
+ minimum?: number;
38
+ maximum?: number;
39
+ pattern?: string;
27
40
  }
28
41
  export interface ResourceRelationContract {
29
42
  resource?: string;
30
43
  table?: string;
31
- sourceField?: string;
32
- targetField?: string;
44
+ localKey?: string;
45
+ foreignKey?: string;
46
+ type?: "one" | "many";
47
+ fields?: string[];
48
+ junctionTable?: string;
49
+ junctionLocalKey?: string;
50
+ junctionForeignKey?: string;
33
51
  }
34
52
  export interface ResourceContract {
35
53
  version: 1;
@@ -39,6 +57,8 @@ export interface ResourceContract {
39
57
  table: string;
40
58
  key: string;
41
59
  operations: ResourceOperation[];
60
+ searchable?: string[];
61
+ capabilities?: string[];
42
62
  permission?: string;
43
63
  fields: Record<string, ResourceFieldContract>;
44
64
  relations?: Record<string, ResourceRelationContract>;
@@ -46,6 +66,7 @@ export interface ResourceContract {
46
66
  }
47
67
  export interface ResourceQuery {
48
68
  filter?: Record<string, unknown>;
69
+ include?: string | string[];
49
70
  sort?: string[];
50
71
  search?: string;
51
72
  limit?: number;
@@ -55,13 +76,17 @@ export interface ResourceQuery {
55
76
  export interface ResourceListResult<T = Record<string, unknown>> {
56
77
  rows: T[];
57
78
  limit: number;
79
+ time: number;
80
+ total: number | null;
58
81
  offset: number;
59
82
  }
60
83
  export type ResourceUser = User;
61
84
  export interface ResourceDependencies {
62
- pg: DatabaseAdapter | null;
85
+ pg: DatabaseAdapter;
63
86
  logger?: AppLogger;
64
87
  audit?: AuditPlugin;
88
+ dictionary?: DictionaryPlugin;
89
+ file?: FileAdapter;
65
90
  }
66
91
  export interface ResourcePlugin {
67
92
  register(input: ResourceContract | ResourceContract[]): void;
@@ -76,23 +101,55 @@ export interface ResourcePlugin {
76
101
  findOne(params: {
77
102
  name: string;
78
103
  id: string | number;
104
+ query?: ResourceQuery;
79
105
  user?: ResourceUser;
80
106
  }): Promise<Record<string, unknown> | null>;
81
107
  create(params: {
82
108
  name: string;
83
109
  data: Record<string, unknown>;
84
110
  user?: ResourceUser;
85
- }): Promise<Record<string, unknown>>;
111
+ }, ctx?: AppContext): Promise<Record<string, unknown>>;
86
112
  update(params: {
87
113
  name: string;
88
114
  id: string | number;
89
115
  data: Record<string, unknown>;
90
116
  user?: ResourceUser;
91
- }): Promise<Record<string, unknown>>;
117
+ }, ctx?: AppContext): Promise<Record<string, unknown>>;
92
118
  delete(params: {
93
119
  name: string;
94
120
  id: string | number;
95
121
  user?: ResourceUser;
96
- }): Promise<boolean>;
122
+ }, ctx?: AppContext): Promise<boolean>;
123
+ findRelation(params: {
124
+ name: string;
125
+ id: string | number;
126
+ relation: string;
127
+ query?: ResourceQuery;
128
+ user?: ResourceUser;
129
+ }): Promise<any>;
130
+ createRelation(params: {
131
+ name: string;
132
+ id: string | number;
133
+ relation: string;
134
+ data?: Record<string, unknown>;
135
+ user?: ResourceUser;
136
+ }, ctx?: AppContext): Promise<any>;
137
+ updateRelation(params: {
138
+ name: string;
139
+ id: string | number;
140
+ relation: string;
141
+ relationId: string;
142
+ data: Record<string, unknown>;
143
+ user?: ResourceUser;
144
+ }, ctx?: AppContext): Promise<Record<string, unknown>>;
145
+ deleteRelation(params: {
146
+ name: string;
147
+ id: string | number;
148
+ relation: string;
149
+ relationId: string;
150
+ user?: ResourceUser;
151
+ }, ctx?: AppContext): Promise<{
152
+ success: boolean;
153
+ }>;
97
154
  }
98
155
  //# sourceMappingURL=resource.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.types.d.ts","sourceRoot":"","sources":["../../../src/plugins/resource/resource.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource.types.d.ts","sourceRoot":"","sources":["../../../src/plugins/resource/resource.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ResourceContract, ResourceDependencies } from "../resource.types.js";
2
+ export declare function addDictionaryLookupData(rows: Record<string, unknown>[], fields: ResourceContract["fields"], dictionary: ResourceDependencies["dictionary"]): Promise<Record<string, unknown>[]>;
3
+ //# sourceMappingURL=add-dictionary-lookup-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-dictionary-lookup-data.d.ts","sourceRoot":"","sources":["../../../../src/plugins/resource/services/add-dictionary-lookup-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAsDnF,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAClC,UAAU,EAAE,oBAAoB,CAAC,YAAY,CAAC,GAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAuBpC"}
@@ -0,0 +1 @@
1
+ function G(){const U=['filter','get','length','map','has','code','icon','entries','dictionary','_data'];G=function(){return U;};return G();}function q(R,t){R=R-0x169;const X=G();let g=X[R];return g;}const dictionaryIndexesCache=new WeakMap(),dictionaryRevisionsCache=new WeakMap();async function getDictionaryIndexes(R,t){const E=q,X=dictionaryIndexesCache['get'](t)??new Map(),g=dictionaryRevisionsCache['get'](t)??new Map();dictionaryIndexesCache['set'](t,X),dictionaryRevisionsCache['set'](t,g);const m=R[E(0x169)](z=>g[E(0x16a)](z)!==t['revision'](z));if(m[E(0x16b)]===0x0)return X;const Z=await Promise['all'](m[E(0x16c)](async z=>{const C=E;if(!t[C(0x16d)](z))return[z,new Map()];const l=await t[C(0x16a)](z),y=new Map();for(const h of l){const P=h[C(0x16e)]??h['id'];if(P==null)continue;y['set'](String(P),{'id':P,'text':h['name']??h['text'],...h['color']!==undefined?{'color':h['color']}:{},...h['icon']!==undefined?{'icon':h[C(0x16f)]}:{}});}return[z,y];}));for(const [z,l]of Z){X['set'](z,l),g['set'](z,t['revision'](z));}return X;}export async function addDictionaryLookupData(R,t,X){const L=q;if(!X||R['length']===0x0)return R;const g=Object[L(0x170)](t)['flatMap'](([Z,z])=>{const O=L,l=z[O(0x171)];return l?[{'field':Z,'dictionaryName':l}]:[];});if(g['length']===0x0)return R;const m=await getDictionaryIndexes([...new Set(g['map'](({dictionaryName:Z})=>Z))],X);for(const Z of R){for(const {field:z,dictionaryName:l}of g){const y=Z[z];Z[z+L(0x172)]=y==null?null:m['get'](l)?.[L(0x16a)](String(y))??null;}}return R;}
@@ -0,0 +1,3 @@
1
+ import type { ResourceContract, ResourceDependencies } from "../resource.types.js";
2
+ export declare function addFileToken(rows: Record<string, unknown>[], fields: ResourceContract["fields"], file: ResourceDependencies["file"]): Record<string, unknown>[];
3
+ //# sourceMappingURL=add-file-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-file-token.d.ts","sourceRoot":"","sources":["../../../../src/plugins/resource/services/add-file-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,wBAAgB,YAAY,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAClC,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAiB3B"}
@@ -0,0 +1 @@
1
+ function q(R,t){R=R-0x1e9;const X=G();let g=X[R];return g;}function G(){const y=['length'];G=function(){return y;};return G();}export function addFileToken(R,t,X){const l=q;if(!X||R[l(0x1e9)]===0x0)return R;const g=Object['entries'](t)['filter'](([,m])=>m['type']==='file')['map'](([m])=>m);for(const m of R){for(const Z of g){const z=m[Z];typeof z==='string'&&z[l(0x1e9)]>0x0&&(m[Z]=X['create'](z));}}return R;}
@@ -0,0 +1,4 @@
1
+ import type { ResourceContract, ResourceDependencies } from "../resource.types.js";
2
+ export declare function clearTableLookupCache(table: string, pg: NonNullable<ResourceDependencies["pg"]>): void;
3
+ export declare function addTableLookupData(rows: Record<string, unknown>[], fields: ResourceContract["fields"], pg: ResourceDependencies["pg"]): Promise<Record<string, unknown>[]>;
4
+ //# sourceMappingURL=add-table-lookup-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-table-lookup-data.d.ts","sourceRoot":"","sources":["../../../../src/plugins/resource/services/add-table-lookup-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAQnF,wBAAgB,qBAAqB,CACjC,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAC5C,IAAI,CASN;AAED,wBAAsB,kBAAkB,CACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAClC,EAAE,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CA8DpC"}
@@ -0,0 +1 @@
1
+ function q(R,t){R=R-0x99;const X=G();let g=X[R];return g;}import{qi,qt}from'../utils/sql.js';const tableLookupCache=new WeakMap();export function clearTableLookupCache(R,t){const H=q,X=tableLookupCache[H(0x99)](t);if(!X)return;for(const g of X[H(0x9a)]()){g[H(0x9b)](R+':')&&X[H(0x9c)](g);}}function G(){const c=['get','keys','startsWith','delete','flatMap','name','has','length','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20','\x20=\x20ANY($1)','rows','set'];G=function(){return c;};return G();}export async function addTableLookupData(R,t,X){const n=q;if(!X||R['length']===0x0)return R;const g=tableLookupCache[n(0x99)](X)??new Map();tableLookupCache['set'](X,g);const m=Object['entries'](t)[n(0x9d)](([Z,z])=>{const S=n,{table:l,value:value='id',text:text=S(0x9e)}=z['lookup']??{};return l?[{'field':Z,'table':l,'value':value,'text':text}]:[];});for(const Z of m){const z=new Map();for(const P of R){const E=P[Z['field']];(typeof E==='string'||typeof E==='number')&&z['set'](String(E),E);}const l=Z['table']+':'+Z['value']+':'+Z['text'],y=g[n(0x99)](l)??new Map();g['set'](l,y);const h=[...z['entries']()]['filter'](([C])=>!y[n(0x9f)](C))['map'](([,C])=>C);if(h[n(0xa0)]>0x0){const C=await X['query']('SELECT\x20'+qi(Z['value'])+'\x20AS\x20id,\x20'+qi(Z['text'])+'\x20AS\x20text\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20'+qt(Z['table'])+n(0xa1)+qi(Z['value'])+n(0xa2),[h]);for(const L of C[n(0xa3)]){y[n(0xa4)](String(L['id']),L);}for(const O of h){!y['has'](String(O))&&y['set'](String(O),null);}}for(const U of R){const e=U[Z['field']];U[Z['field']+'_data']=e==null?null:y['get'](String(e))??null;}}return R;}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Implements the create relation operation of the generic Resource CRUD engine.
3
+ */
4
+ import type { ResourceDependencies, ResourceUser } from "../resource.types.js";
5
+ import type { ResourceRegistry } from "../resource.registry.js";
6
+ import { AppContext } from "../../../context.js";
7
+ type CreateRelationParams = {
8
+ name: string;
9
+ id: string | number;
10
+ relation: string;
11
+ data?: Record<string, unknown>;
12
+ user?: ResourceUser;
13
+ };
14
+ export declare function createCreateRelation(deps: ResourceDependencies, registry: ResourceRegistry): ({ name, id, relation, data, user, }: CreateRelationParams, ctx?: AppContext) => Promise<any>;
15
+ export {};
16
+ //# sourceMappingURL=create-relation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-relation.d.ts","sourceRoot":"","sources":["../../../../src/plugins/resource/services/create-relation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,gBAAgB,yCAIgD,oBAAoB,QAAQ,UAAU,KAAG,OAAO,CAAC,GAAG,CAAC,CA+DhI"}
@@ -0,0 +1 @@
1
+ function q(R,t){R=R-0x18e;const X=G();let g=X[R];return g;}function G(){const H=['get','notes','includes','Generic\x20Resource\x20relation\x20\x22','query','filePath','foreignKey'];G=function(){return H;};return G();}import{UnsupportedError}from'../../../errors.js';import{createCreate}from'./create.js';export function createCreateRelation(R,t){const X=createCreate(R,t);return async function g({name:m,id:Z,relation:z,data:l,user:y},h){const e=q,P=h?.['pg']??R['pg'],E=t[e(0x18e)](m);if([e(0x18f),'files']['includes'](z)&&!E['capabilities']?.[e(0x190)](z))throw new UnsupportedError(e(0x191)+z+'\x22\x20requires\x20a\x20capabilities\x20\x22'+z+'\x22');if(z===e(0x18f)){const O=await P[e(0x192)]('INSERT\x20INTO\x20admin.notes(resource,resource_id,body)\x20VALUES\x20($1,$2,$3)\x20RETURNING\x20*',[m,String(Z),l?.['body']]);return O['rows'][0x0];}if(z==='files'){const U=await P['query']('INSERT\x20INTO\x20admin.files\x20(resource,\x20resource_id,\x20file_path,\x20size)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20*',[m,String(Z),l?.[e(0x193)],l?.['size']??null]);return U['rows'][0x0];}const C=E['relations']?.[z];if(!C?.[e(0x194)]||!C['resource']&&!C['table'])throw new UnsupportedError('Generic\x20Resource\x20relation\x20\x22'+z+'\x22\x20requires\x20a\x20project/provider\x20implementation');if(!l)throw new UnsupportedError('No\x20data\x20provided\x20for\x20relation:\x20'+l);if(!C['resource'])throw new UnsupportedError('Relation\x20update\x20is\x20not\x20configured:\x20'+z);l[C['foreignKey']]=Z;const L=await X({'name':C['resource'],'data':l??{},'user':y});return L;};}
@@ -1,8 +1,11 @@
1
1
  import type { ResourceDependencies, ResourceUser } from "../resource.types.js";
2
2
  import type { ResourceRegistry } from "../resource.registry.js";
3
- export declare function createCreate(deps: ResourceDependencies, registry: ResourceRegistry): ({ name, data, user, }: {
3
+ import { AppContext } from "../../../context.js";
4
+ type CreateParams = {
4
5
  name: string;
5
6
  data: Record<string, unknown>;
6
7
  user?: ResourceUser;
7
- }) => Promise<Record<string, unknown>>;
8
+ };
9
+ export declare function createCreate(deps: ResourceDependencies, registry: ResourceRegistry): ({ name, data, user, }: CreateParams, ctx?: AppContext) => Promise<Record<string, unknown>>;
10
+ export {};
8
11
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/plugins/resource/services/create.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,wBAAgB,YAAY,CAC1B,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,gBAAgB,2BAMvB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8CrC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/plugins/resource/services/create.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,wBAAgB,YAAY,CAC1B,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,gBAAgB,2BAE0B,YAAY,QAAQ,UAAU,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4CtH"}
@@ -1 +1 @@
1
- (function(D,L){const l=p,s=D();while(!![]){try{const X=parseInt(l(0x1f3))/0x1+parseInt(l(0x1e2))/0x2+-parseInt(l(0x1dd))/0x3+parseInt(l(0x1f6))/0x4*(parseInt(l(0x1f4))/0x5)+-parseInt(l(0x1ef))/0x6*(parseInt(l(0x1dc))/0x7)+-parseInt(l(0x1e9))/0x8+parseInt(l(0x1f5))/0x9;if(X===L)break;else s['push'](s['shift']());}catch(M){s['push'](s['shift']());}}}(m,0x7f332));function m(){const E=['ncwQc','get','1279708krhJOG','keys','empty\x20pg','write','writable','No\x20writable\x20fields','table','2177328jRRWnM','module','YRalf','key','VALUES\x20(','entries','438oMorel','required','map','name','514741hEhaJe','84875zpbmvD','405459ptUvnO','84CgRaZo','GxWgC','fields','join','kgQhC','RETURNING\x20','audit','MGffr','query','rows','didFu','create','Required\x20field:\x20','length','PHOaU','34671qXMfQe','1204128hzOMNr','INSERT\x20INTO\x20','UHNQk'];m=function(){return E;};return m();}import{ValidationError}from'../../../errors.js';import{assertOperation}from'../utils/permissions.js';import{qi,qt,readableFields,writableData}from'../utils/sql.js';function p(D,L){D=D-0x1da;const s=m();let X=s[D];return X;}export function createCreate(D,L){const t=p,s={'didFu':function(X,M,u,o){return X(M,u,o);},'kgQhC':function(X,M){return X!==M;},'UHNQk':function(X,M,u){return X(M,u);},'YRalf':t(0x1e7),'PHOaU':t(0x1e4),'ncwQc':function(X,M){return X+M;},'GxWgC':function(X,M){return X(M);},'MGffr':t(0x201)};return async function X({name:M,data:u,user:o}){const y=t,r=L[y(0x1e1)](M);s[y(0x200)](assertOperation,r,y(0x201),o);for(const [g,J]of Object[y(0x1ee)](r[y(0x1f8)])){if(J[y(0x1f0)]&&s[y(0x1fa)](J[y(0x1e6)],![])&&u[g]===undefined)throw new ValidationError(y(0x202)+g);}const i=s[y(0x1df)](writableData,r,u);if(!i[y(0x1da)])throw new ValidationError(s[y(0x1eb)]);const q=i[y(0x1f1)](([S])=>qi(S)),R=i[y(0x1f1)]((S,z)=>'$'+(z+0x1)),B=i[y(0x1f1)](([,S])=>S);if(!D['pg'])throw new Error(s[y(0x1db)]);const O=await D['pg'][y(0x1fe)](s[y(0x1e0)](s[y(0x1e0)](y(0x1de)+qt(r[y(0x1e8)])+'\x20('+q[y(0x1f9)](',\x20')+')\x20',y(0x1ed)+R[y(0x1f9)](',\x20')+')\x20'),y(0x1fb)+s[y(0x1f7)](readableFields,r)[y(0x1f9)](',\x20')),B),h=O[y(0x1ff)][0x0];return await D[y(0x1fc)]?.[y(0x1e5)]({'userId':o?.['id'],'module':r[y(0x1ea)],'resource':r[y(0x1f2)],'resourceId':h[r[y(0x1ec)]],'action':s[y(0x1fd)],'fields':Object[y(0x1e3)](u)}),h;};}
1
+ function q(R,t){R=R-0x1d7;const X=G();let g=X[R];return g;}import{ValidationError}from'../../../errors.js';import{assertOperation}from'../utils/permissions.js';import{qi,qt,readableFields,writableData}from'../utils/sql.js';import{validateInputData}from'../utils/fields.js';function G(){const n=['push','fields','created_by','map','table','VALUES\x20(','audit','write'];G=function(){return n;};return G();}import{clearTableLookupCache}from'./add-table-lookup-data.js';export function createCreate(R,t){return async function X({name:g,data:m,user:Z},z){const H=q,l=t['get'](g);assertOperation(l,'create',Z),validateInputData({'resource':l,'data':m});const y=writableData(l,m);l['fields']['created_at']&&y[H(0x1d7)](['created_at',new Date()]);l[H(0x1d8)][H(0x1d9)]&&y['push'](['created_by',Z?.['id']]);if(!y['length'])throw new ValidationError('No\x20writable\x20fields');const h=y[H(0x1da)](([U])=>qi(U)),P=y['map']((U,e)=>'$'+(e+0x1)),E=y['map'](([,U])=>U),C=z?.['pg']??R['pg'],L=await C['query']('INSERT\x20INTO\x20'+qt(l[H(0x1db)])+'\x20('+h['join'](',\x20')+')\x20'+(H(0x1dc)+P['join'](',\x20')+')\x20')+('RETURNING\x20'+readableFields(l)['join'](',\x20')),E),O=L['rows'][0x0];return clearTableLookupCache(l['table'],C),await(z?.['audit']??R[H(0x1dd)])?.[H(0x1de)]({'userId':Z?.['id'],'module':l['module'],'resource':l['name'],'resourceId':O[l['key']],'action':'create','fields':Object['keys'](m)}),O;};}