@ketvietlab/ketjs 0.1.2 → 0.1.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.
Files changed (307) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +8 -2
  3. package/dist/agent/capabilities.d.ts +1 -3
  4. package/dist/agent/capabilities.d.ts.map +1 -1
  5. package/dist/agent/capabilities.js +10 -1
  6. package/dist/agent/capabilities.js.map +1 -1
  7. package/dist/agent/permissions.d.ts +43 -1
  8. package/dist/agent/permissions.d.ts.map +1 -1
  9. package/dist/agent/permissions.js +50 -2
  10. package/dist/agent/permissions.js.map +1 -1
  11. package/dist/cli.js +246 -97
  12. package/dist/cli.js.map +1 -1
  13. package/dist/codegen/dts.d.ts.map +1 -1
  14. package/dist/codegen/dts.js +1 -0
  15. package/dist/codegen/dts.js.map +1 -1
  16. package/dist/data/changeset.d.ts +12 -0
  17. package/dist/data/changeset.d.ts.map +1 -1
  18. package/dist/data/changeset.js +73 -17
  19. package/dist/data/changeset.js.map +1 -1
  20. package/dist/data/expr.d.ts +25 -1
  21. package/dist/data/expr.d.ts.map +1 -1
  22. package/dist/data/expr.js +47 -6
  23. package/dist/data/expr.js.map +1 -1
  24. package/dist/data/fleet.d.ts +41 -1
  25. package/dist/data/fleet.d.ts.map +1 -1
  26. package/dist/data/fleet.js +100 -11
  27. package/dist/data/fleet.js.map +1 -1
  28. package/dist/data/migrate.d.ts +20 -0
  29. package/dist/data/migrate.d.ts.map +1 -1
  30. package/dist/data/migrate.js +86 -3
  31. package/dist/data/migrate.js.map +1 -1
  32. package/dist/data/physical.d.ts +5 -0
  33. package/dist/data/physical.d.ts.map +1 -0
  34. package/dist/data/physical.js +196 -0
  35. package/dist/data/physical.js.map +1 -0
  36. package/dist/data/pool.d.ts +2 -1
  37. package/dist/data/pool.d.ts.map +1 -1
  38. package/dist/data/pool.js +159 -31
  39. package/dist/data/pool.js.map +1 -1
  40. package/dist/data/query.d.ts +10 -1
  41. package/dist/data/query.d.ts.map +1 -1
  42. package/dist/data/query.js +136 -27
  43. package/dist/data/query.js.map +1 -1
  44. package/dist/data/sqlite.d.ts.map +1 -1
  45. package/dist/data/sqlite.js +350 -52
  46. package/dist/data/sqlite.js.map +1 -1
  47. package/dist/data/time.d.ts +13 -0
  48. package/dist/data/time.d.ts.map +1 -1
  49. package/dist/data/time.js +61 -17
  50. package/dist/data/time.js.map +1 -1
  51. package/dist/index.d.ts +45 -24
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +34 -18
  54. package/dist/index.js.map +1 -1
  55. package/dist/kernel/audit.d.ts +27 -0
  56. package/dist/kernel/audit.d.ts.map +1 -0
  57. package/dist/kernel/audit.js +67 -0
  58. package/dist/kernel/audit.js.map +1 -0
  59. package/dist/kernel/classification.d.ts +26 -0
  60. package/dist/kernel/classification.d.ts.map +1 -0
  61. package/dist/kernel/classification.js +73 -0
  62. package/dist/kernel/classification.js.map +1 -0
  63. package/dist/kernel/compose.d.ts +6 -2
  64. package/dist/kernel/compose.d.ts.map +1 -1
  65. package/dist/kernel/compose.js +269 -15
  66. package/dist/kernel/compose.js.map +1 -1
  67. package/dist/kernel/define.d.ts +2 -3
  68. package/dist/kernel/define.d.ts.map +1 -1
  69. package/dist/kernel/define.js +22 -12
  70. package/dist/kernel/define.js.map +1 -1
  71. package/dist/kernel/diff.d.ts.map +1 -1
  72. package/dist/kernel/diff.js +28 -4
  73. package/dist/kernel/diff.js.map +1 -1
  74. package/dist/kernel/graph.js +1 -1
  75. package/dist/kernel/graph.js.map +1 -1
  76. package/dist/kernel/i18n.d.ts +10 -1
  77. package/dist/kernel/i18n.d.ts.map +1 -1
  78. package/dist/kernel/i18n.js +34 -1
  79. package/dist/kernel/i18n.js.map +1 -1
  80. package/dist/kernel/layout.d.ts +97 -0
  81. package/dist/kernel/layout.d.ts.map +1 -1
  82. package/dist/kernel/layout.js +294 -12
  83. package/dist/kernel/layout.js.map +1 -1
  84. package/dist/kernel/menu.d.ts +33 -2
  85. package/dist/kernel/menu.d.ts.map +1 -1
  86. package/dist/kernel/menu.js +99 -7
  87. package/dist/kernel/menu.js.map +1 -1
  88. package/dist/kernel/modules.d.ts +3 -3
  89. package/dist/kernel/modules.d.ts.map +1 -1
  90. package/dist/kernel/modules.js +21 -21
  91. package/dist/kernel/modules.js.map +1 -1
  92. package/dist/kernel/permissions.d.ts +10 -0
  93. package/dist/kernel/permissions.d.ts.map +1 -0
  94. package/dist/kernel/permissions.js +365 -0
  95. package/dist/kernel/permissions.js.map +1 -0
  96. package/dist/kernel/schedule.d.ts +23 -0
  97. package/dist/kernel/schedule.d.ts.map +1 -0
  98. package/dist/kernel/schedule.js +83 -0
  99. package/dist/kernel/schedule.js.map +1 -0
  100. package/dist/kernel/types.d.ts.map +1 -1
  101. package/dist/kernel/types.js +5 -4
  102. package/dist/kernel/types.js.map +1 -1
  103. package/dist/kernel/workspace.d.ts +92 -14
  104. package/dist/kernel/workspace.d.ts.map +1 -1
  105. package/dist/kernel/workspace.js +128 -49
  106. package/dist/kernel/workspace.js.map +1 -1
  107. package/dist/pdf/assets/Inter-Bold.ttf +0 -0
  108. package/dist/pdf/assets/Inter-Regular.ttf +0 -0
  109. package/dist/pdf/assets/Inter-SemiBold.ttf +0 -0
  110. package/dist/pdf/assets/LICENSE.txt +92 -0
  111. package/dist/pdf/font.d.ts +10 -0
  112. package/dist/pdf/font.d.ts.map +1 -0
  113. package/dist/pdf/font.js +83 -0
  114. package/dist/pdf/font.js.map +1 -0
  115. package/dist/pdf/image.d.ts +8 -0
  116. package/dist/pdf/image.d.ts.map +1 -0
  117. package/dist/pdf/image.js +94 -0
  118. package/dist/pdf/image.js.map +1 -0
  119. package/dist/pdf/index.d.ts +15 -0
  120. package/dist/pdf/index.d.ts.map +1 -0
  121. package/dist/pdf/index.js +17 -0
  122. package/dist/pdf/index.js.map +1 -0
  123. package/dist/pdf/markup.d.ts +19 -0
  124. package/dist/pdf/markup.d.ts.map +1 -0
  125. package/dist/pdf/markup.js +146 -0
  126. package/dist/pdf/markup.js.map +1 -0
  127. package/dist/pdf/render.d.ts +14 -0
  128. package/dist/pdf/render.d.ts.map +1 -0
  129. package/dist/pdf/render.js +387 -0
  130. package/dist/pdf/render.js.map +1 -0
  131. package/dist/scaffold/index.js +6 -6
  132. package/dist/scaffold/index.js.map +1 -1
  133. package/dist/scaffold/templates/{app.test.ts.tmpl → deployment.test.ts.tmpl} +3 -3
  134. package/dist/scaffold/templates/ket.workspace.ts.tmpl +4 -6
  135. package/dist/scaffold/templates/module.ts.tmpl +1 -4
  136. package/dist/server/assets.d.ts +23 -0
  137. package/dist/server/assets.d.ts.map +1 -0
  138. package/dist/server/assets.js +97 -0
  139. package/dist/server/assets.js.map +1 -0
  140. package/dist/server/boot.d.ts +174 -38
  141. package/dist/server/boot.d.ts.map +1 -1
  142. package/dist/server/boot.js +399 -140
  143. package/dist/server/boot.js.map +1 -1
  144. package/dist/server/config.d.ts +30 -10
  145. package/dist/server/config.d.ts.map +1 -1
  146. package/dist/server/config.js +73 -17
  147. package/dist/server/config.js.map +1 -1
  148. package/dist/server/ctx.d.ts +10 -0
  149. package/dist/server/ctx.d.ts.map +1 -1
  150. package/dist/server/ctx.js +284 -48
  151. package/dist/server/ctx.js.map +1 -1
  152. package/dist/server/development.d.ts +10 -0
  153. package/dist/server/development.d.ts.map +1 -0
  154. package/dist/server/development.js +15 -0
  155. package/dist/server/development.js.map +1 -0
  156. package/dist/server/fn.d.ts +22 -3
  157. package/dist/server/fn.d.ts.map +1 -1
  158. package/dist/server/fn.js +116 -32
  159. package/dist/server/fn.js.map +1 -1
  160. package/dist/server/form.d.ts +33 -0
  161. package/dist/server/form.d.ts.map +1 -0
  162. package/dist/server/form.js +47 -0
  163. package/dist/server/form.js.map +1 -0
  164. package/dist/server/http.d.ts +82 -3
  165. package/dist/server/http.d.ts.map +1 -1
  166. package/dist/server/http.js +373 -37
  167. package/dist/server/http.js.map +1 -1
  168. package/dist/server/idem.d.ts +3 -2
  169. package/dist/server/idem.d.ts.map +1 -1
  170. package/dist/server/idem.js +12 -4
  171. package/dist/server/idem.js.map +1 -1
  172. package/dist/server/jobs.js +1 -1
  173. package/dist/server/jobs.js.map +1 -1
  174. package/dist/server/log/combinators.d.ts +42 -0
  175. package/dist/server/log/combinators.d.ts.map +1 -0
  176. package/dist/server/log/combinators.js +270 -0
  177. package/dist/server/log/combinators.js.map +1 -0
  178. package/dist/server/log/console.d.ts +12 -0
  179. package/dist/server/log/console.d.ts.map +1 -0
  180. package/dist/server/log/console.js +96 -0
  181. package/dist/server/log/console.js.map +1 -0
  182. package/dist/server/log/file.d.ts +11 -0
  183. package/dist/server/log/file.d.ts.map +1 -0
  184. package/dist/server/log/file.js +61 -0
  185. package/dist/server/log/file.js.map +1 -0
  186. package/dist/server/log/index.d.ts +23 -0
  187. package/dist/server/log/index.d.ts.map +1 -0
  188. package/dist/server/log/index.js +45 -0
  189. package/dist/server/log/index.js.map +1 -0
  190. package/dist/server/log/logger.d.ts +53 -0
  191. package/dist/server/log/logger.d.ts.map +1 -0
  192. package/dist/server/log/logger.js +94 -0
  193. package/dist/server/log/logger.js.map +1 -0
  194. package/dist/server/log/memory.d.ts +11 -0
  195. package/dist/server/log/memory.d.ts.map +1 -0
  196. package/dist/server/log/memory.js +25 -0
  197. package/dist/server/log/memory.js.map +1 -0
  198. package/dist/server/log/types.d.ts +112 -0
  199. package/dist/server/log/types.d.ts.map +1 -0
  200. package/dist/server/log/types.js +58 -0
  201. package/dist/server/log/types.js.map +1 -0
  202. package/dist/server/policy.d.ts +29 -0
  203. package/dist/server/policy.d.ts.map +1 -0
  204. package/dist/server/policy.js +29 -0
  205. package/dist/server/policy.js.map +1 -0
  206. package/dist/server/queue.d.ts +1 -1
  207. package/dist/server/queue.d.ts.map +1 -1
  208. package/dist/server/queue.js.map +1 -1
  209. package/dist/server/ratelimit.d.ts +48 -0
  210. package/dist/server/ratelimit.d.ts.map +1 -0
  211. package/dist/server/ratelimit.js +102 -0
  212. package/dist/server/ratelimit.js.map +1 -0
  213. package/dist/server/respond.d.ts.map +1 -1
  214. package/dist/server/respond.js +16 -1
  215. package/dist/server/respond.js.map +1 -1
  216. package/dist/server/runtime.d.ts +18 -3
  217. package/dist/server/runtime.d.ts.map +1 -1
  218. package/dist/server/runtime.js +32 -2
  219. package/dist/server/runtime.js.map +1 -1
  220. package/dist/server/schedule.d.ts +18 -0
  221. package/dist/server/schedule.d.ts.map +1 -0
  222. package/dist/server/schedule.js +70 -0
  223. package/dist/server/schedule.js.map +1 -0
  224. package/dist/server/sequence.d.ts +42 -0
  225. package/dist/server/sequence.d.ts.map +1 -0
  226. package/dist/server/sequence.js +97 -0
  227. package/dist/server/sequence.js.map +1 -0
  228. package/dist/server/session.d.ts +21 -0
  229. package/dist/server/session.d.ts.map +1 -1
  230. package/dist/server/session.js +84 -10
  231. package/dist/server/session.js.map +1 -1
  232. package/dist/server/sessionstore.d.ts +3 -1
  233. package/dist/server/sessionstore.d.ts.map +1 -1
  234. package/dist/server/sessionstore.js +7 -3
  235. package/dist/server/sessionstore.js.map +1 -1
  236. package/dist/server/storage/index.d.ts +1 -1
  237. package/dist/server/storage/index.d.ts.map +1 -1
  238. package/dist/server/storage/index.js +61 -1
  239. package/dist/server/storage/index.js.map +1 -1
  240. package/dist/server/storage/types.d.ts +8 -0
  241. package/dist/server/storage/types.d.ts.map +1 -1
  242. package/dist/server/storage/types.js +58 -0
  243. package/dist/server/storage/types.js.map +1 -1
  244. package/dist/server/stream.d.ts +8 -2
  245. package/dist/server/stream.d.ts.map +1 -1
  246. package/dist/server/stream.js +44 -4
  247. package/dist/server/stream.js.map +1 -1
  248. package/dist/server/streamstore.d.ts +10 -0
  249. package/dist/server/streamstore.d.ts.map +1 -1
  250. package/dist/server/streamstore.js +72 -6
  251. package/dist/server/streamstore.js.map +1 -1
  252. package/dist/server/tenants.d.ts +20 -18
  253. package/dist/server/tenants.d.ts.map +1 -1
  254. package/dist/server/tenants.js +133 -84
  255. package/dist/server/tenants.js.map +1 -1
  256. package/dist/server/transport/types.js +2 -2
  257. package/dist/server/transport/types.js.map +1 -1
  258. package/dist/server/worker.d.ts +19 -3
  259. package/dist/server/worker.d.ts.map +1 -1
  260. package/dist/server/worker.js +168 -21
  261. package/dist/server/worker.js.map +1 -1
  262. package/dist/testing.d.ts +26 -10
  263. package/dist/testing.d.ts.map +1 -1
  264. package/dist/testing.js +41 -14
  265. package/dist/testing.js.map +1 -1
  266. package/dist/theme/contracts.d.ts +14 -1
  267. package/dist/theme/contracts.d.ts.map +1 -1
  268. package/dist/theme/contracts.js +35 -6
  269. package/dist/theme/contracts.js.map +1 -1
  270. package/dist/theme/index.d.ts +1 -1
  271. package/dist/theme/index.d.ts.map +1 -1
  272. package/dist/theme/index.js +1 -1
  273. package/dist/theme/index.js.map +1 -1
  274. package/dist/theme/joint-runtime.d.ts +33 -0
  275. package/dist/theme/joint-runtime.d.ts.map +1 -0
  276. package/dist/theme/joint-runtime.js +121 -0
  277. package/dist/theme/joint-runtime.js.map +1 -0
  278. package/dist/theme/joints.d.ts.map +1 -1
  279. package/dist/theme/joints.js +15 -97
  280. package/dist/theme/joints.js.map +1 -1
  281. package/dist/theme/ktl/compile.d.ts +4 -0
  282. package/dist/theme/ktl/compile.d.ts.map +1 -1
  283. package/dist/theme/ktl/compile.js +54 -1
  284. package/dist/theme/ktl/compile.js.map +1 -1
  285. package/dist/theme/ktl/parser.d.ts +4 -0
  286. package/dist/theme/ktl/parser.d.ts.map +1 -1
  287. package/dist/theme/ktl/parser.js +8 -0
  288. package/dist/theme/ktl/parser.js.map +1 -1
  289. package/dist/theme/render.d.ts +8 -0
  290. package/dist/theme/render.d.ts.map +1 -1
  291. package/dist/theme/render.js +88 -118
  292. package/dist/theme/render.js.map +1 -1
  293. package/dist/theme/tokens.d.ts +18 -0
  294. package/dist/theme/tokens.d.ts.map +1 -1
  295. package/dist/theme/tokens.js +33 -0
  296. package/dist/theme/tokens.js.map +1 -1
  297. package/dist/theme/viewmodel.d.ts +24 -0
  298. package/dist/theme/viewmodel.d.ts.map +1 -1
  299. package/dist/theme/viewmodel.js +75 -6
  300. package/dist/theme/viewmodel.js.map +1 -1
  301. package/dist/types.d.ts +320 -56
  302. package/dist/types.d.ts.map +1 -1
  303. package/package.json +6 -2
  304. package/dist/kernel/apps.d.ts +0 -43
  305. package/dist/kernel/apps.d.ts.map +0 -1
  306. package/dist/kernel/apps.js +0 -234
  307. package/dist/kernel/apps.js.map +0 -1
@@ -6,11 +6,30 @@
6
6
  // rather than merely discouraged.
7
7
  import { tableNameFor } from '../data/migrate.js';
8
8
  import { table } from '../data/query.js';
9
- import { eq, inArray } from '../data/expr.js';
9
+ import { eq, inArray, makeCol } from '../data/expr.js';
10
10
  import { from } from '../data/query.js';
11
- import { changeset, decimalText } from '../data/changeset.js';
11
+ import { canonicalDecimal, changeset, DECIMAL_MAX_CHARS, parseDecimal, } from '../data/changeset.js';
12
12
  import { KetError } from '../kernel/errors.js';
13
+ import { createLogger } from './log/logger.js';
14
+ import { nullLog } from './log/types.js';
13
15
  import { createQueue, queueFor, validateJobInput } from './queue.js';
16
+ import { nextSequenceNumber } from './sequence.js';
17
+ import { streamsOf } from './stream.js';
18
+ /** What a sensitive value is replaced by everywhere a write record travels. */
19
+ export const SENSITIVE_MASK = '[sensitive]';
20
+ /**
21
+ * A writer for a call that is only rehearsing.
22
+ *
23
+ * A dry run reports what a command would do; announcing it to everyone watching
24
+ * would be doing something. It answers like a writer so the caller needs no
25
+ * branch of its own.
26
+ */
27
+ const discardingWriter = (id) => ({
28
+ id,
29
+ write: () => { },
30
+ flush: async () => { },
31
+ end: async () => { },
32
+ });
14
33
  export function createContext(o) {
15
34
  const { adapter, manifest, fnKey } = o;
16
35
  const scope = o.scope ?? { company: null, branches: null };
@@ -21,8 +40,52 @@ export function createContext(o) {
21
40
  code: o.kind === 'job' ? 'E_UNKNOWN_JOB' : 'E_UNKNOWN_FUNCTION',
22
41
  message: `no ${o.kind === 'job' ? 'background job' : 'server function'} "${fnKey}"`,
23
42
  });
43
+ /**
44
+ * A model whose value is that it did not change afterwards.
45
+ *
46
+ * Refused on the way in rather than reviewed on the way out: both audit models
47
+ * in KetSuite promised this in a comment, and a promise a reviewer has to
48
+ * remember is one a refactor eventually breaks.
49
+ */
50
+ const refuseAppendOnly = (model, verb) => {
51
+ if (!manifest.models[model]?.append)
52
+ return;
53
+ throw new KetError({
54
+ code: 'E_APPEND_ONLY',
55
+ module: operation.by,
56
+ message: `"${fnKey}" attempted to ${verb} ${model}, which is append-only`,
57
+ hint: 'insert a new row — a replay is answered by insertIfAbsent, never by editing what it wrote',
58
+ });
59
+ };
24
60
  const effects = new Set(operation.effects);
25
61
  const writes = o.writes ?? [];
62
+ /**
63
+ * A write record is observational, and it travels: it is returned to the caller,
64
+ * shown by a dry-run, and stored verbatim in the durable idempotency row that
65
+ * answers a retry. A field declared `sensitive` must not make that trip, so its
66
+ * value is replaced before the record is kept rather than after.
67
+ */
68
+ const record = (write) => {
69
+ const model = manifest.models[write.model];
70
+ const mask = (row) => {
71
+ if (!row || !model)
72
+ return row;
73
+ let masked;
74
+ for (const key of Object.keys(row)) {
75
+ if (!model.fields[key]?.sensitive)
76
+ continue;
77
+ masked ??= { ...row };
78
+ masked[key] = SENSITIVE_MASK;
79
+ }
80
+ return masked ?? row;
81
+ };
82
+ writes.push({
83
+ ...write,
84
+ ...(write.row === undefined ? {} : { row: mask(write.row) }),
85
+ ...(write.where === undefined ? {} : { where: mask(write.where) }),
86
+ ...(write.patch === undefined ? {} : { patch: mask(write.patch) }),
87
+ });
88
+ };
26
89
  const need = (effect, target) => {
27
90
  if (effects.has(`${effect}:${target}`))
28
91
  return;
@@ -73,7 +136,9 @@ export function createContext(o) {
73
136
  // place that can guarantee it.
74
137
  //
75
138
  // Branch is not a security boundary. Reading every branch of one company is
76
- // ordinary, so an empty branch list means "all of them" rather than "none".
139
+ // ordinary, so null means unrestricted. An explicit empty set still means
140
+ // "none": treating it like null would turn a caller with no readable branches
141
+ // into one that can read every branch.
77
142
  // Writing somewhere you cannot read back is silent corruption: the row lands,
78
143
  // every later query filters it out, and nothing anywhere says why. So the two
79
144
  // halves of the scope have to agree before the first query runs.
@@ -86,41 +151,111 @@ export function createContext(o) {
86
151
  });
87
152
  }
88
153
  const scopeOf = (model) => manifest.models[model]?.scope ?? 'shared';
154
+ const validateFields = (model, row, operationName) => {
155
+ const def = manifest.models[model];
156
+ if (!def) {
157
+ throw new KetError({
158
+ code: 'E_UNKNOWN_MODEL',
159
+ module: operation.by,
160
+ message: `no model "${model}"`,
161
+ });
162
+ }
163
+ const unknown = Object.keys(row).filter((key) => !def.fields[key]);
164
+ if (unknown.length) {
165
+ throw new KetError({
166
+ code: 'E_UNKNOWN_FIELD',
167
+ module: operation.by,
168
+ message: `${model} has no field(s): ${unknown.join(', ')}`,
169
+ hint: `fields: ${Object.keys(def.fields).join(', ')}`,
170
+ });
171
+ }
172
+ if (operationName !== 'update')
173
+ return;
174
+ const protectedFields = def.scope === 'company+branch' ? ['companyId', 'branchId'] : ['companyId'];
175
+ const attempted = protectedFields.filter((key) => key in row);
176
+ if (def.scope !== 'shared' && attempted.length) {
177
+ throw new KetError({
178
+ code: 'E_SCOPE_FIELD_WRITTEN',
179
+ module: operation.by,
180
+ message: `"${fnKey}" attempted to update ${model}.${attempted.join(', ')}`,
181
+ hint: 'scope columns are immutable after insert — move data with an explicitly cross-company administrative workflow',
182
+ });
183
+ }
184
+ };
89
185
  // ── decimal columns ────────────────────────────────────────────────────────
90
186
  //
91
- // Both adapters store and return a decimal as a string, which is what keeps it
92
- // exact across the round trip. Arithmetic still happens on numbers, as it does in
93
- // Odoo the conversion is here, in the one place that knows both the model and
94
- // the row, rather than in the adapter, which sees only untyped columns.
187
+ // Both adapters store and return a decimal as a string, and it stays one all the
188
+ // way out. A write may hand in a number — arithmetic happens on numbers and
189
+ // encodeRow renders it; a read never converts.
190
+ //
191
+ // It used to convert, and that quietly rewrote stored data. `{ ...row, note }`
192
+ // is how everyone edits one field, and it carries every other column along with
193
+ // it. With the decimal decoded to a number, an edit that never mentioned the
194
+ // amount wrote it back rounded: 12.50 became 12.5, and 1234567890123456.78
195
+ // became …6.8. Nothing failed. The column simply held a different number
196
+ // afterwards, which is the worst way for a ledger to be wrong.
95
197
  const decimalsOf = (model) => Object.entries(manifest.models[model]?.fields ?? {})
96
198
  .filter(([, f]) => f.base === 'decimal')
97
199
  .map(([n]) => n);
200
+ const normalizeDecimal = (model, field, value) => {
201
+ const parsed = parseDecimal(value);
202
+ if (parsed.ok)
203
+ return parsed.value;
204
+ throw new KetError({
205
+ code: parsed.reason === 'size' ? 'E_DECIMAL_TOO_LONG' : 'E_INVALID_DECIMAL',
206
+ module: operation.by,
207
+ message: parsed.reason === 'size'
208
+ ? `${model}.${field} exceeds the ${DECIMAL_MAX_CHARS}-character decimal limit`
209
+ : `${model}.${field} requires a finite number or plain decimal string`,
210
+ });
211
+ };
98
212
  const booleansOf = (model) => Object.entries(manifest.models[model]?.fields ?? {})
99
213
  .filter(([, f]) => f.base === 'bool')
100
214
  .map(([n]) => n);
215
+ const datetimesOf = (model) => Object.entries(manifest.models[model]?.fields ?? {})
216
+ .filter(([, f]) => f.base === 'datetime')
217
+ .map(([n]) => n);
101
218
  const jsonOf = (model) => Object.entries(manifest.models[model]?.fields ?? {})
102
219
  .filter(([, f]) => f.base === 'json')
103
220
  .map(([n]) => n);
104
221
  const encodeRow = (model, row) => {
105
222
  const cols = decimalsOf(model);
106
- if (!cols.length)
223
+ const stamps = datetimesOf(model);
224
+ if (!cols.length && !stamps.length)
107
225
  return row;
108
226
  const out = { ...row };
109
- // decimalText, not String: a raw db.update never passes through a changeset, so
110
- // this is the only place that can keep "1e-7" out of a decimal column.
227
+ // A raw db.insert/update never passes through a changeset. Validate as well as
228
+ // render here so it cannot store exponent syntax or bypass the public budget.
111
229
  for (const c of cols)
112
230
  if (out[c] != null)
113
- out[c] = decimalText(out[c]);
231
+ out[c] = normalizeDecimal(model, c, out[c]);
232
+ /**
233
+ * One instant, one spelling.
234
+ *
235
+ * Postgres normalises a TIMESTAMPTZ to UTC whether or not it is asked, so a
236
+ * caller passing "+07:00" would leave a different string in SQLite than in
237
+ * Postgres for the same moment. Normalising here — the one place every write
238
+ * passes through — keeps the two datastores byte-identical, and makes the
239
+ * stored text sort chronologically, which is what a range query compares.
240
+ */
241
+ for (const c of stamps) {
242
+ const held = out[c];
243
+ if (held == null)
244
+ continue;
245
+ const at = held instanceof Date ? held : new Date(String(held));
246
+ if (!Number.isNaN(at.getTime()))
247
+ out[c] = at.toISOString();
248
+ }
114
249
  return out;
115
250
  };
251
+ const validateDecimalRow = (model, row) => {
252
+ for (const field of decimalsOf(model))
253
+ if (row[field] != null)
254
+ normalizeDecimal(model, field, row[field]);
255
+ };
116
256
  const decodeRows = (model, rows) => {
117
- const cols = decimalsOf(model);
118
257
  const bools = booleansOf(model);
119
258
  const json = dialect === 'sqlite' ? jsonOf(model) : [];
120
- for (const row of rows)
121
- for (const c of cols)
122
- if (row[c] != null)
123
- row[c] = Number(row[c]);
124
259
  for (const row of rows)
125
260
  for (const c of bools)
126
261
  if (row[c] != null)
@@ -172,10 +307,10 @@ export function createContext(o) {
172
307
  if (operation.crossCompany)
173
308
  return q; // declared, and visible in the manifest
174
309
  const cs = readCompanies(q.model);
175
- const col = { model: q.model, name: 'companyId' };
310
+ const col = makeCol(q.model, 'companyId', 'text');
176
311
  let out = q.where(cs.length === 1 ? eq(col, cs[0]) : inArray(col, cs));
177
- if (kind === 'company+branch' && scope.branches && scope.branches.length > 0) {
178
- out = out.where(inArray({ model: q.model, name: 'branchId' }, scope.branches));
312
+ if (kind === 'company+branch' && scope.branches != null) {
313
+ out = out.where(inArray(makeCol(q.model, 'branchId', 'text'), scope.branches));
179
314
  }
180
315
  return out;
181
316
  };
@@ -238,6 +373,15 @@ export function createContext(o) {
238
373
  const fresh = () => {
239
374
  n = 0;
240
375
  };
376
+ const equalPredicate = (model, field, value) => {
377
+ const column = adapter.quoteIdent(field);
378
+ if (value === null)
379
+ return `${column} IS NULL`;
380
+ const placeholder = ph();
381
+ return dialect === 'sqlite' && manifest.models[model]?.fields[field]?.base === 'decimal'
382
+ ? `ket_decimal_cmp(${column}, ${placeholder}) = 0`
383
+ : `${column} = ${placeholder}`;
384
+ };
241
385
  /**
242
386
  * Fill in what a query asked to preload: one extra query per relation, never one
243
387
  * per row. The children go through the same scoped path as anything else, so a
@@ -246,6 +390,26 @@ export function createContext(o) {
246
390
  const fillPreloads = async (q, rows) => {
247
391
  if (!q.preloads.length || !rows.length)
248
392
  return rows;
393
+ const chunks = (values, size = 500) => {
394
+ const out = [];
395
+ for (let index = 0; index < values.length; index += size)
396
+ out.push(values.slice(index, index + size));
397
+ return out;
398
+ };
399
+ const loadChunks = async (model, field, values) => {
400
+ const loaded = [];
401
+ const base = manifest.models[model]?.fields[field]?.base;
402
+ if (!base)
403
+ throw new KetError({
404
+ code: 'E_UNKNOWN_FIELD',
405
+ module: operation.by,
406
+ message: `${model} has no field "${field}"`,
407
+ });
408
+ for (const batch of chunks(values)) {
409
+ loaded.push(...(await db.all(from(table(manifest, model)).where(inArray(makeCol(model, field, base), batch)))));
410
+ }
411
+ return loaded;
412
+ };
249
413
  for (const { name } of q.preloads) {
250
414
  const rel = relationOf(q.model, name);
251
415
  if (rel.kind === 'belongsTo') {
@@ -255,7 +419,7 @@ export function createContext(o) {
255
419
  r[name] = null;
256
420
  continue;
257
421
  }
258
- const parents = await db.all(from(table(manifest, rel.target)).where(inArray({ model: rel.target, name: 'id' }, ids)));
422
+ const parents = await loadChunks(rel.target, 'id', ids);
259
423
  const byId = new Map(parents.map((p) => [p.id, p]));
260
424
  for (const r of rows)
261
425
  r[name] = byId.get(r[rel.by]) ?? null;
@@ -267,7 +431,7 @@ export function createContext(o) {
267
431
  r[name] = [];
268
432
  continue;
269
433
  }
270
- const children = await db.all(from(table(manifest, rel.target)).where(inArray({ model: rel.target, name: rel.by }, ids)));
434
+ const children = await loadChunks(rel.target, rel.by, ids);
271
435
  const grouped = new Map();
272
436
  for (const child of children) {
273
437
  const key = child[rel.by];
@@ -311,16 +475,28 @@ export function createContext(o) {
311
475
  const rows = await adapter.all(text, params);
312
476
  return rows.map((row) => {
313
477
  const aggregates = {};
314
- for (const aggregate of grouped.aggregates)
315
- aggregates[aggregate.as] = row[aggregate.as];
478
+ for (const aggregate of grouped.aggregates) {
479
+ const value = row[aggregate.as];
480
+ const computedDecimal = aggregate.col?.base === 'decimal' && aggregate.fn !== 'count' && aggregate.fn !== 'countDistinct';
481
+ aggregates[aggregate.as] =
482
+ value == null || !computedDecimal
483
+ ? value
484
+ : (canonicalDecimal(value) ?? normalizeDecimal(grouped.model, aggregate.col.name, value));
485
+ }
316
486
  return {
317
- key: grouped.groups.map((_, index) => row[`__group${index}`]),
487
+ key: grouped.groups.map((group, index) => {
488
+ const value = row[`__group${index}`];
489
+ return value == null || group.interval || group.col.base !== 'decimal'
490
+ ? value
491
+ : (canonicalDecimal(value) ?? normalizeDecimal(grouped.model, group.col.name, value));
492
+ }),
318
493
  count: Number(row.__count),
319
494
  aggregates,
320
495
  };
321
496
  });
322
497
  },
323
498
  async del(q) {
499
+ refuseAppendOnly(q.model, 'delete from');
324
500
  // A select passed to del renders as a select and deletes nothing — and the
325
501
  // effect check sees 'read', so a function that correctly declared 'write'
326
502
  // is refused for an effect it never wanted. website_menu.removeMenuItem was
@@ -334,7 +510,7 @@ export function createContext(o) {
334
510
  });
335
511
  }
336
512
  checkQuery(q);
337
- writes.push({ op: 'update', model: q.model, where: {} });
513
+ record({ op: 'update', model: q.model, where: {} });
338
514
  if (dryRun)
339
515
  return { changes: 0 };
340
516
  const { text, params } = scoped(q).toSQL(dialect);
@@ -363,17 +539,31 @@ export function createContext(o) {
363
539
  async select(model, where = {}) {
364
540
  need('read', model);
365
541
  const t = adapter.quoteIdent(tableNameFor(model));
366
- const open = scopeOf(model) === 'shared' || operation.crossCompany;
542
+ const kind = scopeOf(model);
543
+ const open = kind === 'shared' || operation.crossCompany;
367
544
  const keys = Object.keys(where);
368
545
  fresh();
369
- const conds = keys.map((k) => `${adapter.quoteIdent(k)} = ${ph()}`);
370
- const params = keys.map((k) => where[k]);
546
+ const conds = keys.map((k) => equalPredicate(model, k, where[k]));
547
+ const params = keys
548
+ .filter((k) => where[k] !== null)
549
+ .map((k) => manifest.models[model]?.fields[k]?.base === 'decimal'
550
+ ? normalizeDecimal(model, k, where[k])
551
+ : where[k]);
371
552
  if (!open) {
372
553
  // A set, not a value: this is the one place the convenience path has to
373
554
  // part company with a plain `column = ?` map.
374
555
  const cs = readCompanies(model);
375
556
  conds.push(`${adapter.quoteIdent('companyId')} IN (${cs.map(() => ph()).join(', ')})`);
376
557
  params.push(...cs);
558
+ if (kind === 'company+branch' && scope.branches != null) {
559
+ if (scope.branches.length) {
560
+ conds.push(`${adapter.quoteIdent('branchId')} IN (${scope.branches.map(() => ph()).join(', ')})`);
561
+ params.push(...scope.branches);
562
+ }
563
+ else {
564
+ conds.push('1 = 0');
565
+ }
566
+ }
377
567
  }
378
568
  const sql = `SELECT * FROM ${t}` + (conds.length ? ` WHERE ${conds.join(' AND ')}` : '');
379
569
  return decodeRows(model, await adapter.all(sql, params));
@@ -390,7 +580,7 @@ export function createContext(o) {
390
580
  });
391
581
  }
392
582
  const stamped = encodeRow(model, stamp(model, timestamped(model, row, 'insert')));
393
- writes.push({ op: 'insert', model, row: stamped });
583
+ record({ op: 'insert', model, row: stamped });
394
584
  if (dryRun)
395
585
  return { dryRun: true };
396
586
  const ks = Object.keys(stamped);
@@ -410,7 +600,7 @@ export function createContext(o) {
410
600
  });
411
601
  }
412
602
  const stamped = encodeRow(model, stamp(model, timestamped(model, row, 'insert')));
413
- writes.push({ op: 'insert', model, row: stamped });
603
+ record({ op: 'insert', model, row: stamped });
414
604
  if (dryRun)
415
605
  return { dryRun: true };
416
606
  const ks = Object.keys(stamped);
@@ -420,23 +610,53 @@ export function createContext(o) {
420
610
  return { changes: result.changes, inserted: result.changes === 1 };
421
611
  },
422
612
  async update(model, where, patch) {
613
+ // compareAndSet and an updating changeset both land here, so this is the
614
+ // only place the refusal has to live.
615
+ refuseAppendOnly(model, 'update');
423
616
  need('write', model);
424
- writes.push({ op: 'update', model, where, patch });
617
+ validateFields(model, where, 'filter');
618
+ validateFields(model, patch, 'update');
619
+ if (!Object.keys(where).length) {
620
+ throw new KetError({
621
+ code: 'E_UPDATE_NEEDS_WHERE',
622
+ module: operation.by,
623
+ message: `updating ${model} requires a non-empty where clause`,
624
+ });
625
+ }
626
+ if (!Object.keys(patch).length)
627
+ return { changes: 0 };
628
+ // Dry-run returns before SQL encoding, but it is still a public write path and
629
+ // must reject values a real call could not store.
630
+ validateDecimalRow(model, where);
631
+ validateDecimalRow(model, patch);
632
+ record({ op: 'update', model, where, patch });
425
633
  if (dryRun)
426
634
  return { dryRun: true };
427
- const where3 = encodeRow(model, scopeOf(model) === 'shared' || operation.crossCompany
428
- ? where
429
- : { ...where, companyId: requireCompany(model) });
635
+ const kind = scopeOf(model);
636
+ const open = kind === 'shared' || operation.crossCompany;
637
+ const where3 = encodeRow(model, open ? where : { ...where, companyId: requireCompany(model) });
430
638
  const patch2 = encodeRow(model, timestamped(model, patch, 'update'));
431
639
  const pk = Object.keys(patch2), wk = Object.keys(where3);
432
640
  fresh();
433
641
  const sets = pk.map((k) => `${adapter.quoteIdent(k)} = ${ph()}`).join(', ');
434
642
  const boundWhere = wk.filter((k) => where3[k] !== null);
435
- const conds = wk
436
- .map((k) => where3[k] === null ? `${adapter.quoteIdent(k)} IS NULL` : `${adapter.quoteIdent(k)} = ${ph()}`)
437
- .join(' AND ');
438
- const sql = `UPDATE ${adapter.quoteIdent(tableNameFor(model))} SET ${sets}` + (wk.length ? ` WHERE ${conds}` : '');
439
- return adapter.run(sql, [...pk.map((k) => patch2[k]), ...boundWhere.map((k) => where3[k])]);
643
+ const conds = wk.map((k) => equalPredicate(model, k, where3[k]));
644
+ const branchParams = !open && kind === 'company+branch' ? scope.branches : null;
645
+ if (branchParams != null) {
646
+ if (branchParams.length) {
647
+ conds.push(`${adapter.quoteIdent('branchId')} IN (${branchParams.map(() => ph()).join(', ')})`);
648
+ }
649
+ else {
650
+ conds.push('1 = 0');
651
+ }
652
+ }
653
+ const sql = `UPDATE ${adapter.quoteIdent(tableNameFor(model))} SET ${sets}` +
654
+ (conds.length ? ` WHERE ${conds.join(' AND ')}` : '');
655
+ return adapter.run(sql, [
656
+ ...pk.map((k) => patch2[k]),
657
+ ...boundWhere.map((k) => where3[k]),
658
+ ...(branchParams ?? []),
659
+ ]);
440
660
  },
441
661
  async compareAndSet(model, where, expected, patch) {
442
662
  const result = await db.update(model, { ...expected, ...where }, patch);
@@ -445,8 +665,11 @@ export function createContext(o) {
445
665
  return { changes: result.changes, matched: result.changes === 1 };
446
666
  },
447
667
  };
668
+ const log = o.log ?? createLogger(nullLog(), { deployment: 'ketjs', process: 'cli', fn: fnKey, dryRun });
448
669
  const ctx = {
449
670
  fnKey,
671
+ correlationId: o.correlationId ?? null,
672
+ log,
450
673
  manifest,
451
674
  scope,
452
675
  actor: o.actor ?? null,
@@ -460,23 +683,31 @@ export function createContext(o) {
460
683
  if (!meta)
461
684
  throw new KetError({ code: 'E_UNKNOWN_JOB', message: `no background job "${name}"` });
462
685
  need('enqueue', name);
463
- if (manifest.disabledModules?.includes(meta.by)) {
464
- throw new KetError({
465
- code: 'E_APP_NOT_INSTALLED',
466
- module: meta.by,
467
- message: `job "${name}" belongs to a module that is not installed`,
468
- });
469
- }
470
686
  validateJobInput(name, manifest, args);
471
687
  const queue = o.queueNotify === undefined
472
688
  ? await queueFor(adapter)
473
689
  : await createQueue(adapter, { notify: o.queueNotify });
690
+ // Enqueueing into another company is the fan-out a scheduled job has to
691
+ // perform: the schedule runs once per tenant with no company, and the work
692
+ // belongs to legal entities. It is gated on the same declaration that let
693
+ // this operation see more than one company in the first place, so the
694
+ // capability is in the manifest rather than in this call.
695
+ const { company: target, ...rest } = options ?? {};
696
+ const named = target?.trim();
697
+ if (named && !operation.crossCompany) {
698
+ throw new KetError({
699
+ code: 'E_ENQUEUE_COMPANY_NOT_ALLOWED',
700
+ module: operation.by,
701
+ message: `"${fnKey}" enqueued "${name}" into company "${named}" without declaring crossCompany`,
702
+ hint: 'declare crossCompany: true if this really acts across legal entities, or drop the company',
703
+ });
704
+ }
474
705
  return queue.enqueue(name, args, {
475
- ...options,
706
+ ...rest,
476
707
  queue: meta.queue,
477
708
  maxAttempts: meta.maxAttempts,
478
709
  actor: o.actor ?? null,
479
- scope,
710
+ scope: named ? { company: named, companies: [named], branch: null, branches: null } : scope,
480
711
  });
481
712
  },
482
713
  },
@@ -489,6 +720,11 @@ export function createContext(o) {
489
720
  writes.push(...transactionWrites);
490
721
  return value;
491
722
  },
723
+ streams: {
724
+ // A dry run says what would happen; it does not tell anyone it happened.
725
+ open: async (topic) => dryRun ? discardingWriter(topic) : (await streamsOf(adapter)).open(topic),
726
+ },
727
+ sequence: (name, options = {}) => nextSequenceNumber(adapter, name, { ...options, scope, dryRun }),
492
728
  table: (model) => table(manifest, model),
493
729
  change: (model, params, base = null) => changeset(manifest, model, params, base),
494
730
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ctx.js","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/server/ctx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ctx.js","sourceRoot":"","sources":["../../../../../../packages/ketjs/src/server/ctx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ type Closeable = {
2
+ close(): Promise<unknown>;
3
+ };
4
+ /**
5
+ * Stop a combined development process exactly once. HTTP closes first so a
6
+ * watcher can bind the same port while the durable worker finishes draining.
7
+ */
8
+ export declare function createDevelopmentCloser(deployment: Closeable, worker: Closeable): () => Promise<void>;
9
+ export {};
10
+ //# sourceMappingURL=development.d.ts.map