libmodulor 0.27.0 → 0.29.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 +39 -0
- package/README.md +2 -2
- package/dist/esm/apps/Helper/src/i18n.js +4 -4
- package/dist/esm/apps/Helper/src/lib/layers/project.js +6 -6
- package/dist/esm/apps/Helper/src/ucds/CreateAppUCD.js +5 -10
- package/dist/esm/apps/Helper/src/ucds/CreateProductUCD.js +5 -10
- package/dist/esm/apps/Helper/src/ucds/CreateTargetUCD.js +6 -11
- package/dist/esm/apps/Helper/src/ucds/TestAppUCD.js +5 -8
- package/dist/esm/dt/DataType.d.ts +2 -1
- package/dist/esm/dt/DataTypes.d.ts +1 -1
- package/dist/esm/dt/DataTypes.js +1 -0
- package/dist/esm/dt/base/TBase.d.ts +2 -0
- package/dist/esm/dt/base/TBase.js +5 -0
- package/dist/esm/dt/base/TBoolean.d.ts +2 -0
- package/dist/esm/dt/base/TBoolean.js +3 -0
- package/dist/esm/dt/base/TInt.d.ts +2 -0
- package/dist/esm/dt/base/TInt.js +3 -0
- package/dist/esm/dt/base/TNumber.d.ts +2 -0
- package/dist/esm/dt/base/TNumber.js +3 -0
- package/dist/esm/dt/base/TObject.d.ts +2 -0
- package/dist/esm/dt/base/TObject.js +29 -0
- package/dist/esm/dt/final/TApiKey.d.ts +2 -0
- package/dist/esm/dt/final/TApiKey.js +3 -0
- package/dist/esm/dt/final/TDateISO8601.d.ts +2 -0
- package/dist/esm/dt/final/TDateISO8601.js +3 -0
- package/dist/esm/dt/final/TDomainName.d.ts +2 -0
- package/dist/esm/dt/final/TDomainName.js +3 -0
- package/dist/esm/dt/final/TEmail.d.ts +2 -0
- package/dist/esm/dt/final/TEmail.js +3 -0
- package/dist/esm/dt/final/TEncryptionKey.d.ts +2 -0
- package/dist/esm/dt/final/TEncryptionKey.js +3 -0
- package/dist/esm/dt/final/TErrorCode.d.ts +7 -0
- package/dist/esm/dt/final/TErrorCode.js +9 -0
- package/dist/esm/dt/final/TFile.d.ts +2 -0
- package/dist/esm/dt/final/TFile.js +3 -0
- package/dist/esm/dt/final/TIPv4.d.ts +2 -0
- package/dist/esm/dt/final/TIPv4.js +3 -0
- package/dist/esm/dt/final/TIPv6.d.ts +2 -0
- package/dist/esm/dt/final/TIPv6.js +3 -0
- package/dist/esm/dt/final/TJWT.d.ts +2 -0
- package/dist/esm/dt/final/TJWT.js +3 -0
- package/dist/esm/dt/final/TPassword.d.ts +2 -0
- package/dist/esm/dt/final/TPassword.js +3 -0
- package/dist/esm/dt/final/TSSHPrivateKey.d.ts +2 -0
- package/dist/esm/dt/final/TSSHPrivateKey.js +3 -0
- package/dist/esm/dt/final/TTime.d.ts +2 -0
- package/dist/esm/dt/final/TTime.js +3 -0
- package/dist/esm/dt/final/TURL.d.ts +2 -0
- package/dist/esm/dt/final/TURL.js +3 -0
- package/dist/esm/dt/index.d.ts +2 -0
- package/dist/esm/dt/index.js +1 -0
- package/dist/esm/dt/targets/json-schema.d.ts +24 -0
- package/dist/esm/error/CustomError.d.ts +1 -1
- package/dist/esm/error/CustomError.js +2 -2
- package/dist/esm/error/ForbiddenAsNotFoundError.js +1 -1
- package/dist/esm/error/ForbiddenError.js +1 -1
- package/dist/esm/error/IllegalArgumentError.js +2 -2
- package/dist/esm/error/InternalServerError.js +1 -1
- package/dist/esm/error/NotFoundError.js +1 -1
- package/dist/esm/error/UnauthorizedError.js +1 -1
- package/dist/esm/error/UnavailableError.d.ts +6 -0
- package/dist/esm/error/UnavailableError.js +9 -0
- package/dist/esm/error/funcs.d.ts +3 -0
- package/dist/esm/error/funcs.js +3 -1
- package/dist/esm/error/index.d.ts +2 -1
- package/dist/esm/error/index.js +2 -1
- package/dist/esm/i18n/locales/de.js +8 -0
- package/dist/esm/i18n/locales/en.js +8 -0
- package/dist/esm/i18n/locales/es.js +8 -0
- package/dist/esm/i18n/locales/fr.js +8 -0
- package/dist/esm/i18n/types.d.ts +1 -1
- package/dist/esm/product/manifest.d.ts +2 -0
- package/dist/esm/products/Helper/i18n.d.ts +8 -0
- package/dist/esm/std/impl/SimpleHTTPAPICaller.js +1 -1
- package/dist/esm/std/impl/SimpleMapI18nManager.d.ts +1 -1
- package/dist/esm/std/impl/SimpleMapI18nManager.js +4 -2
- package/dist/esm/target/edge-worker-hono-server/SyncEdgeWorkerHonoServerManager.d.ts +6 -2
- package/dist/esm/target/edge-worker-hono-server/SyncEdgeWorkerHonoServerManager.js +17 -9
- package/dist/esm/target/index.d.ts +1 -0
- package/dist/esm/target/lib/cli/CommandExecutor.js +2 -2
- package/dist/esm/target/lib/cli/renderer.d.ts +2 -1
- package/dist/esm/target/lib/cli/renderer.js +10 -11
- package/dist/esm/target/lib/openapi/OpenAPISpecBuilder.d.ts +25 -0
- package/dist/esm/target/lib/openapi/OpenAPISpecBuilder.js +131 -0
- package/dist/esm/target/lib/openapi/consts.d.ts +2 -0
- package/dist/esm/target/lib/openapi/consts.js +1 -0
- package/dist/esm/target/lib/openapi/funcs.d.ts +16 -0
- package/dist/esm/target/lib/openapi/funcs.js +249 -0
- package/dist/esm/target/lib/openapi/input.d.ts +16 -0
- package/dist/esm/target/lib/openapi/input.js +33 -0
- package/dist/esm/target/lib/openapi/types.d.ts +109 -0
- package/dist/esm/target/lib/rn/input.d.ts +3 -0
- package/dist/esm/target/lib/server/AuthCookieCreator.d.ts +2 -1
- package/dist/esm/target/lib/server/AuthenticationChecker.d.ts +3 -3
- package/dist/esm/target/lib/server/AuthenticationChecker.js +5 -5
- package/dist/esm/target/lib/server/ServerBooter.d.ts +4 -2
- package/dist/esm/target/lib/server/ServerBooter.js +34 -11
- package/dist/esm/target/lib/server/ServerManager.d.ts +19 -9
- package/dist/esm/target/lib/server/ServerRequestHandler.d.ts +0 -1
- package/dist/esm/target/lib/server/ServerRequestHandler.js +2 -2
- package/dist/esm/target/lib/server/consts.d.ts +4 -0
- package/dist/esm/target/lib/server/consts.js +22 -0
- package/dist/esm/target/lib/server-express/CORSMiddlewareBuilder.d.ts +15 -0
- package/dist/esm/target/lib/server-express/CORSMiddlewareBuilder.js +55 -0
- package/dist/esm/target/lib/server-express/funcs.d.ts +2 -1
- package/dist/esm/target/lib/server-express/funcs.js +7 -2
- package/dist/esm/target/lib/server-hono/CORSMiddlewareBuilder.d.ts +14 -0
- package/dist/esm/target/{node-express-server/middlewares/PublicApiKeyCheckerMiddlewareBuilder.js → lib/server-hono/CORSMiddlewareBuilder.js} +22 -20
- package/dist/esm/target/lib/server-hono/funcs.d.ts +2 -1
- package/dist/esm/target/lib/server-hono/funcs.js +2 -1
- package/dist/esm/target/lib/shared.d.ts +4 -0
- package/dist/esm/target/lib/shared.js +2 -1
- package/dist/esm/target/nextjs-server/NextJSServerManager.d.ts +3 -1
- package/dist/esm/target/nextjs-server/NextJSServerManager.js +3 -0
- package/dist/esm/target/node-core-cli/NodeCoreCLIManager.js +1 -1
- package/dist/esm/target/node-express-server/NodeExpressServerManager.d.ts +7 -3
- package/dist/esm/target/node-express-server/NodeExpressServerManager.js +24 -14
- package/dist/esm/target/node-hono-server/NodeHonoServerManager.d.ts +6 -2
- package/dist/esm/target/node-hono-server/NodeHonoServerManager.js +21 -11
- package/dist/esm/target/node-mcp-server/NodeLocalStdioMCPServerManager.d.ts +3 -1
- package/dist/esm/target/node-mcp-server/NodeLocalStdioMCPServerManager.js +19 -14
- package/dist/esm/target/node-mcp-server/types.d.ts +0 -4
- package/dist/esm/target/react-web-pure/UCForm.d.ts +1 -1
- package/dist/esm/target/react-web-pure/UCForm.js +3 -2
- package/dist/esm/testing/workers/checkers/AppI18nChecker.js +4 -2
- package/dist/esm/uc/UC.d.ts +2 -0
- package/dist/esm/uc/UC.js +16 -1
- package/dist/esm/uc/data-store.d.ts +9 -1
- package/dist/esm/uc/data-store.js +33 -1
- package/dist/esm/uc/impl/CloudflareD1UCDataStore.d.ts +2 -2
- package/dist/esm/uc/impl/CloudflareD1UCDataStore.js +7 -0
- package/dist/esm/uc/impl/InMemoryUCDataStore.d.ts +8 -3
- package/dist/esm/uc/impl/InMemoryUCDataStore.js +19 -3
- package/dist/esm/uc/impl/KnexUCDataStore.d.ts +2 -2
- package/dist/esm/uc/impl/KnexUCDataStore.js +10 -2
- package/dist/esm/uc/impl/SimpleUCManager.d.ts +4 -4
- package/dist/esm/uc/impl/SimpleUCManager.js +10 -10
- package/dist/esm/uc/metadata.d.ts +7 -0
- package/dist/esm/uc/metadata.js +10 -0
- package/dist/esm/uc/output-field.d.ts +1 -0
- package/dist/esm/uc/output-field.js +13 -1
- package/dist/esm/uc/settings/consts.js +1 -0
- package/dist/esm/uc/settings.d.ts +8 -1
- package/dist/esm/uc/utils/ucHTTPContract.js +1 -1
- package/dist/esm/uc/workers/UCExecChecker.d.ts +3 -3
- package/dist/esm/uc/workers/UCExecChecker.js +5 -5
- package/dist/esm/utils/http/types.d.ts +5 -0
- package/dist/esm/utils/index.d.ts +2 -2
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/utils/ioc/bindCommon.js +4 -4
- package/dist/esm/utils/ioc/bindFactory.d.ts +2 -0
- package/dist/esm/utils/ioc/bindFactory.js +9 -0
- package/package.json +21 -20
- package/dist/esm/apps/Helper/src/lib/app.d.ts +0 -6
- package/dist/esm/apps/Helper/src/lib/app.js +0 -12
- package/dist/esm/apps/Helper/src/lib/project.d.ts +0 -3
- package/dist/esm/apps/Helper/src/lib/project.js +0 -163
- package/dist/esm/bundlers/vite/StripUCDLifecycleServerPlugin.d.ts +0 -2
- package/dist/esm/bundlers/vite/StripUCDLifecycleServerPlugin.js +0 -18
- package/dist/esm/products/Helper/cli-node-core/container.d.ts +0 -3
- package/dist/esm/products/Helper/cli-node-core/container.js +0 -26
- package/dist/esm/products/Helper/cli-node-core/index.js +0 -9
- package/dist/esm/products/Helper/container.d.ts +0 -3
- package/dist/esm/products/Helper/container.js +0 -26
- package/dist/esm/products/Helper/index.js +0 -16
- package/dist/esm/target/lib/react/common.d.ts +0 -6
- package/dist/esm/target/lib/react/common.js +0 -1
- package/dist/esm/target/lib/server/RequestHandler.d.ts +0 -14
- package/dist/esm/target/lib/server/RequestHandler.js +0 -1
- package/dist/esm/target/lib/server-node/stop.d.ts +0 -2
- package/dist/esm/target/lib/server-node/stop.js +0 -18
- package/dist/esm/target/node-express-server/lib/AuthCookieCreator.d.ts +0 -21
- package/dist/esm/target/node-express-server/lib/AuthCookieCreator.js +0 -50
- package/dist/esm/target/node-express-server/middlewares/AuthenticationCheckerMiddlewareBuilder.d.ts +0 -21
- package/dist/esm/target/node-express-server/middlewares/AuthenticationCheckerMiddlewareBuilder.js +0 -61
- package/dist/esm/target/node-express-server/middlewares/ErrorMiddlewareBuilder.d.ts +0 -12
- package/dist/esm/target/node-express-server/middlewares/ErrorMiddlewareBuilder.js +0 -35
- package/dist/esm/target/node-express-server/middlewares/HelmetMiddlewareBuilder.d.ts +0 -12
- package/dist/esm/target/node-express-server/middlewares/HelmetMiddlewareBuilder.js +0 -39
- package/dist/esm/target/node-express-server/middlewares/PublicApiKeyCheckerMiddlewareBuilder.d.ts +0 -18
- package/dist/esm/target/node-express-server/middlewares/RequestCheckerMiddlewareBuilder.d.ts +0 -12
- package/dist/esm/target/node-express-server/middlewares/RequestCheckerMiddlewareBuilder.js +0 -36
- package/dist/esm/target/node-express-server/middlewares/RequestHandlerMiddlewareBuilder.d.ts +0 -23
- package/dist/esm/target/node-express-server/middlewares/RequestHandlerMiddlewareBuilder.js +0 -154
- package/dist/esm/target/node-express-server/middlewares/RequestLoggerMiddlewareBuilder.d.ts +0 -13
- package/dist/esm/target/node-express-server/middlewares/RequestLoggerMiddlewareBuilder.js +0 -46
- package/dist/esm/testing/impl/SimpleAppDocsEmitter.d.ts +0 -7
- package/dist/esm/testing/impl/SimpleAppDocsEmitter.js +0 -180
- package/dist/esm/testing/impl/SimpleAppTesterConfigurator.d.ts +0 -14
- package/dist/esm/testing/impl/SimpleAppTesterConfigurator.js +0 -35
- package/dist/esm/uc/utils/stripUCDLifecycleServer.d.ts +0 -15
- package/dist/esm/uc/utils/stripUCDLifecycleServer.js +0 -77
- package/dist/esm/uc/utils/ucifcoIsForArray.d.ts +0 -8
- package/dist/esm/uc/utils/ucifcoIsForArray.js +0 -13
- package/dist/esm/utils/bundling/vite/StripUCDLifecycleServerPlugin.d.ts +0 -2
- package/dist/esm/utils/bundling/vite/StripUCDLifecycleServerPlugin.js +0 -18
- package/dist/esm/utils/http/toFormData.d.ts +0 -3
- package/dist/esm/utils/http/toFormData.js +0 -4
- package/dist/esm/utils/http/toJSON.d.ts +0 -3
- package/dist/esm/utils/http/toJSON.js +0 -3
- package/dist/esm/utils/http/toQueryParams.d.ts +0 -2
- package/dist/esm/utils/http/toQueryParams.js +0 -4
- package/dist/esm/utils/ioc/ContainerPrinter.d.ts +0 -15
- package/dist/esm/utils/ioc/ContainerPrinter.js +0 -58
- package/dist/esm/utils/ioc/bindProvider.d.ts +0 -2
- package/dist/esm/utils/ioc/bindProvider.js +0 -9
- /package/dist/esm/{products/Helper/cli-node-core/index.d.ts → dt/targets/json-schema.js} +0 -0
- /package/dist/esm/{products/Helper/index.d.ts → target/lib/openapi/types.js} +0 -0
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import type { Configurable, SettingsManager } from '../../std/index.js';
|
|
1
2
|
import type { UCData } from '../data.js';
|
|
2
|
-
import type
|
|
3
|
+
import { type UCDataStore, type UCDataStoreReadOpts, type UCDataStoreReadResponse, type UCDataStoreRecord, type UCDataStoreTx, type UCDataStoreWriteProjectionSpecificBinding } from '../data-store.js';
|
|
3
4
|
import type { UCInput } from '../input.js';
|
|
5
|
+
import type { UCSettings } from '../settings.js';
|
|
4
6
|
type TxState = 'committed' | 'pending' | 'rollbacked';
|
|
5
|
-
|
|
7
|
+
type S = Pick<UCSettings, 'uc_data_store_mode'>;
|
|
8
|
+
export declare class InMemoryUCDataStore implements Configurable<S>, UCDataStore {
|
|
9
|
+
protected settingsManager: SettingsManager<S>;
|
|
6
10
|
entries: UCDataStoreRecord<any, any>[];
|
|
7
11
|
tx: TxState | undefined;
|
|
8
|
-
constructor();
|
|
12
|
+
constructor(settingsManager: SettingsManager<S>);
|
|
13
|
+
s(): S;
|
|
9
14
|
clear(): Promise<void>;
|
|
10
15
|
destroy(): Promise<void>;
|
|
11
16
|
exists(): Promise<boolean>;
|
|
@@ -7,8 +7,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { inject, injectable } from 'inversify';
|
|
11
14
|
import { NotImplementedError } from '../../error/index.js';
|
|
15
|
+
import { assertCan, } from '../data-store.js';
|
|
12
16
|
function predicate(key, filter) {
|
|
13
17
|
if (filter === null) {
|
|
14
18
|
return (r) => r[key] === null;
|
|
@@ -19,12 +23,19 @@ function predicate(key, filter) {
|
|
|
19
23
|
return (r) => r[key] === filter;
|
|
20
24
|
}
|
|
21
25
|
let InMemoryUCDataStore = class InMemoryUCDataStore {
|
|
26
|
+
settingsManager;
|
|
22
27
|
// biome-ignore lint/suspicious/noExplicitAny: can be anything
|
|
23
28
|
entries;
|
|
24
29
|
tx;
|
|
25
|
-
constructor() {
|
|
30
|
+
constructor(settingsManager) {
|
|
31
|
+
this.settingsManager = settingsManager;
|
|
26
32
|
this.entries = [];
|
|
27
33
|
}
|
|
34
|
+
s() {
|
|
35
|
+
return {
|
|
36
|
+
uc_data_store_mode: this.settingsManager.get()('uc_data_store_mode'),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
28
39
|
async clear() {
|
|
29
40
|
this.entries = [];
|
|
30
41
|
}
|
|
@@ -41,6 +52,7 @@ let InMemoryUCDataStore = class InMemoryUCDataStore {
|
|
|
41
52
|
// Nothing to do
|
|
42
53
|
}
|
|
43
54
|
async read(opts) {
|
|
55
|
+
assertCan('read', this.s().uc_data_store_mode);
|
|
44
56
|
let items = this
|
|
45
57
|
.entries;
|
|
46
58
|
// Filter
|
|
@@ -70,6 +82,7 @@ let InMemoryUCDataStore = class InMemoryUCDataStore {
|
|
|
70
82
|
};
|
|
71
83
|
}
|
|
72
84
|
async readProjection() {
|
|
85
|
+
assertCan('read', this.s().uc_data_store_mode);
|
|
73
86
|
return [];
|
|
74
87
|
}
|
|
75
88
|
async startTx() {
|
|
@@ -94,14 +107,17 @@ let InMemoryUCDataStore = class InMemoryUCDataStore {
|
|
|
94
107
|
this.writeBulk([record]);
|
|
95
108
|
}
|
|
96
109
|
async writeBulk(records) {
|
|
110
|
+
assertCan('write', this.s().uc_data_store_mode);
|
|
97
111
|
this.entries.push(...records);
|
|
98
112
|
}
|
|
99
113
|
async writeProjection() {
|
|
114
|
+
assertCan('write', this.s().uc_data_store_mode);
|
|
100
115
|
throw new NotImplementedError('writeProjection');
|
|
101
116
|
}
|
|
102
117
|
};
|
|
103
118
|
InMemoryUCDataStore = __decorate([
|
|
104
119
|
injectable(),
|
|
105
|
-
|
|
120
|
+
__param(0, inject('SettingsManager')),
|
|
121
|
+
__metadata("design:paramtypes", [Object])
|
|
106
122
|
], InMemoryUCDataStore);
|
|
107
123
|
export { InMemoryUCDataStore };
|
|
@@ -2,7 +2,7 @@ import { type Knex } from 'knex';
|
|
|
2
2
|
import type { FilePath, UIntQuantity } from '../../dt/index.js';
|
|
3
3
|
import type { Configurable, Settings, SettingsManager } from '../../std/index.js';
|
|
4
4
|
import type { UCData } from '../data.js';
|
|
5
|
-
import type
|
|
5
|
+
import { type UCDataStore, type UCDataStoreReadOpts, type UCDataStoreReadProjectionOpts, type UCDataStoreReadResponse, type UCDataStoreRecord, type UCDataStoreTx, type UCDataStoreWriteOpts, type UCDataStoreWriteProjectionOpts, type UCDataStoreWriteProjectionSpecificBinding } from '../data-store.js';
|
|
6
6
|
import type { UCInput } from '../input.js';
|
|
7
7
|
import type { UCSettings } from '../settings.js';
|
|
8
8
|
/**
|
|
@@ -16,7 +16,7 @@ export interface KnexUCDataStoreSettings extends Settings {
|
|
|
16
16
|
knex_uc_data_store_pool_min: UIntQuantity;
|
|
17
17
|
knex_uc_data_store_type: 'pg' | 'sqlite3';
|
|
18
18
|
}
|
|
19
|
-
type S = KnexUCDataStoreSettings & Pick<UCSettings, 'uc_data_store_ucs_dataset_name'>;
|
|
19
|
+
type S = KnexUCDataStoreSettings & Pick<UCSettings, 'uc_data_store_mode' | 'uc_data_store_ucs_dataset_name'>;
|
|
20
20
|
export declare class KnexUCDataStore implements Configurable<S>, UCDataStore {
|
|
21
21
|
protected settingsManager: SettingsManager<S>;
|
|
22
22
|
protected config: Knex.Config;
|
|
@@ -13,6 +13,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
import { inject, injectable } from 'inversify';
|
|
14
14
|
import knex, {} from 'knex';
|
|
15
15
|
import { NotAvailableError, NotCallableError } from '../../error/index.js';
|
|
16
|
+
import { assertCan, } from '../data-store.js';
|
|
16
17
|
const FILTERS_MAPPING = new Map([
|
|
17
18
|
['aggregateId', 'aggregate_id'],
|
|
18
19
|
['appName', 'app_name'],
|
|
@@ -37,6 +38,7 @@ let KnexUCDataStore = class KnexUCDataStore {
|
|
|
37
38
|
knex_uc_data_store_pool_max: this.settingsManager.get()('knex_uc_data_store_pool_max'),
|
|
38
39
|
knex_uc_data_store_pool_min: this.settingsManager.get()('knex_uc_data_store_pool_min'),
|
|
39
40
|
knex_uc_data_store_type: this.settingsManager.get()('knex_uc_data_store_type'),
|
|
41
|
+
uc_data_store_mode: this.settingsManager.get()('uc_data_store_mode'),
|
|
40
42
|
uc_data_store_ucs_dataset_name: this.settingsManager.get()('uc_data_store_ucs_dataset_name'),
|
|
41
43
|
};
|
|
42
44
|
}
|
|
@@ -58,6 +60,7 @@ let KnexUCDataStore = class KnexUCDataStore {
|
|
|
58
60
|
throw new NotCallableError('initSync', 'init', 'async-only');
|
|
59
61
|
}
|
|
60
62
|
async read(opts) {
|
|
63
|
+
assertCan('read', this.s().uc_data_store_mode);
|
|
61
64
|
const query = this.client(this.s().uc_data_store_ucs_dataset_name);
|
|
62
65
|
// Filter
|
|
63
66
|
if (opts?.filters) {
|
|
@@ -87,6 +90,7 @@ let KnexUCDataStore = class KnexUCDataStore {
|
|
|
87
90
|
};
|
|
88
91
|
}
|
|
89
92
|
async readProjection(name, opts) {
|
|
93
|
+
assertCan('read', this.s().uc_data_store_mode);
|
|
90
94
|
const query = this.client(name);
|
|
91
95
|
// Sort
|
|
92
96
|
if (opts?.orderBy) {
|
|
@@ -123,6 +127,7 @@ let KnexUCDataStore = class KnexUCDataStore {
|
|
|
123
127
|
await this.writeBulk([record], opts);
|
|
124
128
|
}
|
|
125
129
|
async writeBulk(records, opts) {
|
|
130
|
+
assertCan('write', this.s().uc_data_store_mode);
|
|
126
131
|
const query = this.client(this.s().uc_data_store_ucs_dataset_name).insert(records.map((r) => this.mapRecordToRow(r)));
|
|
127
132
|
if (opts?.tx) {
|
|
128
133
|
query.transacting(opts.tx.ref);
|
|
@@ -130,6 +135,7 @@ let KnexUCDataStore = class KnexUCDataStore {
|
|
|
130
135
|
await query;
|
|
131
136
|
}
|
|
132
137
|
async writeProjection(name, data, opts) {
|
|
138
|
+
assertCan('write', this.s().uc_data_store_mode);
|
|
133
139
|
const dataToInsert = {};
|
|
134
140
|
for (const [k, v] of Object.entries(data)) {
|
|
135
141
|
const specificBinding = opts?.specificBindings?.[k];
|
|
@@ -183,8 +189,10 @@ let KnexUCDataStore = class KnexUCDataStore {
|
|
|
183
189
|
return;
|
|
184
190
|
}
|
|
185
191
|
Array.isArray(value)
|
|
186
|
-
?
|
|
187
|
-
|
|
192
|
+
? // @ts-expect-error : https://github.com/knex/knex/pull/6428
|
|
193
|
+
query.whereIn(col, value)
|
|
194
|
+
: // @ts-expect-error : https://github.com/knex/knex/pull/6428
|
|
195
|
+
query.where(col, value);
|
|
188
196
|
}
|
|
189
197
|
mapRecordToRow(record) {
|
|
190
198
|
return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Factory } from 'inversify';
|
|
2
2
|
import type { ClockManager, CryptoManager, Logger } from '../../std/index.js';
|
|
3
3
|
import type { UCClientConfirmManager } from '../client.js';
|
|
4
4
|
import type { UCData } from '../data.js';
|
|
@@ -23,10 +23,10 @@ export declare class SimpleUCManager implements UCManager {
|
|
|
23
23
|
private ucExecChecker;
|
|
24
24
|
private ucInputFilesProcessor;
|
|
25
25
|
private ucInputValidator;
|
|
26
|
-
private
|
|
27
|
-
private
|
|
26
|
+
private ucInitFactory;
|
|
27
|
+
private ucMainFactory;
|
|
28
28
|
private tx?;
|
|
29
|
-
constructor(ucClientConfirmManager: UCClientConfirmManager, clockManager: ClockManager, cryptoManager: CryptoManager, logger: Logger, ucDataStore: UCDataStore, ucExecChecker: UCExecChecker, ucInputFilesProcessor: UCInputFilesProcessor, ucInputValidator: UCInputValidator,
|
|
29
|
+
constructor(ucClientConfirmManager: UCClientConfirmManager, clockManager: ClockManager, cryptoManager: CryptoManager, logger: Logger, ucDataStore: UCDataStore, ucExecChecker: UCExecChecker, ucInputFilesProcessor: UCInputFilesProcessor, ucInputValidator: UCInputValidator, ucInitFactory: Factory<UCInit>, ucMainFactory: Factory<UCMain>);
|
|
30
30
|
commitTx(): Promise<void>;
|
|
31
31
|
confirmClient<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>(uc: UC<I, OPI0, OPI1>): Promise<boolean>;
|
|
32
32
|
execClient<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>(uc: UC<I, OPI0, OPI1>, opts?: UCManagerExecClientOpts<I, OPI0, OPI1>): Promise<UCOutputReader<I, OPI0, OPI1>>;
|
|
@@ -27,11 +27,11 @@ let SimpleUCManager = class SimpleUCManager {
|
|
|
27
27
|
ucExecChecker;
|
|
28
28
|
ucInputFilesProcessor;
|
|
29
29
|
ucInputValidator;
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
ucInitFactory;
|
|
31
|
+
ucMainFactory;
|
|
32
32
|
// WARNING : This property makes this class "thread unsafe". Be careful how you inject it into your components.
|
|
33
33
|
tx;
|
|
34
|
-
constructor(ucClientConfirmManager, clockManager, cryptoManager, logger, ucDataStore, ucExecChecker, ucInputFilesProcessor, ucInputValidator,
|
|
34
|
+
constructor(ucClientConfirmManager, clockManager, cryptoManager, logger, ucDataStore, ucExecChecker, ucInputFilesProcessor, ucInputValidator, ucInitFactory, ucMainFactory) {
|
|
35
35
|
this.ucClientConfirmManager = ucClientConfirmManager;
|
|
36
36
|
this.clockManager = clockManager;
|
|
37
37
|
this.cryptoManager = cryptoManager;
|
|
@@ -40,8 +40,8 @@ let SimpleUCManager = class SimpleUCManager {
|
|
|
40
40
|
this.ucExecChecker = ucExecChecker;
|
|
41
41
|
this.ucInputFilesProcessor = ucInputFilesProcessor;
|
|
42
42
|
this.ucInputValidator = ucInputValidator;
|
|
43
|
-
this.
|
|
44
|
-
this.
|
|
43
|
+
this.ucInitFactory = ucInitFactory;
|
|
44
|
+
this.ucMainFactory = ucMainFactory;
|
|
45
45
|
this.tx = undefined;
|
|
46
46
|
}
|
|
47
47
|
async commitTx() {
|
|
@@ -80,7 +80,7 @@ let SimpleUCManager = class SimpleUCManager {
|
|
|
80
80
|
if (server === undefined) {
|
|
81
81
|
await this.ucInputFilesProcessor.exec({ uc });
|
|
82
82
|
}
|
|
83
|
-
const main = (await this.
|
|
83
|
+
const main = (await this.ucMainFactory(client.main));
|
|
84
84
|
const streamOpts = opts?.stream;
|
|
85
85
|
const output = await main.exec({
|
|
86
86
|
opts: {
|
|
@@ -113,7 +113,7 @@ let SimpleUCManager = class SimpleUCManager {
|
|
|
113
113
|
}
|
|
114
114
|
this.ucInputValidator.exec({ uc });
|
|
115
115
|
await this.ucInputFilesProcessor.exec({ uc });
|
|
116
|
-
const main = (await this.
|
|
116
|
+
const main = (await this.ucMainFactory(server.main));
|
|
117
117
|
const output = main.exec({
|
|
118
118
|
opts: {
|
|
119
119
|
stream: opts?.stream,
|
|
@@ -132,7 +132,7 @@ let SimpleUCManager = class SimpleUCManager {
|
|
|
132
132
|
return;
|
|
133
133
|
}
|
|
134
134
|
this.logger.info('Initializing ucd', { name: metadata.name });
|
|
135
|
-
const init = (await this.
|
|
135
|
+
const init = (await this.ucInitFactory(server.init));
|
|
136
136
|
await init.exec();
|
|
137
137
|
}
|
|
138
138
|
async startTx() {
|
|
@@ -179,8 +179,8 @@ SimpleUCManager = __decorate([
|
|
|
179
179
|
__param(5, inject(UCExecChecker)),
|
|
180
180
|
__param(6, inject(UCInputFilesProcessor)),
|
|
181
181
|
__param(7, inject(UCInputValidator)),
|
|
182
|
-
__param(8, inject('
|
|
183
|
-
__param(9, inject('
|
|
182
|
+
__param(8, inject('Factory<UCInit>')),
|
|
183
|
+
__param(9, inject('Factory<UCMain>')),
|
|
184
184
|
__metadata("design:paramtypes", [Object, Object, Object, Object, Object, UCExecChecker,
|
|
185
185
|
UCInputFilesProcessor,
|
|
186
186
|
UCInputValidator, Function, Function])
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AppName } from '../app/index.js';
|
|
2
|
+
import { UC_INPUT_SUFFIX, UC_OPI0_SUFFIX, UC_OPI1_SUFFIX } from '../convention.js';
|
|
2
3
|
import type { IconCode } from '../icon/index.js';
|
|
3
4
|
/**
|
|
4
5
|
* The type of action the use case performs
|
|
@@ -14,6 +15,9 @@ export type FQUCNameSeparator = '_';
|
|
|
14
15
|
* It's made with the {@link AppName} and the {@link UCName} linked by {@link FQUCNameSeparator}.
|
|
15
16
|
*/
|
|
16
17
|
export type FQUCName = `${AppName}${FQUCNameSeparator}${UCName}`;
|
|
18
|
+
export type FQUCInputName = `${FQUCName}${typeof UC_INPUT_SUFFIX}`;
|
|
19
|
+
export type FQUCOPI0Name = `${FQUCName}${typeof UC_OPI0_SUFFIX}`;
|
|
20
|
+
export type FQUCOPI1Name = `${FQUCName}${typeof UC_OPI1_SUFFIX}`;
|
|
17
21
|
export interface UCMetadata {
|
|
18
22
|
action: UCAction;
|
|
19
23
|
beta?: boolean;
|
|
@@ -24,4 +28,7 @@ export interface UCMetadata {
|
|
|
24
28
|
}
|
|
25
29
|
export declare const FQ_UC_NAME_SEPARATOR: FQUCNameSeparator;
|
|
26
30
|
export declare function formatFQUCName(appName: AppName, ucName: UCName): FQUCName;
|
|
31
|
+
export declare function formatFQUCInputName(fqUCName: FQUCName): FQUCInputName;
|
|
32
|
+
export declare function formatFQUCOPI0Name(fqUCName: FQUCName): FQUCOPI0Name;
|
|
33
|
+
export declare function formatFQUCOPI1Name(fqUCName: FQUCName): FQUCOPI1Name;
|
|
27
34
|
export declare function parseFQUCName(value: string): [AppName, UCName];
|
package/dist/esm/uc/metadata.js
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
|
+
import { UC_INPUT_SUFFIX, UC_OPI0_SUFFIX, UC_OPI1_SUFFIX, } from '../convention.js';
|
|
1
2
|
import { isCapitalized } from '../utils/index.js';
|
|
2
3
|
const ERR_INVALID_FQ_UC_NAME = (value) => `Invalid fully qualified use case name : ${value}`;
|
|
3
4
|
export const FQ_UC_NAME_SEPARATOR = '_';
|
|
4
5
|
export function formatFQUCName(appName, ucName) {
|
|
5
6
|
return [appName, ucName].join(FQ_UC_NAME_SEPARATOR);
|
|
6
7
|
}
|
|
8
|
+
export function formatFQUCInputName(fqUCName) {
|
|
9
|
+
return `${fqUCName}${UC_INPUT_SUFFIX}`;
|
|
10
|
+
}
|
|
11
|
+
export function formatFQUCOPI0Name(fqUCName) {
|
|
12
|
+
return `${fqUCName}${UC_OPI0_SUFFIX}`;
|
|
13
|
+
}
|
|
14
|
+
export function formatFQUCOPI1Name(fqUCName) {
|
|
15
|
+
return `${fqUCName}${UC_OPI1_SUFFIX}`;
|
|
16
|
+
}
|
|
7
17
|
export function parseFQUCName(value) {
|
|
8
18
|
const elements = value.split(FQ_UC_NAME_SEPARATOR);
|
|
9
19
|
if (elements.length !== 2) {
|
|
@@ -1 +1,13 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export function ucofExamples(def) {
|
|
2
|
+
const { type } = def;
|
|
3
|
+
const examples = type.getExamples();
|
|
4
|
+
// Leaving the value `undefined` means you want the default value
|
|
5
|
+
if (examples === undefined) {
|
|
6
|
+
return [type.example()];
|
|
7
|
+
}
|
|
8
|
+
// Setting the examples to `[]` means you don't want them
|
|
9
|
+
if (examples.length === 0) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
return examples;
|
|
13
|
+
}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { FilePath } from '../dt/index.js';
|
|
2
2
|
import type { Settings } from '../std/index.js';
|
|
3
|
-
import type { UCDataStoreDatasetName } from './data-store.js';
|
|
3
|
+
import type { UCDataStoreDatasetName, UCDataStoreMode } from './data-store.js';
|
|
4
4
|
import type { UCFileInputFieldRefPrefix } from './file.js';
|
|
5
5
|
import type { UCName } from './metadata.js';
|
|
6
6
|
export interface UCSettings extends Settings {
|
|
7
|
+
/**
|
|
8
|
+
* The mode of the data store.
|
|
9
|
+
*
|
|
10
|
+
* @default UC_DEFAULT_SETTINGS.uc_data_store_mode
|
|
11
|
+
*/
|
|
12
|
+
uc_data_store_mode: UCDataStoreMode;
|
|
7
13
|
/**
|
|
8
14
|
* The name of the collection/table storing the persisted use cases in the data store
|
|
9
15
|
*
|
|
@@ -22,6 +28,7 @@ export interface UCSettings extends Settings {
|
|
|
22
28
|
uc_disabled_use_cases: UCName[];
|
|
23
29
|
/**
|
|
24
30
|
* The prefix of the file path when the use case has been processed, before storing
|
|
31
|
+
*
|
|
25
32
|
* @default UC_DEFAULT_SETTINGS.uc_file_ref_prefix
|
|
26
33
|
*/
|
|
27
34
|
uc_file_ref_prefix: UCFileInputFieldRefPrefix;
|
|
@@ -7,7 +7,7 @@ const ACTION_HTTP_METHOD_MAPPING = {
|
|
|
7
7
|
Update: 'PUT',
|
|
8
8
|
View: 'GET',
|
|
9
9
|
};
|
|
10
|
-
const METHODS_WITH_NO_BODY = ['GET', 'HEAD'];
|
|
10
|
+
const METHODS_WITH_NO_BODY = ['DELETE', 'GET', 'HEAD'];
|
|
11
11
|
export function ucHTTPContract(uc, pathPrefix = '/api/v1') {
|
|
12
12
|
const { ext, metadata } = uc.def;
|
|
13
13
|
const { action } = metadata;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Factory } from 'inversify';
|
|
2
2
|
import type { ProductManifest } from '../../product/index.js';
|
|
3
3
|
import type { Configurable, SettingsManager, Worker } from '../../std/index.js';
|
|
4
4
|
import type { UCDefLifecycle } from '../def.js';
|
|
@@ -16,8 +16,8 @@ type S = Pick<UCSettings, 'uc_disabled_use_cases'>;
|
|
|
16
16
|
export declare class UCExecChecker implements Configurable<S>, Worker<Input, Promise<Output>> {
|
|
17
17
|
private productManifest;
|
|
18
18
|
private settingsManager;
|
|
19
|
-
private
|
|
20
|
-
constructor(productManifest: ProductManifest, settingsManager: SettingsManager<S>,
|
|
19
|
+
private ucPolicyFactory;
|
|
20
|
+
constructor(productManifest: ProductManifest, settingsManager: SettingsManager<S>, ucPolicyFactory: Factory<UCPolicy>);
|
|
21
21
|
s(): S;
|
|
22
22
|
exec<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>({ lifecycle, uc }: Input<I, OPI0, OPI1>): Promise<Output>;
|
|
23
23
|
}
|
|
@@ -14,11 +14,11 @@ import { inject, injectable } from 'inversify';
|
|
|
14
14
|
let UCExecChecker = class UCExecChecker {
|
|
15
15
|
productManifest;
|
|
16
16
|
settingsManager;
|
|
17
|
-
|
|
18
|
-
constructor(productManifest, settingsManager,
|
|
17
|
+
ucPolicyFactory;
|
|
18
|
+
constructor(productManifest, settingsManager, ucPolicyFactory) {
|
|
19
19
|
this.productManifest = productManifest;
|
|
20
20
|
this.settingsManager = settingsManager;
|
|
21
|
-
this.
|
|
21
|
+
this.ucPolicyFactory = ucPolicyFactory;
|
|
22
22
|
}
|
|
23
23
|
s() {
|
|
24
24
|
return {
|
|
@@ -47,7 +47,7 @@ let UCExecChecker = class UCExecChecker {
|
|
|
47
47
|
const ucds = app.ucds?.exclude ?? [];
|
|
48
48
|
output.allowed = !ucds.includes(metadata.name);
|
|
49
49
|
if (output.allowed) {
|
|
50
|
-
const policy = (await this.
|
|
50
|
+
const policy = (await this.ucPolicyFactory(client.policy));
|
|
51
51
|
const { allowed } = await policy.exec({ uc });
|
|
52
52
|
output.allowed = allowed;
|
|
53
53
|
}
|
|
@@ -68,7 +68,7 @@ UCExecChecker = __decorate([
|
|
|
68
68
|
injectable(),
|
|
69
69
|
__param(0, inject('ProductManifest')),
|
|
70
70
|
__param(1, inject('SettingsManager')),
|
|
71
|
-
__param(2, inject('
|
|
71
|
+
__param(2, inject('Factory<UCPolicy>')),
|
|
72
72
|
__metadata("design:paramtypes", [Object, Object, Function])
|
|
73
73
|
], UCExecChecker);
|
|
74
74
|
export { UCExecChecker };
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
+
import type { URL } from '../../dt/index.js';
|
|
2
|
+
export type HTTPCSPType = 'defaultSrc' | 'imgSrc' | 'scriptSrc';
|
|
3
|
+
export type HTTPCSPValue = URL[];
|
|
4
|
+
export type HTTPCookieSameSite = 'lax' | 'none' | 'strict';
|
|
1
5
|
export type HTTPDataEnvelope = 'form-data' | 'json' | 'query-params';
|
|
2
6
|
export type HTTPReqData = Record<string, unknown>;
|
|
7
|
+
export type HTTPHeaderName = 'Accept' | 'Authorization' | 'Content-Type' | 'Cookie' | 'Origin' | 'X-Requested-With' | (string & {});
|
|
@@ -11,8 +11,8 @@ export { fromQueryParams, toQueryParams } from './http/query-params.js';
|
|
|
11
11
|
export { SSEStreamManager } from './http/SSEStreamManager.js';
|
|
12
12
|
export { fmtSingleDataMsg, fmtSSEError, isSSEError, parseDataLine, SSE_HEADERS, } from './http/sse.js';
|
|
13
13
|
export { isClientError, isError, isServerError } from './http/status.js';
|
|
14
|
-
export type { HTTPDataEnvelope, HTTPReqData } from './http/types.js';
|
|
15
|
-
export {
|
|
14
|
+
export type { HTTPCookieSameSite, HTTPCSPType, HTTPCSPValue, HTTPDataEnvelope, HTTPHeaderName, HTTPReqData, } from './http/types.js';
|
|
15
|
+
export { bindFactory } from './ioc/bindFactory.js';
|
|
16
16
|
export { CONTAINER_OPTS } from './ioc/container.js';
|
|
17
17
|
export type { Class } from './ioc/types.js';
|
|
18
18
|
export { fmt as fmtNumber } from './numbers/fmt.js';
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -7,7 +7,7 @@ export { fromQueryParams, toQueryParams } from './http/query-params.js';
|
|
|
7
7
|
export { SSEStreamManager } from './http/SSEStreamManager.js';
|
|
8
8
|
export { fmtSingleDataMsg, fmtSSEError, isSSEError, parseDataLine, SSE_HEADERS, } from './http/sse.js';
|
|
9
9
|
export { isClientError, isError, isServerError } from './http/status.js';
|
|
10
|
-
export {
|
|
10
|
+
export { bindFactory } from './ioc/bindFactory.js';
|
|
11
11
|
export { CONTAINER_OPTS } from './ioc/container.js';
|
|
12
12
|
export { fmt as fmtNumber } from './numbers/fmt.js';
|
|
13
13
|
export { baseFromSquareUnit, isSquareUnit, } from './numbers/units.js';
|
|
@@ -16,7 +16,7 @@ import { InMemoryUCDataStore } from '../../uc/impl/InMemoryUCDataStore.js';
|
|
|
16
16
|
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
|
-
import {
|
|
19
|
+
import { bindFactory } from './bindFactory.js';
|
|
20
20
|
export function bindCommon(container) {
|
|
21
21
|
// settings
|
|
22
22
|
container.bind('Settings').toConstantValue({
|
|
@@ -55,9 +55,9 @@ export function bindCommon(container) {
|
|
|
55
55
|
.to(SettingsServerClientManager);
|
|
56
56
|
container.bind('XMLManager').to(NoopXMLManager);
|
|
57
57
|
// uc
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
bindFactory(container, 'UCInit');
|
|
59
|
+
bindFactory(container, 'UCMain');
|
|
60
|
+
bindFactory(container, 'UCPolicy');
|
|
61
61
|
container
|
|
62
62
|
.bind('UCClientConfirmManager')
|
|
63
63
|
.to(StaticUCClientConfirmManager);
|
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.29.0",
|
|
5
5
|
"license": "LGPL-3.0",
|
|
6
6
|
"author": "Chafik H'nini <chafik.hnini@gmail.com>",
|
|
7
7
|
"homepage": "https://libmodulor.c100k.eu",
|
|
@@ -97,40 +97,41 @@
|
|
|
97
97
|
"test": "tsc && vitest run"
|
|
98
98
|
},
|
|
99
99
|
"devDependencies": {
|
|
100
|
-
"@biomejs/biome": "^2.
|
|
100
|
+
"@biomejs/biome": "^2.4.14",
|
|
101
101
|
"@react-native-community/slider": "^4.5.7",
|
|
102
|
-
"@types/react": "^19.2.
|
|
102
|
+
"@types/react": "^19.2.14",
|
|
103
103
|
"@types/react-dom": "^19.2.3",
|
|
104
104
|
"babel-plugin-parameter-decorator": "^1.0.16",
|
|
105
105
|
"babel-plugin-transform-typescript-metadata": "^0.3.2",
|
|
106
|
-
"expo": "55.0.
|
|
106
|
+
"expo": "55.0.11",
|
|
107
107
|
"expo-document-picker": "~14.0.8",
|
|
108
|
-
"expo-image-picker": "^17.0.
|
|
109
|
-
"
|
|
108
|
+
"expo-image-picker": "^17.0.11",
|
|
109
|
+
"react-native-safe-area-context": "^5.7.0",
|
|
110
|
+
"wrangler": "^4.90.0"
|
|
110
111
|
},
|
|
111
112
|
"peerDependencies": {
|
|
112
|
-
"@hono/node-server": "^1.19.
|
|
113
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
114
|
-
"@stricli/core": "^1.2.
|
|
113
|
+
"@hono/node-server": "^1.19.14",
|
|
114
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
115
|
+
"@stricli/core": "^1.2.6",
|
|
115
116
|
"buffer": "^6.0.3",
|
|
116
117
|
"cookie-parser": "^1.4.7",
|
|
117
118
|
"express": "^5.2.1",
|
|
118
119
|
"express-fileupload": "^1.5.2",
|
|
119
|
-
"fast-check": "^4.
|
|
120
|
+
"fast-check": "^4.7.0",
|
|
120
121
|
"helmet": "^8.1.0",
|
|
121
|
-
"hono": "^4.
|
|
122
|
+
"hono": "^4.12.18",
|
|
122
123
|
"inversify": "^7.11.0",
|
|
123
|
-
"jose": "^6.
|
|
124
|
-
"knex": "^3.
|
|
125
|
-
"next": "^15.5.
|
|
126
|
-
"pg": "^8.
|
|
127
|
-
"react": "
|
|
128
|
-
"react-dom": "
|
|
129
|
-
"react-native": "^0.
|
|
124
|
+
"jose": "^6.2.3",
|
|
125
|
+
"knex": "^3.2.10",
|
|
126
|
+
"next": "^15.5.18",
|
|
127
|
+
"pg": "^8.20.0",
|
|
128
|
+
"react": "19.2.3",
|
|
129
|
+
"react-dom": "19.2.3",
|
|
130
|
+
"react-native": "^0.84.1",
|
|
130
131
|
"reflect-metadata": "^0.2.2",
|
|
131
132
|
"sqlite3": "^5.1.7",
|
|
132
|
-
"typescript": "^
|
|
133
|
-
"vite": "^6.4.
|
|
133
|
+
"typescript": "^6.0.3",
|
|
134
|
+
"vite": "^6.4.2",
|
|
134
135
|
"vitest": "^3.2.4"
|
|
135
136
|
},
|
|
136
137
|
"peerDependenciesMeta": {
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type DirPath } from '../../../../dt/index.js';
|
|
2
|
-
import type { UCInput, UCInputDef, UCInputFieldValue } from '../../../../uc/index.js';
|
|
3
|
-
export interface AppInput extends UCInput {
|
|
4
|
-
appsPath: UCInputFieldValue<DirPath>;
|
|
5
|
-
}
|
|
6
|
-
export declare const AppInputFieldsDef: UCInputDef<AppInput>['fields'];
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { APPS_ROOT_PATH } from '../../../../convention.js';
|
|
2
|
-
import { TDirPath } from '../../../../dt/index.js';
|
|
3
|
-
export const AppInputFieldsDef = {
|
|
4
|
-
appsPath: {
|
|
5
|
-
cardinality: {
|
|
6
|
-
min: 0,
|
|
7
|
-
},
|
|
8
|
-
type: new TDirPath()
|
|
9
|
-
.setDefaultValue(APPS_ROOT_PATH.join('/'))
|
|
10
|
-
.setExamples([APPS_ROOT_PATH.join('/')]),
|
|
11
|
-
},
|
|
12
|
-
};
|