@objectstack/cli 9.5.1 → 9.7.0

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 (39) hide show
  1. package/dist/commands/compile.d.ts.map +1 -1
  2. package/dist/commands/compile.js +29 -4
  3. package/dist/commands/compile.js.map +1 -1
  4. package/dist/commands/dev.js +1 -1
  5. package/dist/commands/dev.js.map +1 -1
  6. package/dist/commands/init.d.ts.map +1 -1
  7. package/dist/commands/init.js +0 -2
  8. package/dist/commands/init.js.map +1 -1
  9. package/dist/commands/serve.d.ts.map +1 -1
  10. package/dist/commands/serve.js +53 -14
  11. package/dist/commands/serve.js.map +1 -1
  12. package/dist/commands/start.js +1 -1
  13. package/dist/commands/start.js.map +1 -1
  14. package/dist/utils/detect-free-identifiers.d.ts +13 -0
  15. package/dist/utils/detect-free-identifiers.d.ts.map +1 -0
  16. package/dist/utils/detect-free-identifiers.js +236 -0
  17. package/dist/utils/detect-free-identifiers.js.map +1 -0
  18. package/dist/utils/detect-free-identifiers.test.d.ts +2 -0
  19. package/dist/utils/detect-free-identifiers.test.d.ts.map +1 -0
  20. package/dist/utils/detect-free-identifiers.test.js +75 -0
  21. package/dist/utils/detect-free-identifiers.test.js.map +1 -0
  22. package/dist/utils/extract-hook-body.d.ts.map +1 -1
  23. package/dist/utils/extract-hook-body.js +20 -0
  24. package/dist/utils/extract-hook-body.js.map +1 -1
  25. package/dist/utils/lint-flow-patterns.d.ts +31 -0
  26. package/dist/utils/lint-flow-patterns.d.ts.map +1 -0
  27. package/dist/utils/lint-flow-patterns.js +109 -0
  28. package/dist/utils/lint-flow-patterns.js.map +1 -0
  29. package/dist/utils/lint-flow-patterns.test.d.ts +2 -0
  30. package/dist/utils/lint-flow-patterns.test.d.ts.map +1 -0
  31. package/dist/utils/lint-flow-patterns.test.js +80 -0
  32. package/dist/utils/lint-flow-patterns.test.js.map +1 -0
  33. package/dist/utils/validate-expressions.d.ts +6 -0
  34. package/dist/utils/validate-expressions.d.ts.map +1 -1
  35. package/dist/utils/validate-expressions.js +50 -10
  36. package/dist/utils/validate-expressions.js.map +1 -1
  37. package/dist/utils/validate-expressions.test.js +156 -0
  38. package/dist/utils/validate-expressions.test.js.map +1 -1
  39. package/package.json +54 -54
@@ -61,5 +61,161 @@ describe('validateStackExpressions (ADR-0032 build-time)', () => {
61
61
  expect(issues).toHaveLength(1);
62
62
  expect(issues[0].where).toContain("validation 'r1'");
63
63
  });
64
+ // #1870 — a `script` node that names no callable is a silent no-op.
65
+ it('flags a script node that declares neither actionType nor function (#1870)', () => {
66
+ const issues = validateStackExpressions({
67
+ flows: [{
68
+ name: 'helpdesk_flow',
69
+ nodes: [
70
+ { id: 'start', type: 'start', config: {} },
71
+ { id: 'triage', type: 'script', config: { actionType: undefined } },
72
+ ],
73
+ edges: [],
74
+ }],
75
+ });
76
+ expect(issues).toHaveLength(1);
77
+ expect(issues[0].where).toContain("node 'triage' (script) callable");
78
+ expect(issues[0].message).toMatch(/neither .*actionType.* nor .*function/);
79
+ });
80
+ it('accepts a script node that names a built-in action or a function (#1870)', () => {
81
+ const issues = validateStackExpressions({
82
+ flows: [{
83
+ name: 'helpdesk_flow',
84
+ nodes: [
85
+ { id: 'start', type: 'start', config: {} },
86
+ { id: 'mail', type: 'script', config: { actionType: 'email' } },
87
+ { id: 'triage', type: 'script', config: { function: 'helpdesk.aiTriageStub' } },
88
+ { id: 'inline', type: 'script', config: { script: 'variables.x = 1;' } },
89
+ ],
90
+ edges: [],
91
+ }],
92
+ });
93
+ expect(issues).toHaveLength(0);
94
+ });
95
+ // #1870 DX — `functionName` is an accepted alias for `function`.
96
+ it('accepts a script node that names a callable via the functionName alias', () => {
97
+ const issues = validateStackExpressions({
98
+ flows: [{
99
+ name: 'helpdesk_flow',
100
+ nodes: [
101
+ { id: 'start', type: 'start', config: {} },
102
+ { id: 'triage', type: 'script', config: { actionType: 'invoke_function', functionName: 'helpdesk.aiTriageStub' } },
103
+ ],
104
+ edges: [],
105
+ }],
106
+ });
107
+ expect(issues).toHaveLength(0);
108
+ });
109
+ it('flags actionType invoke_function with no function/functionName', () => {
110
+ const issues = validateStackExpressions({
111
+ flows: [{
112
+ name: 'helpdesk_flow',
113
+ nodes: [
114
+ { id: 'start', type: 'start', config: {} },
115
+ { id: 'triage', type: 'script', config: { actionType: 'invoke_function', inputs: { x: 1 } } },
116
+ ],
117
+ edges: [],
118
+ }],
119
+ });
120
+ expect(issues).toHaveLength(1);
121
+ expect(issues[0].message).toMatch(/invoke_function.*no .*function/i);
122
+ });
123
+ // #1928 — bare field references are silently null in `record`-scoped sites
124
+ // (field formulas + validation predicates) but correct in flattened flow
125
+ // conditions. The validator wires the scope per site.
126
+ describe('bare-reference detection by site scope (#1928)', () => {
127
+ it('flags a bare reference in a field formula', () => {
128
+ const issues = validateStackExpressions({
129
+ objects: [{
130
+ name: 'crm_opportunity',
131
+ fields: {
132
+ amount: { type: 'currency' },
133
+ probability: { type: 'percent' },
134
+ expected_revenue: { type: 'formula', name: 'expected_revenue', formula: 'amount * probability / 100' },
135
+ },
136
+ }],
137
+ });
138
+ expect(issues).toHaveLength(1);
139
+ expect(issues[0].where).toContain("field 'expected_revenue' formula");
140
+ expect(issues[0].message).toMatch(/bare reference `(amount|probability)`/);
141
+ });
142
+ it('flags a bare reference in a validation predicate', () => {
143
+ const issues = validateStackExpressions({
144
+ objects: [{
145
+ name: 'crm_lead',
146
+ fields: { lead_score: { type: 'number' } },
147
+ validations: [{ name: 'lead_score_range', expression: 'lead_score != null && lead_score > 100' }],
148
+ }],
149
+ });
150
+ expect(issues).toHaveLength(1);
151
+ expect(issues[0].where).toContain("validation 'lead_score_range'");
152
+ expect(issues[0].message).toMatch(/bare reference `lead_score`/);
153
+ });
154
+ it('accepts the record-qualified forms', () => {
155
+ const issues = validateStackExpressions({
156
+ objects: [{
157
+ name: 'crm_opportunity',
158
+ fields: {
159
+ amount: { type: 'currency' },
160
+ probability: { type: 'percent' },
161
+ expected_revenue: { type: 'formula', name: 'expected_revenue', formula: 'record.amount * record.probability / 100' },
162
+ },
163
+ validations: [{ name: 'amt', expression: 'record.amount != null && record.amount >= 0' }],
164
+ }],
165
+ });
166
+ expect(issues).toHaveLength(0);
167
+ });
168
+ it('does NOT flag bare references in a flow condition (flattened scope)', () => {
169
+ const issues = validateStackExpressions({
170
+ objects: [{ name: 'crm_opportunity', fields: { stage: { type: 'select' }, amount: { type: 'currency' } } }],
171
+ flows: [{
172
+ name: 'high_value_deal',
173
+ nodes: [
174
+ { id: 'start', type: 'start', config: { objectName: 'crm_opportunity', condition: 'amount > 100000 && previous.amount <= 100000' } },
175
+ ],
176
+ edges: [{ id: 'e1', source: 'start', target: 'end', condition: 'stage != "closed_won"' }],
177
+ }],
178
+ });
179
+ expect(issues).toHaveLength(0);
180
+ });
181
+ // #1928 tier 3 — a likely field typo in a flow condition is a non-blocking warning.
182
+ it('warns (severity=warning) on a likely field typo in a flow condition', () => {
183
+ const issues = validateStackExpressions({
184
+ objects: [{ name: 'crm_opportunity', fields: { stage: { type: 'select' }, amount: { type: 'currency' } } }],
185
+ flows: [{
186
+ name: 'opp_won',
187
+ nodes: [
188
+ { id: 'start', type: 'start', config: { objectName: 'crm_opportunity', condition: 'stagee == "closed_won"' } },
189
+ ],
190
+ edges: [],
191
+ }],
192
+ });
193
+ expect(issues).toHaveLength(1);
194
+ expect(issues[0].severity).toBe('warning');
195
+ expect(issues[0].message).toMatch(/did you mean `stage`/);
196
+ });
197
+ it('does not warn when the bare ref is far from any field (likely a flow variable)', () => {
198
+ const issues = validateStackExpressions({
199
+ objects: [{ name: 'crm_opportunity', fields: { stage: { type: 'select' } } }],
200
+ flows: [{
201
+ name: 'renewal',
202
+ nodes: [{ id: 'start', type: 'start', config: { objectName: 'crm_opportunity' } }],
203
+ edges: [{ id: 'e1', source: 'start', target: 'end', condition: 'expiring_deals.length > 0' }],
204
+ }],
205
+ });
206
+ expect(issues).toHaveLength(0);
207
+ });
208
+ it('tags record-scoped bare-ref issues as errors', () => {
209
+ const issues = validateStackExpressions({
210
+ objects: [{
211
+ name: 'crm_lead',
212
+ fields: { lead_score: { type: 'number' } },
213
+ validations: [{ name: 'r', expression: 'lead_score > 100' }],
214
+ }],
215
+ });
216
+ expect(issues).toHaveLength(1);
217
+ expect(issues[0].severity).toBe('error');
218
+ });
219
+ });
64
220
  });
65
221
  //# sourceMappingURL=validate-expressions.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-expressions.test.js","sourceRoot":"","sources":["../../src/utils/validate-expressions.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-expressions.test.js","sourceRoot":"","sources":["../../src/utils/validate-expressions.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@objectstack/cli",
3
- "version": "9.5.1",
3
+ "version": "9.7.0",
4
4
  "description": "Command Line Interface for ObjectStack Protocol",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -33,73 +33,73 @@
33
33
  "topicSeparator": " "
34
34
  },
35
35
  "dependencies": {
36
- "@ai-sdk/anthropic": "^3.0.81",
37
- "@ai-sdk/gateway": "^3.0.126",
38
- "@ai-sdk/google": "^3.0.80",
39
- "@ai-sdk/openai": "^3.0.68",
36
+ "@ai-sdk/anthropic": "^3.0.84",
37
+ "@ai-sdk/gateway": "^3.0.131",
38
+ "@ai-sdk/google": "^3.0.82",
39
+ "@ai-sdk/openai": "^3.0.71",
40
40
  "@oclif/core": "^4.11.4",
41
41
  "bundle-require": "^5.1.0",
42
42
  "chalk": "^5.6.2",
43
43
  "chokidar": "^5.0.0",
44
44
  "dotenv-flow": "^4.1.0",
45
- "esbuild": "^0.28.0",
45
+ "esbuild": "^0.28.1",
46
46
  "ts-morph": "^28.0.0",
47
47
  "tsx": "^4.22.4",
48
48
  "yaml": "^2.9.0",
49
49
  "zod": "^4.4.3",
50
- "@objectstack/account": "9.5.1",
51
- "@objectstack/client": "9.5.1",
52
- "@objectstack/console": "9.5.1",
53
- "@objectstack/core": "^9.5.1",
54
- "@objectstack/driver-memory": "^9.5.1",
55
- "@objectstack/driver-mongodb": "^9.5.1",
56
- "@objectstack/driver-sql": "^9.5.1",
57
- "@objectstack/driver-sqlite-wasm": "^9.5.1",
58
- "@objectstack/formula": "9.5.1",
59
- "@objectstack/objectql": "^9.5.1",
60
- "@objectstack/observability": "^9.5.1",
61
- "@objectstack/platform-objects": "9.5.1",
62
- "@objectstack/plugin-approvals": "9.5.1",
63
- "@objectstack/plugin-audit": "9.5.1",
64
- "@objectstack/plugin-auth": "9.5.1",
65
- "@objectstack/plugin-email": "9.5.1",
66
- "@objectstack/setup": "9.5.1",
67
- "@objectstack/studio": "9.5.1",
68
- "@objectstack/plugin-hono-server": "9.5.1",
69
- "@objectstack/mcp": "9.5.1",
70
- "@objectstack/plugin-org-scoping": "9.5.1",
71
- "@objectstack/plugin-reports": "9.5.1",
72
- "@objectstack/plugin-security": "9.5.1",
73
- "@objectstack/plugin-sharing": "9.5.1",
74
- "@objectstack/trigger-record-change": "9.5.1",
75
- "@objectstack/trigger-api": "9.5.1",
76
- "@objectstack/trigger-schedule": "9.5.1",
77
- "@objectstack/plugin-webhooks": "9.5.1",
78
- "@objectstack/rest": "9.5.1",
79
- "@objectstack/runtime": "^9.5.1",
80
- "@objectstack/service-ai": "9.5.1",
81
- "@objectstack/service-analytics": "9.5.1",
82
- "@objectstack/service-automation": "9.5.1",
83
- "@objectstack/service-cache": "9.5.1",
84
- "@objectstack/service-datasource": "9.5.1",
85
- "@objectstack/service-feed": "9.5.1",
86
- "@objectstack/service-job": "9.5.1",
87
- "@objectstack/service-messaging": "9.5.1",
88
- "@objectstack/service-package": "9.5.1",
89
- "@objectstack/service-queue": "9.5.1",
90
- "@objectstack/service-settings": "9.5.1",
91
- "@objectstack/service-storage": "9.5.1",
92
- "@objectstack/spec": "9.5.1",
93
- "@objectstack/types": "9.5.1",
94
- "@objectstack/service-realtime": "9.5.1"
50
+ "@objectstack/account": "9.7.0",
51
+ "@objectstack/client": "9.7.0",
52
+ "@objectstack/console": "9.7.0",
53
+ "@objectstack/core": "^9.7.0",
54
+ "@objectstack/driver-memory": "^9.7.0",
55
+ "@objectstack/driver-mongodb": "^9.7.0",
56
+ "@objectstack/driver-sql": "^9.7.0",
57
+ "@objectstack/driver-sqlite-wasm": "^9.7.0",
58
+ "@objectstack/formula": "9.7.0",
59
+ "@objectstack/objectql": "^9.7.0",
60
+ "@objectstack/observability": "^9.7.0",
61
+ "@objectstack/platform-objects": "9.7.0",
62
+ "@objectstack/plugin-approvals": "9.7.0",
63
+ "@objectstack/plugin-audit": "9.7.0",
64
+ "@objectstack/plugin-auth": "9.7.0",
65
+ "@objectstack/plugin-email": "9.7.0",
66
+ "@objectstack/setup": "9.7.0",
67
+ "@objectstack/studio": "9.7.0",
68
+ "@objectstack/plugin-hono-server": "9.7.0",
69
+ "@objectstack/mcp": "9.7.0",
70
+ "@objectstack/plugin-org-scoping": "9.7.0",
71
+ "@objectstack/plugin-reports": "9.7.0",
72
+ "@objectstack/plugin-security": "9.7.0",
73
+ "@objectstack/plugin-sharing": "9.7.0",
74
+ "@objectstack/trigger-record-change": "9.7.0",
75
+ "@objectstack/trigger-api": "9.7.0",
76
+ "@objectstack/trigger-schedule": "9.7.0",
77
+ "@objectstack/plugin-webhooks": "9.7.0",
78
+ "@objectstack/rest": "9.7.0",
79
+ "@objectstack/runtime": "^9.7.0",
80
+ "@objectstack/service-ai": "9.7.0",
81
+ "@objectstack/service-analytics": "9.7.0",
82
+ "@objectstack/service-automation": "9.7.0",
83
+ "@objectstack/service-cache": "9.7.0",
84
+ "@objectstack/service-datasource": "9.7.0",
85
+ "@objectstack/service-feed": "9.7.0",
86
+ "@objectstack/service-job": "9.7.0",
87
+ "@objectstack/service-messaging": "9.7.0",
88
+ "@objectstack/service-package": "9.7.0",
89
+ "@objectstack/service-queue": "9.7.0",
90
+ "@objectstack/service-realtime": "9.7.0",
91
+ "@objectstack/service-settings": "9.7.0",
92
+ "@objectstack/service-storage": "9.7.0",
93
+ "@objectstack/spec": "9.7.0",
94
+ "@objectstack/types": "9.7.0"
95
95
  },
96
96
  "devDependencies": {
97
97
  "@oclif/plugin-help": "^6.2.50",
98
- "@oclif/plugin-plugins": "^5.4.73",
99
- "@types/node": "^25.9.2",
98
+ "@oclif/plugin-plugins": "^5.4.74",
99
+ "@types/node": "^25.9.3",
100
100
  "tsup": "^8.5.1",
101
101
  "typescript": "^6.0.3",
102
- "vitest": "^4.1.8"
102
+ "vitest": "^4.1.9"
103
103
  },
104
104
  "repository": {
105
105
  "type": "git",