@nocobase/app-server 5.0.0-beta.3 → 5.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/dist/drive/config.d.ts +6 -1
- package/dist/drive/config.d.ts.map +1 -1
- package/dist/drive/config.js +11 -1
- package/dist/drive/config.js.map +1 -1
- package/dist/id-generator/provider.d.ts +1 -0
- package/dist/id-generator/provider.d.ts.map +1 -1
- package/dist/id-generator/provider.js +25 -4
- package/dist/id-generator/provider.js.map +1 -1
- package/dist/id-generator/token.d.ts +7 -0
- package/dist/id-generator/token.d.ts.map +1 -1
- package/dist/id-generator/token.js +2 -0
- package/dist/id-generator/token.js.map +1 -1
- package/dist/runtime/definition.d.ts.map +1 -1
- package/dist/runtime/definition.js +2 -0
- package/dist/runtime/definition.js.map +1 -1
- package/dist/spa/provider.d.ts +2 -0
- package/dist/spa/provider.d.ts.map +1 -1
- package/dist/spa/provider.js +22 -4
- package/dist/spa/provider.js.map +1 -1
- package/package.json +4 -4
package/dist/drive/config.d.ts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { type AppDriveConfig } from '@nocobase/drive';
|
|
2
|
+
import type { AppConfig, ConfigValidator } from '../config/index.js';
|
|
3
|
+
export type { AppDriveConfig, DriveUploadLimit } from '@nocobase/drive';
|
|
4
|
+
export declare const validateDriveConfig: ConfigValidator<AppDriveConfig>;
|
|
5
|
+
/** Register Drive's built-in rules before application configuration is validated. */
|
|
6
|
+
export declare function registerDriveConfig(config: AppConfig): void;
|
|
2
7
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/drive/config.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/drive/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExE,eAAO,MAAM,mBAAmB,EAAE,eAAe,CAAC,cAAc,CAW/D,CAAC;AAEF,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAI3D"}
|
package/dist/drive/config.js
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import { readMaxFileSizeMb } from '@nocobase/drive';
|
|
2
|
+
export const validateDriveConfig = (value, context) => {
|
|
3
|
+
for (const [disk, entry] of Object.entries(value.disks ?? {})) {
|
|
4
|
+
if (readMaxFileSizeMb(entry) === undefined)
|
|
5
|
+
context.error(`disks.${disk}.maxFileSizeMb`, 'Must be a positive integer in MiB.');
|
|
6
|
+
}
|
|
7
|
+
};
|
|
8
|
+
/** Register Drive's built-in rules before application configuration is validated. */
|
|
9
|
+
export function registerDriveConfig(config) {
|
|
10
|
+
config.defineSections(new Map([['drive', { validators: [validateDriveConfig], public: [] }]]));
|
|
11
|
+
}
|
|
2
12
|
//# sourceMappingURL=config.js.map
|
package/dist/drive/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/drive/config.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/drive/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAuB,MAAM,iBAAiB,CAAC;AAIzE,MAAM,CAAC,MAAM,mBAAmB,GAAoC,CAClE,KAAK,EACL,OAAO,EACP,EAAE;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,IAAI,iBAAiB,CAAC,KAAK,CAAC,KAAK,SAAS;YACxC,OAAO,CAAC,KAAK,CACX,SAAS,IAAI,gBAAgB,EAC7B,oCAAoC,CACrC,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AAEF,qFAAqF;AACrF,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,cAAc,CACnB,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CACxE,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/id-generator/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/id-generator/provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAIhE,qBAAa,mBAAoB,SAAQ,eAAe,CAAC,oBAAoB,CAAC;IAC5E,SAAgB,IAAI,EAAE,MAAM,CAAuC;IAEnD,QAAQ,IAAI,IAAI;IAoBV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAO5C"}
|
|
@@ -1,11 +1,32 @@
|
|
|
1
|
-
import { SnowflakeIdGenerator } from '@nocobase/snowflake';
|
|
1
|
+
import { SnowflakeIdGenerator, } from '@nocobase/snowflake';
|
|
2
2
|
import { ServiceProvider } from '@nocobase/service-provider';
|
|
3
|
-
import { idGeneratorToken } from './token.js';
|
|
3
|
+
import { idGeneratorImplementationToken, idGeneratorToken } from './token.js';
|
|
4
4
|
export class IdGeneratorProvider extends ServiceProvider {
|
|
5
5
|
name = '@nocobase/app-server/id-generator';
|
|
6
6
|
register() {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
this.app.container.singleton(idGeneratorToken, (resolver) => {
|
|
8
|
+
let selected;
|
|
9
|
+
const implementation = () => {
|
|
10
|
+
if (selected)
|
|
11
|
+
return selected;
|
|
12
|
+
// Select on first generation, not when an earlier provider resolves the service.
|
|
13
|
+
selected = resolver.has(idGeneratorImplementationToken)
|
|
14
|
+
? resolver.resolve(idGeneratorImplementationToken)
|
|
15
|
+
: new SnowflakeIdGenerator(this.app.config.get('snowflake'));
|
|
16
|
+
return selected;
|
|
17
|
+
};
|
|
18
|
+
return {
|
|
19
|
+
generate: () => implementation().generate(),
|
|
20
|
+
generateString: () => implementation().generateString(),
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
async boot() {
|
|
25
|
+
if (this.app.container.has(idGeneratorImplementationToken)) {
|
|
26
|
+
await this.app.container
|
|
27
|
+
.resolve(idGeneratorImplementationToken)
|
|
28
|
+
.initialize();
|
|
29
|
+
}
|
|
9
30
|
}
|
|
10
31
|
}
|
|
11
32
|
//# sourceMappingURL=provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/id-generator/provider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/id-generator/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAI7D,OAAO,EAAE,8BAA8B,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9E,MAAM,OAAO,mBAAoB,SAAQ,eAAqC;IAC5D,IAAI,GAAW,mCAAmC,CAAC;IAEnD,QAAQ;QACtB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC1D,IAAI,QAAwC,CAAC;YAC7C,MAAM,cAAc,GAAG,GAAuB,EAAE;gBAC9C,IAAI,QAAQ;oBAAE,OAAO,QAAQ,CAAC;gBAC9B,iFAAiF;gBACjF,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,8BAA8B,CAAC;oBACrD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,8BAA8B,CAAC;oBAClD,CAAC,CAAC,IAAI,oBAAoB,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAA6B,WAAW,CAAE,CAC9D,CAAC;gBACN,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YACF,OAAO;gBACL,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE;gBAC3C,cAAc,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,cAAc,EAAE;aACxD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEe,KAAK,CAAC,IAAI;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,8BAA8B,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS;iBACrB,OAAO,CAAC,8BAA8B,CAAC;iBACvC,UAAU,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { type ServiceToken } from '@nocobase/service-provider';
|
|
2
2
|
import type { IdGeneratorService } from '@nocobase/snowflake';
|
|
3
3
|
export declare const idGeneratorToken: ServiceToken<IdGeneratorService>;
|
|
4
|
+
/** Optional synchronous ID implementation, initialized before consumers boot. */
|
|
5
|
+
export interface IdGeneratorImplementation extends IdGeneratorService {
|
|
6
|
+
/** May share a sticky initialization promise with an earlier database task hook. */
|
|
7
|
+
initialize(): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
/** Register at most one implementation per application, during provider registration. */
|
|
10
|
+
export declare const idGeneratorImplementationToken: ServiceToken<IdGeneratorImplementation>;
|
|
4
11
|
//# sourceMappingURL=token.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/id-generator/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,kBAAkB,CACC,CAAC"}
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/id-generator/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,kBAAkB,CACC,CAAC;AAEhE,iFAAiF;AACjF,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,oFAAoF;IACpF,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,yFAAyF;AACzF,eAAO,MAAM,8BAA8B,EAAE,YAAY,CAAC,yBAAyB,CAGhF,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { createServiceToken, } from '@nocobase/service-provider';
|
|
2
2
|
export const idGeneratorToken = createServiceToken('@nocobase/snowflake');
|
|
3
|
+
/** Register at most one implementation per application, during provider registration. */
|
|
4
|
+
export const idGeneratorImplementationToken = createServiceToken('@nocobase/app-server/id-generator/implementation');
|
|
3
5
|
//# sourceMappingURL=token.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/id-generator/token.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAEnB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,CAAC,MAAM,gBAAgB,GAC3B,kBAAkB,CAAqB,qBAAqB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/id-generator/token.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAEnB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,CAAC,MAAM,gBAAgB,GAC3B,kBAAkB,CAAqB,qBAAqB,CAAC,CAAC;AAQhE,yFAAyF;AACzF,MAAM,CAAC,MAAM,8BAA8B,GACzC,kBAAkB,CAChB,kDAAkD,CACnD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/runtime/definition.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/runtime/definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { resolveDatabaseConfig } from '../database/resolve-config.js';
|
|
2
|
+
import { registerDriveConfig } from '../drive/config.js';
|
|
2
3
|
import { createConfigContext, createAppPaths, } from '../config/index.js';
|
|
3
4
|
import { resolveAppServerPlugins, } from '../plugins/index.js';
|
|
4
5
|
import { resolveAppScopeRuntime, } from './scope.js';
|
|
@@ -17,6 +18,7 @@ export async function resolveAppRuntime(definition, scope) {
|
|
|
17
18
|
const context = createAppRuntimeConfigContext(definition, scope, base);
|
|
18
19
|
const appConfig = definition.createAppConfig(context);
|
|
19
20
|
await appConfig.loadAll();
|
|
21
|
+
registerDriveConfig(appConfig);
|
|
20
22
|
const runtime = {
|
|
21
23
|
...base,
|
|
22
24
|
scope,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/runtime/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/runtime/definition.ts"],"names":[],"mappings":"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"}
|
package/dist/spa/provider.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { ServiceContainer } from '@nocobase/service-provider';
|
|
1
2
|
import { type AppRootRouteContribution } from '../router/index.js';
|
|
2
3
|
import { type AppConfigAccessor } from '../config/index.js';
|
|
3
4
|
export interface SpaRoutesApplication {
|
|
5
|
+
readonly container: Pick<ServiceContainer, 'resolve'>;
|
|
4
6
|
readonly config: AppConfigAccessor;
|
|
5
7
|
readonly mode: 'standalone' | 'embedded';
|
|
6
8
|
readonly publicBasePath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/spa/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/spa/provider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAM5B,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,+FAA+F;IAC/F,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,eAAO,MAAM,aAAa,EAAE,wBAAwB,CAAC,oBAAoB,CA0CrE,CAAC"}
|
package/dist/spa/provider.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { Hono } from 'hono';
|
|
4
|
+
import { driveManagerToken } from '../drive/token.js';
|
|
4
5
|
import { defineRootRoutes, } from '../router/index.js';
|
|
5
6
|
import { registerSpaRoutes } from './routes.js';
|
|
6
7
|
import { createMountedOriginProxyHandler } from '../proxy/index.js';
|
|
@@ -11,6 +12,13 @@ export const spaRootRoutes = defineRootRoutes((app) => {
|
|
|
11
12
|
const spa = app.config.get('spa');
|
|
12
13
|
const apiUrl = joinBasePath(app.publicBasePath, '/api');
|
|
13
14
|
const appPackage = readAppPackage(app.paths.rootDir);
|
|
15
|
+
const drive = app.config.get('drive');
|
|
16
|
+
const manager = drive
|
|
17
|
+
? app.container.resolve(driveManagerToken)
|
|
18
|
+
: undefined;
|
|
19
|
+
const uploadLimits = drive && manager
|
|
20
|
+
? { default: drive.default, disks: manager.limits }
|
|
21
|
+
: undefined;
|
|
14
22
|
registerSpaRoutes(router, {
|
|
15
23
|
basePath: identity.internalBasePath,
|
|
16
24
|
publicBasePath: app.publicBasePath,
|
|
@@ -26,7 +34,7 @@ export const spaRootRoutes = defineRootRoutes((app) => {
|
|
|
26
34
|
publicConfig: () => createPublicConfig((app.config.publicValues?.() ?? {}),
|
|
27
35
|
// Read by path rather than through the definition, so these routes stay usable in an application composed
|
|
28
36
|
// without the i18n config registered. The browser falls back to its own default when nothing is published.
|
|
29
|
-
app.config.get('i18n.defaultLocale'), appPackage),
|
|
37
|
+
app.config.get('i18n.defaultLocale'), appPackage, uploadLimits),
|
|
30
38
|
});
|
|
31
39
|
return router;
|
|
32
40
|
});
|
|
@@ -48,11 +56,21 @@ function createClientConfig(configured, runtime) {
|
|
|
48
56
|
* `i18n.defaultLocale` the server does, rather than a separate client-side copy that could disagree with it, and shows
|
|
49
57
|
* the application's `displayName` and `version` from its own `package.json` rather than values baked in at build time.
|
|
50
58
|
*/
|
|
51
|
-
function createPublicConfig(published, defaultLocale, appPackage) {
|
|
59
|
+
function createPublicConfig(published, defaultLocale, appPackage, uploadLimits) {
|
|
60
|
+
// Project named disks to numeric limits only; never serialize storage configuration.
|
|
61
|
+
const withDrive = uploadLimits
|
|
62
|
+
? {
|
|
63
|
+
...published,
|
|
64
|
+
drive: {
|
|
65
|
+
...readConfigSection(published.drive),
|
|
66
|
+
uploadLimits,
|
|
67
|
+
},
|
|
68
|
+
}
|
|
69
|
+
: published;
|
|
52
70
|
const withLocale = defaultLocale === undefined
|
|
53
|
-
?
|
|
71
|
+
? withDrive
|
|
54
72
|
: {
|
|
55
|
-
...
|
|
73
|
+
...withDrive,
|
|
56
74
|
i18n: { ...readConfigSection(published.i18n), defaultLocale },
|
|
57
75
|
};
|
|
58
76
|
if (!appPackage.displayName && !appPackage.version)
|
package/dist/spa/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/spa/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/spa/provider.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": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"prettier": "@nocobase/dev-config/prettier",
|
|
6
6
|
"engines": {
|
|
@@ -119,11 +119,11 @@
|
|
|
119
119
|
"hono": "^4.13.2",
|
|
120
120
|
"@standard-schema/spec": "^1.0.0",
|
|
121
121
|
"hono-openapi": "^1.3.3",
|
|
122
|
-
"zod": "^4.6.
|
|
122
|
+
"zod": "^4.6.6",
|
|
123
123
|
"openapi-types": "^12.1.3",
|
|
124
124
|
"@nocobase/app-websocket": "^0.1.0-beta.1",
|
|
125
125
|
"@nocobase/config": "^0.1.0-beta.3",
|
|
126
|
-
"@nocobase/drive": "^0.1.0-beta.
|
|
126
|
+
"@nocobase/drive": "^0.1.0-beta.8",
|
|
127
127
|
"@nocobase/logging": "^0.1.0-beta.7",
|
|
128
128
|
"@nocobase/realtime": "^1.0.0-beta.2",
|
|
129
129
|
"@nocobase/secrets": "^0.1.0-beta.1",
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"@nocobase/db-oceanbase": "^0.1.0-beta.4",
|
|
154
154
|
"@nocobase/i18n": "^2.0.0-beta.2",
|
|
155
155
|
"@nocobase/caching": "^1.0.0-beta.4",
|
|
156
|
-
"@nocobase/db": "^1.0.0-beta.
|
|
156
|
+
"@nocobase/db": "^1.0.0-beta.28",
|
|
157
157
|
"@nocobase/service-provider": "^0.0.2-beta.2",
|
|
158
158
|
"@nocobase/queue": "^1.0.0-beta.11",
|
|
159
159
|
"@nocobase/jobs": "^1.0.0-beta.6",
|