libmodulor 0.25.0 → 0.27.0
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/CHANGELOG.md +23 -0
- package/README.md +32 -151
- package/dist/esm/app/workers/AppUCsLoader.d.ts +2 -3
- package/dist/esm/apps/Helper/src/i18n.d.ts +39 -2
- package/dist/esm/apps/Helper/src/i18n.js +15 -1
- package/dist/esm/apps/Helper/src/lib/SrcFilesGenerator.d.ts +13 -0
- package/dist/esm/apps/Helper/src/lib/SrcFilesGenerator.js +37 -0
- package/dist/esm/apps/Helper/src/lib/consts.d.ts +2 -0
- package/dist/esm/apps/Helper/src/lib/consts.js +2 -0
- package/dist/esm/apps/Helper/src/lib/funcs.d.ts +4 -0
- package/dist/esm/apps/Helper/src/lib/funcs.js +9 -0
- package/dist/esm/apps/Helper/src/lib/io.d.ts +10 -0
- package/dist/esm/apps/Helper/src/lib/io.js +22 -0
- package/dist/esm/apps/Helper/src/lib/layers/app.d.ts +3 -0
- package/dist/esm/apps/Helper/src/lib/layers/app.js +30 -0
- package/dist/esm/apps/Helper/src/lib/layers/product.d.ts +3 -0
- package/dist/esm/apps/Helper/src/lib/layers/product.js +27 -0
- package/dist/esm/apps/Helper/src/lib/layers/project.d.ts +4 -0
- package/dist/esm/apps/Helper/src/lib/layers/project.js +163 -0
- package/dist/esm/apps/Helper/src/lib/layers/target.d.ts +3 -0
- package/dist/esm/apps/Helper/src/lib/layers/target.js +202 -0
- package/dist/esm/apps/Helper/src/lib/layers/uc.d.ts +3 -0
- package/dist/esm/apps/Helper/src/lib/layers/uc.js +113 -0
- package/dist/esm/apps/Helper/src/lib/project.js +15 -17
- package/dist/esm/apps/Helper/src/lib/types.d.ts +3 -0
- package/dist/esm/apps/Helper/src/lib/types.js +1 -0
- package/dist/esm/apps/Helper/src/manifest.d.ts +20 -0
- package/dist/esm/apps/Helper/src/manifest.js +20 -0
- package/dist/esm/apps/Helper/src/ucds/CreateAppUCD.d.ts +7 -0
- package/dist/esm/apps/Helper/src/ucds/CreateAppUCD.js +101 -0
- package/dist/esm/apps/Helper/src/ucds/CreateProductUCD.d.ts +7 -0
- package/dist/esm/apps/Helper/src/ucds/CreateProductUCD.js +101 -0
- package/dist/esm/apps/Helper/src/ucds/CreateProjectUCD.d.ts +1 -17
- package/dist/esm/apps/Helper/src/ucds/CreateProjectUCD.js +40 -34
- package/dist/esm/apps/Helper/src/ucds/CreateTargetUCD.d.ts +9 -0
- package/dist/esm/apps/Helper/src/ucds/CreateTargetUCD.js +109 -0
- package/dist/esm/apps/Helper/src/ucds/CreateUCUCD.d.ts +8 -0
- package/dist/esm/apps/Helper/src/ucds/CreateUCUCD.js +87 -0
- package/dist/esm/apps/Helper/src/ucds/DeleteGeneratedAppsTestsUCD.d.ts +1 -1
- package/dist/esm/apps/Helper/src/ucds/DeleteGeneratedAppsTestsUCD.js +1 -1
- package/dist/esm/apps/Helper/src/ucds/GenerateAppsTestsUCD.d.ts +1 -1
- package/dist/esm/apps/Helper/src/ucds/GenerateAppsTestsUCD.js +1 -1
- package/dist/esm/apps/Helper/src/ucds/TestAppUCD.d.ts +1 -1
- package/dist/esm/apps/Helper/src/ucds/TestAppUCD.js +1 -1
- package/dist/esm/convention.d.ts +16 -5
- package/dist/esm/convention.js +34 -10
- package/dist/esm/error/funcs.d.ts +2 -0
- package/dist/esm/error/funcs.js +20 -0
- package/dist/esm/error/index.d.ts +1 -1
- package/dist/esm/error/index.js +1 -1
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.node-test.d.ts +1 -1
- package/dist/esm/index.node-test.js +1 -1
- package/dist/esm/product/index.d.ts +1 -1
- package/dist/esm/product/index.js +1 -1
- package/dist/esm/product/workers/ProductUCsLoader.d.ts +8 -6
- package/dist/esm/product/workers/ProductUCsLoader.js +19 -5
- package/dist/esm/products/Helper/cli-node-core/container.d.ts +3 -0
- package/dist/esm/products/Helper/cli-node-core/container.js +26 -0
- package/dist/esm/products/Helper/cli-node-core/index.d.ts +1 -0
- package/dist/esm/products/Helper/cli-node-core/index.js +9 -0
- package/dist/esm/products/Helper/i18n.d.ts +101 -2
- package/dist/esm/products/Helper/targets/node-core-cli/container.d.ts +3 -0
- package/dist/esm/products/Helper/targets/node-core-cli/container.js +26 -0
- package/dist/esm/products/Helper/targets/node-core-cli/index.d.ts +1 -0
- package/dist/esm/products/Helper/targets/node-core-cli/index.js +9 -0
- package/dist/esm/std/SettingsManager.d.ts +3 -16
- package/dist/esm/std/SettingsManager.js +1 -16
- package/dist/esm/std/ShellCommandExecutor.d.ts +1 -1
- package/dist/esm/std/consts.js +4 -4
- package/dist/esm/std/impl/EnvSettingsManager.d.ts +5 -4
- package/dist/esm/std/impl/EnvSettingsManager.js +40 -62
- package/dist/esm/std/impl/FakeFSManager.d.ts +3 -1
- package/dist/esm/std/impl/FakeFSManager.js +3 -0
- package/dist/esm/std/impl/FakeShellCommandExecutor.d.ts +12 -0
- package/dist/esm/std/impl/FakeShellCommandExecutor.js +30 -0
- package/dist/esm/std/impl/StaticSettingsManager.d.ts +1 -1
- package/dist/esm/std/impl/StaticSettingsManager.js +3 -0
- package/dist/esm/std/index.d.ts +1 -0
- package/dist/esm/std/index.js +1 -0
- package/dist/esm/std/lib/settings.d.ts +5 -0
- package/dist/esm/std/lib/settings.js +39 -0
- package/dist/esm/target/edge-worker-hono-server/SyncEdgeWorkerHonoServerManager.d.ts +3 -1
- package/dist/esm/target/edge-worker-hono-server/SyncEdgeWorkerHonoServerManager.js +12 -7
- package/dist/esm/target/index.d.ts +1 -0
- package/dist/esm/target/index.js +1 -0
- package/dist/esm/target/lib/cli/CLIManager.d.ts +2 -2
- package/dist/esm/target/lib/client/consts.js +2 -1
- package/dist/esm/target/lib/entrypoint.d.ts +2 -0
- package/dist/esm/target/lib/entrypoint.js +1 -0
- package/dist/esm/target/lib/manifest.d.ts +13 -0
- package/dist/esm/target/lib/manifest.js +11 -0
- package/dist/esm/target/lib/mcp-server/MCPServerBooter.d.ts +2 -2
- package/dist/esm/target/lib/server/CustomerFacingErrorBuilder.js +6 -1
- package/dist/esm/target/lib/server/ServerBooter.d.ts +2 -2
- package/dist/esm/target/lib/server/ServerRequestHandler.js +6 -2
- package/dist/esm/target/lib/server/consts.js +2 -1
- package/dist/esm/target/lib/server-express/funcs.d.ts +2 -0
- package/dist/esm/target/lib/server-express/funcs.js +6 -0
- package/dist/esm/target/lib/server-hono/funcs.d.ts +2 -1
- package/dist/esm/target/lib/server-hono/funcs.js +7 -3
- package/dist/esm/target/node-express-server/NodeExpressServerManager.d.ts +3 -1
- package/dist/esm/target/node-express-server/NodeExpressServerManager.js +17 -12
- package/dist/esm/target/node-hono-server/NodeHonoServerManager.d.ts +3 -1
- package/dist/esm/target/node-hono-server/NodeHonoServerManager.js +15 -10
- package/dist/esm/target/node-stricli-cli/NodeStricliCLIManager.d.ts +3 -1
- package/dist/esm/target/node-stricli-cli/NodeStricliCLIManager.js +9 -5
- package/dist/esm/testing/impl/NodeAppTesterConfigurator.d.ts +15 -0
- package/dist/esm/testing/impl/NodeAppTesterConfigurator.js +68 -0
- package/dist/esm/testing/impl/VitestAppTestSuiteEmitter.d.ts +2 -0
- package/dist/esm/testing/impl/VitestAppTestSuiteEmitter.js +27 -10
- package/dist/esm/testing/impl/newNodeAppTester.js +3 -4
- package/dist/esm/testing/opts.d.ts +1 -1
- package/dist/esm/utils/ioc/bindCommon.d.ts +4 -4
- package/dist/esm/utils/ioc/bindCommon.js +17 -15
- package/dist/esm/utils/ioc/bindNodeCore.js +5 -0
- package/dist/esm/utils/ioc/bindServer.js +8 -2
- package/package.json +19 -18
- package/pnpm-workspace.yaml +0 -8
- package/tsconfig.build.examples.json +0 -8
- package/tsconfig.json +0 -36
- package/vitest.config.ts +0 -16
|
@@ -15,13 +15,15 @@ import https from 'node:https';
|
|
|
15
15
|
import express, {} from 'express';
|
|
16
16
|
import { inject, injectable } from 'inversify';
|
|
17
17
|
import { NotCallableError } from '../../error/index.js';
|
|
18
|
+
import { CustomerFacingErrorBuilder } from '../lib/server/CustomerFacingErrorBuilder.js';
|
|
18
19
|
import { EntrypointsBuilder } from '../lib/server/EntrypointsBuilder.js';
|
|
19
20
|
import { ServerRequestHandler } from '../lib/server/ServerRequestHandler.js';
|
|
20
21
|
import { ServerSSLCertLoader } from '../lib/server/ServerSSLCertLoader.js';
|
|
21
|
-
import { buildHandler, init, mountHandler, } from '../lib/server-express/funcs.js';
|
|
22
|
+
import { buildHandler, init, mountHandler, postInit, } from '../lib/server-express/funcs.js';
|
|
22
23
|
import { HelmetMiddlewareBuilder } from '../lib/server-express/HelmetMiddlewareBuilder.js';
|
|
23
24
|
import { listen, stop } from '../lib/server-node/funcs.js';
|
|
24
25
|
let NodeExpressServerManager = class NodeExpressServerManager {
|
|
26
|
+
customerFacingErrorBuilder;
|
|
25
27
|
entrypointsBuilder;
|
|
26
28
|
environmentManager;
|
|
27
29
|
helmetMB;
|
|
@@ -32,7 +34,8 @@ let NodeExpressServerManager = class NodeExpressServerManager {
|
|
|
32
34
|
ucManager;
|
|
33
35
|
runtime;
|
|
34
36
|
server;
|
|
35
|
-
constructor(entrypointsBuilder, environmentManager, helmetMB, logger, serverRequestHandler, serverSSLCertLoader, settingsManager, ucManager) {
|
|
37
|
+
constructor(customerFacingErrorBuilder, entrypointsBuilder, environmentManager, helmetMB, logger, serverRequestHandler, serverSSLCertLoader, settingsManager, ucManager) {
|
|
38
|
+
this.customerFacingErrorBuilder = customerFacingErrorBuilder;
|
|
36
39
|
this.entrypointsBuilder = entrypointsBuilder;
|
|
37
40
|
this.environmentManager = environmentManager;
|
|
38
41
|
this.helmetMB = helmetMB;
|
|
@@ -83,7 +86,7 @@ let NodeExpressServerManager = class NodeExpressServerManager {
|
|
|
83
86
|
await stop(this.server, this.settingsManager);
|
|
84
87
|
}
|
|
85
88
|
async warmUp() {
|
|
86
|
-
|
|
89
|
+
postInit(this.runtime, this.customerFacingErrorBuilder);
|
|
87
90
|
}
|
|
88
91
|
async createServer() {
|
|
89
92
|
const port = this.s().server_binding_port;
|
|
@@ -102,15 +105,17 @@ let NodeExpressServerManager = class NodeExpressServerManager {
|
|
|
102
105
|
};
|
|
103
106
|
NodeExpressServerManager = __decorate([
|
|
104
107
|
injectable(),
|
|
105
|
-
__param(0, inject(
|
|
106
|
-
__param(1, inject(
|
|
107
|
-
__param(2, inject(
|
|
108
|
-
__param(3, inject(
|
|
109
|
-
__param(4, inject(
|
|
110
|
-
__param(5, inject(
|
|
111
|
-
__param(6, inject(
|
|
112
|
-
__param(7, inject('
|
|
113
|
-
|
|
108
|
+
__param(0, inject(CustomerFacingErrorBuilder)),
|
|
109
|
+
__param(1, inject(EntrypointsBuilder)),
|
|
110
|
+
__param(2, inject('EnvironmentManager')),
|
|
111
|
+
__param(3, inject(HelmetMiddlewareBuilder)),
|
|
112
|
+
__param(4, inject('Logger')),
|
|
113
|
+
__param(5, inject(ServerRequestHandler)),
|
|
114
|
+
__param(6, inject(ServerSSLCertLoader)),
|
|
115
|
+
__param(7, inject('SettingsManager')),
|
|
116
|
+
__param(8, inject('UCManager')),
|
|
117
|
+
__metadata("design:paramtypes", [CustomerFacingErrorBuilder,
|
|
118
|
+
EntrypointsBuilder, Object, HelmetMiddlewareBuilder, Object, ServerRequestHandler,
|
|
114
119
|
ServerSSLCertLoader, Object, Object])
|
|
115
120
|
], NodeExpressServerManager);
|
|
116
121
|
export { NodeExpressServerManager };
|
|
@@ -3,6 +3,7 @@ import type { AppManifest } from '../../app/index.js';
|
|
|
3
3
|
import type { DirPath } from '../../dt/index.js';
|
|
4
4
|
import type { Configurable, EnvironmentManager, Logger, SettingsManager } from '../../std/index.js';
|
|
5
5
|
import type { UCDef, UCHTTPContract, UCInput, UCManager, UCOPIBase } from '../../uc/index.js';
|
|
6
|
+
import { CustomerFacingErrorBuilder } from '../lib/server/CustomerFacingErrorBuilder.js';
|
|
6
7
|
import { EntrypointsBuilder } from '../lib/server/EntrypointsBuilder.js';
|
|
7
8
|
import type { ServerManager } from '../lib/server/ServerManager.js';
|
|
8
9
|
import { ServerRequestHandler } from '../lib/server/ServerRequestHandler.js';
|
|
@@ -10,6 +11,7 @@ import { ServerSSLCertLoader } from '../lib/server/ServerSSLCertLoader.js';
|
|
|
10
11
|
import type { ListenSettings, StopSettings } from '../lib/server-node/types.js';
|
|
11
12
|
type S = ListenSettings & StopSettings;
|
|
12
13
|
export declare class NodeHonoServerManager implements Configurable<S>, ServerManager {
|
|
14
|
+
private customerFacingErrorBuilder;
|
|
13
15
|
private entrypointsBuilder;
|
|
14
16
|
protected environmentManager: EnvironmentManager;
|
|
15
17
|
private logger;
|
|
@@ -19,7 +21,7 @@ export declare class NodeHonoServerManager implements Configurable<S>, ServerMan
|
|
|
19
21
|
private ucManager;
|
|
20
22
|
protected runtime: Hono;
|
|
21
23
|
private server;
|
|
22
|
-
constructor(entrypointsBuilder: EntrypointsBuilder, environmentManager: EnvironmentManager, logger: Logger, serverRequestHandler: ServerRequestHandler, serverSSLCertLoader: ServerSSLCertLoader, settingsManager: SettingsManager<S>, ucManager: UCManager);
|
|
24
|
+
constructor(customerFacingErrorBuilder: CustomerFacingErrorBuilder, entrypointsBuilder: EntrypointsBuilder, environmentManager: EnvironmentManager, logger: Logger, serverRequestHandler: ServerRequestHandler, serverSSLCertLoader: ServerSSLCertLoader, settingsManager: SettingsManager<S>, ucManager: UCManager);
|
|
23
25
|
s(): S;
|
|
24
26
|
getRuntime(): Hono;
|
|
25
27
|
overrideUCManager(ucManager: UCManager): void;
|
|
@@ -16,12 +16,14 @@ import { createAdaptorServer } from '@hono/node-server';
|
|
|
16
16
|
import { serveStatic } from '@hono/node-server/serve-static';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import { NotCallableError } from '../../error/index.js';
|
|
19
|
+
import { CustomerFacingErrorBuilder } from '../lib/server/CustomerFacingErrorBuilder.js';
|
|
19
20
|
import { EntrypointsBuilder } from '../lib/server/EntrypointsBuilder.js';
|
|
20
21
|
import { ServerRequestHandler } from '../lib/server/ServerRequestHandler.js';
|
|
21
22
|
import { ServerSSLCertLoader } from '../lib/server/ServerSSLCertLoader.js';
|
|
22
23
|
import { buildHandler, init, mountHandler } from '../lib/server-hono/funcs.js';
|
|
23
24
|
import { listen, stop } from '../lib/server-node/funcs.js';
|
|
24
25
|
let NodeHonoServerManager = class NodeHonoServerManager {
|
|
26
|
+
customerFacingErrorBuilder;
|
|
25
27
|
entrypointsBuilder;
|
|
26
28
|
environmentManager;
|
|
27
29
|
logger;
|
|
@@ -31,7 +33,8 @@ let NodeHonoServerManager = class NodeHonoServerManager {
|
|
|
31
33
|
ucManager;
|
|
32
34
|
runtime;
|
|
33
35
|
server;
|
|
34
|
-
constructor(entrypointsBuilder, environmentManager, logger, serverRequestHandler, serverSSLCertLoader, settingsManager, ucManager) {
|
|
36
|
+
constructor(customerFacingErrorBuilder, entrypointsBuilder, environmentManager, logger, serverRequestHandler, serverSSLCertLoader, settingsManager, ucManager) {
|
|
37
|
+
this.customerFacingErrorBuilder = customerFacingErrorBuilder;
|
|
35
38
|
this.entrypointsBuilder = entrypointsBuilder;
|
|
36
39
|
this.environmentManager = environmentManager;
|
|
37
40
|
this.logger = logger;
|
|
@@ -57,7 +60,7 @@ let NodeHonoServerManager = class NodeHonoServerManager {
|
|
|
57
60
|
this.ucManager = ucManager;
|
|
58
61
|
}
|
|
59
62
|
async init() {
|
|
60
|
-
this.runtime = init();
|
|
63
|
+
this.runtime = init(this.customerFacingErrorBuilder);
|
|
61
64
|
await this.createServer();
|
|
62
65
|
}
|
|
63
66
|
initSync() {
|
|
@@ -106,14 +109,16 @@ let NodeHonoServerManager = class NodeHonoServerManager {
|
|
|
106
109
|
};
|
|
107
110
|
NodeHonoServerManager = __decorate([
|
|
108
111
|
injectable(),
|
|
109
|
-
__param(0, inject(
|
|
110
|
-
__param(1, inject(
|
|
111
|
-
__param(2, inject('
|
|
112
|
-
__param(3, inject(
|
|
113
|
-
__param(4, inject(
|
|
114
|
-
__param(5, inject(
|
|
115
|
-
__param(6, inject('
|
|
116
|
-
|
|
112
|
+
__param(0, inject(CustomerFacingErrorBuilder)),
|
|
113
|
+
__param(1, inject(EntrypointsBuilder)),
|
|
114
|
+
__param(2, inject('EnvironmentManager')),
|
|
115
|
+
__param(3, inject('Logger')),
|
|
116
|
+
__param(4, inject(ServerRequestHandler)),
|
|
117
|
+
__param(5, inject(ServerSSLCertLoader)),
|
|
118
|
+
__param(6, inject('SettingsManager')),
|
|
119
|
+
__param(7, inject('UCManager')),
|
|
120
|
+
__metadata("design:paramtypes", [CustomerFacingErrorBuilder,
|
|
121
|
+
EntrypointsBuilder, Object, Object, ServerRequestHandler,
|
|
117
122
|
ServerSSLCertLoader, Object, Object])
|
|
118
123
|
], NodeHonoServerManager);
|
|
119
124
|
export { NodeHonoServerManager };
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { WordingManager } from '../../i18n/index.js';
|
|
2
2
|
import { type ProductManifest, ProductUCsLoader } from '../../product/index.js';
|
|
3
|
+
import type { I18nManager } from '../../std/index.js';
|
|
3
4
|
import type { CLIManager, Input, Output } from '../lib/cli/CLIManager.js';
|
|
4
5
|
import { CommandExecutor } from '../lib/cli/CommandExecutor.js';
|
|
5
6
|
export declare class NodeStricliCLIManager implements CLIManager {
|
|
6
7
|
private commandExecutor;
|
|
8
|
+
private i18nManager;
|
|
7
9
|
private productManifest;
|
|
8
10
|
private productUCsLoader;
|
|
9
11
|
private wordingManager;
|
|
10
|
-
constructor(commandExecutor: CommandExecutor, productManifest: ProductManifest, productUCsLoader: ProductUCsLoader, wordingManager: WordingManager);
|
|
12
|
+
constructor(commandExecutor: CommandExecutor, i18nManager: I18nManager, productManifest: ProductManifest, productUCsLoader: ProductUCsLoader, wordingManager: WordingManager);
|
|
11
13
|
handleCommand({ appsRootPath, srcImporter, }: Input): Promise<Output>;
|
|
12
14
|
}
|
|
@@ -18,16 +18,19 @@ import { ucifHint, ucifIsMandatory, ucifRepeatability, ucMountingPoint, } from '
|
|
|
18
18
|
import { CommandExecutor } from '../lib/cli/CommandExecutor.js';
|
|
19
19
|
let NodeStricliCLIManager = class NodeStricliCLIManager {
|
|
20
20
|
commandExecutor;
|
|
21
|
+
i18nManager;
|
|
21
22
|
productManifest;
|
|
22
23
|
productUCsLoader;
|
|
23
24
|
wordingManager;
|
|
24
|
-
constructor(commandExecutor, productManifest, productUCsLoader, wordingManager) {
|
|
25
|
+
constructor(commandExecutor, i18nManager, productManifest, productUCsLoader, wordingManager) {
|
|
25
26
|
this.commandExecutor = commandExecutor;
|
|
27
|
+
this.i18nManager = i18nManager;
|
|
26
28
|
this.productManifest = productManifest;
|
|
27
29
|
this.productUCsLoader = productUCsLoader;
|
|
28
30
|
this.wordingManager = wordingManager;
|
|
29
31
|
}
|
|
30
32
|
async handleCommand({ appsRootPath, srcImporter, }) {
|
|
33
|
+
await this.i18nManager.init();
|
|
31
34
|
const ucs = await this.productUCsLoader.exec({
|
|
32
35
|
appsRootPath,
|
|
33
36
|
srcImporter,
|
|
@@ -109,10 +112,11 @@ let NodeStricliCLIManager = class NodeStricliCLIManager {
|
|
|
109
112
|
NodeStricliCLIManager = __decorate([
|
|
110
113
|
injectable(),
|
|
111
114
|
__param(0, inject(CommandExecutor)),
|
|
112
|
-
__param(1, inject('
|
|
113
|
-
__param(2, inject(
|
|
114
|
-
__param(3, inject(
|
|
115
|
-
|
|
115
|
+
__param(1, inject('I18nManager')),
|
|
116
|
+
__param(2, inject('ProductManifest')),
|
|
117
|
+
__param(3, inject(ProductUCsLoader)),
|
|
118
|
+
__param(4, inject(WordingManager)),
|
|
119
|
+
__metadata("design:paramtypes", [CommandExecutor, Object, Object, ProductUCsLoader,
|
|
116
120
|
WordingManager])
|
|
117
121
|
], NodeStricliCLIManager);
|
|
118
122
|
export { NodeStricliCLIManager };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AppTesterConfigurator, AppTesterConfiguratorAuthSettersConfig, AppTesterConfiguratorInputFillers, AppTesterConfiguratorSideEffects, AppTesterConfiguratorSpecificAssertions } from '../AppTesterConfigurator.js';
|
|
2
|
+
import type { AppTesterCtx } from '../ctx.js';
|
|
3
|
+
import type { AppTesterFlow } from '../flow.js';
|
|
4
|
+
export declare class NodeAppTesterConfigurator implements AppTesterConfigurator {
|
|
5
|
+
authSettersConfig(): Promise<AppTesterConfiguratorAuthSettersConfig | undefined>;
|
|
6
|
+
bindImplementations(ctx: AppTesterCtx): Promise<void>;
|
|
7
|
+
clearExecution(ctx: AppTesterCtx): Promise<void>;
|
|
8
|
+
flows(): Promise<AppTesterFlow[]>;
|
|
9
|
+
inputFillers(): Promise<AppTesterConfiguratorInputFillers | undefined>;
|
|
10
|
+
opts(): Promise<AppTesterCtx['opts']>;
|
|
11
|
+
seed(_ctx: AppTesterCtx): Promise<void>;
|
|
12
|
+
sideEffects(_ctx: AppTesterCtx): Promise<AppTesterConfiguratorSideEffects | undefined>;
|
|
13
|
+
specificAssertions(): Promise<AppTesterConfiguratorSpecificAssertions | undefined>;
|
|
14
|
+
updateSettings<S>(ctx: AppTesterCtx, settings: S): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { PRODUCT_NAME_PLACEHOLDER } from '../../convention.js';
|
|
2
|
+
import { FakeClockManager } from '../../std/impl/FakeClockManager.js';
|
|
3
|
+
import { FakeFSManager } from '../../std/impl/FakeFSManager.js';
|
|
4
|
+
import { FakeHTTPAPICallExecutor } from '../../std/impl/FakeHTTPAPICallExecutor.js';
|
|
5
|
+
import { NodeDeterministicCryptoManager } from '../../std/impl/NodeDeterministicCryptoManager.js';
|
|
6
|
+
import { SimpleFormDataBuilder } from '../../std/impl/SimpleFormDataBuilder.js';
|
|
7
|
+
import { bindCommon } from '../../utils/ioc/bindCommon.js';
|
|
8
|
+
import { bindNodeCore } from '../../utils/ioc/bindNodeCore.js';
|
|
9
|
+
import { bindServer } from '../../utils/ioc/bindServer.js';
|
|
10
|
+
export class NodeAppTesterConfigurator {
|
|
11
|
+
async authSettersConfig() {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
async bindImplementations(ctx) {
|
|
15
|
+
const { container } = ctx;
|
|
16
|
+
bindCommon(container);
|
|
17
|
+
bindNodeCore(container);
|
|
18
|
+
bindServer(container);
|
|
19
|
+
(await container.rebind('ProductManifest')).toConstantValue({
|
|
20
|
+
appReg: [{ name: ctx.appManifest.name }],
|
|
21
|
+
name: PRODUCT_NAME_PLACEHOLDER,
|
|
22
|
+
});
|
|
23
|
+
(await container.rebind('ClockManager')).to(FakeClockManager);
|
|
24
|
+
(await container.rebind('CryptoManager'))
|
|
25
|
+
.to(NodeDeterministicCryptoManager)
|
|
26
|
+
.inSingletonScope();
|
|
27
|
+
(await container.rebind('FSManager'))
|
|
28
|
+
.to(FakeFSManager)
|
|
29
|
+
.inSingletonScope();
|
|
30
|
+
(await container.rebind('FormDataBuilder')).to(SimpleFormDataBuilder);
|
|
31
|
+
(await container.rebind('HTTPAPICallExecutor'))
|
|
32
|
+
.to(FakeHTTPAPICallExecutor)
|
|
33
|
+
.inSingletonScope();
|
|
34
|
+
}
|
|
35
|
+
async clearExecution(ctx) {
|
|
36
|
+
const { container } = ctx;
|
|
37
|
+
await container.get('CryptoManager').clear();
|
|
38
|
+
await container.get('EmailManager').clear();
|
|
39
|
+
await container.get('JobManager').clear();
|
|
40
|
+
await container.get('UCDataStore').clear();
|
|
41
|
+
}
|
|
42
|
+
async flows() {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
async inputFillers() {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
async opts() {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
async seed(_ctx) {
|
|
52
|
+
// Nothing to do
|
|
53
|
+
}
|
|
54
|
+
async sideEffects(_ctx) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
async specificAssertions() {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
async updateSettings(ctx, settings) {
|
|
61
|
+
const { container } = ctx;
|
|
62
|
+
const current = container.get('Settings');
|
|
63
|
+
(await container.rebind('Settings')).toConstantValue({
|
|
64
|
+
...current,
|
|
65
|
+
...settings,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -4,4 +4,6 @@ export declare class VitestAppTestSuiteEmitter implements AppTestSuiteEmitter {
|
|
|
4
4
|
private fsManager;
|
|
5
5
|
constructor(fsManager: FSManager);
|
|
6
6
|
exec({ appPath, depsMapping, idx, monkeyTestingTimeoutInMs, serverPortRangeStart, }: Input): Promise<Output>;
|
|
7
|
+
private createConfiguratorIfNotExists;
|
|
8
|
+
private mapDeps;
|
|
7
9
|
}
|
|
@@ -11,7 +11,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
13
|
import { inject, injectable } from 'inversify';
|
|
14
|
-
import { APP_I18N_NAME, APP_INDEX_NAME, APP_MANIFEST_NAME, APP_TEST_DIR_NAME, APP_TEST_MAIN_FILE_NAME, } from '../../convention.js';
|
|
14
|
+
import { APP_I18N_NAME, APP_INDEX_NAME, APP_MANIFEST_NAME, APP_TEST_CONFIGURATOR_FILE_NAME, APP_TEST_CONFIGURATOR_NAME, APP_TEST_DIR_NAME, APP_TEST_MAIN_FILE_NAME, } from '../../convention.js';
|
|
15
15
|
let VitestAppTestSuiteEmitter = class VitestAppTestSuiteEmitter {
|
|
16
16
|
fsManager;
|
|
17
17
|
constructor(fsManager) {
|
|
@@ -21,16 +21,29 @@ let VitestAppTestSuiteEmitter = class VitestAppTestSuiteEmitter {
|
|
|
21
21
|
const testPath = this.fsManager.path(appPath, APP_TEST_DIR_NAME);
|
|
22
22
|
// Since we're using 'recursive: true', there will be no error if the directory already exists
|
|
23
23
|
await this.fsManager.mkdir(testPath, { recursive: true });
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
depsMapping
|
|
27
|
-
|
|
28
|
-
});
|
|
29
|
-
await this.fsManager.touch(outPath, tpl);
|
|
24
|
+
await this.createConfiguratorIfNotExists(testPath, depsMapping);
|
|
25
|
+
const testFilePath = this.fsManager.path(testPath, APP_TEST_MAIN_FILE_NAME);
|
|
26
|
+
const tpl = this.mapDeps(depsMapping, template(serverPortRangeStart, idx, monkeyTestingTimeoutInMs));
|
|
27
|
+
await this.fsManager.touch(testFilePath, tpl);
|
|
30
28
|
return {
|
|
31
|
-
outPath,
|
|
29
|
+
outPath: testFilePath,
|
|
32
30
|
};
|
|
33
31
|
}
|
|
32
|
+
async createConfiguratorIfNotExists(testPath, depsMapping) {
|
|
33
|
+
const filePath = this.fsManager.path(testPath, APP_TEST_CONFIGURATOR_FILE_NAME);
|
|
34
|
+
if (await this.fsManager.exists(filePath)) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const tpl = this.mapDeps(depsMapping, CONFIGURATOR_TS);
|
|
38
|
+
await this.fsManager.touch(filePath, tpl);
|
|
39
|
+
}
|
|
40
|
+
mapDeps(depsMapping, tpl) {
|
|
41
|
+
let res = tpl;
|
|
42
|
+
depsMapping?.forEach((to, from) => {
|
|
43
|
+
res = res.replaceAll(`from '${from}'`, `from '${to}'`);
|
|
44
|
+
});
|
|
45
|
+
return res;
|
|
46
|
+
}
|
|
34
47
|
};
|
|
35
48
|
VitestAppTestSuiteEmitter = __decorate([
|
|
36
49
|
injectable(),
|
|
@@ -38,6 +51,10 @@ VitestAppTestSuiteEmitter = __decorate([
|
|
|
38
51
|
__metadata("design:paramtypes", [Object])
|
|
39
52
|
], VitestAppTestSuiteEmitter);
|
|
40
53
|
export { VitestAppTestSuiteEmitter };
|
|
54
|
+
const CONFIGURATOR_TS = `import { NodeAppTesterConfigurator } from 'libmodulor/node-test';
|
|
55
|
+
|
|
56
|
+
export class ${APP_TEST_CONFIGURATOR_NAME} extends NodeAppTesterConfigurator {}
|
|
57
|
+
`;
|
|
41
58
|
// For now, we can have it here. When it becomes harder to maintain, we can introduce some kind of template engine.
|
|
42
59
|
// Be aware that this will introduce complexities on building the lib.
|
|
43
60
|
// We'll need to include these templates in the build and make them accessible via package.json "exports" or any other mechanism.
|
|
@@ -72,10 +89,10 @@ import {
|
|
|
72
89
|
import { newNodeAppTester } from 'libmodulor/node-test';
|
|
73
90
|
import { afterAll, afterEach, beforeAll, describe, expect, test } from 'vitest';
|
|
74
91
|
|
|
75
|
-
import {
|
|
92
|
+
import { ${APP_TEST_CONFIGURATOR_NAME} } from './${APP_TEST_CONFIGURATOR_NAME}.js';
|
|
76
93
|
|
|
77
94
|
const appPath = join(import.meta.dirname, '..');
|
|
78
|
-
const configurator = new
|
|
95
|
+
const configurator = new ${APP_TEST_CONFIGURATOR_NAME}();
|
|
79
96
|
const runner = await newNodeAppTester(${serverPortRangeStart}, ${idx}, {
|
|
80
97
|
appPath,
|
|
81
98
|
configurator,
|
|
@@ -5,7 +5,7 @@ import { TARGET_DEFAULT_SERVER_MANAGER_SETTINGS } from '../../target/lib/server/
|
|
|
5
5
|
import { NodeExpressServerManager } from '../../target/node-express-server/NodeExpressServerManager.js';
|
|
6
6
|
import { FAKE_USER_ADMIN, FAKE_USER_REGULAR } from '../../uc/index.js';
|
|
7
7
|
import { CONTAINER_OPTS } from '../../utils/index.js';
|
|
8
|
-
import { bindCommon } from '../../utils/ioc/bindCommon.js';
|
|
8
|
+
import { bindCommon, updateSettings } from '../../utils/ioc/bindCommon.js';
|
|
9
9
|
import { bindNodeCore } from '../../utils/ioc/bindNodeCore.js';
|
|
10
10
|
import { bindServer } from '../../utils/ioc/bindServer.js';
|
|
11
11
|
import { AppTester } from '../AppTester.js';
|
|
@@ -18,8 +18,6 @@ export async function newNodeAppTester(serverPortRangeStart, idx, args) {
|
|
|
18
18
|
const settings = {
|
|
19
19
|
...STD_DEFAULT_JWT_MANAGER_SETTINGS,
|
|
20
20
|
...TARGET_DEFAULT_SERVER_MANAGER_SETTINGS,
|
|
21
|
-
jwt_manager_audience: 'libmodulor-test',
|
|
22
|
-
jwt_manager_issuer: 'libmodulor-test',
|
|
23
21
|
jwt_manager_secret: new TPassword().example(),
|
|
24
22
|
logger_level,
|
|
25
23
|
server_basic_auth_entries: {
|
|
@@ -31,7 +29,8 @@ export async function newNodeAppTester(serverPortRangeStart, idx, args) {
|
|
|
31
29
|
server_stop_mode: 'aggressive',
|
|
32
30
|
};
|
|
33
31
|
const container = new Container(CONTAINER_OPTS);
|
|
34
|
-
bindCommon(container
|
|
32
|
+
bindCommon(container);
|
|
33
|
+
updateSettings(container, settings);
|
|
35
34
|
bindNodeCore(container);
|
|
36
35
|
bindServer(container);
|
|
37
36
|
container.bind('AppDocsEmitter').to(SimpleAppDocsEmitter);
|
|
@@ -43,7 +43,7 @@ export type AppTesterOpts = Partial<Pick<LoggerSettings, 'logger_level'>> & {
|
|
|
43
43
|
*/
|
|
44
44
|
aliasPrefix?: AppTesterOptsAliasPrefix;
|
|
45
45
|
/**
|
|
46
|
-
* @defaultValue ['
|
|
46
|
+
* @defaultValue ['libmodulor', 'inversify']
|
|
47
47
|
*/
|
|
48
48
|
allowed?: AppTesterOptsImportsList;
|
|
49
49
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Container } from 'inversify';
|
|
2
|
-
import { type LoggerSettings
|
|
2
|
+
import { type LoggerSettings } from '../../std/index.js';
|
|
3
3
|
import { type UCSettings } from '../../uc/index.js';
|
|
4
|
-
export type
|
|
5
|
-
export
|
|
6
|
-
export declare function
|
|
4
|
+
export type S = LoggerSettings & UCSettings;
|
|
5
|
+
export declare function bindCommon(container: Container): void;
|
|
6
|
+
export declare function updateSettings<SOverride>(container: Container, settings: Partial<S & SOverride>): void;
|
|
@@ -17,22 +17,17 @@ import { SimpleUCManager } from '../../uc/impl/SimpleUCManager.js';
|
|
|
17
17
|
import { StaticUCClientConfirmManager } from '../../uc/impl/StaticUCClientConfirmManager.js';
|
|
18
18
|
import { UC_DEFAULT_SETTINGS, } from '../../uc/index.js';
|
|
19
19
|
import { bindProvider } from './bindProvider.js';
|
|
20
|
-
export function bindCommon(container
|
|
21
|
-
|
|
20
|
+
export function bindCommon(container) {
|
|
21
|
+
// settings
|
|
22
|
+
container.bind('Settings').toConstantValue({
|
|
22
23
|
...STD_DEFAULT_LOGGER_SETTINGS,
|
|
23
24
|
...UC_DEFAULT_SETTINGS,
|
|
24
|
-
};
|
|
25
|
-
const settings = {
|
|
26
|
-
...commonSettings,
|
|
27
|
-
...settingsFunc?.(commonSettings),
|
|
28
|
-
};
|
|
25
|
+
});
|
|
29
26
|
// product
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
});
|
|
35
|
-
}
|
|
27
|
+
container.bind('ProductManifest').toConstantValue({
|
|
28
|
+
appReg: [{ name: APP_NAME_PLACEHOLDER }],
|
|
29
|
+
name: PRODUCT_NAME_PLACEHOLDER,
|
|
30
|
+
});
|
|
36
31
|
// std
|
|
37
32
|
container.bind('ClockManager').to(StdDateClockManager);
|
|
38
33
|
container
|
|
@@ -51,10 +46,10 @@ export function bindCommon(container, settingsFunc) {
|
|
|
51
46
|
.inSingletonScope();
|
|
52
47
|
container.bind('I18n').toConstantValue({ en: {} });
|
|
53
48
|
container.bind('Logger').to(ConsoleLogger);
|
|
54
|
-
container.bind('Settings').toConstantValue(settings);
|
|
55
49
|
container
|
|
56
50
|
.bind('SettingsManager')
|
|
57
|
-
.to(StaticSettingsManager)
|
|
51
|
+
.to(StaticSettingsManager)
|
|
52
|
+
.inSingletonScope();
|
|
58
53
|
container
|
|
59
54
|
.bind('ServerClientManager')
|
|
60
55
|
.to(SettingsServerClientManager);
|
|
@@ -73,3 +68,10 @@ export function bindCommon(container, settingsFunc) {
|
|
|
73
68
|
container.bind('UCManager').to(SimpleUCManager).inRequestScope();
|
|
74
69
|
container.bind('UCTransporter').to(HTTPUCTransporter);
|
|
75
70
|
}
|
|
71
|
+
export function updateSettings(container, settings) {
|
|
72
|
+
const current = container.get('Settings');
|
|
73
|
+
container.rebindSync('Settings').toConstantValue({
|
|
74
|
+
...current,
|
|
75
|
+
...settings,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EnvSettingsManager } from '../../std/impl/EnvSettingsManager.js';
|
|
1
2
|
import { NodeBufferManager } from '../../std/impl/NodeBufferManager.js';
|
|
2
3
|
import { NodeCryptoManager } from '../../std/impl/NodeCryptoManager.js';
|
|
3
4
|
import { NodeEnvironmentManager } from '../../std/impl/NodeEnvironmentManager.js';
|
|
@@ -14,4 +15,8 @@ export function bindNodeCore(container) {
|
|
|
14
15
|
container
|
|
15
16
|
.rebindSync('FormDataBuilder')
|
|
16
17
|
.to(NodeFormDataBuilder);
|
|
18
|
+
container
|
|
19
|
+
.rebindSync('SettingsManager')
|
|
20
|
+
.to(EnvSettingsManager)
|
|
21
|
+
.inSingletonScope();
|
|
17
22
|
}
|
|
@@ -3,7 +3,13 @@ import { FakeJobManager } from '../../std/impl/FakeJobManager.js';
|
|
|
3
3
|
import { JoseJWTManager } from '../../std/impl/JoseJWTManager.js';
|
|
4
4
|
export function bindServer(container) {
|
|
5
5
|
// std
|
|
6
|
-
container
|
|
6
|
+
container
|
|
7
|
+
.bind('EmailManager')
|
|
8
|
+
.to(FakeEmailManager)
|
|
9
|
+
.inSingletonScope();
|
|
7
10
|
container.bind('JWTManager').to(JoseJWTManager);
|
|
8
|
-
container
|
|
11
|
+
container
|
|
12
|
+
.bind('JobManager')
|
|
13
|
+
.to(FakeJobManager)
|
|
14
|
+
.inSingletonScope();
|
|
9
15
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "libmodulor",
|
|
3
3
|
"description": "A TypeScript library to create platform-agnostic applications",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.27.0",
|
|
5
5
|
"license": "LGPL-3.0",
|
|
6
6
|
"author": "Chafik H'nini <chafik.hnini@gmail.com>",
|
|
7
7
|
"homepage": "https://libmodulor.c100k.eu",
|
|
@@ -90,42 +90,43 @@
|
|
|
90
90
|
"import": "./dist/esm/index.webpack.js"
|
|
91
91
|
}
|
|
92
92
|
},
|
|
93
|
-
"bin": "./dist/esm/products/Helper/index.js",
|
|
93
|
+
"bin": "./dist/esm/products/Helper/targets/node-core-cli/index.js",
|
|
94
94
|
"scripts": {
|
|
95
95
|
"lint": "biome check --write .",
|
|
96
|
-
"lint:ci": "biome check"
|
|
96
|
+
"lint:ci": "biome check",
|
|
97
|
+
"test": "tsc && vitest run"
|
|
97
98
|
},
|
|
98
99
|
"devDependencies": {
|
|
99
|
-
"@biomejs/biome": "^2.3.
|
|
100
|
+
"@biomejs/biome": "^2.3.14",
|
|
100
101
|
"@react-native-community/slider": "^4.5.7",
|
|
101
|
-
"@types/react": "^19.2.
|
|
102
|
+
"@types/react": "^19.2.11",
|
|
102
103
|
"@types/react-dom": "^19.2.3",
|
|
103
104
|
"babel-plugin-parameter-decorator": "^1.0.16",
|
|
104
105
|
"babel-plugin-transform-typescript-metadata": "^0.3.2",
|
|
105
|
-
"expo": "
|
|
106
|
+
"expo": "55.0.0-preview.9",
|
|
106
107
|
"expo-document-picker": "~14.0.8",
|
|
107
108
|
"expo-image-picker": "^17.0.10",
|
|
108
|
-
"wrangler": "^4.
|
|
109
|
+
"wrangler": "^4.62.0"
|
|
109
110
|
},
|
|
110
111
|
"peerDependencies": {
|
|
111
|
-
"@hono/node-server": "^1.19.
|
|
112
|
-
"@modelcontextprotocol/sdk": "^1.25.
|
|
113
|
-
"@stricli/core": "^1.2.
|
|
112
|
+
"@hono/node-server": "^1.19.9",
|
|
113
|
+
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
114
|
+
"@stricli/core": "^1.2.5",
|
|
114
115
|
"buffer": "^6.0.3",
|
|
115
116
|
"cookie-parser": "^1.4.7",
|
|
116
117
|
"express": "^5.2.1",
|
|
117
118
|
"express-fileupload": "^1.5.2",
|
|
118
|
-
"fast-check": "^4.
|
|
119
|
+
"fast-check": "^4.5.3",
|
|
119
120
|
"helmet": "^8.1.0",
|
|
120
|
-
"hono": "^4.11.
|
|
121
|
-
"inversify": "^7.
|
|
121
|
+
"hono": "^4.11.7",
|
|
122
|
+
"inversify": "^7.11.0",
|
|
122
123
|
"jose": "^6.1.3",
|
|
123
124
|
"knex": "^3.1.0",
|
|
124
|
-
"next": "^15.5.
|
|
125
|
-
"pg": "^8.
|
|
126
|
-
"react": "^19.2.
|
|
127
|
-
"react-dom": "^19.2.
|
|
128
|
-
"react-native": "^0.
|
|
125
|
+
"next": "^15.5.12",
|
|
126
|
+
"pg": "^8.18.0",
|
|
127
|
+
"react": "^19.2.4",
|
|
128
|
+
"react-dom": "^19.2.4",
|
|
129
|
+
"react-native": "^0.83.1",
|
|
129
130
|
"reflect-metadata": "^0.2.2",
|
|
130
131
|
"sqlite3": "^5.1.7",
|
|
131
132
|
"typescript": "^5.9.3",
|
package/pnpm-workspace.yaml
DELETED
package/tsconfig.json
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"allowJs": true,
|
|
4
|
-
"allowSyntheticDefaultImports": true,
|
|
5
|
-
"allowUnreachableCode": false,
|
|
6
|
-
"allowUnusedLabels": false,
|
|
7
|
-
"declaration": true,
|
|
8
|
-
"emitDecoratorMetadata": true,
|
|
9
|
-
"exactOptionalPropertyTypes": true,
|
|
10
|
-
"experimentalDecorators": true,
|
|
11
|
-
"jsx": "react-jsx",
|
|
12
|
-
"lib": ["dom", "dom.iterable", "esnext"],
|
|
13
|
-
"module": "NodeNext",
|
|
14
|
-
"moduleResolution": "NodeNext",
|
|
15
|
-
"noEmit": true,
|
|
16
|
-
"noFallthroughCasesInSwitch": true,
|
|
17
|
-
"noImplicitOverride": true,
|
|
18
|
-
"noImplicitReturns": true,
|
|
19
|
-
"noPropertyAccessFromIndexSignature": true,
|
|
20
|
-
"noUncheckedIndexedAccess": true,
|
|
21
|
-
"noUnusedLocals": true,
|
|
22
|
-
"noUnusedParameters": true,
|
|
23
|
-
"skipLibCheck": true,
|
|
24
|
-
"sourceMap": true,
|
|
25
|
-
"strict": true,
|
|
26
|
-
"target": "ESNext",
|
|
27
|
-
"verbatimModuleSyntax": true
|
|
28
|
-
},
|
|
29
|
-
"exclude": [
|
|
30
|
-
"dist",
|
|
31
|
-
"dist-examples",
|
|
32
|
-
"examples/**/dist",
|
|
33
|
-
"examples/**/node_modules",
|
|
34
|
-
"node_modules"
|
|
35
|
-
]
|
|
36
|
-
}
|
package/vitest.config.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { loadEnv } from 'vite';
|
|
2
|
-
import { defineConfig } from 'vitest/config';
|
|
3
|
-
|
|
4
|
-
export default defineConfig(({ mode }) => ({
|
|
5
|
-
test: {
|
|
6
|
-
coverage: {
|
|
7
|
-
exclude: ['src/apps/**/test', 'src/**/*.test.ts'],
|
|
8
|
-
include: ['src'],
|
|
9
|
-
reporter: ['html', 'lcov', 'text'],
|
|
10
|
-
reportOnFailure: false,
|
|
11
|
-
},
|
|
12
|
-
env: loadEnv(mode, process.cwd(), ''),
|
|
13
|
-
exclude: ['**/node_modules/**', '**/dist/**', '**/dist-examples/**'],
|
|
14
|
-
reporters: ['verbose'],
|
|
15
|
-
},
|
|
16
|
-
}));
|