@carthooks/arcubase-cli 0.1.26 → 0.1.27

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.
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/runtime/execute.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1D,OAAO,EAAyF,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAShJ,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAe1D;AAaD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,QAAsB,GAAG,MAAM,CAoB7G;AA8BD,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;AAUlD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,QAAsB,GAAG,MAAM,CA8HpI;AAkzED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB,CActH;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,SAAS,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAyOrI"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/runtime/execute.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1D,OAAO,EAAyF,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAQhJ,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAe1D;AAaD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,QAAsB,GAAG,MAAM,CAoB7G;AA8BD,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;AAUlD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,QAAsB,GAAG,MAAM,CA8HpI;AAg0ED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB,CActH;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,SAAS,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAyOrI"}
@@ -1,5 +1,6 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
+ import { ArcubaseCodeGenError, generateArcubaseProjectSDK } from '@arcubase/code-gen';
3
4
  import { parseCLIArgs, hasFlag, flagValue } from './argv.js';
4
5
  import { loadRuntimeEnv } from './env.js';
5
6
  import { CLIError } from './errors.js';
@@ -11,7 +12,6 @@ import { resolveArcubaseSDKPath } from './paths.js';
11
12
  import { compileCSVImportMapping, compileExcelImportMapping } from './entity_import_mapping.js';
12
13
  import { uploadLocalFileWithToken } from './local_upload.js';
13
14
  import { renderCommandHelpExamples } from './help_examples.js';
14
- import { generateArcubaseProjectSDK } from './dev_sdk_gen.js';
15
15
  export function renderRootHelp(scope) {
16
16
  const binary = scope === 'admin' ? 'arcubase-admin' : 'arcubase';
17
17
  const modules = scope === 'admin' ? [...listModules(scope), 'dev'].sort() : listModules(scope);
@@ -1808,11 +1808,26 @@ async function executeDevSDKGen(runtimeEnv, flags, fetchImpl) {
1808
1808
  ingresses.push(...entityIngresses);
1809
1809
  }
1810
1810
  assertSDKGenIngressesReady(ingresses);
1811
- const generated = generateArcubaseProjectSDK({
1812
- id: resolveSDKGenAppId(appId, appPayload),
1813
- name: typeof appPayload.name === 'string' ? appPayload.name : undefined,
1814
- ingresses,
1815
- });
1811
+ let generated;
1812
+ try {
1813
+ generated = generateArcubaseProjectSDK({
1814
+ id: resolveSDKGenAppId(appId, appPayload),
1815
+ name: typeof appPayload.name === 'string' ? appPayload.name : undefined,
1816
+ ingresses,
1817
+ });
1818
+ }
1819
+ catch (error) {
1820
+ if (error instanceof ArcubaseCodeGenError) {
1821
+ throw new CLIError(error.code, error.message, 2, {
1822
+ operation: 'dev sdk-gen',
1823
+ suggestions: [
1824
+ 'set stable ingress.key and field.key values in Arcubase admin before running sdk-gen',
1825
+ 'rerun arcubase-admin dev sdk-gen after schema keys are complete',
1826
+ ],
1827
+ });
1828
+ }
1829
+ throw error;
1830
+ }
1816
1831
  const absoluteOutDir = path.resolve(process.cwd(), outDir);
1817
1832
  for (const file of generated.files) {
1818
1833
  const targetPath = path.resolve(absoluteOutDir, file.path);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carthooks/arcubase-cli",
3
- "version": "0.1.26",
3
+ "version": "0.1.27",
4
4
  "description": "Arcubase runtime CLI for admin and user command execution",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -31,6 +31,7 @@
31
31
  "docs:llms": "node -e \"\""
32
32
  },
33
33
  "dependencies": {
34
+ "@arcubase/code-gen": "^0.1.1",
34
35
  "@carthooks/client-ts": "0.8.0",
35
36
  "zod": "^4.4.3"
36
37
  },
@@ -1,5 +1,6 @@
1
1
  import fs from 'fs'
2
2
  import path from 'path'
3
+ import { ArcubaseCodeGenError, generateArcubaseProjectSDK } from '@arcubase/code-gen'
3
4
  import { parseCLIArgs, hasFlag, flagValue } from './argv.js'
4
5
  import { loadRuntimeEnv, type RuntimeEnv } from './env.js'
5
6
  import { CLIError, type CLIErrorDetails } from './errors.js'
@@ -11,7 +12,6 @@ import { resolveArcubaseSDKPath } from './paths.js'
11
12
  import { compileCSVImportMapping, compileExcelImportMapping, type CompiledEntityImportConfig } from './entity_import_mapping.js'
12
13
  import { uploadLocalFileWithToken } from './local_upload.js'
13
14
  import { renderCommandHelpExamples } from './help_examples.js'
14
- import { generateArcubaseProjectSDK } from './dev_sdk_gen.js'
15
15
 
16
16
  export type CommandExecutionSummary = {
17
17
  scope: CommandScope
@@ -2228,11 +2228,25 @@ async function executeDevSDKGen(
2228
2228
  ingresses.push(...entityIngresses)
2229
2229
  }
2230
2230
  assertSDKGenIngressesReady(ingresses)
2231
- const generated = generateArcubaseProjectSDK({
2232
- id: resolveSDKGenAppId(appId, appPayload),
2233
- name: typeof appPayload.name === 'string' ? appPayload.name : undefined,
2234
- ingresses,
2235
- })
2231
+ let generated
2232
+ try {
2233
+ generated = generateArcubaseProjectSDK({
2234
+ id: resolveSDKGenAppId(appId, appPayload),
2235
+ name: typeof appPayload.name === 'string' ? appPayload.name : undefined,
2236
+ ingresses,
2237
+ })
2238
+ } catch (error) {
2239
+ if (error instanceof ArcubaseCodeGenError) {
2240
+ throw new CLIError(error.code, error.message, 2, {
2241
+ operation: 'dev sdk-gen',
2242
+ suggestions: [
2243
+ 'set stable ingress.key and field.key values in Arcubase admin before running sdk-gen',
2244
+ 'rerun arcubase-admin dev sdk-gen after schema keys are complete',
2245
+ ],
2246
+ })
2247
+ }
2248
+ throw error
2249
+ }
2236
2250
  const absoluteOutDir = path.resolve(process.cwd(), outDir)
2237
2251
 
2238
2252
  for (const file of generated.files) {
@@ -4,7 +4,7 @@ import fs from 'fs'
4
4
  import os from 'os'
5
5
  import path from 'path'
6
6
 
7
- import { generateArcubaseProjectSDK } from '../runtime/dev_sdk_gen.js'
7
+ import { ArcubaseCodeGenError, generateArcubaseProjectSDK } from '@arcubase/code-gen'
8
8
  import { executeCLI } from '../runtime/execute.js'
9
9
  import { CLIError } from '../runtime/errors.js'
10
10
 
@@ -143,7 +143,7 @@ test('generateArcubaseProjectSDK rejects missing field keys', () => {
143
143
  payload.ingresses[0].entity.fields[1].key = ''
144
144
 
145
145
  assert.throws(() => generateArcubaseProjectSDK(payload), (error: unknown) => {
146
- assert.ok(error instanceof CLIError)
146
+ assert.ok(error instanceof ArcubaseCodeGenError)
147
147
  assert.equal(error.code, 'SDK_GEN_FIELD_KEY_REQUIRED')
148
148
  assert.match(error.message, /Status/)
149
149
  return true
@@ -155,7 +155,7 @@ test('generateArcubaseProjectSDK rejects duplicate field keys within an entity',
155
155
  payload.ingresses[0].entity.fields[1].key = 'notes'
156
156
 
157
157
  assert.throws(() => generateArcubaseProjectSDK(payload), (error: unknown) => {
158
- assert.ok(error instanceof CLIError)
158
+ assert.ok(error instanceof ArcubaseCodeGenError)
159
159
  assert.equal(error.code, 'SDK_GEN_DUPLICATE_FIELD_KEY')
160
160
  assert.match(error.message, /notes/)
161
161
  return true
@@ -167,7 +167,7 @@ test('generateArcubaseProjectSDK rejects missing ingress keys', () => {
167
167
  payload.ingresses[0].key = ''
168
168
 
169
169
  assert.throws(() => generateArcubaseProjectSDK(payload), (error: unknown) => {
170
- assert.ok(error instanceof CLIError)
170
+ assert.ok(error instanceof ArcubaseCodeGenError)
171
171
  assert.equal(error.code, 'SDK_GEN_INGRESS_KEY_REQUIRED')
172
172
  assert.match(error.message, /Public entry/)
173
173
  return true
@@ -1,9 +0,0 @@
1
- export type GeneratedSDKFile = {
2
- path: string;
3
- contents: string;
4
- };
5
- export type GeneratedSDK = {
6
- files: GeneratedSDKFile[];
7
- };
8
- export declare function generateArcubaseProjectSDK(payload: unknown): GeneratedSDK;
9
- //# sourceMappingURL=dev_sdk_gen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev_sdk_gen.d.ts","sourceRoot":"","sources":["../../src/runtime/dev_sdk_gen.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAC1B,CAAA;AAqoBD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAWzE"}