@opengis/fcore 0.0.1-beta.4 → 0.0.1-beta.6

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 (177) 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.map +1 -1
  9. package/dist/fastify.js +1 -1
  10. package/dist/fcore.js +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/migrations/cli.js +1 -1
  13. package/dist/migrations/runner.js +1 -1
  14. package/dist/modules/auth/adduser-cli.d.ts +3 -0
  15. package/dist/modules/auth/adduser-cli.d.ts.map +1 -0
  16. package/dist/modules/auth/adduser-cli.js +2 -0
  17. package/dist/modules/auth/passwd-cli.d.ts +3 -0
  18. package/dist/modules/auth/passwd-cli.d.ts.map +1 -0
  19. package/dist/modules/auth/passwd-cli.js +2 -0
  20. package/dist/modules/auth/permission-cli.d.ts +3 -0
  21. package/dist/modules/auth/permission-cli.d.ts.map +1 -0
  22. package/dist/modules/auth/permission-cli.js +2 -0
  23. package/dist/modules/auth/route.d.ts.map +1 -1
  24. package/dist/modules/auth/route.js +1 -1
  25. package/dist/modules/auth/schema.d.ts +7 -1
  26. package/dist/modules/auth/schema.d.ts.map +1 -1
  27. package/dist/modules/auth/schema.js +1 -1
  28. package/dist/modules/auth/services/change-password.d.ts +9 -0
  29. package/dist/modules/auth/services/change-password.d.ts.map +1 -0
  30. package/dist/modules/auth/services/change-password.js +1 -0
  31. package/dist/modules/auth/services/get-current-user.js +1 -1
  32. package/dist/modules/auth/services/registration.d.ts +14 -0
  33. package/dist/modules/auth/services/registration.d.ts.map +1 -0
  34. package/dist/modules/auth/services/registration.js +1 -0
  35. package/dist/modules/auth/services/verify-two-factor.js +1 -1
  36. package/dist/modules/file/route.js +1 -1
  37. package/dist/modules/file/schema.js +1 -1
  38. package/dist/modules/file/services/get-file.js +1 -1
  39. package/dist/modules/file/services/resize-file.js +1 -1
  40. package/dist/modules/file/services/upload-file.js +1 -1
  41. package/dist/modules/resource/route.d.ts.map +1 -1
  42. package/dist/modules/resource/route.js +1 -1
  43. package/dist/modules/resource/schema.js +1 -1
  44. package/dist/modules/resource/services/add-note.js +1 -1
  45. package/dist/modules/resource/services/add-resource-file.js +1 -1
  46. package/dist/modules/resource/services/create-resource-relation.d.ts +8 -2
  47. package/dist/modules/resource/services/create-resource-relation.d.ts.map +1 -1
  48. package/dist/modules/resource/services/create-resource-relation.js +1 -1
  49. package/dist/modules/resource/services/create-resource.js +1 -1
  50. package/dist/modules/resource/services/delete-resource-relation.d.ts +8 -1
  51. package/dist/modules/resource/services/delete-resource-relation.d.ts.map +1 -1
  52. package/dist/modules/resource/services/delete-resource-relation.js +1 -1
  53. package/dist/modules/resource/services/delete-resource.js +1 -1
  54. package/dist/modules/resource/services/export-resource.js +1 -1
  55. package/dist/modules/resource/services/get-resource.js +1 -1
  56. package/dist/modules/resource/services/list-resource-relation.d.ts +7 -2
  57. package/dist/modules/resource/services/list-resource-relation.d.ts.map +1 -1
  58. package/dist/modules/resource/services/list-resource-relation.js +1 -1
  59. package/dist/modules/resource/services/list-resources.js +1 -1
  60. package/dist/modules/resource/services/search-resource.js +1 -1
  61. package/dist/modules/resource/services/suggest-resource.d.ts +3 -0
  62. package/dist/modules/resource/services/suggest-resource.d.ts.map +1 -1
  63. package/dist/modules/resource/services/suggest-resource.js +1 -1
  64. package/dist/modules/resource/services/update-resource.js +1 -1
  65. package/dist/modules/resource/services/upload-resource-file.js +1 -1
  66. package/dist/modules/system/route.d.ts +2 -1
  67. package/dist/modules/system/route.d.ts.map +1 -1
  68. package/dist/modules/system/route.js +1 -1
  69. package/dist/modules/system/schema.d.ts +22 -1
  70. package/dist/modules/system/schema.d.ts.map +1 -1
  71. package/dist/modules/system/schema.js +1 -1
  72. package/dist/modules/system/services/check-system.d.ts.map +1 -1
  73. package/dist/modules/system/services/check-system.js +1 -1
  74. package/dist/modules/system/services/get-access.d.ts +14 -0
  75. package/dist/modules/system/services/get-access.d.ts.map +1 -0
  76. package/dist/modules/system/services/get-access.js +1 -0
  77. package/dist/modules/system/services/get-api-list.d.ts +4 -1
  78. package/dist/modules/system/services/get-api-list.d.ts.map +1 -1
  79. package/dist/modules/system/services/get-api-list.js +1 -1
  80. package/dist/modules/system/services/get-audit-log.js +1 -1
  81. package/dist/modules/system/services/get-dictionary.js +1 -1
  82. package/dist/modules/system/services/get-system-log.d.ts +9 -5
  83. package/dist/modules/system/services/get-system-log.d.ts.map +1 -1
  84. package/dist/modules/system/services/get-system-log.js +1 -1
  85. package/dist/modules/system/services/get-system-settings.js +1 -1
  86. package/dist/modules/system/services/list-dictionaries.js +1 -1
  87. package/dist/modules/system/services/set-access.d.ts +16 -0
  88. package/dist/modules/system/services/set-access.d.ts.map +1 -0
  89. package/dist/modules/system/services/set-access.js +1 -0
  90. package/dist/modules/system/services/update-dictionary.d.ts +13 -0
  91. package/dist/modules/system/services/update-dictionary.d.ts.map +1 -0
  92. package/dist/modules/system/services/update-dictionary.js +1 -0
  93. package/dist/modules/system/services/update-system-settings.js +1 -1
  94. package/dist/modules/utils/require-admin.js +1 -1
  95. package/dist/modules/utils/safe-user.js +1 -1
  96. package/dist/modules/utils/unsupported.js +1 -1
  97. package/dist/plugins/audit/audit.js +1 -1
  98. package/dist/plugins/audit/index.js +1 -1
  99. package/dist/plugins/audit/services/write-audit.js +1 -1
  100. package/dist/plugins/auth/get-user-permissions.d.ts +3 -0
  101. package/dist/plugins/auth/get-user-permissions.d.ts.map +1 -0
  102. package/dist/plugins/auth/get-user-permissions.js +1 -0
  103. package/dist/plugins/auth/index.d.ts +4 -0
  104. package/dist/plugins/auth/index.d.ts.map +1 -1
  105. package/dist/plugins/auth/index.js +1 -1
  106. package/dist/plugins/auth/verifyUser.d.ts +9 -0
  107. package/dist/plugins/auth/verifyUser.d.ts.map +1 -0
  108. package/dist/plugins/auth/verifyUser.js +1 -0
  109. package/dist/plugins/dictionary.js +1 -1
  110. package/dist/plugins/file.js +1 -1
  111. package/dist/plugins/index.d.ts +1 -0
  112. package/dist/plugins/index.d.ts.map +1 -1
  113. package/dist/plugins/index.js +1 -1
  114. package/dist/plugins/logger/index.js +1 -1
  115. package/dist/plugins/logger/transport.js +1 -1
  116. package/dist/plugins/pg.js +1 -1
  117. package/dist/plugins/redis.js +1 -1
  118. package/dist/plugins/resource/index.js +1 -1
  119. package/dist/plugins/resource/resource.d.ts.map +1 -1
  120. package/dist/plugins/resource/resource.js +1 -1
  121. package/dist/plugins/resource/resource.registry.js +1 -1
  122. package/dist/plugins/resource/resource.types.d.ts +23 -0
  123. package/dist/plugins/resource/resource.types.d.ts.map +1 -1
  124. package/dist/plugins/resource/services/create-relation.d.ts +13 -0
  125. package/dist/plugins/resource/services/create-relation.d.ts.map +1 -0
  126. package/dist/plugins/resource/services/create-relation.js +1 -0
  127. package/dist/plugins/resource/services/create.js +1 -1
  128. package/dist/plugins/resource/services/delete-relation.d.ts +15 -0
  129. package/dist/plugins/resource/services/delete-relation.d.ts.map +1 -0
  130. package/dist/plugins/resource/services/delete-relation.js +1 -0
  131. package/dist/plugins/resource/services/delete.js +1 -1
  132. package/dist/plugins/resource/services/find-one.js +1 -1
  133. package/dist/plugins/resource/services/find-relation.d.ts +12 -0
  134. package/dist/plugins/resource/services/find-relation.d.ts.map +1 -0
  135. package/dist/plugins/resource/services/find-relation.js +1 -0
  136. package/dist/plugins/resource/services/find.js +1 -1
  137. package/dist/plugins/resource/services/update.js +1 -1
  138. package/dist/plugins/resource/utils/fields.js +1 -1
  139. package/dist/plugins/resource/utils/filters.js +1 -1
  140. package/dist/plugins/resource/utils/permissions.js +1 -1
  141. package/dist/plugins/resource/utils/sort.js +1 -1
  142. package/dist/plugins/resource/utils/sql.js +1 -1
  143. package/dist/shared/getIP.js +1 -1
  144. package/dist/type.d.ts +14 -0
  145. package/dist/type.d.ts.map +1 -1
  146. package/migrations/20260903120000_core_schema.sql +22 -19
  147. package/migrations/20260903130000_move_notes_files_to_admin.sql +17 -17
  148. package/migrations/20260903140000_settings_nulls_not_distinct.sql +18 -18
  149. package/migrations/20260905120000_add_user_foreign_keys.sql +43 -0
  150. package/package.json +10 -5
  151. package/dist/modules/auth/index.d.ts +0 -9
  152. package/dist/modules/auth/index.d.ts.map +0 -1
  153. package/dist/modules/auth/index.js +0 -1
  154. package/dist/modules/auth/services/login.d.ts +0 -10
  155. package/dist/modules/auth/services/login.d.ts.map +0 -1
  156. package/dist/modules/auth/services/login.js +0 -1
  157. package/dist/modules/auth/services/logout.d.ts +0 -9
  158. package/dist/modules/auth/services/logout.d.ts.map +0 -1
  159. package/dist/modules/auth/services/logout.js +0 -1
  160. package/dist/modules/auth/services/verifyPassword.d.ts +0 -11
  161. package/dist/modules/auth/services/verifyPassword.d.ts.map +0 -1
  162. package/dist/modules/auth/services/verifyPassword.js +0 -1
  163. package/dist/modules/file/index.d.ts +0 -8
  164. package/dist/modules/file/index.d.ts.map +0 -1
  165. package/dist/modules/file/index.js +0 -1
  166. package/dist/modules/resource/index.d.ts +0 -20
  167. package/dist/modules/resource/index.d.ts.map +0 -1
  168. package/dist/modules/resource/index.js +0 -1
  169. package/dist/modules/resource/services/list-children.d.ts +0 -6
  170. package/dist/modules/resource/services/list-children.d.ts.map +0 -1
  171. package/dist/modules/resource/services/list-children.js +0 -1
  172. package/dist/modules/system/index.d.ts +0 -13
  173. package/dist/modules/system/index.d.ts.map +0 -1
  174. package/dist/modules/system/index.js +0 -1
  175. package/dist/modules/utils/get-user-permissions.d.ts +0 -3
  176. package/dist/modules/utils/get-user-permissions.d.ts.map +0 -1
  177. package/dist/modules/utils/get-user-permissions.js +0 -1
@@ -1 +1 @@
1
- function _0x2e57(_0x501416,_0x2dc21f){_0x501416=_0x501416-0xcc;const _0x5cf27b=_0x5cf2();let _0x2e57e6=_0x5cf27b[_0x501416];return _0x2e57e6;}(function(_0x1b14c9,_0x74cf81){const _0x112b22=_0x2e57,_0xa4233a=_0x1b14c9();while(!![]){try{const _0x5de030=-parseInt(_0x112b22(0xd1))/0x1*(-parseInt(_0x112b22(0xd5))/0x2)+parseInt(_0x112b22(0xd0))/0x3*(parseInt(_0x112b22(0xd4))/0x4)+parseInt(_0x112b22(0xce))/0x5*(parseInt(_0x112b22(0xcc))/0x6)+-parseInt(_0x112b22(0xcd))/0x7+parseInt(_0x112b22(0xd2))/0x8+parseInt(_0x112b22(0xcf))/0x9+-parseInt(_0x112b22(0xd3))/0xa;if(_0x5de030===_0x74cf81)break;else _0xa4233a['push'](_0xa4233a['shift']());}catch(_0x10cd69){_0xa4233a['push'](_0xa4233a['shift']());}}}(_0x5cf2,0xd5fea));import _0x31948f from'pg';const {Pool}=_0x31948f;function _0x5cf2(){const _0x2baef1=['9113853XQFpcI','87005kQYDsx','934128MxLxMu','129BMhrLG','1ncwkWx','8615656Uikxat','17069050VGBFqh','78740HiqVRL','3194374mOxndf','90IhCHdI'];_0x5cf2=function(){return _0x2baef1;};return _0x5cf2();}export function createDatabase(_0x5b0a9d){return new Pool(_0x5b0a9d);}
1
+ import r from'pg';const {Pool}=r;export function createDatabase(u){return new Pool(u);}
@@ -1 +1 @@
1
- function _0x2527(_0x1b252f,_0x59b2cd){_0x1b252f=_0x1b252f-0x130;const _0x2af34f=_0x2af3();let _0x25279a=_0x2af34f[_0x1b252f];return _0x25279a;}(function(_0x16be1b,_0x1272ab){const _0x490627=_0x2527,_0x258d89=_0x16be1b();while(!![]){try{const _0xd1bfbc=parseInt(_0x490627(0x135))/0x1+-parseInt(_0x490627(0x131))/0x2*(-parseInt(_0x490627(0x13e))/0x3)+parseInt(_0x490627(0x141))/0x4+parseInt(_0x490627(0x130))/0x5*(-parseInt(_0x490627(0x132))/0x6)+-parseInt(_0x490627(0x138))/0x7+-parseInt(_0x490627(0x136))/0x8*(parseInt(_0x490627(0x139))/0x9)+-parseInt(_0x490627(0x13d))/0xa*(-parseInt(_0x490627(0x13b))/0xb);if(_0xd1bfbc===_0x1272ab)break;else _0x258d89['push'](_0x258d89['shift']());}catch(_0x1a5d15){_0x258d89['push'](_0x258d89['shift']());}}}(_0x2af3,0xca761));import{Redis}from'ioredis';export function createRedis(_0x40df51){const _0x182009=_0x2527,_0x547c03={};_0x547c03[_0x182009(0x140)]=function(_0x5df714,_0x20b020){return _0x5df714===_0x20b020;},_0x547c03[_0x182009(0x13f)]=_0x182009(0x133);const _0x40a5e5=_0x547c03,_0x324931=new Redis(_0x40df51);return{'get':_0x1862bb=>_0x324931[_0x182009(0x134)](_0x1862bb),'set':(_0x5db189,_0x57cbf5,_0x25b104,_0x36d568)=>{const _0x48d8aa=_0x182009;if(_0x36d568)return _0x324931[_0x48d8aa(0x13a)](_0x5db189,_0x57cbf5,'EX',_0x36d568);if(_0x40a5e5[_0x48d8aa(0x140)](typeof _0x25b104,_0x40a5e5[_0x48d8aa(0x13f)]))return _0x324931[_0x48d8aa(0x13a)](_0x5db189,_0x57cbf5,'EX',_0x25b104);return _0x324931[_0x48d8aa(0x13a)](_0x5db189,_0x57cbf5);},'del':_0x302390=>_0x324931[_0x182009(0x144)](_0x302390),'delete':_0xa713b1=>_0x324931[_0x182009(0x144)](_0xa713b1),'close':()=>_0x324931[_0x182009(0x142)](),'ping':()=>_0x324931[_0x182009(0x137)](),'hincrby':(_0x28a049,_0x32f455,_0x368879)=>_0x324931[_0x182009(0x143)](_0x28a049,_0x32f455,_0x368879),'incrby':(_0x11debf,_0x5db56c)=>_0x324931[_0x182009(0x13c)](_0x11debf,_0x5db56c)};}function _0x2af3(){const _0x25d454=['quit','hincrby','del','8281135PKuRaI','4ohyKTK','6weyaLJ','number','get','216997rbUmsV','808YwbXLz','ping','5213180tXBSLI','114327uTtCoa','set','83094badhPu','incrby','3010rEUOnv','2168349OpJmHW','zAIpO','IwRIC','2307736Jjgwgp'];_0x2af3=function(){return _0x25d454;};return _0x2af3();}
1
+ function T(r,u){r=r-0x138;const G=H();let o=G[r];return o;}import{Redis}from'ioredis';function H(){const p=['get','number','del'];H=function(){return p;};return H();}export function createRedis(r){const a=T,u=new Redis(r);return{'get':G=>u[a(0x138)](G),'set':(G,o,X,w)=>{const q=a;if(w)return u['set'](G,o,'EX',w);if(typeof X===q(0x139))return u['set'](G,o,'EX',X);return u['set'](G,o);},'del':G=>u[a(0x13a)](G),'delete':G=>u['del'](G),'close':()=>u['quit'](),'ping':()=>u['ping'](),'hincrby':(G,o,X)=>u['hincrby'](G,o,X),'incrby':(G,o)=>u['incrby'](G,o)};}
@@ -1 +1 @@
1
- (function(_0x594448,_0x2ff071){var _0x29fb04=_0x4f23,_0x52db87=_0x594448();while(!![]){try{var _0x4103d4=-parseInt(_0x29fb04(0x126))/0x1*(parseInt(_0x29fb04(0x11e))/0x2)+-parseInt(_0x29fb04(0x123))/0x3+parseInt(_0x29fb04(0x121))/0x4+parseInt(_0x29fb04(0x11f))/0x5*(-parseInt(_0x29fb04(0x11d))/0x6)+parseInt(_0x29fb04(0x122))/0x7*(parseInt(_0x29fb04(0x11c))/0x8)+parseInt(_0x29fb04(0x120))/0x9*(-parseInt(_0x29fb04(0x125))/0xa)+parseInt(_0x29fb04(0x124))/0xb*(parseInt(_0x29fb04(0x11b))/0xc);if(_0x4103d4===_0x2ff071)break;else _0x52db87['push'](_0x52db87['shift']());}catch(_0x2607d1){_0x52db87['push'](_0x52db87['shift']());}}}(_0x3409,0x39fcf));export*from'./resource.types.js';function _0x3409(){var _0x274670=['263355iuDEuX','3542463nEAiGK','737932ujzdfY','105CIuMfg','803022OLvMvT','99jdYJgI','10KFRNFN','4265ihoXvl','1255056OxPgFk','126312sqFXcr','30buDtCV','94NSIjwN'];_0x3409=function(){return _0x274670;};return _0x3409();}function _0x4f23(_0x2840bc,_0x3201d8){_0x2840bc=_0x2840bc-0x11b;var _0x340913=_0x3409();var _0x4f2391=_0x340913[_0x2840bc];return _0x4f2391;}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;AAShF,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,cAAc,CAyBzE"}
@@ -1 +1 @@
1
- (function(_0x55e84e,_0x3cf11e){const _0x48c4f5=_0xc22d,_0x27ac4f=_0x55e84e();while(!![]){try{const _0x422b60=-parseInt(_0x48c4f5(0x6e))/0x1+parseInt(_0x48c4f5(0x7f))/0x2*(-parseInt(_0x48c4f5(0x73))/0x3)+-parseInt(_0x48c4f5(0x7c))/0x4*(parseInt(_0x48c4f5(0x71))/0x5)+parseInt(_0x48c4f5(0x7a))/0x6*(-parseInt(_0x48c4f5(0x7b))/0x7)+parseInt(_0x48c4f5(0x70))/0x8*(parseInt(_0x48c4f5(0x6f))/0x9)+-parseInt(_0x48c4f5(0x74))/0xa+parseInt(_0x48c4f5(0x7d))/0xb;if(_0x422b60===_0x3cf11e)break;else _0x27ac4f['push'](_0x27ac4f['shift']());}catch(_0x381759){_0x27ac4f['push'](_0x27ac4f['shift']());}}}(_0xb264,0x3b6c3));import{ResourceRegistry}from'./resource.registry.js';function _0xc22d(_0x5693bd,_0x1e878e){_0x5693bd=_0x5693bd-0x6e;const _0xb2644=_0xb264();let _0xc22dc1=_0xb2644[_0x5693bd];return _0xc22dc1;}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';export function createResource(_0x223d24){const _0x35e689=_0xc22d,_0x56630d={'kmPTG':function(_0x182fea,_0x4423e1,_0x5baa91){return _0x182fea(_0x4423e1,_0x5baa91);},'yDLEk':function(_0x4fb604,_0x1e5bed,_0x4219d7){return _0x4fb604(_0x1e5bed,_0x4219d7);}},_0x5301ce=new ResourceRegistry(),_0x51f9f7=createFind(_0x223d24,_0x5301ce),_0xb71511=createFindOne(_0x223d24,_0x5301ce),_0x813d=createCreate(_0x223d24,_0x5301ce),_0xd6bb8a=_0x56630d[_0x35e689(0x75)](createUpdate,_0x223d24,_0x5301ce),_0x69b2d6=_0x56630d[_0x35e689(0x7e)](createRemove,_0x223d24,_0x5301ce);return{'register':_0x5301ce[_0x35e689(0x79)][_0x35e689(0x72)](_0x5301ce),'has':_0x5301ce[_0x35e689(0x78)][_0x35e689(0x72)](_0x5301ce),'get':_0x5301ce[_0x35e689(0x76)][_0x35e689(0x72)](_0x5301ce),'list':_0x5301ce[_0x35e689(0x77)][_0x35e689(0x72)](_0x5301ce),'find':_0x51f9f7,'findOne':_0xb71511,'create':_0x813d,'update':_0xd6bb8a,'delete':_0x69b2d6};}function _0xb264(){const _0x5d2294=['yDLEk','523766kKjtjp','224155PznWSG','68301khNtqq','104IxtrOC','1990060VDrSon','bind','3BMelmF','2970480PsNyhM','kmPTG','get','list','has','register','204150IfVEyv','7TskpaC','4QZkzEA','14958471nYOSHN'];_0xb264=function(){return _0x5d2294;};return _0xb264();}
1
+ import{ResourceRegistry}from'./resource.registry.js';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';function H(){const Y=['register','has','bind'];H=function(){return Y;};return H();}import{createCreateRelation}from'./services/create-relation.js';function T(r,u){r=r-0x91;const G=H();let o=G[r];return o;}import{createDeleteRelation}from'./services/delete-relation.js';export function createResource(r){const E=T,u=new ResourceRegistry(),G=createFind(r,u),o=createFindOne(r,u),X=createCreate(r,u),w=createUpdate(r,u),a=createRemove(r,u),q=createFindRelation(r,u),p=createCreateRelation(r,u),F=createDeleteRelation(r,u);return{'register':u[E(0x91)]['bind'](u),'has':u[E(0x92)][E(0x93)](u),'get':u['get'][E(0x93)](u),'list':u['list'][E(0x93)](u),'find':G,'findOne':o,'create':X,'update':w,'delete':a,'findRelation':q,'createRelation':p,'deleteRelation':F};}
@@ -1 +1 @@
1
- const _0xeaf67f=_0x56b0;(function(_0x4bd13f,_0x1a9a5d){const _0x230070=_0x56b0,_0x259cfd=_0x4bd13f();while(!![]){try{const _0x33ee67=-parseInt(_0x230070(0x180))/0x1*(parseInt(_0x230070(0x18e))/0x2)+-parseInt(_0x230070(0x181))/0x3*(parseInt(_0x230070(0x19d))/0x4)+-parseInt(_0x230070(0x17c))/0x5+parseInt(_0x230070(0x19f))/0x6+-parseInt(_0x230070(0x187))/0x7+-parseInt(_0x230070(0x19b))/0x8+parseInt(_0x230070(0x17f))/0x9*(parseInt(_0x230070(0x190))/0xa);if(_0x33ee67===_0x1a9a5d)break;else _0x259cfd['push'](_0x259cfd['shift']());}catch(_0x4929bd){_0x259cfd['push'](_0x259cfd['shift']());}}}(_0x5b28,0xb4e0e));import{ValidationError,ConflictError,NotFoundError}from'../../errors.js';const ident=/^[a-zA-Z0-9_-]*$/;function _0x56b0(_0x5213e3,_0x1380b2){_0x5213e3=_0x5213e3-0x17c;const _0x5b28a6=_0x5b28();let _0x56b093=_0x5b28a6[_0x5213e3];return _0x56b093;}function _0x5b28(){const _0x3ff936=['FYGiS','2073030mLKWoz','version','resources','2569735ZWPPho','IvjUo','BpOqT','659853bOByjh','789323jjJepA','9BVAAdM','register','entries','values','every','validate','5797638OMyqcq','list','test','Invalid\x20resource\x20contract:\x20','has','set','table','2QxvCwC','split','430RiebpU','name','Resource\x20not\x20registered:\x20','Invalid\x20resource\x20field:\x20','get','isArray','key','Resource\x20already\x20registered:\x20','length','fields','nuRCP','4938760QUEsnc','column','11212ydioBK'];_0x5b28=function(){return _0x3ff936;};return _0x5b28();}function validQualified(_0x33ccb5){const _0x5073d6=_0x56b0;return _0x33ccb5[_0x5073d6(0x18f)]('.')[_0x5073d6(0x198)]<=0x2&&_0x33ccb5[_0x5073d6(0x18f)]('.')[_0x5073d6(0x185)](_0x80f6e2=>ident[_0x5073d6(0x189)](_0x80f6e2));}export class ResourceRegistry{[_0xeaf67f(0x1a1)]=new Map();[_0xeaf67f(0x182)](_0x35c353){const _0x1e02d3=_0xeaf67f,_0x5819e4={};_0x5819e4[_0x1e02d3(0x19a)]=function(_0x3b7df3,_0x7b00ac){return _0x3b7df3===_0x7b00ac;},_0x5819e4[_0x1e02d3(0x17d)]=_0x1e02d3(0x17e);const _0x4013b1=_0x5819e4;for(const _0x1c0a94 of Array[_0x1e02d3(0x195)](_0x35c353)?_0x35c353:[_0x35c353]){if(_0x4013b1[_0x1e02d3(0x19a)](_0x4013b1[_0x1e02d3(0x17d)],_0x4013b1[_0x1e02d3(0x17d)])){this[_0x1e02d3(0x186)](_0x1c0a94);if(this[_0x1e02d3(0x1a1)][_0x1e02d3(0x18b)](_0x1c0a94[_0x1e02d3(0x191)]))throw new ConflictError(_0x1e02d3(0x197)+_0x1c0a94[_0x1e02d3(0x191)]);this[_0x1e02d3(0x1a1)][_0x1e02d3(0x18c)](_0x1c0a94[_0x1e02d3(0x191)],_0x1c0a94);}else return[...this[_0x1e02d3(0x1a1)][_0x1e02d3(0x184)]()];}}[_0xeaf67f(0x18b)](_0x52d3f8){const _0x249c2a=_0xeaf67f;return this[_0x249c2a(0x1a1)][_0x249c2a(0x18b)](_0x52d3f8);}[_0xeaf67f(0x194)](_0x1a0a08){const _0x4f2f08=_0xeaf67f,_0xbfd3de=this[_0x4f2f08(0x1a1)][_0x4f2f08(0x194)](_0x1a0a08);if(!_0xbfd3de)throw new NotFoundError(_0x4f2f08(0x192)+_0x1a0a08);return _0xbfd3de;}[_0xeaf67f(0x188)](){const _0xe0f2a9=_0xeaf67f;return[...this[_0xe0f2a9(0x1a1)][_0xe0f2a9(0x184)]()];}[_0xeaf67f(0x186)](_0x27f552){const _0x26f625=_0xeaf67f,_0x461bb3={};_0x461bb3[_0x26f625(0x19e)]=function(_0x5ec816,_0x330bde){return _0x5ec816!==_0x330bde;};const _0x5ba81c=_0x461bb3;if(_0x5ba81c[_0x26f625(0x19e)](_0x27f552[_0x26f625(0x1a0)],0x1)||!ident[_0x26f625(0x189)](_0x27f552[_0x26f625(0x191)])||!validQualified(_0x27f552[_0x26f625(0x18d)])||!ident[_0x26f625(0x189)](_0x27f552[_0x26f625(0x196)]))throw new ValidationError(_0x26f625(0x18a)+_0x27f552[_0x26f625(0x191)]);for(const [_0x5d6bfe,_0xf3a0d0]of Object[_0x26f625(0x183)](_0x27f552[_0x26f625(0x199)])){if(!ident[_0x26f625(0x189)](_0x5d6bfe)||!ident[_0x26f625(0x189)](_0xf3a0d0[_0x26f625(0x19c)]??_0x5d6bfe))throw new ValidationError(_0x26f625(0x193)+_0x5d6bfe);}}}
1
+ function H(){const p=['length','validate','name','resources','has','get','Resource\x20not\x20registered:\x20','test','Invalid\x20resource\x20contract:\x20','fields','Invalid\x20resource\x20field:\x20'];H=function(){return p;};return H();}function T(r,u){r=r-0x1ca;const G=H();let o=G[r];return o;}import{ValidationError,ConflictError,NotFoundError}from'../../errors.js';const ident=/^[a-zA-Z0-9_-]*$/;function validQualified(r){const o=T;return r['split']('.')[o(0x1ca)]<=0x2&&r['split']('.')['every'](u=>ident['test'](u));}export class ResourceRegistry{['resources']=new Map();['register'](r){const X=T;for(const u of Array['isArray'](r)?r:[r]){this[X(0x1cb)](u);if(this['resources']['has'](u['name']))throw new ConflictError('Resource\x20already\x20registered:\x20'+u[X(0x1cc)]);this[X(0x1cd)]['set'](u['name'],u);}}['has'](r){const w=T;return this['resources'][w(0x1ce)](r);}['get'](r){const a=T,u=this[a(0x1cd)][a(0x1cf)](r);if(!u)throw new NotFoundError(a(0x1d0)+r);return u;}['list'](){return[...this['resources']['values']()];}['validate'](r){const q=T;if(r['version']!==0x1||!ident[q(0x1d1)](r['name'])||!validQualified(r['table'])||!ident['test'](r['key']))throw new ValidationError(q(0x1d2)+r[q(0x1cc)]);for(const [u,G]of Object['entries'](r[q(0x1d3)])){if(!ident['test'](u)||!ident[q(0x1d1)](G['column']??u))throw new ValidationError(q(0x1d4)+u);}}}
@@ -40,6 +40,7 @@ export interface ResourceRelationContract {
40
40
  sourceField?: string;
41
41
  foreignKey?: string;
42
42
  targetField?: string;
43
+ fields?: string[];
43
44
  }
44
45
  export interface ResourceContract {
45
46
  version: 1;
@@ -108,5 +109,27 @@ export interface ResourcePlugin {
108
109
  id: string | number;
109
110
  user?: ResourceUser;
110
111
  }): Promise<boolean>;
112
+ findRelation(params: {
113
+ name: string;
114
+ id: string | number;
115
+ relation: string;
116
+ user?: ResourceUser;
117
+ }): Promise<any>;
118
+ createRelation(params: {
119
+ name: string;
120
+ id: string | number;
121
+ relation: string;
122
+ data?: Record<string, unknown>;
123
+ user?: ResourceUser;
124
+ }): Promise<any>;
125
+ deleteRelation(params: {
126
+ name: string;
127
+ id: string | number;
128
+ relation: string;
129
+ relationId: string;
130
+ user?: ResourceUser;
131
+ }): Promise<{
132
+ success: boolean;
133
+ }>;
111
134
  }
112
135
  //# 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":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACxE,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EACD,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,MAAM,GACN,MAAM,GACN,MAAM,GACN,WAAW,GACX,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACpD,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CACtC;AACD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AACD,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC;AAChC,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAC7D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACpC,IAAI,IAAI,gBAAgB,EAAE,CAAC;IAE3B,IAAI,CAAC,MAAM,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,IAAI,CAAC,EAAE,YAAY,CAAC;KACrB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChC,OAAO,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,YAAY,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,MAAM,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,MAAM,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,MAAM,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,YAAY,CAAC;KACrB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtB"}
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,13 @@
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
+ export declare function createCreateRelation(deps: ResourceDependencies, registry: ResourceRegistry): ({ name, id, relation, data, user, }: {
7
+ name: string;
8
+ id: string | number;
9
+ relation: string;
10
+ data?: Record<string, unknown>;
11
+ user?: ResourceUser;
12
+ }) => Promise<any>;
13
+ //# 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;AAKhE,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,gBAAgB,yCAUvB;IACD,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,KAAG,OAAO,CAAC,GAAG,CAAC,CAuEjB"}
@@ -0,0 +1 @@
1
+ import{UnsupportedError,ValidationError}from'../../../errors.js';import{qi,qt}from'../utils/sql.js';function T(r,u){r=r-0x1f2;const G=H();let o=G[r];return o;}import{createCreate}from'./create.js';export function createCreateRelation(r,u){const G=createCreate(r,u);return async function o({name:X,id:w,relation:a,data:q,user:p}){const L=T;if(!r['pg'])throw new Error('empty\x20pg');if(a==='notes'){const I=await r['pg']['query']('INSERT\x20INTO\x20admin.notes(resource,resource_id,body)\x20VALUES\x20($1,$2,$3)\x20RETURNING\x20*',[X,String(w),q?.['body']]);return I['rows'][0x0];}if(a===L(0x1f2)){const c=await r['pg']['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*',[X,String(w),q?.[L(0x1f3)],q?.[L(0x1f4)]??null]);return c[L(0x1f5)][0x0];}const F=u[L(0x1f6)](X),E=F['relations']?.[a];if(!E?.[L(0x1f7)]||!E['resource']&&!E['table'])throw new UnsupportedError('Generic\x20Resource\x20relation\x20\x22'+a+'\x22\x20requires\x20a\x20project/provider\x20implementation');let Y,S;if(E[L(0x1f8)])Y=await G({'name':E['resource'],'data':q??{},'user':p}),S=Y[u['get'](E['resource'])['key']];else{const h=E[L(0x1f9)];if(!h?.[L(0x1fa)])throw new UnsupportedError('Generic\x20Resource\x20relation\x20\x22'+a+L(0x1fb));const P=Object['entries'](q??{})[L(0x1fc)](([j])=>h['includes'](j));if(!P['length'])throw new ValidationError(L(0x1fd));const l=P['map'](([j])=>qi(j)),Q=P['map']((j,B)=>'$'+(B+0x1)),J=P[L(0x1fe)](([,j])=>j),O=await r['pg']['query']('INSERT\x20INTO\x20'+qt(E['table'])+'\x20('+l['join'](',\x20')+L(0x1ff)+Q['join'](',\x20')+')\x20RETURNING\x20*',J);Y=O['rows'][0x0],S=Y['id'];}return await r['pg']['query']('UPDATE\x20'+qt(F['table'])+L(0x200)+qi(E[L(0x1f7)])+'\x20=\x20$1\x20WHERE\x20'+qi(F['key'])+L(0x201),[S,w]),Y;};}function H(){const b=['files','filePath','size','rows','get','foreignKey','resource','fields','length','\x22\x20requires\x20a\x20project/provider\x20implementation','filter','No\x20writable\x20fields','map',')\x20VALUES\x20(','\x20SET\x20','\x20=\x20$2'];H=function(){return b;};return H();}
@@ -1 +1 @@
1
- (function(_0x4b46f2,_0x28cb88){const _0x58f83d=_0x16b1,_0x453b1e=_0x4b46f2();while(!![]){try{const _0x446595=parseInt(_0x58f83d(0x1a6))/0x1*(parseInt(_0x58f83d(0x1a3))/0x2)+parseInt(_0x58f83d(0x193))/0x3*(parseInt(_0x58f83d(0x18f))/0x4)+parseInt(_0x58f83d(0x19f))/0x5+parseInt(_0x58f83d(0x198))/0x6+parseInt(_0x58f83d(0x188))/0x7*(-parseInt(_0x58f83d(0x189))/0x8)+-parseInt(_0x58f83d(0x197))/0x9+parseInt(_0x58f83d(0x18c))/0xa;if(_0x446595===_0x28cb88)break;else _0x453b1e['push'](_0x453b1e['shift']());}catch(_0x331789){_0x453b1e['push'](_0x453b1e['shift']());}}}(_0x6b3c,0xc38d6));import{ValidationError}from'../../../errors.js';import{assertOperation}from'../utils/permissions.js';import{qi,qt,readableFields,writableData}from'../utils/sql.js';function _0x6b3c(){const _0x366c93=['key','length','29234wpGbnD','write','data','18cfRuAx','get','table','keys','audit','create','990605SBuvlH','80EZtITw','tXSns','module','8141370qYAqTb','empty\x20pg','join','3854868iIvtif','SuHhF','map','name','3rRRWic','RETURNING\x20','VALUES\x20(','No\x20writable\x20fields','14308407sbJJXu','7895406LrQcgS','query','rows','IUKbL','djsDT','resource','CFFoV','2245470rhHTEx','INSERT\x20INTO\x20'];_0x6b3c=function(){return _0x366c93;};return _0x6b3c();}import{validateInputData}from'../utils/fields.js';function _0x16b1(_0x30423e,_0x431cd4){_0x30423e=_0x30423e-0x185;const _0x6b3c1f=_0x6b3c();let _0x16b123=_0x6b3c1f[_0x30423e];return _0x16b123;}export function createCreate(_0x3d53a4,_0x5790ab){const _0x44b65a=_0x16b1,_0x379c98={'djsDT':function(_0x27b334,_0x27092b,_0x35df69,_0x8a4214){return _0x27b334(_0x27092b,_0x35df69,_0x8a4214);},'CFFoV':_0x44b65a(0x187),'IUKbL':function(_0x599514,_0x7de2b0,_0x360f4a){return _0x599514(_0x7de2b0,_0x360f4a);},'SuHhF':function(_0x565d04,_0x411d25){return _0x565d04+_0x411d25;},'tXSns':function(_0x494d00,_0x519f61){return _0x494d00(_0x519f61);}};return async function _0x4de19e({name:_0x477812,data:_0x489d4f,user:_0x5128bf}){const _0x38fedc=_0x44b65a,_0x536948=_0x5790ab[_0x38fedc(0x1a7)](_0x477812);_0x379c98[_0x38fedc(0x19c)](assertOperation,_0x536948,_0x379c98[_0x38fedc(0x19e)],_0x5128bf);const _0x7cfac0={};_0x7cfac0[_0x38fedc(0x19d)]=_0x536948,_0x7cfac0[_0x38fedc(0x1a5)]=_0x489d4f,validateInputData(_0x7cfac0);const _0x40f938=_0x379c98[_0x38fedc(0x19b)](writableData,_0x536948,_0x489d4f);if(!_0x40f938[_0x38fedc(0x1a2)])throw new ValidationError(_0x38fedc(0x196));const _0x4b421c=_0x40f938[_0x38fedc(0x191)](([_0x503333])=>qi(_0x503333)),_0x582d02=_0x40f938[_0x38fedc(0x191)]((_0x43494b,_0x2cb39b)=>'$'+(_0x2cb39b+0x1)),_0x30c978=_0x40f938[_0x38fedc(0x191)](([,_0x46622c])=>_0x46622c);if(!_0x3d53a4['pg'])throw new Error(_0x38fedc(0x18d));const _0x11a8aa=await _0x3d53a4['pg'][_0x38fedc(0x199)](_0x379c98[_0x38fedc(0x190)](_0x379c98[_0x38fedc(0x190)](_0x38fedc(0x1a0)+qt(_0x536948[_0x38fedc(0x1a8)])+'\x20('+_0x4b421c[_0x38fedc(0x18e)](',\x20')+')\x20',_0x38fedc(0x195)+_0x582d02[_0x38fedc(0x18e)](',\x20')+')\x20'),_0x38fedc(0x194)+_0x379c98[_0x38fedc(0x18a)](readableFields,_0x536948)[_0x38fedc(0x18e)](',\x20')),_0x30c978),_0x431594=_0x11a8aa[_0x38fedc(0x19a)][0x0];return await _0x3d53a4[_0x38fedc(0x186)]?.[_0x38fedc(0x1a4)]({'userId':_0x5128bf?.['id'],'module':_0x536948[_0x38fedc(0x18b)],'resource':_0x536948[_0x38fedc(0x192)],'resourceId':_0x431594[_0x536948[_0x38fedc(0x1a1)]],'action':_0x379c98[_0x38fedc(0x19e)],'fields':Object[_0x38fedc(0x185)](_0x489d4f)}),_0x431594;};}
1
+ import{ValidationError}from'../../../errors.js';import{assertOperation}from'../utils/permissions.js';function H(){const P=['map','query','INSERT\x20INTO\x20','VALUES\x20(','audit','keys'];H=function(){return P;};return H();}import{qi,qt,readableFields,writableData}from'../utils/sql.js';function T(r,u){r=r-0x1e0;const G=H();let o=G[r];return o;}import{validateInputData}from'../utils/fields.js';export function createCreate(r,u){return async function G({name:o,data:X,user:w}){const h=T,a=u['get'](o);assertOperation(a,'create',w),validateInputData({'resource':a,'data':X});const q=writableData(a,X);if(!q['length'])throw new ValidationError('No\x20writable\x20fields');const p=q[h(0x1e0)](([I])=>qi(I)),F=q[h(0x1e0)]((I,c)=>'$'+(c+0x1)),E=q['map'](([,I])=>I);if(!r['pg'])throw new Error('empty\x20pg');const Y=await r['pg'][h(0x1e1)](h(0x1e2)+qt(a['table'])+'\x20('+p['join'](',\x20')+')\x20'+(h(0x1e3)+F['join'](',\x20')+')\x20')+('RETURNING\x20'+readableFields(a)['join'](',\x20')),E),S=Y['rows'][0x0];return await r[h(0x1e4)]?.['write']({'userId':w?.['id'],'module':a['module'],'resource':a['name'],'resourceId':S[a['key']],'action':'create','fields':Object[h(0x1e5)](X)}),S;};}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Implements the delete 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
+ export declare function createDeleteRelation(deps: ResourceDependencies, registry: ResourceRegistry): ({ name, id, relation, relationId, }: {
7
+ name: string;
8
+ id: string | number;
9
+ relation: string;
10
+ relationId: string;
11
+ user?: ResourceUser;
12
+ }) => Promise<{
13
+ success: boolean;
14
+ }>;
15
+ //# sourceMappingURL=delete-relation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-relation.d.ts","sourceRoot":"","sources":["../../../../src/plugins/resource/services/delete-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;AAGhE,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,gBAAgB,yCAOvB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAyBlC"}
@@ -0,0 +1 @@
1
+ function T(r,u){r=r-0x9c;var G=H();var o=G[r];return o;}import{UnsupportedError}from'../../../errors.js';function H(){var p=['empty\x20pg','query','DELETE\x20FROM\x20admin.notes\x20WHERE\x20note_id\x20=\x20$1\x20AND\x20resource\x20=\x20$2\x20AND\x20resource_id\x20=\x20$3','DELETE\x20FROM\x20admin.files\x20WHERE\x20file_id\x20=\x20$1\x20AND\x20resource\x20=\x20$2\x20AND\x20resource_id\x20=\x20$3'];H=function(){return p;};return H();}export function createDeleteRelation(r,u){return async function G({name:o,id:X,relation:w,relationId:a}){var q=T;if(!r['pg'])throw new Error(q(0x9c));if(w==='notes')return await r['pg'][q(0x9d)](q(0x9e),[a,o,String(X)]),{'success':!![]};if(w==='files')return await r['pg']['query'](q(0x9f),[a,o,String(X)]),{'success':!![]};throw new UnsupportedError('Generic\x20Resource\x20relation\x20\x22'+w+'\x22\x20requires\x20a\x20project/provider\x20implementation');};}
@@ -1 +1 @@
1
- (function(_0x14dfa4,_0x3d7a3c){const _0x1f0c27=_0xcd89,_0x846941=_0x14dfa4();while(!![]){try{const _0x4101fd=parseInt(_0x1f0c27(0x157))/0x1*(-parseInt(_0x1f0c27(0x151))/0x2)+-parseInt(_0x1f0c27(0x14b))/0x3*(-parseInt(_0x1f0c27(0x140))/0x4)+parseInt(_0x1f0c27(0x14c))/0x5*(parseInt(_0x1f0c27(0x14e))/0x6)+parseInt(_0x1f0c27(0x14d))/0x7+parseInt(_0x1f0c27(0x143))/0x8+parseInt(_0x1f0c27(0x146))/0x9*(parseInt(_0x1f0c27(0x156))/0xa)+parseInt(_0x1f0c27(0x145))/0xb*(-parseInt(_0x1f0c27(0x13c))/0xc);if(_0x4101fd===_0x3d7a3c)break;else _0x846941['push'](_0x846941['shift']());}catch(_0xa544ad){_0x846941['push'](_0x846941['shift']());}}}(_0x11c8,0xbfdd0));import{assertOperation}from'../utils/permissions.js';import{qt,qi}from'../utils/sql.js';function _0xcd89(_0x54c37c,_0x179a87){_0x54c37c=_0x54c37c-0x13a;const _0x11c8da=_0x11c8();let _0xcd89ab=_0x11c8da[_0x54c37c];return _0xcd89ab;}function _0x11c8(){const _0x4cf51c=['name','JUstJ','EAYUF','module','218028MTEpVD','\x20WHERE\x20','get','audit','1432CFZtvJ','empty\x20pg','DELETE\x20FROM\x20','1804368pDvYmR','key','1507IehSAJ','180ENhPkz','write','TgPVA','query','WzHtL','10662hJwmyS','8135PRNRNH','9324168KWHzjd','1998ERpeYf','table','delete','108ooueQt','rowCount','=$1','ePSYz','DooKN','557330AAtEVd','22432rJwMWt'];_0x11c8=function(){return _0x4cf51c;};return _0x11c8();}export function createRemove(_0x2a57c1,_0x23f55f){const _0x1ede8e=_0xcd89,_0x1c1f03={'WzHtL':function(_0x2287f7,_0x21af92,_0x13ed44,_0x2c2f8e){return _0x2287f7(_0x21af92,_0x13ed44,_0x2c2f8e);},'DooKN':_0x1ede8e(0x150),'TgPVA':_0x1ede8e(0x141),'ePSYz':function(_0x3e6e24,_0x2a87d4){return _0x3e6e24(_0x2a87d4);},'JUstJ':function(_0x459e5b,_0x5e5fe2){return _0x459e5b(_0x5e5fe2);},'EAYUF':function(_0x2d9bf5,_0x1d7cd0){return _0x2d9bf5>_0x1d7cd0;}};return async function _0x446c51({name:_0x3be409,id:_0x5ee26,user:_0x56bd03}){const _0x24c2b5=_0x1ede8e,_0x506c03=_0x23f55f[_0x24c2b5(0x13e)](_0x3be409);_0x1c1f03[_0x24c2b5(0x14a)](assertOperation,_0x506c03,_0x1c1f03[_0x24c2b5(0x155)],_0x56bd03);if(!_0x2a57c1['pg'])throw new Error(_0x1c1f03[_0x24c2b5(0x148)]);const _0x5e523f=await _0x2a57c1['pg'][_0x24c2b5(0x149)](_0x24c2b5(0x142)+_0x1c1f03[_0x24c2b5(0x154)](qt,_0x506c03[_0x24c2b5(0x14f)])+_0x24c2b5(0x13d)+_0x1c1f03[_0x24c2b5(0x159)](qi,_0x506c03[_0x24c2b5(0x144)])+_0x24c2b5(0x153),[_0x5ee26]);if(_0x1c1f03[_0x24c2b5(0x13a)](_0x5e523f[_0x24c2b5(0x152)]??0x0,0x0))await _0x2a57c1[_0x24c2b5(0x13f)]?.[_0x24c2b5(0x147)]({'module':_0x506c03[_0x24c2b5(0x13b)],'resource':_0x506c03[_0x24c2b5(0x158)],'resourceId':_0x5ee26,'action':_0x1c1f03[_0x24c2b5(0x155)]});return _0x1c1f03[_0x24c2b5(0x13a)](_0x5e523f[_0x24c2b5(0x152)]??0x0,0x0);};}
1
+ import{assertOperation}from'../utils/permissions.js';function T(r,u){r=r-0xf1;const G=H();let o=G[r];return o;}function H(){const F=['get','DELETE\x20FROM\x20','table','key','rowCount'];H=function(){return F;};return H();}import{qt,qi}from'../utils/sql.js';export function createRemove(r,u){return async function G({name:o,id:X,user:w}){const p=T,a=u[p(0xf1)](o);assertOperation(a,'delete',w);if(!r['pg'])throw new Error('empty\x20pg');const q=await r['pg']['query'](p(0xf2)+qt(a[p(0xf3)])+'\x20WHERE\x20'+qi(a[p(0xf4)])+'=$1',[X]);if((q[p(0xf5)]??0x0)>0x0)await r['audit']?.['write']({'module':a['module'],'resource':a['name'],'resourceId':X,'action':'delete'});return(q['rowCount']??0x0)>0x0;};}
@@ -1 +1 @@
1
- function _0x1f99(_0x5954c8,_0x3d3f01){_0x5954c8=_0x5954c8-0x1ea;const _0x26dd4f=_0x26dd();let _0x1f9901=_0x26dd4f[_0x5954c8];return _0x1f9901;}(function(_0x2c1ac9,_0x43d283){const _0x38fdb0=_0x1f99,_0x4fd452=_0x2c1ac9();while(!![]){try{const _0x29a5c9=-parseInt(_0x38fdb0(0x1f4))/0x1+parseInt(_0x38fdb0(0x1f7))/0x2*(-parseInt(_0x38fdb0(0x1ed))/0x3)+-parseInt(_0x38fdb0(0x1fd))/0x4+parseInt(_0x38fdb0(0x1f0))/0x5*(parseInt(_0x38fdb0(0x1f2))/0x6)+-parseInt(_0x38fdb0(0x200))/0x7*(-parseInt(_0x38fdb0(0x1f6))/0x8)+parseInt(_0x38fdb0(0x1eb))/0x9+-parseInt(_0x38fdb0(0x1ef))/0xa;if(_0x29a5c9===_0x43d283)break;else _0x4fd452['push'](_0x4fd452['shift']());}catch(_0x2df568){_0x4fd452['push'](_0x4fd452['shift']());}}}(_0x26dd,0x3d2cf));import{assertOperation}from'../utils/permissions.js';import{qt,qi,readableFields}from'../utils/sql.js';export function createFindOne(_0x1391d4,_0x629e2e){const _0xecbd22=_0x1f99,_0x3971a4={'HOCGV':function(_0xc78ab7,_0x37010b,_0x9b5a55,_0x34ade9){return _0xc78ab7(_0x37010b,_0x9b5a55,_0x34ade9);},'oNTzG':_0xecbd22(0x202),'pSjcJ':function(_0x43d8ff,_0x3f1203){return _0x43d8ff(_0x3f1203);},'svhma':function(_0xc4ea3,_0x43e416){return _0xc4ea3(_0x43e416);}};return async function _0x5ef16d({name:_0x1a4874,id:_0x382c59,user:_0x10c826}){const _0x1ae6bd=_0xecbd22,_0x20d305=_0x629e2e[_0x1ae6bd(0x1fa)](_0x1a4874);_0x3971a4[_0x1ae6bd(0x1ec)](assertOperation,_0x20d305,_0x1ae6bd(0x1ea),_0x10c826);if(!_0x1391d4['pg'])throw new Error(_0x3971a4[_0x1ae6bd(0x1f8)]);const _0x256f3f=await _0x1391d4['pg'][_0x1ae6bd(0x1f9)](_0x1ae6bd(0x201)+readableFields(_0x20d305)[_0x1ae6bd(0x1ff)](',\x20')+_0x1ae6bd(0x203)+_0x3971a4[_0x1ae6bd(0x1f5)](qt,_0x20d305[_0x1ae6bd(0x1ee)])+_0x1ae6bd(0x1f1)+_0x3971a4[_0x1ae6bd(0x1fb)](qi,_0x20d305[_0x1ae6bd(0x1f3)])+_0x1ae6bd(0x1fe),[_0x382c59]);return _0x256f3f[_0x1ae6bd(0x1fc)][0x0]??null;};}function _0x26dd(){const _0x317461=['join','406KmVGWz','SELECT\x20','empty\x20pg','\x20FROM\x20','read','4416570scgoal','HOCGV','646077RRlqUc','table','7437800krVhkb','622730MoGxlt','\x20WHERE\x20','24NbTZOV','key','217510iDjuHT','pSjcJ','61896YilsVN','2iTxnNI','oNTzG','query','get','svhma','rows','41744cBKcju','=$1\x20LIMIT\x201'];_0x26dd=function(){return _0x317461;};return _0x26dd();}
1
+ import{assertOperation}from'../utils/permissions.js';function T(r,u){r=r-0xaf;const G=H();let o=G[r];return o;}function H(){const F=['get','key','=$1\x20LIMIT\x201'];H=function(){return F;};return H();}import{qt,qi,readableFields}from'../utils/sql.js';export function createFindOne(r,u){return async function G({name:o,id:X,user:w}){const p=T,a=u[p(0xaf)](o);assertOperation(a,'read',w);if(!r['pg'])throw new Error('empty\x20pg');const q=await r['pg']['query']('SELECT\x20'+readableFields(a)['join'](',\x20')+'\x20FROM\x20'+qt(a['table'])+'\x20WHERE\x20'+qi(a[p(0xb0)])+p(0xb1),[X]);return q['rows'][0x0]??null;};}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Implements the find 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
+ export declare function createFindRelation(deps: ResourceDependencies, registry: ResourceRegistry): ({ name, id, relation, }: {
7
+ name: string;
8
+ id: string | number;
9
+ relation: string;
10
+ user?: ResourceUser;
11
+ }) => Promise<any>;
12
+ //# sourceMappingURL=find-relation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-relation.d.ts","sourceRoot":"","sources":["../../../../src/plugins/resource/services/find-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,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,gBAAgB,6BAMvB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,KAAG,OAAO,CAAC,GAAG,CAAC,CAqDjB"}
@@ -0,0 +1 @@
1
+ import{UnsupportedError}from'../../../errors.js';import{qi,qt}from'../utils/sql.js';function T(r,u){r=r-0x16a;const G=H();let o=G[r];return o;}function H(){const Q=['notes','SELECT\x20*\x20FROM\x20admin.files\x20WHERE\x20resource\x20=\x20$1\x20AND\x20resource_id\x20=\x20$2\x20ORDER\x20BY\x20created_at\x20DESC','get','\x20FROM\x20','resource','table','key','SELECT\x20'];H=function(){return Q;};return H();}export function createFindRelation(r,u){return async function G({name:o,id:X,relation:w}){const l=T;if(!r['pg'])throw new Error('empty\x20pg');if(w===l(0x16a)){const h=await r['pg']['query']('SELECT\x20*\x20FROM\x20admin.notes\x20WHERE\x20resource\x20=\x20$1\x20AND\x20resource_id\x20=\x20$2\x20ORDER\x20BY\x20created_at\x20DESC',[o,String(X)]);return h['rows'];}if(w==='files'){const P=await r['pg']['query'](l(0x16b),[o,String(X)]);return P['rows'];}const a=u[l(0x16c)](o),q=a['relations']?.[w];if(!q?.['foreignKey']||!q['resource']&&!q['table'])throw new UnsupportedError('Generic\x20Resource\x20relation\x20\x22'+w+'\x22\x20requires\x20a\x20project/provider\x20implementation');const p=await r['pg']['query']('SELECT\x20'+qi(q['foreignKey'])+l(0x16d)+qt(a['table'])+'\x20WHERE\x20'+qi(a['key'])+'\x20=\x20$1\x20LIMIT\x201',[X]),F=p['rows'][0x0]?.[q['foreignKey']];if(F==null)return null;const E=q[l(0x16e)]?u[l(0x16c)](q[l(0x16e)]):undefined,Y=q['table']??E[l(0x16f)],S=E?.[l(0x170)]??'id',I=q['fields']?.['length']?q['fields']['map'](qi)['join'](',\x20'):'*',c=await r['pg']['query'](l(0x171)+I+'\x20FROM\x20'+qt(Y)+'\x20WHERE\x20'+qi(S)+'\x20=\x20$1\x20LIMIT\x201',[F]);return{'rows':c['rows']??null};};}
@@ -1 +1 @@
1
- (function(_0x43d19e,_0x566c0a){const _0x15a0ed=_0x5bf3,_0x12b6fe=_0x43d19e();while(!![]){try{const _0x144c3b=-parseInt(_0x15a0ed(0x103))/0x1*(parseInt(_0x15a0ed(0xed))/0x2)+parseInt(_0x15a0ed(0x102))/0x3*(parseInt(_0x15a0ed(0xe2))/0x4)+parseInt(_0x15a0ed(0xef))/0x5+-parseInt(_0x15a0ed(0xe4))/0x6*(parseInt(_0x15a0ed(0xe5))/0x7)+-parseInt(_0x15a0ed(0xe0))/0x8+parseInt(_0x15a0ed(0xea))/0x9+parseInt(_0x15a0ed(0xdf))/0xa;if(_0x144c3b===_0x566c0a)break;else _0x12b6fe['push'](_0x12b6fe['shift']());}catch(_0x5dd511){_0x12b6fe['push'](_0x12b6fe['shift']());}}}(_0x24ca,0x733d4));import{ValidationError}from'../../../errors.js';import{buildFilters}from'../utils/filters.js';import{assertOperation}from'../utils/permissions.js';import{buildSort}from'../utils/sort.js';function _0x5bf3(_0x1d341c,_0xc2499){_0x1d341c=_0x1d341c-0xda;const _0x24caef=_0x24ca();let _0x5bf300=_0x24caef[_0x1d341c];return _0x5bf300;}import{qt,readableFields}from'../utils/sql.js';export function createFind(_0x448501,_0x20a181){const _0x53f2b2=_0x5bf3,_0x257f87={'nqnpo':function(_0x2dcf67,_0x5157b4,_0x5cbe12,_0x1a1b93){return _0x2dcf67(_0x5157b4,_0x5cbe12,_0x1a1b93);},'fZMiw':_0x53f2b2(0xeb),'MkiYf':function(_0x42bc88,_0x420475,_0x5dc42f){return _0x42bc88(_0x420475,_0x5dc42f);},'EXkrs':function(_0x26807e,_0x5ee4a3,_0x403432){return _0x26807e(_0x5ee4a3,_0x403432);},'wmBGH':_0x53f2b2(0xde),'AaxMY':function(_0x512a91,_0x5a8f18){return _0x512a91+_0x5a8f18;},'dJRJb':function(_0x257309,_0x1840c0){return _0x257309(_0x1840c0);},'pdLaM':function(_0x1955b3,_0x43c681){return _0x1955b3+_0x43c681;},'RyrJs':_0x53f2b2(0xfd)};return async function _0x4caaec({name:_0x19faba,query:query={},user:_0x294622}){const _0x37814c=_0x53f2b2,_0x495a55=Date[_0x37814c(0xdb)](),_0xb0f020=_0x20a181[_0x37814c(0xf1)](_0x19faba);_0x257f87[_0x37814c(0xda)](assertOperation,_0xb0f020,_0x257f87[_0x37814c(0xfa)],_0x294622);const _0xaccb70=Math[_0x37814c(0xfe)](Math[_0x37814c(0xe8)](query[_0x37814c(0xf5)]??0x14,0x1),0xc8),_0xfd20f0=Math[_0x37814c(0xe8)](query[_0x37814c(0xe1)]??0x0,0x0),_0x3a93fc=_0x257f87[_0x37814c(0x100)](buildFilters,_0xb0f020,query[_0x37814c(0xe7)]),_0x5f289f=_0x257f87[_0x37814c(0xe6)](buildSort,_0xb0f020,query[_0x37814c(0xf0)]);if(!Number[_0x37814c(0xdd)](_0xaccb70)||!Number[_0x37814c(0xdd)](_0xfd20f0))throw new ValidationError(_0x257f87[_0x37814c(0xdc)]);const _0x2f1066=_0x257f87[_0x37814c(0xe3)](_0x257f87[_0x37814c(0xe3)](_0x37814c(0xf3)+readableFields(_0xb0f020)[_0x37814c(0xf6)](',\x20')+'\x20',_0x37814c(0xff)+_0x257f87[_0x37814c(0xee)](qt,_0xb0f020[_0x37814c(0x101)]))+(''+_0x3a93fc[_0x37814c(0xfc)]+_0x5f289f+'\x20')+(_0x37814c(0x104)+(_0x3a93fc[_0x37814c(0xfb)][_0x37814c(0xf8)]+0x1)+'\x20'),_0x37814c(0xf9)+_0x257f87[_0x37814c(0xec)](_0x3a93fc[_0x37814c(0xfb)][_0x37814c(0xf8)],0x2));if(!_0x448501['pg'])throw new Error(_0x257f87[_0x37814c(0xf4)]);const _0x5c7d34=await _0x448501['pg'][_0x37814c(0xf7)](_0x2f1066,[..._0x3a93fc[_0x37814c(0xfb)],_0xaccb70,_0xfd20f0]);return{'limit':_0xaccb70,'offset':_0xfd20f0,'total':_0x5c7d34[_0x37814c(0xf2)],'time':Date[_0x37814c(0xdb)]()-_0x495a55,'rows':_0x5c7d34[_0x37814c(0xe9)]};};}function _0x24ca(){const _0x3ede21=['Invalid\x20pagination','3805250VKtnXq','3097024CTmPuN','offset','68OKTAoF','AaxMY','144468gajzyu','77VOlovj','EXkrs','filter','max','rows','2541789hTAlbg','read','pdLaM','4210DfpEHo','dJRJb','1145195qCejjd','sort','get','rowCount','SELECT\x20','RyrJs','limit','join','query','length','OFFSET\x20$','fZMiw','values','sql','empty\x20pg','min','FROM\x20','MkiYf','table','134184cpIWVP','251rYLppP','LIMIT\x20$','nqnpo','now','wmBGH','isFinite'];_0x24ca=function(){return _0x3ede21;};return _0x24ca();}
1
+ function H(){const c=['get','max','limit','sort','isFinite','LIMIT\x20$','values','empty\x20pg','rows'];H=function(){return c;};return H();}import{ValidationError}from'../../../errors.js';function T(r,u){r=r-0xbd;const G=H();let o=G[r];return o;}import{buildFilters}from'../utils/filters.js';import{assertOperation}from'../utils/permissions.js';import{buildSort}from'../utils/sort.js';import{qt,readableFields}from'../utils/sql.js';export function createFind(r,u){return async function G({name:o,query:query={},user:X}){const I=T,w=Date['now'](),a=u[I(0xbd)](o);assertOperation(a,'read',X);const q=Math['min'](Math[I(0xbe)](query[I(0xbf)]??0x14,0x1),0xc8),p=Math['max'](query['offset']??0x0,0x0),F=buildFilters(a,query['filter']),E=buildSort(a,query[I(0xc0)]);if(!Number[I(0xc1)](q)||!Number['isFinite'](p))throw new ValidationError('Invalid\x20pagination');const Y='SELECT\x20'+readableFields(a)['join'](',\x20')+'\x20'+('FROM\x20'+qt(a['table']))+(''+F['sql']+E+'\x20')+(I(0xc2)+(F['values']['length']+0x1)+'\x20')+('OFFSET\x20$'+(F[I(0xc3)]['length']+0x2));if(!r['pg'])throw new Error(I(0xc4));const S=await r['pg']['query'](Y,[...F['values'],q,p]);return{'limit':q,'offset':p,'total':S['rowCount'],'time':Date['now']()-w,'rows':S[I(0xc5)]};};}
@@ -1 +1 @@
1
- (function(_0x238b2c,_0x5916dc){const _0x1a0387=_0x458f,_0x1651ca=_0x238b2c();while(!![]){try{const _0x33bda0=-parseInt(_0x1a0387(0x100))/0x1+parseInt(_0x1a0387(0x105))/0x2+parseInt(_0x1a0387(0x103))/0x3+parseInt(_0x1a0387(0xf4))/0x4*(parseInt(_0x1a0387(0xeb))/0x5)+parseInt(_0x1a0387(0xee))/0x6*(-parseInt(_0x1a0387(0x109))/0x7)+parseInt(_0x1a0387(0xe2))/0x8+-parseInt(_0x1a0387(0xf3))/0x9;if(_0x33bda0===_0x5916dc)break;else _0x1651ca['push'](_0x1651ca['shift']());}catch(_0x54f48d){_0x1651ca['push'](_0x1651ca['shift']());}}}(_0x30a3,0x2983a));function _0x458f(_0xcc7ac0,_0x4e73f1){_0xcc7ac0=_0xcc7ac0-0xe2;const _0x30a3bb=_0x30a3();let _0x458f0b=_0x30a3bb[_0xcc7ac0];return _0x458f0b;}import{NotFoundError,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';export function createUpdate(_0x2f8dba,_0x3d7d6f){const _0x356ab4=_0x458f,_0x2001f6={'lizUN':function(_0x53b305,_0x929e10,_0xc95c47){return _0x53b305(_0x929e10,_0xc95c47);},'kYNMX':_0x356ab4(0xf2),'nyioj':_0x356ab4(0xf6),'LsMIz':function(_0x51457b,_0x36e156){return _0x51457b(_0x36e156);},'RdsUO':function(_0x76dd6,_0x20a7dd){return _0x76dd6+_0x20a7dd;},'dSHju':function(_0x4fe036,_0x44799f){return _0x4fe036+_0x44799f;},'GfdZF':function(_0x595744,_0x6e7fcf){return _0x595744+_0x6e7fcf;},'hSYQS':_0x356ab4(0xfd)};return async function _0x34409b({name:_0x4d7c6c,id:_0x3d5f09,data:_0x4ef00c,user:_0x2f2920}){const _0x4b8406=_0x356ab4,_0x43677d=_0x3d7d6f[_0x4b8406(0xff)](_0x4d7c6c);assertOperation(_0x43677d,_0x4b8406(0xfd),_0x2f2920);const _0x479be2=_0x2001f6[_0x4b8406(0xfb)](writableData,_0x43677d,_0x4ef00c);if(!_0x479be2[_0x4b8406(0xe3)])throw new ValidationError(_0x2001f6[_0x4b8406(0x108)]);if(!_0x2f8dba['pg'])throw new Error(_0x2001f6[_0x4b8406(0xec)]);const _0x45a882={};_0x45a882[_0x4b8406(0x107)]=_0x43677d,_0x45a882[_0x4b8406(0xf1)]=_0x4ef00c,_0x45a882[_0x4b8406(0xfd)]=!![],_0x2001f6[_0x4b8406(0xf9)](validateInputData,_0x45a882);const _0x4445bf=_0x479be2[_0x4b8406(0xf0)](([_0x41b032],_0x489c56)=>qi(_0x41b032)+_0x4b8406(0xe8)+(_0x489c56+0x1)),_0x4fae5c=[..._0x479be2[_0x4b8406(0xf0)](([,_0x2b89e1])=>_0x2b89e1),_0x3d5f09],_0x3b0d31=await _0x2f8dba['pg'][_0x4b8406(0xf8)](_0x2001f6[_0x4b8406(0xe6)](_0x2001f6[_0x4b8406(0xef)](_0x4b8406(0xe9)+qt(_0x43677d[_0x4b8406(0xfe)])+'\x20',_0x4b8406(0x104)+_0x4445bf[_0x4b8406(0xfc)](',\x20')+'\x20'),_0x4b8406(0xf7)+_0x2001f6[_0x4b8406(0xf9)](qi,_0x43677d[_0x4b8406(0xe5)])+_0x4b8406(0xe8)+_0x2001f6[_0x4b8406(0xe4)](_0x479be2[_0x4b8406(0xe3)],0x1)+'\x20')+(_0x4b8406(0xf5)+_0x2001f6[_0x4b8406(0xf9)](readableFields,_0x43677d)[_0x4b8406(0xfc)](',\x20')),_0x4fae5c),_0x546f9f=_0x3b0d31[_0x4b8406(0x106)][0x0];if(!_0x546f9f)throw new NotFoundError(_0x4d7c6c+':'+_0x3d5f09);return await _0x2f8dba[_0x4b8406(0x102)]?.[_0x4b8406(0x101)]({'userId':_0x2f2920?.['id'],'module':_0x43677d[_0x4b8406(0xed)],'resource':_0x43677d[_0x4b8406(0xe7)],'resourceId':_0x3d5f09,'action':_0x2001f6[_0x4b8406(0xfa)],'fields':Object[_0x4b8406(0xea)](_0x4ef00c)}),_0x546f9f;};}function _0x30a3(){const _0xb559cd=['rows','resource','kYNMX','686tBPEym','1561896EoBgSI','length','GfdZF','key','RdsUO','name','\x20=\x20$','UPDATE\x20','keys','86145DYgFjz','nyioj','module','11214CfcktY','dSHju','map','data','No\x20writable\x20fields','1248039rkgZyc','4VGGjUz','RETURNING\x20','empty\x20pg','WHERE\x20','query','LsMIz','hSYQS','lizUN','join','update','table','get','102099jJcESi','write','audit','209664jdEtOf','SET\x20','623240AbdarQ'];_0x30a3=function(){return _0xb559cd;};return _0x30a3();}
1
+ import{NotFoundError,ValidationError}from'../../../errors.js';import{assertOperation}from'../utils/permissions.js';import{qi,qt,readableFields,writableData}from'../utils/sql.js';function T(r,u){r=r-0x9e;const G=H();let o=G[r];return o;}import{validateInputData}from'../utils/fields.js';export function createUpdate(r,u){return async function G({name:o,id:X,data:w,user:a}){const h=T,q=u['get'](o);assertOperation(q,h(0x9e),a);const p=writableData(q,w);if(!p['length'])throw new ValidationError(h(0x9f));if(!r['pg'])throw new Error('empty\x20pg');validateInputData({'resource':q,'data':w,'update':!![]});const F=p['map'](([I],c)=>qi(I)+h(0xa0)+(c+0x1)),E=[...p[h(0xa1)](([,I])=>I),X],Y=await r['pg'][h(0xa2)]('UPDATE\x20'+qt(q['table'])+'\x20'+(h(0xa3)+F[h(0xa4)](',\x20')+'\x20')+('WHERE\x20'+qi(q[h(0xa5)])+h(0xa0)+(p['length']+0x1)+'\x20')+('RETURNING\x20'+readableFields(q)['join'](',\x20')),E),S=Y[h(0xa6)][0x0];if(!S)throw new NotFoundError(o+':'+X);return await r['audit']?.['write']({'userId':a?.['id'],'module':q[h(0xa7)],'resource':q[h(0xa8)],'resourceId':X,'action':'update','fields':Object[h(0xa9)](w)}),S;};}function H(){const P=['update','No\x20writable\x20fields','\x20=\x20$','map','query','SET\x20','join','key','rows','module','name','keys'];H=function(){return P;};return H();}
@@ -1 +1 @@
1
- (function(_0x41add8,_0x1a8d5c){const _0x5a2ff7=_0x2475,_0x19a4e8=_0x41add8();while(!![]){try{const _0x2d723f=-parseInt(_0x5a2ff7(0x1c1))/0x1*(parseInt(_0x5a2ff7(0x19e))/0x2)+parseInt(_0x5a2ff7(0x1a7))/0x3*(-parseInt(_0x5a2ff7(0x1bd))/0x4)+parseInt(_0x5a2ff7(0x1c9))/0x5+-parseInt(_0x5a2ff7(0x19d))/0x6+-parseInt(_0x5a2ff7(0x1a5))/0x7*(-parseInt(_0x5a2ff7(0x1b8))/0x8)+-parseInt(_0x5a2ff7(0x1a4))/0x9+-parseInt(_0x5a2ff7(0x19a))/0xa*(-parseInt(_0x5a2ff7(0x195))/0xb);if(_0x2d723f===_0x1a8d5c)break;else _0x19a4e8['push'](_0x19a4e8['shift']());}catch(_0x2761d3){_0x19a4e8['push'](_0x19a4e8['shift']());}}}(_0x2668,0x8437f));import{ValidationError}from'../../../errors.js';function _0x2668(){const _0xc6e7f8=['minLength\x20not\x20met:\x20','Required\x20field:\x20','JDTXl','maxLength','IBkrm','hasOwn','\x20should\x20match\x20regular\x20expression\x20(','minLength','Wcgos','YCiZV','yHcmj','24OglQiz','nopGf','\x20should\x20be\x20one\x20of\x20(','minimum','sjoMm','2472524jxARxX','length','btGTP','Pjwbl','1Fomycc','join','enum','knxOg','entries','\x20should\x20be\x20<=\x20','test','pattern','765210yaWlRQ','pdeNm','32597059xWbyYD','maximum','NrxXG','fields','writable','10oTNEnw','number','tfbyP','6215484ONaRhj','1820198iQAkFg','Bpisn','PVFuF','maxLength\x20exceeded:\x20','string','EvJzv','7365537KBHAsB','1884617mgJOmZ','includes','3wUmbrj','required','VPbDM','\x20should\x20be\x20>=\x20','PJnsC','CyTTa'];_0x2668=function(){return _0xc6e7f8;};return _0x2668();}function _0x2475(_0x524b71,_0x2ea84b){_0x524b71=_0x524b71-0x194;const _0x2668fc=_0x2668();let _0x247505=_0x2668fc[_0x524b71];return _0x247505;}export{readableFields,writableData,fieldColumn}from'./sql.js';const validateInputData=({resource:_0x398e5b,data:_0x3838c8,update:update=![]})=>{const _0x3ce10d=_0x2475,_0x138601={};_0x138601[_0x3ce10d(0x19f)]=function(_0x1885be,_0x249862){return _0x1885be!==_0x249862;},_0x138601[_0x3ce10d(0x1c0)]=function(_0x4d87b0,_0x147494){return _0x4d87b0===_0x147494;},_0x138601[_0x3ce10d(0x197)]=function(_0x3d2974,_0x4f6760){return _0x3d2974===_0x4f6760;},_0x138601[_0x3ce10d(0x1ab)]=_0x3ce10d(0x1a9),_0x138601[_0x3ce10d(0x1bf)]=function(_0x5001ee,_0x4749ab){return _0x5001ee===_0x4749ab;},_0x138601[_0x3ce10d(0x1c4)]=_0x3ce10d(0x1a2),_0x138601[_0x3ce10d(0x1b5)]=function(_0x430a3e,_0x124189){return _0x430a3e<_0x124189;},_0x138601[_0x3ce10d(0x1bc)]=_0x3ce10d(0x1b1),_0x138601[_0x3ce10d(0x1b9)]=_0x3ce10d(0x19c),_0x138601[_0x3ce10d(0x1b7)]=_0x3ce10d(0x1af),_0x138601[_0x3ce10d(0x1a3)]=function(_0x34c534,_0x21d207){return _0x34c534===_0x21d207;},_0x138601[_0x3ce10d(0x1ac)]=_0x3ce10d(0x19b),_0x138601[_0x3ce10d(0x194)]=function(_0xe34a1,_0x39f612){return _0xe34a1>_0x39f612;},_0x138601[_0x3ce10d(0x1b6)]=_0x3ce10d(0x1a0);const _0x892dc3=_0x138601;for(const [_0x1b7c3b,_0x37aa05]of Object[_0x3ce10d(0x1c5)](_0x398e5b[_0x3ce10d(0x198)])){if(_0x37aa05[_0x3ce10d(0x1a8)]&&_0x892dc3[_0x3ce10d(0x19f)](_0x37aa05[_0x3ce10d(0x199)],![])&&(_0x892dc3[_0x3ce10d(0x1c0)](_0x3838c8[_0x1b7c3b],undefined)||_0x892dc3[_0x3ce10d(0x1c0)](_0x3838c8[_0x1b7c3b],null))&&!update)throw new ValidationError(_0x3ce10d(0x1ae)+_0x1b7c3b);if(_0x37aa05[_0x3ce10d(0x1a8)]&&_0x37aa05[_0x3ce10d(0x199)]!==![]&&Object[_0x3ce10d(0x1b2)](_0x3838c8,_0x1b7c3b)&&(_0x892dc3[_0x3ce10d(0x1c0)](_0x3838c8[_0x1b7c3b],undefined)||_0x892dc3[_0x3ce10d(0x197)](_0x3838c8[_0x1b7c3b],null))&&update){if(_0x892dc3[_0x3ce10d(0x19f)](_0x892dc3[_0x3ce10d(0x1ab)],_0x3ce10d(0x1a9)))throw new _0x255565(_0x3ce10d(0x1ae)+_0x2a61eb);else throw new ValidationError(_0x3ce10d(0x1ae)+_0x1b7c3b);}if(_0x37aa05[_0x3ce10d(0x1b4)]&&_0x892dc3[_0x3ce10d(0x1bf)](typeof _0x3838c8[_0x1b7c3b],_0x892dc3[_0x3ce10d(0x1c4)])&&_0x892dc3[_0x3ce10d(0x1b5)](_0x3838c8[_0x1b7c3b][_0x3ce10d(0x1be)],_0x37aa05[_0x3ce10d(0x1b4)]))throw new ValidationError(_0x3ce10d(0x1ad)+_0x1b7c3b);if(_0x37aa05[_0x3ce10d(0x1b0)]&&typeof _0x3838c8[_0x1b7c3b]===_0x892dc3[_0x3ce10d(0x1c4)]&&_0x3838c8[_0x1b7c3b][_0x3ce10d(0x1be)]>_0x37aa05[_0x3ce10d(0x1b0)]){if(_0x892dc3[_0x3ce10d(0x1bf)](_0x892dc3[_0x3ce10d(0x1bc)],_0x892dc3[_0x3ce10d(0x1bc)]))throw new ValidationError(_0x3ce10d(0x1a1)+_0x1b7c3b);else throw new _0x22deba(_0xdb8267+_0x3ce10d(0x1c6)+_0x4d569d[_0x3ce10d(0x196)]);}if(_0x37aa05[_0x3ce10d(0x1bb)]&&_0x892dc3[_0x3ce10d(0x1c0)](typeof _0x3838c8[_0x1b7c3b],_0x3ce10d(0x19b))&&_0x3838c8[_0x1b7c3b]<_0x37aa05[_0x3ce10d(0x1bb)]){if(_0x892dc3[_0x3ce10d(0x197)](_0x892dc3[_0x3ce10d(0x1b9)],_0x892dc3[_0x3ce10d(0x1b7)]))throw new _0x51094a(_0x3ce10d(0x1a1)+_0x8083dd);else throw new ValidationError(_0x1b7c3b+_0x3ce10d(0x1aa)+_0x37aa05[_0x3ce10d(0x1bb)]);}if(_0x37aa05[_0x3ce10d(0x196)]&&_0x892dc3[_0x3ce10d(0x1a3)](typeof _0x3838c8[_0x1b7c3b],_0x892dc3[_0x3ce10d(0x1ac)])&&_0x892dc3[_0x3ce10d(0x194)](_0x3838c8[_0x1b7c3b],_0x37aa05[_0x3ce10d(0x196)])){if(_0x892dc3[_0x3ce10d(0x1b6)]!==_0x892dc3[_0x3ce10d(0x1b6)])throw new _0x51445c(_0x3ce10d(0x1ae)+_0x7e2763);else throw new ValidationError(_0x1b7c3b+_0x3ce10d(0x1c6)+_0x37aa05[_0x3ce10d(0x196)]);}if(_0x37aa05[_0x3ce10d(0x1c3)]&&_0x3838c8[_0x1b7c3b]&&!_0x37aa05[_0x3ce10d(0x1c3)][_0x3ce10d(0x1a6)](_0x3838c8[_0x1b7c3b]))throw new ValidationError(_0x1b7c3b+_0x3ce10d(0x1ba)+_0x37aa05[_0x3ce10d(0x1c3)][_0x3ce10d(0x1c2)](',\x20')+')');if(_0x37aa05[_0x3ce10d(0x1c8)]&&_0x892dc3[_0x3ce10d(0x197)](typeof _0x3838c8[_0x1b7c3b],_0x892dc3[_0x3ce10d(0x1c4)])&&!new RegExp(_0x37aa05[_0x3ce10d(0x1c8)])[_0x3ce10d(0x1c7)](_0x3838c8[_0x1b7c3b]))throw new ValidationError(_0x1b7c3b+_0x3ce10d(0x1b3)+_0x37aa05[_0x3ce10d(0x1c8)]+')');}};export{validateInputData};
1
+ function H(){const w=['string','maxLength','minimum','\x20should\x20be\x20>=\x20','number','maximum','enum'];H=function(){return w;};return H();}function T(r,u){r=r-0xfd;const G=H();let o=G[r];return o;}import{ValidationError}from'../../../errors.js';export{readableFields,writableData,fieldColumn}from'./sql.js';const validateInputData=({resource:r,data:u,update:update=![]})=>{const X=T;for(const [G,o]of Object['entries'](r['fields'])){if(o['required']&&o['writable']!==![]&&(u[G]===undefined||u[G]===null)&&!update)throw new ValidationError('Required\x20field:\x20'+G);if(o['required']&&o['writable']!==![]&&Object['hasOwn'](u,G)&&(u[G]===undefined||u[G]===null)&&update)throw new ValidationError('Required\x20field:\x20'+G);if(o['minLength']&&typeof u[G]===X(0xfd)&&u[G]['length']<o['minLength'])throw new ValidationError('minLength\x20not\x20met:\x20'+G);if(o[X(0xfe)]&&typeof u[G]==='string'&&u[G]['length']>o['maxLength'])throw new ValidationError('maxLength\x20exceeded:\x20'+G);if(o[X(0xff)]&&typeof u[G]==='number'&&u[G]<o[X(0xff)])throw new ValidationError(G+X(0x100)+o['minimum']);if(o['maximum']&&typeof u[G]===X(0x101)&&u[G]>o[X(0x102)])throw new ValidationError(G+'\x20should\x20be\x20<=\x20'+o['maximum']);if(o['enum']&&u[G]&&!o[X(0x103)]['includes'](u[G]))throw new ValidationError(G+'\x20should\x20be\x20one\x20of\x20('+o['enum']['join'](',\x20')+')');if(o['pattern']&&typeof u[G]===X(0xfd)&&!new RegExp(o['pattern'])['test'](u[G]))throw new ValidationError(G+'\x20should\x20match\x20regular\x20expression\x20('+o['pattern']+')');}};export{validateInputData};
@@ -1 +1 @@
1
- function _0x39d2(_0x3708c1,_0x557685){_0x3708c1=_0x3708c1-0xe2;const _0x4a53c1=_0x4a53();let _0x39d2b2=_0x4a53c1[_0x3708c1];return _0x39d2b2;}function _0x4a53(){const _0x5df2a2=['1949552pAmFLv','200815bBMhWN','AifsH','togCD','23713768BNUFwO','push','2813574vTRlZK','\x20WHERE\x20','1579416tLwcpS','524esUDAV','entries','\x20AND\x20','14845qZVzSI','ZmcEM','fields','filter','length','join','zoTMW','filterable','tHNWg','4916443ruXTzq','Field\x20is\x20not\x20filterable:\x20','\x20=\x20$'];_0x4a53=function(){return _0x5df2a2;};return _0x4a53();}(function(_0x41fbb5,_0x2d0cfd){const _0x3ecaa2=_0x39d2,_0x3fd22d=_0x41fbb5();while(!![]){try{const _0x1a4e69=parseInt(_0x3ecaa2(0xe6))/0x1+parseInt(_0x3ecaa2(0xe5))/0x2+parseInt(_0x3ecaa2(0xeb))/0x3+parseInt(_0x3ecaa2(0xee))/0x4*(parseInt(_0x3ecaa2(0xf1))/0x5)+parseInt(_0x3ecaa2(0xed))/0x6+parseInt(_0x3ecaa2(0xe2))/0x7+-parseInt(_0x3ecaa2(0xe9))/0x8;if(_0x1a4e69===_0x2d0cfd)break;else _0x3fd22d['push'](_0x3fd22d['shift']());}catch(_0x154721){_0x3fd22d['push'](_0x3fd22d['shift']());}}}(_0x4a53,0x7afc8));import{fieldColumn,qi}from'./sql.js';import{ValidationError}from'../../../errors.js';export function buildFilters(_0x92db70,_0x513e3b,_0x31751d=0x1){const _0x2e4e22=_0x39d2,_0x3aad14={'togCD':function(_0x2a4fe3,_0x7e4393){return _0x2a4fe3??_0x7e4393;},'tHNWg':function(_0x4cff4e,_0x1e6743){return _0x4cff4e(_0x1e6743);},'ZmcEM':function(_0x55affb,_0x448871){return _0x55affb-_0x448871;},'zoTMW':function(_0x5efc04,_0x5be327){return _0x5efc04+_0x5be327;},'AifsH':_0x2e4e22(0xf0)},_0x247760=[],_0xfef5b4=[];for(const [_0x528684,_0x6b4e6]of Object[_0x2e4e22(0xef)](_0x3aad14[_0x2e4e22(0xe8)](_0x513e3b,{}))){const _0x297f13=_0x92db70[_0x2e4e22(0xf3)][_0x528684];if(!_0x297f13||_0x297f13[_0x2e4e22(0xf4)]!==!![]&&_0x297f13[_0x2e4e22(0xf8)]!==!![])throw new ValidationError(_0x2e4e22(0xe3)+_0x528684);_0xfef5b4[_0x2e4e22(0xea)](_0x6b4e6),_0x247760[_0x2e4e22(0xea)](_0x3aad14[_0x2e4e22(0xf9)](qi,fieldColumn(_0x92db70,_0x528684))+_0x2e4e22(0xe4)+_0x3aad14[_0x2e4e22(0xf2)](_0x3aad14[_0x2e4e22(0xf7)](_0x31751d,_0xfef5b4[_0x2e4e22(0xf5)]),0x1));}return{'sql':_0x247760[_0x2e4e22(0xf5)]?_0x2e4e22(0xec)+_0x247760[_0x2e4e22(0xf6)](_0x3aad14[_0x2e4e22(0xe7)]):'','values':_0xfef5b4};}
1
+ import{fieldColumn,qi}from'./sql.js';function T(r,u){r=r-0x1cf;const G=H();let o=G[r];return o;}import{ValidationError}from'../../../errors.js';function H(){const F=['length'];H=function(){return F;};return H();}export function buildFilters(r,u,G=0x1){const p=T,o=[],X=[];for(const [w,a]of Object['entries'](u??{})){const q=r['fields'][w];if(!q||q['filter']!==!![]&&q['filterable']!==!![])throw new ValidationError('Field\x20is\x20not\x20filterable:\x20'+w);X['push'](a),o['push'](qi(fieldColumn(r,w))+'\x20=\x20$'+(G+X[p(0x1cf)]-0x1));}return{'sql':o[p(0x1cf)]?'\x20WHERE\x20'+o['join']('\x20AND\x20'):'','values':X};}
@@ -1 +1 @@
1
- function _0x4860(_0x26f000,_0x124fb2){_0x26f000=_0x26f000-0x1e0;const _0x2f6e8c=_0x2f6e();let _0x4860e3=_0x2f6e8c[_0x26f000];return _0x4860e3;}(function(_0x412fe3,_0x372e51){const _0x14961e=_0x4860,_0x378d2a=_0x412fe3();while(!![]){try{const _0x45d82c=parseInt(_0x14961e(0x1ee))/0x1*(-parseInt(_0x14961e(0x1ec))/0x2)+parseInt(_0x14961e(0x1f8))/0x3+-parseInt(_0x14961e(0x1f7))/0x4*(parseInt(_0x14961e(0x1e3))/0x5)+-parseInt(_0x14961e(0x200))/0x6+parseInt(_0x14961e(0x1ed))/0x7+-parseInt(_0x14961e(0x1e5))/0x8*(parseInt(_0x14961e(0x1f5))/0x9)+-parseInt(_0x14961e(0x1e8))/0xa*(-parseInt(_0x14961e(0x1f4))/0xb);if(_0x45d82c===_0x372e51)break;else _0x378d2a['push'](_0x378d2a['shift']());}catch(_0x11088a){_0x378d2a['push'](_0x378d2a['shift']());}}}(_0x2f6e,0x5b5a2));import{ForbiddenError}from'../../../errors.js';import{getContext}from'../../../index.js';export function assertOperation(_0x1e6da5,_0x17b5a3,_0x59b66f){const _0x2c7c06=_0x4860,_0x3f0ecb={'VHbih':function(_0x6cb688){return _0x6cb688();},'hSwQU':_0x2c7c06(0x1f6),'pZRhP':function(_0x2caba9,_0x32e09d){return _0x2caba9===_0x32e09d;},'WBbGl':_0x2c7c06(0x1e7),'UfDJV':_0x2c7c06(0x1e0),'BTQdH':function(_0xe87186,_0x4b546b){return _0xe87186!==_0x4b546b;},'IfOmR':_0x2c7c06(0x1f3)},_0x4b3855=_0x3f0ecb[_0x2c7c06(0x1f0)](getContext)[_0x2c7c06(0x1fb)];if(_0x4b3855[_0x2c7c06(0x1f2)])return;if(!_0x1e6da5[_0x2c7c06(0x1e9)][_0x2c7c06(0x1e1)](_0x17b5a3))throw new ForbiddenError(_0x1e6da5[_0x2c7c06(0x1f9)]+'.'+_0x17b5a3+_0x2c7c06(0x1fc));if(_0x1e6da5[_0x2c7c06(0x1fa)]!==_0x3f0ecb[_0x2c7c06(0x1e2)]&&_0x3f0ecb[_0x2c7c06(0x1fd)](_0x59b66f,undefined))throw new ForbiddenError(_0x3f0ecb[_0x2c7c06(0x1e6)]);if(_0x1e6da5[_0x2c7c06(0x1fa)]===_0x3f0ecb[_0x2c7c06(0x1ff)]&&_0x3f0ecb[_0x2c7c06(0x1fe)](_0x59b66f?.[_0x2c7c06(0x1e4)],_0x3f0ecb[_0x2c7c06(0x1ff)]))throw new ForbiddenError(_0x3f0ecb[_0x2c7c06(0x1eb)]);if(_0x3f0ecb[_0x2c7c06(0x1fe)](_0x59b66f?.[_0x2c7c06(0x1e4)],_0x3f0ecb[_0x2c7c06(0x1ff)])){const _0x5c726f=(_0x1e6da5[_0x2c7c06(0x1ef)]??_0x1e6da5[_0x2c7c06(0x1f9)])+':'+_0x17b5a3;if(!_0x59b66f?.[_0x2c7c06(0x1ea)]?.[_0x2c7c06(0x1e1)](_0x5c726f))throw new ForbiddenError(_0x2c7c06(0x1f1)+_0x5c726f);}}function _0x2f6e(){const _0xdd7356=['510264akzVOO','name','access','config','\x20is\x20disabled','pZRhP','BTQdH','UfDJV','4302720btLFZB','admin','includes','hSwQU','59505GoQrAl','type','8RUVfjS','WBbGl','Authentication\x20required','20ITVUKU','operations','permissions','IfOmR','73582keQCJH','3976490FLrXtE','14vmaBSL','permission','VHbih','Missing\x20permission:\x20','debug','Admin\x20access\x20required','7472674mbhtPw','1950579uIAVeb','public','92JanZUo'];_0x2f6e=function(){return _0xdd7356;};return _0x2f6e();}
1
+ import{ForbiddenError}from'../../../errors.js';function T(r,u){r=r-0x160;const G=H();let o=G[r];return o;}function H(){const a=['Authentication\x20required','type'];H=function(){return a;};return H();}import{getContext}from'../../../index.js';export function assertOperation(r,u,G){const w=T,o=getContext()['config'];if(o['debug'])return;if(!r['operations']['includes'](u))throw new ForbiddenError(r['name']+'.'+u+'\x20is\x20disabled');if(r['access']!=='public'&&G===undefined)throw new ForbiddenError(w(0x160));if(r['access']==='admin'&&G?.[w(0x161)]!=='admin')throw new ForbiddenError('Admin\x20access\x20required');if(G?.['type']!=='admin'){const X=(r['permission']??r['name'])+':'+u;if(!G?.['permissions']?.['includes'](X))throw new ForbiddenError('Missing\x20permission:\x20'+X);}}
@@ -1 +1 @@
1
- function _0x291b(){const _0xfad4ef=['4kxjnpa','Field\x20is\x20not\x20sortable:\x20','96672pYWlax','13174XaEYTv','stLpN','map','join','DESC','fields','24EleLmH','2447350OUvatD','851263ixUhhu','startsWith','length','CNsfB','1364mFzIFn','dNwFo','9258850iSQiRG','ASC','56foYseA','\x20ORDER\x20BY\x20','181BsWcSr','sort','467361kEUpVS','BOVOO','3097986sQZPyr','sortable','EnueN','slice'];_0x291b=function(){return _0xfad4ef;};return _0x291b();}(function(_0x422d66,_0x9cc98d){const _0x4581e7=_0x36b0,_0x33c9a0=_0x422d66();while(!![]){try{const _0x5b8783=-parseInt(_0x4581e7(0xf0))/0x1*(-parseInt(_0x4581e7(0xde))/0x2)+-parseInt(_0x4581e7(0xd7))/0x3+-parseInt(_0x4581e7(0xdb))/0x4*(-parseInt(_0x4581e7(0xe5))/0x5)+parseInt(_0x4581e7(0xe4))/0x6*(-parseInt(_0x4581e7(0xe6))/0x7)+parseInt(_0x4581e7(0xee))/0x8*(parseInt(_0x4581e7(0xf2))/0x9)+-parseInt(_0x4581e7(0xec))/0xa+parseInt(_0x4581e7(0xea))/0xb*(parseInt(_0x4581e7(0xdd))/0xc);if(_0x5b8783===_0x9cc98d)break;else _0x33c9a0['push'](_0x33c9a0['shift']());}catch(_0x1f9e66){_0x33c9a0['push'](_0x33c9a0['shift']());}}}(_0x291b,0x9248d));function _0x36b0(_0x2b869c,_0x35225f){_0x2b869c=_0x2b869c-0xd6;const _0x291b10=_0x291b();let _0x36b0e5=_0x291b10[_0x2b869c];return _0x36b0e5;}import{fieldColumn,qi}from'./sql.js';import{ValidationError}from'../../../errors.js';export function buildSort(_0x25170f,_0x255927){const _0x57b93f=_0x36b0,_0x350e88={'dNwFo':function(_0x1d1bd9,_0x25b63a){return _0x1d1bd9!==_0x25b63a;},'EnueN':function(_0x4f7ad2,_0x38e933){return _0x4f7ad2(_0x38e933);},'CNsfB':function(_0x524747,_0x464403,_0x38fc38){return _0x524747(_0x464403,_0x38fc38);},'BOVOO':_0x57b93f(0xe2),'stLpN':_0x57b93f(0xed)};if(!_0x255927?.[_0x57b93f(0xe8)])return'';const _0x2ca7d7=_0x255927[_0x57b93f(0xe0)](_0x132865=>{const _0x26d71a=_0x57b93f,_0x2a375d=_0x132865[_0x26d71a(0xe7)]('-'),_0x404204=_0x2a375d?_0x132865[_0x26d71a(0xda)](0x1):_0x132865,_0xd8da56=_0x25170f[_0x26d71a(0xe3)][_0x404204];if(!_0xd8da56||_0xd8da56[_0x26d71a(0xf1)]!==!![]&&_0x350e88[_0x26d71a(0xeb)](_0xd8da56[_0x26d71a(0xd8)],!![]))throw new ValidationError(_0x26d71a(0xdc)+_0x404204);return _0x350e88[_0x26d71a(0xd9)](qi,_0x350e88[_0x26d71a(0xe9)](fieldColumn,_0x25170f,_0x404204))+'\x20'+(_0x2a375d?_0x350e88[_0x26d71a(0xd6)]:_0x350e88[_0x26d71a(0xdf)]);});return _0x57b93f(0xef)+_0x2ca7d7[_0x57b93f(0xe1)](',\x20');}
1
+ import{fieldColumn,qi}from'./sql.js';function H(){const F=['Field\x20is\x20not\x20sortable:\x20','\x20ORDER\x20BY\x20'];H=function(){return F;};return H();}function T(r,u){r=r-0xa5;const G=H();let o=G[r];return o;}import{ValidationError}from'../../../errors.js';export function buildSort(r,u){const p=T;if(!u?.['length'])return'';const G=u['map'](o=>{const q=T,X=o['startsWith']('-'),w=X?o['slice'](0x1):o,a=r['fields'][w];if(!a||a['sort']!==!![]&&a['sortable']!==!![])throw new ValidationError(q(0xa5)+w);return qi(fieldColumn(r,w))+'\x20'+(X?'DESC':'ASC');});return p(0xa6)+G['join'](',\x20');}
@@ -1 +1 @@
1
- function _0x46b2(_0x163481,_0x34b14e){_0x163481=_0x163481-0x1f3;const _0x14d910=_0x14d9();let _0x46b281=_0x14d910[_0x163481];return _0x46b281;}const _0x30062c=_0x46b2;(function(_0x307ef7,_0x25c8f3){const _0x32524a=_0x46b2,_0x14a4a5=_0x307ef7();while(!![]){try{const _0x2031cf=parseInt(_0x32524a(0x205))/0x1*(parseInt(_0x32524a(0x200))/0x2)+-parseInt(_0x32524a(0x210))/0x3+-parseInt(_0x32524a(0x21a))/0x4+parseInt(_0x32524a(0x1fc))/0x5+-parseInt(_0x32524a(0x207))/0x6*(-parseInt(_0x32524a(0x1fb))/0x7)+-parseInt(_0x32524a(0x215))/0x8+parseInt(_0x32524a(0x21c))/0x9*(-parseInt(_0x32524a(0x1f4))/0xa);if(_0x2031cf===_0x25c8f3)break;else _0x14a4a5['push'](_0x14a4a5['shift']());}catch(_0x73568c){_0x14a4a5['push'](_0x14a4a5['shift']());}}}(_0x14d9,0x97e8a));import{ValidationError}from'../../../errors.js';export const quoteIdentifier=_0x1c121e=>'\x22'+_0x1c121e[_0x30062c(0x208)](/"/g,'\x22\x22')+'\x22';export const quoteTable=_0x56eba8=>_0x56eba8[_0x30062c(0x20f)]('.')[_0x30062c(0x1f6)](quoteIdentifier)[_0x30062c(0x1f9)]('.');export function fieldColumn(_0x1616c6,_0x2b0002){const _0x3e264b=_0x30062c,_0x329582={};_0x329582[_0x3e264b(0x206)]=function(_0x46d5fa,_0x41af28){return _0x46d5fa===_0x41af28;},_0x329582[_0x3e264b(0x1fd)]=_0x3e264b(0x203),_0x329582[_0x3e264b(0x1fa)]=_0x3e264b(0x213);const _0x514f78=_0x329582;if(_0x514f78[_0x3e264b(0x206)](_0x2b0002,_0x1616c6[_0x3e264b(0x211)])){if(_0x514f78[_0x3e264b(0x206)](_0x514f78[_0x3e264b(0x1fd)],_0x514f78[_0x3e264b(0x1fa)]))throw new _0x36a954(_0x3e264b(0x217)+_0x4a57e7);else return _0x1616c6[_0x3e264b(0x211)];}const _0x111a76=_0x1616c6[_0x3e264b(0x1fe)][_0x2b0002];if(!_0x111a76)throw new ValidationError(_0x3e264b(0x217)+_0x2b0002);return _0x111a76[_0x3e264b(0x1ff)]??_0x2b0002;}export function readableFields(_0x215190){const _0xd01d8b=_0x30062c,_0x502bed={'IuhtI':function(_0x30e1b5,_0x51f38e){return _0x30e1b5(_0x51f38e);},'EQfbF':function(_0x366fd4,_0x5603fa){return _0x366fd4!==_0x5603fa;},'IrCsB':_0xd01d8b(0x1f7),'jmpCB':_0xd01d8b(0x214),'kRjNM':function(_0x412c8e,_0x13a576){return _0x412c8e(_0x13a576);}},_0xf14ff5=Object[_0xd01d8b(0x218)](_0x215190[_0xd01d8b(0x1fe)])[_0xd01d8b(0x20d)](([,_0x1c8443])=>_0x1c8443[_0xd01d8b(0x1f8)]!==![]&&_0x1c8443[_0xd01d8b(0x216)]!==![])[_0xd01d8b(0x1f6)](([_0x1d11e2,_0x34012b])=>quoteIdentifier(_0x34012b[_0xd01d8b(0x1ff)]??_0x1d11e2)+_0xd01d8b(0x1f3)+quoteIdentifier(_0x1d11e2));return!_0x215190[_0xd01d8b(0x1fe)][_0x215190[_0xd01d8b(0x211)]]&&(_0x502bed[_0xd01d8b(0x20c)](_0x502bed[_0xd01d8b(0x209)],_0x502bed[_0xd01d8b(0x1f5)])?_0xf14ff5[_0xd01d8b(0x204)](_0x502bed[_0xd01d8b(0x21b)](quoteIdentifier,_0x215190[_0xd01d8b(0x211)])):_0x609add[_0xd01d8b(0x204)](_0x502bed[_0xd01d8b(0x20a)](_0x196cc0,_0x329589[_0xd01d8b(0x211)]))),_0xf14ff5;}export function writableData(_0x46a540,_0xa6c58){const _0x24ff4b=_0x30062c,_0x16636a={};_0x16636a[_0x24ff4b(0x20b)]=function(_0x15f1dc,_0x43e5a1){return _0x15f1dc===_0x43e5a1;},_0x16636a[_0x24ff4b(0x20e)]=function(_0x4a1ef6,_0x217b88){return _0x4a1ef6===_0x217b88;};const _0x512a3f=_0x16636a,_0x27986a=[];for(const [_0x29ccab,_0x2f185a]of Object[_0x24ff4b(0x218)](_0xa6c58)){const _0x4e35c0=_0x46a540[_0x24ff4b(0x1fe)][_0x29ccab];if(!_0x4e35c0||_0x512a3f[_0x24ff4b(0x20b)](_0x4e35c0[_0x24ff4b(0x201)],![])||_0x512a3f[_0x24ff4b(0x20e)](_0x4e35c0[_0x24ff4b(0x219)],![]))throw new ValidationError(_0x24ff4b(0x202)+_0x29ccab);_0x27986a[_0x24ff4b(0x212)]([_0x4e35c0[_0x24ff4b(0x1ff)]??_0x29ccab,_0x2f185a]);}return _0x27986a;}export const qi=quoteIdentifier;function _0x14d9(){const _0x4fac72=['4798280cjvJZo','readable','Unknown\x20field:\x20','entries','writable','2384372xrljsd','kRjNM','27FeBnVj','\x20AS\x20','602810GrnZyI','jmpCB','map','TaOul','read','join','SHHri','7ejWuUR','4281935Ewhibr','rOQZQ','fields','column','5710wSsqkb','write','Field\x20is\x20not\x20writable:\x20','zyHdd','unshift','409chPxHa','BJCEA','3043734XXemMp','replace','IrCsB','IuhtI','oLdZk','EQfbF','filter','kjMnk','split','1597296hgRQBO','key','push','mXQeO','xGyaE'];_0x14d9=function(){return _0x4fac72;};return _0x14d9();}export const qt=quoteTable;
1
+ const a=T;import{ValidationError}from'../../../errors.js';export const quoteIdentifier=r=>'\x22'+r['replace'](/"/g,'\x22\x22')+'\x22';export const quoteTable=r=>r['split']('.')['map'](quoteIdentifier)[a(0x14f)]('.');export function fieldColumn(r,u){const q=a;if(u===r['key'])return r['key'];const G=r['fields'][u];if(!G)throw new ValidationError(q(0x150)+u);return G['column']??u;}export function readableFields(r){const p=a,u=Object['entries'](r['fields'])[p(0x151)](([,G])=>G['read']!==![]&&G['readable']!==![])['map'](([G,o])=>quoteIdentifier(o['column']??G)+'\x20AS\x20'+quoteIdentifier(G));return!r['fields'][r['key']]&&u[p(0x152)](quoteIdentifier(r[p(0x153)])),u;}function T(r,u){r=r-0x14f;const G=H();let o=G[r];return o;}export function writableData(r,u){const F=a,G=[];for(const [o,X]of Object['entries'](u)){const w=r[F(0x154)][o];if(!w||w[F(0x155)]===![]||w['writable']===![])throw new ValidationError('Field\x20is\x20not\x20writable:\x20'+o);G[F(0x156)]([w[F(0x157)]??o,X]);}return G;}export const qi=quoteIdentifier;function H(){const E=['join','Unknown\x20field:\x20','filter','unshift','key','fields','write','push','column'];H=function(){return E;};return H();}export const qt=quoteTable;
@@ -1 +1 @@
1
- function _0x2c97(_0x36a92d,_0x436f02){_0x36a92d=_0x36a92d-0xca;const _0x35a9b2=_0x35a9();let _0x2c975a=_0x35a9b2[_0x36a92d];return _0x2c975a;}function _0x35a9(){const _0x1181c8=['1617752wLEXlT','connection','1645509ZCCmfi','remoteAddress','4760KDgzaU','2ubzNTm','x-real-ip','pop','11mJHQtq','14507470WNDGmS','5422410KJBXiH','876foeiWf','headers','47723052MDJwBq','27QVuJZo','x-forwarded-for','1797378UVUvXP','split','8bvRNaH'];_0x35a9=function(){return _0x1181c8;};return _0x35a9();}const _0x2b4966=_0x2c97;(function(_0x5d7d20,_0x4f8438){const _0x5c5c9d=_0x2c97,_0x501326=_0x5d7d20();while(!![]){try{const _0x4d101f=parseInt(_0x5c5c9d(0xce))/0x1*(-parseInt(_0x5c5c9d(0xd1))/0x2)+parseInt(_0x5c5c9d(0xdc))/0x3*(parseInt(_0x5c5c9d(0xcb))/0x4)+-parseInt(_0x5c5c9d(0xd0))/0x5*(-parseInt(_0x5c5c9d(0xd7))/0x6)+-parseInt(_0x5c5c9d(0xd6))/0x7+-parseInt(_0x5c5c9d(0xcc))/0x8*(parseInt(_0x5c5c9d(0xda))/0x9)+parseInt(_0x5c5c9d(0xd5))/0xa*(-parseInt(_0x5c5c9d(0xd4))/0xb)+parseInt(_0x5c5c9d(0xd9))/0xc;if(_0x4d101f===_0x4f8438)break;else _0x501326['push'](_0x501326['shift']());}catch(_0x2d529a){_0x501326['push'](_0x501326['shift']());}}}(_0x35a9,0xcc40e));const getIP=_0x7749ff=>(_0x7749ff[_0x2b4966(0xd8)]?.[_0x2b4966(0xd2)]||_0x7749ff[_0x2b4966(0xd8)]?.[_0x2b4966(0xdb)]||_0x7749ff['ip']||_0x7749ff[_0x2b4966(0xcd)]?.[_0x2b4966(0xcf)]||'')[_0x2b4966(0xca)](':')[_0x2b4966(0xd3)]();export default getIP;
1
+ function T(r,u){r=r-0x1f3;const G=H();let o=G[r];return o;}const u=T,getIP=r=>(r['headers']?.['x-real-ip']||r['headers']?.['x-forwarded-for']||r['ip']||r['connection']?.[u(0x1f3)]||'')[u(0x1f4)](':')['pop']();function H(){const G=['remoteAddress','split'];H=function(){return G;};return H();}export default getIP;
package/dist/type.d.ts CHANGED
@@ -19,5 +19,19 @@ type AccessMetadata = {
19
19
  };
20
20
  /** Повна схема Fastify і метадані маршруту API. */
21
21
  export type ApiRouteSchema = FastifySchema & AccessMetadata;
22
+ /** Короткий опис зареєстрованого HTTP API-маршруту. */
23
+ export interface ApiRouteShort {
24
+ method: string;
25
+ endpoint: string;
26
+ package: string;
27
+ }
28
+ /** Розширений опис маршруту з OpenAPI та access metadata. */
29
+ export interface ApiRoute extends ApiRouteShort {
30
+ tags: string[];
31
+ summary: string;
32
+ description: string;
33
+ access: RouteAccess;
34
+ permissions: RoutePermission[];
35
+ }
22
36
  export {};
23
37
  //# sourceMappingURL=type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,2CAA2C;AAC3C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AACtD,oFAAoF;AACpF,MAAM,MAAM,eAAe,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAGpD,KAAK,cAAc,GAAG;IACpB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,MAAM,EAAE,WAAW,CAAC;IACpB,2FAA2F;IAC3F,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC,CAAC;AAEF,mDAAmD;AACnD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,2CAA2C;AAC3C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AACtD,oFAAoF;AACpF,MAAM,MAAM,eAAe,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAGpD,KAAK,cAAc,GAAG;IACpB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,MAAM,EAAE,WAAW,CAAC;IACpB,2FAA2F;IAC3F,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC,CAAC;AAEF,mDAAmD;AACnD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC;AAE5D,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,6DAA6D;AAC7D,MAAM,WAAW,QAAS,SAAQ,aAAa;IAC7C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC"}
@@ -6,29 +6,29 @@ AS $$
6
6
  SELECT encode(gen_random_bytes(6), 'hex')::text
7
7
  $$;
8
8
 
9
+ DROP SCHEMA IF EXISTS admin CASCADE;
9
10
  CREATE SCHEMA IF NOT EXISTS admin;
10
11
 
11
12
 
12
13
  CREATE TABLE IF NOT EXISTS admin.users (
13
14
  uid text PRIMARY KEY DEFAULT next_id(),
14
15
  login text,
15
- password text NOT NULL DEFAULT '',
16
+ password_hash text,
16
17
  first_name text,
17
18
  middle_name text,
18
19
  last_name text,
19
20
  email text,
20
21
  phone text,
21
22
  avatar text,
23
+ twofa boolean NOT NULL DEFAULT false,
22
24
  enabled boolean DEFAULT true,
23
25
  user_personal_code text,
24
26
  last_activity_date timestamptz,
25
- user_type text NOT NULL DEFAULT 'regular',
26
- salt text,
27
+ user_type text NOT NULL DEFAULT 'regular',
27
28
  created_by text,
28
29
  updated_by text,
29
30
  created_at timestamp NOT NULL DEFAULT now(),
30
- updated_at timestamp NOT NULL DEFAULT now(),
31
- twofa boolean NOT NULL DEFAULT false,
31
+ updated_at timestamp NOT NULL DEFAULT now(),
32
32
  UNIQUE (user_personal_code)
33
33
  );
34
34
 
@@ -107,18 +107,19 @@ CREATE TABLE IF NOT EXISTS admin.user_roles (
107
107
 
108
108
  CREATE TABLE IF NOT EXISTS admin.role_access (
109
109
  access_id text PRIMARY KEY DEFAULT next_id(),
110
- route_id text NOT NULL,
110
+
111
111
  role_id text REFERENCES admin.roles(role_id),
112
- user_uid text,
112
+ user_uid text REFERENCES admin.users(uid),
113
113
  scope text,
114
114
  actions text[],
115
- resource_id text,
115
+ resource text,
116
116
 
117
- created_by text,
118
- updated_by text,
117
+ created_by text REFERENCES admin.users(uid) ,
118
+ updated_by text REFERENCES admin.users(uid) ,
119
119
  created_at timestamp NOT NULL DEFAULT now(),
120
120
  updated_at timestamp NOT NULL DEFAULT now(),
121
- UNIQUE (route_id, user_uid, role_id)
121
+ UNIQUE (resource, user_uid),
122
+ UNIQUE (resource, role_id)
122
123
  );
123
124
 
124
125
 
@@ -131,8 +132,8 @@ CREATE TABLE IF NOT EXISTS admin.dictionaries (
131
132
  source text NOT NULL DEFAULT 'git' CHECK (source IN ('git', 'custom')),
132
133
  editable boolean NOT NULL DEFAULT false,
133
134
  system boolean NOT NULL DEFAULT false,
134
- created_by text,
135
- updated_by text,
135
+ created_by text REFERENCES admin.users(uid) ,
136
+ updated_by text REFERENCES admin.users(uid) ,
136
137
  created_at timestamp NOT NULL DEFAULT now(),
137
138
  updated_at timestamp NOT NULL DEFAULT now()
138
139
  );
@@ -150,6 +151,8 @@ CREATE TABLE IF NOT EXISTS admin.dictionary_items (
150
151
  active boolean NOT NULL DEFAULT true,
151
152
  system boolean NOT NULL DEFAULT false,
152
153
  metadata jsonb,
154
+ created_by text REFERENCES admin.users(uid) ,
155
+ updated_by text REFERENCES admin.users(uid) ,
153
156
  created_at timestamp NOT NULL DEFAULT now(),
154
157
  updated_at timestamp NOT NULL DEFAULT now(),
155
158
  UNIQUE (dictionary_id, code)
@@ -161,9 +164,9 @@ CREATE TABLE IF NOT EXISTS admin.notes (
161
164
  resource text NOT NULL,
162
165
  resource_id text NOT NULL,
163
166
  body text NOT NULL,
164
- created_by text,
167
+ created_by text REFERENCES admin.users(uid) ,
165
168
  created_at timestamptz DEFAULT now(),
166
- updated_by text,
169
+ updated_by text REFERENCES admin.users(uid) ,
167
170
  updated_at timestamptz DEFAULT now()
168
171
  );
169
172
 
@@ -184,9 +187,9 @@ CREATE TABLE IF NOT EXISTS admin.files (
184
187
  file_path text,
185
188
  verified boolean DEFAULT false,
186
189
  resized boolean,
187
- created_by text,
190
+ created_by text REFERENCES admin.users(uid) ,
188
191
  created_at timestamptz DEFAULT now(),
189
- updated_by text,
192
+ updated_by text REFERENCES admin.users(uid) ,
190
193
  updated_at timestamptz default now()
191
194
  );
192
195
 
@@ -199,9 +202,9 @@ CREATE TABLE IF NOT EXISTS admin.settings (
199
202
  key text NOT NULL,
200
203
  value jsonb,
201
204
 
202
- updated_by text,
205
+ updated_by text REFERENCES admin.users(uid) ,
203
206
  updated_at timestamptz NOT NULL DEFAULT now(),
204
- created_by text,
207
+ created_by text REFERENCES admin.users(uid) ,
205
208
  created_at timestamptz NOT NULL DEFAULT now()
206
209
  );
207
210