@opengis/fcore 0.0.1-beta.5 → 0.0.1-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/config.js +1 -1
  2. package/dist/context.js +1 -1
  3. package/dist/errors.js +1 -1
  4. package/dist/fastify.d.ts +2 -1
  5. package/dist/fastify.d.ts.map +1 -1
  6. package/dist/fastify.js +1 -1
  7. package/dist/fcore.js +1 -1
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/migrations/cli.js +1 -1
  12. package/dist/migrations/runner.js +1 -1
  13. package/dist/modules/auth/adduser-cli.js +1 -1
  14. package/dist/modules/auth/passwd-cli.js +1 -1
  15. package/dist/modules/auth/permission-cli.js +1 -1
  16. package/dist/modules/auth/route.d.ts.map +1 -1
  17. package/dist/modules/auth/route.js +1 -1
  18. package/dist/modules/auth/schema.d.ts +3 -0
  19. package/dist/modules/auth/schema.d.ts.map +1 -1
  20. package/dist/modules/auth/schema.js +1 -1
  21. package/dist/modules/auth/services/change-password.js +1 -1
  22. package/dist/modules/auth/services/get-current-user.d.ts +1 -0
  23. package/dist/modules/auth/services/get-current-user.d.ts.map +1 -1
  24. package/dist/modules/auth/services/get-current-user.js +1 -1
  25. package/dist/modules/auth/services/registration.js +1 -1
  26. package/dist/modules/auth/services/verify-two-factor.js +1 -1
  27. package/dist/modules/file/mime.d.ts +3 -0
  28. package/dist/modules/file/mime.d.ts.map +1 -0
  29. package/dist/modules/file/mime.js +1 -0
  30. package/dist/modules/file/route.d.ts.map +1 -1
  31. package/dist/modules/file/route.js +1 -1
  32. package/dist/modules/file/schema.d.ts +3 -0
  33. package/dist/modules/file/schema.d.ts.map +1 -1
  34. package/dist/modules/file/schema.js +1 -1
  35. package/dist/modules/file/services/get-file.js +1 -1
  36. package/dist/modules/file/services/resize-file.d.ts.map +1 -1
  37. package/dist/modules/file/services/resize-file.js +1 -1
  38. package/dist/modules/file/services/upload-file.d.ts +4 -6
  39. package/dist/modules/file/services/upload-file.d.ts.map +1 -1
  40. package/dist/modules/file/services/upload-file.js +1 -1
  41. package/dist/modules/resource/route.d.ts +0 -3
  42. package/dist/modules/resource/route.d.ts.map +1 -1
  43. package/dist/modules/resource/route.js +1 -1
  44. package/dist/modules/resource/schema.d.ts +3 -0
  45. package/dist/modules/resource/schema.d.ts.map +1 -1
  46. package/dist/modules/resource/schema.js +1 -1
  47. package/dist/modules/resource/services/add-note.js +1 -1
  48. package/dist/modules/resource/services/add-resource-file.js +1 -1
  49. package/dist/modules/resource/services/create-resource-relation.js +1 -1
  50. package/dist/modules/resource/services/create-resource.js +1 -1
  51. package/dist/modules/resource/services/delete-resource-relation.js +1 -1
  52. package/dist/modules/resource/services/delete-resource.js +1 -1
  53. package/dist/modules/resource/services/export-resource.d.ts.map +1 -1
  54. package/dist/modules/resource/services/export-resource.js +1 -1
  55. package/dist/modules/resource/services/get-resource.d.ts.map +1 -1
  56. package/dist/modules/resource/services/get-resource.js +1 -1
  57. package/dist/modules/resource/services/list-resource-relation.d.ts +2 -0
  58. package/dist/modules/resource/services/list-resource-relation.d.ts.map +1 -1
  59. package/dist/modules/resource/services/list-resource-relation.js +1 -1
  60. package/dist/modules/resource/services/list-resources.d.ts.map +1 -1
  61. package/dist/modules/resource/services/list-resources.js +1 -1
  62. package/dist/modules/resource/services/search-resource.d.ts.map +1 -1
  63. package/dist/modules/resource/services/search-resource.js +1 -1
  64. package/dist/modules/resource/services/suggest-resource.d.ts.map +1 -1
  65. package/dist/modules/resource/services/suggest-resource.js +1 -1
  66. package/dist/modules/resource/services/update-resource-relation.d.ts +10 -0
  67. package/dist/modules/resource/services/update-resource-relation.d.ts.map +1 -0
  68. package/dist/modules/resource/services/update-resource-relation.js +1 -0
  69. package/dist/modules/resource/services/update-resource.js +1 -1
  70. package/dist/modules/resource/services/upload-resource-file.js +1 -1
  71. package/dist/modules/system/route.d.ts.map +1 -1
  72. package/dist/modules/system/route.js +1 -1
  73. package/dist/modules/system/schema.js +1 -1
  74. package/dist/modules/system/services/check-system.d.ts.map +1 -1
  75. package/dist/modules/system/services/check-system.js +1 -1
  76. package/dist/modules/system/services/get-access.d.ts.map +1 -1
  77. package/dist/modules/system/services/get-access.js +1 -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.d.ts.map +1 -1
  81. package/dist/modules/system/services/get-audit-log.js +1 -1
  82. package/dist/modules/system/services/get-dictionary.js +1 -1
  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.d.ts.map +1 -1
  86. package/dist/modules/system/services/get-system-settings.js +1 -1
  87. package/dist/modules/system/services/list-dictionaries.js +1 -1
  88. package/dist/modules/system/services/set-access.d.ts.map +1 -1
  89. package/dist/modules/system/services/set-access.js +1 -1
  90. package/dist/modules/system/services/update-dictionary.d.ts.map +1 -1
  91. package/dist/modules/system/services/update-dictionary.js +1 -1
  92. package/dist/modules/system/services/update-system-settings.d.ts.map +1 -1
  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.js +1 -1
  101. package/dist/plugins/auth/index.js +1 -1
  102. package/dist/plugins/auth/verifyUser.js +1 -1
  103. package/dist/plugins/dictionary.d.ts +3 -0
  104. package/dist/plugins/dictionary.d.ts.map +1 -1
  105. package/dist/plugins/dictionary.js +1 -1
  106. package/dist/plugins/file.d.ts +3 -6
  107. package/dist/plugins/file.d.ts.map +1 -1
  108. package/dist/plugins/file.js +1 -1
  109. package/dist/plugins/index.d.ts +1 -0
  110. package/dist/plugins/index.d.ts.map +1 -1
  111. package/dist/plugins/index.js +1 -1
  112. package/dist/plugins/jwt.d.ts +4 -0
  113. package/dist/plugins/jwt.d.ts.map +1 -0
  114. package/dist/plugins/jwt.js +1 -0
  115. package/dist/plugins/logger/index.js +1 -1
  116. package/dist/plugins/logger/transport.js +1 -1
  117. package/dist/plugins/pg.d.ts.map +1 -1
  118. package/dist/plugins/pg.js +1 -1
  119. package/dist/plugins/redis.js +1 -1
  120. package/dist/plugins/resource/index.js +1 -1
  121. package/dist/plugins/resource/resource.d.ts.map +1 -1
  122. package/dist/plugins/resource/resource.js +1 -1
  123. package/dist/plugins/resource/resource.registry.js +1 -1
  124. package/dist/plugins/resource/resource.types.d.ts +18 -3
  125. package/dist/plugins/resource/resource.types.d.ts.map +1 -1
  126. package/dist/plugins/resource/services/add-dictionary-lookup-data.d.ts +3 -0
  127. package/dist/plugins/resource/services/add-dictionary-lookup-data.d.ts.map +1 -0
  128. package/dist/plugins/resource/services/add-dictionary-lookup-data.js +1 -0
  129. package/dist/plugins/resource/services/add-file-token.d.ts +3 -0
  130. package/dist/plugins/resource/services/add-file-token.d.ts.map +1 -0
  131. package/dist/plugins/resource/services/add-file-token.js +1 -0
  132. package/dist/plugins/resource/services/add-table-lookup-data.d.ts +4 -0
  133. package/dist/plugins/resource/services/add-table-lookup-data.d.ts.map +1 -0
  134. package/dist/plugins/resource/services/add-table-lookup-data.js +1 -0
  135. package/dist/plugins/resource/services/create-relation.js +1 -1
  136. package/dist/plugins/resource/services/create.d.ts.map +1 -1
  137. package/dist/plugins/resource/services/create.js +1 -1
  138. package/dist/plugins/resource/services/delete-relation.js +1 -1
  139. package/dist/plugins/resource/services/delete.d.ts.map +1 -1
  140. package/dist/plugins/resource/services/delete.js +1 -1
  141. package/dist/plugins/resource/services/find-one.d.ts +3 -2
  142. package/dist/plugins/resource/services/find-one.d.ts.map +1 -1
  143. package/dist/plugins/resource/services/find-one.js +1 -1
  144. package/dist/plugins/resource/services/find-relation.d.ts +3 -2
  145. package/dist/plugins/resource/services/find-relation.d.ts.map +1 -1
  146. package/dist/plugins/resource/services/find-relation.js +1 -1
  147. package/dist/plugins/resource/services/find.d.ts.map +1 -1
  148. package/dist/plugins/resource/services/find.js +1 -1
  149. package/dist/plugins/resource/services/update-relation.d.ts +11 -0
  150. package/dist/plugins/resource/services/update-relation.d.ts.map +1 -0
  151. package/dist/plugins/resource/services/update-relation.js +1 -0
  152. package/dist/plugins/resource/services/update.d.ts.map +1 -1
  153. package/dist/plugins/resource/services/update.js +1 -1
  154. package/dist/plugins/resource/utils/auto-index.d.ts +4 -0
  155. package/dist/plugins/resource/utils/auto-index.d.ts.map +1 -0
  156. package/dist/plugins/resource/utils/auto-index.js +1 -0
  157. package/dist/plugins/resource/utils/fields.js +1 -1
  158. package/dist/plugins/resource/utils/filters.d.ts +3 -2
  159. package/dist/plugins/resource/utils/filters.d.ts.map +1 -1
  160. package/dist/plugins/resource/utils/filters.js +1 -1
  161. package/dist/plugins/resource/utils/permissions.js +1 -1
  162. package/dist/plugins/resource/utils/sort.d.ts.map +1 -1
  163. package/dist/plugins/resource/utils/sort.js +1 -1
  164. package/dist/plugins/resource/utils/sql.js +1 -1
  165. package/dist/shared/getIP.js +1 -1
  166. package/migrations/20260905120000_add_user_foreign_keys.sql +42 -42
  167. package/package.json +3 -2
@@ -1 +1 @@
1
- (function(_0xbd1d4f,_0x173d81){const _0xa13d9=_0x4078,_0x471110=_0xbd1d4f();while(!![]){try{const _0x32a826=-parseInt(_0xa13d9(0x173))/0x1+-parseInt(_0xa13d9(0x16f))/0x2*(parseInt(_0xa13d9(0x176))/0x3)+parseInt(_0xa13d9(0x184))/0x4*(-parseInt(_0xa13d9(0x190))/0x5)+parseInt(_0xa13d9(0x177))/0x6+parseInt(_0xa13d9(0x199))/0x7*(-parseInt(_0xa13d9(0x17a))/0x8)+parseInt(_0xa13d9(0x187))/0x9+parseInt(_0xa13d9(0x185))/0xa;if(_0x32a826===_0x173d81)break;else _0x471110['push'](_0x471110['shift']());}catch(_0x483753){_0x471110['push'](_0x471110['shift']());}}}(_0x33a4,0x7378d));function _0x4078(_0x26cc28,_0xa598b6){_0x26cc28=_0x26cc28-0x16a;const _0x33a42a=_0x33a4();let _0x407894=_0x33a42a[_0x26cc28];return _0x407894;}import{NotFoundError,ValidationError}from'../../../errors.js';import _0x3ee195 from'sharp';function _0x33a4(){const _0x589c86=['70248wFLuhZ','1268982RWYApB','fit','btybo','2604464bUwNKW','KesIp','Ftorr','wBvSI','vYJKH','bFECH','pathOrToken','mhDFw','oofHq','isInteger','28mnkOkj','19597710vnKlic','sdpiL','6046389lRJjBs','BncMB','NoBZD','JDyyn','empty\x20file','iXvYI','lDKlf','get','File\x20path\x20is\x20required','287710lfGLWQ','File\x20not\x20found','exists','toBuffer','cover','wGONR','WITzh','path','MXuNn','14FBAqTN','vYQBA','resize','ZLKFx','UrnrP','pNXBX','file','height','74wPxPOP','Width\x20or\x20height\x20is\x20required','yLGSH','hdOxV','449814UQDLeQ','width','\x20must\x20be\x20a\x20positive\x20integer'];_0x33a4=function(){return _0x589c86;};return _0x33a4();}export async function resizeFile(_0x2d203b,_0x51b914){const _0x346d46=_0x4078,_0x1e8243={'iXvYI':_0x346d46(0x170),'NoBZD':function(_0x6da210,_0x312bd6){return _0x6da210===_0x312bd6;},'UrnrP':_0x346d46(0x181),'vYQBA':_0x346d46(0x179),'bFECH':_0x346d46(0x18b),'MXuNn':function(_0x488dd9,_0x5bf6fc,_0x35d6e8){return _0x488dd9(_0x5bf6fc,_0x35d6e8);},'wGONR':_0x346d46(0x174),'Ftorr':_0x346d46(0x16e),'wBvSI':function(_0x24bc59,_0x1a6981){return _0x24bc59&&_0x1a6981;},'hdOxV':_0x346d46(0x186),'KesIp':_0x346d46(0x191),'ZLKFx':function(_0x19aac8,_0x1204cd){return _0x19aac8(_0x1204cd);},'oofHq':_0x346d46(0x194)};if(!_0x51b914[_0x346d46(0x16d)]){if(_0x1e8243[_0x346d46(0x189)](_0x1e8243[_0x346d46(0x16b)],_0x1e8243[_0x346d46(0x19a)]))throw new _0x43c016(_0x1e8243[_0x346d46(0x18c)]);else throw new Error(_0x1e8243[_0x346d46(0x17f)]);}const _0x261253=_0x2d203b[_0x346d46(0x180)]??_0x2d203b[_0x346d46(0x197)];if(!_0x261253)throw new ValidationError(_0x346d46(0x18f));const _0x495d58=_0x1e8243[_0x346d46(0x198)](parseDimension,_0x2d203b[_0x346d46(0x174)],_0x1e8243[_0x346d46(0x195)]),_0x5c40dd=_0x1e8243[_0x346d46(0x198)](parseDimension,_0x2d203b[_0x346d46(0x16e)],_0x1e8243[_0x346d46(0x17c)]);if(_0x1e8243[_0x346d46(0x17d)](!_0x495d58,!_0x5c40dd)){if(_0x1e8243[_0x346d46(0x189)](_0x346d46(0x188),_0x1e8243[_0x346d46(0x172)]))return _0xf8500;else throw new ValidationError(_0x346d46(0x170));}if(!await _0x51b914[_0x346d46(0x16d)][_0x346d46(0x192)](_0x261253))throw new NotFoundError(_0x1e8243[_0x346d46(0x17b)]);return _0x1e8243[_0x346d46(0x16a)](_0x3ee195,await _0x51b914[_0x346d46(0x16d)][_0x346d46(0x18e)](_0x261253))[_0x346d46(0x19b)]({'width':_0x495d58,'height':_0x5c40dd,'fit':_0x2d203b[_0x346d46(0x178)]??_0x1e8243[_0x346d46(0x182)]})[_0x346d46(0x193)]();}function parseDimension(_0x4fb219,_0x55f1f9){const _0x415392=_0x4078,_0x39813b={'WITzh':function(_0x2d59e2,_0x81f6f){return _0x2d59e2===_0x81f6f;},'JDyyn':function(_0x20b446,_0xff5475){return _0x20b446(_0xff5475);},'pNXBX':function(_0x28ad3f,_0x27407d){return _0x28ad3f(_0x27407d);},'vYJKH':function(_0x42cba4,_0x184ae7){return _0x42cba4<=_0x184ae7;},'yLGSH':_0x415392(0x18d)};if(_0x4fb219===undefined||_0x39813b[_0x415392(0x196)](_0x4fb219,''))return undefined;const _0x4037e7=_0x39813b[_0x415392(0x16c)](Number,_0x4fb219);if(!Number[_0x415392(0x183)](_0x4037e7)||_0x39813b[_0x415392(0x17e)](_0x4037e7,0x0)){if(_0x39813b[_0x415392(0x171)]===_0x415392(0x18d))throw new ValidationError(_0x55f1f9+_0x415392(0x175));else{if(_0x39813b[_0x415392(0x196)](_0x50215e,_0x4dc5fd)||_0x3dcfd0==='')return _0x4a7548;const _0x1ad99d=_0x39813b[_0x415392(0x18a)](_0x8c30b4,_0x3dac01);if(!_0x2bc36a[_0x415392(0x183)](_0x1ad99d)||_0x1ad99d<=0x0)throw new _0x3696ec(_0x148d8a+_0x415392(0x175));return _0x1ad99d;}}return _0x4037e7;}
1
+ function U(){const D=['width','height','fit','cover','logs','file','File\x20not\x20found','startsWith','image/','Only\x20image\x20files\x20can\x20be\x20resized','isInteger','\x20must\x20be\x20a\x20positive\x20integer'];U=function(){return D;};return U();}function z(C,N){C=C-0x6f;const r=U();let p=r[C];return p;}import{NotFoundError,ValidationError}from'../../../errors.js';import{fileTypeFromBuffer}from'file-type';import{createHash}from'node:crypto';import{mkdir,readFile,writeFile}from'node:fs/promises';import C from'node:path';import N from'sharp';export async function resizeFile(r,p){const t=z,c=r['pathOrToken']??r['path'];if(!c)throw new ValidationError('File\x20path\x20is\x20required');const x=parseDimension(r[t(0x6f)],t(0x6f))??0xc8,m=parseDimension(r[t(0x70)],'height'),Q=createHash('sha256')['update'](c+':'+x+':'+(m??'auto')+':'+(r[t(0x71)]??t(0x72)))['digest']('hex'),u=C['resolve'](t(0x73),'resize'),L=C['join'](u,Q+'.jpg');try{return await readFile(L);}catch(F){if(F['code']!=='ENOENT')throw F;}if(!await p[t(0x74)]['exists'](c))throw new NotFoundError(t(0x75));const T=await p[t(0x74)]['get'](c),Y=await fileTypeFromBuffer(T);if(!Y?.['mime'][t(0x76)](t(0x77)))throw new ValidationError(t(0x78));const f=await N(T)['resize']({'width':x,'height':m,'fit':r[t(0x71)]??'cover'})['toBuffer']();return await mkdir(u,{'recursive':!![]}),await writeFile(L,f),f;}function parseDimension(r,p){const h=z;if(r===undefined||r==='')return undefined;const c=Number(r);if(!Number[h(0x79)](c)||c<=0x0)throw new ValidationError(p+h(0x7a));return c;}
@@ -1,15 +1,13 @@
1
- /**
2
- * Implements the upload file application service for the File module.
3
- */
4
1
  import type { AppContext, User } from "../../../context.js";
2
+ import type { MultipartFile } from "@fastify/multipart";
5
3
  export interface UploadFileParams {
6
4
  user?: User;
7
- file: Buffer;
5
+ file: MultipartFile;
8
6
  metadata: {
9
7
  name?: string;
10
8
  path?: string;
11
- entityType?: string;
12
- entityId?: string;
9
+ resource?: string;
10
+ resourceId?: string;
13
11
  };
14
12
  }
15
13
  export declare function uploadFile(params: UploadFileParams, ctx: AppContext): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"upload-file.d.ts","sourceRoot":"","sources":["../../../../src/modules/file/services/upload-file.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AACD,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,CA0Bd"}
1
+ {"version":3,"file":"upload-file.d.ts","sourceRoot":"","sources":["../../../../src/modules/file/services/upload-file.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AACD,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,CAqDd"}
@@ -1 +1 @@
1
- (function(_0x270335,_0x657875){const _0x19b6e2=_0x428a,_0x3d0519=_0x270335();while(!![]){try{const _0x54c109=-parseInt(_0x19b6e2(0x193))/0x1*(parseInt(_0x19b6e2(0x18d))/0x2)+parseInt(_0x19b6e2(0x19a))/0x3+parseInt(_0x19b6e2(0x191))/0x4+-parseInt(_0x19b6e2(0x18c))/0x5+parseInt(_0x19b6e2(0x1a1))/0x6*(-parseInt(_0x19b6e2(0x192))/0x7)+parseInt(_0x19b6e2(0x19b))/0x8+parseInt(_0x19b6e2(0x198))/0x9;if(_0x54c109===_0x657875)break;else _0x3d0519['push'](_0x3d0519['shift']());}catch(_0x173a27){_0x3d0519['push'](_0x3d0519['shift']());}}}(_0x57f2,0x78548));function _0x428a(_0x3ba4ae,_0x172a0c){_0x3ba4ae=_0x3ba4ae-0x18b;const _0x57f230=_0x57f2();let _0x428ab1=_0x57f230[_0x3ba4ae];return _0x428ab1;}import{randomUUID}from'node:crypto';export async function uploadFile(_0x27753b,_0x21be7f){const _0x1d42d3=_0x428a,_0xd52890={'WxHsC':_0x1d42d3(0x18b),'ELUmk':function(_0x4ea3e3){return _0x4ea3e3();}},_0x58e314=(_0x27753b[_0x1d42d3(0x1a2)][_0x1d42d3(0x18f)]??_0xd52890[_0x1d42d3(0x19f)])[_0x1d42d3(0x194)](/[^a-zA-Z0-9._-]/g,'_'),_0x5c36aa=_0x27753b[_0x1d42d3(0x1a2)][_0x1d42d3(0x197)]??_0x1d42d3(0x19d)+_0xd52890[_0x1d42d3(0x19e)](randomUUID)+'-'+_0x58e314;await _0x21be7f[_0x1d42d3(0x18b)][_0x1d42d3(0x18e)](_0x5c36aa,_0x27753b[_0x1d42d3(0x18b)]);const _0x4f44e6=await _0x21be7f['pg'][_0x1d42d3(0x1a0)](_0x1d42d3(0x19c),[_0x27753b[_0x1d42d3(0x1a2)][_0x1d42d3(0x199)]??null,_0x27753b[_0x1d42d3(0x1a2)][_0x1d42d3(0x196)]??null,_0x5c36aa,_0x27753b[_0x1d42d3(0x18b)][_0x1d42d3(0x190)]]);return _0x4f44e6[_0x1d42d3(0x195)][0x0];}function _0x57f2(){const _0x4e685e=['3674510DQrxHb','2VTgyUB','put','name','length','2940412ZvFFde','77QIozhl','915451qHdOMM','replace','rows','entityId','path','10851336kMpDlA','entityType','1545825kAOOnK','5335656IbYmSe','\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.files\x20(resource,\x20resource_id,\x20file_path,\x20size)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20*\x0a\x20\x20\x20\x20\x20\x20','uploads/','ELUmk','WxHsC','query','534444CNaJLH','metadata','file'];_0x57f2=function(){return _0x4e685e;};return _0x57f2();}
1
+ function z(C,N){C=C-0x12a;const r=U();let p=r[C];return p;}import{fileTypeFromBuffer}from'file-type';import C from'../mime.js';import{randomUUID}from'node:crypto';function U(){const F=['metadata','replace','getFullYear','getDate','padStart','resourceId','file','put','\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.files\x20(resource,\x20resource_id,\x20file_path,\x20file_type,\x20size,uploaded_name,file_name,ext,created_by)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5,\x20$6,\x20$7,\x20$8,\x20$9)\x0a\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20*\x0a\x20\x20\x20\x20\x20\x20','resource','name','split','pop'];U=function(){return F;};return U();}export async function uploadFile(N,r){const f=z,p=(N[f(0x12a)]['name']??randomUUID())[f(0x12b)](/[^a-zA-Z0-9._-]/g,'_'),c=new Date(),x=String(c[f(0x12c)]())['slice'](-0x2),m=String(c['getMonth']()+0x1)['padStart'](0x2,'0'),Q=String(c[f(0x12d)]())[f(0x12e)](0x2,'0'),u=N['metadata']['path']??(N['metadata']['resource']?N['metadata']['resource']+'/'+(N['metadata'][f(0x12f)]??randomUUID())+'/'+p:null)??'uploads/'+x+'/'+m+'-'+Q+'/'+p,L=await N['file']['toBuffer'](),T=await fileTypeFromBuffer(L);if(!C['has'](N[f(0x130)]['mimetype'])&&(T?.['mime']?!C['has'](T['mime']):!![]))throw new Error('Unsupported\x20file\x20type:\x20'+N[f(0x130)]['mimetype']);await r['file'][f(0x131)](u,L);const Y=await r['pg']['query'](f(0x132),[N[f(0x12a)][f(0x133)]??null,N['metadata']['resourceId']??null,u,N[f(0x130)]['mimetype'],N['file'][f(0x130)]['bytesRead'],N['metadata'][f(0x134)],p,N['file']['mimetype'][f(0x135)]('/')[f(0x136)]()??null,N['user']?.['id']??null]);return Y['rows'][0x0];}
@@ -1,6 +1,3 @@
1
- /**
2
- * Registers HTTP routes for this FCore module and delegates operations to application services.
3
- */
4
1
  import type { FastifyPluginAsync } from "fastify";
5
2
  import type { AppContext } from "../../context.js";
6
3
  export declare function resourceRoutes(ctx: AppContext): FastifyPluginAsync;
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/modules/resource/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAkBnD,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,kBAAkB,CA4PlE"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/modules/resource/route.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAsBnD,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,kBAAkB,CA+RlE"}
@@ -1 +1 @@
1
- const _0x2f45f1=_0x22ab;(function(_0x9fe4fa,_0x397dd4){const _0x5567bc=_0x22ab,_0x391327=_0x9fe4fa();while(!![]){try{const _0x45f6ca=parseInt(_0x5567bc(0xff))/0x1*(-parseInt(_0x5567bc(0xd7))/0x2)+-parseInt(_0x5567bc(0x104))/0x3+-parseInt(_0x5567bc(0xc6))/0x4*(parseInt(_0x5567bc(0xec))/0x5)+parseInt(_0x5567bc(0x116))/0x6*(-parseInt(_0x5567bc(0x110))/0x7)+-parseInt(_0x5567bc(0xd2))/0x8*(parseInt(_0x5567bc(0xc9))/0x9)+parseInt(_0x5567bc(0x11a))/0xa*(parseInt(_0x5567bc(0xf3))/0xb)+parseInt(_0x5567bc(0xea))/0xc;if(_0x45f6ca===_0x397dd4)break;else _0x391327['push'](_0x391327['shift']());}catch(_0x11ed92){_0x391327['push'](_0x391327['shift']());}}}(_0x360f,0x38634));import{listResources}from'./services/list-resources.js';function _0x360f(){const _0x5daccd=['/api/resource/:resource/:id','49469QSyiQl','Returns\x20suggested\x20values\x20for\x20a\x20resource\x20field.','Deletes\x20a\x20record\x20from\x20a\x20registered\x20resource.','Puhsc','Returns\x20related\x20records\x20for\x20a\x20resource\x20record.','resourceField','258WLapeo','FDWaK','MlWQi','put','2870JWgyLu','OCvNQ','/api/resource/:resource/search','Upload\x20resource\x20file','rCXMi','mGGmI','List\x20resource\x20records','Returns\x20one\x20record\x20from\x20a\x20registered\x20resource.','hMIPa','iSrpG','Exports\x20readable\x20records\x20from\x20a\x20registered\x20resource.','params','resourceId','Get\x20resource\x20record','UYLId','get','184936DeUbwB','EiPsA','ijRyb','27YdqaTZ','/api/resource/:resource/:id/:relation','delete','QTBNU','IPRyu','/api/resource/:resource/export','/api/resource/:resource','Creates\x20a\x20record\x20in\x20a\x20registered\x20resource.','vQDCg','263688JGRwul','user','lILXP','Search\x20resource','Uploads\x20a\x20file\x20to\x20a\x20Resource\x20record\x20and\x20stores\x20its\x20metadata.','2VzDDXe','permissions','description','hWbmy','fDqQW','Creates\x20a\x20relation\x20for\x20a\x20resource\x20record.','*:read','/api/resource/:resource/:id/upload','Create\x20resource\x20record','Returns\x20records\x20from\x20a\x20registered\x20resource.','uploadResourceFile','aYiAR','Delete\x20resource\x20record','Searches\x20records\x20in\x20a\x20registered\x20resource.','bNIOq','Update\x20resource\x20record','Suggest\x20resource\x20values','resourceIdRelationId','exportResource','17242332xozFxJ','access','35hoagsj','fcore','schema','WBPxn','jxpkb','resourceIdRelation','/api/resource/:resource/:id/:relation/:relationId','4345hPtuKB','resource','uploadResourceFileBody','bRvnx','hQVRu','Create\x20resource\x20relation','tags','body','yXtTe','ZYMRf','resource:update','suggestQuery','296987rZaEkC','sqTrL','nOWYm','Deletes\x20a\x20relation\x20from\x20a\x20resource\x20record.','List\x20resource\x20relations','887619auafmR','summary','Delete\x20resource\x20relation','query','exportResourceQuery','/api/suggest/:resource/:field','Export\x20resource\x20records','vTucH','mQjnx','post','Updates\x20a\x20record\x20in\x20a\x20registered\x20resource.'];_0x360f=function(){return _0x5daccd;};return _0x360f();}import{getResource}from'./services/get-resource.js';import{createResource}from'./services/create-resource.js';import{updateResource}from'./services/update-resource.js';import{deleteResource}from'./services/delete-resource.js';import{listResourceRelation}from'./services/list-resource-relation.js';import{createResourceRelation}from'./services/create-resource-relation.js';import{deleteResourceRelation}from'./services/delete-resource-relation.js';import{searchResource}from'./services/search-resource.js';import{exportResource}from'./services/export-resource.js';import{suggestResource}from'./services/suggest-resource.js';function _0x22ab(_0x5f21fe,_0x386867){_0x5f21fe=_0x5f21fe-0xbe;const _0x360fb3=_0x360f();let _0x22ab9d=_0x360fb3[_0x5f21fe];return _0x22ab9d;}import{uploadResourceFile}from'./services/upload-resource-file.js';import{resourceSchemas}from'./schema.js';const user=_0x40dbfe=>_0x40dbfe[_0x2f45f1(0xd3)];export function resourceRoutes(_0x635041){const _0x3eeac0=_0x2f45f1,_0x3cb7e4={};_0x3cb7e4[_0x3eeac0(0xcd)]=_0x3eeac0(0x11c),_0x3cb7e4[_0x3eeac0(0xf6)]=_0x3eeac0(0xed),_0x3cb7e4[_0x3eeac0(0x11e)]=_0x3eeac0(0xf4),_0x3cb7e4[_0x3eeac0(0xc4)]=_0x3eeac0(0xd5),_0x3cb7e4[_0x3eeac0(0xbe)]=_0x3eeac0(0xe4),_0x3cb7e4[_0x3eeac0(0x10c)]=_0x3eeac0(0xd3),_0x3cb7e4[_0x3eeac0(0xe2)]=_0x3eeac0(0x109),_0x3cb7e4[_0x3eeac0(0x117)]=_0x3eeac0(0xe7),_0x3cb7e4[_0x3eeac0(0x10b)]=_0x3eeac0(0x111),_0x3cb7e4[_0x3eeac0(0xfb)]=_0x3eeac0(0xce),_0x3cb7e4[_0x3eeac0(0xbf)]=_0x3eeac0(0x10a),_0x3cb7e4[_0x3eeac0(0xef)]=_0x3eeac0(0xc0),_0x3cb7e4[_0x3eeac0(0xdb)]=_0x3eeac0(0xdd),_0x3cb7e4[_0x3eeac0(0xf0)]=_0x3eeac0(0xe0),_0x3cb7e4[_0x3eeac0(0xe5)]=_0x3eeac0(0xd0),_0x3cb7e4[_0x3eeac0(0x11b)]=_0x3eeac0(0x10f),_0x3cb7e4[_0x3eeac0(0xd1)]=_0x3eeac0(0xe6),_0x3cb7e4[_0x3eeac0(0xda)]=_0x3eeac0(0xe3),_0x3cb7e4[_0x3eeac0(0x100)]=_0x3eeac0(0x112),_0x3cb7e4[_0x3eeac0(0xc7)]=_0x3eeac0(0xde),_0x3cb7e4[_0x3eeac0(0xcc)]=_0x3eeac0(0x11d),_0x3cb7e4[_0x3eeac0(0xf7)]=_0x3eeac0(0xd6),_0x3cb7e4[_0x3eeac0(0x101)]=_0x3eeac0(0xfd),_0x3cb7e4[_0x3eeac0(0xd4)]=_0x3eeac0(0x103),_0x3cb7e4[_0x3eeac0(0xfc)]=_0x3eeac0(0x114),_0x3cb7e4[_0x3eeac0(0xc8)]=_0x3eeac0(0xdc),_0x3cb7e4[_0x3eeac0(0x11f)]=_0x3eeac0(0xf2),_0x3cb7e4[_0x3eeac0(0x118)]=_0x3eeac0(0x106),_0x3cb7e4[_0x3eeac0(0x113)]=_0x3eeac0(0x102);const _0x9c0b1d=_0x3cb7e4;return async _0xbf8b3e=>{const _0x55d241=_0x3eeac0;_0xbf8b3e[_0x55d241(0xc5)](_0x9c0b1d[_0x55d241(0xcd)],{'schema':{'tags':[_0x9c0b1d[_0x55d241(0xf6)],_0x9c0b1d[_0x55d241(0x11e)]],'summary':_0x9c0b1d[_0x55d241(0xc4)],'description':_0x9c0b1d[_0x55d241(0xbe)],'access':_0x9c0b1d[_0x55d241(0x10c)],'permissions':[],'params':resourceSchemas[_0x55d241(0xf4)]}},async _0xebbca6=>searchResource({..._0xebbca6[_0x55d241(0x107)],..._0xebbca6[_0x55d241(0xc1)],'user':user(_0xebbca6)},_0x635041)),_0xbf8b3e[_0x55d241(0xc5)](_0x9c0b1d[_0x55d241(0xe2)],{'schema':{'tags':[_0x9c0b1d[_0x55d241(0xf6)],_0x9c0b1d[_0x55d241(0x11e)]],'summary':_0x9c0b1d[_0x55d241(0x117)],'description':_0x9c0b1d[_0x55d241(0x10b)],'access':_0x9c0b1d[_0x55d241(0x10c)],'permissions':[],'params':resourceSchemas[_0x55d241(0x115)],'querystring':resourceSchemas[_0x55d241(0xfe)]}},async _0x2b26af=>suggestResource({..._0x2b26af[_0x55d241(0x107)],..._0x2b26af[_0x55d241(0xc1)],'user':user(_0x2b26af)},_0x635041)),_0xbf8b3e[_0x55d241(0xc5)](_0x9c0b1d[_0x55d241(0xfb)],{'schema':{'tags':[_0x55d241(0xed),_0x9c0b1d[_0x55d241(0x11e)]],'summary':_0x9c0b1d[_0x55d241(0xbf)],'description':_0x9c0b1d[_0x55d241(0xef)],'access':_0x9c0b1d[_0x55d241(0x10c)],'permissions':[_0x9c0b1d[_0x55d241(0xdb)]],'params':resourceSchemas[_0x55d241(0xe9)],'querystring':resourceSchemas[_0x55d241(0x108)]}},async _0x1f92fd=>exportResource({..._0x1f92fd[_0x55d241(0x107)],..._0x1f92fd[_0x55d241(0xc1)],'user':user(_0x1f92fd)},_0x635041));const _0x252b3c={};_0x252b3c[_0x55d241(0xf9)]=[_0x55d241(0xed),_0x9c0b1d[_0x55d241(0x11e)]],_0x252b3c[_0x55d241(0x105)]=_0x55d241(0x120),_0x252b3c[_0x55d241(0xd9)]=_0x9c0b1d[_0x55d241(0xf0)],_0x252b3c[_0x55d241(0xeb)]=_0x9c0b1d[_0x55d241(0x10c)],_0x252b3c[_0x55d241(0xd8)]=[],_0x252b3c[_0x55d241(0xc1)]=resourceSchemas[_0x55d241(0xf4)];const _0x2940d1={};_0x2940d1[_0x55d241(0xee)]=_0x252b3c,_0xbf8b3e[_0x55d241(0xc5)](_0x55d241(0xcf),_0x2940d1,async _0x105743=>listResources({..._0x105743[_0x55d241(0x107)],..._0x105743[_0x55d241(0xc1)],'user':user(_0x105743)},_0x635041));const _0x3c2a55={};_0x3c2a55[_0x55d241(0xf9)]=[_0x9c0b1d[_0x55d241(0xf6)],_0x9c0b1d[_0x55d241(0x11e)]],_0x3c2a55[_0x55d241(0x105)]=_0x55d241(0xdf),_0x3c2a55[_0x55d241(0xd9)]=_0x9c0b1d[_0x55d241(0xe5)],_0x3c2a55[_0x55d241(0xeb)]=_0x9c0b1d[_0x55d241(0x10c)],_0x3c2a55[_0x55d241(0xd8)]=[],_0x3c2a55[_0x55d241(0xc1)]=resourceSchemas[_0x55d241(0xf4)];const _0x2df7ea={};_0x2df7ea[_0x55d241(0xee)]=_0x3c2a55,_0xbf8b3e[_0x55d241(0x10d)](_0x55d241(0xcf),_0x2df7ea,async _0x579147=>createResource({..._0x579147[_0x55d241(0xc1)],'data':_0x579147[_0x55d241(0xfa)],'user':user(_0x579147)},_0x635041)),_0xbf8b3e[_0x55d241(0xc5)](_0x9c0b1d[_0x55d241(0x11b)],{'schema':{'tags':[_0x55d241(0xed),_0x9c0b1d[_0x55d241(0x11e)]],'summary':_0x55d241(0xc3),'description':_0x55d241(0x121),'access':_0x9c0b1d[_0x55d241(0x10c)],'permissions':[],'params':resourceSchemas[_0x55d241(0xc2)]}},async _0xcde646=>getResource({..._0xcde646[_0x55d241(0xc1)],'user':user(_0xcde646)},_0x635041)),_0xbf8b3e[_0x55d241(0x119)](_0x9c0b1d[_0x55d241(0x11b)],{'schema':{'tags':[_0x9c0b1d[_0x55d241(0xf6)],_0x9c0b1d[_0x55d241(0x11e)]],'summary':_0x9c0b1d[_0x55d241(0xd1)],'description':_0x55d241(0x10e),'access':_0x9c0b1d[_0x55d241(0x10c)],'permissions':[],'params':resourceSchemas[_0x55d241(0xc2)]}},async _0x238a47=>updateResource({..._0x238a47[_0x55d241(0xc1)],'patch':_0x238a47[_0x55d241(0xfa)],'user':user(_0x238a47)},_0x635041)),_0xbf8b3e[_0x55d241(0xcb)](_0x9c0b1d[_0x55d241(0x11b)],{'schema':{'tags':[_0x9c0b1d[_0x55d241(0xf6)],_0x9c0b1d[_0x55d241(0x11e)]],'summary':_0x9c0b1d[_0x55d241(0xda)],'description':_0x9c0b1d[_0x55d241(0x100)],'access':_0x9c0b1d[_0x55d241(0x10c)],'permissions':[],'params':resourceSchemas[_0x55d241(0xc2)]}},async _0x21efd0=>deleteResource({..._0x21efd0[_0x55d241(0xc1)],'user':user(_0x21efd0)},_0x635041)),_0xbf8b3e[_0x55d241(0x10d)](_0x9c0b1d[_0x55d241(0xc7)],{'schema':{'tags':[_0x55d241(0xed),_0x55d241(0xf4)],'summary':_0x9c0b1d[_0x55d241(0xcc)],'description':_0x9c0b1d[_0x55d241(0xf7)],'access':_0x9c0b1d[_0x55d241(0x10c)],'permissions':[_0x9c0b1d[_0x55d241(0x101)]],'params':resourceSchemas[_0x55d241(0xe1)],'body':resourceSchemas[_0x55d241(0xf5)]}},async _0x431847=>uploadResourceFile({..._0x431847[_0x55d241(0xc1)],..._0x431847[_0x55d241(0xfa)],'user':user(_0x431847)},_0x635041));const _0x50f57c={};_0x50f57c[_0x55d241(0xf9)]=[_0x9c0b1d[_0x55d241(0xf6)],_0x9c0b1d[_0x55d241(0x11e)]],_0x50f57c[_0x55d241(0x105)]=_0x9c0b1d[_0x55d241(0xd4)],_0x50f57c[_0x55d241(0xd9)]=_0x9c0b1d[_0x55d241(0xfc)],_0x50f57c[_0x55d241(0xeb)]=_0x9c0b1d[_0x55d241(0x10c)],_0x50f57c[_0x55d241(0xd8)]=[],_0x50f57c[_0x55d241(0xc1)]=resourceSchemas[_0x55d241(0xf1)];const _0x14ee5e={};_0x14ee5e[_0x55d241(0xee)]=_0x50f57c,_0xbf8b3e[_0x55d241(0xc5)](_0x55d241(0xca),_0x14ee5e,async _0x4b1c01=>listResourceRelation({..._0x4b1c01[_0x55d241(0x107)],..._0x4b1c01[_0x55d241(0xc1)],'user':user(_0x4b1c01)},_0x635041));const _0x234a7a={};_0x234a7a[_0x55d241(0xf9)]=[_0x9c0b1d[_0x55d241(0xf6)],_0x9c0b1d[_0x55d241(0x11e)]],_0x234a7a[_0x55d241(0x105)]=_0x55d241(0xf8),_0x234a7a[_0x55d241(0xd9)]=_0x9c0b1d[_0x55d241(0xc8)],_0x234a7a[_0x55d241(0xeb)]=_0x55d241(0xd3),_0x234a7a[_0x55d241(0xd8)]=[],_0x234a7a[_0x55d241(0xc1)]=resourceSchemas[_0x55d241(0xf1)];const _0x8fdc43={};_0x8fdc43[_0x55d241(0xee)]=_0x234a7a,_0xbf8b3e[_0x55d241(0x10d)](_0x55d241(0xca),_0x8fdc43,async _0x24c2fb=>createResourceRelation({..._0x24c2fb[_0x55d241(0xc1)],'data':_0x24c2fb[_0x55d241(0xfa)],'user':user(_0x24c2fb)},_0x635041)),_0xbf8b3e[_0x55d241(0xcb)](_0x9c0b1d[_0x55d241(0x11f)],{'schema':{'tags':[_0x55d241(0xed),_0x9c0b1d[_0x55d241(0x11e)]],'summary':_0x9c0b1d[_0x55d241(0x118)],'description':_0x9c0b1d[_0x55d241(0x113)],'access':_0x55d241(0xd3),'permissions':[],'params':resourceSchemas[_0x55d241(0xe8)]}},async _0x5221f8=>deleteResourceRelation({..._0x5221f8[_0x55d241(0xc1)],'user':user(_0x5221f8)},_0x635041));};}
1
+ const m=z;function U(){const L=['user','get','/api/resource/:resource/search','resource','Searches\x20records\x20in\x20a\x20registered\x20resource.','/api/suggest/:resource/:field','fcore','Returns\x20suggested\x20values\x20for\x20a\x20resource\x20field.','suggestQuery','/api/resource/:resource/export','Exports\x20readable\x20records\x20from\x20a\x20registered\x20resource.','params','/api/resource/:resource/:id','resourceIncludeQuery','post','/api/resource/:resource/:id/upload','uploadResourceFile','permissions',':update','fields','resourceIdRelation','/api/resource/:resource/:id/:relation','Delete\x20resource\x20relation'];U=function(){return L;};return U();}import{ForbiddenError}from'../../errors.js';import{listResources}from'./services/list-resources.js';import{getResource}from'./services/get-resource.js';import{createResource}from'./services/create-resource.js';import{updateResource}from'./services/update-resource.js';import{deleteResource}from'./services/delete-resource.js';import{listResourceRelation}from'./services/list-resource-relation.js';import{createResourceRelation}from'./services/create-resource-relation.js';import{updateResourceRelation}from'./services/update-resource-relation.js';import{deleteResourceRelation}from'./services/delete-resource-relation.js';import{searchResource}from'./services/search-resource.js';import{exportResource}from'./services/export-resource.js';import{suggestResource}from'./services/suggest-resource.js';function z(C,N){C=C-0x1bf;const r=U();let p=r[C];return p;}import{resourceSchemas}from'./schema.js';import{uploadFile}from'../file/services/upload-file.js';const user=C=>C[m(0x1bf)];export function resourceRoutes(C){return async N=>{const Q=z;N[Q(0x1c0)](Q(0x1c1),{'schema':{'tags':['fcore',Q(0x1c2)],'summary':'Search\x20resource','description':Q(0x1c3),'access':'user','permissions':[],'params':resourceSchemas['resource']}},async r=>searchResource({...r['query'],...r['params'],'user':user(r)},C)),N[Q(0x1c0)](Q(0x1c4),{'schema':{'tags':[Q(0x1c5),Q(0x1c2)],'summary':'Suggest\x20resource\x20values','description':Q(0x1c6),'access':Q(0x1bf),'permissions':[],'params':resourceSchemas['resourceField'],'querystring':resourceSchemas[Q(0x1c7)]}},async r=>suggestResource({...r['query'],...r['params'],'user':user(r)},C)),N['get'](Q(0x1c8),{'schema':{'tags':['fcore',Q(0x1c2)],'summary':'Export\x20resource\x20records','description':Q(0x1c9),'access':'user','permissions':['*:read'],'params':resourceSchemas['exportResource'],'querystring':resourceSchemas['exportResourceQuery']}},async r=>exportResource({...r['query'],...r['params'],'user':user(r)},C)),N['get']('/api/resource/:resource',{'schema':{'tags':['fcore','resource'],'summary':'List\x20resource\x20records','description':'Returns\x20records\x20from\x20a\x20registered\x20resource.','access':'user','permissions':[],'params':resourceSchemas[Q(0x1c2)]}},async r=>listResources({...r['query'],...r['params'],'user':user(r)},C)),N['post']('/api/resource/:resource',{'schema':{'tags':['fcore',Q(0x1c2)],'summary':'Create\x20resource\x20record','description':'Creates\x20a\x20record\x20in\x20a\x20registered\x20resource.','access':'user','permissions':[],'params':resourceSchemas['resource']}},async r=>createResource({...r[Q(0x1ca)],'data':r['body'],'user':user(r)},C)),N['get'](Q(0x1cb),{'schema':{'tags':['fcore','resource'],'summary':'Get\x20resource\x20record','description':'Returns\x20one\x20record\x20from\x20a\x20registered\x20resource.','access':'user','permissions':[],'params':resourceSchemas['resourceId'],'querystring':resourceSchemas[Q(0x1cc)]}},async r=>getResource({...r['query'],...r['params'],'user':user(r)},C)),N['put']('/api/resource/:resource/:id',{'schema':{'tags':['fcore','resource'],'summary':'Update\x20resource\x20record','description':'Updates\x20a\x20record\x20in\x20a\x20registered\x20resource.','access':Q(0x1bf),'permissions':[],'params':resourceSchemas['resourceId']}},async r=>updateResource({...r[Q(0x1ca)],'patch':r['body'],'user':user(r)},C)),N['delete']('/api/resource/:resource/:id',{'schema':{'tags':[Q(0x1c5),'resource'],'summary':'Delete\x20resource\x20record','description':'Deletes\x20a\x20record\x20from\x20a\x20registered\x20resource.','access':'user','permissions':[],'params':resourceSchemas['resourceId']}},async r=>deleteResource({...r[Q(0x1ca)],'user':user(r)},C)),N[Q(0x1cd)](Q(0x1ce),{'schema':{'tags':[Q(0x1c5),'resource'],'summary':'Upload\x20resource\x20file','description':'Uploads\x20a\x20file\x20to\x20a\x20Resource\x20record\x20and\x20stores\x20its\x20metadata.','access':'user','permissions':[],'params':resourceSchemas[Q(0x1cf)]}},async r=>{const u=Q,p=await r['file']();if(!p)throw new Error('File\x20is\x20required');const c=r['params'][u(0x1c2)],x=r['params']['id'];if(r['user']?.['type']!=='admin'&&!r[u(0x1bf)]?.[u(0x1d0)]['includes'](c+':update'))throw new ForbiddenError('Missing\x20permission:\x20'+c+u(0x1d1));return uploadFile({'file':p,'metadata':{'name':p['filename'],'path':p[u(0x1d2)]['path']?.['value'],'resource':c,'resourceId':x},'user':r['user']},C);}),N['get']('/api/resource/:resource/:id/:relation',{'schema':{'tags':['fcore','resource'],'summary':'List\x20resource\x20relations','description':'Returns\x20related\x20records\x20for\x20a\x20resource\x20record.','access':'user','permissions':[],'schema':{'params':resourceSchemas[Q(0x1d3)]}}},async r=>listResourceRelation({...r['query'],...r['params'],'user':user(r)},C)),N['post'](Q(0x1d4),{'schema':{'tags':[Q(0x1c5),'resource'],'summary':'Create\x20resource\x20relation','description':'Creates\x20a\x20relation\x20for\x20a\x20resource\x20record.','access':'user','permissions':[],'params':resourceSchemas[Q(0x1d3)]}},async r=>createResourceRelation({...r['params'],'data':r['body'],'user':user(r)},C)),N['delete']('/api/resource/:resource/:id/:relation/:relationId',{'schema':{'tags':['fcore','resource'],'summary':Q(0x1d5),'description':'Deletes\x20a\x20relation\x20from\x20a\x20resource\x20record.','access':Q(0x1bf),'permissions':[],'params':resourceSchemas['resourceIdRelationId']}},async r=>deleteResourceRelation({...r['params'],'user':user(r)},C)),N['put']('/api/resource/:resource/:id/:relation/:relationId',{'schema':{'tags':[Q(0x1c5),'resource'],'summary':'Update\x20resource\x20relation','description':'Updates\x20a\x20related\x20resource\x20record.','access':'user','permissions':[],'params':resourceSchemas['resourceIdRelationId']}},async r=>updateResourceRelation({...r[Q(0x1ca)],'data':r['body'],'user':user(r)},C));};}
@@ -36,6 +36,9 @@ export declare const resourceSchemas: {
36
36
  resource: import("@sinclair/typebox").TString;
37
37
  id: import("@sinclair/typebox").TString;
38
38
  }>;
39
+ resourceIncludeQuery: import("@sinclair/typebox").TObject<{
40
+ include: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
41
+ }>;
39
42
  resourceIdRelation: import("@sinclair/typebox").TObject<{
40
43
  resource: import("@sinclair/typebox").TString;
41
44
  id: import("@sinclair/typebox").TString;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/resource/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,aAAa;QACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;QACrC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB;CACF;AAED,eAAO,MAAM,UAAU,qCAIrB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,eAAO,MAAM,eAAe;IAC1B,cAAc;;;IACd,QAAQ;;;IACR,cAAc;;;IACd,aAAa;;;;IACb,YAAY;;;;;IAKZ,UAAU;;;;IACV,kBAAkB;;;;;IAKlB,oBAAoB;;;;;;IAMpB,kBAAkB;;;;IAIlB,sBAAsB;;;;IAItB,mBAAmB;;;;;;;;CAQpB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/resource/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,aAAa;QACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;QACrC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB;CACF;AAED,eAAO,MAAM,UAAU,qCAIrB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,eAAO,MAAM,eAAe;IAC1B,cAAc;;;IACd,QAAQ;;;IACR,cAAc;;;IACd,aAAa;;;;IACb,YAAY;;;;;IAKZ,UAAU;;;;IACV,oBAAoB;;;IAGpB,kBAAkB;;;;;IAKlB,oBAAoB;;;;;;IAMpB,kBAAkB;;;;IAIlB,sBAAsB;;;;IAItB,mBAAmB;;;;;;;;CAQpB,CAAC"}
@@ -1 +1 @@
1
- const _0x316693=_0x3506;function _0x480c(){const _0x1147c6=['^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$','666738crrHlv','5323368VcLlew','670SEImDW','3712740VQprZi','relation','4rkGiUB','16891cBgZxn','Integer','minLength','Record','field','resource','7563252QiGXWG','minimum','156258tZMwsp','1272XqrsXd','44vGEEWq','5BMgGOb','String','1867623demgdi','Any','name','maximum','Object','Unknown','pattern','Optional','maxLength','relationId','Array'];_0x480c=function(){return _0x1147c6;};return _0x480c();}(function(_0x1e5d2a,_0xd5fc8c){const _0x376eda=_0x3506,_0x5329ae=_0x1e5d2a();while(!![]){try{const _0x4f8ff6=parseInt(_0x376eda(0x1a6))/0x1+-parseInt(_0x376eda(0x1ab))/0x2*(parseInt(_0x376eda(0x1b9))/0x3)+-parseInt(_0x376eda(0x1a9))/0x4+-parseInt(_0x376eda(0x1b7))/0x5*(-parseInt(_0x376eda(0x1b2))/0x6)+parseInt(_0x376eda(0x1ac))/0x7*(parseInt(_0x376eda(0x1b5))/0x8)+parseInt(_0x376eda(0x1b4))/0x9*(-parseInt(_0x376eda(0x1a8))/0xa)+-parseInt(_0x376eda(0x1b6))/0xb*(-parseInt(_0x376eda(0x1a7))/0xc);if(_0x4f8ff6===_0xd5fc8c)break;else _0x5329ae['push'](_0x5329ae['shift']());}catch(_0x50ddfd){_0x5329ae['push'](_0x5329ae['shift']());}}}(_0x480c,0xb6d52));import{Type}from'@sinclair/typebox';const _0x9dfa74={};_0x9dfa74[_0x316693(0x1ae)]=0x1,_0x9dfa74[_0x316693(0x1a2)]=0x80,_0x9dfa74[_0x316693(0x1a0)]=_0x316693(0x1a5);export const identifier=Type[_0x316693(0x1b8)](_0x9dfa74);const _0x4574bc={};_0x4574bc[_0x316693(0x1bb)]=identifier;const _0x29b697={};_0x29b697[_0x316693(0x1b1)]=identifier;const _0x20897d={};_0x20897d[_0x316693(0x1b1)]=identifier;const _0x210b8f={};_0x210b8f[_0x316693(0x1b1)]=identifier,_0x210b8f[_0x316693(0x1b0)]=identifier;const _0xe885f0={};_0xe885f0[_0x316693(0x1b3)]=0x1,_0xe885f0[_0x316693(0x19d)]=0xc8;const _0x4cf247={};_0x4cf247[_0x316693(0x1b1)]=identifier,_0x4cf247['id']=identifier;const _0x49ae41={};_0x49ae41[_0x316693(0x1b1)]=identifier,_0x49ae41['id']=identifier,_0x49ae41[_0x316693(0x1aa)]=identifier;const _0x5adc51={};_0x5adc51[_0x316693(0x1b1)]=identifier,_0x5adc51['id']=identifier,_0x5adc51[_0x316693(0x1aa)]=identifier,_0x5adc51[_0x316693(0x1a3)]=identifier;const _0x1daa78={};_0x1daa78[_0x316693(0x1b1)]=identifier,_0x1daa78['id']=identifier;const _0x488810={};function _0x3506(_0x1db979,_0x181c9f){_0x1db979=_0x1db979-0x19d;const _0x480cb4=_0x480c();let _0x350625=_0x480cb4[_0x1db979];return _0x350625;}_0x488810[_0x316693(0x1ae)]=0x1,_0x488810[_0x316693(0x1a2)]=0xff;const _0x51ee9c={};_0x51ee9c[_0x316693(0x1ae)]=0x1;const _0x471641={};_0x471641[_0x316693(0x1b3)]=0x1,_0x471641[_0x316693(0x19d)]=0xc8;const _0x4d95b6={};_0x4d95b6[_0x316693(0x1b3)]=0x0;export const resourceSchemas={'dictionaryName':Type[_0x316693(0x19e)](_0x4574bc),'resource':Type[_0x316693(0x19e)](_0x29b697),'exportResource':Type[_0x316693(0x19e)](_0x20897d),'resourceField':Type[_0x316693(0x19e)](_0x210b8f),'suggestQuery':Type[_0x316693(0x19e)]({'q':Type[_0x316693(0x1a1)](Type[_0x316693(0x1b8)]()),'search':Type[_0x316693(0x1a1)](Type[_0x316693(0x1b8)]()),'limit':Type[_0x316693(0x1a1)](Type[_0x316693(0x1ad)](_0xe885f0))}),'resourceId':Type[_0x316693(0x19e)](_0x4cf247),'resourceIdRelation':Type[_0x316693(0x19e)](_0x49ae41),'resourceIdRelationId':Type[_0x316693(0x19e)](_0x5adc51),'uploadResourceFile':Type[_0x316693(0x19e)](_0x1daa78),'uploadResourceFileBody':Type[_0x316693(0x19e)]({'file':Type[_0x316693(0x1ba)](),'fileName':Type[_0x316693(0x1b8)](_0x488810)}),'exportResourceQuery':Type[_0x316693(0x19e)]({'filter':Type[_0x316693(0x1a1)](Type[_0x316693(0x1af)](Type[_0x316693(0x1b8)](),Type[_0x316693(0x19f)]())),'sort':Type[_0x316693(0x1a1)](Type[_0x316693(0x1a4)](Type[_0x316693(0x1b8)](_0x51ee9c))),'search':Type[_0x316693(0x1a1)](Type[_0x316693(0x1b8)]()),'limit':Type[_0x316693(0x1a1)](Type[_0x316693(0x1ad)](_0x471641)),'offset':Type[_0x316693(0x1a1)](Type[_0x316693(0x1ad)](_0x4d95b6)),'fields':Type[_0x316693(0x1a1)](Type[_0x316693(0x1a4)](identifier))})};
1
+ const C=z;function z(C,N){C=C-0x1cc;const r=U();let p=r[C];return p;}import{Type}from'@sinclair/typebox';function U(){const N=['Object','Optional','String','Any','Unknown'];U=function(){return N;};return U();}export const identifier=Type['String']({'minLength':0x1,'maxLength':0x80,'pattern':'^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$'});export const resourceSchemas={'dictionaryName':Type[C(0x1cc)]({'name':identifier}),'resource':Type[C(0x1cc)]({'resource':identifier}),'exportResource':Type['Object']({'resource':identifier}),'resourceField':Type['Object']({'resource':identifier,'field':identifier}),'suggestQuery':Type['Object']({'q':Type[C(0x1cd)](Type[C(0x1ce)]()),'search':Type['Optional'](Type['String']()),'limit':Type['Optional'](Type['Integer']({'minimum':0x1,'maximum':0xc8}))}),'resourceId':Type['Object']({'resource':identifier,'id':identifier}),'resourceIncludeQuery':Type[C(0x1cc)]({'include':Type['Optional'](Type[C(0x1ce)]({'minLength':0x1}))}),'resourceIdRelation':Type['Object']({'resource':identifier,'id':identifier,'relation':identifier}),'resourceIdRelationId':Type['Object']({'resource':identifier,'id':identifier,'relation':identifier,'relationId':identifier}),'uploadResourceFile':Type['Object']({'resource':identifier,'id':identifier}),'uploadResourceFileBody':Type['Object']({'file':Type[C(0x1cf)](),'fileName':Type['String']({'minLength':0x1,'maxLength':0xff})}),'exportResourceQuery':Type['Object']({'filter':Type['Optional'](Type['Record'](Type[C(0x1ce)](),Type[C(0x1d0)]())),'sort':Type[C(0x1cd)](Type['Array'](Type['String']({'minLength':0x1}))),'search':Type['Optional'](Type[C(0x1ce)]()),'limit':Type['Optional'](Type['Integer']({'minimum':0x1,'maximum':0xc8})),'offset':Type['Optional'](Type['Integer']({'minimum':0x0})),'fields':Type[C(0x1cd)](Type['Array'](identifier))})};
@@ -1 +1 @@
1
- (function(_0x59e670,_0x5af813){const _0x181609=_0x54b8,_0x10fe8d=_0x59e670();while(!![]){try{const _0x1dae60=-parseInt(_0x181609(0x199))/0x1*(parseInt(_0x181609(0x19b))/0x2)+parseInt(_0x181609(0x1a0))/0x3*(-parseInt(_0x181609(0x19d))/0x4)+-parseInt(_0x181609(0x196))/0x5*(-parseInt(_0x181609(0x192))/0x6)+parseInt(_0x181609(0x19e))/0x7*(-parseInt(_0x181609(0x19f))/0x8)+parseInt(_0x181609(0x19a))/0x9+-parseInt(_0x181609(0x198))/0xa+parseInt(_0x181609(0x1a2))/0xb*(parseInt(_0x181609(0x1a1))/0xc);if(_0x1dae60===_0x5af813)break;else _0x10fe8d['push'](_0x10fe8d['shift']());}catch(_0x2fbd0e){_0x10fe8d['push'](_0x10fe8d['shift']());}}}(_0x5e7a,0x39481));function _0x5e7a(){const _0x3f485f=['5268vxwPXo','14kqvaKf','451304fPLTIJ','237dcfZKW','175656jPKzNQ','407vXHATb','INSERT\x20INTO\x20admin.notes(resource,resource_id,body)\x20VALUES\x20($1,$2,$3)\x20RETURNING\x20*','499338sErSDL','IyGkW','body','rows','15LPOrhR','query','4083490lDTttX','232627TTDdDF','2710755nGBQWH','2ItZcYX','resource'];_0x5e7a=function(){return _0x3f485f;};return _0x5e7a();}function _0x54b8(_0x165917,_0x3f9f89){_0x165917=_0x165917-0x192;const _0x5e7a3e=_0x5e7a();let _0x54b89f=_0x5e7a3e[_0x165917];return _0x54b89f;}export async function addNote(_0x329f0f,_0x3676ad){const _0x6da7f7=_0x54b8,_0x48af17={'IyGkW':function(_0x273fba,_0x523a41){return _0x273fba(_0x523a41);}},_0x167303=await _0x3676ad['pg'][_0x6da7f7(0x197)](_0x6da7f7(0x1a3),[_0x329f0f[_0x6da7f7(0x19c)],_0x48af17[_0x6da7f7(0x193)](String,_0x329f0f['id']),_0x329f0f[_0x6da7f7(0x194)]]);return _0x167303[_0x6da7f7(0x195)][0x0];}
1
+ export async function addNote(C,N){const p=await N['pg']['query']('INSERT\x20INTO\x20admin.notes(resource,resource_id,body)\x20VALUES\x20($1,$2,$3)\x20RETURNING\x20*',[C['resource'],String(C['id']),C['body']]);return p['rows'][0x0];}
@@ -1 +1 @@
1
- (function(_0x361dba,_0x542467){const _0x435262=_0x57f4,_0x381674=_0x361dba();while(!![]){try{const _0x41b6d2=parseInt(_0x435262(0x13c))/0x1+-parseInt(_0x435262(0x13e))/0x2*(-parseInt(_0x435262(0x140))/0x3)+parseInt(_0x435262(0x146))/0x4*(parseInt(_0x435262(0x149))/0x5)+-parseInt(_0x435262(0x144))/0x6*(-parseInt(_0x435262(0x143))/0x7)+-parseInt(_0x435262(0x147))/0x8*(parseInt(_0x435262(0x13f))/0x9)+-parseInt(_0x435262(0x148))/0xa+-parseInt(_0x435262(0x142))/0xb;if(_0x41b6d2===_0x542467)break;else _0x381674['push'](_0x381674['shift']());}catch(_0x2ca6e7){_0x381674['push'](_0x381674['shift']());}}}(_0x494e,0x59214));function _0x57f4(_0x369008,_0x3c6af0){_0x369008=_0x369008-0x139;const _0x494e0b=_0x494e();let _0x57f440=_0x494e0b[_0x369008];return _0x57f440;}export async function addResourceFile(_0x1fc84f,_0x46b7f6){const _0x447fbe=_0x57f4,_0x200543=await _0x46b7f6['pg'][_0x447fbe(0x141)](_0x447fbe(0x145),[_0x1fc84f[_0x447fbe(0x13b)],String(_0x1fc84f['id']),_0x1fc84f[_0x447fbe(0x13d)],_0x1fc84f[_0x447fbe(0x139)]??null]);return _0x200543[_0x447fbe(0x13a)][0x0];}function _0x494e(){const _0x5add75=['37514COOqUI','549VdeFUE','9xOHXnS','query','1683902Elywof','721xJMIvt','31614fKFdsI','\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.files\x20(resource,\x20resource_id,\x20file_path,\x20size)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20*\x0a\x20\x20\x20\x20\x20\x20','28JaglIn','80088rAWLrE','4791480qszUZS','475845oFUZAU','size','rows','resource','342816pAuzdy','filePath'];_0x494e=function(){return _0x5add75;};return _0x494e();}
1
+ function z(C,N){C=C-0x9b;const r=U();let p=r[C];return p;}export async function addResourceFile(C,N){const p=z,r=await N['pg']['query'](p(0x9b),[C['resource'],String(C['id']),C[p(0x9c)],C[p(0x9d)]??null]);return r[p(0x9e)][0x0];}function U(){const c=['\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.files\x20(resource,\x20resource_id,\x20file_path,\x20size)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20*\x0a\x20\x20\x20\x20\x20\x20','filePath','size','rows'];U=function(){return c;};return U();}
@@ -1 +1 @@
1
- function _0x27d4(){const _0x441aa8=['3075024idHMct','379620fiGSfX','6180256lByrLc','7mEnBDT','data','299983SjPmdt','13020588zrNySs','relation','2844870EFnmQU','name','resource','user','2SuOPfG','3701121ISmOeM','createRelation'];_0x27d4=function(){return _0x441aa8;};return _0x27d4();}function _0x4e13(_0x166109,_0x28e6c6){_0x166109=_0x166109-0x76;const _0x27d4bc=_0x27d4();let _0x4e1305=_0x27d4bc[_0x166109];return _0x4e1305;}(function(_0x5f2bdb,_0x4d0e6b){const _0x567542=_0x4e13,_0x296465=_0x5f2bdb();while(!![]){try{const _0x2e8af3=parseInt(_0x567542(0x7c))/0x1+parseInt(_0x567542(0x83))/0x2*(parseInt(_0x567542(0x84))/0x3)+parseInt(_0x567542(0x77))/0x4+parseInt(_0x567542(0x78))/0x5+parseInt(_0x567542(0x7f))/0x6+parseInt(_0x567542(0x7a))/0x7*(-parseInt(_0x567542(0x79))/0x8)+-parseInt(_0x567542(0x7d))/0x9;if(_0x2e8af3===_0x4d0e6b)break;else _0x296465['push'](_0x296465['shift']());}catch(_0x2c4fc2){_0x296465['push'](_0x296465['shift']());}}}(_0x27d4,0x9a9a3));export async function createResourceRelation(_0x5df916,_0x98764a){const _0x1949d2=_0x4e13,{resource:_0x3c17d1,id:_0x4b8792,relation:_0x563bac,data:_0x2a8653,user:_0x4d9fc1}=_0x5df916,_0x47e287={};return _0x47e287[_0x1949d2(0x80)]=_0x3c17d1,_0x47e287['id']=_0x4b8792,_0x47e287[_0x1949d2(0x7e)]=_0x563bac,_0x47e287[_0x1949d2(0x7b)]=_0x2a8653,_0x47e287[_0x1949d2(0x82)]=_0x4d9fc1,_0x98764a[_0x1949d2(0x81)][_0x1949d2(0x76)](_0x47e287);}
1
+ function z(C,N){C=C-0x64;const r=U();let p=r[C];return p;}export async function createResourceRelation(C,N){const Q=z,{resource:r,id:p,relation:c,data:x,user:m}=C;return N['resource'][Q(0x64)]({'name':r,'id':p,'relation':c,'data':x,'user':m});}function U(){const u=['createRelation'];U=function(){return u;};return U();}
@@ -1 +1 @@
1
- (function(_0x14fbf2,_0x1fef71){var _0x593e07=_0x25ea,_0x200884=_0x14fbf2();while(!![]){try{var _0x1a788c=-parseInt(_0x593e07(0x1bd))/0x1*(parseInt(_0x593e07(0x1cb))/0x2)+-parseInt(_0x593e07(0x1bf))/0x3+parseInt(_0x593e07(0x1cd))/0x4*(-parseInt(_0x593e07(0x1c1))/0x5)+-parseInt(_0x593e07(0x1c9))/0x6*(-parseInt(_0x593e07(0x1cc))/0x7)+parseInt(_0x593e07(0x1ca))/0x8*(-parseInt(_0x593e07(0x1c7))/0x9)+-parseInt(_0x593e07(0x1c6))/0xa*(-parseInt(_0x593e07(0x1c0))/0xb)+parseInt(_0x593e07(0x1c2))/0xc;if(_0x1a788c===_0x1fef71)break;else _0x200884['push'](_0x200884['shift']());}catch(_0x21c580){_0x200884['push'](_0x200884['shift']());}}}(_0x218d,0x6c09e));function _0x25ea(_0x5c7959,_0x512ac4){_0x5c7959=_0x5c7959-0x1bd;var _0x218d90=_0x218d();var _0x25eab6=_0x218d90[_0x5c7959];return _0x25eab6;}export async function createResource(_0x19eb76,_0x5f505b){var _0x21b6f4=_0x25ea,_0x241061={};return _0x241061[_0x21b6f4(0x1c8)]=_0x19eb76[_0x21b6f4(0x1c5)],_0x241061[_0x21b6f4(0x1c3)]=_0x19eb76[_0x21b6f4(0x1c3)],_0x241061[_0x21b6f4(0x1be)]=_0x19eb76[_0x21b6f4(0x1be)],_0x5f505b[_0x21b6f4(0x1c5)][_0x21b6f4(0x1c4)](_0x241061);}function _0x218d(){var _0x2ca2ff=['resource','3123220xFtUSl','3530151MkZIPo','name','4209720eIkbPh','16rWfEoG','160nKHvPF','7yhpjhq','504148yjcZXy','3516uOrPyG','user','2222403KArpPo','22juKzaV','35oAfepb','21660960QXvTnD','data','create'];_0x218d=function(){return _0x2ca2ff;};return _0x218d();}
1
+ export async function createResource(C,N){var r=z;return N[r(0xd3)]['create']({'name':C[r(0xd3)],'data':C[r(0xd4)],'user':C['user']});}function z(C,N){C=C-0xd3;var r=U();var p=r[C];return p;}function U(){var p=['resource','data'];U=function(){return p;};return U();}
@@ -1 +1 @@
1
- (function(_0xe8d5c6,_0x2b5170){const _0x3d742e=_0xb8ef,_0x216818=_0xe8d5c6();while(!![]){try{const _0x3c6b6f=parseInt(_0x3d742e(0x168))/0x1*(-parseInt(_0x3d742e(0x165))/0x2)+-parseInt(_0x3d742e(0x161))/0x3*(-parseInt(_0x3d742e(0x16e))/0x4)+parseInt(_0x3d742e(0x167))/0x5*(-parseInt(_0x3d742e(0x16f))/0x6)+-parseInt(_0x3d742e(0x164))/0x7+parseInt(_0x3d742e(0x16c))/0x8+-parseInt(_0x3d742e(0x166))/0x9*(parseInt(_0x3d742e(0x16b))/0xa)+parseInt(_0x3d742e(0x162))/0xb;if(_0x3c6b6f===_0x2b5170)break;else _0x216818['push'](_0x216818['shift']());}catch(_0x25d52c){_0x216818['push'](_0x216818['shift']());}}}(_0x2e20,0xa5a21));export async function deleteResourceRelation(_0x5ac1d6,_0x41aa1b){const _0x3c511f=_0xb8ef,{resource:_0x5a3d81,id:_0x4f5e51,relation:_0x4ea19d,relationId:_0x2d9be8}=_0x5ac1d6,_0x2f5692={};return _0x2f5692[_0x3c511f(0x16d)]=_0x5a3d81,_0x2f5692['id']=_0x4f5e51,_0x2f5692[_0x3c511f(0x170)]=_0x4ea19d,_0x2f5692[_0x3c511f(0x16a)]=_0x2d9be8,_0x41aa1b[_0x3c511f(0x163)][_0x3c511f(0x169)](_0x2f5692);}function _0xb8ef(_0xc8d058,_0x5f2463){_0xc8d058=_0xc8d058-0x161;const _0x2e209e=_0x2e20();let _0xb8ef84=_0x2e209e[_0xc8d058];return _0xb8ef84;}function _0x2e20(){const _0x3265f4=['357DcHbVZ','20156334mMkmxO','resource','6196925VqLkxf','4358CnWCOb','2977857HhuYlQ','5fGxAzf','156NgeNwF','deleteRelation','relationId','20lRDkvR','6288144aJWMbP','name','8812WntWhm','1891146NFbpen','relation'];_0x2e20=function(){return _0x3265f4;};return _0x2e20();}
1
+ export async function deleteResourceRelation(C,N){const m=z,{resource:r,id:p,relation:c,relationId:x}=C;return N['resource'][m(0x144)]({'name':r,'id':p,'relation':c,'relationId':x});}function z(C,N){C=C-0x144;const r=U();let p=r[C];return p;}function U(){const Q=['deleteRelation'];U=function(){return Q;};return U();}
@@ -1 +1 @@
1
- function _0x3440(_0x284297,_0x55cbc3){_0x284297=_0x284297-0x184;var _0x2befda=_0x2bef();var _0x3440f2=_0x2befda[_0x284297];return _0x3440f2;}(function(_0x4f1b89,_0xdbedac){var _0x1eb2f7=_0x3440,_0x555a55=_0x4f1b89();while(!![]){try{var _0x2bddc8=-parseInt(_0x1eb2f7(0x185))/0x1*(-parseInt(_0x1eb2f7(0x18a))/0x2)+parseInt(_0x1eb2f7(0x188))/0x3*(-parseInt(_0x1eb2f7(0x18d))/0x4)+parseInt(_0x1eb2f7(0x193))/0x5*(-parseInt(_0x1eb2f7(0x192))/0x6)+-parseInt(_0x1eb2f7(0x18b))/0x7*(-parseInt(_0x1eb2f7(0x18c))/0x8)+parseInt(_0x1eb2f7(0x18f))/0x9+-parseInt(_0x1eb2f7(0x18e))/0xa*(parseInt(_0x1eb2f7(0x189))/0xb)+parseInt(_0x1eb2f7(0x187))/0xc;if(_0x2bddc8===_0xdbedac)break;else _0x555a55['push'](_0x555a55['shift']());}catch(_0x44501e){_0x555a55['push'](_0x555a55['shift']());}}}(_0x2bef,0xb0cf5));function _0x2bef(){var _0x22ad72=['name','resource','46362bfvdoh','515LIxkMB','delete','6098AYxwvL','user','11801052EsDwTN','54MLRDyG','8537254wVrjER','130iEzrgP','7ShdlpG','2184888BfKDQs','64160RFSnPN','10BnsVOo','8388234hYzVvT'];_0x2bef=function(){return _0x22ad72;};return _0x2bef();}export async function deleteResource(_0x4c9773,_0x57aded){var _0x31a0d6=_0x3440,_0x2eb3c0={};return _0x2eb3c0[_0x31a0d6(0x190)]=_0x4c9773[_0x31a0d6(0x191)],_0x2eb3c0['id']=_0x4c9773['id'],_0x2eb3c0[_0x31a0d6(0x186)]=_0x4c9773[_0x31a0d6(0x186)],_0x57aded[_0x31a0d6(0x191)][_0x31a0d6(0x184)](_0x2eb3c0);}
1
+ export async function deleteResource(C,N){var r=z;return N['resource']['delete']({'name':C['resource'],'id':C['id'],'user':C[r(0x12e)]});}function z(C,N){C=C-0x12e;var r=U();var p=r[C];return p;}function U(){var p=['user'];U=function(){return p;};return U();}
@@ -1 +1 @@
1
- {"version":3,"file":"export-resource.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/export-resource.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,wBAAsB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAcrG"}
1
+ {"version":3,"file":"export-resource.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/export-resource.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,wBAAsB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAcrG"}
@@ -1 +1 @@
1
- function _0x81f3(){const _0x2e0942=['offset','16EIRxQh','549897wGNiMB','user','limit','147725zCNvGL','5iqfSeO','sort','name','filter','query','fields','686861gqWutn','121764Ineuhi','967350nPfKhR','find','3637215wXdLfT','resource','rows','358654GlGvDp','search'];_0x81f3=function(){return _0x2e0942;};return _0x81f3();}function _0x1646(_0x147009,_0x5a139b){_0x147009=_0x147009-0x1c3;const _0x81f36c=_0x81f3();let _0x1646fa=_0x81f36c[_0x147009];return _0x1646fa;}(function(_0xb67821,_0x5e5319){const _0x261767=_0x1646,_0x5e485c=_0xb67821();while(!![]){try{const _0x5b74b9=parseInt(_0x261767(0x1cd))/0x1+parseInt(_0x261767(0x1c6))/0x2+-parseInt(_0x261767(0x1ca))/0x3+-parseInt(_0x261767(0x1d5))/0x4*(-parseInt(_0x261767(0x1ce))/0x5)+parseInt(_0x261767(0x1d6))/0x6+-parseInt(_0x261767(0x1d4))/0x7*(-parseInt(_0x261767(0x1c9))/0x8)+-parseInt(_0x261767(0x1c3))/0x9;if(_0x5b74b9===_0x5e5319)break;else _0x5e485c['push'](_0x5e485c['shift']());}catch(_0x348a1e){_0x5e485c['push'](_0x5e485c['shift']());}}}(_0x81f3,0x1f22a));export async function exportResource(_0xbb6318,_0x371fd5){const _0x51dc68=_0x1646,_0x54e8d6={};_0x54e8d6[_0x51dc68(0x1d0)]=_0xbb6318[_0x51dc68(0x1c4)],_0x54e8d6[_0x51dc68(0x1d2)]={},_0x54e8d6[_0x51dc68(0x1cb)]=_0xbb6318[_0x51dc68(0x1cb)],_0x54e8d6[_0x51dc68(0x1d2)][_0x51dc68(0x1d1)]=_0xbb6318[_0x51dc68(0x1d1)],_0x54e8d6[_0x51dc68(0x1d2)][_0x51dc68(0x1cf)]=_0xbb6318[_0x51dc68(0x1cf)],_0x54e8d6[_0x51dc68(0x1d2)][_0x51dc68(0x1c7)]=_0xbb6318[_0x51dc68(0x1c7)],_0x54e8d6[_0x51dc68(0x1d2)][_0x51dc68(0x1cc)]=_0xbb6318[_0x51dc68(0x1cc)],_0x54e8d6[_0x51dc68(0x1d2)][_0x51dc68(0x1c8)]=_0xbb6318[_0x51dc68(0x1c8)],_0x54e8d6[_0x51dc68(0x1d2)][_0x51dc68(0x1d3)]=_0xbb6318[_0x51dc68(0x1d3)];const _0x33941d=await _0x371fd5[_0x51dc68(0x1c4)][_0x51dc68(0x1d7)](_0x54e8d6);return _0x33941d[_0x51dc68(0x1c5)];}
1
+ function z(C,N){C=C-0x1e1;const r=U();let p=r[C];return p;}import{parseFilterQuery}from'../../../plugins/resource/utils/filters.js';function U(){const c=['find','sort','limit'];U=function(){return c;};return U();}export async function exportResource(C,N){const p=z,r=await N['resource'][p(0x1e1)]({'name':C['resource'],'query':{'filter':parseFilterQuery(C),'sort':C[p(0x1e2)],'search':C['search'],'limit':C[p(0x1e3)],'offset':C['offset'],'fields':C['fields']},'user':C['user']});return r['rows'];}
@@ -1 +1 @@
1
- {"version":3,"file":"get-resource.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/get-resource.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,wBAAsB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAE5E"}
1
+ {"version":3,"file":"get-resource.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/get-resource.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,wBAAsB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAO5E"}
@@ -1 +1 @@
1
- function _0xb3f9(){var _0x435f15=['32274876vzBuXe','findOne','name','9POInJp','403708tlaUrk','18kmkVMV','6725768OEwNOe','user','328980pVZAnv','78IdqxYg','33wJAewD','4nTefRR','8264528YeDZva','resource','2658170wrwylM','342371whnOnT'];_0xb3f9=function(){return _0x435f15;};return _0xb3f9();}(function(_0x4d9f97,_0x2c2965){var _0x4af4aa=_0x3d8b,_0x3b09a1=_0x4d9f97();while(!![]){try{var _0x3c2156=-parseInt(_0x4af4aa(0x10a))/0x1*(parseInt(_0x4af4aa(0x116))/0x2)+-parseInt(_0x4af4aa(0x110))/0x3*(-parseInt(_0x4af4aa(0x10f))/0x4)+parseInt(_0x4af4aa(0x113))/0x5*(-parseInt(_0x4af4aa(0x114))/0x6)+-parseInt(_0x4af4aa(0x111))/0x7+parseInt(_0x4af4aa(0x107))/0x8*(-parseInt(_0x4af4aa(0x10e))/0x9)+-parseInt(_0x4af4aa(0x109))/0xa*(-parseInt(_0x4af4aa(0x115))/0xb)+parseInt(_0x4af4aa(0x10b))/0xc;if(_0x3c2156===_0x2c2965)break;else _0x3b09a1['push'](_0x3b09a1['shift']());}catch(_0x2ea193){_0x3b09a1['push'](_0x3b09a1['shift']());}}}(_0xb3f9,0x8860e));function _0x3d8b(_0x5ba29e,_0x9470a0){_0x5ba29e=_0x5ba29e-0x107;var _0xb3f952=_0xb3f9();var _0x3d8b00=_0xb3f952[_0x5ba29e];return _0x3d8b00;}export async function getResource(_0x2a3192,_0x214b99){var _0x12828a=_0x3d8b,_0x43aa71={};return _0x43aa71[_0x12828a(0x10d)]=_0x2a3192[_0x12828a(0x108)],_0x43aa71['id']=_0x2a3192['id'],_0x43aa71[_0x12828a(0x112)]=_0x2a3192[_0x12828a(0x112)],_0x214b99[_0x12828a(0x108)][_0x12828a(0x10c)](_0x43aa71);}
1
+ function U(){var p=['resource','findOne','include'];U=function(){return p;};return U();}function z(C,N){C=C-0xa4;var r=U();var p=r[C];return p;}export async function getResource(C,N){var r=z;return N[r(0xa4)][r(0xa5)]({'name':C['resource'],'id':C['id'],'query':{'include':C[r(0xa6)]},'user':C['user']});}
@@ -2,10 +2,12 @@
2
2
  * Implements the list resource relation application service for its module.
3
3
  */
4
4
  import type { AppContext, User } from '../../../context.js';
5
+ import type { ResourceQuery } from '../../../plugins/resource/resource.types.js';
5
6
  export declare function listResourceRelation(params: {
6
7
  resource: string;
7
8
  id: string;
8
9
  relation: string;
10
+ query?: ResourceQuery;
9
11
  user?: User;
10
12
  }, ctx: AppContext): Promise<any>;
11
13
  //# sourceMappingURL=list-resource-relation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-resource-relation.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/list-resource-relation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,oBAAoB,CACxC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,EACvE,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,CAGd"}
1
+ {"version":3,"file":"list-resource-relation.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/list-resource-relation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAEjF,wBAAsB,oBAAoB,CACxC,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,CAGd"}
@@ -1 +1 @@
1
- function _0x2d60(){const _0x527587=['161VMXGHf','30683103jOJQKE','269188arNhWl','383664WnCAsV','5xWKTJg','user','relation','324GjErrj','findRelation','6DoEdbE','69224KGtcDX','2151100IHvIZf','resource','name','63590ZXHvnP','9656667FIijAH'];_0x2d60=function(){return _0x527587;};return _0x2d60();}function _0x5a5b(_0x1b2d3e,_0x264c61){_0x1b2d3e=_0x1b2d3e-0x199;const _0x2d6069=_0x2d60();let _0x5a5b39=_0x2d6069[_0x1b2d3e];return _0x5a5b39;}(function(_0x3e932e,_0x2794ca){const _0x1dcd5d=_0x5a5b,_0x1f1271=_0x3e932e();while(!![]){try{const _0x2097bb=parseInt(_0x1dcd5d(0x1a6))/0x1*(parseInt(_0x1dcd5d(0x1a4))/0x2)+-parseInt(_0x1dcd5d(0x19b))/0x3*(-parseInt(_0x1dcd5d(0x19c))/0x4)+parseInt(_0x1dcd5d(0x1a0))/0x5*(parseInt(_0x1dcd5d(0x199))/0x6)+-parseInt(_0x1dcd5d(0x1a2))/0x7*(-parseInt(_0x1dcd5d(0x1a5))/0x8)+parseInt(_0x1dcd5d(0x1a1))/0x9+-parseInt(_0x1dcd5d(0x19d))/0xa+-parseInt(_0x1dcd5d(0x1a3))/0xb;if(_0x2097bb===_0x2794ca)break;else _0x1f1271['push'](_0x1f1271['shift']());}catch(_0x1d792e){_0x1f1271['push'](_0x1f1271['shift']());}}}(_0x2d60,0x8a26c));export async function listResourceRelation(_0x58a99a,_0x1d6128){const _0x4b4763=_0x5a5b,{resource:_0x53d672,id:_0x3f9589,relation:_0x27f522,user:_0x22cc97}=_0x58a99a,_0x376227={};return _0x376227[_0x4b4763(0x19f)]=_0x53d672,_0x376227['id']=_0x3f9589,_0x376227[_0x4b4763(0x1a8)]=_0x27f522,_0x376227[_0x4b4763(0x1a7)]=_0x22cc97,_0x1d6128[_0x4b4763(0x19e)][_0x4b4763(0x19a)](_0x376227);}
1
+ export async function listResourceRelation(C,N){const {resource:r,id:p,relation:c,query:x,user:m}=C;return N['resource']['findRelation']({'name':r,'id':p,'relation':c,'query':x,'user':m});}
@@ -1 +1 @@
1
- {"version":3,"file":"list-resources.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/list-resources.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,wBAAsB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAY9E"}
1
+ {"version":3,"file":"list-resources.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/list-resources.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,wBAAsB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAY9E"}
@@ -1 +1 @@
1
- (function(_0x14fd4a,_0x2d3a42){var _0x58d235=_0x271c,_0x4268bd=_0x14fd4a();while(!![]){try{var _0x40af4e=parseInt(_0x58d235(0x94))/0x1*(parseInt(_0x58d235(0x91))/0x2)+parseInt(_0x58d235(0x8b))/0x3*(-parseInt(_0x58d235(0x85))/0x4)+parseInt(_0x58d235(0x86))/0x5*(parseInt(_0x58d235(0x8c))/0x6)+-parseInt(_0x58d235(0x89))/0x7*(parseInt(_0x58d235(0x8a))/0x8)+-parseInt(_0x58d235(0x8d))/0x9+-parseInt(_0x58d235(0x97))/0xa+parseInt(_0x58d235(0x83))/0xb*(parseInt(_0x58d235(0x92))/0xc);if(_0x40af4e===_0x2d3a42)break;else _0x4268bd['push'](_0x4268bd['shift']());}catch(_0x80959f){_0x4268bd['push'](_0x4268bd['shift']());}}}(_0x3065,0x6fbe8));export async function listResources(_0x2cde70,_0x384b7a){var _0x4ef7ea=_0x271c,_0x3b38fe={};_0x3b38fe[_0x4ef7ea(0x98)]=function(_0x2d537b,_0x347144){return _0x2d537b*_0x347144;};var _0x43e729=_0x3b38fe;return _0x384b7a[_0x4ef7ea(0x90)][_0x4ef7ea(0x8f)]({'name':_0x2cde70[_0x4ef7ea(0x90)],'query':{'filter':_0x2cde70[_0x4ef7ea(0x8e)],'sort':_0x2cde70[_0x4ef7ea(0x84)],'search':_0x2cde70[_0x4ef7ea(0x93)],'limit':_0x2cde70[_0x4ef7ea(0x87)],'offset':_0x2cde70[_0x4ef7ea(0x88)]??_0x43e729[_0x4ef7ea(0x98)](_0x2cde70[_0x4ef7ea(0x96)]?Math[_0x4ef7ea(0x99)](_0x2cde70[_0x4ef7ea(0x96)]-0x1,0x0):0x0,_0x2cde70[_0x4ef7ea(0x87)]??0x14)},'user':_0x2cde70[_0x4ef7ea(0x95)]});}function _0x271c(_0x2d382f,_0x2d02ea){_0x2d382f=_0x2d382f-0x83;var _0x30650a=_0x3065();var _0x271c33=_0x30650a[_0x2d382f];return _0x271c33;}function _0x3065(){var _0x36601e=['578725FkaJUV','8vByIXm','51TavAIE','6IcBCsq','5480343GCQTRm','filter','find','resource','14MTgRsi','4035660ZjFCcu','search','123364jVihwB','user','page','2908400UVDMBZ','jfDew','max','11IdBlpc','sort','42156bQGJKP','2097280AhfIkD','limit','offset'];_0x3065=function(){return _0x36601e;};return _0x3065();}
1
+ import{parseFilterQuery}from'../../../plugins/resource/utils/filters.js';function z(C,N){C=C-0x1d5;var r=U();var p=r[C];return p;}function U(){var p=['resource','offset','page','limit'];U=function(){return p;};return U();}export async function listResources(C,N){var r=z;return N['resource']['find']({'name':C[r(0x1d5)],'query':{'filter':parseFilterQuery(C),'sort':C['sort'],'search':C['search'],'limit':C['limit'],'offset':C[r(0x1d6)]??(C['page']?Math['max'](C[r(0x1d7)]-0x1,0x0):0x0)*(C[r(0x1d8)]??0x14)},'user':C['user']});}
@@ -1 +1 @@
1
- {"version":3,"file":"search-resource.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/search-resource.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,wBAAsB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAE/E"}
1
+ {"version":3,"file":"search-resource.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/search-resource.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,wBAAsB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAE/E"}
@@ -1 +1 @@
1
- function _0xda11(_0x13dc6b,_0x3c5253){_0x13dc6b=_0x13dc6b-0x98;var _0x194018=_0x1940();var _0xda1145=_0x194018[_0x13dc6b];return _0xda1145;}(function(_0x47b8eb,_0x601b3b){var _0x3a147f=_0xda11,_0x2b7e79=_0x47b8eb();while(!![]){try{var _0x15c94f=-parseInt(_0x3a147f(0xa6))/0x1*(-parseInt(_0x3a147f(0xa3))/0x2)+-parseInt(_0x3a147f(0x9e))/0x3*(parseInt(_0x3a147f(0x9d))/0x4)+parseInt(_0x3a147f(0x99))/0x5+parseInt(_0x3a147f(0x9b))/0x6*(parseInt(_0x3a147f(0xa4))/0x7)+parseInt(_0x3a147f(0xa7))/0x8*(-parseInt(_0x3a147f(0xa9))/0x9)+parseInt(_0x3a147f(0x9a))/0xa+parseInt(_0x3a147f(0x98))/0xb*(-parseInt(_0x3a147f(0xa1))/0xc);if(_0x15c94f===_0x601b3b)break;else _0x2b7e79['push'](_0x2b7e79['shift']());}catch(_0x3bd618){_0x2b7e79['push'](_0x2b7e79['shift']());}}}(_0x1940,0x9ac68));function _0x1940(){var _0x35dd86=['149455zLTOpl','9066710cChmLb','5491746lLLXSB','name','84VGfCDE','3477MOFzhO','filter','query','3972cKfJMr','find','274978gqkqxw','7YwlXXo','user','6xQmwbH','808ceGZcy','resource','77193Djikfv','38291Czmybd'];_0x1940=function(){return _0x35dd86;};return _0x1940();}export async function searchResource(_0x4f931b,_0x247d0a){var _0xcfef7e=_0xda11,_0x47f599={};return _0x47f599[_0xcfef7e(0x9c)]=_0x4f931b[_0xcfef7e(0xa8)],_0x47f599[_0xcfef7e(0xa0)]={..._0x4f931b},_0x47f599[_0xcfef7e(0xa5)]=_0x4f931b[_0xcfef7e(0xa5)],_0x47f599[_0xcfef7e(0xa0)][_0xcfef7e(0x9f)]=_0x4f931b[_0xcfef7e(0x9f)],_0x247d0a[_0xcfef7e(0xa8)][_0xcfef7e(0xa2)](_0x47f599);}
1
+ import{parseFilterQuery}from'../../../plugins/resource/utils/filters.js';function z(C,N){C=C-0x121;var r=U();var p=r[C];return p;}function U(){var p=['user'];U=function(){return p;};return U();}export async function searchResource(C,N){var r=z;return N['resource']['find']({'name':C['resource'],'query':{...C,'filter':parseFilterQuery(C)},'user':C[r(0x121)]});}
@@ -1 +1 @@
1
- {"version":3,"file":"suggest-resource.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/suggest-resource.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,KAAK,qBAAqB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAElB,CAAC;AAEF,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAuClG"}
1
+ {"version":3,"file":"suggest-resource.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/suggest-resource.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,KAAK,qBAAqB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAElB,CAAC;AAEF,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA4ClG"}
@@ -1 +1 @@
1
- function _0x103b(){const _0x522c74=['rows','filter','Field\x20has\x20no\x20lookup\x20dictionary:\x20','360831VxtyPF','table','get','dictionary','\x20as\x20id,\x20','6172130slXcxD','toLowerCase','1556WIRJTk','SELECT\x20','80762sDFwGa','fields','7wvIMTt','valueField','vAMHk','4519452QkoZiT','10265JXfghS','max','startsWith','849513khIAFU','resource','query','limit','8QqgMqQ','756LnaCZj','\x20WHERE\x20lower(','min','then','now','lookup','code','search','\x20as\x20text\x20FROM\x20','textField','slice','length','field','name','qqxPg','667449sGrHYl',')\x20~\x20$1\x20LIMIT\x20$2','6xjKifT'];_0x103b=function(){return _0x522c74;};return _0x103b();}(function(_0x723706,_0x232709){const _0x18ba9c=_0x1de0,_0x27c18f=_0x723706();while(!![]){try{const _0x31efc6=-parseInt(_0x18ba9c(0x119))/0x1+parseInt(_0x18ba9c(0x115))/0x2*(parseInt(_0x18ba9c(0xff))/0x3)+parseInt(_0x18ba9c(0xf4))/0x4*(-parseInt(_0x18ba9c(0xfc))/0x5)+-parseInt(_0x18ba9c(0xfb))/0x6*(-parseInt(_0x18ba9c(0xf8))/0x7)+-parseInt(_0x18ba9c(0x103))/0x8*(parseInt(_0x18ba9c(0x113))/0x9)+parseInt(_0x18ba9c(0xf2))/0xa+-parseInt(_0x18ba9c(0xf6))/0xb*(parseInt(_0x18ba9c(0x104))/0xc);if(_0x31efc6===_0x232709)break;else _0x27c18f['push'](_0x27c18f['shift']());}catch(_0x111e41){_0x27c18f['push'](_0x27c18f['shift']());}}}(_0x103b,0x7fe25));import{ValidationError}from'../../../errors.js';function _0x1de0(_0x2ed81d,_0x1dcda4){_0x2ed81d=_0x2ed81d-0xef;const _0x103b6c=_0x103b();let _0x1de0c9=_0x103b6c[_0x2ed81d];return _0x1de0c9;}export async function suggestResource(_0x550d52,_0x25ad39){const _0x1ddf91=_0x1de0,_0x2c793b={'vAMHk':function(_0x56ba8b,_0x11b683){return _0x56ba8b(_0x11b683);},'qqxPg':function(_0x25972f,_0x591198){return _0x25972f(_0x591198);}},_0x599132=_0x25ad39[_0x1ddf91(0x100)][_0x1ddf91(0xef)](_0x550d52[_0x1ddf91(0x100)]),_0xd64d01=_0x2c793b[_0x1ddf91(0xfa)](String,_0x550d52[_0x1ddf91(0x10b)]??_0x550d52['q']??'')[_0x1ddf91(0xf3)](),_0x573560=Math[_0x1ddf91(0x106)](Math[_0x1ddf91(0xfd)](_0x2c793b[_0x1ddf91(0x112)](Number,_0x550d52[_0x1ddf91(0x102)]??0x14),0x1),0xc8),_0x2d9e6a=Date[_0x1ddf91(0x108)](),_0x3527d7=_0x599132[_0x1ddf91(0xf7)][_0x550d52[_0x1ddf91(0x110)]],_0x190019=_0x3527d7?.[_0x1ddf91(0x109)]?.[_0x1ddf91(0xf0)],_0x2dacac=_0x3527d7?.[_0x1ddf91(0x109)]?.[_0x1ddf91(0x11a)];if(_0x2dacac){const _0x579309=_0x3527d7?.[_0x1ddf91(0x109)]?.[_0x1ddf91(0x10d)],_0x22fe05=_0x3527d7?.[_0x1ddf91(0x109)]?.[_0x1ddf91(0xf9)],_0x2d53e9=await _0x25ad39['pg'][_0x1ddf91(0x101)](_0x1ddf91(0xf5)+_0x22fe05+_0x1ddf91(0xf1)+_0x579309+_0x1ddf91(0x10c)+_0x2dacac+_0x1ddf91(0x105)+_0x579309+_0x1ddf91(0x114),[''+_0xd64d01[_0x1ddf91(0xf3)](),_0x573560])[_0x1ddf91(0x107)](_0x33e366=>_0x33e366[_0x1ddf91(0x116)]);return{'limit':_0x573560,'count':_0x2d53e9[_0x1ddf91(0x10f)],'search':_0xd64d01,'time':Date[_0x1ddf91(0x108)]()-_0x2d9e6a,'data':_0x2d53e9};}if(!_0x190019)throw new ValidationError(_0x1ddf91(0x118)+_0x550d52[_0x1ddf91(0x110)]);const _0x1b74a5=await _0x25ad39[_0x1ddf91(0xf0)][_0x1ddf91(0xef)](_0x190019),_0xc7395f=_0x1b74a5[_0x1ddf91(0x117)](_0x4885f3=>!_0xd64d01||_0x4885f3[_0x1ddf91(0x10a)][_0x1ddf91(0xfe)](_0xd64d01)||_0x4885f3[_0x1ddf91(0x111)][_0x1ddf91(0xfe)](_0xd64d01))[_0x1ddf91(0x10e)](0x0,_0x573560);return{'search':_0xd64d01,'limit':_0x573560,'count':_0xc7395f[_0x1ddf91(0x10f)],'time':Date[_0x1ddf91(0x108)]()-_0x2d9e6a,'data':_0xc7395f};}
1
+ import{ValidationError}from'../../../errors.js';function U(){const D=['resource','toLowerCase','min','max','fields','lookup','query','SELECT\x20','now','field','name','startsWith','map','code','text'];U=function(){return D;};return U();}import{autoIndex}from'../../../plugins/resource/utils/auto-index.js';function z(C,N){C=C-0x11f;const r=U();let p=r[C];return p;}export async function suggestResource(C,N){const h=z,r=N[h(0x11f)]['get'](C['resource']),p=String(C['search']??C['q']??'')[h(0x120)](),c=Math[h(0x121)](Math[h(0x122)](Number(C['limit']??0x14),0x1),0xc8),x=Date['now'](),m=r[h(0x123)][C['field']],Q=m?.[h(0x124)]?.['dictionary'],u=m?.['lookup']?.['table'];if(u){const Y=m[h(0x124)]?.['textField']??'name',f=m['lookup']?.['valueField']??'id';autoIndex(u,Y,'text',N['pg']);const F=await N['pg'][h(0x125)](h(0x126)+f+'\x20as\x20id,\x20'+Y+'\x20as\x20text\x20FROM\x20'+u+'\x20WHERE\x20lower('+Y+')\x20~\x20$1\x20LIMIT\x20$2',[''+p[h(0x120)](),c])['then'](t=>t['rows']);return{'limit':c,'count':F['length'],'search':p,'time':Date[h(0x127)]()-x,'data':F};}if(!Q)throw new ValidationError('Field\x20has\x20no\x20lookup\x20dictionary:\x20'+C[h(0x128)]);const L=await N['dictionary']['get'](Q),T=L['filter'](t=>!p||t['code']['startsWith'](p)||t[h(0x129)][h(0x12a)](p))['slice'](0x0,c)[h(0x12b)](t=>({'id':t[h(0x12c)]||t['id'],'text':t['name']||t[h(0x12d)]}));return{'search':p,'limit':c,'count':T['length'],'time':Date['now']()-x,'data':T};}
@@ -0,0 +1,10 @@
1
+ import type { AppContext, User } from "../../../context.js";
2
+ export declare function updateResourceRelation(params: {
3
+ resource: string;
4
+ id: string;
5
+ relation: string;
6
+ relationId: string;
7
+ data: Record<string, unknown>;
8
+ user?: User;
9
+ }, ctx: AppContext): Promise<Record<string, unknown>>;
10
+ //# sourceMappingURL=update-resource-relation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-resource-relation.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/update-resource-relation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,sBAAsB,CACxC,MAAM,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,IAAI,CAAC;CACf,EACD,GAAG,EAAE,UAAU,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUlC"}
@@ -0,0 +1 @@
1
+ export async function updateResourceRelation(C,N){const {resource:r,id:p,relation:c,relationId:x,data:m,user:Q}=C;return N['resource']['updateRelation']({'name':r,'id':p,'relation':c,'relationId':x,'data':m,'user':Q});}
@@ -1 +1 @@
1
- function _0x35fa(_0x4dac02,_0x4e587c){_0x4dac02=_0x4dac02-0x1b4;var _0x5dc56e=_0x5dc5();var _0x35fa24=_0x5dc56e[_0x4dac02];return _0x35fa24;}(function(_0x848b7e,_0x51b232){var _0x319c1e=_0x35fa,_0x2c5a4a=_0x848b7e();while(!![]){try{var _0x51cc0d=-parseInt(_0x319c1e(0x1bc))/0x1+-parseInt(_0x319c1e(0x1c2))/0x2*(parseInt(_0x319c1e(0x1bf))/0x3)+-parseInt(_0x319c1e(0x1b7))/0x4+parseInt(_0x319c1e(0x1bb))/0x5*(parseInt(_0x319c1e(0x1b9))/0x6)+parseInt(_0x319c1e(0x1c4))/0x7*(-parseInt(_0x319c1e(0x1b8))/0x8)+-parseInt(_0x319c1e(0x1c0))/0x9+parseInt(_0x319c1e(0x1ba))/0xa*(parseInt(_0x319c1e(0x1b6))/0xb);if(_0x51cc0d===_0x51b232)break;else _0x2c5a4a['push'](_0x2c5a4a['shift']());}catch(_0x1ccdb9){_0x2c5a4a['push'](_0x2c5a4a['shift']());}}}(_0x5dc5,0x74697));function _0x5dc5(){var _0x30f971=['22qtNjiX','update','840777VhZnto','data','user','11AtDqxN','3277188SLatou','16WvKayO','708YQFNEX','20329010TePPiC','15985ePDhkc','508332JiEmpF','name','patch','2031tvFgqC','3222234PZaIct','resource'];_0x5dc5=function(){return _0x30f971;};return _0x5dc5();}export async function updateResource(_0x3e1e8b,_0x5c59b4){var _0x1a36f9=_0x35fa,_0xed4025={};return _0xed4025[_0x1a36f9(0x1bd)]=_0x3e1e8b[_0x1a36f9(0x1c1)],_0xed4025['id']=_0x3e1e8b['id'],_0xed4025[_0x1a36f9(0x1b4)]=_0x3e1e8b[_0x1a36f9(0x1be)],_0xed4025[_0x1a36f9(0x1b5)]=_0x3e1e8b[_0x1a36f9(0x1b5)],_0x5c59b4[_0x1a36f9(0x1c1)][_0x1a36f9(0x1c3)](_0xed4025);}
1
+ function U(){var p=['resource','user'];U=function(){return p;};return U();}function z(C,N){C=C-0x1a8;var r=U();var p=r[C];return p;}export async function updateResource(C,N){var r=z;return N[r(0x1a8)]['update']({'name':C['resource'],'id':C['id'],'data':C['patch'],'user':C[r(0x1a9)]});}
@@ -1 +1 @@
1
- function _0x4b61(_0x5f11a5,_0x3b7b86){_0x5f11a5=_0x5f11a5-0x87;const _0x3c1f61=_0x3c1f();let _0x4b61c1=_0x3c1f61[_0x5f11a5];return _0x4b61c1;}function _0x3c1f(){const _0x1efb9f=['5365162MzLYxM','type','resource','File\x20name\x20is\x20required','14esahUr','admin','includes','access','name','put','9126zZKBiz','user','tQtto','files/','oENYl','exists','ayqUO','wVwEE','fileName','10EtcMRx','RpOVf','\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.files\x20(resource,\x20resource_id,\x20file_path,\x20size)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20*\x0a\x20\x20\x20\x20','rows','HTLyE',':update','Admin\x20access\x20required','20XLwHWH','896094csuLdN','length','get','32954EIQCxy','isBuffer','12618162Lenmvn','okTmZ','Uploaded\x20file\x20not\x20found','obgTv','7294329TbOdIN','UAoyW','permissions','file','File\x20is\x20required','query','IUGoR','permission','8UBLujk','26652RvNxCT','replace','Missing\x20permission:\x20','vBItF','YkDHI','8nHVSWs','2552790avRugz','YcnWA'];_0x3c1f=function(){return _0x1efb9f;};return _0x3c1f();}(function(_0x5ce622,_0x34987d){const _0x46c23b=_0x4b61,_0x5a470c=_0x5ce622();while(!![]){try{const _0x5aaa2f=parseInt(_0x46c23b(0xa7))/0x1*(parseInt(_0x46c23b(0x8d))/0x2)+parseInt(_0x46c23b(0xa4))/0x3*(parseInt(_0x46c23b(0xbb))/0x4)+-parseInt(_0x46c23b(0x9c))/0x5*(-parseInt(_0x46c23b(0x87))/0x6)+parseInt(_0x46c23b(0xad))/0x7+-parseInt(_0x46c23b(0xb5))/0x8*(parseInt(_0x46c23b(0xa9))/0x9)+parseInt(_0x46c23b(0xa3))/0xa*(parseInt(_0x46c23b(0x89))/0xb)+-parseInt(_0x46c23b(0xb6))/0xc*(parseInt(_0x46c23b(0x93))/0xd);if(_0x5aaa2f===_0x34987d)break;else _0x5a470c['push'](_0x5a470c['shift']());}catch(_0xb16ce1){_0x5a470c['push'](_0x5a470c['shift']());}}}(_0x3c1f,0xb388f));import{ForbiddenError,NotFoundError,ValidationError}from'../../../errors.js';export async function uploadResourceFile(_0x35e9ec,_0x140f25){const _0xfff213=_0x4b61,_0x1093ac={'tQtto':_0xfff213(0x8c),'ayqUO':function(_0x1497f1,_0x415b48){return _0x1497f1===_0x415b48;},'obgTv':_0xfff213(0x8e),'HTLyE':function(_0x147546,_0xd04f96){return _0x147546!==_0xd04f96;},'YkDHI':_0xfff213(0xa2),'oENYl':function(_0x26dd10,_0x1e2c1c){return _0x26dd10!==_0x1e2c1c;},'wVwEE':_0xfff213(0xb1),'RpOVf':function(_0x1f605a,_0xde622){return _0x1f605a(_0xde622);},'okTmZ':_0xfff213(0xb9),'YcnWA':_0xfff213(0xae),'IUGoR':_0xfff213(0xab)},_0x808167=_0x140f25[_0xfff213(0x8b)][_0xfff213(0xa6)](_0x35e9ec[_0xfff213(0x8b)]);if(_0x1093ac[_0xfff213(0x99)](_0x808167[_0xfff213(0x90)],_0x1093ac[_0xfff213(0xac)])&&_0x1093ac[_0xfff213(0xa0)](_0x35e9ec[_0xfff213(0x94)]?.[_0xfff213(0x8a)],_0x1093ac[_0xfff213(0xac)]))throw new ForbiddenError(_0x1093ac[_0xfff213(0xba)]);if(_0x1093ac[_0xfff213(0x97)](_0x35e9ec[_0xfff213(0x94)]?.[_0xfff213(0x8a)],_0x1093ac[_0xfff213(0xac)])&&!_0x35e9ec[_0xfff213(0x94)]?.[_0xfff213(0xaf)]?.[_0xfff213(0x8f)]((_0x808167[_0xfff213(0xb4)]??_0x808167[_0xfff213(0x91)])+_0xfff213(0xa1)))throw new ForbiddenError(_0xfff213(0xb8)+(_0x808167[_0xfff213(0xb4)]??_0x808167[_0xfff213(0x91)])+_0xfff213(0xa1));if(!Buffer[_0xfff213(0xa8)](_0x35e9ec[_0xfff213(0xb0)])||_0x35e9ec[_0xfff213(0xb0)][_0xfff213(0xa5)]===0x0)throw new ValidationError(_0x1093ac[_0xfff213(0x9a)]);const _0x44ad26=_0x35e9ec[_0xfff213(0x9b)][_0xfff213(0xb7)](/[^A-Za-z0-9._-]/g,'_');if(!_0x44ad26)throw new ValidationError(_0x1093ac[_0xfff213(0x95)]);const _0x135792=_0xfff213(0x96)+_0x35e9ec[_0xfff213(0x8b)]+'/'+_0x1093ac[_0xfff213(0x9d)](String,_0x35e9ec['id'])+'/'+_0x44ad26;await _0x140f25[_0xfff213(0xb0)][_0xfff213(0x92)](_0x135792,_0x35e9ec[_0xfff213(0xb0)]);if(!await _0x140f25[_0xfff213(0xb0)][_0xfff213(0x98)](_0x135792)){if(_0x1093ac[_0xfff213(0x99)](_0x1093ac[_0xfff213(0xaa)],_0x1093ac[_0xfff213(0x88)]))throw new _0x58f65d(_0x1093ac[_0xfff213(0x95)]);else throw new NotFoundError(_0x1093ac[_0xfff213(0xb3)]);}const _0x1f0271=await _0x140f25['pg'][_0xfff213(0xb2)](_0xfff213(0x9e),[_0x35e9ec[_0xfff213(0x8b)],_0x1093ac[_0xfff213(0x9d)](String,_0x35e9ec['id']),_0x135792,_0x35e9ec[_0xfff213(0xb0)][_0xfff213(0xa5)]]);return _0x1f0271[_0xfff213(0x9f)][0x0];}
1
+ import{ForbiddenError,NotFoundError,ValidationError}from'../../../errors.js';export async function uploadResourceFile(C,N){const m=z,r=N[m(0x1bf)][m(0x1c0)](C['resource']);if(r['access']==='admin'&&C['user']?.['type']!=='admin')throw new ForbiddenError(m(0x1c1));if(C['user']?.[m(0x1c2)]!=='admin'&&!C[m(0x1c3)]?.['permissions']?.[m(0x1c4)]((r[m(0x1c5)]??r['name'])+m(0x1c6)))throw new ForbiddenError('Missing\x20permission:\x20'+(r['permission']??r[m(0x1c7)])+':update');if(!Buffer[m(0x1c8)](C['file'])||C['file']['length']===0x0)throw new ValidationError('File\x20is\x20required');const p=C[m(0x1c9)][m(0x1ca)](/[^A-Za-z0-9._-]/g,'_');if(!p)throw new ValidationError('File\x20name\x20is\x20required');const c='files/'+C[m(0x1bf)]+'/'+String(C['id'])+'/'+p;await N[m(0x1cb)]['put'](c,C[m(0x1cb)]);if(!await N['file']['exists'](c))throw new NotFoundError('Uploaded\x20file\x20not\x20found');const x=await N['pg']['query']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.files\x20(resource,\x20resource_id,\x20file_path,\x20size)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20*\x0a\x20\x20\x20\x20',[C['resource'],String(C['id']),c,C['file']['length']]);return x['rows'][0x0];}function z(C,N){C=C-0x1bf;const r=U();let p=r[C];return p;}function U(){const Q=['resource','get','Admin\x20access\x20required','type','user','includes','permission',':update','name','isBuffer','fileName','replace','file'];U=function(){return Q;};return U();}
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/modules/system/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAanD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,wBAAgB,YAAY,CAC1B,GAAG,EAAE,UAAU,EACf,SAAS,GAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAa,GACnD,kBAAkB,CA4KpB"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/modules/system/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAanD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,wBAAgB,YAAY,CAC1B,GAAG,EAAE,UAAU,EACf,SAAS,GAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAa,GACnD,kBAAkB,CA8JpB"}
@@ -1 +1 @@
1
- const _0xc32977=_0xa56a;(function(_0x5230bc,_0x437178){const _0x38ecda=_0xa56a,_0x28d318=_0x5230bc();while(!![]){try{const _0x553941=parseInt(_0x38ecda(0xcd))/0x1*(parseInt(_0x38ecda(0xe9))/0x2)+-parseInt(_0x38ecda(0xdb))/0x3*(-parseInt(_0x38ecda(0xc4))/0x4)+parseInt(_0x38ecda(0xf9))/0x5*(-parseInt(_0x38ecda(0xf7))/0x6)+parseInt(_0x38ecda(0xe3))/0x7*(parseInt(_0x38ecda(0xd4))/0x8)+parseInt(_0x38ecda(0xb3))/0x9+-parseInt(_0x38ecda(0x9d))/0xa*(-parseInt(_0x38ecda(0xb8))/0xb)+parseInt(_0x38ecda(0xb1))/0xc;if(_0x553941===_0x437178)break;else _0x28d318['push'](_0x28d318['shift']());}catch(_0x4b21ec){_0x28d318['push'](_0x28d318['shift']());}}}(_0x2b73,0xcee9e));import{getSystemSettings}from'./services/get-system-settings.js';import{updateSystemSettings}from'./services/update-system-settings.js';import{getAuditLog}from'./services/get-audit-log.js';import{checkSystem}from'./services/check-system.js';import{getApiList}from'./services/get-api-list.js';import{getSystemLog}from'./services/get-system-log.js';function _0x2b73(){const _0x28a048=['356311jGqlOI','post','system','system:dictionaries','Get\x20access\x20rules','send','List\x20platform\x20dictionaries','8PcNqaV','Checks\x20the\x20availability\x20of\x20system\x20dependencies.','schema','RVDOU','system:access','AxZQJ','iCCMK','3OGKHsw','Returns\x20a\x20registered\x20platform\x20dictionary\x20by\x20name.','IoUhg','NRraR','BYEtd','koQuF','hQmOX','AgFHI','4519018sAnGWf','system:settings','Returns\x20the\x20list\x20of\x20registered\x20platform\x20APIs.','access','/api/dictionaries','shzcU','2pgglil','zASBG','PlOLn','Set\x20access\x20rules','nsCPm','/api/dictionaries/:name','Returns\x20all\x20available\x20dictionaries\x20registered\x20by\x20the\x20platform.','apiListQuery','Returns\x20system\x20logger\x20entries\x20for\x20the\x20requested\x20path.','system:audit','summary','Returns\x20system\x20settings\x20as\x20nested\x20JSON.','OPqFJ','yCtep','750LONwTK','HtIGu','36865mxiasX','accessTarget','description','/api/system/audit','type','CEFpx','deOXW','get','tags','Get\x20platform\x20dictionary','permissions','Replaces\x20direct\x20access\x20rules\x20for\x20a\x20user\x20or\x20role.','dictionaryName','admin','1356070VczYbf','LWdrM','FzNIm','system:check','TamHJ','fcore','DqJUM','Get\x20system\x20settings','/api/system/settings','Update\x20platform\x20dictionary','UIHGT','params','logger','sXXEq','lqGEa','JcFva','Returns\x20direct\x20and\x20role-based\x20access\x20rules\x20for\x20a\x20user\x20or\x20role.','wTDKb','LejfZ','Get\x20audit\x20log','1752vZLPdd','/api/system/logger','2219175ngbRYc','Returns\x20the\x20system\x20audit\x20log\x20entries.','/api/system/check','/api/access/:type/:id','system:logs','11BXtBzC','query','List\x20APIs','Update\x20system\x20settings','dictionaryItems','QOCso','Get\x20system\x20log','Replaces\x20the\x20items\x20of\x20a\x20registered\x20platform\x20dictionary.','hLQGh','Check\x20system\x20health','XiKmy','JvhLi','1539720BIWSTk','body','rdYRH','/api/system/list','yqPCH','settings','Updates\x20system\x20settings\x20using\x20flat\x20dot-notation\x20keys.','user','querystring'];_0x2b73=function(){return _0x28a048;};return _0x2b73();}import{listDictionaries}from'./services/list-dictionaries.js';import{getDictionary}from'./services/get-dictionary.js';import{updateDictionary}from'./services/update-dictionary.js';import{getAccess}from'./services/get-access.js';function _0xa56a(_0x1fccdf,_0x393dbe){_0x1fccdf=_0x1fccdf-0x99;const _0x2b7339=_0x2b73();let _0xa56a46=_0x2b7339[_0x1fccdf];return _0xa56a46;}import{setAccess}from'./services/set-access.js';import{systemSchemas}from'./schema.js';const u=_0x93714a=>_0x93714a[_0xc32977(0xcb)];export function systemRoutes(_0x40c68c,_0x33b2fc=new Map()){const _0x1fd71b=_0xc32977,_0x121b41={'zASBG':function(_0x2b1b07,_0x50595b,_0x493432){return _0x2b1b07(_0x50595b,_0x493432);},'rdYRH':_0x1fd71b(0xa2),'RVDOU':_0x1fd71b(0xd3),'IoUhg':_0x1fd71b(0xef),'sXXEq':_0x1fd71b(0xd0),'JvhLi':_0x1fd71b(0xee),'deOXW':_0x1fd71b(0xcf),'lqGEa':_0x1fd71b(0x102),'nsCPm':_0x1fd71b(0x9c),'yqPCH':_0x1fd71b(0xa6),'CEFpx':_0x1fd71b(0xbf),'TamHJ':_0x1fd71b(0xb6),'LWdrM':_0x1fd71b(0xd1),'koQuF':_0x1fd71b(0xec),'hQmOX':_0x1fd71b(0x9a),'PlOLn':_0x1fd71b(0xd8),'LejfZ':_0x1fd71b(0xa5),'yCtep':_0x1fd71b(0xf4),'OPqFJ':_0x1fd71b(0xbb),'AgFHI':_0x1fd71b(0xca),'BYEtd':_0x1fd71b(0xe4),'DqJUM':_0x1fd71b(0xb2),'AxZQJ':_0x1fd71b(0xbe),'HtIGu':_0x1fd71b(0xf1),'iCCMK':_0x1fd71b(0xb7),'NRraR':_0x1fd71b(0xfc),'XiKmy':_0x1fd71b(0xb0),'UIHGT':_0x1fd71b(0xb4),'QOCso':_0x1fd71b(0xc1),'JcFva':_0x1fd71b(0xd5),'wTDKb':_0x1fd71b(0xa0),'hLQGh':_0x1fd71b(0xba),'FzNIm':_0x1fd71b(0xe5)};return async _0x5c37fc=>{const _0xfc0ace=_0x1fd71b,_0x3d15c1={'shzcU':function(_0x5c276c,_0x43069c,_0x50644d){const _0x3045e2=_0xa56a;return _0x121b41[_0x3045e2(0xea)](_0x5c276c,_0x43069c,_0x50644d);}},_0x65628a={};_0x65628a[_0xfc0ace(0x101)]=[_0x121b41[_0xfc0ace(0xc6)],_0xfc0ace(0xcf)],_0x65628a[_0xfc0ace(0xf3)]=_0x121b41[_0xfc0ace(0xd7)],_0x65628a[_0xfc0ace(0xfb)]=_0x121b41[_0xfc0ace(0xdd)],_0x65628a[_0xfc0ace(0xe6)]=_0xfc0ace(0x9c),_0x65628a[_0xfc0ace(0x99)]=[_0x121b41[_0xfc0ace(0xaa)]];const _0x3f8f56={};_0x3f8f56[_0xfc0ace(0xd6)]=_0x65628a,_0x5c37fc[_0xfc0ace(0x100)](_0xfc0ace(0xe7),_0x3f8f56,async _0x1dcce3=>listDictionaries({'user':u(_0x1dcce3)},_0x40c68c)),_0x5c37fc[_0xfc0ace(0x100)](_0x121b41[_0xfc0ace(0xc3)],{'schema':{'tags':[_0x121b41[_0xfc0ace(0xc6)],_0x121b41[_0xfc0ace(0xff)]],'summary':_0x121b41[_0xfc0ace(0xab)],'description':_0xfc0ace(0xdc),'access':_0x121b41[_0xfc0ace(0xed)],'permissions':[_0x121b41[_0xfc0ace(0xaa)]],'params':systemSchemas[_0xfc0ace(0x9b)]}},async _0x4a14a5=>getDictionary({..._0x4a14a5[_0xfc0ace(0xa8)],'user':u(_0x4a14a5)},_0x40c68c)),_0x5c37fc[_0xfc0ace(0xce)](_0x121b41[_0xfc0ace(0xc3)],{'schema':{'tags':[_0xfc0ace(0xa2),_0x121b41[_0xfc0ace(0xff)]],'summary':_0x121b41[_0xfc0ace(0xc8)],'description':_0x121b41[_0xfc0ace(0xfe)],'access':_0xfc0ace(0x9c),'permissions':[_0x121b41[_0xfc0ace(0xaa)]],'params':systemSchemas[_0xfc0ace(0x9b)],'body':systemSchemas[_0xfc0ace(0xbc)]}},async _0x543019=>updateDictionary({..._0x543019[_0xfc0ace(0xa8)],..._0x543019[_0xfc0ace(0xc5)],'user':u(_0x543019)},_0x40c68c));const _0x3780be=async _0x3cdc7b=>getAccess({..._0x3cdc7b[_0xfc0ace(0xa8)],'user':u(_0x3cdc7b)},_0x40c68c);_0x5c37fc[_0xfc0ace(0x100)](_0x121b41[_0xfc0ace(0xa1)],{'schema':{'tags':[_0xfc0ace(0xa2),_0x121b41[_0xfc0ace(0xff)]],'summary':_0x121b41[_0xfc0ace(0x9e)],'description':_0xfc0ace(0xad),'access':_0x121b41[_0xfc0ace(0xed)],'permissions':[_0xfc0ace(0xd8)],'params':systemSchemas[_0xfc0ace(0xfa)]}},_0x3780be);const _0x433ce4={};_0x433ce4[_0xfc0ace(0x101)]=[_0x121b41[_0xfc0ace(0xc6)],_0x121b41[_0xfc0ace(0xff)]],_0x433ce4[_0xfc0ace(0xf3)]=_0x121b41[_0xfc0ace(0xe0)],_0x433ce4[_0xfc0ace(0xfb)]=_0x121b41[_0xfc0ace(0xe1)],_0x433ce4[_0xfc0ace(0xe6)]=_0x121b41[_0xfc0ace(0xed)],_0x433ce4[_0xfc0ace(0x99)]=[_0x121b41[_0xfc0ace(0xeb)]],_0x433ce4[_0xfc0ace(0xa8)]=systemSchemas[_0xfc0ace(0xfa)],_0x433ce4[_0xfc0ace(0xc5)]=systemSchemas[_0xfc0ace(0xe6)];const _0x58cbdf={};_0x58cbdf[_0xfc0ace(0xd6)]=_0x433ce4,_0x5c37fc[_0xfc0ace(0xce)](_0xfc0ace(0xb6),_0x58cbdf,async _0x391f7d=>setAccess({..._0x391f7d[_0xfc0ace(0xa8)],..._0x391f7d[_0xfc0ace(0xc5)],'user':u(_0x391f7d)},_0x40c68c)),_0x5c37fc[_0xfc0ace(0x100)](_0x121b41[_0xfc0ace(0xaf)],{'schema':{'tags':[_0x121b41[_0xfc0ace(0xc6)],_0x121b41[_0xfc0ace(0xff)]],'summary':_0xfc0ace(0xa4),'description':_0x121b41[_0xfc0ace(0xf6)],'access':_0xfc0ace(0x9c),'permissions':[_0xfc0ace(0xe4)]}},async _0x3ff9a4=>getSystemSettings({..._0x3ff9a4[_0xfc0ace(0xa8)],'user':u(_0x3ff9a4)},_0x40c68c));const _0x1d6fcc={};_0x1d6fcc[_0xfc0ace(0x101)]=[_0xfc0ace(0xa2),_0x121b41[_0xfc0ace(0xff)]],_0x1d6fcc[_0xfc0ace(0xf3)]=_0x121b41[_0xfc0ace(0xf5)],_0x1d6fcc[_0xfc0ace(0xfb)]=_0x121b41[_0xfc0ace(0xe2)],_0x1d6fcc[_0xfc0ace(0xe6)]=_0x121b41[_0xfc0ace(0xed)],_0x1d6fcc[_0xfc0ace(0x99)]=[_0x121b41[_0xfc0ace(0xdf)]],_0x1d6fcc[_0xfc0ace(0xc5)]=systemSchemas[_0xfc0ace(0xc9)];const _0x53fddf={};_0x53fddf[_0xfc0ace(0xd6)]=_0x1d6fcc,_0x5c37fc[_0xfc0ace(0xce)](_0xfc0ace(0xa5),_0x53fddf,async _0x1da9cf=>updateSystemSettings({..._0x1da9cf[_0xfc0ace(0xa8)],'patch':_0x1da9cf[_0xfc0ace(0xc5)],'user':u(_0x1da9cf)},_0x40c68c)),_0x5c37fc[_0xfc0ace(0x100)](_0x121b41[_0xfc0ace(0xa3)],{'schema':{'tags':[_0x121b41[_0xfc0ace(0xc6)],_0x121b41[_0xfc0ace(0xff)]],'summary':_0x121b41[_0xfc0ace(0xd9)],'description':_0x121b41[_0xfc0ace(0xf8)],'access':_0x121b41[_0xfc0ace(0xed)],'permissions':[_0x121b41[_0xfc0ace(0xda)]],'querystring':systemSchemas[_0xfc0ace(0xa9)]}},async(_0x183912,_0x32ccc2)=>{const _0x5a7368=_0xfc0ace,{contentType:_0x24531e,body:_0x1535bf}=await _0x3d15c1[_0x5a7368(0xe8)](getSystemLog,{..._0x183912[_0x5a7368(0xb9)],'user':u(_0x183912)},_0x40c68c);return _0x32ccc2[_0x5a7368(0xfd)](_0x24531e)[_0x5a7368(0xd2)](_0x1535bf);}),_0x5c37fc[_0xfc0ace(0x100)](_0x121b41[_0xfc0ace(0xde)],{'schema':{'tags':[_0xfc0ace(0xa2),_0x121b41[_0xfc0ace(0xff)]],'summary':_0x121b41[_0xfc0ace(0xc2)],'description':_0x121b41[_0xfc0ace(0xa7)],'access':_0x121b41[_0xfc0ace(0xed)],'permissions':[_0xfc0ace(0xf2)]}},async _0x3b880b=>getAuditLog({..._0x3b880b[_0xfc0ace(0xb9)],'user':u(_0x3b880b)},_0x40c68c));const _0x23d856={};_0x23d856[_0xfc0ace(0x101)]=[_0xfc0ace(0xa2),_0x121b41[_0xfc0ace(0xff)]],_0x23d856[_0xfc0ace(0xf3)]=_0x121b41[_0xfc0ace(0xbd)],_0x23d856[_0xfc0ace(0xfb)]=_0x121b41[_0xfc0ace(0xac)],_0x23d856[_0xfc0ace(0xe6)]=_0x121b41[_0xfc0ace(0xed)],_0x23d856[_0xfc0ace(0x99)]=[_0x121b41[_0xfc0ace(0xae)]];const _0x456306={};_0x456306[_0xfc0ace(0xd6)]=_0x23d856,_0x5c37fc[_0xfc0ace(0x100)](_0xfc0ace(0xb5),_0x456306,async _0x25ed84=>checkSystem({'user':u(_0x25ed84)},_0x40c68c));const _0x243706={};_0x243706[_0xfc0ace(0x101)]=[_0x121b41[_0xfc0ace(0xc6)],_0x121b41[_0xfc0ace(0xff)]],_0x243706[_0xfc0ace(0xf3)]=_0x121b41[_0xfc0ace(0xc0)],_0x243706[_0xfc0ace(0xfb)]=_0x121b41[_0xfc0ace(0x9f)],_0x243706[_0xfc0ace(0xe6)]=_0x121b41[_0xfc0ace(0xed)],_0x243706[_0xfc0ace(0x99)]=[],_0x243706[_0xfc0ace(0xcc)]=systemSchemas[_0xfc0ace(0xf0)];const _0x33af13={};_0x33af13[_0xfc0ace(0xd6)]=_0x243706,_0x5c37fc[_0xfc0ace(0x100)](_0xfc0ace(0xc7),_0x33af13,async _0x4e136b=>getApiList({'user':u(_0x4e136b),'apiRoutes':_0x33b2fc,..._0x4e136b[_0xfc0ace(0xb9)]},_0x40c68c));};}
1
+ import{getSystemSettings}from'./services/get-system-settings.js';import{updateSystemSettings}from'./services/update-system-settings.js';import{getAuditLog}from'./services/get-audit-log.js';import{checkSystem}from'./services/check-system.js';import{getApiList}from'./services/get-api-list.js';import{getSystemLog}from'./services/get-system-log.js';function z(C,N){C=C-0x181;const r=U();let p=r[C];return p;}import{getDictionary}from'./services/get-dictionary.js';import{updateDictionary}from'./services/update-dictionary.js';import{getAccess}from'./services/get-access.js';import{setAccess}from'./services/set-access.js';import{systemSchemas}from'./schema.js';function U(){const Y=['system','Get\x20platform\x20dictionary','user','system:dictionaries','dictionaryName','params','Replaces\x20direct\x20access\x20rules\x20for\x20a\x20user\x20or\x20role.','admin','get','/api/system/settings','Get\x20system\x20log','logger','type','/api/system/check','fcore','apiListQuery'];U=function(){return Y;};return U();}const u=C=>C['user'];export function systemRoutes(C,N=new Map()){return async r=>{const L=z;r['get']('/api/dictionary/:name',{'schema':{'tags':['fcore',L(0x181)],'summary':L(0x182),'description':'Returns\x20a\x20registered\x20platform\x20dictionary\x20by\x20name.','access':'user','permissions':['system:dictionaries'],'params':systemSchemas['dictionaryName']}},async c=>({'items':await getDictionary({...c['params'],'user':u(c)},C)})),r['post']('/api/dictionary/:name',{'schema':{'tags':['fcore',L(0x181)],'summary':'Update\x20platform\x20dictionary','description':'Replaces\x20the\x20items\x20of\x20a\x20registered\x20platform\x20dictionary.','access':L(0x183),'permissions':[L(0x184)],'params':systemSchemas[L(0x185)],'body':systemSchemas['dictionaryItems']}},async c=>updateDictionary({...c[L(0x186)],...c['body'],'user':u(c)},C));const p=async c=>getAccess({...c['params'],'user':u(c)},C);r['get']('/api/access/:type/:id',{'schema':{'tags':['fcore','system'],'summary':'Get\x20access\x20rules','description':'Returns\x20direct\x20and\x20role-based\x20access\x20rules\x20for\x20a\x20user\x20or\x20role.','access':'admin','permissions':['system:access'],'params':systemSchemas['accessTarget']}},p),r['post']('/api/access/:type/:id',{'schema':{'tags':['fcore','system'],'summary':'Set\x20access\x20rules','description':L(0x187),'access':L(0x188),'permissions':['system:access'],'params':systemSchemas['accessTarget'],'body':systemSchemas['access']}},async c=>setAccess({...c['params'],...c['body'],'user':u(c)},C)),r[L(0x189)](L(0x18a),{'schema':{'tags':['fcore','system'],'summary':'Get\x20system\x20settings','description':'Returns\x20system\x20settings\x20as\x20nested\x20JSON.','access':'admin','permissions':['system:settings']}},async c=>getSystemSettings({...c['params'],'user':u(c)},C)),r['post']('/api/system/settings',{'schema':{'tags':['fcore','system'],'summary':'Update\x20system\x20settings','description':'Updates\x20system\x20settings\x20using\x20flat\x20dot-notation\x20keys.','access':'admin','permissions':['system:settings'],'body':systemSchemas['settings']}},async c=>updateSystemSettings({...c['params'],'patch':c['body'],'user':u(c)},C)),r[L(0x189)]('/api/system/logger',{'schema':{'tags':['fcore','system'],'summary':L(0x18b),'description':'Returns\x20system\x20logger\x20entries\x20for\x20the\x20requested\x20path.','access':L(0x183),'permissions':['system:logs'],'querystring':systemSchemas[L(0x18c)]}},async(c,x)=>{const T=L,{contentType:m,body:Q}=await getSystemLog({...c['query'],'user':u(c)},C);return x[T(0x18d)](m)['send'](Q);}),r[L(0x189)]('/api/system/audit',{'schema':{'tags':['fcore','system'],'summary':'Get\x20audit\x20log','description':'Returns\x20the\x20system\x20audit\x20log\x20entries.','access':L(0x183),'permissions':['system:audit']}},async c=>getAuditLog({...c['query'],'user':u(c)},C)),r['get'](L(0x18e),{'schema':{'tags':['fcore','system'],'summary':'Check\x20system\x20health','description':'Checks\x20the\x20availability\x20of\x20system\x20dependencies.','access':L(0x183),'permissions':['system:check']}},async c=>checkSystem({'user':u(c)},C)),r[L(0x189)]('/api/system/list',{'schema':{'tags':[L(0x18f),'system'],'summary':'List\x20APIs','description':'Returns\x20the\x20list\x20of\x20registered\x20platform\x20APIs.','access':L(0x188),'permissions':[],'querystring':systemSchemas[L(0x190)]}},async c=>getApiList({'user':u(c),'apiRoutes':N,...c['query']},C));};}
@@ -1 +1 @@
1
- const _0x380461=_0x239b;(function(_0x11f78f,_0x506217){const _0x5d87ad=_0x239b,_0x35eda8=_0x11f78f();while(!![]){try{const _0x503aff=parseInt(_0x5d87ad(0x129))/0x1+parseInt(_0x5d87ad(0x119))/0x2+parseInt(_0x5d87ad(0x11c))/0x3+parseInt(_0x5d87ad(0x10f))/0x4*(-parseInt(_0x5d87ad(0x10a))/0x5)+-parseInt(_0x5d87ad(0x11a))/0x6+parseInt(_0x5d87ad(0x115))/0x7*(-parseInt(_0x5d87ad(0x114))/0x8)+parseInt(_0x5d87ad(0x122))/0x9*(parseInt(_0x5d87ad(0x124))/0xa);if(_0x503aff===_0x506217)break;else _0x35eda8['push'](_0x35eda8['shift']());}catch(_0x585ea1){_0x35eda8['push'](_0x35eda8['shift']());}}}(_0x5720,0xd34b6));import{Type}from'@sinclair/typebox';const _0xae499={};_0xae499[_0x380461(0x118)]=0x1,_0xae499[_0x380461(0x121)]=0x80,_0xae499[_0x380461(0x10d)]=_0x380461(0x11e);export const identifier=Type[_0x380461(0x125)](_0xae499);const _0x5d38f3={};_0x5d38f3[_0x380461(0x11b)]=identifier;const _0x2efa1f={};function _0x239b(_0x30c3a5,_0x436152){_0x30c3a5=_0x30c3a5-0x10a;const _0x572050=_0x5720();let _0x239bef=_0x572050[_0x30c3a5];return _0x239bef;}_0x2efa1f[_0x380461(0x118)]=0x1;const _0x1c6fbc={};_0x1c6fbc[_0x380461(0x118)]=0x1;const _0x807fec={};_0x807fec[_0x380461(0x11d)]=!![];const _0x17b1c5={};_0x17b1c5[_0x380461(0x118)]=0x1,_0x17b1c5[_0x380461(0x121)]=0x80;function _0x5720(){const _0x4164cc=['4199008Sfaudk','14ipvmPL','extended','Unknown','minLength','1430738bWIqtM','343422FUlkqd','name','1899096JhoLKX','additionalProperties','^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$','Object','Optional','maxLength','9aIDgaJ','minItems','8245570WjUtdu','String','user','Number','Array','202763QjEUGB','288050BJnFOQ','Null','Record','pattern','Union','28WNfdDo','role','short','Literal','^[A-Za-z0-9_.\x5c-/]*$'];_0x5720=function(){return _0x4164cc;};return _0x5720();}const _0x44e26b={};_0x44e26b[_0x380461(0x118)]=0x1,_0x44e26b[_0x380461(0x121)]=0x80;const _0x3f10be={};_0x3f10be[_0x380461(0x123)]=0x1;const _0x366281={};_0x366281[_0x380461(0x118)]=0x1;const _0xd041fd={};_0xd041fd[_0x380461(0x121)]=0x100,_0xd041fd[_0x380461(0x10d)]=_0x380461(0x113);export const systemSchemas={'dictionaryName':Type[_0x380461(0x11f)](_0x5d38f3),'dictionaryItems':Type[_0x380461(0x11f)]({'items':Type[_0x380461(0x128)](Type[_0x380461(0x11f)]({'id':Type[_0x380461(0x120)](Type[_0x380461(0x10e)]([Type[_0x380461(0x125)](),Type[_0x380461(0x127)]()])),'code':Type[_0x380461(0x125)](_0x2efa1f),'name':Type[_0x380461(0x125)](_0x1c6fbc),'parentId':Type[_0x380461(0x120)](Type[_0x380461(0x10e)]([Type[_0x380461(0x125)](),Type[_0x380461(0x127)](),Type[_0x380461(0x10b)]()]))},_0x807fec))}),'accessTarget':Type[_0x380461(0x11f)]({'type':Type[_0x380461(0x10e)]([Type[_0x380461(0x112)](_0x380461(0x126)),Type[_0x380461(0x112)](_0x380461(0x110))]),'id':identifier}),'access':Type[_0x380461(0x11f)]({'access':Type[_0x380461(0x128)](Type[_0x380461(0x11f)]({'resource':Type[_0x380461(0x125)](_0x17b1c5),'actions':Type[_0x380461(0x128)](Type[_0x380461(0x125)](_0x44e26b),_0x3f10be)}))}),'apiListQuery':Type[_0x380461(0x11f)]({'format':Type[_0x380461(0x120)](Type[_0x380461(0x10e)]([Type[_0x380461(0x112)](_0x380461(0x111)),Type[_0x380461(0x112)](_0x380461(0x116))]))}),'settingsEntity':Type[_0x380461(0x11f)]({'entity':Type[_0x380461(0x120)](identifier)}),'settings':Type[_0x380461(0x10c)](Type[_0x380461(0x125)](_0x366281),Type[_0x380461(0x117)]()),'logger':Type[_0x380461(0x11f)]({'path':Type[_0x380461(0x120)](Type[_0x380461(0x125)](_0xd041fd))})};
1
+ const C=z;function U(){const N=['Object','Array','Union','Null','Literal','short'];U=function(){return N;};return U();}function z(C,N){C=C-0x7e;const r=U();let p=r[C];return p;}import{Type}from'@sinclair/typebox';export const identifier=Type['String']({'minLength':0x1,'maxLength':0x80,'pattern':'^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$'});export const systemSchemas={'dictionaryName':Type['Object']({'name':identifier}),'dictionaryItems':Type[C(0x7e)]({'items':Type[C(0x7f)](Type['Object']({'id':Type['Optional'](Type[C(0x80)]([Type['String'](),Type['Number']()])),'code':Type['String']({'minLength':0x1}),'name':Type['String']({'minLength':0x1}),'parentId':Type['Optional'](Type['Union']([Type['String'](),Type['Number'](),Type[C(0x81)]()]))},{'additionalProperties':!![]}))}),'accessTarget':Type[C(0x7e)]({'type':Type[C(0x80)]([Type['Literal']('user'),Type[C(0x82)]('role')]),'id':identifier}),'access':Type['Object']({'access':Type[C(0x7f)](Type['Object']({'resource':Type['String']({'minLength':0x1,'maxLength':0x80}),'actions':Type[C(0x7f)](Type['String']({'minLength':0x1,'maxLength':0x80}),{'minItems':0x1})}))}),'apiListQuery':Type[C(0x7e)]({'format':Type['Optional'](Type['Union']([Type['Literal'](C(0x83)),Type[C(0x82)]('extended')]))}),'settingsEntity':Type['Object']({'entity':Type['Optional'](identifier)}),'settings':Type['Record'](Type['String']({'minLength':0x1}),Type['Unknown']()),'logger':Type[C(0x7e)]({'path':Type['Optional'](Type['String']({'maxLength':0x100,'pattern':'^[A-Za-z0-9_.\x5c-/]*$'}))})};
@@ -1 +1 @@
1
- {"version":3,"file":"check-system.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/check-system.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,WAAW,CAC/B,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;CACZ,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,CAgBd"}
1
+ {"version":3,"file":"check-system.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/check-system.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,WAAW,CAC/B,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;CACZ,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,CAcd"}
@@ -1 +1 @@
1
- function _0x47ff(){const _0x2fb508=['degraded','system:check','7116687LwUSzv','29583DdeaTh','user','ping','query','60972LuYsut','96630SzWlFD','4487343QcjJrO','allSettled','951440LXaCnb','YwTUQ','11389650NvAGSQ','redis','30bndljQ','48SOjdwM','rxKYb','dvhdi','OCrjB','fulfilled','50LfAZSW','SELECT\x201','11ahUWFc','NmMSf','cpTqq','status','DXeJp'];_0x47ff=function(){return _0x2fb508;};return _0x47ff();}(function(_0x1d28ac,_0x3336ad){const _0x2c5f94=_0x4d1b,_0x2f6b79=_0x1d28ac();while(!![]){try{const _0xdc0630=-parseInt(_0x2c5f94(0x147))/0x1*(-parseInt(_0x2c5f94(0x159))/0x2)+-parseInt(_0x2c5f94(0x14c))/0x3*(parseInt(_0x2c5f94(0x154))/0x4)+-parseInt(_0x2c5f94(0x153))/0x5*(parseInt(_0x2c5f94(0x14b))/0x6)+parseInt(_0x2c5f94(0x14d))/0x7+-parseInt(_0x2c5f94(0x14f))/0x8+parseInt(_0x2c5f94(0x146))/0x9+-parseInt(_0x2c5f94(0x151))/0xa*(parseInt(_0x2c5f94(0x15b))/0xb);if(_0xdc0630===_0x3336ad)break;else _0x2f6b79['push'](_0x2f6b79['shift']());}catch(_0x1faa01){_0x2f6b79['push'](_0x2f6b79['shift']());}}}(_0x47ff,0x71c3c));function _0x4d1b(_0x27ba64,_0x3c5bfd){_0x27ba64=_0x27ba64-0x143;const _0x47ff6a=_0x47ff();let _0x4d1b31=_0x47ff6a[_0x27ba64];return _0x4d1b31;}import{requireAdmin}from'../../utils/require-admin.js';export async function checkSystem(_0x525317,_0x45b47f){const _0xd6f252=_0x4d1b,_0x59e994={'NmMSf':function(_0x2b652c,_0x42e8a8,_0x41c532){return _0x2b652c(_0x42e8a8,_0x41c532);},'YwTUQ':_0xd6f252(0x145),'rxKYb':_0xd6f252(0x15a),'dvhdi':function(_0x418db3,_0x315eba){return _0x418db3===_0x315eba;},'cpTqq':_0xd6f252(0x158),'DXeJp':function(_0x25a8f5,_0x32c8de){return _0x25a8f5===_0x32c8de;},'OCrjB':_0xd6f252(0x144)};_0x59e994[_0xd6f252(0x15c)](requireAdmin,_0x525317[_0xd6f252(0x148)],_0x59e994[_0xd6f252(0x150)]);const [_0x41ac8a,_0x2ec0fd]=await Promise[_0xd6f252(0x14e)]([_0x45b47f['pg'][_0xd6f252(0x14a)](_0x59e994[_0xd6f252(0x155)]),_0x45b47f[_0xd6f252(0x152)][_0xd6f252(0x149)]()]);return{'status':_0x59e994[_0xd6f252(0x156)](_0x41ac8a[_0xd6f252(0x15e)],_0x59e994[_0xd6f252(0x15d)])&&_0x59e994[_0xd6f252(0x143)](_0x2ec0fd[_0xd6f252(0x15e)],_0xd6f252(0x158))?'ok':_0x59e994[_0xd6f252(0x157)],'pg':_0x41ac8a[_0xd6f252(0x15e)],'redis':_0x2ec0fd[_0xd6f252(0x15e)]};}
1
+ function z(C,N){C=C-0x199;const r=U();let p=r[C];return p;}export async function checkSystem(C,N){const c=z,[r,p]=await Promise['allSettled']([N['pg']['query']('SELECT\x201'),N['redis'][c(0x199)]()]);return{'status':r[c(0x19a)]==='fulfilled'&&p['status']===c(0x19b)?'ok':c(0x19c),'pg':r['status'],'redis':p['status']};}function U(){const x=['ping','status','fulfilled','degraded'];U=function(){return x;};return U();}
@@ -1 +1 @@
1
- {"version":3,"file":"get-access.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG5D,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,wBAAsB,SAAS,CAC3B,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,EACzD,GAAG,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAoBrC"}
1
+ {"version":3,"file":"get-access.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,EACzD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAkBrC"}
@@ -1 +1 @@
1
- (function(_0x47d4a9,_0x5a9eb1){const _0x1fbf37=_0x4bd3,_0x598a56=_0x47d4a9();while(!![]){try{const _0x581ede=-parseInt(_0x1fbf37(0x1c1))/0x1+parseInt(_0x1fbf37(0x1c0))/0x2+parseInt(_0x1fbf37(0x1b6))/0x3+parseInt(_0x1fbf37(0x1bb))/0x4*(parseInt(_0x1fbf37(0x1b0))/0x5)+-parseInt(_0x1fbf37(0x1b2))/0x6+-parseInt(_0x1fbf37(0x1c3))/0x7*(parseInt(_0x1fbf37(0x1ba))/0x8)+parseInt(_0x1fbf37(0x1bd))/0x9*(parseInt(_0x1fbf37(0x1b5))/0xa);if(_0x581ede===_0x5a9eb1)break;else _0x598a56['push'](_0x598a56['shift']());}catch(_0x1a65df){_0x598a56['push'](_0x598a56['shift']());}}}(_0x3806,0x93df0));function _0x4bd3(_0x25c966,_0xf4c559){_0x25c966=_0x25c966-0x1b0;const _0x380690=_0x3806();let _0x4bd3b3=_0x380690[_0x25c966];return _0x4bd3b3;}import{requireAdmin}from'../../utils/require-admin.js';export async function getAccess(_0x4935ce,_0x1cfcee){const _0xba20ac=_0x4bd3,_0x1d0754={'nLndU':function(_0x454c2a,_0x3b125b,_0x18a819){return _0x454c2a(_0x3b125b,_0x18a819);},'ANvNA':_0xba20ac(0x1be)};_0x1d0754[_0xba20ac(0x1b8)](requireAdmin,_0x4935ce[_0xba20ac(0x1b9)],_0x1d0754[_0xba20ac(0x1c2)]);const _0x3a9dab=_0x4935ce[_0xba20ac(0x1bc)]===_0xba20ac(0x1b9)?_0xba20ac(0x1b1):_0xba20ac(0x1bf),_0x30040f=await _0x1cfcee['pg'][_0xba20ac(0x1b3)](_0x3a9dab,[_0x4935ce['id']]),_0x11f564={};return _0x11f564[_0xba20ac(0x1b7)]=_0x30040f[_0xba20ac(0x1b4)],_0x11f564;}function _0x3806(){const _0x9ff161=['1113357ANtfEj','13435OkJLJY','\x0a\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20ra.resource,\x20ra.actions,\x20ra.role_id\x20AS\x20role\x0a\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.role_access\x20ra\x0a\x20\x20\x20\x20\x20\x20\x20\x20LEFT\x20JOIN\x20admin.user_roles\x20ur\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20ur.role_id\x20=\x20ra.role_id\x20AND\x20ur.user_uid\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20ra.user_uid\x20=\x20$1\x20OR\x20ur.user_uid\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20','7111764TgKOHN','query','rows','10yqgYte','194820nyTtAI','access','nLndU','user','16MUSOMi','1072nJRtuW','type','9756081abJehr','system:access','\x0a\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20ra.resource,\x20ra.actions,\x20ra.role_id\x20AS\x20role\x0a\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.role_access\x20ra\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20ra.role_id\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20','1794964noRsIN','657471DIfeQw','ANvNA'];_0x3806=function(){return _0x9ff161;};return _0x3806();}
1
+ export async function getAccess(C,N){const c=z,r=C['type']==='user'?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20ra.resource,\x20ra.actions,\x20ra.role_id\x20AS\x20role\x0a\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.role_access\x20ra\x0a\x20\x20\x20\x20\x20\x20\x20\x20LEFT\x20JOIN\x20admin.user_roles\x20ur\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20ur.role_id\x20=\x20ra.role_id\x20AND\x20ur.user_uid\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20ra.user_uid\x20=\x20$1\x20OR\x20ur.user_uid\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20':'\x0a\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20ra.resource,\x20ra.actions,\x20ra.role_id\x20AS\x20role\x0a\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.role_access\x20ra\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20ra.role_id\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20',p=await N['pg'][c(0x118)](r,[C['id']]);return{'access':p[c(0x119)]};}function z(C,N){C=C-0x118;const r=U();let p=r[C];return p;}function U(){const x=['query','rows'];U=function(){return x;};return U();}
@@ -1 +1 @@
1
- {"version":3,"file":"get-api-list.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-api-list.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;AAEhE,wBAAsB,UAAU,CAC9B,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAC/B,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAYhC"}
1
+ {"version":3,"file":"get-api-list.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-api-list.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;AAEhE,wBAAsB,UAAU,CAC9B,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAC/B,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAWhC"}