@nocobase/app-server 3.0.0-beta.4 → 3.0.0-beta.5
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/README.md +1 -1
- package/dist/logging/middleware.d.ts.map +1 -1
- package/dist/logging/middleware.js +88 -6
- package/dist/logging/middleware.js.map +1 -1
- package/dist/mailer/index.d.ts +7 -1
- package/dist/mailer/index.d.ts.map +1 -1
- package/dist/mailer/index.js +5 -1
- package/dist/mailer/index.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ Ordinary task identity is connection or storage path, namespace and scope, like
|
|
|
14
14
|
|
|
15
15
|
Background work goes to the jobs service above by default; queues are for what it does not have — delays, priorities, deduplicating job IDs, batches, rate limits and several handlers per message. `QueueServiceProvider` and `queueServiceToken` from `@nocobase/app-server/queue` compose the application's `QueueService` from `@nocobase/queue`. Add the provider before plugin providers with `app.addServiceProvider(QueueServiceProvider, { nodeEnv })`. It creates the service lazily from the `queue` configuration section, with `app.appName` as the default namespace, `app.paths.storage('queue')` for memory state files, and the `queue` logger. `start()` calls `setup()` after every provider has booted, and `shutdown()` releases the service. `AppQueueConfig` types `server/config/queue.ts`.
|
|
16
16
|
|
|
17
|
-
Plugins resolve `queueServiceToken`, register backend
|
|
17
|
+
Plugins resolve `queueServiceToken`, register backend implementations in `register()`, register handlers with `consumer(queue).consume()` in `boot()`, publish after setup, and await their unregister functions in `shutdown()` before releasing what the handlers use. Without `queue.default`, queues run on the built-in memory configuration, which warns outside `develop` and `development`. A `queue` section in the former `connections`/`worker`/`jobs` format is ignored with one warning. See the [queue package guide](../../libs/queue/README.md) for configuration keys, delivery, retries, cancellation and shutdown.
|
|
18
18
|
|
|
19
19
|
## Realtime topics
|
|
20
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/logging/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAQ,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/logging/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAQ,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AA0F5B,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;IACrC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,oBAAoB,GAC5B,iBAAiB,CAuEnB;AAED,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,oBAAoB,CAmBzE,CAAC"}
|
|
@@ -12,6 +12,74 @@ const defaultRequestHeaders = [
|
|
|
12
12
|
'referer',
|
|
13
13
|
'user-agent',
|
|
14
14
|
];
|
|
15
|
+
const integer = (minimum, maximum) => (value) => /^(?:0|[1-9]\d*)$/u.test(value) &&
|
|
16
|
+
Number(value) >= minimum &&
|
|
17
|
+
Number(value) <= maximum;
|
|
18
|
+
const paginationParameters = {
|
|
19
|
+
limit: integer(1, 1000),
|
|
20
|
+
offset: integer(0, 1_000_000_000),
|
|
21
|
+
page: integer(1, 1_000_000_000),
|
|
22
|
+
pageSize: integer(1, 1000),
|
|
23
|
+
};
|
|
24
|
+
const shortValue = (value) => /^-?(?:0|[1-9]\d{0,2})$/u.test(value) ||
|
|
25
|
+
/^[a-z][a-zA-Z_-]{0,15}$/u.test(value);
|
|
26
|
+
const identifierValue = (value) => /^(?:0|[1-9]\d{0,19})$/u.test(value) ||
|
|
27
|
+
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(value);
|
|
28
|
+
const sensitiveParameterName = /password|passwd|token|secret|authorization|cookie|api[-_]?key|credential|signature|code|state|session|ticket|otp|nonce|^key$/iu;
|
|
29
|
+
function acceptsParameter(key, value) {
|
|
30
|
+
// Reject length before validating; never make a rejected value acceptable by
|
|
31
|
+
// truncating it. Pagination is bounded independently of identifier shapes.
|
|
32
|
+
if (value.length > 100 || sensitiveParameterName.test(key))
|
|
33
|
+
return false;
|
|
34
|
+
if (Object.hasOwn(paginationParameters, key))
|
|
35
|
+
return paginationParameters[key](value);
|
|
36
|
+
return (shortValue(value) ||
|
|
37
|
+
((key === 'id' || key.endsWith('Id')) && identifierValue(value)));
|
|
38
|
+
}
|
|
39
|
+
function safeParameters(values, redact) {
|
|
40
|
+
const safe = Object.create(null);
|
|
41
|
+
for (const [key, value] of Object.entries(values)) {
|
|
42
|
+
if (Object.keys(safe).length >= 20)
|
|
43
|
+
break;
|
|
44
|
+
if (key.length > 64)
|
|
45
|
+
continue;
|
|
46
|
+
if (acceptsParameter(key, value))
|
|
47
|
+
safe[key] = value;
|
|
48
|
+
else if (redact)
|
|
49
|
+
safe[key] = '[REDACTED]';
|
|
50
|
+
}
|
|
51
|
+
return safe;
|
|
52
|
+
}
|
|
53
|
+
function safeQuery(context) {
|
|
54
|
+
return safeParameters(context.req.query(), false);
|
|
55
|
+
}
|
|
56
|
+
function safePath(context) {
|
|
57
|
+
// Hono has already matched routes before middleware runs. Templates also
|
|
58
|
+
// protect wildcard mounts whose nested router owns the token parameter.
|
|
59
|
+
let concrete;
|
|
60
|
+
let wildcard = '*';
|
|
61
|
+
for (const { path } of context.req.matchedRoutes) {
|
|
62
|
+
if (!path.endsWith('*'))
|
|
63
|
+
concrete = path;
|
|
64
|
+
else if (path.length > wildcard.length)
|
|
65
|
+
wildcard = path;
|
|
66
|
+
}
|
|
67
|
+
return concrete ?? wildcard;
|
|
68
|
+
}
|
|
69
|
+
/** A transport hint for traffic analysis, never an authentication decision. */
|
|
70
|
+
function callerOf(context) {
|
|
71
|
+
if (context.req.header('x-nocobase-runner-key'))
|
|
72
|
+
return 'runner';
|
|
73
|
+
if (context.req.header('x-nocobase-run-token'))
|
|
74
|
+
return 'agentRun';
|
|
75
|
+
if (context.req.header('x-nocobase-client') === 'cli')
|
|
76
|
+
return 'cli';
|
|
77
|
+
if (context.req.header('x-api-key'))
|
|
78
|
+
return 'apiKey';
|
|
79
|
+
if (context.req.header('cookie'))
|
|
80
|
+
return 'browser';
|
|
81
|
+
return 'anonymous';
|
|
82
|
+
}
|
|
15
83
|
export function requestLogger(options) {
|
|
16
84
|
return createMiddleware(async (context, next) => {
|
|
17
85
|
if (options.skip?.(context)) {
|
|
@@ -22,13 +90,14 @@ export function requestLogger(options) {
|
|
|
22
90
|
const startedAt = Date.now();
|
|
23
91
|
const app = options.app;
|
|
24
92
|
const method = context.req.method;
|
|
25
|
-
const path = context
|
|
93
|
+
const path = safePath(context);
|
|
26
94
|
logger.debug({
|
|
27
95
|
...(app ? { app } : {}),
|
|
28
96
|
req: {
|
|
29
97
|
method,
|
|
30
98
|
path,
|
|
31
|
-
query: context
|
|
99
|
+
query: safeQuery(context),
|
|
100
|
+
caller: callerOf(context),
|
|
32
101
|
headers: selectHeaders(context, options.requestHeaders ?? defaultRequestHeaders),
|
|
33
102
|
},
|
|
34
103
|
}, `${method} ${path} started`);
|
|
@@ -73,10 +142,11 @@ function completionBindings(context, app, method, path, startedAt, status, error
|
|
|
73
142
|
method,
|
|
74
143
|
path,
|
|
75
144
|
route: context.req.routePath,
|
|
76
|
-
params: context.req.param(),
|
|
145
|
+
params: safeParameters(context.req.param(), true),
|
|
146
|
+
query: safeQuery(context),
|
|
147
|
+
caller: callerOf(context),
|
|
77
148
|
...(status >= 400
|
|
78
149
|
? {
|
|
79
|
-
query: context.req.query(),
|
|
80
150
|
headers: selectHeaders(context, requestHeaders),
|
|
81
151
|
}
|
|
82
152
|
: {}),
|
|
@@ -113,8 +183,20 @@ function selectHeaders(context, names) {
|
|
|
113
183
|
const headers = {};
|
|
114
184
|
for (const name of names) {
|
|
115
185
|
const value = context.req.header(name);
|
|
116
|
-
if (value
|
|
117
|
-
|
|
186
|
+
if (value === undefined)
|
|
187
|
+
continue;
|
|
188
|
+
const key = name.toLowerCase();
|
|
189
|
+
if (key === 'referer') {
|
|
190
|
+
// Referrers can repeat the same private path or query as the request.
|
|
191
|
+
try {
|
|
192
|
+
headers[key] = new URL(value).origin;
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
// An invalid referrer is not useful diagnostic context.
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else
|
|
199
|
+
headers[key] = value;
|
|
118
200
|
}
|
|
119
201
|
return headers;
|
|
120
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/logging/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD,OAAO,EACL,oBAAoB,EACpB,YAAY,GAEb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,qBAAqB,GAAG;IAC5B,QAAQ;IACR,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,iBAAiB;IACjB,eAAe;IACf,kBAAkB;IAClB,SAAS;IACT,YAAY;CACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/logging/middleware.ts"],"names":[],"mappings":"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"}
|
package/dist/mailer/index.d.ts
CHANGED
|
@@ -2,19 +2,25 @@ import { type EmailMessage, type MailResult, type MailSendOptions } from '@nocob
|
|
|
2
2
|
import { ServiceProvider, type ServiceToken } from '@nocobase/service-provider';
|
|
3
3
|
import { type AppConfigDefinition, type AppConfigFactory, type ConfigValidator } from '../config/index.js';
|
|
4
4
|
import type { AppPluginApplication } from '../plugins/index.js';
|
|
5
|
+
/** @deprecated Import MailChannelsConfig from @nocobase/app-plugin-notification-providers/config. */
|
|
5
6
|
export interface MailChannelsConfig {
|
|
6
7
|
readonly channels: Readonly<Record<string, unknown>>;
|
|
7
8
|
}
|
|
9
|
+
/** @deprecated Own a transport from @nocobase/mailer in the sending service. */
|
|
8
10
|
export interface Mailer {
|
|
9
11
|
available(channel: string): boolean;
|
|
10
12
|
send(channel: string, message: EmailMessage, options?: MailSendOptions): Promise<MailResult>;
|
|
11
13
|
close(): Promise<void>;
|
|
12
14
|
}
|
|
15
|
+
/** @deprecated Own a transport from @nocobase/mailer in the sending service. */
|
|
13
16
|
export declare const mailerToken: ServiceToken<Mailer>;
|
|
17
|
+
/** @deprecated Import validateMailChannels from @nocobase/app-plugin-notification-providers/config. */
|
|
14
18
|
export declare const validateMailChannels: ConfigValidator<MailChannelsConfig>;
|
|
15
|
-
/**
|
|
19
|
+
/** @deprecated Import defineMailChannelsConfig from @nocobase/app-plugin-notification-providers/config. */
|
|
16
20
|
export declare function defineMailChannelsConfig<T extends MailChannelsConfig>(definition: AppConfigDefinition<T>): AppConfigFactory<T>;
|
|
21
|
+
/** @deprecated Own a transport from @nocobase/mailer in the sending service. */
|
|
17
22
|
export declare function createMailer(config: MailChannelsConfig): Mailer;
|
|
23
|
+
/** @deprecated Own a transport and its lifecycle in the sending service. */
|
|
18
24
|
export declare class MailerProvider extends ServiceProvider<AppPluginApplication> {
|
|
19
25
|
readonly name: string;
|
|
20
26
|
register(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mailer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,EAGrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,eAAe,EACf,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,MAAM;IACrB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,IAAI,CACF,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,eAAO,MAAM,WAAW,EAAE,YAAY,CAAC,MAAM,CAE5C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,eAAe,CAAC,kBAAkB,CA+BpE,CAAC;AAkBF,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mailer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,EAGrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,eAAe,EACf,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,qGAAqG;AACrG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED,gFAAgF;AAChF,MAAM,WAAW,MAAM;IACrB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,IAAI,CACF,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,gFAAgF;AAChF,eAAO,MAAM,WAAW,EAAE,YAAY,CAAC,MAAM,CAE5C,CAAC;AAEF,uGAAuG;AACvG,eAAO,MAAM,oBAAoB,EAAE,eAAe,CAAC,kBAAkB,CA+BpE,CAAC;AAkBF,2GAA2G;AAC3G,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,kBAAkB,EACnE,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,GACjC,gBAAgB,CAAC,CAAC,CAAC,CAqBrB;AAED,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAmC/D;AAED,4EAA4E;AAC5E,qBAAa,cAAe,SAAQ,eAAe,CAAC,oBAAoB,CAAC;IACvE,SAAgB,IAAI,EAAE,MAAM,CAAiC;IAC7C,QAAQ,IAAI,IAAI;IASV,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhD"}
|
package/dist/mailer/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { createMailTransport, isMailChannelConfig, } from '@nocobase/mailer';
|
|
2
2
|
import { createServiceToken, ServiceProvider, } from '@nocobase/service-provider';
|
|
3
3
|
import { defineAppConfig, resolveChannelType, envString, } from '../config/index.js';
|
|
4
|
+
/** @deprecated Own a transport from @nocobase/mailer in the sending service. */
|
|
4
5
|
export const mailerToken = createServiceToken('@nocobase/app-server/mailer');
|
|
6
|
+
/** @deprecated Import validateMailChannels from @nocobase/app-plugin-notification-providers/config. */
|
|
5
7
|
export const validateMailChannels = (config, context) => {
|
|
6
8
|
for (const [name, channel] of Object.entries(config.channels ?? {})) {
|
|
7
9
|
if (!channel || typeof channel !== 'object')
|
|
@@ -40,7 +42,7 @@ function mailChannel(channel) {
|
|
|
40
42
|
return undefined;
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
|
-
/**
|
|
45
|
+
/** @deprecated Import defineMailChannelsConfig from @nocobase/app-plugin-notification-providers/config. */
|
|
44
46
|
export function defineMailChannelsConfig(definition) {
|
|
45
47
|
const extra = definition.validate
|
|
46
48
|
? Array.isArray(definition.validate)
|
|
@@ -63,6 +65,7 @@ export function defineMailChannelsConfig(definition) {
|
|
|
63
65
|
},
|
|
64
66
|
});
|
|
65
67
|
}
|
|
68
|
+
/** @deprecated Own a transport from @nocobase/mailer in the sending service. */
|
|
66
69
|
export function createMailer(config) {
|
|
67
70
|
const transports = new Map();
|
|
68
71
|
let closed = false;
|
|
@@ -98,6 +101,7 @@ export function createMailer(config) {
|
|
|
98
101
|
},
|
|
99
102
|
};
|
|
100
103
|
}
|
|
104
|
+
/** @deprecated Own a transport and its lifecycle in the sending service. */
|
|
101
105
|
export class MailerProvider extends ServiceProvider {
|
|
102
106
|
name = '@nocobase/app-server/mailer';
|
|
103
107
|
register() {
|
package/dist/mailer/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mailer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GAMpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,eAAe,GAEhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,SAAS,GAIV,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mailer/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/app-server",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"prettier": "@nocobase/dev-config/prettier",
|
|
6
6
|
"engines": {
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
"@nocobase/secrets": "^0.1.0-beta.1",
|
|
126
126
|
"@nocobase/session": "^0.1.0-beta.3",
|
|
127
127
|
"@nocobase/snowflake": "^1.0.0-beta.4",
|
|
128
|
-
"@nocobase/mailer": "^0.1.0-beta.
|
|
128
|
+
"@nocobase/mailer": "^0.1.0-beta.1"
|
|
129
129
|
},
|
|
130
130
|
"devDependencies": {
|
|
131
131
|
"@types/node": "^24.0.0",
|
|
@@ -149,10 +149,10 @@
|
|
|
149
149
|
"@nocobase/db-oceanbase": "^0.1.0-beta.4",
|
|
150
150
|
"@nocobase/i18n": "^2.0.0-beta.1",
|
|
151
151
|
"@nocobase/caching": "^0.1.0-beta.3",
|
|
152
|
-
"@nocobase/db": "^1.0.0-beta.
|
|
152
|
+
"@nocobase/db": "^1.0.0-beta.24",
|
|
153
153
|
"@nocobase/service-provider": "^0.0.2-beta.2",
|
|
154
|
-
"@nocobase/queue": "^
|
|
155
|
-
"@nocobase/jobs": "^
|
|
154
|
+
"@nocobase/queue": "^1.0.0-beta.10",
|
|
155
|
+
"@nocobase/jobs": "^1.0.0-beta.5",
|
|
156
156
|
"@nocobase/db-sqlite": "^0.1.0-beta.6",
|
|
157
157
|
"@nocobase/db-mysql": "^0.1.0-beta.5",
|
|
158
158
|
"@nocobase/db-postgres": "^0.1.0-beta.5",
|