@zintrust/core 0.4.62 → 0.4.63

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 (33) hide show
  1. package/package.json +1 -1
  2. package/src/cli/commands/MigrateCommand.js +1 -1
  3. package/src/cli/workers/QueueWorkRunner.d.ts.map +1 -1
  4. package/src/cli/workers/QueueWorkRunner.js +9 -1
  5. package/src/config/logger.d.ts.map +1 -1
  6. package/src/config/logger.js +327 -10
  7. package/src/http/HttpStatus.d.ts +12 -0
  8. package/src/http/HttpStatus.d.ts.map +1 -0
  9. package/src/http/HttpStatus.js +80 -0
  10. package/src/http/Kernel.d.ts.map +1 -1
  11. package/src/http/Kernel.js +0 -1
  12. package/src/index.d.ts +2 -1
  13. package/src/index.d.ts.map +1 -1
  14. package/src/index.js +4 -4
  15. package/src/middleware/LoggingMiddleware.d.ts.map +1 -1
  16. package/src/middleware/LoggingMiddleware.js +12 -6
  17. package/src/templates/project/basic/app/Toolkit/Broadcast/sendBroadcast.ts.tpl +5 -1
  18. package/src/templates/project/basic/routes/api.ts.tpl +0 -2
  19. package/src/templates/project/basic/routes/broadcast.ts.tpl +3 -3
  20. package/src/tools/broadcast/Broadcast.d.ts +35 -2
  21. package/src/tools/broadcast/Broadcast.d.ts.map +1 -1
  22. package/src/tools/broadcast/Broadcast.js +130 -16
  23. package/src/tools/broadcast/index.d.ts +1 -0
  24. package/src/tools/broadcast/index.d.ts.map +1 -1
  25. package/src/zintrust.comon.d.ts +11 -0
  26. package/src/zintrust.comon.d.ts.map +1 -0
  27. package/src/zintrust.comon.js +17 -0
  28. package/src/zintrust.plugins.d.ts +7 -3
  29. package/src/zintrust.plugins.d.ts.map +1 -1
  30. package/src/zintrust.plugins.js +9 -3
  31. package/src/zintrust.plugins.wg.d.ts +1 -0
  32. package/src/zintrust.plugins.wg.d.ts.map +1 -1
  33. package/src/zintrust.plugins.wg.js +3 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zintrust/core",
3
- "version": "0.4.62",
3
+ "version": "0.4.63",
4
4
  "description": "Production-grade TypeScript backend framework for JavaScript",
5
5
  "homepage": "https://zintrust.com",
6
6
  "repository": {
@@ -215,7 +215,7 @@ const warnIfAdapterMissing = (cmd, conn) => {
215
215
  if (conn.driver === 'mysql' && DatabaseAdapterRegistry.get('mysql') === undefined) {
216
216
  cmd.warn('MySQL adapter is not installed/registered; migrations may not hit a real MySQL DB.');
217
217
  cmd.warn('Install via `zin plugin install adapter:mysql` (or `zin add db:mysql`).');
218
- cmd.debug('[debug] Expected a side-effect import in src/zintrust.plugins.ts like: import "@zintrust/db-mysql/register";');
218
+ cmd.debug('[debug] Expected a side-effect import in src/zintrust.plugins.ts like: import "../../../packages/db-mysql/src/register";');
219
219
  }
220
220
  if (conn.driver === 'postgresql' && DatabaseAdapterRegistry.get('postgresql') === undefined) {
221
221
  cmd.warn('PostgreSQL adapter is not installed/registered; migrations may not hit a real PostgreSQL DB.');
@@ -1 +1 @@
1
- {"version":3,"file":"QueueWorkRunner.d.ts","sourceRoot":"","sources":["../../../../src/cli/workers/QueueWorkRunner.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,cAAc,CAAC;AAoBzD,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA0QF,eAAO,MAAM,eAAe;iBACP,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;qBAuCzD,OAAO,GAAG,aAAa;EAUxC,CAAC;AAEH,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"QueueWorkRunner.d.ts","sourceRoot":"","sources":["../../../../src/cli/workers/QueueWorkRunner.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,cAAc,CAAC;AAwBzD,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAkRF,eAAO,MAAM,eAAe;iBACP,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;qBAuCzD,OAAO,GAAG,aAAa;EAUxC,CAAC;AAEH,eAAe,eAAe,CAAC"}
@@ -195,7 +195,15 @@ const processMessage = async (options, msg, maxAttempts, result) => {
195
195
  try {
196
196
  if (kind === 'broadcast') {
197
197
  const job = payloadWithoutMeta;
198
- await Broadcast.send(job.channel, job.event, job.data);
198
+ await Broadcast.publish({
199
+ channel: job.channel,
200
+ channels: job.channels,
201
+ event: job.event,
202
+ data: job.data,
203
+ delivery: job.delivery,
204
+ broadcaster: job.broadcaster,
205
+ socketId: job.socketId,
206
+ });
199
207
  }
200
208
  else {
201
209
  const job = payloadWithoutMeta;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/config/logger.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,UAAU,OAAO;IACf,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClE;AAubD;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAkCpG,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,MAAM,EAAE,CAYtD,CAAC;AAEF,eAAO,MAAM,MAAM;qBA3MQ,MAAM,SAAS,OAAO,aAAa,MAAM,KAAG,IAAI;oBAuBjD,MAAM,SAAS,OAAO,aAAa,MAAM,KAAG,IAAI;oBAuBhD,MAAM,SAAS,OAAO,aAAa,MAAM,KAAG,IAAI;qBAuB/C,MAAM,UAAU,OAAO,aAAa,MAAM,KAAG,IAAI;qBA6BjD,MAAM,UAAU,OAAO,aAAa,MAAM,KAAG,IAAI;yBA2FrC,OAAO,CAAC,MAAM,EAAE,CAAC;mBA1DtB,MAAM,KAAG,OAAO;kBAiD7B,OAAO,KAAG,CAAC,MAAM,IAAI,CAAC;EAgCzC,CAAC;AAEH,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/config/logger.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,UAAU,OAAO;IACf,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClE;AAmyBD;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAkCpG,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,MAAM,EAAE,CAYtD,CAAC;AAEF,eAAO,MAAM,MAAM;qBA3MQ,MAAM,SAAS,OAAO,aAAa,MAAM,KAAG,IAAI;oBAuBjD,MAAM,SAAS,OAAO,aAAa,MAAM,KAAG,IAAI;oBAuBhD,MAAM,SAAS,OAAO,aAAa,MAAM,KAAG,IAAI;qBAuB/C,MAAM,UAAU,OAAO,aAAa,MAAM,KAAG,IAAI;qBA6BjD,MAAM,UAAU,OAAO,aAAa,MAAM,KAAG,IAAI;yBA2FrC,OAAO,CAAC,MAAM,EAAE,CAAC;mBA1DtB,MAAM,KAAG,OAAO;kBAiD7B,OAAO,KAAG,CAAC,MAAM,IAAI,CAAC;EAgCzC,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -36,6 +36,323 @@ const getEnvBool = (key, fallback) => {
36
36
  };
37
37
  const getLogFormat = () => getEnvString('LOG_FORMAT', 'text');
38
38
  const isJsonFormat = (value) => value === 'json';
39
+ const ANSI = Object.freeze({
40
+ reset: '\u001b[0m',
41
+ bold: '\u001b[1m',
42
+ dim: '\u001b[2m',
43
+ gray: '\u001b[90m',
44
+ red: '\u001b[31m',
45
+ brightRed: '\u001b[91m',
46
+ green: '\u001b[32m',
47
+ brightGreen: '\u001b[92m',
48
+ yellow: '\u001b[33m',
49
+ brightYellow: '\u001b[93m',
50
+ blue: '\u001b[34m',
51
+ brightBlue: '\u001b[94m',
52
+ magenta: '\u001b[35m',
53
+ brightMagenta: '\u001b[95m',
54
+ cyan: '\u001b[36m',
55
+ brightCyan: '\u001b[96m',
56
+ white: '\u001b[97m',
57
+ });
58
+ const REQUEST_LOG_COLOR_THEMES = Object.freeze({
59
+ arctic: Object.freeze({
60
+ level: Object.freeze({
61
+ debug: ANSI.gray,
62
+ info: `${ANSI.bold}${ANSI.brightCyan}`,
63
+ warn: `${ANSI.bold}${ANSI.brightYellow}`,
64
+ error: `${ANSI.bold}${ANSI.brightRed}`,
65
+ fatal: `${ANSI.bold}${ANSI.brightMagenta}`,
66
+ }),
67
+ method: Object.freeze({
68
+ GET: `${ANSI.bold}${ANSI.brightBlue}`,
69
+ POST: `${ANSI.bold}${ANSI.brightGreen}`,
70
+ PUT: `${ANSI.bold}${ANSI.brightYellow}`,
71
+ PATCH: `${ANSI.bold}${ANSI.brightMagenta}`,
72
+ DELETE: `${ANSI.bold}${ANSI.brightRed}`,
73
+ HEAD: `${ANSI.bold}${ANSI.cyan}`,
74
+ OPTIONS: `${ANSI.bold}${ANSI.brightMagenta}`,
75
+ }),
76
+ methodFallback: `${ANSI.bold}${ANSI.white}`,
77
+ path: ANSI.white,
78
+ status: Object.freeze({
79
+ success: `${ANSI.bold}${ANSI.brightGreen}`,
80
+ redirect: `${ANSI.bold}${ANSI.cyan}`,
81
+ warn: `${ANSI.bold}${ANSI.yellow}`,
82
+ special: `${ANSI.bold}${ANSI.brightMagenta}`,
83
+ error: `${ANSI.bold}${ANSI.brightRed}`,
84
+ fallback: `${ANSI.bold}${ANSI.white}`,
85
+ }),
86
+ duration: Object.freeze({
87
+ fast: `${ANSI.bold}${ANSI.cyan}`,
88
+ steady: `${ANSI.bold}${ANSI.brightBlue}`,
89
+ elevated: `${ANSI.bold}${ANSI.brightYellow}`,
90
+ slow: `${ANSI.bold}${ANSI.yellow}`,
91
+ critical: `${ANSI.bold}${ANSI.brightRed}`,
92
+ }),
93
+ meta: `${ANSI.dim}${ANSI.cyan}`,
94
+ }),
95
+ 'sharp-ops': Object.freeze({
96
+ level: Object.freeze({
97
+ debug: ANSI.gray,
98
+ info: `${ANSI.bold}${ANSI.cyan}`,
99
+ warn: `${ANSI.bold}${ANSI.yellow}`,
100
+ error: `${ANSI.bold}${ANSI.red}`,
101
+ fatal: `${ANSI.bold}${ANSI.brightMagenta}`,
102
+ }),
103
+ method: Object.freeze({
104
+ GET: `${ANSI.bold}${ANSI.brightBlue}`,
105
+ POST: `${ANSI.bold}${ANSI.green}`,
106
+ PUT: `${ANSI.bold}${ANSI.yellow}`,
107
+ PATCH: `${ANSI.bold}${ANSI.magenta}`,
108
+ DELETE: `${ANSI.bold}${ANSI.red}`,
109
+ HEAD: `${ANSI.bold}${ANSI.blue}`,
110
+ OPTIONS: `${ANSI.bold}${ANSI.brightMagenta}`,
111
+ }),
112
+ methodFallback: `${ANSI.bold}${ANSI.white}`,
113
+ path: ANSI.white,
114
+ status: Object.freeze({
115
+ success: `${ANSI.bold}${ANSI.green}`,
116
+ redirect: `${ANSI.bold}${ANSI.brightBlue}`,
117
+ warn: `${ANSI.bold}${ANSI.yellow}`,
118
+ special: `${ANSI.bold}${ANSI.brightMagenta}`,
119
+ error: `${ANSI.bold}${ANSI.red}`,
120
+ fallback: `${ANSI.bold}${ANSI.white}`,
121
+ }),
122
+ duration: Object.freeze({
123
+ fast: `${ANSI.bold}${ANSI.green}`,
124
+ steady: `${ANSI.bold}${ANSI.brightGreen}`,
125
+ elevated: `${ANSI.bold}${ANSI.yellow}`,
126
+ slow: `${ANSI.bold}${ANSI.brightYellow}`,
127
+ critical: `${ANSI.bold}${ANSI.red}`,
128
+ }),
129
+ meta: `${ANSI.dim}${ANSI.gray}`,
130
+ }),
131
+ 'soft-contrast': Object.freeze({
132
+ level: Object.freeze({
133
+ debug: ANSI.gray,
134
+ info: `${ANSI.bold}${ANSI.white}`,
135
+ warn: `${ANSI.bold}${ANSI.yellow}`,
136
+ error: `${ANSI.bold}${ANSI.red}`,
137
+ fatal: `${ANSI.bold}${ANSI.magenta}`,
138
+ }),
139
+ method: Object.freeze({
140
+ GET: `${ANSI.bold}${ANSI.blue}`,
141
+ POST: `${ANSI.bold}${ANSI.cyan}`,
142
+ PUT: `${ANSI.bold}${ANSI.yellow}`,
143
+ PATCH: `${ANSI.bold}${ANSI.magenta}`,
144
+ DELETE: `${ANSI.bold}${ANSI.brightRed}`,
145
+ HEAD: `${ANSI.bold}${ANSI.gray}`,
146
+ OPTIONS: `${ANSI.bold}${ANSI.brightMagenta}`,
147
+ }),
148
+ methodFallback: `${ANSI.bold}${ANSI.white}`,
149
+ path: `${ANSI.bold}${ANSI.white}`,
150
+ status: Object.freeze({
151
+ success: `${ANSI.bold}${ANSI.cyan}`,
152
+ redirect: `${ANSI.bold}${ANSI.blue}`,
153
+ warn: `${ANSI.bold}${ANSI.yellow}`,
154
+ special: `${ANSI.bold}${ANSI.brightMagenta}`,
155
+ error: `${ANSI.bold}${ANSI.red}`,
156
+ fallback: `${ANSI.bold}${ANSI.white}`,
157
+ }),
158
+ duration: Object.freeze({
159
+ fast: `${ANSI.bold}${ANSI.cyan}`,
160
+ steady: `${ANSI.bold}${ANSI.brightBlue}`,
161
+ elevated: `${ANSI.bold}${ANSI.yellow}`,
162
+ slow: `${ANSI.bold}${ANSI.brightYellow}`,
163
+ critical: `${ANSI.bold}${ANSI.red}`,
164
+ }),
165
+ meta: `${ANSI.dim}${ANSI.white}`,
166
+ }),
167
+ 'neon-grid': Object.freeze({
168
+ level: Object.freeze({
169
+ debug: ANSI.gray,
170
+ info: `${ANSI.bold}${ANSI.cyan}`,
171
+ warn: `${ANSI.bold}${ANSI.brightYellow}`,
172
+ error: `${ANSI.bold}${ANSI.brightRed}`,
173
+ fatal: `${ANSI.bold}${ANSI.brightMagenta}`,
174
+ }),
175
+ method: Object.freeze({
176
+ GET: `${ANSI.bold}${ANSI.brightCyan}`,
177
+ POST: `${ANSI.bold}${ANSI.brightGreen}`,
178
+ PUT: `${ANSI.bold}${ANSI.brightYellow}`,
179
+ PATCH: `${ANSI.bold}${ANSI.brightMagenta}`,
180
+ DELETE: `${ANSI.bold}${ANSI.brightRed}`,
181
+ HEAD: `${ANSI.bold}${ANSI.brightBlue}`,
182
+ OPTIONS: `${ANSI.bold}${ANSI.magenta}`,
183
+ }),
184
+ methodFallback: `${ANSI.bold}${ANSI.white}`,
185
+ path: `${ANSI.bold}${ANSI.white}`,
186
+ status: Object.freeze({
187
+ success: `${ANSI.bold}${ANSI.brightGreen}`,
188
+ redirect: `${ANSI.bold}${ANSI.brightCyan}`,
189
+ warn: `${ANSI.bold}${ANSI.brightYellow}`,
190
+ special: `${ANSI.bold}${ANSI.brightMagenta}`,
191
+ error: `${ANSI.bold}${ANSI.brightRed}`,
192
+ fallback: `${ANSI.bold}${ANSI.white}`,
193
+ }),
194
+ duration: Object.freeze({
195
+ fast: `${ANSI.bold}${ANSI.brightCyan}`,
196
+ steady: `${ANSI.bold}${ANSI.brightGreen}`,
197
+ elevated: `${ANSI.bold}${ANSI.yellow}`,
198
+ slow: `${ANSI.bold}${ANSI.brightYellow}`,
199
+ critical: `${ANSI.bold}${ANSI.brightRed}`,
200
+ }),
201
+ meta: `${ANSI.dim}${ANSI.gray}`,
202
+ }),
203
+ 'production-safe': Object.freeze({
204
+ level: Object.freeze({
205
+ debug: ANSI.gray,
206
+ info: `${ANSI.bold}${ANSI.blue}`,
207
+ warn: `${ANSI.bold}${ANSI.yellow}`,
208
+ error: `${ANSI.bold}${ANSI.red}`,
209
+ fatal: `${ANSI.bold}${ANSI.magenta}`,
210
+ }),
211
+ method: Object.freeze({
212
+ GET: `${ANSI.bold}${ANSI.blue}`,
213
+ POST: `${ANSI.bold}${ANSI.green}`,
214
+ PUT: `${ANSI.bold}${ANSI.yellow}`,
215
+ PATCH: `${ANSI.bold}${ANSI.magenta}`,
216
+ DELETE: `${ANSI.bold}${ANSI.red}`,
217
+ HEAD: `${ANSI.bold}${ANSI.gray}`,
218
+ OPTIONS: `${ANSI.bold}${ANSI.brightMagenta}`,
219
+ }),
220
+ methodFallback: `${ANSI.bold}${ANSI.white}`,
221
+ path: ANSI.white,
222
+ status: Object.freeze({
223
+ success: `${ANSI.bold}${ANSI.green}`,
224
+ redirect: `${ANSI.bold}${ANSI.blue}`,
225
+ warn: `${ANSI.bold}${ANSI.yellow}`,
226
+ special: `${ANSI.bold}${ANSI.brightMagenta}`,
227
+ error: `${ANSI.bold}${ANSI.red}`,
228
+ fallback: `${ANSI.bold}${ANSI.white}`,
229
+ }),
230
+ duration: Object.freeze({
231
+ fast: `${ANSI.bold}${ANSI.green}`,
232
+ steady: `${ANSI.bold}${ANSI.brightGreen}`,
233
+ elevated: `${ANSI.bold}${ANSI.yellow}`,
234
+ slow: `${ANSI.bold}${ANSI.brightYellow}`,
235
+ critical: `${ANSI.bold}${ANSI.red}`,
236
+ }),
237
+ meta: `${ANSI.dim}${ANSI.gray}`,
238
+ }),
239
+ });
240
+ const LOGGER_COLOR_THEME_ALIASES = Object.freeze({
241
+ arctic: 'arctic',
242
+ 'arctic-terminal': 'arctic',
243
+ 'theme-a': 'arctic',
244
+ 'sharp-ops': 'sharp-ops',
245
+ sharpops: 'sharp-ops',
246
+ 'theme-b': 'sharp-ops',
247
+ 'soft-contrast': 'soft-contrast',
248
+ softcontrast: 'soft-contrast',
249
+ 'theme-c': 'soft-contrast',
250
+ 'neon-grid': 'neon-grid',
251
+ neongrid: 'neon-grid',
252
+ 'theme-d': 'neon-grid',
253
+ 'production-safe': 'production-safe',
254
+ productionsafe: 'production-safe',
255
+ 'theme-e': 'production-safe',
256
+ });
257
+ const getLoggerColorThemeName = () => {
258
+ const normalized = getEnvString('LOG_COLOR_THEME', 'arctic')
259
+ .trim()
260
+ .toLowerCase()
261
+ .replaceAll('_', '-')
262
+ .replaceAll(' ', '-');
263
+ return LOGGER_COLOR_THEME_ALIASES[normalized] ?? 'arctic';
264
+ };
265
+ const getLoggerColorTheme = () => REQUEST_LOG_COLOR_THEMES[getLoggerColorThemeName()];
266
+ const REQUEST_LOG_PATTERN = /^(\[[A-Z]+\])\s(.+?)\s(\d{3}(?: [A-Za-z][A-Za-z' -]*)?)\s\((\d+)ms\)(\s\[[^\]]+\])?$/;
267
+ const colorize = (value, colorCode) => `${colorCode}${value}${ANSI.reset}`;
268
+ const shouldColorizeConsoleText = () => {
269
+ if (isJsonFormat(getLogFormat()))
270
+ return false;
271
+ const configured = getEnvString('LOG_COLOR', 'auto').trim().toLowerCase();
272
+ if (configured === 'false' ||
273
+ configured === '0' ||
274
+ configured === 'off' ||
275
+ configured === 'never') {
276
+ return false;
277
+ }
278
+ if (configured === 'true' ||
279
+ configured === '1' ||
280
+ configured === 'on' ||
281
+ configured === 'always') {
282
+ return true;
283
+ }
284
+ if (getEnvString('NO_COLOR', '').trim() !== '')
285
+ return false;
286
+ if (typeof process === 'undefined')
287
+ return true;
288
+ return process.stdout?.isTTY !== false;
289
+ };
290
+ const getLevelColor = (level) => {
291
+ return getLoggerColorTheme().level[level];
292
+ };
293
+ const getMethodColor = (methodToken) => {
294
+ const theme = getLoggerColorTheme();
295
+ const method = methodToken.replaceAll('[', '').replaceAll(']', '');
296
+ return theme.method[method] ?? theme.methodFallback;
297
+ };
298
+ const getStatusColor = (status) => {
299
+ const theme = getLoggerColorTheme();
300
+ if (status === 419)
301
+ return theme.status.special;
302
+ if (status >= 500)
303
+ return theme.status.error;
304
+ if (status >= 400)
305
+ return theme.status.warn;
306
+ if (status >= 300)
307
+ return theme.status.redirect;
308
+ if (status >= 200)
309
+ return theme.status.success;
310
+ return theme.status.fallback;
311
+ };
312
+ const getDurationColor = (durationMs) => {
313
+ const theme = getLoggerColorTheme();
314
+ if (durationMs >= 1000)
315
+ return theme.duration.critical;
316
+ if (durationMs >= 250)
317
+ return theme.duration.slow;
318
+ if (durationMs >= 100)
319
+ return theme.duration.elevated;
320
+ if (durationMs >= 50)
321
+ return theme.duration.steady;
322
+ return theme.duration.fast;
323
+ };
324
+ const colorizeRequestLogMessage = (line) => {
325
+ const match = REQUEST_LOG_PATTERN.exec(line);
326
+ if (!match)
327
+ return line;
328
+ const theme = getLoggerColorTheme();
329
+ const methodToken = match[1] ?? '';
330
+ const path = match[2] ?? '';
331
+ const statusSummary = match[3] ?? '';
332
+ const durationMs = Number.parseInt(match[4] ?? '0', 10);
333
+ const meta = (match[5] ?? '').trim();
334
+ const statusCode = Number.parseInt(statusSummary.split(' ')[0] ?? '0', 10);
335
+ const pieces = [
336
+ colorize(methodToken, getMethodColor(methodToken)),
337
+ colorize(path, theme.path),
338
+ colorize(statusSummary, getStatusColor(statusCode)),
339
+ colorize(`(${durationMs}ms)`, getDurationColor(durationMs)),
340
+ ];
341
+ if (meta !== '') {
342
+ pieces.push(colorize(meta, theme.meta));
343
+ }
344
+ return pieces.join(' ');
345
+ };
346
+ const colorizeConsoleTextMessage = (level, line) => {
347
+ if (!shouldColorizeConsoleText())
348
+ return line;
349
+ const levelToken = `[${level.toUpperCase()}]`;
350
+ if (!line.startsWith(`${levelToken} `)) {
351
+ return colorize(line, getLevelColor(level));
352
+ }
353
+ const rest = line.slice(levelToken.length + 1);
354
+ return `${colorize(levelToken, getLevelColor(level))} ${colorizeRequestLogMessage(rest)}`;
355
+ };
39
356
  // Log level priority: lower means more verbose
40
357
  const levelPriority = {
41
358
  debug: 0,
@@ -146,7 +463,7 @@ const getFileWriter = () => {
146
463
  return;
147
464
  if (fileWriterPromise !== undefined)
148
465
  return;
149
- fileWriterPromise = import('./FileLogWriter.js')
466
+ fileWriterPromise = import('./FileLogWriter')
150
467
  .then((mod) => {
151
468
  fileWriter = mod.FileLogWriter;
152
469
  return mod;
@@ -237,7 +554,7 @@ const emitCloudLogs = (event) => {
237
554
  void (async () => {
238
555
  try {
239
556
  if (event.level === 'error' || event.level === 'fatal') {
240
- const mod = await import('./logging/KvLogger.js');
557
+ const mod = await import('./logging/KvLogger');
241
558
  void mod.KvLogger.enqueue(event);
242
559
  }
243
560
  }
@@ -246,7 +563,7 @@ const emitCloudLogs = (event) => {
246
563
  }
247
564
  try {
248
565
  if (event.level === 'warn' || event.level === 'error' || event.level === 'fatal') {
249
- const mod = await import('./logging/SlackLogger.js');
566
+ const mod = await import('./logging/SlackLogger');
250
567
  void mod.SlackLogger.enqueue(event);
251
568
  }
252
569
  }
@@ -254,7 +571,7 @@ const emitCloudLogs = (event) => {
254
571
  // best-effort
255
572
  }
256
573
  try {
257
- const mod = await import('./logging/HttpLogger.js');
574
+ const mod = await import('./logging/HttpLogger');
258
575
  void mod.HttpLogger.enqueue(event);
259
576
  }
260
577
  catch {
@@ -274,7 +591,7 @@ const logDebug = (message, data, category) => {
274
591
  console.debug(out); // eslint-disable-line no-console
275
592
  }
276
593
  else {
277
- console.debug(out, data ?? ''); // eslint-disable-line no-console
594
+ console.debug(colorizeConsoleTextMessage('debug', out), data ?? ''); // eslint-disable-line no-console
278
595
  }
279
596
  emitCloudLogs({
280
597
  timestamp,
@@ -296,7 +613,7 @@ const logInfo = (message, data, category) => {
296
613
  console.log(out); // eslint-disable-line no-console
297
614
  }
298
615
  else {
299
- console.log(out, data ?? ''); // eslint-disable-line no-console
616
+ console.log(colorizeConsoleTextMessage('info', out), data ?? ''); // eslint-disable-line no-console
300
617
  }
301
618
  emitCloudLogs({
302
619
  timestamp,
@@ -318,7 +635,7 @@ const logWarn = (message, data, category) => {
318
635
  console.warn(out); // eslint-disable-line no-console
319
636
  }
320
637
  else {
321
- console.warn(out, data ?? ''); // eslint-disable-line no-console
638
+ console.warn(colorizeConsoleTextMessage('warn', out), data ?? ''); // eslint-disable-line no-console
322
639
  }
323
640
  emitCloudLogs({
324
641
  timestamp,
@@ -346,7 +663,7 @@ const logError = (message, error, category) => {
346
663
  console.error(out); // eslint-disable-line no-console
347
664
  }
348
665
  else {
349
- console.error(out, errorMessage); // eslint-disable-line no-console
666
+ console.error(colorizeConsoleTextMessage('error', out), errorMessage); // eslint-disable-line no-console
350
667
  }
351
668
  emitCloudLogs({
352
669
  timestamp,
@@ -374,7 +691,7 @@ const logFatal = (message, error, category) => {
374
691
  console.error(out); // eslint-disable-line no-console
375
692
  }
376
693
  else {
377
- console.error(out, errorMessage); // eslint-disable-line no-console
694
+ console.error(colorizeConsoleTextMessage('fatal', out), errorMessage); // eslint-disable-line no-console
378
695
  }
379
696
  emitCloudLogs({
380
697
  timestamp,
@@ -443,7 +760,7 @@ export const cleanLogsOnce = async () => {
443
760
  if (!shouldLogToFile())
444
761
  return [];
445
762
  try {
446
- const mod = await import('./FileLogWriter.js');
763
+ const mod = await import('./FileLogWriter');
447
764
  const deleted = mod.cleanOnce();
448
765
  logInfo('Log cleanup executed', { deletedCount: deleted.length });
449
766
  return deleted;
@@ -0,0 +1,12 @@
1
+ export declare const formatHttpStatus: (status: number) => string;
2
+ type HttpRequestLogParams = {
3
+ method: string;
4
+ path: string;
5
+ status: number;
6
+ durationMs: number;
7
+ requestId?: string;
8
+ traceId?: string;
9
+ };
10
+ export declare const formatHttpRequestLog: (params: HttpRequestLogParams) => string;
11
+ export default formatHttpStatus;
12
+ //# sourceMappingURL=HttpStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpStatus.d.ts","sourceRoot":"","sources":["../../../src/http/HttpStatus.ts"],"names":[],"mappings":"AAiEA,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,MAGjD,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,oBAAoB,KAAG,MAanE,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,80 @@
1
+ const HTTP_STATUS_TEXT = Object.freeze({
2
+ 100: 'Continue',
3
+ 101: 'Switching Protocols',
4
+ 102: 'Processing',
5
+ 103: 'Early Hints',
6
+ 200: 'OK',
7
+ 201: 'Created',
8
+ 202: 'Accepted',
9
+ 203: 'Non-Authoritative Information',
10
+ 204: 'No Content',
11
+ 205: 'Reset Content',
12
+ 206: 'Partial Content',
13
+ 207: 'Multi-Status',
14
+ 208: 'Already Reported',
15
+ 226: 'IM Used',
16
+ 300: 'Multiple Choices',
17
+ 301: 'Moved Permanently',
18
+ 302: 'Found',
19
+ 303: 'See Other',
20
+ 304: 'Not Modified',
21
+ 305: 'Use Proxy',
22
+ 307: 'Temporary Redirect',
23
+ 308: 'Permanent Redirect',
24
+ 400: 'Bad Request',
25
+ 401: 'Unauthorized',
26
+ 402: 'Payment Required',
27
+ 403: 'Forbidden',
28
+ 404: 'Not Found',
29
+ 405: 'Method Not Allowed',
30
+ 406: 'Not Acceptable',
31
+ 407: 'Proxy Authentication Required',
32
+ 408: 'Request Timeout',
33
+ 409: 'Conflict',
34
+ 410: 'Gone',
35
+ 411: 'Length Required',
36
+ 412: 'Precondition Failed',
37
+ 413: 'Payload Too Large',
38
+ 414: 'URI Too Long',
39
+ 415: 'Unsupported Media Type',
40
+ 416: 'Range Not Satisfiable',
41
+ 417: 'Expectation Failed',
42
+ 418: "I'm a teapot",
43
+ 421: 'Misdirected Request',
44
+ 422: 'Unprocessable Entity',
45
+ 423: 'Locked',
46
+ 424: 'Failed Dependency',
47
+ 425: 'Too Early',
48
+ 426: 'Upgrade Required',
49
+ 428: 'Precondition Required',
50
+ 429: 'Too Many Requests',
51
+ 431: 'Request Header Fields Too Large',
52
+ 451: 'Unavailable For Legal Reasons',
53
+ 500: 'Internal Server Error',
54
+ 501: 'Not Implemented',
55
+ 502: 'Bad Gateway',
56
+ 503: 'Service Unavailable',
57
+ 504: 'Gateway Timeout',
58
+ 505: 'HTTP Version Not Supported',
59
+ 506: 'Variant Also Negotiates',
60
+ 507: 'Insufficient Storage',
61
+ 508: 'Loop Detected',
62
+ 510: 'Not Extended',
63
+ 511: 'Network Authentication Required',
64
+ });
65
+ export const formatHttpStatus = (status) => {
66
+ const statusText = HTTP_STATUS_TEXT[String(status)];
67
+ return typeof statusText === 'string' ? `${status} ${statusText}` : String(status);
68
+ };
69
+ export const formatHttpRequestLog = (params) => {
70
+ const base = `[${params.method}] ${params.path} ${formatHttpStatus(params.status)} (${params.durationMs}ms)`;
71
+ const meta = [];
72
+ if (typeof params.requestId === 'string' && params.requestId.trim() !== '') {
73
+ meta.push(`requestId=${params.requestId}`);
74
+ }
75
+ if (typeof params.traceId === 'string' && params.traceId.trim() !== '') {
76
+ meta.push(`trace=${params.traceId}`);
77
+ }
78
+ return meta.length > 0 ? `${base} [${meta.join(' ')}]` : base;
79
+ };
80
+ export default formatHttpStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"Kernel.d.ts","sourceRoot":"","sources":["../../../src/http/Kernel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,qBAAqB,CAAC;AAE/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK7E,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,mBAAmB,CAAC;AAQpE,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/C,wBAAwB,CAAC,GAAG,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC5D,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACpE,SAAS,IAAI,OAAO,CAAC;IACrB,YAAY,IAAI,iBAAiB,CAAC;IAClC,kBAAkB,IAAI,gBAAgB,CAAC;IAGvC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5C,cAAc,IAAI,IAAI,CAAC;IACvB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AA0WD,eAAO,MAAM,MAAM;qBAvEK,OAAO,aAAa,iBAAiB,KAAG,OAAO;EAyErE,CAAC;AAEH,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Kernel.d.ts","sourceRoot":"","sources":["../../../src/http/Kernel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,qBAAqB,CAAC;AAE/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK7E,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,mBAAmB,CAAC;AAQpE,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/C,wBAAwB,CAAC,GAAG,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC5D,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACpE,SAAS,IAAI,OAAO,CAAC;IACrB,YAAY,IAAI,iBAAiB,CAAC;IAClC,kBAAkB,IAAI,gBAAgB,CAAC;IAGvC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5C,cAAc,IAAI,IAAI,CAAC;IACvB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAwWD,eAAO,MAAM,MAAM;qBAvEK,OAAO,aAAa,iBAAiB,KAAG,OAAO;EAyErE,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -110,7 +110,6 @@ const maybeSetKernelTraceRoute = (traceSpan, method, routeLabel) => {
110
110
  OpenTelemetry.setHttpRoute(traceSpan.span, method, routeLabel);
111
111
  };
112
112
  const runKernelPipeline = async (router, globalMiddleware, routeMiddleware, req, res, context, traceSpan) => {
113
- Logger.info(`[${req.getMethod()}] ${req.getPath()}`);
114
113
  const route = resolveRouteWithPreflightFallback(router, req.getMethod(), req.getPath());
115
114
  if (route === null) {
116
115
  const routeLabel = 'not_found';
package/src/index.d.ts CHANGED
@@ -143,7 +143,7 @@ export type { MiddlewareKey } from './config/middleware';
143
143
  export type { MiddlewareConfigType } from './config/type';
144
144
  export { createBaseDrivers, queueConfig } from './config/queue';
145
145
  export type { QueueConfig, QueueConfigOverrides } from './config/queue';
146
- export { clearBroadcastConfigCache, default as broadcastConfig } from './config/broadcast';
146
+ export { default as broadcastConfig, clearBroadcastConfigCache } from './config/broadcast';
147
147
  export type { BroadcastConfigOverrides, SocketBroadcastConfig } from './config/broadcast';
148
148
  export { default as notificationConfig } from './config/notification';
149
149
  export type { NotificationConfig, NotificationConfigOverrides } from './config/notification';
@@ -181,6 +181,7 @@ export { NotificationRegistry } from './tools/notification/Registry';
181
181
  export { MarkdownRenderer } from './tools/templates';
182
182
  export { RuntimeHealthProbes } from './health/RuntimeHealthProbes';
183
183
  export { Broadcast } from './tools/broadcast/Broadcast';
184
+ export type { BroadcastPublishInput, BroadcastPublishResult } from './tools/broadcast/Broadcast';
184
185
  export { BroadcastRegistry } from './tools/broadcast/BroadcastRegistry';
185
186
  export { registerBroadcastersFromRuntimeConfig } from './tools/broadcast/BroadcastRuntimeRegistration';
186
187
  export { Storage } from './tools/storage/index';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/src/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @zintrust/core v0.4.62
2
+ * @zintrust/core v0.4.63
3
3
  *
4
4
  * ZinTrust Framework - Production-Grade TypeScript Backend
5
5
  * Built for performance, type safety, and exceptional developer experience
6
6
  *
7
7
  * Build Information:
8
- * Built: 2026-04-05T10:26:03.856Z
8
+ * Built: 2026-04-05T13:11:49.141Z
9
9
  * Node: >=20.0.0
10
10
  * License: MIT
11
11
  *
@@ -21,7 +21,7 @@
21
21
  * Available at runtime for debugging and health checks
22
22
  */
23
23
  export const ZINTRUST_VERSION = '0.1.41';
24
- export const ZINTRUST_BUILD_DATE = '2026-04-05T10:26:03.824Z'; // Replaced during build
24
+ export const ZINTRUST_BUILD_DATE = '2026-04-05T13:11:49.107Z'; // Replaced during build
25
25
  export { Application } from './boot/Application.js';
26
26
  export { AwsSigV4 } from './common/index.js';
27
27
  export { SignedRequest } from './security/SignedRequest.js';
@@ -137,7 +137,7 @@ export { getServiceId, isCanonicalServiceId, normalizeServiceManifest, } from '.
137
137
  export { ProjectRuntime } from './runtime/ProjectRuntime.js';
138
138
  export { clearMiddlewareConfigCache, middlewareConfig, MiddlewareKeys } from './config/middleware.js';
139
139
  export { createBaseDrivers, queueConfig } from './config/queue.js';
140
- export { clearBroadcastConfigCache, default as broadcastConfig } from './config/broadcast.js';
140
+ export { default as broadcastConfig, clearBroadcastConfigCache } from './config/broadcast.js';
141
141
  export { default as notificationConfig } from './config/notification.js';
142
142
  export { securityConfig } from './config/security.js';
143
143
  export { mailConfig } from './config/mail.js';
@@ -1 +1 @@
1
- {"version":3,"file":"LoggingMiddleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/LoggingMiddleware.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AASD,eAAO,MAAM,iBAAiB;qBACZ,cAAc,GAAQ,UAAU;EAiChD,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"LoggingMiddleware.d.ts","sourceRoot":"","sources":["../../../src/middleware/LoggingMiddleware.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AASD,eAAO,MAAM,iBAAiB;qBACZ,cAAc,GAAQ,UAAU;EAqChD,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Env } from '../config/env.js';
2
2
  import { Logger } from '../config/logger.js';
3
+ import { formatHttpRequestLog } from '../http/HttpStatus.js';
3
4
  import { RequestContext } from '../http/RequestContext.js';
4
5
  const getStatusSafe = (res) => {
5
6
  const anyRes = res;
@@ -11,7 +12,9 @@ const getStatusSafe = (res) => {
11
12
  };
12
13
  export const LoggingMiddleware = Object.freeze({
13
14
  create(options = {}) {
14
- const enabled = typeof options.enabled === 'boolean' ? options.enabled : Boolean(Env.LOG_HTTP_REQUEST);
15
+ const enabled = typeof options.enabled === 'boolean'
16
+ ? options.enabled
17
+ : Env.getBool('LOG_HTTP_REQUEST', true);
15
18
  return async (req, res, next) => {
16
19
  if (enabled === false) {
17
20
  await next();
@@ -23,17 +26,20 @@ export const LoggingMiddleware = Object.freeze({
23
26
  const ctx = RequestContext.get(req);
24
27
  const requestId = ctx?.requestId ?? req.context['requestId'];
25
28
  const traceId = ctx?.traceId;
26
- const prefix = typeof traceId === 'string' && traceId.trim() !== ''
27
- ? `[${requestId} trace=${traceId}]`
28
- : `[${requestId}]`;
29
- Logger.info(`${prefix} ↓ ${method} ${path}`);
30
29
  try {
31
30
  await next();
32
31
  }
33
32
  finally {
34
33
  const durationMs = Date.now() - start;
35
34
  const status = getStatusSafe(res);
36
- Logger.info(`${prefix} ↑ ${method} ${path} ${status} ${durationMs}ms`);
35
+ Logger.info(formatHttpRequestLog({
36
+ method,
37
+ path,
38
+ status,
39
+ durationMs,
40
+ requestId,
41
+ traceId,
42
+ }));
37
43
  }
38
44
  };
39
45
  },
@@ -1,7 +1,11 @@
1
1
  import { Broadcast } from '@zintrust/core';
2
2
 
3
+ /**
4
+ * Compatibility wrapper for projects that want an app-local helper.
5
+ * Prefer Broadcast.publish(...) directly in application code.
6
+ */
3
7
  export async function sendBroadcast(channel: string, event: string, data: unknown): Promise<void> {
4
- await Broadcast.send(channel, event, data);
8
+ await Broadcast.publish({ channel, event, data });
5
9
  }
6
10
 
7
11
  export default Object.freeze({ sendBroadcast });
@@ -7,7 +7,6 @@ import { AuthController } from '@app/Controllers/AuthController';
7
7
  import { UserQueryBuilderController } from '@app/Controllers/UserQueryBuilderController';
8
8
  import { Env , Router } from '@zintrust/core';
9
9
  import type { MiddlewareKey , IRouter , IResponse, IRequest} from '@zintrust/core';
10
- import { registerBroadcastRoutes } from '@routes/broadcast';
11
10
  import { registerStorageRoutes } from '@routes/storage';
12
11
 
13
12
  export function registerRoutes(router: IRouter): void {
@@ -23,7 +22,6 @@ export function registerRoutes(router: IRouter): void {
23
22
  */
24
23
  function registerPublicRoutes(router: IRouter): void {
25
24
  registerRootRoute(router);
26
- registerBroadcastRoutes(router);
27
25
  registerStorageRoutes(router);
28
26
  }
29
27
 
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Broadcast Routes
3
3
  *
4
- * Runtime-only endpoints for broadcast.
5
- * Provider setup and secret provisioning remain CLI-only.
4
+ * Optional compatibility endpoints for external tools.
5
+ * Regular application code should call Broadcast.publish(...) directly.
6
6
  */
7
7
 
8
8
  import { type IRouter, Router } from '@zintrust/core';
@@ -26,7 +26,7 @@ export function registerBroadcastRoutes(router: IRouter): void {
26
26
  }
27
27
 
28
28
  const { Broadcast } = await import('@zintrust/core');
29
- const result = await Broadcast.send(channel, event, data);
29
+ const result = await Broadcast.publish({ channel, event, data });
30
30
  res.json({ ok: true, result });
31
31
  });
32
32
  }
@@ -1,14 +1,47 @@
1
+ import type { KnownBroadcastDriverConfig } from '../../config/type';
2
+ import type { IRequest } from '../../http/Request';
1
3
  type Broadcaster = Readonly<{
2
4
  send: (channel: string, event: string, data: unknown) => Promise<unknown>;
5
+ publish: (input: BroadcastPublishInput) => Promise<BroadcastPublishResult>;
6
+ }>;
7
+ type BroadcastDeliveryMode = 'auto' | 'socket' | 'driver';
8
+ export type BroadcastPublishInput = Readonly<{
9
+ channel?: string;
10
+ channels?: readonly string[];
11
+ event?: string;
12
+ name?: string;
13
+ data?: unknown;
14
+ socketId?: string;
15
+ delivery?: BroadcastDeliveryMode;
16
+ broadcaster?: string;
17
+ request?: IRequest;
18
+ user?: unknown;
19
+ }>;
20
+ export type BroadcastPublishResult = Readonly<{
21
+ ok: true;
22
+ transport: 'socket' | 'driver';
23
+ channels: readonly string[];
24
+ event: string;
25
+ deliveries?: number;
26
+ driver?: KnownBroadcastDriverConfig['driver'];
27
+ broadcaster?: string;
28
+ result?: unknown;
29
+ results?: readonly unknown[];
3
30
  }>;
4
31
  export declare const Broadcast: Readonly<{
5
- send(channel: string, event: string, data: unknown): Promise<unknown>;
6
- broadcastNow(channel: string, event: string, data: unknown): Promise<unknown>;
32
+ publish(input: BroadcastPublishInput): Promise<BroadcastPublishResult>;
33
+ send(channel: string, event: string, data: unknown): Promise<{}>;
34
+ broadcastNow(channel: string, event: string, data: unknown): Promise<{}>;
35
+ publishLater(input: BroadcastPublishInput, options?: {
36
+ queueName?: string;
37
+ timestamp?: number;
38
+ }): Promise<string>;
7
39
  BroadcastLater(channel: string, event: string, data: unknown, options?: {
8
40
  queueName?: string;
9
41
  timestamp?: number;
10
42
  }): Promise<string>;
11
43
  queue(queueName: string): Readonly<{
44
+ publishLater: (input: BroadcastPublishInput, options?: {}) => Promise<string>;
12
45
  BroadcastLater: (channel: string, event: string, data: unknown, options?: {}) => Promise<string>;
13
46
  }>;
14
47
  broadcaster(name?: string): Broadcaster;
@@ -1 +1 @@
1
- {"version":3,"file":"Broadcast.d.ts","sourceRoot":"","sources":["../../../../src/tools/broadcast/Broadcast.ts"],"names":[],"mappings":"AAQA,KAAK,WAAW,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E,CAAC,CAAC;AA0DH,eAAO,MAAM,SAAS;kBACA,MAAM,SAAS,MAAM,QAAQ,OAAO;0BAM5B,MAAM,SAAS,MAAM,QAAQ,OAAO;4BAMrD,MAAM,SACR,MAAM,QACP,OAAO,YACJ;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;qBAepC,MAAM;kCAEa,MAAM,SAAS,MAAM,QAAQ,OAAO;;uBAKrD,MAAM,GAAG,WAAW;EAQvC,CAAC;AAEH,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Broadcast.d.ts","sourceRoot":"","sources":["../../../../src/tools/broadcast/Broadcast.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,KAAK,WAAW,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC5E,CAAC,CAAC;AAEH,KAAK,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC,CAAC;AAaH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC9B,CAAC,CAAC;AAsMH,eAAO,MAAM,SAAS;mBACC,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;kBAIxD,MAAM,SAAS,MAAM,QAAQ,OAAO;0BAU5B,MAAM,SAAS,MAAM,QAAQ,OAAO;wBAKvD,qBAAqB,YACnB;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;4BAO1C,MAAM,SACR,MAAM,QACP,OAAO,YACJ;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;qBAKpC,MAAM;8BAES,qBAAqB;kCAEjB,MAAM,SAAS,MAAM,QAAQ,OAAO;;uBAKrD,MAAM,GAAG,WAAW;EAmBvC,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { isArray, isNonEmptyString } from '../../helper/index.js';
1
2
  import { InMemoryDriver } from './drivers/InMemory.js';
2
3
  import { PusherDriver } from './drivers/Pusher.js';
3
4
  import { RedisDriver } from './drivers/Redis.js';
@@ -44,39 +45,152 @@ const sendWithConfig = async (config, channel, event, data) => {
44
45
  }
45
46
  throw ErrorFactory.createConfigError(`Broadcast driver not implemented: ${driverName}`);
46
47
  };
48
+ const normalizeDelivery = (value) => {
49
+ if (value === 'socket' || value === 'driver') {
50
+ return value;
51
+ }
52
+ return 'auto';
53
+ };
54
+ const normalizePublishInput = (input) => {
55
+ let event = '';
56
+ if (isNonEmptyString(input.event)) {
57
+ event = input.event.trim();
58
+ }
59
+ else if (isNonEmptyString(input.name)) {
60
+ event = input.name.trim();
61
+ }
62
+ const channels = (() => {
63
+ if (isArray(input.channels)) {
64
+ return input.channels.filter(isNonEmptyString).map((channel) => channel.trim());
65
+ }
66
+ if (isNonEmptyString(input.channel)) {
67
+ return [input.channel.trim()];
68
+ }
69
+ return [];
70
+ })();
71
+ if (event === '' || channels.length === 0) {
72
+ throw ErrorFactory.createValidationError('Broadcast.publish requires event/name and channel/channels.');
73
+ }
74
+ return {
75
+ channels,
76
+ event,
77
+ data: input.data ?? {},
78
+ ...(isNonEmptyString(input.socketId) ? { socketId: input.socketId.trim() } : {}),
79
+ delivery: normalizeDelivery(input.delivery),
80
+ ...(isNonEmptyString(input.broadcaster) ? { broadcaster: input.broadcaster.trim() } : {}),
81
+ ...(input.request === undefined ? {} : { request: input.request }),
82
+ ...(input.user === undefined ? {} : { user: input.user }),
83
+ };
84
+ };
85
+ const tryPublishViaSocket = async (input) => {
86
+ try {
87
+ const socketModule = await import('../../../packages/socket/src/index.js');
88
+ if (socketModule.socketRuntime.isEnabled() !== true) {
89
+ return null;
90
+ }
91
+ const socketResult = await socketModule.publishSocketEventFromServer({
92
+ channels: input.channels,
93
+ event: input.event,
94
+ data: input.data,
95
+ socketId: input.socketId,
96
+ request: input.request,
97
+ user: input.user,
98
+ });
99
+ return {
100
+ ok: true,
101
+ transport: 'socket',
102
+ channels: socketResult.channels,
103
+ event: socketResult.event,
104
+ deliveries: socketResult.deliveries,
105
+ result: socketResult,
106
+ };
107
+ }
108
+ catch (error) {
109
+ if (input.delivery === 'socket') {
110
+ throw error;
111
+ }
112
+ return null;
113
+ }
114
+ };
115
+ const publishWithConfig = async (config, broadcasterName, input) => {
116
+ const results = await Promise.all(input.channels.map(async (channel) => sendWithConfig(config, channel, input.event, input.data)));
117
+ return {
118
+ ok: true,
119
+ transport: 'driver',
120
+ channels: input.channels,
121
+ event: input.event,
122
+ driver: config.driver,
123
+ ...(broadcasterName === undefined ? {} : { broadcaster: broadcasterName }),
124
+ ...(results.length === 1 ? { result: results[0] } : { results }),
125
+ };
126
+ };
127
+ const publishInternal = async (input) => {
128
+ const normalized = normalizePublishInput(input);
129
+ if (normalized.delivery !== 'driver') {
130
+ const socketResult = await tryPublishViaSocket(normalized);
131
+ if (socketResult !== null) {
132
+ return socketResult;
133
+ }
134
+ }
135
+ if (normalized.delivery === 'socket') {
136
+ throw ErrorFactory.createConfigError('Socket publish delivery is not available.');
137
+ }
138
+ const config = await resolveBroadcasterConfig(normalized.broadcaster);
139
+ return publishWithConfig(config, normalized.broadcaster, normalized);
140
+ };
141
+ const publishLaterInternal = async (input, options = {}) => {
142
+ const normalized = normalizePublishInput(input);
143
+ const { queueName = 'broadcasts', timestamp = Date.now() } = options;
144
+ const { Queue } = await import('../queue/Queue.js');
145
+ return Queue.enqueue(queueName, {
146
+ type: 'broadcast',
147
+ channel: normalized.channels[0],
148
+ channels: normalized.channels,
149
+ event: normalized.event,
150
+ data: normalized.data,
151
+ ...(normalized.socketId === undefined ? {} : { socketId: normalized.socketId }),
152
+ ...(normalized.broadcaster === undefined ? {} : { broadcaster: normalized.broadcaster }),
153
+ delivery: normalized.delivery,
154
+ timestamp,
155
+ attempts: 0,
156
+ });
157
+ };
47
158
  export const Broadcast = Object.freeze({
159
+ async publish(input) {
160
+ return publishInternal(input);
161
+ },
48
162
  async send(channel, event, data) {
49
- const config = await resolveBroadcasterConfig();
50
- return sendWithConfig(config, channel, event, data);
163
+ const result = await publishInternal({ channel, event, data });
164
+ if (result.transport === 'driver') {
165
+ return result.result ?? result.results ?? result;
166
+ }
167
+ return result.result ?? result;
51
168
  },
52
169
  // Alias for send() - explicit intent for immediate broadcast
53
170
  async broadcastNow(channel, event, data) {
54
171
  return this.send(channel, event, data);
55
172
  },
173
+ async publishLater(input, options = {}) {
174
+ return publishLaterInternal(input, options);
175
+ },
56
176
  // Queue broadcast for async processing
57
177
  async BroadcastLater(channel, event, data, options = {}) {
58
- const { queueName = 'broadcasts', timestamp = Date.now() } = options;
59
- const { Queue } = await import('../queue/Queue.js');
60
- const messageId = await Queue.enqueue(queueName, {
61
- type: 'broadcast',
62
- channel,
63
- event,
64
- data,
65
- timestamp,
66
- attempts: 0,
67
- });
68
- return messageId;
178
+ return publishLaterInternal({ channel, event, data }, options);
69
179
  },
70
180
  queue(queueName) {
71
181
  return Object.freeze({
72
- BroadcastLater: async (channel, event, data, options = {}) => Broadcast.BroadcastLater(channel, event, data, { ...options, queueName }),
182
+ publishLater: async (input, options = {}) => publishLaterInternal(input, { ...options, queueName }),
183
+ BroadcastLater: async (channel, event, data, options = {}) => publishLaterInternal({ channel, event, data }, { ...options, queueName }),
73
184
  });
74
185
  },
75
186
  broadcaster(name) {
76
187
  return Object.freeze({
77
188
  send: async (channel, event, data) => {
78
- const config = await resolveBroadcasterConfig(name);
79
- return sendWithConfig(config, channel, event, data);
189
+ const result = await publishWithConfig(await resolveBroadcasterConfig(name), name, normalizePublishInput({ channel, event, data, delivery: 'driver', broadcaster: name }));
190
+ return result.result ?? result.results ?? result;
191
+ },
192
+ publish: async (input) => {
193
+ return publishWithConfig(await resolveBroadcasterConfig(name), name, normalizePublishInput({ ...input, delivery: 'driver', broadcaster: name }));
80
194
  },
81
195
  });
82
196
  },
@@ -1,4 +1,5 @@
1
1
  export { Broadcast } from './Broadcast';
2
+ export type { BroadcastPublishInput, BroadcastPublishResult } from './Broadcast';
2
3
  export { BroadcastRegistry } from './BroadcastRegistry';
3
4
  export { registerBroadcastersFromRuntimeConfig } from './BroadcastRuntimeRegistration';
4
5
  export { BaseDriver } from './drivers/BaseDriver';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/broadcast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/broadcast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import '../packages/db-d1/src/register.js';
2
+ import '../packages/db-mysql/src/register.js';
3
+ import '../packages/db-postgres/src/register.js';
4
+ import '../packages/db-sqlite/src/register.js';
5
+ import '../packages/db-sqlserver/src/register.js';
6
+ import '../packages/mail-sendgrid/src/register.js';
7
+ import '../packages/mail-smtp/src/register.js';
8
+ import '../packages/queue-monitor/src/index.js';
9
+ import '../packages/queue-redis/src/register.js';
10
+ import '../packages/workers/src/register.js';
11
+ //# sourceMappingURL=zintrust.comon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zintrust.comon.d.ts","sourceRoot":"","sources":["../../src/zintrust.comon.ts"],"names":[],"mappings":"AAQA,OAAO,mCAAmC,CAAC;AAC3C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yCAAyC,CAAC;AACjD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,0CAA0C,CAAC;AAClD,OAAO,2CAA2C,CAAC;AACnD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,wCAAwC,CAAC;AAChD,OAAO,yCAAyC,CAAC;AACjD,OAAO,qCAAqC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /* eslint-disable no-restricted-imports */
2
+ // /**
3
+ // * ZinTrust comon plugin auto-imports
4
+ // *
5
+ // * This file is managed by `zin plugin install` and contains side-effect
6
+ // * imports that register optional adapters/drivers into core registries.
7
+ // */
8
+ import '../packages/db-d1/src/register.js';
9
+ import '../packages/db-mysql/src/register.js';
10
+ import '../packages/db-postgres/src/register.js';
11
+ import '../packages/db-sqlite/src/register.js';
12
+ import '../packages/db-sqlserver/src/register.js';
13
+ import '../packages/mail-sendgrid/src/register.js';
14
+ import '../packages/mail-smtp/src/register.js';
15
+ import '@zintrust/queue-monitor';
16
+ import '../packages/queue-redis/src/register.js';
17
+ import '../packages/workers/src/register.js';
@@ -1,8 +1,12 @@
1
1
  /**
2
- * Auto-generated fallback module.
3
- * This file is created by scripts/ensure-worker-plugins.mjs when missing.
4
- * It allows optional runtime plugin imports to resolve in CI/scaffolded setups.
2
+ * ZinTrust plugin auto-imports
3
+ *
4
+ * In real projects, this file is managed by `zin plugin install` and contains
5
+ * side-effect imports (e.g. `@zintrust/db-sqlite/register`) that register
6
+ * optional adapters/drivers into core registries.
7
+ *
5
8
  */
9
+ export type {};
6
10
  export declare const __zintrustGeneratedPluginStub = "zintrust.plugins.ts";
7
11
  declare const _default: {};
8
12
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"zintrust.plugins.d.ts","sourceRoot":"","sources":["../../src/zintrust.plugins.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;;AACnE,wBAAkB"}
1
+ {"version":3,"file":"zintrust.plugins.d.ts","sourceRoot":"","sources":["../../src/zintrust.plugins.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,YAAY,EAAE,CAAC;AAgBf,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;;AACnE,wBAAkB"}
@@ -1,7 +1,13 @@
1
1
  /**
2
- * Auto-generated fallback module.
3
- * This file is created by scripts/ensure-worker-plugins.mjs when missing.
4
- * It allows optional runtime plugin imports to resolve in CI/scaffolded setups.
2
+ * ZinTrust plugin auto-imports
3
+ *
4
+ * In real projects, this file is managed by `zin plugin install` and contains
5
+ * side-effect imports (e.g. `@zintrust/db-sqlite/register`) that register
6
+ * optional adapters/drivers into core registries.
7
+ *
5
8
  */
9
+ import * as SystemDebuggerRuntime from './runtime/plugins/system-debugger-runtime.js';
10
+ globalThis.__zintrust_system_debugger_plugin_requested__ = true;
11
+ globalThis.__zintrust_system_debugger_runtime__ = SystemDebuggerRuntime;
6
12
  export const __zintrustGeneratedPluginStub = 'zintrust.plugins.ts';
7
13
  export default {};
@@ -3,6 +3,7 @@
3
3
  * This file is created by scripts/ensure-worker-plugins.mjs when missing.
4
4
  * It allows optional runtime plugin imports to resolve in CI/scaffolded setups.
5
5
  */
6
+ export type {};
6
7
  export declare const __zintrustGeneratedPluginStub = "zintrust.plugins.wg.ts";
7
8
  declare const _default: {};
8
9
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"zintrust.plugins.wg.d.ts","sourceRoot":"","sources":["../../src/zintrust.plugins.wg.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,6BAA6B,2BAA2B,CAAC;;AACtE,wBAAkB"}
1
+ {"version":3,"file":"zintrust.plugins.wg.d.ts","sourceRoot":"","sources":["../../src/zintrust.plugins.wg.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,YAAY,EAAE,CAAC;AAgBf,eAAO,MAAM,6BAA6B,2BAA2B,CAAC;;AACtE,wBAAkB"}
@@ -3,5 +3,8 @@
3
3
  * This file is created by scripts/ensure-worker-plugins.mjs when missing.
4
4
  * It allows optional runtime plugin imports to resolve in CI/scaffolded setups.
5
5
  */
6
+ import * as SystemDebuggerRuntime from './runtime/plugins/system-debugger-runtime.js';
7
+ globalThis.__zintrust_system_debugger_plugin_requested__ = true;
8
+ globalThis.__zintrust_system_debugger_runtime__ = SystemDebuggerRuntime;
6
9
  export const __zintrustGeneratedPluginStub = 'zintrust.plugins.wg.ts';
7
10
  export default {};