@n8n/node-cli 0.3.0 → 0.5.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/README.md +243 -18
- package/dist/build.tsbuildinfo +1 -1
- package/dist/commands/build.js +7 -28
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/dev/index.d.ts +1 -1
- package/dist/commands/dev/index.js +37 -23
- package/dist/commands/dev/index.js.map +1 -1
- package/dist/commands/dev/utils.d.ts +0 -5
- package/dist/commands/dev/utils.js +0 -30
- package/dist/commands/dev/utils.js.map +1 -1
- package/dist/commands/lint.d.ts +9 -0
- package/dist/commands/lint.js +34 -0
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/new/index.js +34 -5
- package/dist/commands/new/index.js.map +1 -1
- package/dist/commands/new/utils.js +1 -1
- package/dist/commands/new/utils.js.map +1 -1
- package/dist/commands/prerelease.d.ts +8 -0
- package/dist/commands/prerelease.js +20 -0
- package/dist/commands/prerelease.js.map +1 -0
- package/dist/commands/release.d.ts +7 -0
- package/dist/commands/release.js +49 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/template/templates/declarative/custom/prompts.d.ts +1 -1
- package/dist/template/templates/declarative/custom/template/package.json +9 -12
- package/dist/template/templates/declarative/github-issues/template/package.json +9 -12
- package/dist/template/templates/programmatic/example/template/package.json +9 -12
- package/dist/template/templates/shared/default/CHANGELOG.md +0 -0
- package/dist/utils/child-process.d.ts +16 -0
- package/dist/utils/child-process.js +61 -0
- package/dist/utils/child-process.js.map +1 -0
- package/dist/utils/git.d.ts +1 -0
- package/dist/utils/git.js +5 -0
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/package-manager.d.ts +2 -5
- package/dist/utils/package-manager.js +28 -26
- package/dist/utils/package-manager.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/build.js
CHANGED
|
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.copyStaticFiles = copyStaticFiles;
|
|
7
7
|
const prompts_1 = require("@clack/prompts");
|
|
8
8
|
const core_1 = require("@oclif/core");
|
|
9
|
-
const child_process_1 = require("child_process");
|
|
10
9
|
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
11
10
|
const promises_1 = require("node:fs/promises");
|
|
12
11
|
const node_path_1 = __importDefault(require("node:path"));
|
|
13
12
|
const picocolors_1 = __importDefault(require("picocolors"));
|
|
14
13
|
const rimraf_1 = require("rimraf");
|
|
14
|
+
const child_process_1 = require("../utils/child-process");
|
|
15
15
|
const prompts_2 = require("../utils/prompts");
|
|
16
16
|
class Build extends core_1.Command {
|
|
17
17
|
async run() {
|
|
@@ -42,37 +42,16 @@ Build.examples = ['<%= config.bin %> <%= command.id %>'];
|
|
|
42
42
|
Build.flags = {};
|
|
43
43
|
exports.default = Build;
|
|
44
44
|
async function runTscBuild() {
|
|
45
|
-
return await
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
let stderr = '';
|
|
51
|
-
let stdout = '';
|
|
52
|
-
child.stdout.on('data', (chunk) => {
|
|
53
|
-
stdout += chunk.toString();
|
|
54
|
-
});
|
|
55
|
-
child.stderr.on('data', (chunk) => {
|
|
56
|
-
stderr += chunk.toString();
|
|
57
|
-
});
|
|
58
|
-
child.on('error', (error) => {
|
|
59
|
-
prompts_1.log.error(`${stdout.trim()}\n${stderr.trim()}`);
|
|
60
|
-
reject(error);
|
|
61
|
-
});
|
|
62
|
-
child.on('close', (code) => {
|
|
63
|
-
if (code === 0) {
|
|
64
|
-
resolve();
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
prompts_1.log.error(`${stdout.trim()}\n${stderr.trim()}`);
|
|
68
|
-
reject(new Error(`tsc exited with code ${code}`));
|
|
69
|
-
}
|
|
70
|
-
});
|
|
45
|
+
return await (0, child_process_1.runCommand)('tsc', [], {
|
|
46
|
+
context: 'local',
|
|
47
|
+
printOutput: ({ stdout, stderr }) => {
|
|
48
|
+
prompts_1.log.error(stdout.concat(stderr).toString());
|
|
49
|
+
},
|
|
71
50
|
});
|
|
72
51
|
}
|
|
73
52
|
async function copyStaticFiles() {
|
|
74
53
|
const staticFiles = fast_glob_1.default.sync(['**/*.{png,svg}', '**/__schema__/**/*.json'], {
|
|
75
|
-
ignore: ['dist'],
|
|
54
|
+
ignore: ['dist', 'node_modules'],
|
|
76
55
|
});
|
|
77
56
|
return await Promise.all(staticFiles.map(async (filePath) => {
|
|
78
57
|
const destPath = node_path_1.default.join('dist', filePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":";;;;;AAsDA,0CAYC;AAlED,4CAAoE;AACpE,sCAAsC;AACtC,0DAA6B;AAC7B,+CAA6C;AAC7C,0DAA6B;AAC7B,4DAAoC;AACpC,mCAAgC;AAEhC,0DAAoD;AACpD,8CAAoD;AAEpD,MAAqB,KAAM,SAAQ,cAAO;IAKzC,KAAK,CAAC,GAAG;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAExB,MAAM,WAAW,GAAG,gBAAgB,CAAC;QACrC,IAAA,eAAK,EAAC,oBAAU,CAAC,OAAO,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;QAE9C,MAAM,IAAA,0BAAgB,EAAC,WAAW,CAAC,CAAC;QAEpC,MAAM,YAAY,GAAG,IAAA,iBAAO,GAAE,CAAC;QAC/B,YAAY,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAChD,MAAM,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC;QAErB,IAAI,CAAC;YACJ,MAAM,WAAW,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAA,gBAAM,EAAC,yBAAyB,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;QAED,MAAM,sBAAsB,GAAG,IAAA,iBAAO,GAAE,CAAC;QACzC,sBAAsB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACrD,MAAM,eAAe,EAAE,CAAC;QACxB,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEnD,IAAA,eAAK,EAAC,oBAAoB,CAAC,CAAC;IAC7B,CAAC;;AA9Be,iBAAW,GAAG,2DAA2D,CAAC;AAC1E,cAAQ,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACnD,WAAK,GAAG,EAAE,CAAC;kBAHP,KAAK;AAkC1B,KAAK,UAAU,WAAW;IACzB,OAAO,MAAM,IAAA,0BAAU,EAAC,KAAK,EAAE,EAAE,EAAE;QAClC,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;YACnC,aAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,eAAe;IACpC,MAAM,WAAW,GAAG,mBAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,yBAAyB,CAAC,EAAE;QAC5E,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;KAChC,CAAC,CAAC;IAEH,OAAO,MAAM,OAAO,CAAC,GAAG,CACvB,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7C,MAAM,IAAA,gBAAK,EAAC,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,MAAM,IAAA,aAAE,EAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CACF,CAAC;AACH,CAAC"}
|
|
@@ -4,7 +4,7 @@ export default class Dev extends Command {
|
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
6
|
'external-n8n': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
7
|
-
'custom-
|
|
7
|
+
'custom-user-folder': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
8
|
};
|
|
9
9
|
run(): Promise<void>;
|
|
10
10
|
}
|
|
@@ -3,45 +3,59 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const prompts_1 = require("@clack/prompts");
|
|
6
7
|
const core_1 = require("@oclif/core");
|
|
7
8
|
const node_os_1 = __importDefault(require("node:os"));
|
|
8
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
10
|
const picocolors_1 = __importDefault(require("picocolors"));
|
|
11
|
+
const rimraf_1 = require("rimraf");
|
|
10
12
|
const filesystem_1 = require("../../utils/filesystem");
|
|
11
13
|
const package_manager_1 = require("../../utils/package-manager");
|
|
14
|
+
const prompts_2 = require("../../utils/prompts");
|
|
15
|
+
const validation_1 = require("../../utils/validation");
|
|
12
16
|
const build_1 = require("../build");
|
|
13
17
|
const utils_1 = require("./utils");
|
|
14
|
-
const
|
|
15
|
-
const validation_1 = require("../../utils/validation");
|
|
18
|
+
const child_process_1 = require("../../utils/child-process");
|
|
16
19
|
class Dev extends core_1.Command {
|
|
17
20
|
async run() {
|
|
18
21
|
const { flags } = await this.parse(Dev);
|
|
19
|
-
const packageManager = (0, package_manager_1.detectPackageManager)() ?? 'npm';
|
|
20
|
-
const {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (!installed && !flags['external-n8n']) {
|
|
24
|
-
console.error('❌ n8n is not installed or not in PATH. Learn how to install n8n here: https://docs.n8n.io/hosting/installation/npm');
|
|
25
|
-
process.exit(1);
|
|
26
|
-
}
|
|
22
|
+
const packageManager = (await (0, package_manager_1.detectPackageManager)()) ?? 'npm';
|
|
23
|
+
const { runPersistentCommand } = (0, utils_1.commands)();
|
|
24
|
+
(0, prompts_1.intro)(picocolors_1.default.inverse(' n8n-node dev '));
|
|
25
|
+
await (0, prompts_2.ensureN8nPackage)('n8n-node dev');
|
|
27
26
|
await (0, build_1.copyStaticFiles)();
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
await (0,
|
|
27
|
+
const linkingSpinner = (0, prompts_1.spinner)();
|
|
28
|
+
linkingSpinner.start('Linking custom node to n8n');
|
|
29
|
+
await (0, child_process_1.runCommand)(packageManager, ['link']);
|
|
30
|
+
const n8nUserFolder = flags['custom-user-folder'];
|
|
31
|
+
const customNodesFolder = node_path_1.default.join(n8nUserFolder, '.n8n', 'custom');
|
|
32
|
+
await (0, filesystem_1.ensureFolder)(customNodesFolder);
|
|
31
33
|
const packageName = await (0, utils_1.readPackageName)();
|
|
32
34
|
const invalidNodeNameError = (0, validation_1.validateNodeName)(packageName);
|
|
33
35
|
if (invalidNodeNameError)
|
|
34
|
-
return (0,
|
|
35
|
-
await
|
|
36
|
+
return (0, prompts_2.onCancel)(invalidNodeNameError);
|
|
37
|
+
await (0, rimraf_1.rimraf)(node_path_1.default.join(customNodesFolder, 'package.json'));
|
|
38
|
+
await (0, child_process_1.runCommand)(packageManager, ['link', packageName], {
|
|
39
|
+
cwd: customNodesFolder,
|
|
40
|
+
});
|
|
41
|
+
linkingSpinner.stop('Linked custom node to n8n');
|
|
42
|
+
(0, prompts_1.outro)('✓ Setup complete');
|
|
36
43
|
if (!flags['external-n8n']) {
|
|
37
|
-
runPersistentCommand('
|
|
38
|
-
cwd:
|
|
39
|
-
env: {
|
|
44
|
+
runPersistentCommand('npx', ['-y', '--quiet', 'n8n'], {
|
|
45
|
+
cwd: n8nUserFolder,
|
|
46
|
+
env: {
|
|
47
|
+
...process.env,
|
|
48
|
+
N8N_DEV_RELOAD: 'true',
|
|
49
|
+
N8N_RUNNERS_ENABLED: 'true',
|
|
50
|
+
DB_SQLITE_POOL_SIZE: '10',
|
|
51
|
+
N8N_USER_FOLDER: n8nUserFolder,
|
|
52
|
+
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: 'false',
|
|
53
|
+
},
|
|
40
54
|
name: 'n8n',
|
|
41
55
|
color: picocolors_1.default.green,
|
|
42
56
|
});
|
|
43
57
|
}
|
|
44
|
-
runPersistentCommand('tsc',
|
|
58
|
+
runPersistentCommand(packageManager, ['exec', '--', 'tsc', '--watch'], {
|
|
45
59
|
name: 'build',
|
|
46
60
|
color: picocolors_1.default.cyan,
|
|
47
61
|
});
|
|
@@ -56,11 +70,11 @@ Dev.examples = [
|
|
|
56
70
|
Dev.flags = {
|
|
57
71
|
'external-n8n': core_1.Flags.boolean({
|
|
58
72
|
default: false,
|
|
59
|
-
description: 'By default n8n-node dev will run n8n in a sub process. Enable this option if you would like to run n8n elsewhere.',
|
|
73
|
+
description: 'By default n8n-node dev will run n8n in a sub process. Enable this option if you would like to run n8n elsewhere. Make sure to set N8N_DEV_RELOAD to true in that case.',
|
|
60
74
|
}),
|
|
61
|
-
'custom-
|
|
62
|
-
default: node_path_1.default.join(node_os_1.default.homedir(), '.n8n
|
|
63
|
-
description: '
|
|
75
|
+
'custom-user-folder': core_1.Flags.directory({
|
|
76
|
+
default: node_path_1.default.join(node_os_1.default.homedir(), '.n8n-node-cli'),
|
|
77
|
+
description: 'Folder to use to store user-specific n8n data. By default it will use ~/.n8n-node-cli. You probably want to enable this option if you run n8n with a custom N8N_CUSTOM_EXTENSIONS env variable.',
|
|
64
78
|
}),
|
|
65
79
|
};
|
|
66
80
|
exports.default = Dev;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dev/index.ts"],"names":[],"mappings":";;;;;AAAA,sCAA6C;AAC7C,sDAAyB;AACzB,0DAA6B;AAC7B,4DAAoC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dev/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import type { Formatter } from 'picocolors/types';
|
|
2
2
|
export declare function commands(): {
|
|
3
|
-
isN8nInstalled: () => Promise<boolean>;
|
|
4
|
-
runCommand: (cmd: string, args: string[], opts?: {
|
|
5
|
-
cwd?: string;
|
|
6
|
-
env?: NodeJS.ProcessEnv;
|
|
7
|
-
}) => Promise<void>;
|
|
8
3
|
runPersistentCommand: (cmd: string, args: string[], opts?: {
|
|
9
4
|
cwd?: string;
|
|
10
5
|
env?: NodeJS.ProcessEnv;
|
|
@@ -21,25 +21,6 @@ function commands() {
|
|
|
21
21
|
}
|
|
22
22
|
process.on('SIGINT', () => cleanup('SIGINT'));
|
|
23
23
|
process.on('SIGTERM', () => cleanup('SIGTERM'));
|
|
24
|
-
async function runCommand(cmd, args, opts = {}) {
|
|
25
|
-
return await new Promise((resolve, reject) => {
|
|
26
|
-
const child = (0, child_process_1.spawn)(cmd, args, {
|
|
27
|
-
cwd: opts.cwd,
|
|
28
|
-
env: { ...process.env, ...opts.env },
|
|
29
|
-
stdio: ['inherit', 'pipe', 'pipe'],
|
|
30
|
-
});
|
|
31
|
-
child.on('error', (error) => {
|
|
32
|
-
reject(error);
|
|
33
|
-
});
|
|
34
|
-
child.on('close', (code) => {
|
|
35
|
-
if (code === 0)
|
|
36
|
-
resolve();
|
|
37
|
-
else
|
|
38
|
-
reject(new Error(`${cmd} exited with code ${code}`));
|
|
39
|
-
});
|
|
40
|
-
registerChild(child);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
24
|
function runPersistentCommand(cmd, args, opts = {}) {
|
|
44
25
|
const child = (0, child_process_1.spawn)(cmd, args, {
|
|
45
26
|
cwd: opts.cwd,
|
|
@@ -80,18 +61,7 @@ function commands() {
|
|
|
80
61
|
process.exit(code);
|
|
81
62
|
});
|
|
82
63
|
}
|
|
83
|
-
async function isN8nInstalled() {
|
|
84
|
-
try {
|
|
85
|
-
await runCommand('n8n', ['--version'], {});
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
64
|
return {
|
|
93
|
-
isN8nInstalled,
|
|
94
|
-
runCommand,
|
|
95
65
|
runPersistentCommand,
|
|
96
66
|
};
|
|
97
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/dev/utils.ts"],"names":[],"mappings":";;;;;AAOA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/dev/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const child_process_1 = require("../utils/child-process");
|
|
5
|
+
class Lint extends core_1.Command {
|
|
6
|
+
async run() {
|
|
7
|
+
const { flags } = await this.parse(Lint);
|
|
8
|
+
const args = ['.'];
|
|
9
|
+
if (flags.fix) {
|
|
10
|
+
args.push('--fix');
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
await (0, child_process_1.runCommand)('eslint', args, { context: 'local', stdio: 'inherit' });
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
if (error instanceof child_process_1.ChildProcessError) {
|
|
17
|
+
if (error.signal) {
|
|
18
|
+
process.kill(process.pid, error.signal);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
process.exit(error.code ?? 0);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
Lint.description = 'Lint the node in the current directory. Includes auto-fixing.';
|
|
29
|
+
Lint.examples = ['<%= config.bin %> <%= command.id %>'];
|
|
30
|
+
Lint.flags = {
|
|
31
|
+
fix: core_1.Flags.boolean({ description: 'Automatically fix problems', default: false }),
|
|
32
|
+
};
|
|
33
|
+
exports.default = Lint;
|
|
34
|
+
//# sourceMappingURL=lint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":";;AAAA,sCAA6C;AAE7C,0DAAuE;AAEvE,MAAqB,IAAK,SAAQ,cAAO;IAOxC,KAAK,CAAC,GAAG;QACR,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnB,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,IAAA,0BAAU,EAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACzB,IAAI,KAAK,YAAY,iCAAiB,EAAE,CAAC;gBACxC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;;AA3Be,gBAAW,GAAG,+DAA+D,CAAC;AAC9E,aAAQ,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACnD,UAAK,GAAG;IACvB,GAAG,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;CACjF,CAAC;kBALkB,IAAI"}
|
|
@@ -12,6 +12,7 @@ const picocolors_1 = __importDefault(require("picocolors"));
|
|
|
12
12
|
const prompts_2 = require("./prompts");
|
|
13
13
|
const utils_1 = require("./utils");
|
|
14
14
|
const templates_1 = require("../../template/templates");
|
|
15
|
+
const child_process_1 = require("../../utils/child-process");
|
|
15
16
|
const filesystem_1 = require("../../utils/filesystem");
|
|
16
17
|
const git_1 = require("../../utils/git");
|
|
17
18
|
const package_manager_1 = require("../../utils/package-manager");
|
|
@@ -55,7 +56,7 @@ class New extends core_1.Command {
|
|
|
55
56
|
template = (0, templates_1.getTemplate)('declarative', chosenTemplate);
|
|
56
57
|
}
|
|
57
58
|
const config = (await template.prompts?.()) ?? {};
|
|
58
|
-
const packageManager = (0, package_manager_1.detectPackageManager)() ?? 'npm';
|
|
59
|
+
const packageManager = (await (0, package_manager_1.detectPackageManager)()) ?? 'npm';
|
|
59
60
|
const templateData = {
|
|
60
61
|
destinationPath: destination,
|
|
61
62
|
nodePackageName: nodeName,
|
|
@@ -73,19 +74,47 @@ class New extends core_1.Command {
|
|
|
73
74
|
}
|
|
74
75
|
await (0, filesystem_1.delayAtLeast)(template.run(templateData), 1000);
|
|
75
76
|
copyingSpinner.stop('Files copied');
|
|
77
|
+
const gitSpinner = (0, prompts_1.spinner)();
|
|
78
|
+
gitSpinner.start('Initializing git repository');
|
|
79
|
+
try {
|
|
80
|
+
await (0, git_1.initGit)(destination);
|
|
81
|
+
gitSpinner.stop('Git repository initialized');
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
if (error instanceof child_process_1.ChildProcessError) {
|
|
85
|
+
gitSpinner.stop(`Could not initialize git repository: ${error.message}`, error.code ?? undefined);
|
|
86
|
+
process.exit(error.code ?? 1);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
76
92
|
if (!flags['skip-install']) {
|
|
77
93
|
const installingSpinner = (0, prompts_1.spinner)();
|
|
78
94
|
installingSpinner.start('Installing dependencies');
|
|
79
95
|
try {
|
|
80
|
-
await (0, filesystem_1.delayAtLeast)((0,
|
|
96
|
+
await (0, filesystem_1.delayAtLeast)((0, child_process_1.runCommand)(packageManager, ['install'], {
|
|
97
|
+
cwd: destination,
|
|
98
|
+
printOutput: ({ stdout, stderr }) => {
|
|
99
|
+
prompts_1.log.error(stdout.concat(stderr).toString());
|
|
100
|
+
},
|
|
101
|
+
}), 1000);
|
|
81
102
|
}
|
|
82
103
|
catch (error) {
|
|
83
|
-
|
|
84
|
-
|
|
104
|
+
if (error instanceof child_process_1.ChildProcessError) {
|
|
105
|
+
installingSpinner.stop(`Could not install dependencies: ${error.message}`, error.code ?? undefined);
|
|
106
|
+
process.exit(error.code ?? 1);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
throw error;
|
|
110
|
+
}
|
|
85
111
|
}
|
|
86
112
|
installingSpinner.stop('Dependencies installed');
|
|
87
113
|
}
|
|
88
|
-
(0, prompts_1.note)(`
|
|
114
|
+
(0, prompts_1.note)(`cd ./${nodeName} && ${packageManager} run dev
|
|
115
|
+
|
|
116
|
+
📚 Documentation: https://docs.n8n.io/integrations/creating-nodes/build/${type}-style-node/
|
|
117
|
+
💬 Community: https://community.n8n.io`, 'Next Steps');
|
|
89
118
|
(0, prompts_1.outro)(`Created ./${nodeName} ✨`);
|
|
90
119
|
}
|
|
91
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/new/index.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/new/index.ts"],"names":[],"mappings":";;;;;AAAA,4CAAqF;AACrF,sCAAmD;AACnD,6CAAwC;AACxC,gEAAkC;AAClC,0DAA6B;AAC7B,4DAAoC;AAEpC,uCAAsF;AACtF,mCAAsC;AAEtC,wDAAkG;AAClG,6DAA0E;AAC1E,uDAAoE;AACpE,yCAA0D;AAC1D,iEAAmE;AACnE,iDAA+C;AAC/C,uDAA0D;AAE1D,MAAqB,GAAI,SAAQ,cAAO;IAsBvC,KAAK,CAAC,GAAG;QACR,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAElE,IAAA,eAAK,EAAC,oBAAU,CAAC,OAAO,CAAC,IAAA,mBAAW,GAAE,CAAC,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAA,wBAAc,GAAE,CAAC,CAAC;QACvD,MAAM,oBAAoB,GAAG,IAAA,6BAAgB,EAAC,QAAQ,CAAC,CAAC;QAExD,IAAI,oBAAoB;YAAE,OAAO,IAAA,kBAAQ,EAAC,oBAAoB,CAAC,CAAC;QAEhE,MAAM,WAAW,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE1D,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,MAAM,IAAA,yBAAY,EAAC,WAAW,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,eAAe,GAAG,MAAM,IAAA,iBAAO,EAAC;oBACrC,OAAO,EAAE,KAAK,QAAQ,4CAA4C;iBAClE,CAAC,CAAC;gBACH,IAAI,IAAA,kBAAQ,EAAC,eAAe,CAAC,IAAI,CAAC,eAAe;oBAAE,OAAO,IAAA,kBAAQ,GAAE,CAAC;YACtE,CAAC;YAED,SAAS,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,MAAM,IAAA,wBAAc,GAAE,CAAC,CAAC;QAClD,IAAI,CAAC,IAAA,0BAAc,EAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAA,kBAAQ,EAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,QAAQ,GAAoB,qBAAS,CAAC,YAAY,CAAC,OAAO,CAAC;QAC/D,IAAI,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAA,uBAAS,EAAC,YAAY,CAAC,CAAC;YACrC,IAAI,CAAC,IAAA,0BAAc,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACjC,OAAO,IAAA,kBAAQ,EAAC,0BAA0B,IAAI,cAAc,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,QAAQ,GAAG,IAAA,uBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YACnC,MAAM,cAAc,GAAG,MAAM,IAAA,mCAAyB,GAAE,CAAC;YACzD,QAAQ,GAAG,IAAA,uBAAW,EAAC,aAAa,EAAE,cAAc,CAAoB,CAAC;QAC1E,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,cAAc,GAAG,CAAC,MAAM,IAAA,sCAAoB,GAAE,CAAC,IAAI,KAAK,CAAC;QAC/D,MAAM,YAAY,GAAiB;YAClC,eAAe,EAAE,WAAW;YAC5B,eAAe,EAAE,QAAQ;YACzB,MAAM;YACN,IAAI,EAAE,IAAA,oBAAc,GAAE;YACtB,cAAc,EAAE;gBACf,IAAI,EAAE,cAAc;gBACpB,cAAc,EAAE,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aAC3D;SACD,CAAC;QACF,MAAM,cAAc,GAAG,IAAA,iBAAO,GAAE,CAAC;QACjC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACtC,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,kBAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,IAAA,yBAAY,EAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QACrD,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEpC,MAAM,UAAU,GAAG,IAAA,iBAAO,GAAE,CAAC;QAC7B,UAAU,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAEhD,IAAI,CAAC;YACJ,MAAM,IAAA,aAAO,EAAC,WAAW,CAAC,CAAC;YAE3B,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACzB,IAAI,KAAK,YAAY,iCAAiB,EAAE,CAAC;gBACxC,UAAU,CAAC,IAAI,CACd,wCAAwC,KAAK,CAAC,OAAO,EAAE,EACvD,KAAK,CAAC,IAAI,IAAI,SAAS,CACvB,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACP,MAAM,KAAK,CAAC;YACb,CAAC;QACF,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5B,MAAM,iBAAiB,GAAG,IAAA,iBAAO,GAAE,CAAC;YACpC,iBAAiB,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAEnD,IAAI,CAAC;gBACJ,MAAM,IAAA,yBAAY,EACjB,IAAA,0BAAU,EAAC,cAAc,EAAE,CAAC,SAAS,CAAC,EAAE;oBACvC,GAAG,EAAE,WAAW;oBAChB,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;wBACnC,aAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC7C,CAAC;iBACD,CAAC,EACF,IAAI,CACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACzB,IAAI,KAAK,YAAY,iCAAiB,EAAE,CAAC;oBACxC,iBAAiB,CAAC,IAAI,CACrB,mCAAmC,KAAK,CAAC,OAAO,EAAE,EAClD,KAAK,CAAC,IAAI,IAAI,SAAS,CACvB,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACP,MAAM,KAAK,CAAC;gBACb,CAAC;YACF,CAAC;YAED,iBAAiB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAClD,CAAC;QAED,IAAA,cAAI,EACH,QAAQ,QAAQ,OAAO,cAAc;;0EAEkC,IAAI;uCACvC,EACpC,YAAY,CACZ,CAAC;QAEF,IAAA,eAAK,EAAC,aAAa,QAAQ,IAAI,CAAC,CAAC;IAClC,CAAC;;AA5Ie,eAAW,GAAG,oDAAoD,CAAC;AACnE,YAAQ,GAAG;IAC1B,qCAAqC;IACrC,qEAAqE;IACrE,8DAA8D;IAC9D,oFAAoF;CACpF,CAAC;AACc,QAAI,GAAG;IACtB,IAAI,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;CACnC,CAAC;AACc,SAAK,GAAG;IACvB,KAAK,EAAE,YAAK,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,mDAAmD;KAChE,CAAC;IACF,cAAc,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAC9E,QAAQ,EAAE,YAAK,CAAC,MAAM,CAAC;QACtB,OAAO,EAAE,CAAC,2BAA2B,EAAE,oBAAoB,EAAE,sBAAsB,CAAU;KAC7F,CAAC;CACF,CAAC;kBApBkB,GAAG"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createIntro = void 0;
|
|
4
4
|
const package_manager_1 = require("../../utils/package-manager");
|
|
5
5
|
const createIntro = () => {
|
|
6
|
-
const maybePackageManager = (0, package_manager_1.
|
|
6
|
+
const maybePackageManager = (0, package_manager_1.detectPackageManagerFromUserAgent)();
|
|
7
7
|
const packageManager = maybePackageManager ?? 'npm';
|
|
8
8
|
return maybePackageManager ? ` ${packageManager} create @n8n/node ` : ' n8n-node new ';
|
|
9
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/new/utils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/new/utils.ts"],"names":[],"mappings":";;;AAAA,iEAAgF;AAEzE,MAAM,WAAW,GAAG,GAAG,EAAE;IAC/B,MAAM,mBAAmB,GAAG,IAAA,mDAAiC,GAAE,CAAC;IAChE,MAAM,cAAc,GAAG,mBAAmB,IAAI,KAAK,CAAC;IACpD,OAAO,mBAAmB,CAAC,CAAC,CAAC,IAAI,cAAc,oBAAoB,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACxF,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const package_manager_1 = require("../utils/package-manager");
|
|
5
|
+
class Prerelease extends core_1.Command {
|
|
6
|
+
async run() {
|
|
7
|
+
await this.parse(Prerelease);
|
|
8
|
+
const packageManager = (await (0, package_manager_1.detectPackageManager)()) ?? 'npm';
|
|
9
|
+
if (!process.env.RELEASE_MODE) {
|
|
10
|
+
console.log(`Run \`${packageManager} run release\` to publish the package`);
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
Prerelease.description = 'Only for internal use. Prevent npm publish, instead require npm run release';
|
|
16
|
+
Prerelease.examples = ['<%= config.bin %> <%= command.id %>'];
|
|
17
|
+
Prerelease.flags = {};
|
|
18
|
+
Prerelease.hidden = true;
|
|
19
|
+
exports.default = Prerelease;
|
|
20
|
+
//# sourceMappingURL=prerelease.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prerelease.js","sourceRoot":"","sources":["../../src/commands/prerelease.ts"],"names":[],"mappings":";;AAAA,sCAAsC;AAEtC,8DAAgE;AAEhE,MAAqB,UAAW,SAAQ,cAAO;IAO9C,KAAK,CAAC,GAAG;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7B,MAAM,cAAc,GAAG,CAAC,MAAM,IAAA,sCAAoB,GAAE,CAAC,IAAI,KAAK,CAAC;QAE/D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,cAAc,uCAAuC,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;;AAfe,sBAAW,GAC1B,6EAA6E,CAAC;AAC/D,mBAAQ,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACnD,gBAAK,GAAG,EAAE,CAAC;AACX,iBAAM,GAAG,IAAI,CAAC;kBALV,UAAU"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const child_process_1 = require("../utils/child-process");
|
|
5
|
+
const package_manager_1 = require("../utils/package-manager");
|
|
6
|
+
class Release extends core_1.Command {
|
|
7
|
+
async run() {
|
|
8
|
+
await this.parse(Release);
|
|
9
|
+
const pm = (await (0, package_manager_1.detectPackageManager)()) ?? 'npm';
|
|
10
|
+
try {
|
|
11
|
+
await (0, child_process_1.runCommand)('release-it', [
|
|
12
|
+
'-n',
|
|
13
|
+
'--git.requireBranch main',
|
|
14
|
+
'--git.requireCleanWorkingDir',
|
|
15
|
+
'--git.requireUpstream',
|
|
16
|
+
'--git.requireCommits',
|
|
17
|
+
'--git.commit',
|
|
18
|
+
'--git.tag',
|
|
19
|
+
'--git.push',
|
|
20
|
+
'--git.changelog="npx auto-changelog --stdout --unreleased --commit-limit false -u --hide-credit"',
|
|
21
|
+
'--github.release',
|
|
22
|
+
`--hooks.before:init="${pm} run lint && ${pm} run build"`,
|
|
23
|
+
'--hooks.after:bump="npx auto-changelog -p"',
|
|
24
|
+
], {
|
|
25
|
+
stdio: 'inherit',
|
|
26
|
+
context: 'local',
|
|
27
|
+
env: {
|
|
28
|
+
RELEASE_MODE: 'true',
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
if (error instanceof child_process_1.ChildProcessError) {
|
|
34
|
+
if (error.signal) {
|
|
35
|
+
process.kill(process.pid, error.signal);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
process.exit(error.code ?? 0);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
Release.description = 'Publish your community node package to npm';
|
|
46
|
+
Release.examples = ['<%= config.bin %> <%= command.id %>'];
|
|
47
|
+
Release.flags = {};
|
|
48
|
+
exports.default = Release;
|
|
49
|
+
//# sourceMappingURL=release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":";;AAAA,sCAAsC;AAEtC,0DAAuE;AACvE,8DAAgE;AAEhE,MAAqB,OAAQ,SAAQ,cAAO;IAK3C,KAAK,CAAC,GAAG;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE1B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAA,sCAAoB,GAAE,CAAC,IAAI,KAAK,CAAC;QAEnD,IAAI,CAAC;YACJ,MAAM,IAAA,0BAAU,EACf,YAAY,EACZ;gBACC,IAAI;gBACJ,0BAA0B;gBAC1B,8BAA8B;gBAC9B,uBAAuB;gBACvB,sBAAsB;gBACtB,cAAc;gBACd,WAAW;gBACX,YAAY;gBACZ,kGAAkG;gBAClG,kBAAkB;gBAClB,wBAAwB,EAAE,gBAAgB,EAAE,aAAa;gBACzD,4CAA4C;aAC5C,EACD;gBACC,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,OAAO;gBAChB,GAAG,EAAE;oBACJ,YAAY,EAAE,MAAM;iBACpB;aACD,CACD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,iCAAiB,EAAE,CAAC;gBACxC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;;AA5Ce,mBAAW,GAAG,4CAA4C,CAAC;AAC3D,gBAAQ,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACnD,aAAK,GAAG,EAAE,CAAC;kBAHP,OAAO"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import Build from './commands/build';
|
|
2
2
|
import Dev from './commands/dev';
|
|
3
|
+
import Lint from './commands/lint';
|
|
3
4
|
import New from './commands/new';
|
|
5
|
+
import Prerelease from './commands/prerelease';
|
|
6
|
+
import Release from './commands/release';
|
|
4
7
|
export declare const commands: {
|
|
5
8
|
new: typeof New;
|
|
6
9
|
build: typeof Build;
|
|
7
10
|
dev: typeof Dev;
|
|
11
|
+
prerelease: typeof Prerelease;
|
|
12
|
+
release: typeof Release;
|
|
13
|
+
lint: typeof Lint;
|
|
8
14
|
};
|
package/dist/index.js
CHANGED
|
@@ -6,10 +6,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.commands = void 0;
|
|
7
7
|
const build_1 = __importDefault(require("./commands/build"));
|
|
8
8
|
const dev_1 = __importDefault(require("./commands/dev"));
|
|
9
|
+
const lint_1 = __importDefault(require("./commands/lint"));
|
|
9
10
|
const new_1 = __importDefault(require("./commands/new"));
|
|
11
|
+
const prerelease_1 = __importDefault(require("./commands/prerelease"));
|
|
12
|
+
const release_1 = __importDefault(require("./commands/release"));
|
|
10
13
|
exports.commands = {
|
|
11
14
|
new: new_1.default,
|
|
12
15
|
build: build_1.default,
|
|
13
16
|
dev: dev_1.default,
|
|
17
|
+
prerelease: prerelease_1.default,
|
|
18
|
+
release: release_1.default,
|
|
19
|
+
lint: lint_1.default,
|
|
14
20
|
};
|
|
15
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAqC;AACrC,yDAAiC;AACjC,yDAAiC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAqC;AACrC,yDAAiC;AACjC,2DAAmC;AACnC,yDAAiC;AACjC,uEAA+C;AAC/C,iEAAyC;AAE5B,QAAA,QAAQ,GAAG;IACvB,GAAG,EAAE,aAAG;IACR,KAAK,EAAE,eAAK;IACZ,GAAG,EAAE,aAAG;IACR,UAAU,EAAE,oBAAU;IACtB,OAAO,EAAE,iBAAO;IAChB,IAAI,EAAE,cAAI;CACV,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const credentialTypePrompt: () => Promise<"
|
|
1
|
+
export declare const credentialTypePrompt: () => Promise<"custom" | "apiKey" | "bearer" | "basicAuth" | "none" | "oauth2">;
|
|
2
2
|
export declare const baseUrlPrompt: () => Promise<string>;
|
|
3
3
|
export declare const oauthFlowPrompt: () => Promise<"clientCredentials" | "authorizationCode">;
|
|
@@ -15,13 +15,15 @@
|
|
|
15
15
|
"type": "git",
|
|
16
16
|
"url": ""
|
|
17
17
|
},
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "n8n-node build",
|
|
20
|
+
"build:watch": "tsc --watch",
|
|
21
|
+
"dev": "n8n-node dev",
|
|
22
|
+
"lint": "n8n-node lint",
|
|
23
|
+
"lint:fix": "n8n-node lint --fix",
|
|
24
|
+
"release": "n8n-node release",
|
|
25
|
+
"prepublishOnly": "n8n-node prerelease"
|
|
26
|
+
},
|
|
25
27
|
"files": [
|
|
26
28
|
"dist"
|
|
27
29
|
],
|
|
@@ -32,11 +34,6 @@
|
|
|
32
34
|
"dist/nodes/Example/Example.node.js"
|
|
33
35
|
]
|
|
34
36
|
},
|
|
35
|
-
"release-it": {
|
|
36
|
-
"hooks": {
|
|
37
|
-
"before:init": "{{packageManager.name}} run lint && {{packageManager.name}} run build"
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
37
|
"devDependencies": {
|
|
41
38
|
"@n8n/node-cli": "*",
|
|
42
39
|
"eslint": "9.32.0",
|