@ketvietlab/ketjs 0.1.1
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/LICENSE +21 -0
- package/README.md +36 -0
- package/dist/agent/capabilities.d.ts +62 -0
- package/dist/agent/capabilities.d.ts.map +1 -0
- package/dist/agent/capabilities.js +89 -0
- package/dist/agent/capabilities.js.map +1 -0
- package/dist/agent/permissions.d.ts +56 -0
- package/dist/agent/permissions.d.ts.map +1 -0
- package/dist/agent/permissions.js +209 -0
- package/dist/agent/permissions.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +698 -0
- package/dist/cli.js.map +1 -0
- package/dist/codegen/dts.d.ts +3 -0
- package/dist/codegen/dts.d.ts.map +1 -0
- package/dist/codegen/dts.js +94 -0
- package/dist/codegen/dts.js.map +1 -0
- package/dist/data/adapter.d.ts +4 -0
- package/dist/data/adapter.d.ts.map +1 -0
- package/dist/data/adapter.js +18 -0
- package/dist/data/adapter.js.map +1 -0
- package/dist/data/changeset.d.ts +49 -0
- package/dist/data/changeset.d.ts.map +1 -0
- package/dist/data/changeset.js +206 -0
- package/dist/data/changeset.js.map +1 -0
- package/dist/data/expr.d.ts +59 -0
- package/dist/data/expr.d.ts.map +1 -0
- package/dist/data/expr.js +61 -0
- package/dist/data/expr.js.map +1 -0
- package/dist/data/fleet.d.ts +28 -0
- package/dist/data/fleet.d.ts.map +1 -0
- package/dist/data/fleet.js +82 -0
- package/dist/data/fleet.js.map +1 -0
- package/dist/data/list-search.d.ts +93 -0
- package/dist/data/list-search.d.ts.map +1 -0
- package/dist/data/list-search.js +268 -0
- package/dist/data/list-search.js.map +1 -0
- package/dist/data/migrate.d.ts +75 -0
- package/dist/data/migrate.d.ts.map +1 -0
- package/dist/data/migrate.js +136 -0
- package/dist/data/migrate.js.map +1 -0
- package/dist/data/pool.d.ts +20 -0
- package/dist/data/pool.d.ts.map +1 -0
- package/dist/data/pool.js +92 -0
- package/dist/data/pool.js.map +1 -0
- package/dist/data/query.d.ts +111 -0
- package/dist/data/query.d.ts.map +1 -0
- package/dist/data/query.js +268 -0
- package/dist/data/query.js.map +1 -0
- package/dist/data/sqlite.d.ts +3 -0
- package/dist/data/sqlite.d.ts.map +1 -0
- package/dist/data/sqlite.js +107 -0
- package/dist/data/sqlite.js.map +1 -0
- package/dist/data/time.d.ts +9 -0
- package/dist/data/time.d.ts.map +1 -0
- package/dist/data/time.js +107 -0
- package/dist/data/time.js.map +1 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/kernel/apps.d.ts +43 -0
- package/dist/kernel/apps.d.ts.map +1 -0
- package/dist/kernel/apps.js +234 -0
- package/dist/kernel/apps.js.map +1 -0
- package/dist/kernel/compose.d.ts +6 -0
- package/dist/kernel/compose.d.ts.map +1 -0
- package/dist/kernel/compose.js +976 -0
- package/dist/kernel/compose.js.map +1 -0
- package/dist/kernel/define.d.ts +9 -0
- package/dist/kernel/define.d.ts.map +1 -0
- package/dist/kernel/define.js +140 -0
- package/dist/kernel/define.js.map +1 -0
- package/dist/kernel/diff.d.ts +11 -0
- package/dist/kernel/diff.d.ts.map +1 -0
- package/dist/kernel/diff.js +106 -0
- package/dist/kernel/diff.js.map +1 -0
- package/dist/kernel/errors.d.ts +17 -0
- package/dist/kernel/errors.d.ts.map +1 -0
- package/dist/kernel/errors.js +43 -0
- package/dist/kernel/errors.js.map +1 -0
- package/dist/kernel/graph.d.ts +3 -0
- package/dist/kernel/graph.d.ts.map +1 -0
- package/dist/kernel/graph.js +56 -0
- package/dist/kernel/graph.js.map +1 -0
- package/dist/kernel/i18n.d.ts +43 -0
- package/dist/kernel/i18n.d.ts.map +1 -0
- package/dist/kernel/i18n.js +79 -0
- package/dist/kernel/i18n.js.map +1 -0
- package/dist/kernel/index.d.ts +7 -0
- package/dist/kernel/index.d.ts.map +1 -0
- package/dist/kernel/index.js +7 -0
- package/dist/kernel/index.js.map +1 -0
- package/dist/kernel/layout.d.ts +17 -0
- package/dist/kernel/layout.d.ts.map +1 -0
- package/dist/kernel/layout.js +77 -0
- package/dist/kernel/layout.js.map +1 -0
- package/dist/kernel/menu.d.ts +27 -0
- package/dist/kernel/menu.d.ts.map +1 -0
- package/dist/kernel/menu.js +65 -0
- package/dist/kernel/menu.js.map +1 -0
- package/dist/kernel/modules.d.ts +31 -0
- package/dist/kernel/modules.d.ts.map +1 -0
- package/dist/kernel/modules.js +322 -0
- package/dist/kernel/modules.js.map +1 -0
- package/dist/kernel/routes.d.ts +24 -0
- package/dist/kernel/routes.d.ts.map +1 -0
- package/dist/kernel/routes.js +98 -0
- package/dist/kernel/routes.js.map +1 -0
- package/dist/kernel/types.d.ts +8 -0
- package/dist/kernel/types.d.ts.map +1 -0
- package/dist/kernel/types.js +67 -0
- package/dist/kernel/types.js.map +1 -0
- package/dist/kernel/workspace.d.ts +62 -0
- package/dist/kernel/workspace.d.ts.map +1 -0
- package/dist/kernel/workspace.js +156 -0
- package/dist/kernel/workspace.js.map +1 -0
- package/dist/scaffold/index.d.ts +2 -0
- package/dist/scaffold/index.d.ts.map +1 -0
- package/dist/scaffold/index.js +49 -0
- package/dist/scaffold/index.js.map +1 -0
- package/dist/scaffold/templates/app.test.ts.tmpl +17 -0
- package/dist/scaffold/templates/biome.json.tmpl +30 -0
- package/dist/scaffold/templates/dev.mjs.tmpl +16 -0
- package/dist/scaffold/templates/gitignore.tmpl +24 -0
- package/dist/scaffold/templates/ket.workspace.ts.tmpl +18 -0
- package/dist/scaffold/templates/module.ts.tmpl +27 -0
- package/dist/scaffold/templates/package.json.tmpl +25 -0
- package/dist/scaffold/templates/tsconfig.json.tmpl +15 -0
- package/dist/server/boot.d.ts +173 -0
- package/dist/server/boot.d.ts.map +1 -0
- package/dist/server/boot.js +659 -0
- package/dist/server/boot.js.map +1 -0
- package/dist/server/config.d.ts +48 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +82 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/ctx.d.ts +13 -0
- package/dist/server/ctx.d.ts.map +1 -0
- package/dist/server/ctx.js +496 -0
- package/dist/server/ctx.js.map +1 -0
- package/dist/server/fn.d.ts +34 -0
- package/dist/server/fn.d.ts.map +1 -0
- package/dist/server/fn.js +170 -0
- package/dist/server/fn.js.map +1 -0
- package/dist/server/http.d.ts +79 -0
- package/dist/server/http.d.ts.map +1 -0
- package/dist/server/http.js +459 -0
- package/dist/server/http.js.map +1 -0
- package/dist/server/idem.d.ts +31 -0
- package/dist/server/idem.d.ts.map +1 -0
- package/dist/server/idem.js +68 -0
- package/dist/server/idem.js.map +1 -0
- package/dist/server/jobs.d.ts +5 -0
- package/dist/server/jobs.d.ts.map +1 -0
- package/dist/server/jobs.js +24 -0
- package/dist/server/jobs.js.map +1 -0
- package/dist/server/multipart.d.ts +18 -0
- package/dist/server/multipart.d.ts.map +1 -0
- package/dist/server/multipart.js +183 -0
- package/dist/server/multipart.js.map +1 -0
- package/dist/server/project.d.ts +9 -0
- package/dist/server/project.d.ts.map +1 -0
- package/dist/server/project.js +67 -0
- package/dist/server/project.js.map +1 -0
- package/dist/server/queue.d.ts +80 -0
- package/dist/server/queue.d.ts.map +1 -0
- package/dist/server/queue.js +494 -0
- package/dist/server/queue.js.map +1 -0
- package/dist/server/respond.d.ts +91 -0
- package/dist/server/respond.d.ts.map +1 -0
- package/dist/server/respond.js +99 -0
- package/dist/server/respond.js.map +1 -0
- package/dist/server/runtime.d.ts +14 -0
- package/dist/server/runtime.d.ts.map +1 -0
- package/dist/server/runtime.js +25 -0
- package/dist/server/runtime.js.map +1 -0
- package/dist/server/session.d.ts +55 -0
- package/dist/server/session.d.ts.map +1 -0
- package/dist/server/session.js +172 -0
- package/dist/server/session.js.map +1 -0
- package/dist/server/sessionstore.d.ts +54 -0
- package/dist/server/sessionstore.d.ts.map +1 -0
- package/dist/server/sessionstore.js +232 -0
- package/dist/server/sessionstore.js.map +1 -0
- package/dist/server/storage/index.d.ts +11 -0
- package/dist/server/storage/index.d.ts.map +1 -0
- package/dist/server/storage/index.js +31 -0
- package/dist/server/storage/index.js.map +1 -0
- package/dist/server/storage/local.d.ts +5 -0
- package/dist/server/storage/local.d.ts.map +1 -0
- package/dist/server/storage/local.js +165 -0
- package/dist/server/storage/local.js.map +1 -0
- package/dist/server/storage/s3.d.ts +11 -0
- package/dist/server/storage/s3.d.ts.map +1 -0
- package/dist/server/storage/s3.js +133 -0
- package/dist/server/storage/s3.js.map +1 -0
- package/dist/server/storage/sigv4.d.ts +23 -0
- package/dist/server/storage/sigv4.d.ts.map +1 -0
- package/dist/server/storage/sigv4.js +79 -0
- package/dist/server/storage/sigv4.js.map +1 -0
- package/dist/server/storage/types.d.ts +37 -0
- package/dist/server/storage/types.d.ts.map +1 -0
- package/dist/server/storage/types.js +82 -0
- package/dist/server/storage/types.js.map +1 -0
- package/dist/server/stream.d.ts +43 -0
- package/dist/server/stream.d.ts.map +1 -0
- package/dist/server/stream.js +117 -0
- package/dist/server/stream.js.map +1 -0
- package/dist/server/streamstore.d.ts +29 -0
- package/dist/server/streamstore.d.ts.map +1 -0
- package/dist/server/streamstore.js +140 -0
- package/dist/server/streamstore.js.map +1 -0
- package/dist/server/tenants.d.ts +108 -0
- package/dist/server/tenants.d.ts.map +1 -0
- package/dist/server/tenants.js +172 -0
- package/dist/server/tenants.js.map +1 -0
- package/dist/server/transport/index.d.ts +5 -0
- package/dist/server/transport/index.d.ts.map +1 -0
- package/dist/server/transport/index.js +3 -0
- package/dist/server/transport/index.js.map +1 -0
- package/dist/server/transport/memory.d.ts +14 -0
- package/dist/server/transport/memory.d.ts.map +1 -0
- package/dist/server/transport/memory.js +36 -0
- package/dist/server/transport/memory.js.map +1 -0
- package/dist/server/transport/types.d.ts +44 -0
- package/dist/server/transport/types.d.ts.map +1 -0
- package/dist/server/transport/types.js +79 -0
- package/dist/server/transport/types.js.map +1 -0
- package/dist/server/worker.d.ts +33 -0
- package/dist/server/worker.d.ts.map +1 -0
- package/dist/server/worker.js +428 -0
- package/dist/server/worker.js.map +1 -0
- package/dist/testing.d.ts +146 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +406 -0
- package/dist/testing.js.map +1 -0
- package/dist/theme/contracts.d.ts +4 -0
- package/dist/theme/contracts.d.ts.map +1 -0
- package/dist/theme/contracts.js +87 -0
- package/dist/theme/contracts.js.map +1 -0
- package/dist/theme/index.d.ts +8 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +7 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/joints.d.ts +19 -0
- package/dist/theme/joints.d.ts.map +1 -0
- package/dist/theme/joints.js +126 -0
- package/dist/theme/joints.js.map +1 -0
- package/dist/theme/ktl/compile.d.ts +26 -0
- package/dist/theme/ktl/compile.d.ts.map +1 -0
- package/dist/theme/ktl/compile.js +226 -0
- package/dist/theme/ktl/compile.js.map +1 -0
- package/dist/theme/ktl/lexer.d.ts +20 -0
- package/dist/theme/ktl/lexer.d.ts.map +1 -0
- package/dist/theme/ktl/lexer.js +56 -0
- package/dist/theme/ktl/lexer.js.map +1 -0
- package/dist/theme/ktl/parser.d.ts +64 -0
- package/dist/theme/ktl/parser.d.ts.map +1 -0
- package/dist/theme/ktl/parser.js +220 -0
- package/dist/theme/ktl/parser.js.map +1 -0
- package/dist/theme/render.d.ts +19 -0
- package/dist/theme/render.d.ts.map +1 -0
- package/dist/theme/render.js +246 -0
- package/dist/theme/render.js.map +1 -0
- package/dist/theme/templates.d.ts +2 -0
- package/dist/theme/templates.d.ts.map +1 -0
- package/dist/theme/templates.js +40 -0
- package/dist/theme/templates.js.map +1 -0
- package/dist/theme/tokens.d.ts +4 -0
- package/dist/theme/tokens.d.ts.map +1 -0
- package/dist/theme/tokens.js +15 -0
- package/dist/theme/tokens.js.map +1 -0
- package/dist/theme/viewmodel.d.ts +6 -0
- package/dist/theme/viewmodel.d.ts.map +1 -0
- package/dist/theme/viewmodel.js +40 -0
- package/dist/theme/viewmodel.js.map +1 -0
- package/dist/types.d.ts +614 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/kernel/compose.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { KetModule, ModuleSpec } from '../types.ts';
|
|
2
|
+
export declare function defineModule(spec: ModuleSpec): KetModule;
|
|
3
|
+
/**
|
|
4
|
+
* A theme is installable like anything else — it has to be, since its templates are
|
|
5
|
+
* what a page renders through. So it defaults to appearing in the app list under its
|
|
6
|
+
* own category: a theme nobody can switch on is a theme nobody can use.
|
|
7
|
+
*/
|
|
8
|
+
export declare function defineTheme(spec: ModuleSpec): KetModule;
|
|
9
|
+
//# sourceMappingURL=define.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../../../../packages/ketjs/src/kernel/define.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAsCxD,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAsDxD;AAgBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CA2BvD"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
// The declaration surface. Everything a module contributes is declared here and
|
|
2
|
+
// nowhere else: no side-channel registration, no import-time magic, nothing that
|
|
3
|
+
// depends on a file's name or location.
|
|
4
|
+
import { KetError } from './errors.js';
|
|
5
|
+
const MODULE_KEYS = new Set([
|
|
6
|
+
'name',
|
|
7
|
+
'version',
|
|
8
|
+
'depends',
|
|
9
|
+
'models',
|
|
10
|
+
'extend',
|
|
11
|
+
'joints',
|
|
12
|
+
'fills',
|
|
13
|
+
'functions',
|
|
14
|
+
'jobs',
|
|
15
|
+
'views',
|
|
16
|
+
'requires',
|
|
17
|
+
'tokens',
|
|
18
|
+
'templates',
|
|
19
|
+
'provides',
|
|
20
|
+
'kind',
|
|
21
|
+
'islands',
|
|
22
|
+
'sections',
|
|
23
|
+
'contentTypes',
|
|
24
|
+
'taxonomies',
|
|
25
|
+
'relations',
|
|
26
|
+
'app',
|
|
27
|
+
'title',
|
|
28
|
+
'summary',
|
|
29
|
+
'category',
|
|
30
|
+
'install',
|
|
31
|
+
'autoInstall',
|
|
32
|
+
'removable',
|
|
33
|
+
'messages',
|
|
34
|
+
'omits',
|
|
35
|
+
'menus',
|
|
36
|
+
'assets',
|
|
37
|
+
'styles',
|
|
38
|
+
'routes',
|
|
39
|
+
]);
|
|
40
|
+
export function defineModule(spec) {
|
|
41
|
+
if (!spec || typeof spec !== 'object')
|
|
42
|
+
throw new KetError({ code: 'E_MODULE_SHAPE', message: 'defineModule() expects an object' });
|
|
43
|
+
if (typeof spec.name !== 'string' || !/^[a-z][a-z0-9_]*$/.test(spec.name)) {
|
|
44
|
+
throw new KetError({
|
|
45
|
+
code: 'E_MODULE_NAME',
|
|
46
|
+
message: `invalid module name ${JSON.stringify(spec.name)}`,
|
|
47
|
+
hint: 'use lowercase letters, digits and underscore, starting with a letter',
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
for (const k of Object.keys(spec)) {
|
|
51
|
+
if (!MODULE_KEYS.has(k)) {
|
|
52
|
+
throw new KetError({
|
|
53
|
+
code: 'E_MODULE_UNKNOWN_KEY',
|
|
54
|
+
module: spec.name,
|
|
55
|
+
message: `module "${spec.name}" declares unknown key "${k}"`,
|
|
56
|
+
hint: `known keys: ${[...MODULE_KEYS].join(', ')}`,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return Object.freeze({
|
|
61
|
+
kind: spec.kind ?? 'module',
|
|
62
|
+
name: spec.name,
|
|
63
|
+
version: spec.version ?? '0.0.0',
|
|
64
|
+
depends: Object.freeze([...(spec.depends ?? [])]),
|
|
65
|
+
models: spec.models ?? {},
|
|
66
|
+
extend: spec.extend ?? {},
|
|
67
|
+
joints: spec.joints ?? {},
|
|
68
|
+
fills: spec.fills ?? {},
|
|
69
|
+
functions: spec.functions ?? {},
|
|
70
|
+
jobs: spec.jobs ?? {},
|
|
71
|
+
views: spec.views ?? {},
|
|
72
|
+
requires: Object.freeze([...(spec.requires ?? [])]),
|
|
73
|
+
tokens: spec.tokens ?? {},
|
|
74
|
+
templates: spec.templates ?? {},
|
|
75
|
+
provides: Object.freeze([...(spec.provides ?? [])]),
|
|
76
|
+
assets: spec.assets ?? null,
|
|
77
|
+
styles: Object.freeze([...(spec.styles ?? [])]),
|
|
78
|
+
routes: spec.routes ?? {},
|
|
79
|
+
menus: spec.menus ?? {},
|
|
80
|
+
omits: Object.freeze([...(spec.omits ?? [])]),
|
|
81
|
+
islands: spec.islands ?? {},
|
|
82
|
+
sections: spec.sections ?? {},
|
|
83
|
+
contentTypes: spec.contentTypes ?? {},
|
|
84
|
+
taxonomies: spec.taxonomies ?? {},
|
|
85
|
+
relations: spec.relations ?? {},
|
|
86
|
+
app: spec.app === true,
|
|
87
|
+
title: spec.title ?? spec.name,
|
|
88
|
+
summary: spec.summary ?? '',
|
|
89
|
+
category: spec.category ?? 'Khác',
|
|
90
|
+
install: spec.install ?? (spec.autoInstall === true ? 'auto' : 'manual'),
|
|
91
|
+
removable: spec.removable !== false,
|
|
92
|
+
messages: spec.messages ?? {},
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
// A theme is a module with a restricted role. It may provide templates, fill
|
|
96
|
+
// joints and declare tokens; it may NOT declare models, extend models, or register
|
|
97
|
+
// server functions. Third-party themes are only safe to install because this
|
|
98
|
+
// restriction is enforced here rather than left to convention.
|
|
99
|
+
const THEME_FORBIDDEN = [
|
|
100
|
+
'models',
|
|
101
|
+
'extend',
|
|
102
|
+
'functions',
|
|
103
|
+
'jobs',
|
|
104
|
+
'islands',
|
|
105
|
+
'contentTypes',
|
|
106
|
+
'taxonomies',
|
|
107
|
+
];
|
|
108
|
+
/**
|
|
109
|
+
* A theme is installable like anything else — it has to be, since its templates are
|
|
110
|
+
* what a page renders through. So it defaults to appearing in the app list under its
|
|
111
|
+
* own category: a theme nobody can switch on is a theme nobody can use.
|
|
112
|
+
*/
|
|
113
|
+
export function defineTheme(spec) {
|
|
114
|
+
// Assets and styles a theme may ship — that is most of what a theme *is*. Routes
|
|
115
|
+
// it may not: a route is code running on the server, which is the line themes
|
|
116
|
+
// exist on the far side of.
|
|
117
|
+
if (spec.routes) {
|
|
118
|
+
throw new KetError({
|
|
119
|
+
code: 'E_THEME_OVERREACH',
|
|
120
|
+
module: spec.name,
|
|
121
|
+
message: `theme "${spec.name}" declares routes, which themes are not allowed to do`,
|
|
122
|
+
hint: 'a route is server code; a theme may ship assets and styles, and place an island for behaviour',
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
for (const k of THEME_FORBIDDEN) {
|
|
126
|
+
const v = spec[k];
|
|
127
|
+
if (v && Object.keys(v).length > 0) {
|
|
128
|
+
throw new KetError({
|
|
129
|
+
code: 'E_THEME_OVERREACH',
|
|
130
|
+
module: spec.name,
|
|
131
|
+
message: `theme "${spec.name}" declares "${k}", which themes are not allowed to do`,
|
|
132
|
+
hint: k === 'islands'
|
|
133
|
+
? 'a theme places an island with {% island "name" %} but never defines one — move it into a module'
|
|
134
|
+
: `themes may only declare: templates, provides, fills, tokens, requires. Move "${k}" into a module.`,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return defineModule({ app: true, category: 'Giao diện', ...spec, kind: 'theme' });
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=define.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/kernel/define.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Manifest } from '../types.ts';
|
|
2
|
+
export type Severity = 'breaking' | 'risky' | 'safe';
|
|
3
|
+
export type DiffItem = {
|
|
4
|
+
severity: Severity;
|
|
5
|
+
code: string;
|
|
6
|
+
message: string;
|
|
7
|
+
hint?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function diffManifests(before: Manifest, after: Manifest): DiffItem[];
|
|
10
|
+
export declare function formatDiff(items: DiffItem[]): string;
|
|
11
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../../packages/ketjs/src/kernel/diff.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAA;AACpD,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3F,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,QAAQ,EAAE,CA4K3E;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CASpD"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
// Upgrade diff — the thing Odoo, WordPress and Shopify structurally cannot do.
|
|
2
|
+
//
|
|
3
|
+
// Because the manifest records every joint, field and signature with provenance,
|
|
4
|
+
// two manifests can be compared and every downstream breakage named BEFORE deploy
|
|
5
|
+
// rather than discovered at 3am after an upgrade.
|
|
6
|
+
export function diffManifests(before, after) {
|
|
7
|
+
const out = [];
|
|
8
|
+
const push = (severity, code, message, hint) => out.push({ severity, code, message, hint });
|
|
9
|
+
for (const key of Object.keys(before.joints)) {
|
|
10
|
+
if (after.joints[key])
|
|
11
|
+
continue;
|
|
12
|
+
const users = after.fills.filter((f) => f.joint === key).map((f) => f.by);
|
|
13
|
+
push('breaking', 'JOINT_REMOVED', `joint "${key}" was removed`, users.length
|
|
14
|
+
? `still filled by: ${users.join(', ')}`
|
|
15
|
+
: 'no installed module fills it - safe to proceed');
|
|
16
|
+
}
|
|
17
|
+
for (const [mkey, bmodel] of Object.entries(before.models)) {
|
|
18
|
+
const amodel = after.models[mkey];
|
|
19
|
+
if (amodel && amodel.scope !== bmodel.scope) {
|
|
20
|
+
push('breaking', 'MODEL_SCOPE_CHANGED', `model "${mkey}" moved from ${bmodel.scope} to ${amodel.scope}`, 'existing rows carry the old shape; widening leaks and narrowing hides data');
|
|
21
|
+
}
|
|
22
|
+
if (!amodel) {
|
|
23
|
+
const extenders = new Set(Object.values(bmodel.fields)
|
|
24
|
+
.filter((f) => f.by !== bmodel.owner)
|
|
25
|
+
.map((f) => f.by));
|
|
26
|
+
push('breaking', 'MODEL_REMOVED', `model "${mkey}" was removed`, extenders.size ? `extended by: ${[...extenders].join(', ')}` : 'no module extends it');
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
for (const [fname, f] of Object.entries(bmodel.fields)) {
|
|
30
|
+
const af = amodel.fields[fname];
|
|
31
|
+
if (!af) {
|
|
32
|
+
const readers = Object.entries(after.views)
|
|
33
|
+
.filter(([, v]) => v.of === mkey && v.fields.includes(fname))
|
|
34
|
+
.map(([k]) => k);
|
|
35
|
+
push('breaking', 'FIELD_REMOVED', `field "${mkey}.${fname}" (contributed by ${f.by}) was removed`, readers.length
|
|
36
|
+
? `read by view(s): ${readers.join(', ')} - data loss on migrate`
|
|
37
|
+
: 'no view reads it, but existing rows lose the column');
|
|
38
|
+
}
|
|
39
|
+
else if (af.base !== f.base || af.target !== f.target) {
|
|
40
|
+
push('breaking', 'FIELD_TYPE_CHANGED', `field "${mkey}.${fname}" changed ${f.base} -> ${af.base}`, 'write an explicit data migration');
|
|
41
|
+
}
|
|
42
|
+
else if (f.optional && !af.optional) {
|
|
43
|
+
push('risky', 'FIELD_NOW_REQUIRED', `field "${mkey}.${fname}" became required`, 'existing NULL rows violate it - backfill first');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
for (const [fkey, bfn] of Object.entries(before.functions)) {
|
|
48
|
+
const afn = after.functions[fkey];
|
|
49
|
+
if (!afn) {
|
|
50
|
+
push('breaking', 'FUNCTION_REMOVED', `server function "${fkey}" was removed`, 'callers and agent tools break');
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
for (const arg of Object.keys(bfn.input)) {
|
|
54
|
+
if (!(arg in afn.input))
|
|
55
|
+
push('breaking', 'INPUT_REMOVED', `"${fkey}" no longer accepts input "${arg}"`);
|
|
56
|
+
}
|
|
57
|
+
for (const [arg, t] of Object.entries(afn.input)) {
|
|
58
|
+
if (!(arg in bfn.input) && !t.endsWith('?')) {
|
|
59
|
+
push('breaking', 'INPUT_ADDED_REQUIRED', `"${fkey}" gained required input "${arg}"`, `make it optional ("${t}?") to stay compatible`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (bfn.idempotent && !afn.idempotent)
|
|
63
|
+
push('risky', 'IDEMPOTENCY_LOST', `"${fkey}" is no longer idempotent`, 'agent retries may double-apply it');
|
|
64
|
+
if (bfn.exposure === 'http' && afn.exposure === 'internal')
|
|
65
|
+
push('breaking', 'FUNCTION_HTTP_REMOVED', `server function "${fkey}" is no longer exposed over generic HTTP`, 'move callers behind the trusted route that owns this internal function');
|
|
66
|
+
if (!bfn.crossCompany && afn.crossCompany) {
|
|
67
|
+
push('risky', 'CROSS_COMPANY_GAINED', `"${fkey}" now reads across legal entities`, 'the company filter no longer applies to it — confirm that is intended');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
for (const [key, job] of Object.entries(before.jobs ?? {})) {
|
|
71
|
+
const next = after.jobs?.[key];
|
|
72
|
+
if (!next) {
|
|
73
|
+
push('breaking', 'JOB_REMOVED', `background job "${key}" was removed`, 'pending records will be discarded instead of running stale code');
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
for (const arg of Object.keys(job.input)) {
|
|
77
|
+
if (!(arg in next.input))
|
|
78
|
+
push('breaking', 'JOB_INPUT_REMOVED', `"${key}" no longer accepts input "${arg}"`);
|
|
79
|
+
}
|
|
80
|
+
for (const [arg, type] of Object.entries(next.input)) {
|
|
81
|
+
if (!(arg in job.input) && !type.endsWith('?'))
|
|
82
|
+
push('breaking', 'JOB_INPUT_ADDED_REQUIRED', `"${key}" gained required input "${arg}"`, 'already-enqueued records do not carry it');
|
|
83
|
+
}
|
|
84
|
+
if (job.queue !== next.queue)
|
|
85
|
+
push('risky', 'JOB_QUEUE_CHANGED', `"${key}" moved from queue "${job.queue}" to "${next.queue}"`, `existing records remain in "${job.queue}" until drained or retried`);
|
|
86
|
+
}
|
|
87
|
+
for (const r of Object.keys(before.regions.provided)) {
|
|
88
|
+
if (!after.regions.provided[r] && after.regions.required.includes(r)) {
|
|
89
|
+
push('breaking', 'REGION_LOST', `region "${r}" is no longer provided by any theme`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
for (const p of after.patches) {
|
|
93
|
+
push('risky', 'UNSAFE_PATCH', `module "${p.by}" unsafe-patches "${p.target}"`, `declared reason: ${p.reason}. The escape hatch is visible here on purpose.`);
|
|
94
|
+
}
|
|
95
|
+
const rank = { breaking: 0, risky: 1, safe: 2 };
|
|
96
|
+
return out.sort((a, b) => rank[a.severity] - rank[b.severity]);
|
|
97
|
+
}
|
|
98
|
+
export function formatDiff(items) {
|
|
99
|
+
if (!items.length)
|
|
100
|
+
return 'no breaking changes';
|
|
101
|
+
return items
|
|
102
|
+
.map((i) => `${i.severity.toUpperCase().padEnd(8)} ${i.code.padEnd(22)} ${i.message}` +
|
|
103
|
+
(i.hint ? `\n${' '.repeat(32)}-> ${i.hint}` : ''))
|
|
104
|
+
.join('\n');
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/kernel/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Diagnostic } from '../types.ts';
|
|
2
|
+
export declare class KetError extends Error {
|
|
3
|
+
code: string;
|
|
4
|
+
module: string | null;
|
|
5
|
+
hint: string | null;
|
|
6
|
+
at: string | null;
|
|
7
|
+
items?: Diagnostic[];
|
|
8
|
+
constructor(d: Diagnostic);
|
|
9
|
+
toJSON(): Diagnostic;
|
|
10
|
+
}
|
|
11
|
+
export declare class Diagnostics {
|
|
12
|
+
items: Diagnostic[];
|
|
13
|
+
add(d: Diagnostic): this;
|
|
14
|
+
get ok(): boolean;
|
|
15
|
+
throwIfAny(): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../packages/ketjs/src/kernel/errors.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,qBAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IAEpB,YAAY,CAAC,EAAE,UAAU,EAOxB;IACD,MAAM,IAAI,UAAU,CAEnB;CACF;AAED,qBAAa,WAAW;IACtB,KAAK,EAAE,UAAU,EAAE,CAAK;IACxB,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAGvB;IACD,IAAI,EAAE,IAAI,OAAO,CAEhB;IACD,UAAU,IAAI,IAAI,CAajB;CACF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Errors are data: every failure carries a machine-readable code, the module that
|
|
2
|
+
// caused it, and a hint naming the fix. Humans read the message; agents read the JSON.
|
|
3
|
+
export class KetError extends Error {
|
|
4
|
+
code;
|
|
5
|
+
module;
|
|
6
|
+
hint;
|
|
7
|
+
at;
|
|
8
|
+
items;
|
|
9
|
+
constructor(d) {
|
|
10
|
+
super(d.message);
|
|
11
|
+
this.name = 'KetError';
|
|
12
|
+
this.code = d.code;
|
|
13
|
+
this.module = d.module ?? null;
|
|
14
|
+
this.hint = d.hint ?? null;
|
|
15
|
+
this.at = d.at ?? null;
|
|
16
|
+
}
|
|
17
|
+
toJSON() {
|
|
18
|
+
return { code: this.code, message: this.message, module: this.module, hint: this.hint, at: this.at };
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class Diagnostics {
|
|
22
|
+
items = [];
|
|
23
|
+
add(d) {
|
|
24
|
+
this.items.push(d);
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
get ok() {
|
|
28
|
+
return this.items.length === 0;
|
|
29
|
+
}
|
|
30
|
+
throwIfAny() {
|
|
31
|
+
if (this.ok)
|
|
32
|
+
return;
|
|
33
|
+
const lines = this.items.map((d) => ` [${d.code}] ${d.module ? d.module + ': ' : ''}${d.message}` +
|
|
34
|
+
(d.hint ? `\n -> ${d.hint}` : ''));
|
|
35
|
+
const err = new KetError({
|
|
36
|
+
code: 'CONTRACT_FAILED',
|
|
37
|
+
message: `${this.items.length} contract violation(s):\n${lines.join('\n')}`,
|
|
38
|
+
});
|
|
39
|
+
err.items = this.items;
|
|
40
|
+
throw err;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/kernel/errors.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,uFAAuF;AAIvF,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,IAAI,CAAQ;IACZ,MAAM,CAAe;IACrB,IAAI,CAAe;IACnB,EAAE,CAAe;IACjB,KAAK,CAAe;IAEpB,YAAY,CAAa;QACvB,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAA;QAC1B,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAA;IACxB,CAAC;IACD,MAAM;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;IACtG,CAAC;CACF;AAED,MAAM,OAAO,WAAW;IACtB,KAAK,GAAiB,EAAE,CAAA;IACxB,GAAG,CAAC,CAAa;QACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAA;IAChC,CAAC;IACD,UAAU;QACR,IAAI,IAAI,CAAC,EAAE;YAAE,OAAM;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAC1B,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE;YAC9D,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACzC,CAAA;QACD,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC;YACvB,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,4BAA4B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC5E,CAAC,CAAA;QACF,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACtB,MAAM,GAAG,CAAA;IACX,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../../packages/ketjs/src/kernel/graph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAqD1D"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { KetError } from './errors.js';
|
|
2
|
+
export function topoSort(modules) {
|
|
3
|
+
const byName = new Map();
|
|
4
|
+
for (const module of modules) {
|
|
5
|
+
if (byName.has(module.name)) {
|
|
6
|
+
throw new KetError({
|
|
7
|
+
code: 'E_MODULE_NAME_CLASH',
|
|
8
|
+
module: module.name,
|
|
9
|
+
message: `more than one module is named "${module.name}"`,
|
|
10
|
+
hint: 'module names are deployment-wide identities; remove or rename one implementation',
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
byName.set(module.name, module);
|
|
14
|
+
}
|
|
15
|
+
for (const m of modules) {
|
|
16
|
+
for (const d of m.depends) {
|
|
17
|
+
if (!byName.has(d)) {
|
|
18
|
+
throw new KetError({
|
|
19
|
+
code: 'E_MISSING_DEPENDENCY',
|
|
20
|
+
module: m.name,
|
|
21
|
+
message: `module "${m.name}" depends on "${d}", which is not installed`,
|
|
22
|
+
hint: `add "${d}" to the app's module list, or remove it from ${m.name}.depends`,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const state = new Map();
|
|
28
|
+
const out = [];
|
|
29
|
+
const stack = [];
|
|
30
|
+
const visit = (name) => {
|
|
31
|
+
const s = state.get(name) ?? 0;
|
|
32
|
+
if (s === 2)
|
|
33
|
+
return;
|
|
34
|
+
if (s === 1) {
|
|
35
|
+
const cycle = [...stack.slice(stack.indexOf(name)), name].join(' -> ');
|
|
36
|
+
throw new KetError({
|
|
37
|
+
code: 'E_DEPENDENCY_CYCLE',
|
|
38
|
+
message: `dependency cycle: ${cycle}`,
|
|
39
|
+
hint: 'break the cycle by moving the shared piece into a third module both can depend on',
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
state.set(name, 1);
|
|
43
|
+
stack.push(name);
|
|
44
|
+
const mod = byName.get(name);
|
|
45
|
+
// sorted for determinism: the same input always produces the same manifest
|
|
46
|
+
for (const d of [...mod.depends].sort())
|
|
47
|
+
visit(d);
|
|
48
|
+
stack.pop();
|
|
49
|
+
state.set(name, 2);
|
|
50
|
+
out.push(mod);
|
|
51
|
+
};
|
|
52
|
+
for (const m of [...modules].sort((a, b) => a.name.localeCompare(b.name)))
|
|
53
|
+
visit(m.name);
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/kernel/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Manifest } from '../types.ts';
|
|
2
|
+
/** A message is a string, or one string per plural category. */
|
|
3
|
+
export type Message = string | Partial<Record<Intl.LDMLPluralRule, string>>;
|
|
4
|
+
export type Catalog = Record<string, Message>;
|
|
5
|
+
export type Messages = Record<string, Catalog>;
|
|
6
|
+
export type TranslateOptions = {
|
|
7
|
+
/** Used when the requested locale has no entry. */
|
|
8
|
+
fallback?: string;
|
|
9
|
+
/** Called with every key that had to fall back — for finding gaps in production. */
|
|
10
|
+
onMissing?: (key: string, locale: string) => void;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Conventionally bound to `_`, after gettext:
|
|
14
|
+
*
|
|
15
|
+
* const _ = translator(manifest, locale)
|
|
16
|
+
* _('backend.apps.title')
|
|
17
|
+
* _('shop.cart', { count: 5 })
|
|
18
|
+
*/
|
|
19
|
+
export type Translator = {
|
|
20
|
+
(key: string, params?: Record<string, unknown>): string;
|
|
21
|
+
locale: string;
|
|
22
|
+
/** True when THIS locale has the key, rather than falling back for it. */
|
|
23
|
+
has(key: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* True when the key produces a translation at all, from this locale or the
|
|
26
|
+
* fallback. Use this to decide whether to translate; `has` answers a different
|
|
27
|
+
* question and using it here means the pseudo-locale silently stops expanding,
|
|
28
|
+
* which is the one thing it exists to do.
|
|
29
|
+
*/
|
|
30
|
+
resolves(key: string): boolean;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Pseudo-locale: every string comes back longer and bracketed. It exists so a
|
|
34
|
+
* layout can be tested against text expansion before a real translation arrives —
|
|
35
|
+
* Vietnamese is short and English is not, and a design tuned to the shorter one
|
|
36
|
+
* breaks on the longer.
|
|
37
|
+
*/
|
|
38
|
+
export declare const PSEUDO_LOCALE = "qps";
|
|
39
|
+
export declare function translator(manifest: Manifest, locale: string, o?: TranslateOptions): Translator;
|
|
40
|
+
/** Which keys each locale is missing, measured against the union of all of them. */
|
|
41
|
+
export declare function missingMessages(manifest: Manifest, locales?: string[]): Record<string, string[]>;
|
|
42
|
+
export declare function formatMissing(missing: Record<string, string[]>): string;
|
|
43
|
+
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../packages/ketjs/src/kernel/i18n.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,gEAAgE;AAChE,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;AAC3E,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC7C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oFAAoF;IACpF,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CAClD,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAA;IACvD,MAAM,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAC/B,CAAA;AAID;;;;;GAKG;AACH,eAAO,MAAM,aAAa,QAAQ,CAAA;AAGlC,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAE,gBAAqB,GAAG,UAAU,CAkCnG;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAahG;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAMvE"}
|