@t4h.framework/cli 0.15.4 → 0.16.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @t4h.framework/cli
2
2
 
3
+ ## 0.16.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#145](https://github.com/tech4humans-brasil/framework/pull/145) [`09724c3`](https://github.com/tech4humans-brasil/framework/commit/09724c3f0bb573d55b94495835362e7b66bc570e) Thanks [@gusteycamargo](https://github.com/gusteycamargo)! - Replaces the interactive REPL of `framework dev` with an HTTP dev server: Hono routes workflow (`POST /projects/:projectId/workflows/:workflowId/runs` answers `201 { id }`, `PATCH .../runs/:runId/activities/:activityId` advances a pending async activity), mandatory workflow authorization resolved from the app/workflow `Authorization` manifest, `/_dev` routes for tooling (manifest, runs, waiting activities, env, SSE events) and Vite in middleware mode for a UI. Workflow runs now live in an in-memory SQLite database inside the app process, the ORM dev claim stores its rows in `db.sqlite` instead of rewriting `db.json` on every change, child workflows run in parallel, and `framework dev` gains `--port` (`PORT`) and `--host`. `DevServer` and `isWorkflowWaiting` are gone; use `Server`.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [[`09724c3`](https://github.com/tech4humans-brasil/framework/commit/09724c3f0bb573d55b94495835362e7b66bc570e), [`5bd1054`](https://github.com/tech4humans-brasil/framework/commit/5bd10549ab038db6d1742895b38ad1872af7c6dd)]:
12
+ - @t4h.framework/dev@0.15.0
13
+ - @t4h.framework/harness@0.3.2
14
+
3
15
  ## 0.15.4
4
16
 
5
17
  ### Patch Changes
@@ -1,11 +1,8 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { parseEnv } from 'node:util';
4
- import { AbortPromptError } from '@inquirer/core';
5
- import { input, select } from '@inquirer/prompts';
6
- import { DevServer, isWorkflowWaiting } from '@t4h.framework/dev';
4
+ import { Server } from '@t4h.framework/dev';
7
5
  import { Command, Option } from 'commander';
8
- import { jsonSchemaToInquirerQuestion } from '../../tools/json-schema-to-inquirer-question.js';
9
6
  export const devCommand = new Command('dev')
10
7
  .description('Start the development server')
11
8
  .option('--entrypoint <entrypoint path>', 'The entrypoint package json path', './package.json')
@@ -23,140 +20,26 @@ export const devCommand = new Command('dev')
23
20
  })
24
21
  .default({}))
25
22
  .addOption(new Option('--env-file-if-exists <file-path>', 'Load variables from a .env file if it exists').argParser(value => path.resolve(process.cwd(), value)))
23
+ .addOption(new Option('-p, --port <port>', 'The HTTP port')
24
+ .env('PORT')
25
+ .default(3000)
26
+ .argParser(value => Number.parseInt(value, 10)))
27
+ .addOption(new Option('--host <host>', 'The HTTP host').default('localhost'))
26
28
  .action(async (options) => {
27
- let abortController = null;
28
- let currentLoopPromise = null;
29
29
  if (options.envFileIfExists && fs.existsSync(options.envFileIfExists))
30
30
  Object.assign(options.env, parseEnv(fs.readFileSync(options.envFileIfExists, 'utf8')));
31
- const devServer = new DevServer({ entrypoint: options.entrypoint, env: options.env }, async (manifest) => {
32
- if (abortController) {
33
- abortController.abort();
34
- }
35
- if (currentLoopPromise) {
36
- await currentLoopPromise.catch(() => { });
37
- }
38
- console.clear();
39
- abortController = new AbortController();
40
- const currentSignal = abortController.signal;
41
- currentLoopPromise = (async () => {
42
- await Promise.all(Object.entries(options.env).map(([name, value]) => devServer.setEnv(name, value)));
43
- async function selectWorkflowToRun() {
44
- const fn = await select({
45
- message: 'Select a workflow to run',
46
- choices: [
47
- ...manifest.workflows.map(workflow => ({
48
- name: workflow.id,
49
- value: async () => {
50
- let input;
51
- if (workflow.schema)
52
- input = await jsonSchemaToInquirerQuestion(workflow.schema, {
53
- signal: currentSignal,
54
- });
55
- const result = await devServer.runWorkflow(workflow.id, input);
56
- if (isWorkflowWaiting(result))
57
- console.log(`Workflow paused on async activity. Pending id: ${result.id}\nUse "Advance pending async activity" to continue.`);
58
- },
59
- })),
60
- {
61
- name: '.. (Go Back)',
62
- value: async () => { },
63
- },
64
- ],
65
- }, { signal: currentSignal });
66
- await fn();
67
- }
68
- async function selectEnvToSet() {
69
- const fn = await select({
70
- message: 'Select an environment variable to set',
71
- choices: [
72
- ...Object.entries(manifest.env.properties).map(([name]) => ({
73
- name: name,
74
- value: async () => {
75
- const value = await input({ message: `Enter the value for ${name}` }, { signal: currentSignal });
76
- await devServer.setEnv(name, value);
77
- },
78
- })),
79
- {
80
- name: '.. (Go Back)',
81
- value: async () => { },
82
- },
83
- ],
84
- }, { signal: currentSignal });
85
- await fn();
86
- }
87
- async function advancePendingAsyncActivity() {
88
- const waitingActivities = await devServer.listWaitingAsyncActivities();
89
- if (waitingActivities.length === 0) {
90
- console.log('No pending async activities.');
91
- return;
92
- }
93
- console.table(waitingActivities);
94
- const fn = await select({
95
- message: 'Select a pending async activity to advance',
96
- choices: [
97
- ...waitingActivities.map((activity) => ({
98
- name: `${activity.id} (workflow: ${activity.workflowId})`,
99
- value: async () => {
100
- let input;
101
- if (activity.schema)
102
- input = await jsonSchemaToInquirerQuestion(activity.schema, {
103
- signal: currentSignal,
104
- });
105
- const result = await devServer.advanceAsyncActivity(activity.id, input);
106
- if (isWorkflowWaiting(result)) {
107
- console.log(`Workflow still paused. Pending id: ${result.id}`);
108
- return;
109
- }
110
- console.log('Workflow result:', result);
111
- },
112
- })),
113
- {
114
- name: '.. (Go Back)',
115
- value: async () => { },
116
- },
117
- ],
118
- }, { signal: currentSignal });
119
- await fn();
120
- }
121
- try {
122
- while (!currentSignal.aborted) {
123
- const choice = await select({
124
- message: 'Select an option',
125
- choices: [
126
- {
127
- name: 'List environment variables',
128
- value: async () => {
129
- const env = await devServer.listEnv();
130
- console.table(env);
131
- },
132
- },
133
- {
134
- name: 'Set environment variable',
135
- value: selectEnvToSet,
136
- },
137
- {
138
- name: 'Run workflow',
139
- value: selectWorkflowToRun,
140
- },
141
- {
142
- name: 'Advance pending async activity',
143
- value: advancePendingAsyncActivity,
144
- },
145
- { name: 'Exit', value: async () => process.exit(0) },
146
- ],
147
- }, {
148
- signal: currentSignal,
149
- });
150
- await choice();
151
- }
152
- }
153
- catch (error) {
154
- if (error instanceof AbortPromptError)
155
- return;
156
- throw error;
157
- }
158
- })();
31
+ const server = new Server({
32
+ entrypoint: options.entrypoint,
33
+ env: options.env,
34
+ port: options.port,
35
+ host: options.host,
159
36
  });
160
- await devServer.start();
37
+ const shutdown = (code) => {
38
+ server.down().finally(() => process.exit(code));
39
+ };
40
+ server.on('error', () => shutdown(1));
41
+ process.once('SIGINT', () => shutdown(0));
42
+ process.once('SIGTERM', () => shutdown(0));
43
+ await server.up();
161
44
  });
162
45
  //# sourceMappingURL=dev.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/commands/dev/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/commands/dev/dev.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t4h.framework/cli",
3
- "version": "0.15.4",
3
+ "version": "0.16.0",
4
4
  "description": "CLI tools for the T4H Framework",
5
5
  "homepage": "https://github.com/tech4humans-brasil/framework/tree/main/packages/cli",
6
6
  "bugs": "https://github.com/tech4humans-brasil/framework/issues",
@@ -29,19 +29,17 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@inquirer/prompts": "^8.3.0",
32
- "@t4h.framework/dev": "^0.14.1",
33
- "@t4h.framework/harness": "^0.3.1",
32
+ "@t4h.framework/dev": "^0.15.0",
33
+ "@t4h.framework/harness": "^0.3.2",
34
34
  "commander": "^14.0.3",
35
35
  "form-data": "^4.0.5",
36
36
  "qs": "^6.15.0",
37
37
  "tar": "^7.5.10"
38
38
  },
39
39
  "devDependencies": {
40
- "@types/json-schema": "^7.0.15",
41
40
  "@types/node": "^25.3.5",
42
41
  "@types/qs": "^6",
43
42
  "@types/ssh2-sftp-client": "^9.0.6",
44
- "json-schema-typed": "^8.0.2",
45
43
  "typescript": "^5.9.3",
46
44
  "vitest": "^4.0.18"
47
45
  },
@@ -1,34 +0,0 @@
1
- import { input, number } from '@inquirer/prompts';
2
- export async function jsonSchemaToInquirerQuestion(schema, context = {}) {
3
- if (typeof schema === 'boolean')
4
- return;
5
- if (schema.type === 'object')
6
- return jsonSchemaObjectToInquirerQuestion(schema, context);
7
- if (schema.type === 'string')
8
- return jsonSchemaStringToInquirerQuestion(schema, context);
9
- if (schema.type === 'number')
10
- return jsonSchemaNumberToInquirerQuestion(schema, context);
11
- }
12
- export async function jsonSchemaObjectToInquirerQuestion(schema, context) {
13
- const result = {};
14
- for (const [key, property] of Object.entries(schema.properties ?? {})) {
15
- const isRequired = schema.required?.includes(key);
16
- result[key] = await jsonSchemaToInquirerQuestion(property, {
17
- key: context.key ? `${context.key}.${key}` : key,
18
- isOptional: !isRequired,
19
- signal: context.signal,
20
- });
21
- }
22
- return result;
23
- }
24
- export async function jsonSchemaStringToInquirerQuestion(schema, context) {
25
- return input({
26
- message: `${context.key ? context.key : ''}${context.key && schema.description ? ': ' : ''}${schema.description ?? ''}`,
27
- }, { signal: context.signal });
28
- }
29
- export async function jsonSchemaNumberToInquirerQuestion(schema, context) {
30
- return number({
31
- message: `${context.key ? context.key : ''}${context.key && schema.description ? ': ' : ''}${schema.description ?? ''}`,
32
- }, { signal: context.signal });
33
- }
34
- //# sourceMappingURL=json-schema-to-inquirer-question.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json-schema-to-inquirer-question.js","sourceRoot":"","sources":["../../src/tools/json-schema-to-inquirer-question.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AASjD,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAkB,EAClB,UAA+C,EAAE;IAEjD,IAAI,OAAO,MAAM,KAAK,SAAS;QAAE,OAAM;IAEvC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,kCAAkC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE5D,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,kCAAkC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE5D,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,kCAAkC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,MAAoC,EACpC,OAA4C;IAE5C,MAAM,MAAM,GAA4B,EAAE,CAAA;IAE1C,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QACtE,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;QAEjD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,4BAA4B,CAAC,QAAQ,EAAE;YACzD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG;YAChD,UAAU,EAAE,CAAC,UAAU;YACvB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,MAAoC,EACpC,OAA4C;IAE5C,OAAO,KAAK,CACV;QACE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE;KACxH,EACD,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAC3B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,MAAoC,EACpC,OAA4C;IAE5C,OAAO,MAAM,CACX;QACE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE;KACxH,EACD,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAC3B,CAAA;AACH,CAAC"}