@carthooks/arcubase-cli 0.1.7 → 0.1.9

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 (66) hide show
  1. package/bundle/arcubase-admin.mjs +1042 -5056
  2. package/bundle/arcubase.mjs +1042 -5056
  3. package/dist/generated/command_registry.generated.d.ts +693 -2812
  4. package/dist/generated/command_registry.generated.d.ts.map +1 -1
  5. package/dist/generated/command_registry.generated.js +812 -4100
  6. package/dist/generated/type_index.generated.d.ts +8 -397
  7. package/dist/generated/type_index.generated.d.ts.map +1 -1
  8. package/dist/generated/type_index.generated.js +8 -403
  9. package/dist/generated/zod_registry.generated.d.ts +33 -261
  10. package/dist/generated/zod_registry.generated.d.ts.map +1 -1
  11. package/dist/generated/zod_registry.generated.js +36 -365
  12. package/dist/runtime/body_loader.d.ts.map +1 -1
  13. package/dist/runtime/body_loader.js +12 -0
  14. package/dist/runtime/command_registry.d.ts +3 -21
  15. package/dist/runtime/command_registry.d.ts.map +1 -1
  16. package/dist/runtime/command_registry.js +17 -23
  17. package/dist/runtime/execute.d.ts +3 -3
  18. package/dist/runtime/execute.d.ts.map +1 -1
  19. package/dist/runtime/execute.js +53 -157
  20. package/dist/runtime/http.js +1 -1
  21. package/dist/runtime/upload.js +3 -3
  22. package/dist/runtime/zod_registry.d.ts.map +1 -1
  23. package/dist/runtime/zod_registry.js +7 -24
  24. package/dist/tests/command_registry.test.js +81 -28
  25. package/dist/tests/execute_validation.test.js +175 -510
  26. package/dist/tests/help.test.js +39 -62
  27. package/dist/tests/upload.test.js +4 -4
  28. package/dist/tests/zod_registry.test.js +0 -10
  29. package/package.json +1 -1
  30. package/sdk-dist/docs/runtime-reference/README.md +20 -30
  31. package/sdk-dist/docs/runtime-reference/entity-schema/README.md +4 -5
  32. package/sdk-dist/docs/runtime-reference/entity-schema/linkto.md +3 -3
  33. package/sdk-dist/docs/runtime-reference/entity-schema/query.md +3 -3
  34. package/sdk-dist/docs/runtime-reference/entity-schema/relation.md +3 -3
  35. package/sdk-dist/docs/runtime-reference/entity-schema/relationfield.md +3 -3
  36. package/sdk-dist/docs/runtime-reference/entity-schema/subform.md +2 -2
  37. package/sdk-dist/docs/runtime-reference/entity-schema.md +4 -4
  38. package/sdk-dist/docs/runtime-reference/examples/README.md +2 -2
  39. package/sdk-dist/docs/runtime-reference/examples/oms-01/README.md +12 -12
  40. package/sdk-dist/docs/runtime-reference/examples/oms-01/app-overview.md +1 -1
  41. package/sdk-dist/docs/runtime-reference/row-crud.md +11 -32
  42. package/sdk-dist/docs/runtime-reference/search-and-bulk-actions.md +16 -47
  43. package/sdk-dist/docs/runtime-reference/table-lifecycle.md +11 -27
  44. package/sdk-dist/docs/runtime-reference/uploads.md +1 -1
  45. package/sdk-dist/docs/runtime-reference/workflow/README.md +19 -0
  46. package/sdk-dist/generated/command_registry.generated.ts +814 -4102
  47. package/sdk-dist/generated/type_index.generated.ts +8 -403
  48. package/sdk-dist/generated/zod_registry.generated.ts +44 -500
  49. package/sdk-dist/types/app.ts +3 -10
  50. package/sdk-dist/types/common.ts +7 -0
  51. package/sdk-dist/types/global-action.ts +2 -1
  52. package/src/generated/command_registry.generated.ts +814 -4102
  53. package/src/generated/type_index.generated.ts +8 -403
  54. package/src/generated/zod_registry.generated.ts +44 -500
  55. package/src/runtime/body_loader.ts +11 -0
  56. package/src/runtime/command_registry.ts +22 -44
  57. package/src/runtime/execute.ts +157 -165
  58. package/src/runtime/http.ts +1 -1
  59. package/src/runtime/upload.ts +3 -3
  60. package/src/runtime/zod_registry.ts +7 -25
  61. package/src/tests/command_registry.test.ts +81 -31
  62. package/src/tests/execute_validation.test.ts +236 -603
  63. package/src/tests/help.test.ts +47 -66
  64. package/src/tests/upload.test.ts +4 -4
  65. package/src/tests/zod_registry.test.ts +0 -13
  66. package/sdk-dist/docs/runtime-reference/app-discovery.md +0 -68
@@ -1,34 +1,87 @@
1
1
  import test from 'node:test';
2
2
  import assert from 'node:assert/strict';
3
3
  import { adminCommands, userCommands } from '../generated/command_registry.generated.js';
4
- import { findCommandSuggestions } from '../runtime/command_registry.js';
5
- test('admin app create-entity command exists', () => {
6
- assert.ok(adminCommands.some((c) => c.commandPath.join(' ') === 'app create-entity'));
4
+ function commandPaths(commands) {
5
+ return commands.map((item) => item.commandPath.join(' ')).sort();
6
+ }
7
+ test('admin surface is restricted to reset white list', () => {
8
+ const actual = commandPaths(adminCommands);
9
+ const expected = [
10
+ 'app create',
11
+ 'app delete',
12
+ 'app get',
13
+ 'app list',
14
+ 'app update',
15
+ 'table create',
16
+ 'table delete',
17
+ 'table get',
18
+ 'table list',
19
+ 'table rename',
20
+ 'table update-schema',
21
+ 'access-rule assign-users',
22
+ 'access-rule create',
23
+ 'access-rule delete',
24
+ 'access-rule get',
25
+ 'access-rule list',
26
+ 'access-rule update',
27
+ 'workflow create-version',
28
+ 'workflow deploy',
29
+ 'workflow get',
30
+ 'workflow update',
31
+ ].sort();
32
+ assert.deepEqual(actual, expected);
7
33
  });
8
- test('admin app list-apps command exists', () => {
9
- assert.ok(adminCommands.some((c) => c.commandPath.join(' ') === 'app list-apps'));
34
+ test('user surface is restricted to reset white list', () => {
35
+ const actual = commandPaths(userCommands);
36
+ const expected = [
37
+ 'entry',
38
+ 'profile get',
39
+ 'profile update',
40
+ 'row bulk-update',
41
+ 'row create',
42
+ 'row delete',
43
+ 'row get',
44
+ 'row query',
45
+ 'row selection-action',
46
+ 'row update',
47
+ 'table dataset',
48
+ 'table get',
49
+ 'table relation-options',
50
+ 'upload check-mobile',
51
+ 'upload mobile',
52
+ 'upload preview',
53
+ 'upload token',
54
+ 'workflow approve',
55
+ 'workflow countersign',
56
+ 'workflow forward',
57
+ 'workflow process-map',
58
+ 'workflow query-approve-users',
59
+ 'workflow query-nodes',
60
+ 'workflow resolve',
61
+ 'workflow retract',
62
+ 'workflow rollback',
63
+ ].sort();
64
+ assert.deepEqual(actual, expected);
10
65
  });
11
- test('admin app inventory command exists', () => {
12
- const suggestions = findCommandSuggestions('app', 'inventory', 20);
13
- assert.ok(suggestions.some((item) => item.binary === 'arcubase-admin' && item.moduleName === 'app' && item.commandName === 'inventory'));
14
- });
15
- test('user rows query-entity command exists', () => {
16
- assert.ok(userCommands.some((c) => c.commandPath.join(' ') === 'rows query-entity'));
17
- });
18
- test('inline request type keeps full object text instead of truncated brace', () => {
19
- const command = adminCommands.find((c) => c.commandPath.join(' ') === 'dashboard clone-dashboard');
20
- assert.ok(command);
21
- const typed = command;
22
- assert.match(String(typed.requestType), /^\{\s*name:\s*string\s*\}$/);
23
- });
24
- test('tag commands no longer emit truncated inline request type', () => {
25
- const command = adminCommands.find((c) => c.commandPath.join(' ') === 'entity-tags batch-add-entity-tags');
26
- assert.ok(command);
27
- const typed = command;
28
- assert.match(String(typed.requestType), /^\{\s*policy_id:\s*string.*selection:\s*any.*tag_names:\s*string\[\]\s*\}$/);
29
- assert.equal(typed.scalarParams.length, 0);
30
- });
31
- test('suggestions can point wrong admin delete guess to user rows delete command', () => {
32
- const suggestions = findCommandSuggestions('entity', 'admin-delete-entity-row');
33
- assert.ok(suggestions.some((item) => item.binary === 'arcubase' && item.moduleName === 'rows' && item.commandName === 'delete-entity-row'));
66
+ test('black list commands are removed from registry', () => {
67
+ const all = new Set([...commandPaths(adminCommands), ...commandPaths(userCommands)]);
68
+ const forbidden = [
69
+ 'app inventory',
70
+ 'app list-apps',
71
+ 'app create-entity',
72
+ 'entity admin-get-entity-info',
73
+ 'entity admin-save-entity',
74
+ 'ingress create-entity-ingress',
75
+ 'workflow query-entity',
76
+ 'workflow insert-entity',
77
+ 'workflow update-entity-row',
78
+ 'workflow delete-entity-row',
79
+ 'workflow restore-entity-row',
80
+ 'workflow query-entity-selection',
81
+ 'profile change-password',
82
+ 'profile auth-channels',
83
+ ];
84
+ for (const item of forbidden) {
85
+ assert.equal(all.has(item), false, `${item} should not exist`);
86
+ }
34
87
  });