@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.
Files changed (283) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +36 -0
  3. package/dist/agent/capabilities.d.ts +62 -0
  4. package/dist/agent/capabilities.d.ts.map +1 -0
  5. package/dist/agent/capabilities.js +89 -0
  6. package/dist/agent/capabilities.js.map +1 -0
  7. package/dist/agent/permissions.d.ts +56 -0
  8. package/dist/agent/permissions.d.ts.map +1 -0
  9. package/dist/agent/permissions.js +209 -0
  10. package/dist/agent/permissions.js.map +1 -0
  11. package/dist/cli.d.ts +3 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +698 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/codegen/dts.d.ts +3 -0
  16. package/dist/codegen/dts.d.ts.map +1 -0
  17. package/dist/codegen/dts.js +94 -0
  18. package/dist/codegen/dts.js.map +1 -0
  19. package/dist/data/adapter.d.ts +4 -0
  20. package/dist/data/adapter.d.ts.map +1 -0
  21. package/dist/data/adapter.js +18 -0
  22. package/dist/data/adapter.js.map +1 -0
  23. package/dist/data/changeset.d.ts +49 -0
  24. package/dist/data/changeset.d.ts.map +1 -0
  25. package/dist/data/changeset.js +206 -0
  26. package/dist/data/changeset.js.map +1 -0
  27. package/dist/data/expr.d.ts +59 -0
  28. package/dist/data/expr.d.ts.map +1 -0
  29. package/dist/data/expr.js +61 -0
  30. package/dist/data/expr.js.map +1 -0
  31. package/dist/data/fleet.d.ts +28 -0
  32. package/dist/data/fleet.d.ts.map +1 -0
  33. package/dist/data/fleet.js +82 -0
  34. package/dist/data/fleet.js.map +1 -0
  35. package/dist/data/list-search.d.ts +93 -0
  36. package/dist/data/list-search.d.ts.map +1 -0
  37. package/dist/data/list-search.js +268 -0
  38. package/dist/data/list-search.js.map +1 -0
  39. package/dist/data/migrate.d.ts +75 -0
  40. package/dist/data/migrate.d.ts.map +1 -0
  41. package/dist/data/migrate.js +136 -0
  42. package/dist/data/migrate.js.map +1 -0
  43. package/dist/data/pool.d.ts +20 -0
  44. package/dist/data/pool.d.ts.map +1 -0
  45. package/dist/data/pool.js +92 -0
  46. package/dist/data/pool.js.map +1 -0
  47. package/dist/data/query.d.ts +111 -0
  48. package/dist/data/query.d.ts.map +1 -0
  49. package/dist/data/query.js +268 -0
  50. package/dist/data/query.js.map +1 -0
  51. package/dist/data/sqlite.d.ts +3 -0
  52. package/dist/data/sqlite.d.ts.map +1 -0
  53. package/dist/data/sqlite.js +107 -0
  54. package/dist/data/sqlite.js.map +1 -0
  55. package/dist/data/time.d.ts +9 -0
  56. package/dist/data/time.d.ts.map +1 -0
  57. package/dist/data/time.js +107 -0
  58. package/dist/data/time.js.map +1 -0
  59. package/dist/index.d.ts +79 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +51 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/kernel/apps.d.ts +43 -0
  64. package/dist/kernel/apps.d.ts.map +1 -0
  65. package/dist/kernel/apps.js +234 -0
  66. package/dist/kernel/apps.js.map +1 -0
  67. package/dist/kernel/compose.d.ts +6 -0
  68. package/dist/kernel/compose.d.ts.map +1 -0
  69. package/dist/kernel/compose.js +976 -0
  70. package/dist/kernel/compose.js.map +1 -0
  71. package/dist/kernel/define.d.ts +9 -0
  72. package/dist/kernel/define.d.ts.map +1 -0
  73. package/dist/kernel/define.js +140 -0
  74. package/dist/kernel/define.js.map +1 -0
  75. package/dist/kernel/diff.d.ts +11 -0
  76. package/dist/kernel/diff.d.ts.map +1 -0
  77. package/dist/kernel/diff.js +106 -0
  78. package/dist/kernel/diff.js.map +1 -0
  79. package/dist/kernel/errors.d.ts +17 -0
  80. package/dist/kernel/errors.d.ts.map +1 -0
  81. package/dist/kernel/errors.js +43 -0
  82. package/dist/kernel/errors.js.map +1 -0
  83. package/dist/kernel/graph.d.ts +3 -0
  84. package/dist/kernel/graph.d.ts.map +1 -0
  85. package/dist/kernel/graph.js +56 -0
  86. package/dist/kernel/graph.js.map +1 -0
  87. package/dist/kernel/i18n.d.ts +43 -0
  88. package/dist/kernel/i18n.d.ts.map +1 -0
  89. package/dist/kernel/i18n.js +79 -0
  90. package/dist/kernel/i18n.js.map +1 -0
  91. package/dist/kernel/index.d.ts +7 -0
  92. package/dist/kernel/index.d.ts.map +1 -0
  93. package/dist/kernel/index.js +7 -0
  94. package/dist/kernel/index.js.map +1 -0
  95. package/dist/kernel/layout.d.ts +17 -0
  96. package/dist/kernel/layout.d.ts.map +1 -0
  97. package/dist/kernel/layout.js +77 -0
  98. package/dist/kernel/layout.js.map +1 -0
  99. package/dist/kernel/menu.d.ts +27 -0
  100. package/dist/kernel/menu.d.ts.map +1 -0
  101. package/dist/kernel/menu.js +65 -0
  102. package/dist/kernel/menu.js.map +1 -0
  103. package/dist/kernel/modules.d.ts +31 -0
  104. package/dist/kernel/modules.d.ts.map +1 -0
  105. package/dist/kernel/modules.js +322 -0
  106. package/dist/kernel/modules.js.map +1 -0
  107. package/dist/kernel/routes.d.ts +24 -0
  108. package/dist/kernel/routes.d.ts.map +1 -0
  109. package/dist/kernel/routes.js +98 -0
  110. package/dist/kernel/routes.js.map +1 -0
  111. package/dist/kernel/types.d.ts +8 -0
  112. package/dist/kernel/types.d.ts.map +1 -0
  113. package/dist/kernel/types.js +67 -0
  114. package/dist/kernel/types.js.map +1 -0
  115. package/dist/kernel/workspace.d.ts +62 -0
  116. package/dist/kernel/workspace.d.ts.map +1 -0
  117. package/dist/kernel/workspace.js +156 -0
  118. package/dist/kernel/workspace.js.map +1 -0
  119. package/dist/scaffold/index.d.ts +2 -0
  120. package/dist/scaffold/index.d.ts.map +1 -0
  121. package/dist/scaffold/index.js +49 -0
  122. package/dist/scaffold/index.js.map +1 -0
  123. package/dist/scaffold/templates/app.test.ts.tmpl +17 -0
  124. package/dist/scaffold/templates/biome.json.tmpl +30 -0
  125. package/dist/scaffold/templates/dev.mjs.tmpl +16 -0
  126. package/dist/scaffold/templates/gitignore.tmpl +24 -0
  127. package/dist/scaffold/templates/ket.workspace.ts.tmpl +18 -0
  128. package/dist/scaffold/templates/module.ts.tmpl +27 -0
  129. package/dist/scaffold/templates/package.json.tmpl +25 -0
  130. package/dist/scaffold/templates/tsconfig.json.tmpl +15 -0
  131. package/dist/server/boot.d.ts +173 -0
  132. package/dist/server/boot.d.ts.map +1 -0
  133. package/dist/server/boot.js +659 -0
  134. package/dist/server/boot.js.map +1 -0
  135. package/dist/server/config.d.ts +48 -0
  136. package/dist/server/config.d.ts.map +1 -0
  137. package/dist/server/config.js +82 -0
  138. package/dist/server/config.js.map +1 -0
  139. package/dist/server/ctx.d.ts +13 -0
  140. package/dist/server/ctx.d.ts.map +1 -0
  141. package/dist/server/ctx.js +496 -0
  142. package/dist/server/ctx.js.map +1 -0
  143. package/dist/server/fn.d.ts +34 -0
  144. package/dist/server/fn.d.ts.map +1 -0
  145. package/dist/server/fn.js +170 -0
  146. package/dist/server/fn.js.map +1 -0
  147. package/dist/server/http.d.ts +79 -0
  148. package/dist/server/http.d.ts.map +1 -0
  149. package/dist/server/http.js +459 -0
  150. package/dist/server/http.js.map +1 -0
  151. package/dist/server/idem.d.ts +31 -0
  152. package/dist/server/idem.d.ts.map +1 -0
  153. package/dist/server/idem.js +68 -0
  154. package/dist/server/idem.js.map +1 -0
  155. package/dist/server/jobs.d.ts +5 -0
  156. package/dist/server/jobs.d.ts.map +1 -0
  157. package/dist/server/jobs.js +24 -0
  158. package/dist/server/jobs.js.map +1 -0
  159. package/dist/server/multipart.d.ts +18 -0
  160. package/dist/server/multipart.d.ts.map +1 -0
  161. package/dist/server/multipart.js +183 -0
  162. package/dist/server/multipart.js.map +1 -0
  163. package/dist/server/project.d.ts +9 -0
  164. package/dist/server/project.d.ts.map +1 -0
  165. package/dist/server/project.js +67 -0
  166. package/dist/server/project.js.map +1 -0
  167. package/dist/server/queue.d.ts +80 -0
  168. package/dist/server/queue.d.ts.map +1 -0
  169. package/dist/server/queue.js +494 -0
  170. package/dist/server/queue.js.map +1 -0
  171. package/dist/server/respond.d.ts +91 -0
  172. package/dist/server/respond.d.ts.map +1 -0
  173. package/dist/server/respond.js +99 -0
  174. package/dist/server/respond.js.map +1 -0
  175. package/dist/server/runtime.d.ts +14 -0
  176. package/dist/server/runtime.d.ts.map +1 -0
  177. package/dist/server/runtime.js +25 -0
  178. package/dist/server/runtime.js.map +1 -0
  179. package/dist/server/session.d.ts +55 -0
  180. package/dist/server/session.d.ts.map +1 -0
  181. package/dist/server/session.js +172 -0
  182. package/dist/server/session.js.map +1 -0
  183. package/dist/server/sessionstore.d.ts +54 -0
  184. package/dist/server/sessionstore.d.ts.map +1 -0
  185. package/dist/server/sessionstore.js +232 -0
  186. package/dist/server/sessionstore.js.map +1 -0
  187. package/dist/server/storage/index.d.ts +11 -0
  188. package/dist/server/storage/index.d.ts.map +1 -0
  189. package/dist/server/storage/index.js +31 -0
  190. package/dist/server/storage/index.js.map +1 -0
  191. package/dist/server/storage/local.d.ts +5 -0
  192. package/dist/server/storage/local.d.ts.map +1 -0
  193. package/dist/server/storage/local.js +165 -0
  194. package/dist/server/storage/local.js.map +1 -0
  195. package/dist/server/storage/s3.d.ts +11 -0
  196. package/dist/server/storage/s3.d.ts.map +1 -0
  197. package/dist/server/storage/s3.js +133 -0
  198. package/dist/server/storage/s3.js.map +1 -0
  199. package/dist/server/storage/sigv4.d.ts +23 -0
  200. package/dist/server/storage/sigv4.d.ts.map +1 -0
  201. package/dist/server/storage/sigv4.js +79 -0
  202. package/dist/server/storage/sigv4.js.map +1 -0
  203. package/dist/server/storage/types.d.ts +37 -0
  204. package/dist/server/storage/types.d.ts.map +1 -0
  205. package/dist/server/storage/types.js +82 -0
  206. package/dist/server/storage/types.js.map +1 -0
  207. package/dist/server/stream.d.ts +43 -0
  208. package/dist/server/stream.d.ts.map +1 -0
  209. package/dist/server/stream.js +117 -0
  210. package/dist/server/stream.js.map +1 -0
  211. package/dist/server/streamstore.d.ts +29 -0
  212. package/dist/server/streamstore.d.ts.map +1 -0
  213. package/dist/server/streamstore.js +140 -0
  214. package/dist/server/streamstore.js.map +1 -0
  215. package/dist/server/tenants.d.ts +108 -0
  216. package/dist/server/tenants.d.ts.map +1 -0
  217. package/dist/server/tenants.js +172 -0
  218. package/dist/server/tenants.js.map +1 -0
  219. package/dist/server/transport/index.d.ts +5 -0
  220. package/dist/server/transport/index.d.ts.map +1 -0
  221. package/dist/server/transport/index.js +3 -0
  222. package/dist/server/transport/index.js.map +1 -0
  223. package/dist/server/transport/memory.d.ts +14 -0
  224. package/dist/server/transport/memory.d.ts.map +1 -0
  225. package/dist/server/transport/memory.js +36 -0
  226. package/dist/server/transport/memory.js.map +1 -0
  227. package/dist/server/transport/types.d.ts +44 -0
  228. package/dist/server/transport/types.d.ts.map +1 -0
  229. package/dist/server/transport/types.js +79 -0
  230. package/dist/server/transport/types.js.map +1 -0
  231. package/dist/server/worker.d.ts +33 -0
  232. package/dist/server/worker.d.ts.map +1 -0
  233. package/dist/server/worker.js +428 -0
  234. package/dist/server/worker.js.map +1 -0
  235. package/dist/testing.d.ts +146 -0
  236. package/dist/testing.d.ts.map +1 -0
  237. package/dist/testing.js +406 -0
  238. package/dist/testing.js.map +1 -0
  239. package/dist/theme/contracts.d.ts +4 -0
  240. package/dist/theme/contracts.d.ts.map +1 -0
  241. package/dist/theme/contracts.js +87 -0
  242. package/dist/theme/contracts.js.map +1 -0
  243. package/dist/theme/index.d.ts +8 -0
  244. package/dist/theme/index.d.ts.map +1 -0
  245. package/dist/theme/index.js +7 -0
  246. package/dist/theme/index.js.map +1 -0
  247. package/dist/theme/joints.d.ts +19 -0
  248. package/dist/theme/joints.d.ts.map +1 -0
  249. package/dist/theme/joints.js +126 -0
  250. package/dist/theme/joints.js.map +1 -0
  251. package/dist/theme/ktl/compile.d.ts +26 -0
  252. package/dist/theme/ktl/compile.d.ts.map +1 -0
  253. package/dist/theme/ktl/compile.js +226 -0
  254. package/dist/theme/ktl/compile.js.map +1 -0
  255. package/dist/theme/ktl/lexer.d.ts +20 -0
  256. package/dist/theme/ktl/lexer.d.ts.map +1 -0
  257. package/dist/theme/ktl/lexer.js +56 -0
  258. package/dist/theme/ktl/lexer.js.map +1 -0
  259. package/dist/theme/ktl/parser.d.ts +64 -0
  260. package/dist/theme/ktl/parser.d.ts.map +1 -0
  261. package/dist/theme/ktl/parser.js +220 -0
  262. package/dist/theme/ktl/parser.js.map +1 -0
  263. package/dist/theme/render.d.ts +19 -0
  264. package/dist/theme/render.d.ts.map +1 -0
  265. package/dist/theme/render.js +246 -0
  266. package/dist/theme/render.js.map +1 -0
  267. package/dist/theme/templates.d.ts +2 -0
  268. package/dist/theme/templates.d.ts.map +1 -0
  269. package/dist/theme/templates.js +40 -0
  270. package/dist/theme/templates.js.map +1 -0
  271. package/dist/theme/tokens.d.ts +4 -0
  272. package/dist/theme/tokens.d.ts.map +1 -0
  273. package/dist/theme/tokens.js +15 -0
  274. package/dist/theme/tokens.js.map +1 -0
  275. package/dist/theme/viewmodel.d.ts +6 -0
  276. package/dist/theme/viewmodel.d.ts.map +1 -0
  277. package/dist/theme/viewmodel.js +40 -0
  278. package/dist/theme/viewmodel.js.map +1 -0
  279. package/dist/types.d.ts +614 -0
  280. package/dist/types.d.ts.map +1 -0
  281. package/dist/types.js +3 -0
  282. package/dist/types.js.map +1 -0
  283. 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,3 @@
1
+ import type { KetModule } from '../types.ts';
2
+ export declare function topoSort(modules: KetModule[]): KetModule[];
3
+ //# sourceMappingURL=graph.d.ts.map
@@ -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"}