biz-a-cli 2.3.80-15419 → 2.3.80

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 (80) hide show
  1. package/bin/app.js +20 -255
  2. package/bin/hub.js +0 -16
  3. package/bin/hubEvent.js +5 -98
  4. package/bin/tunnelTarget.js +0 -4
  5. package/engine/bpm/workflow.js +6 -7
  6. package/engine/cc/configValidate.js +0 -53
  7. package/engine/cc/guides/V2-SCREEN-AUTHORING.md +512 -531
  8. package/engine/cc/layer3Behavior.js +1 -2
  9. package/engine/cc/layer3Schema.js +1 -3
  10. package/engine/cc/livePipelines.js +3 -9
  11. package/engine/cc/publish.js +105 -86
  12. package/engine/domain/appConfig.js +18 -108
  13. package/engine/domain/applicationConfig.js +12 -87
  14. package/engine/domain/dialect.js +0 -138
  15. package/engine/domain/domainNavigation.js +50 -86
  16. package/engine/domain/entityConfigLoader.js +4 -16
  17. package/engine/domain/numericScale.js +0 -2
  18. package/engine/domain/system.js +0 -2
  19. package/engine/ext/publicTheme.js +1 -8
  20. package/engine/orm/apiRoute.js +61 -187
  21. package/engine/orm/entityConfig.js +2 -32
  22. package/engine/orm/finaAuth.js +0 -0
  23. package/engine/orm/finaEndpoint.js +0 -19
  24. package/engine/orm/imgQuery.js +0 -92
  25. package/engine/orm/listQuery.js +1 -6
  26. package/package.json +1 -1
  27. package/worker/cliScriptWorker.js +0 -5
  28. package/engine/attachments/store.js +0 -195
  29. package/engine/domain/domainRegistration.js +0 -65
  30. package/engine/fina/approval.js +0 -141
  31. package/engine/fina/approvalService.js +0 -59
  32. package/engine/fina/attachments.js +0 -165
  33. package/engine/fina/client.js +0 -84
  34. package/engine/fina/config.js +0 -26
  35. package/engine/fina/context.js +0 -58
  36. package/engine/fina/document.js +0 -67
  37. package/engine/fina/documentWrite.js +0 -173
  38. package/engine/fina/documents/index.js +0 -28
  39. package/engine/fina/documents/jv.js +0 -105
  40. package/engine/fina/documents/jvWrite.js +0 -260
  41. package/engine/fina/documents/si.js +0 -40
  42. package/engine/fina/errors.js +0 -17
  43. package/engine/fina/features.js +0 -86
  44. package/engine/fina/guard.js +0 -102
  45. package/engine/fina/identity.js +0 -87
  46. package/engine/fina/live.js +0 -19
  47. package/engine/fina/lock.js +0 -35
  48. package/engine/fina/master.js +0 -331
  49. package/engine/fina/masters/coa.js +0 -104
  50. package/engine/fina/masters/currency.js +0 -39
  51. package/engine/fina/masters/department.js +0 -32
  52. package/engine/fina/masters/index.js +0 -21
  53. package/engine/fina/masters/project.js +0 -53
  54. package/engine/fina/period.js +0 -56
  55. package/engine/fina/print.js +0 -136
  56. package/engine/fina/readPolicy.js +0 -67
  57. package/engine/fina/recurring.js +0 -200
  58. package/engine/fina/route.js +0 -61
  59. package/engine/fina/routes/attachment.js +0 -41
  60. package/engine/fina/routes/document.js +0 -66
  61. package/engine/fina/routes/master.js +0 -26
  62. package/engine/fina/routes/period.js +0 -24
  63. package/engine/fina/routes/print.js +0 -19
  64. package/engine/fina/routes/recurring.js +0 -27
  65. package/engine/fina/routes/session.js +0 -23
  66. package/engine/fina/routes/setup.js +0 -58
  67. package/engine/fina/routes/submission.js +0 -46
  68. package/engine/fina/routes/template.js +0 -31
  69. package/engine/fina/settings.js +0 -159
  70. package/engine/fina/sql.js +0 -34
  71. package/engine/fina/submission.js +0 -290
  72. package/engine/fina/submissionCompare.js +0 -171
  73. package/engine/fina/submissionRepo.js +0 -114
  74. package/engine/fina/template.js +0 -118
  75. package/engine/fina/userMap.js +0 -79
  76. package/engine/orm/companyLocale.js +0 -74
  77. package/engine/orm/userApiDataset.js +0 -153
  78. package/migrations/postgres/1790600000000__fina.sql +0 -33
  79. package/migrations/postgres/1790700000000__attachment.sql +0 -29
  80. package/migrations/postgres/1790800000000__fina_jv_submission.sql +0 -41
@@ -100,22 +100,6 @@ const screenFindings = (c, at) => {
100
100
  if (kind === "list") {
101
101
  bindings.forEach((b, i) => {
102
102
  if (b?.trigger === "onRowClick" && b.emitter !== "list") out.push(finding("ROW_CLICK_EMITTER", `${path}/eventBindings/${i}/emitter`, `A row click is { emitter: "list", trigger: "onRowClick" } — not emitter ${JSON.stringify(b.emitter)}.`));
103
- /* Doc 8 M2 (L-10): Salin opens a NEW form filled from the row. Bound like Ubah it would edit the original. */
104
- if (b?.emitter === "content_copy" && b.trigger === "onClick") {
105
- const copies = (b.effects ?? []).some(
106
- (e) => isObject(e) && e.type === "NAVIGATE" && Array.isArray(e.route) && e.route[0] === "form" && e.route[2] === "null" && isObject(e.queryParams) && e.queryParams.copyFrom !== undefined,
107
- );
108
- if (!copies) {
109
- const form = routeTarget(((b.effects ?? []).find((e) => isObject(e) && e.type === "NAVIGATE") ?? {}).route) ?? formsOf(ep.entity)[0] ?? "<form>";
110
- out.push(
111
- finding(
112
- "SALIN_NOT_COPYING",
113
- `${path}/eventBindings/${i}`,
114
- `Salin opens a NEW form filled from the row: { type: "NAVIGATE", route: ["form", "${form}", "null"], queryParams: { copyFrom: { "$ref": "event.id" } } } — route id "null", the row's key as copyFrom. With the row's key as the route id it edits the original.`,
115
- ),
116
- );
117
- }
118
- }
119
103
  });
120
104
  const forms = formsOf(ep.entity);
121
105
  if (forms.length) {
@@ -274,45 +258,9 @@ const styleRefFindings = (c, at) => {
274
258
  if (!isObject(item)) return;
275
259
  const p = path ?? `${sAt}/items/${i}`;
276
260
  check(item.styleRef, p);
277
- /* A list's row buttons resolve their own styleRef (client renderListStructure). */
278
- if (path === undefined && Array.isArray(item.buttons)) item.buttons.forEach((b, j) => isObject(b) && check(b.styleRef, `${p}/buttons/${j}`));
279
261
  walk(item.items, p);
280
262
  });
281
263
  walk(st?.items);
282
- if (st?.type === "list" && Array.isArray(st.buttons)) st.buttons.forEach((b, j) => isObject(b) && check(b.styleRef, `${sAt}/buttons/${j}`));
283
- }
284
- return out;
285
- };
286
-
287
- /*
288
- * Doc 8 M2 (L-08, S-04) — a list button's `enabled` is an expression the client evaluates per row over `row` and
289
- * `model` (client list.component isEnabled). One that does not compile disables the button on every row, so it is
290
- * judged here, where the AI can still repair it.
291
- */
292
- const listButtonFindings = (c, at) => {
293
- const out = [];
294
- const judge = (button, path) => {
295
- if (!isObject(button) || button.enabled === undefined) return;
296
- const expression = button.enabled;
297
- let compiles = typeof expression === "string" && expression.trim() !== "";
298
- if (compiles) {
299
- try {
300
- new Function("row", "model", `return (${expression});`);
301
- } catch {
302
- compiles = false;
303
- }
304
- }
305
- if (!compiles) {
306
- out.push(finding("LIST_ENABLED_INVALID", `${path}/enabled`, `enabled ${JSON.stringify(expression)} is not an expression over row and model (e.g. "model.canEdit && !row.locked"); the button would be disabled on every row.`));
307
- }
308
- };
309
- for (const [name, st] of Object.entries(c.ui?.structures ?? {})) {
310
- if (st?.type !== "list") continue;
311
- const sAt = `${at}/ui/structures/${name}`;
312
- (Array.isArray(st.buttons) ? st.buttons : []).forEach((b, j) => judge(b, `${sAt}/buttons/${j}`));
313
- (Array.isArray(st.items) ? st.items : []).forEach((item, i) => {
314
- if (isObject(item) && Array.isArray(item.buttons)) item.buttons.forEach((b, j) => judge(b, `${sAt}/items/${i}/buttons/${j}`));
315
- });
316
264
  }
317
265
  return out;
318
266
  };
@@ -679,7 +627,6 @@ export const validateConfigWorking = ({ working, writableDomains = [], ddlWarnin
679
627
  if (!(ep?.structureRef in structures)) out.push(finding("ENTRY_POINT_STRUCTURE", `${at}/ui/entryPoints/${e}/structureRef`, `${JSON.stringify(ep?.structureRef)} is not a structure of this domain.`));
680
628
  }
681
629
  out.push(...styleRefFindings(c, at));
682
- out.push(...listButtonFindings(c, at));
683
630
  out.push(...referenceFindings(c, at, all));
684
631
  out.push(...lookupFindings(c, at));
685
632
  out.push(...serverValueFindings(c, at));