@gzl10/nexus-backend 0.1.5 → 0.11.1

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 (133) hide show
  1. package/dist/index.d.ts +45 -9
  2. package/dist/index.js +3976 -2219
  3. package/dist/index.js.map +1 -1
  4. package/package.json +6 -2
  5. package/ui/dist/assets/ChangePasswordPage-ISVw_L0v.js +1 -0
  6. package/ui/dist/assets/DashboardPage-DP3-Udu4.js +1 -0
  7. package/ui/dist/assets/DynamicForm-CeB4C5_P.css +1 -0
  8. package/ui/dist/assets/DynamicForm.vue_vue_type_script_setup_true_lang-BEGbMqFJ.js +153 -0
  9. package/ui/dist/assets/LandingPage-ChqK0fze.js +1 -0
  10. package/ui/dist/assets/LoginPage-CoI_dKR7.js +1 -0
  11. package/ui/dist/assets/ModuleEntityForm-C-NNG-EQ.js +1 -0
  12. package/ui/dist/assets/ModuleManagement-bSQPd5tJ.js +1 -0
  13. package/ui/dist/assets/RegisterPage-BPJNkVpO.js +1 -0
  14. package/ui/dist/assets/apl-B4CMkyY2.js +1 -0
  15. package/ui/dist/assets/asciiarmor-Df11BRmG.js +1 -0
  16. package/ui/dist/assets/asn1-EdZsLKOL.js +1 -0
  17. package/ui/dist/assets/asterisk-B-8jnY81.js +1 -0
  18. package/ui/dist/assets/brainfuck-C4LP7Hcl.js +1 -0
  19. package/ui/dist/assets/clike-B9uivgTg.js +1 -0
  20. package/ui/dist/assets/clojure-BMjYHr_A.js +1 -0
  21. package/ui/dist/assets/cmake-BQqOBYOt.js +1 -0
  22. package/ui/dist/assets/cobol-CWcv1MsR.js +1 -0
  23. package/ui/dist/assets/coffeescript-S37ZYGWr.js +1 -0
  24. package/ui/dist/assets/commonlisp-DBKNyK5s.js +1 -0
  25. package/ui/dist/assets/crystal-SjHAIU92.js +1 -0
  26. package/ui/dist/assets/css-BnMrqG3P.js +1 -0
  27. package/ui/dist/assets/cypher-C_CwsFkJ.js +1 -0
  28. package/ui/dist/assets/d-pRatUO7H.js +1 -0
  29. package/ui/dist/assets/diff-DbItnlRl.js +1 -0
  30. package/ui/dist/assets/dist-7DF6COJ5-BU0JAua0.js +16 -0
  31. package/ui/dist/assets/dockerfile-BKs6k2Af.js +1 -0
  32. package/ui/dist/assets/dtd-DF_7sFjM.js +1 -0
  33. package/ui/dist/assets/dylan-DwRh75JA.js +1 -0
  34. package/ui/dist/assets/ebnf-CDyGwa7X.js +1 -0
  35. package/ui/dist/assets/ecl-Cabwm37j.js +1 -0
  36. package/ui/dist/assets/eiffel-CnydiIhH.js +1 -0
  37. package/ui/dist/assets/elm-vLlmbW-K.js +1 -0
  38. package/ui/dist/assets/erlang-BNw1qcRV.js +1 -0
  39. package/ui/dist/assets/factor-kuTfRLto.js +1 -0
  40. package/ui/dist/assets/fcl-Kvtd6kyn.js +1 -0
  41. package/ui/dist/assets/forth-Ffai-XNe.js +1 -0
  42. package/ui/dist/assets/fortran-DYz_wnZ1.js +1 -0
  43. package/ui/dist/assets/gas-Bneqetm1.js +1 -0
  44. package/ui/dist/assets/gherkin-heZmZLOM.js +1 -0
  45. package/ui/dist/assets/groovy-D9Dt4D0W.js +1 -0
  46. package/ui/dist/assets/haskell-Cw1EW3IL.js +1 -0
  47. package/ui/dist/assets/haxe-H-WmDvRZ.js +1 -0
  48. package/ui/dist/assets/http-DBlCnlav.js +1 -0
  49. package/ui/dist/assets/idl-BEugSyMb.js +1 -0
  50. package/ui/dist/assets/index-B2aO8s3Z.js +1 -0
  51. package/ui/dist/assets/index-BEgwKIPR.js +1 -0
  52. package/ui/dist/assets/index-BK8vn9eH.js +3 -0
  53. package/ui/dist/assets/index-BhvHOKjg.js +2 -0
  54. package/ui/dist/assets/index-CMceDQ1X.js +1 -0
  55. package/ui/dist/assets/index-CS_77FlC.js +1 -0
  56. package/ui/dist/assets/index-CjAC8nV-.js +1 -0
  57. package/ui/dist/assets/index-Crsm9Fe1.js +1 -0
  58. package/ui/dist/assets/index-DDExxVjn.js +1 -0
  59. package/ui/dist/assets/index-DHhnrfv6.js +1 -0
  60. package/ui/dist/assets/index-DV-FEWVR.css +1 -0
  61. package/ui/dist/assets/index-Dd-pLSL2.js +1 -0
  62. package/ui/dist/assets/index-DnEeKmzb.js +1 -0
  63. package/ui/dist/assets/index-Droz4BH2.js +1 -0
  64. package/ui/dist/assets/index-DvcKvpja.js +1 -0
  65. package/ui/dist/assets/index-Mzaxi0V6.js +1 -0
  66. package/ui/dist/assets/index-TCvHxt3m.js +1 -0
  67. package/ui/dist/assets/index-XPcj9SOt.js +1 -0
  68. package/ui/dist/assets/index-Xvxye7rE.js +7355 -0
  69. package/ui/dist/assets/index-YVp781F2.js +7 -0
  70. package/ui/dist/assets/javascript-iXu5QeM3.js +1 -0
  71. package/ui/dist/assets/julia-DuME0IfC.js +1 -0
  72. package/ui/dist/assets/livescript-BwQOo05w.js +1 -0
  73. package/ui/dist/assets/lua-BgMRiT3U.js +1 -0
  74. package/ui/dist/assets/mathematica-DTrFuWx2.js +1 -0
  75. package/ui/dist/assets/mbox-CNhZ1qSd.js +1 -0
  76. package/ui/dist/assets/mirc-CjQqDB4T.js +1 -0
  77. package/ui/dist/assets/mllike-CXdrOF99.js +1 -0
  78. package/ui/dist/assets/modelica-Dc1JOy9r.js +1 -0
  79. package/ui/dist/assets/mscgen-BA5vi2Kp.js +1 -0
  80. package/ui/dist/assets/mumps-BT43cFF4.js +1 -0
  81. package/ui/dist/assets/nginx-DdIZxoE0.js +1 -0
  82. package/ui/dist/assets/nsis-LdVXkNf5.js +1 -0
  83. package/ui/dist/assets/ntriples-BfvgReVJ.js +1 -0
  84. package/ui/dist/assets/octave-Ck1zUtKM.js +1 -0
  85. package/ui/dist/assets/oz-BzwKVEFT.js +1 -0
  86. package/ui/dist/assets/pascal--L3eBynH.js +1 -0
  87. package/ui/dist/assets/perl-CdXCOZ3F.js +1 -0
  88. package/ui/dist/assets/pig-CevX1Tat.js +1 -0
  89. package/ui/dist/assets/powershell-CFHJl5sT.js +1 -0
  90. package/ui/dist/assets/properties-C78fOPTZ.js +1 -0
  91. package/ui/dist/assets/protobuf-ChK-085T.js +1 -0
  92. package/ui/dist/assets/pug-DeIclll2.js +1 -0
  93. package/ui/dist/assets/puppet-DMA9R1ak.js +1 -0
  94. package/ui/dist/assets/python-BuPzkPfP.js +1 -0
  95. package/ui/dist/assets/q-pXgVlZs6.js +1 -0
  96. package/ui/dist/assets/r-B6wPVr8A.js +1 -0
  97. package/ui/dist/assets/rpm-CTu-6PCP.js +1 -0
  98. package/ui/dist/assets/ruby-B2Rjki9n.js +1 -0
  99. package/ui/dist/assets/sas-B4kiWyti.js +1 -0
  100. package/ui/dist/assets/scheme-C41bIUwD.js +1 -0
  101. package/ui/dist/assets/shell-CjFT_Tl9.js +1 -0
  102. package/ui/dist/assets/sieve-C3Gn_uJK.js +1 -0
  103. package/ui/dist/assets/simple-mode-GW_nhZxv.js +1 -0
  104. package/ui/dist/assets/smalltalk-CnHTOXQT.js +1 -0
  105. package/ui/dist/assets/solr-DehyRSwq.js +1 -0
  106. package/ui/dist/assets/sparql-DkYu6x3z.js +1 -0
  107. package/ui/dist/assets/spreadsheet-BCZA_wO0.js +1 -0
  108. package/ui/dist/assets/sql-D0XecflT.js +1 -0
  109. package/ui/dist/assets/stex-C3f8Ysf7.js +1 -0
  110. package/ui/dist/assets/stylus-B533Al4x.js +1 -0
  111. package/ui/dist/assets/swift-BzpIVaGY.js +1 -0
  112. package/ui/dist/assets/tcl-DVfN8rqt.js +1 -0
  113. package/ui/dist/assets/textile-CnDTJFAw.js +1 -0
  114. package/ui/dist/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  115. package/ui/dist/assets/tiki-DGYXhP31.js +1 -0
  116. package/ui/dist/assets/toml-Bm5Em-hy.js +1 -0
  117. package/ui/dist/assets/troff-wAsdV37c.js +1 -0
  118. package/ui/dist/assets/ttcn-CfJYG6tj.js +1 -0
  119. package/ui/dist/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  120. package/ui/dist/assets/turtle-B1tBg_DP.js +1 -0
  121. package/ui/dist/assets/vb-CmGdzxic.js +1 -0
  122. package/ui/dist/assets/vbscript-BuJXcnF6.js +1 -0
  123. package/ui/dist/assets/velocity-D8B20fx6.js +1 -0
  124. package/ui/dist/assets/verilog-C6RDOZhf.js +1 -0
  125. package/ui/dist/assets/vhdl-lSbBsy5d.js +1 -0
  126. package/ui/dist/assets/webidl-ZXfAyPTL.js +1 -0
  127. package/ui/dist/assets/xquery-DzFWVndE.js +1 -0
  128. package/ui/dist/assets/yacas-BJ4BC0dw.js +1 -0
  129. package/ui/dist/assets/z80-Hz9HOZM7.js +1 -0
  130. package/ui/dist/favicon-16.png +0 -0
  131. package/ui/dist/favicon-32.png +0 -0
  132. package/ui/dist/favicon.ico +0 -0
  133. package/ui/dist/index.html +17 -0
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import http from 'node:http';
2
2
  import * as express_serve_static_core from 'express-serve-static-core';
3
3
  import knex, { Knex } from 'knex';
4
- import { ModuleManifest, PluginManifest, EntityQuery, PaginatedResult as PaginatedResult$1, EntityDefinition, ModuleContext, EntityServiceHooks, CollectionEntityDefinition, SingleEntityDefinition, ReferenceEntityDefinition, EventEntityDefinition, ConfigEntityDefinition, TempEntityDefinition, ViewEntityDefinition, ExternalEntityDefinition, VirtualEntityDefinition, ComputedEntityDefinition, ActionEntityDefinition, AuthRequest as AuthRequest$1 } from '@gzl10/nexus-sdk';
4
+ import { ModuleManifest, PluginManifest, EntityQuery, PaginatedResult as PaginatedResult$1, EntityDefinition, ModuleContext, EntityServiceHooks, CollectionEntityDefinition, SingleEntityDefinition, ReferenceEntityDefinition, EventEntityDefinition, ConfigEntityDefinition, TempEntityDefinition, ViewEntityDefinition, ExternalEntityDefinition, VirtualEntityDefinition, ComputedEntityDefinition, ActionEntityDefinition, Request as Request$1, Response as Response$1, AuthRequest as AuthRequest$1 } from '@gzl10/nexus-sdk';
5
5
  export { Category, ContextHelpers, CookieOptions, EntityDefinition, EntityQuery, ModuleAbilities, ModuleContext, ModuleManifest, ModuleMiddlewares, ModuleRequirements, NextFunction, PluginManifest, Request, RequestHandler, Response, Router, ValidateSchemas } from '@gzl10/nexus-sdk';
6
6
  import { Request, Response, Router } from 'express';
7
7
  import pino from 'pino';
@@ -357,6 +357,27 @@ declare abstract class BaseEntityService<T = unknown> implements EntityService<T
357
357
  * Exclude sensitive fields from array of entities
358
358
  */
359
359
  protected excludeSensitiveFieldsFromArray<D extends Record<string, unknown>>(items: D[]): Partial<D>[];
360
+ /**
361
+ * Execute an action defined in this entity programmatically
362
+ *
363
+ * Allows invoking EntityActions from other services without HTTP context.
364
+ * NOTE: Does NOT verify CASL permissions - caller is responsible for authorization.
365
+ *
366
+ * @param actionKey - Key of the action to execute
367
+ * @param input - Input for the handler (without _record if recordId is provided)
368
+ * @param recordId - ID of the record (optional, loads automatically)
369
+ * @param options - Additional options
370
+ * @returns Result from the action handler
371
+ *
372
+ * @example
373
+ * // From another service
374
+ * const storageService = ctx.services['storage_files'] as CollectionService
375
+ * const result = await storageService.executeAction('thumbnail', { width: 200 }, fileId)
376
+ */
377
+ executeAction(actionKey: string, input?: Record<string, unknown>, recordId?: string, options?: {
378
+ userId?: string;
379
+ skipValidation?: boolean;
380
+ }): Promise<unknown>;
360
381
  }
361
382
 
362
383
  /**
@@ -583,6 +604,15 @@ declare class ConfigService<T extends Record<string, unknown> = Record<string, u
583
604
  * Reset config to defaults
584
605
  */
585
606
  resetToDefaults(id: string): Promise<T | null>;
607
+ /**
608
+ * Set a config as the default (only one can be default at a time)
609
+ */
610
+ setAsDefault(id: string): Promise<void>;
611
+ /**
612
+ * Get the default config record
613
+ * Fallback: first record ordered by created_at if no is_default: true
614
+ */
615
+ getDefault(): Promise<T | null>;
586
616
  /**
587
617
  * Merge entity with defaults
588
618
  */
@@ -854,8 +884,12 @@ declare class ActionService<T extends Record<string, unknown> = Record<string, u
854
884
  findById(_id: string): Promise<T | null>;
855
885
  /**
856
886
  * Execute the action
887
+ * @param input - Body data
888
+ * @param req - Express request (optional, for accessing files, params, etc.)
889
+ * @param res - Express response (optional, for streaming, custom headers, etc.)
890
+ * @returns Result to be sent as JSON, or undefined if handler controlled response
857
891
  */
858
- execute(input: unknown): Promise<unknown>;
892
+ execute(input: unknown, req?: Request$1, res?: Response$1): Promise<unknown>;
859
893
  /**
860
894
  * Get action metadata
861
895
  */
@@ -921,7 +955,6 @@ interface Permission {
921
955
  created_by: string | null;
922
956
  updated_by: string | null;
923
957
  }
924
-
925
958
  /** User sin password para respuestas API */
926
959
  type UserWithoutPassword = Omit<User, 'password'>;
927
960
  /** Presencia del usuario (Socket.IO) */
@@ -988,9 +1021,6 @@ interface PaginatedResult<T> {
988
1021
  hasNext: boolean;
989
1022
  }
990
1023
 
991
- /**
992
- * Tipos del módulo Auth
993
- */
994
1024
  /**
995
1025
  * Token de refresco para rotación de JWT
996
1026
  */
@@ -999,6 +1029,8 @@ interface RefreshToken {
999
1029
  token: string;
1000
1030
  user_id: string;
1001
1031
  expires_at: Date;
1032
+ device_id?: string | null;
1033
+ device_name?: string | null;
1002
1034
  created_at?: Date;
1003
1035
  }
1004
1036
  /**
@@ -1013,7 +1045,6 @@ interface AuthAudit {
1013
1045
  user_agent?: string | null;
1014
1046
  details?: Record<string, unknown> | null;
1015
1047
  created_at: Date;
1016
- updated_at: Date;
1017
1048
  }
1018
1049
 
1019
1050
  interface JwtPayload {
@@ -1161,14 +1192,14 @@ declare const sendNotificationInputSchema: z.ZodObject<{
1161
1192
  type: "error" | "info" | "warning" | "success";
1162
1193
  priority: "high" | "normal" | "low" | "urgent";
1163
1194
  title: string;
1164
- target_type: "all" | "user" | "authenticated" | "users" | "role";
1195
+ target_type: "all" | "user" | "users" | "authenticated" | "role";
1165
1196
  link?: string | undefined;
1166
1197
  expires_at?: string | undefined;
1167
1198
  target_value?: string | undefined;
1168
1199
  }, {
1169
1200
  message: string;
1170
1201
  title: string;
1171
- target_type: "all" | "user" | "authenticated" | "users" | "role";
1202
+ target_type: "all" | "user" | "users" | "authenticated" | "role";
1172
1203
  type?: "error" | "info" | "warning" | "success" | undefined;
1173
1204
  link?: string | undefined;
1174
1205
  expires_at?: string | undefined;
@@ -1211,6 +1242,11 @@ interface NotificationPayload {
1211
1242
  declare class NotificationService {
1212
1243
  private db;
1213
1244
  private logger;
1245
+ private generateId;
1246
+ private nowTimestamp;
1247
+ private formatTimestamp;
1248
+ private socket;
1249
+ private events;
1214
1250
  constructor(ctx: ModuleContext);
1215
1251
  /**
1216
1252
  * Envía una notificación