@zintrust/core 1.8.0 → 1.8.2
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.
- package/bin/z.js +14 -1
- package/bin/zin.js +14 -1
- package/bin/zintrust-main.d.ts.map +1 -1
- package/bin/zintrust-main.js +27 -9
- package/bin/zintrust.js +14 -1
- package/bin/zt.js +14 -1
- package/package.json +1 -1
- package/src/cli/services/VersionChecker.d.ts +5 -0
- package/src/cli/services/VersionChecker.d.ts.map +1 -1
- package/src/cli/services/VersionChecker.js +67 -22
- package/src/index.js +3 -3
- package/src/zintrust.plugins.d.ts +6 -3
- package/src/zintrust.plugins.d.ts.map +1 -1
- package/src/zintrust.plugins.js +6 -3
package/bin/z.js
CHANGED
|
@@ -3,5 +3,18 @@
|
|
|
3
3
|
* ZinTrust CLI Shortcut - 'z'
|
|
4
4
|
* Mirrors bin/zintrust.ts for convenience
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
const importCliWrapper = async () => {
|
|
7
|
+
try {
|
|
8
|
+
return await import(new URL('./launcher.ts', import.meta.url).href);
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
if (!(error instanceof Error) ||
|
|
12
|
+
error.code !== 'ERR_MODULE_NOT_FOUND') {
|
|
13
|
+
throw error;
|
|
14
|
+
}
|
|
15
|
+
return import(new URL('./launcher.js', import.meta.url).href);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const { runCliWrapper } = await importCliWrapper();
|
|
7
19
|
await runCliWrapper();
|
|
20
|
+
export {};
|
package/bin/zin.js
CHANGED
|
@@ -3,5 +3,18 @@
|
|
|
3
3
|
* ZinTrust CLI Shortcut - 'zin'
|
|
4
4
|
* Mirrors bin/zintrust.ts for convenience
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
const importCliWrapper = async () => {
|
|
7
|
+
try {
|
|
8
|
+
return await import(new URL('./launcher.ts', import.meta.url).href);
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
if (!(error instanceof Error) ||
|
|
12
|
+
error.code !== 'ERR_MODULE_NOT_FOUND') {
|
|
13
|
+
throw error;
|
|
14
|
+
}
|
|
15
|
+
return import(new URL('./launcher.js', import.meta.url).href);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const { runCliWrapper } = await importCliWrapper();
|
|
7
19
|
await runCliWrapper({ traceName: 'cli-wrapper' });
|
|
20
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zintrust-main.d.ts","sourceRoot":"","sources":["../../bin/zintrust-main.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"zintrust-main.d.ts","sourceRoot":"","sources":["../../bin/zintrust-main.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAmaF,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAMzC;AAED,eAAO,MAAM,mBAAmB;;qCAlYQ,MAAM,KAAG,qBAAqB,GAAG,SAAS;mCA6C5C,MAAM,GAAG,IAAI,UAAU,MAAM,CAAC,OAAO,GAAG,IAAI,KAAG,MAAM;iCAnEzD,MAAM;8BAIP,MAAM,KAAG,MAAM;uCAoGtC,qBAAqB,WACpB,MAAM,EAAE,KAChB,OAAO,CAAC,KAAK,CAAC;oCA9FsB,MAAM,sBAAsB,MAAM,KAAG,OAAO;6CAkI7B,MAAM,EAAE,KAAG,OAAO,CAAC,OAAO,CAAC;yCA7F1E,MAAM,sBACS,MAAM,QACrB,MAAM,CAAC,UAAU,KACrB,qBAAqB,GAAG,SAAS;EA8WlC,CAAC;AAaH,OAAO,EAAE,CAAC"}
|
package/bin/zintrust-main.js
CHANGED
|
@@ -253,7 +253,33 @@ const handleCliFatal = async (error, context) => {
|
|
|
253
253
|
}
|
|
254
254
|
process.exit(1);
|
|
255
255
|
};
|
|
256
|
+
const maybeRunVersionCheckChild = async () => {
|
|
257
|
+
if (process.env['ZINTRUST_VERSION_CHECK_CHILD'] !== 'true') {
|
|
258
|
+
return false;
|
|
259
|
+
}
|
|
260
|
+
const { VersionChecker } = await import('../src/cli/services/VersionChecker.js');
|
|
261
|
+
await VersionChecker.runVersionCheckInline();
|
|
262
|
+
return true;
|
|
263
|
+
};
|
|
264
|
+
const loadOptionalCliExtensionsForArgs = async (args) => {
|
|
265
|
+
let optionalCliExtensions;
|
|
266
|
+
let optionalCliStatuses = [];
|
|
267
|
+
try {
|
|
268
|
+
({ OptionalCliExtensions: optionalCliExtensions } = await import('../src/cli/OptionalCliExtensions.js'));
|
|
269
|
+
optionalCliStatuses = await optionalCliExtensions.loadForArgs(args);
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
// best-effort; missing optional extensions must not block the CLI
|
|
273
|
+
}
|
|
274
|
+
return {
|
|
275
|
+
optionalCliExtensions,
|
|
276
|
+
optionalCliStatuses,
|
|
277
|
+
};
|
|
278
|
+
};
|
|
256
279
|
const runCliInternal = async () => {
|
|
280
|
+
if (await maybeRunVersionCheckChild()) {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
257
283
|
const { rawArgs: rawArgs0, args: args0 } = getArgsFromProcess();
|
|
258
284
|
if (await maybeHandoffToProjectLocalCli(rawArgs0)) {
|
|
259
285
|
return;
|
|
@@ -266,15 +292,7 @@ const runCliInternal = async () => {
|
|
|
266
292
|
const { EnvFileLoader } = await import('../src/cli/utils/EnvFileLoader.js');
|
|
267
293
|
EnvFileLoader.ensureLoaded();
|
|
268
294
|
// Auto-load install-only CLI extension packages that self-register commands.
|
|
269
|
-
|
|
270
|
-
let optionalCliStatuses = [];
|
|
271
|
-
try {
|
|
272
|
-
({ OptionalCliExtensions: optionalCliExtensions } = await import('../src/cli/OptionalCliExtensions.js'));
|
|
273
|
-
optionalCliStatuses = await optionalCliExtensions.loadForArgs(args0);
|
|
274
|
-
}
|
|
275
|
-
catch {
|
|
276
|
-
// best-effort; missing optional extensions must not block the CLI
|
|
277
|
-
}
|
|
295
|
+
const { optionalCliExtensions, optionalCliStatuses } = await loadOptionalCliExtensionsForArgs(args0);
|
|
278
296
|
const missingOptionalExtension = optionalCliExtensions?.findMissingExtensionForArgs(args0, optionalCliStatuses);
|
|
279
297
|
if (missingOptionalExtension !== undefined) {
|
|
280
298
|
const { ErrorFactory } = await import('../src/exceptions/ZintrustError.js');
|
package/bin/zintrust.js
CHANGED
|
@@ -6,5 +6,18 @@
|
|
|
6
6
|
* bin/zintrust-main.ts. Keeping the implementation hashbang-free allows other
|
|
7
7
|
* shortcuts (zin/z/zt) to reuse the same launcher behavior.
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
const importCliWrapper = async () => {
|
|
10
|
+
try {
|
|
11
|
+
return await import(new URL('./launcher.ts', import.meta.url).href);
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
if (!(error instanceof Error) ||
|
|
15
|
+
error.code !== 'ERR_MODULE_NOT_FOUND') {
|
|
16
|
+
throw error;
|
|
17
|
+
}
|
|
18
|
+
return import(new URL('./launcher.js', import.meta.url).href);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const { runCliWrapper } = await importCliWrapper();
|
|
10
22
|
await runCliWrapper();
|
|
23
|
+
export {};
|
package/bin/zt.js
CHANGED
|
@@ -3,5 +3,18 @@
|
|
|
3
3
|
* ZinTrust CLI Shortcut - 'zt'
|
|
4
4
|
* Mirrors bin/zintrust.ts for convenience
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
const importCliWrapper = async () => {
|
|
7
|
+
try {
|
|
8
|
+
return await import(new URL('./launcher.ts', import.meta.url).href);
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
if (!(error instanceof Error) ||
|
|
12
|
+
error.code !== 'ERR_MODULE_NOT_FOUND') {
|
|
13
|
+
throw error;
|
|
14
|
+
}
|
|
15
|
+
return import(new URL('./launcher.js', import.meta.url).href);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const { runCliWrapper } = await importCliWrapper();
|
|
7
19
|
await runCliWrapper();
|
|
20
|
+
export {};
|
package/package.json
CHANGED
|
@@ -17,6 +17,9 @@ interface VersionCheckConfig {
|
|
|
17
17
|
skipVersionCheck: boolean;
|
|
18
18
|
}
|
|
19
19
|
export declare const VersionChecker: Readonly<{
|
|
20
|
+
isDetachedChildProcess(): boolean;
|
|
21
|
+
shouldSkipVersionCheckForArgs(args: Set<string>): boolean;
|
|
22
|
+
hasFreshVersionCheck(checkInterval: number): boolean;
|
|
20
23
|
/**
|
|
21
24
|
* Resolve the nearest package.json from a starting directory.
|
|
22
25
|
*/
|
|
@@ -81,6 +84,8 @@ export declare const VersionChecker: Readonly<{
|
|
|
81
84
|
* Display update notification to user
|
|
82
85
|
*/
|
|
83
86
|
displayUpdateNotification(result: VersionCheckResult): void;
|
|
87
|
+
spawnDetachedVersionCheck(): void;
|
|
88
|
+
runVersionCheckInline(): Promise<void>;
|
|
84
89
|
/**
|
|
85
90
|
* Run version check and display notification if needed
|
|
86
91
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VersionChecker.d.ts","sourceRoot":"","sources":["../../../../src/cli/services/VersionChecker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"VersionChecker.d.ts","sourceRoot":"","sources":["../../../../src/cli/services/VersionChecker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMlE,UAAU,kBAAkB;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAID,eAAO,MAAM,cAAc;8BACC,OAAO;wCAIG,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO;wCAYrB,MAAM,GAAG,OAAO;IAapD;;OAEG;qCAC8B,MAAM,GAAG,MAAM,GAAG,IAAI;IAcvD;;OAEG;yBACkB,MAAM;IAkB3B;;OAEG;iBACU,kBAAkB;IAQ/B;;OAEG;0BACmB,OAAO;IA0B7B;;OAEG;oCAC6B,MAAM,GAAG,MAAM,GAAG,IAAI;IAwBtD;;OAEG;gCACyB,MAAM,GAAG,IAAI;IAezC;;OAEG;0BACyB,OAAO,CAAC,MAAM,CAAC;IA6B3C;;OAEG;4BAC2B,OAAO,CAAC,aAAa,CAAC;IAQpD;;OAEG;uBACgB,MAAM;IAIzB;;OAEG;qCAC8B,OAAO,GAAG,MAAM;IAuBjD;;OAEG;8BACuB,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAInE;;OAEG;uCACgC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAY1E;;OAEG;oCAC6B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAQvE;;OAEG;6BACsB,MAAM,UAAU,MAAM,GAAG,MAAM;IAuBxD;;OAEG;oBACmB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAyBxD;;OAEG;sCAC+B,kBAAkB,GAAG,IAAI;iCA4B9B,IAAI;6BAkCF,OAAO,CAAC,IAAI,CAAC;IAW5C;;OAEG;uBACsB,OAAO,CAAC,IAAI,CAAC;EAQtC,CAAC"}
|
|
@@ -4,11 +4,35 @@
|
|
|
4
4
|
* Checks if the current CLI version is outdated and warns users
|
|
5
5
|
* when a newer version is available from npm registry.
|
|
6
6
|
*/
|
|
7
|
+
import { Logger } from '../../config/logger.js';
|
|
7
8
|
import { HttpClient } from '../../tools/http/Http.js';
|
|
9
|
+
import { spawn } from '../../node-singletons/child-process.js';
|
|
8
10
|
import { existsSync, readFileSync } from '../../node-singletons/fs.js';
|
|
9
11
|
import { dirname, join } from '../../node-singletons/path.js';
|
|
10
12
|
import { fileURLToPath } from '../../node-singletons/url.js';
|
|
13
|
+
const VERSION_CHECK_CHILD_ENV = 'ZINTRUST_VERSION_CHECK_CHILD';
|
|
11
14
|
export const VersionChecker = Object.freeze({
|
|
15
|
+
isDetachedChildProcess() {
|
|
16
|
+
return process.env[VERSION_CHECK_CHILD_ENV] === 'true';
|
|
17
|
+
},
|
|
18
|
+
shouldSkipVersionCheckForArgs(args) {
|
|
19
|
+
return (args.has('-v') ||
|
|
20
|
+
args.has('--version') ||
|
|
21
|
+
args.has('help') ||
|
|
22
|
+
args.has('new') ||
|
|
23
|
+
args.has('migrate') ||
|
|
24
|
+
args.has('schedule:run') ||
|
|
25
|
+
args.has('schedule:list'));
|
|
26
|
+
},
|
|
27
|
+
hasFreshVersionCheck(checkInterval) {
|
|
28
|
+
const lastCheck = globalThis.localStorage?.getItem?.('zintrust_last_version_check');
|
|
29
|
+
if (lastCheck === null || lastCheck === undefined) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
const lastCheckTime = Number.parseInt(lastCheck, 10);
|
|
33
|
+
const hoursSinceLastCheck = (Date.now() - lastCheckTime) / (1000 * 60 * 60);
|
|
34
|
+
return hoursSinceLastCheck < checkInterval;
|
|
35
|
+
},
|
|
12
36
|
/**
|
|
13
37
|
* Resolve the nearest package.json from a starting directory.
|
|
14
38
|
*/
|
|
@@ -57,6 +81,9 @@ export const VersionChecker = Object.freeze({
|
|
|
57
81
|
* Check if version check should be performed
|
|
58
82
|
*/
|
|
59
83
|
shouldCheckVersion() {
|
|
84
|
+
if (this.isDetachedChildProcess()) {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
60
87
|
const config = this.getConfig();
|
|
61
88
|
// Skip if disabled
|
|
62
89
|
if (!config.enabled || config.skipVersionCheck) {
|
|
@@ -64,27 +91,12 @@ export const VersionChecker = Object.freeze({
|
|
|
64
91
|
}
|
|
65
92
|
// Skip for version commands
|
|
66
93
|
const args = new Set(process.argv.slice(2));
|
|
67
|
-
if (
|
|
68
|
-
args.has('--version') ||
|
|
69
|
-
args.has('help') ||
|
|
70
|
-
args.has('new') ||
|
|
71
|
-
args.has('migrate') ||
|
|
72
|
-
// One-shot schedule commands should exit cleanly and not keep the event loop alive
|
|
73
|
-
// due to background network requests/keep-alive sockets.
|
|
74
|
-
args.has('schedule:run') ||
|
|
75
|
-
args.has('schedule:list')) {
|
|
94
|
+
if (this.shouldSkipVersionCheckForArgs(args)) {
|
|
76
95
|
return false;
|
|
77
96
|
}
|
|
78
97
|
// Check last check time
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (lastCheck !== null && lastCheck !== undefined) {
|
|
82
|
-
const lastCheckTime = Number.parseInt(lastCheck, 10);
|
|
83
|
-
const now = Date.now();
|
|
84
|
-
const hoursSinceLastCheck = (now - lastCheckTime) / (1000 * 60 * 60);
|
|
85
|
-
if (hoursSinceLastCheck < config.checkInterval) {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
98
|
+
if (this.hasFreshVersionCheck(config.checkInterval)) {
|
|
99
|
+
return false;
|
|
88
100
|
}
|
|
89
101
|
return true;
|
|
90
102
|
},
|
|
@@ -298,10 +310,33 @@ export const VersionChecker = Object.freeze({
|
|
|
298
310
|
].join('\n');
|
|
299
311
|
process.stdout.write(output);
|
|
300
312
|
},
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
313
|
+
spawnDetachedVersionCheck() {
|
|
314
|
+
if (!this.shouldCheckVersion()) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
const entrypoint = process.argv[1];
|
|
318
|
+
if (typeof entrypoint !== 'string' || entrypoint.trim() === '') {
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
try {
|
|
322
|
+
const child = spawn(process.execPath, [...process.execArgv, entrypoint, ...process.argv.slice(2)], {
|
|
323
|
+
detached: true,
|
|
324
|
+
env: {
|
|
325
|
+
...process.env,
|
|
326
|
+
[VERSION_CHECK_CHILD_ENV]: 'true',
|
|
327
|
+
},
|
|
328
|
+
stdio: 'ignore',
|
|
329
|
+
});
|
|
330
|
+
child.once('error', (error) => {
|
|
331
|
+
Logger.debug('Detached version check failed to start', error);
|
|
332
|
+
});
|
|
333
|
+
child.unref();
|
|
334
|
+
}
|
|
335
|
+
catch (error) {
|
|
336
|
+
Logger.debug('Detached version check spawn failed', error);
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
async runVersionCheckInline() {
|
|
305
340
|
try {
|
|
306
341
|
const result = await this.checkVersion();
|
|
307
342
|
if (result) {
|
|
@@ -312,4 +347,14 @@ export const VersionChecker = Object.freeze({
|
|
|
312
347
|
// Version check should never crash the CLI
|
|
313
348
|
}
|
|
314
349
|
},
|
|
350
|
+
/**
|
|
351
|
+
* Run version check and display notification if needed
|
|
352
|
+
*/
|
|
353
|
+
async runVersionCheck() {
|
|
354
|
+
if (this.isDetachedChildProcess()) {
|
|
355
|
+
await this.runVersionCheckInline();
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
this.spawnDetachedVersionCheck();
|
|
359
|
+
},
|
|
315
360
|
});
|
package/src/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @zintrust/core v1.8.
|
|
2
|
+
* @zintrust/core v1.8.2
|
|
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-05-
|
|
8
|
+
* Built: 2026-05-06T12:08:48.296Z
|
|
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-05-
|
|
24
|
+
export const ZINTRUST_BUILD_DATE = '2026-05-06T12:08:48.262Z'; // 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';
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
*/
|
|
6
9
|
export type {};
|
|
7
10
|
export declare const __zintrustGeneratedPluginStub = "zintrust.plugins.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zintrust.plugins.d.ts","sourceRoot":"","sources":["../../src/zintrust.plugins.ts"],"names":[],"mappings":"AAAA
|
|
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"}
|
package/src/zintrust.plugins.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
*/
|
|
6
9
|
import * as TraceRuntime from './runtime/plugins/trace-runtime.js';
|
|
7
10
|
globalThis.__zintrust_system_trace_plugin_requested__ = true;
|