@pipelab/cli 2.0.0-beta.13 → 2.0.0-beta.15
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/{config-BGFI4YTD.mjs → config-C2_-dWDC.mjs} +25 -19
- package/config-kWOWhsn6.mjs +4 -0
- package/index.mjs +159 -47
- package/package.json +1 -1
- package/src-CHr-wGNr.mjs +5 -0
- package/{src-CTcX3YjS.mjs → src-IhkP0N4B.mjs} +129 -60
- package/src-XVe3IQMi.mjs +3 -0
- package/config-B6BzqMsi.mjs +0 -4
- package/src-DZNeIUut.mjs +0 -3
- package/src-DfyJc3PL.mjs +0 -5
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { a as __require, s as __toESM, t as __commonJSMin } from "./chunk-M2dkpuaD.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { C as useLogger, n as normalizePipelineConfig, t as configRegistry } from "./src-IhkP0N4B.mjs";
|
|
3
3
|
import path, { dirname, join } from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import { constants
|
|
5
|
+
import { constants } from "node:os";
|
|
6
6
|
import { appendFileSync, createReadStream, createWriteStream, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
7
|
-
import fs$1, { mkdir,
|
|
7
|
+
import fs$1, { mkdir, readdir, stat, writeFile } from "node:fs/promises";
|
|
8
8
|
import { ChildProcess, execFile, spawn, spawnSync } from "node:child_process";
|
|
9
9
|
import { StringDecoder } from "node:string_decoder";
|
|
10
10
|
import { aborted, callbackify, debuglog, inspect, promisify, stripVTControlCharacters } from "node:util";
|
|
@@ -40243,14 +40243,6 @@ const ensure = async (filesPath, defaultContent = "{}") => {
|
|
|
40243
40243
|
}
|
|
40244
40244
|
};
|
|
40245
40245
|
/**
|
|
40246
|
-
* Generates a unique temporary folder.
|
|
40247
|
-
*/
|
|
40248
|
-
const generateTempFolder = async (base) => {
|
|
40249
|
-
const targetBase = base || tmpdir();
|
|
40250
|
-
await mkdir(targetBase, { recursive: true });
|
|
40251
|
-
return await mkdtemp(join(await realpath(targetBase), "pipelab-"));
|
|
40252
|
-
};
|
|
40253
|
-
/**
|
|
40254
40246
|
* Extracts a .tar.gz archive.
|
|
40255
40247
|
*/
|
|
40256
40248
|
async function extractTarGz(archivePath, destinationDir) {
|
|
@@ -40336,8 +40328,7 @@ async function getFolderSize(dirPath) {
|
|
|
40336
40328
|
//#endregion
|
|
40337
40329
|
//#region ../../packages/core-node/src/config.ts
|
|
40338
40330
|
const getMigrator = (name) => {
|
|
40339
|
-
|
|
40340
|
-
if (name.startsWith("pipeline-") || path.isAbsolute(name) || name.endsWith(".json")) return configRegistry["pipeline"];
|
|
40331
|
+
return configRegistry[name] || configRegistry["pipeline"];
|
|
40341
40332
|
};
|
|
40342
40333
|
const setupConfigFile = async (name, options) => {
|
|
40343
40334
|
const ctx = options.context;
|
|
@@ -40369,8 +40360,9 @@ const setupConfigFile = async (name, options) => {
|
|
|
40369
40360
|
parseFailed = true;
|
|
40370
40361
|
}
|
|
40371
40362
|
let json = void 0;
|
|
40363
|
+
let migrationFailed = false;
|
|
40372
40364
|
try {
|
|
40373
|
-
json = await migrator.migrate(originalJson, {
|
|
40365
|
+
if (!parseFailed) json = await migrator.migrate(originalJson, {
|
|
40374
40366
|
debug: false,
|
|
40375
40367
|
onStep: async (state, version) => {
|
|
40376
40368
|
const parsedPath = path.parse(filesPath);
|
|
@@ -40383,20 +40375,34 @@ const setupConfigFile = async (name, options) => {
|
|
|
40383
40375
|
}
|
|
40384
40376
|
}
|
|
40385
40377
|
});
|
|
40378
|
+
else json = migrator.defaultValue;
|
|
40386
40379
|
} catch (e) {
|
|
40387
40380
|
logger().error(`Error migrating config ${name}:`, e);
|
|
40381
|
+
migrationFailed = true;
|
|
40388
40382
|
json = migrator.defaultValue;
|
|
40389
40383
|
}
|
|
40390
40384
|
let normalized = false;
|
|
40391
40385
|
if (name.startsWith("pipeline-") || path.isAbsolute(name) || name.endsWith(".json") || name === "pipeline") normalized = normalizePipelineConfig(json);
|
|
40392
|
-
if (originalJson?.version !== json?.version || normalized || content === void 0 || parseFailed)
|
|
40393
|
-
|
|
40394
|
-
|
|
40395
|
-
|
|
40386
|
+
if (originalJson?.version !== json?.version || normalized || content === void 0 || parseFailed || migrationFailed) {
|
|
40387
|
+
if (parseFailed || migrationFailed) try {
|
|
40388
|
+
const parsedPath = path.parse(filesPath);
|
|
40389
|
+
const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
|
|
40390
|
+
const corruptedPath = path.join(parsedPath.dir, `${parsedPath.name}.corrupted.${timestamp}.json`);
|
|
40391
|
+
const backupContent = parseFailed ? content || "" : JSON.stringify(originalJson, null, 2);
|
|
40392
|
+
await fs$1.writeFile(corruptedPath, backupContent);
|
|
40393
|
+
logger().info(`Corrupted config file preserved at ${corruptedPath}`);
|
|
40394
|
+
} catch (e) {
|
|
40395
|
+
logger().error(`Failed to backup corrupted config ${name}:`, e);
|
|
40396
|
+
}
|
|
40397
|
+
try {
|
|
40398
|
+
await fs$1.writeFile(filesPath, JSON.stringify(json));
|
|
40399
|
+
} catch (e) {
|
|
40400
|
+
logger().error(`Error saving migrated config ${name}:`, e);
|
|
40401
|
+
}
|
|
40396
40402
|
}
|
|
40397
40403
|
return json;
|
|
40398
40404
|
}
|
|
40399
40405
|
};
|
|
40400
40406
|
};
|
|
40401
40407
|
//#endregion
|
|
40402
|
-
export { extractTarGz as a,
|
|
40408
|
+
export { extractTarGz as a, require_commonjs$2 as c, ensure as i, require_balanced_match as l, setupConfigFile as n, extractZip as o, downloadFile as r, getFolderSize as s, getMigrator as t, execa as u };
|
package/index.mjs
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { a as __require, n as __esmMin, s as __toESM, t as __commonJSMin } from "./chunk-M2dkpuaD.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { C as useLogger, _ as processGraph, a as isWebSocketRequestMessage, c as isSupabaseAvailable, d as usePlugins, i as WebSocketError, l as supabase, o as isRequired, r as savedFileMigrator, s as transformUrl, u as SubscriptionRequiredError } from "./src-IhkP0N4B.mjs";
|
|
4
4
|
import "./dist-BC_B45iu.mjs";
|
|
5
|
-
import { a as extractTarGz, c as
|
|
5
|
+
import { a as extractTarGz, c as require_commonjs$8, l as require_balanced_match, n as setupConfigFile, o as extractZip, r as downloadFile, s as getFolderSize, t as getMigrator, u as execa } from "./config-C2_-dWDC.mjs";
|
|
6
6
|
import path, { delimiter, dirname, isAbsolute, join, normalize, resolve, sep } from "node:path";
|
|
7
7
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
8
|
-
import { homedir, platform, release
|
|
8
|
+
import { homedir, platform, release } from "node:os";
|
|
9
9
|
import fs, { createReadStream, existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
10
|
+
import fs$1, { access, chmod, cp, mkdir, mkdtemp, readFile, readdir, realpath, rename, rm, stat, unlink, writeFile } from "node:fs/promises";
|
|
10
11
|
import http from "http";
|
|
11
12
|
import http$1 from "node:http";
|
|
12
13
|
import { webcrypto } from "node:crypto";
|
|
13
14
|
import { dirname as dirname$1, isAbsolute as isAbsolute$1, posix, relative, sep as sep$1 } from "path";
|
|
14
|
-
import fs$1, { access, chmod, cp, mkdir, readFile, readdir, rename, rm, stat, unlink, writeFile } from "node:fs/promises";
|
|
15
15
|
import { execFile } from "node:child_process";
|
|
16
16
|
import { promisify, stripVTControlCharacters, styleText } from "node:util";
|
|
17
17
|
import P, { platform as platform$1, stdin, stdout } from "node:process";
|
|
18
18
|
import { ReadStream } from "node:tty";
|
|
19
19
|
import { setTimeout as setTimeout$1 } from "node:timers/promises";
|
|
20
|
+
import dns from "node:dns/promises";
|
|
20
21
|
import * as _ from "node:readline";
|
|
21
22
|
import P$1, { createInterface } from "node:readline";
|
|
22
23
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
@@ -28,9 +29,23 @@ var init_esm_shims = __esmMin((() => {
|
|
|
28
29
|
__dirname$1 = /* @__PURE__ */ getDirname();
|
|
29
30
|
}));
|
|
30
31
|
//#endregion
|
|
31
|
-
//#region ../../packages/
|
|
32
|
+
//#region ../../packages/constants/src/index.ts
|
|
32
33
|
init_esm_shims();
|
|
33
|
-
const
|
|
34
|
+
const websocketPort = 33753;
|
|
35
|
+
const SandboxFolder = {
|
|
36
|
+
Packages: "packages",
|
|
37
|
+
ThirdParty: "thirdparty",
|
|
38
|
+
Config: "config",
|
|
39
|
+
Temp: "temp",
|
|
40
|
+
Cache: "cache",
|
|
41
|
+
Pnpm: "pnpm"
|
|
42
|
+
};
|
|
43
|
+
const DEFAULT_NODE_VERSION = "24.14.1";
|
|
44
|
+
const DEFAULT_PNPM_VERSION = "10.12.0";
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region ../../packages/core-node/src/context.ts
|
|
47
|
+
const metaUrl = typeof import.meta !== "undefined" ? import.meta.url : void 0;
|
|
48
|
+
const _dirname = typeof __dirname$1 !== "undefined" ? __dirname$1 : metaUrl ? dirname(fileURLToPath(metaUrl)) : process.cwd();
|
|
34
49
|
const getDefaultUserDataPath$1 = (env) => {
|
|
35
50
|
const base = (() => {
|
|
36
51
|
switch (platform()) {
|
|
@@ -70,6 +85,59 @@ var PipelabContext = class {
|
|
|
70
85
|
getConfigPath(...subpaths) {
|
|
71
86
|
return join(this.userDataPath, "config", ...subpaths);
|
|
72
87
|
}
|
|
88
|
+
getTempPath(...subpaths) {
|
|
89
|
+
return join(this.userDataPath, "temp", ...subpaths);
|
|
90
|
+
}
|
|
91
|
+
async createTempFolder(prefix = "pipelab-") {
|
|
92
|
+
const baseDir = this.getTempPath();
|
|
93
|
+
await mkdir(baseDir, { recursive: true });
|
|
94
|
+
return await mkdtemp(join(await realpath(baseDir), prefix));
|
|
95
|
+
}
|
|
96
|
+
getCachePath(...subpaths) {
|
|
97
|
+
return join(this.userDataPath, "cache", ...subpaths);
|
|
98
|
+
}
|
|
99
|
+
getPnpmPath(...subpaths) {
|
|
100
|
+
return join(this.userDataPath, "pnpm", ...subpaths);
|
|
101
|
+
}
|
|
102
|
+
getNodePath(version = DEFAULT_NODE_VERSION) {
|
|
103
|
+
const isWindows = process.platform === "win32";
|
|
104
|
+
return this.getThirdPartyPath("node", version, isWindows ? "node.exe" : "bin/node");
|
|
105
|
+
}
|
|
106
|
+
getPnpmBinPath(version = DEFAULT_PNPM_VERSION) {
|
|
107
|
+
return this.getPackagesPath("pnpm", version, "bin", "pnpm.cjs");
|
|
108
|
+
}
|
|
109
|
+
getSandboxFolders() {
|
|
110
|
+
const foldersRecord = {
|
|
111
|
+
[SandboxFolder.Packages]: {
|
|
112
|
+
label: "Packages",
|
|
113
|
+
path: this.getPackagesPath()
|
|
114
|
+
},
|
|
115
|
+
[SandboxFolder.ThirdParty]: {
|
|
116
|
+
label: "Third-Party Tools",
|
|
117
|
+
path: this.getThirdPartyPath()
|
|
118
|
+
},
|
|
119
|
+
[SandboxFolder.Config]: {
|
|
120
|
+
label: "Configuration",
|
|
121
|
+
path: this.getConfigPath()
|
|
122
|
+
},
|
|
123
|
+
[SandboxFolder.Temp]: {
|
|
124
|
+
label: "Temporary Files",
|
|
125
|
+
path: this.getTempPath()
|
|
126
|
+
},
|
|
127
|
+
[SandboxFolder.Cache]: {
|
|
128
|
+
label: "Cache",
|
|
129
|
+
path: this.getCachePath()
|
|
130
|
+
},
|
|
131
|
+
[SandboxFolder.Pnpm]: {
|
|
132
|
+
label: "PNPM Home",
|
|
133
|
+
path: this.getPnpmPath()
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
return Object.keys(foldersRecord).map((key) => ({
|
|
137
|
+
name: key,
|
|
138
|
+
...foldersRecord[key]
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
73
141
|
};
|
|
74
142
|
//#endregion
|
|
75
143
|
//#region ../../packages/core-node/node_modules/ws/lib/constants.js
|
|
@@ -3629,9 +3697,6 @@ const useAPI = () => {
|
|
|
3629
3697
|
};
|
|
3630
3698
|
};
|
|
3631
3699
|
//#endregion
|
|
3632
|
-
//#region ../../packages/constants/src/index.ts
|
|
3633
|
-
const websocketPort = 33753;
|
|
3634
|
-
//#endregion
|
|
3635
3700
|
//#region ../../packages/core-node/src/websocket-server.ts
|
|
3636
3701
|
var WebSocketServer = class {
|
|
3637
3702
|
wss = null;
|
|
@@ -4431,6 +4496,15 @@ var BuildHistoryStorage = class {
|
|
|
4431
4496
|
const files = await this.getAllPipelineFiles();
|
|
4432
4497
|
const diskSpace = await checkDiskSpace(this.context.userDataPath);
|
|
4433
4498
|
const pipelabSize = await getFolderSize(this.context.userDataPath);
|
|
4499
|
+
const folders = [];
|
|
4500
|
+
for (const folder of this.context.getSandboxFolders()) {
|
|
4501
|
+
const size = await getFolderSize(folder.path);
|
|
4502
|
+
folders.push({
|
|
4503
|
+
name: folder.name,
|
|
4504
|
+
label: folder.label,
|
|
4505
|
+
size
|
|
4506
|
+
});
|
|
4507
|
+
}
|
|
4434
4508
|
const policy = (await (await setupConfigFile("settings", { context: this.context })).getConfig())?.buildHistory?.retentionPolicy || {
|
|
4435
4509
|
enabled: false,
|
|
4436
4510
|
maxEntries: 50,
|
|
@@ -4449,7 +4523,8 @@ var BuildHistoryStorage = class {
|
|
|
4449
4523
|
disk: {
|
|
4450
4524
|
total: diskSpace.size,
|
|
4451
4525
|
free: diskSpace.free,
|
|
4452
|
-
pipelab: pipelabSize
|
|
4526
|
+
pipelab: pipelabSize,
|
|
4527
|
+
folders
|
|
4453
4528
|
}
|
|
4454
4529
|
};
|
|
4455
4530
|
let totalSize = 0;
|
|
@@ -4477,7 +4552,8 @@ var BuildHistoryStorage = class {
|
|
|
4477
4552
|
disk: {
|
|
4478
4553
|
total: diskSpace.size,
|
|
4479
4554
|
free: diskSpace.free,
|
|
4480
|
-
pipelab: pipelabSize
|
|
4555
|
+
pipelab: pipelabSize,
|
|
4556
|
+
folders
|
|
4481
4557
|
}
|
|
4482
4558
|
};
|
|
4483
4559
|
} catch (error) {
|
|
@@ -4789,7 +4865,7 @@ const registerHistoryHandlers = (context) => {
|
|
|
4789
4865
|
}
|
|
4790
4866
|
}
|
|
4791
4867
|
};
|
|
4792
|
-
await settings.
|
|
4868
|
+
await settings.setConfig(newConfig);
|
|
4793
4869
|
send({
|
|
4794
4870
|
type: "end",
|
|
4795
4871
|
data: {
|
|
@@ -25904,9 +25980,9 @@ var require_protected = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
25904
25980
|
//#region ../../node_modules/pacote/lib/util/cache-dir.js
|
|
25905
25981
|
var require_cache_dir = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
25906
25982
|
const { resolve: resolve$7 } = __require("node:path");
|
|
25907
|
-
const { tmpdir
|
|
25983
|
+
const { tmpdir, homedir: homedir$1 } = __require("node:os");
|
|
25908
25984
|
module.exports = (fakePlatform = false) => {
|
|
25909
|
-
const temp = tmpdir
|
|
25985
|
+
const temp = tmpdir();
|
|
25910
25986
|
const uidOrPid = process.getuid ? process.getuid() : process.pid;
|
|
25911
25987
|
const home = homedir$1() || resolve$7(temp, "npm-" + uidOrPid);
|
|
25912
25988
|
const platform = fakePlatform || process.platform;
|
|
@@ -39157,7 +39233,7 @@ var require_auth = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
39157
39233
|
//#endregion
|
|
39158
39234
|
//#region ../../node_modules/make-fetch-happen/lib/options.js
|
|
39159
39235
|
var require_options$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
39160
|
-
const dns$
|
|
39236
|
+
const dns$3 = __require("dns");
|
|
39161
39237
|
const conditionalHeaders = [
|
|
39162
39238
|
"if-modified-since",
|
|
39163
39239
|
"if-none-match",
|
|
@@ -39182,7 +39258,7 @@ var require_options$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
39182
39258
|
};
|
|
39183
39259
|
options.dns = {
|
|
39184
39260
|
ttl: 300 * 1e3,
|
|
39185
|
-
lookup: dns$
|
|
39261
|
+
lookup: dns$3.lookup,
|
|
39186
39262
|
...options.dns
|
|
39187
39263
|
};
|
|
39188
39264
|
options.cache = options.cache || "default";
|
|
@@ -40599,9 +40675,9 @@ var require_key$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
40599
40675
|
//#region ../../node_modules/@npmcli/agent/lib/dns.js
|
|
40600
40676
|
var require_dns = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
40601
40677
|
const { LRUCache } = require_index_min$5();
|
|
40602
|
-
const dns$
|
|
40678
|
+
const dns$2 = __require("dns");
|
|
40603
40679
|
const cache = new LRUCache({ max: 50 });
|
|
40604
|
-
const getOptions = ({ family = 0, hints = dns$
|
|
40680
|
+
const getOptions = ({ family = 0, hints = dns$2.ADDRCONFIG, all = false, verbatim = void 0, ttl = 300 * 1e3, lookup = dns$2.lookup }) => ({
|
|
40605
40681
|
hints,
|
|
40606
40682
|
lookup: (hostname, ...args) => {
|
|
40607
40683
|
const callback = args.pop();
|
|
@@ -45640,7 +45716,7 @@ var require_dist$9 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45640
45716
|
const socks_1 = require_build$1();
|
|
45641
45717
|
const agent_base_1 = require_dist$12();
|
|
45642
45718
|
const debug_1 = __importDefault(require_src$2());
|
|
45643
|
-
const dns = __importStar(__require("dns"));
|
|
45719
|
+
const dns$1 = __importStar(__require("dns"));
|
|
45644
45720
|
const net$1 = __importStar(__require("net"));
|
|
45645
45721
|
const tls$1 = __importStar(__require("tls"));
|
|
45646
45722
|
const url_1$1 = __require("url");
|
|
@@ -45712,7 +45788,7 @@ var require_dist$9 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45712
45788
|
const { shouldLookup, proxy, timeout } = this;
|
|
45713
45789
|
if (!opts.host) throw new Error("No `host` defined!");
|
|
45714
45790
|
let { host } = opts;
|
|
45715
|
-
const { port, lookup: lookupFn = dns.lookup } = opts;
|
|
45791
|
+
const { port, lookup: lookupFn = dns$1.lookup } = opts;
|
|
45716
45792
|
if (shouldLookup) host = await new Promise((resolve, reject) => {
|
|
45717
45793
|
lookupFn(host, {}, (err, res) => {
|
|
45718
45794
|
if (err) reject(err);
|
|
@@ -66444,10 +66520,7 @@ function registerMigrationHandlers(context) {
|
|
|
66444
66520
|
const { config: name } = value;
|
|
66445
66521
|
logger().info("[CLI Migration] config:load", name);
|
|
66446
66522
|
try {
|
|
66447
|
-
|
|
66448
|
-
if (name === "projects") migrator = fileRepoMigrations;
|
|
66449
|
-
else if (name === "settings") migrator = appSettingsMigrator;
|
|
66450
|
-
else if (name.startsWith("pipeline-") || name.endsWith(".plb")) migrator = savedFileMigrator;
|
|
66523
|
+
const migrator = getMigrator(name);
|
|
66451
66524
|
if (!migrator) throw new Error(`No migrator found for configuration: ${name}. All files loaded via config:load MUST have a migration schema.`);
|
|
66452
66525
|
send({
|
|
66453
66526
|
type: "end",
|
|
@@ -66543,8 +66616,6 @@ async function serveCommand(options, version, _dirname) {
|
|
|
66543
66616
|
}
|
|
66544
66617
|
//#endregion
|
|
66545
66618
|
//#region ../../packages/core-node/src/utils/remote.ts
|
|
66546
|
-
const DEFAULT_NODE_VERSION = "24.14.1";
|
|
66547
|
-
const DEFAULT_PNPM_VERSION = "10.12.0";
|
|
66548
66619
|
function isPackageComplete(packageDir) {
|
|
66549
66620
|
return existsSync(join(packageDir, "package.json"));
|
|
66550
66621
|
}
|
|
@@ -66585,6 +66656,20 @@ async function withLock(key, fn) {
|
|
|
66585
66656
|
activeOperations.set(key, promise);
|
|
66586
66657
|
return promise;
|
|
66587
66658
|
}
|
|
66659
|
+
let isOnlineCached = null;
|
|
66660
|
+
let lastCheckTime = 0;
|
|
66661
|
+
async function isOnline() {
|
|
66662
|
+
const now = Date.now();
|
|
66663
|
+
if (isOnlineCached !== null && now - lastCheckTime < 1e4) return isOnlineCached;
|
|
66664
|
+
try {
|
|
66665
|
+
await Promise.race([dns.lookup("registry.npmjs.org"), new Promise((_, reject) => setTimeout(() => reject(/* @__PURE__ */ new Error("timeout")), 1500))]);
|
|
66666
|
+
isOnlineCached = true;
|
|
66667
|
+
} catch {
|
|
66668
|
+
isOnlineCached = false;
|
|
66669
|
+
}
|
|
66670
|
+
lastCheckTime = now;
|
|
66671
|
+
return isOnlineCached;
|
|
66672
|
+
}
|
|
66588
66673
|
/**
|
|
66589
66674
|
* Robust utility to fetch, cache, and resolve an NPM package.
|
|
66590
66675
|
* Centralized in core-node to avoid circular dependencies.
|
|
@@ -66598,7 +66683,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
66598
66683
|
if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
|
|
66599
66684
|
console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
|
|
66600
66685
|
const resolveStart = Date.now();
|
|
66601
|
-
|
|
66686
|
+
if (!await isOnline()) {
|
|
66687
|
+
console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
66688
|
+
const fallbackStart = Date.now();
|
|
66689
|
+
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
|
|
66690
|
+
if (fallbackVersion) {
|
|
66691
|
+
resolvedVersion = fallbackVersion;
|
|
66692
|
+
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
66693
|
+
} else throw new Error(`Offline and no local fallback version available for ${packageName}`);
|
|
66694
|
+
} else try {
|
|
66602
66695
|
const cachePath = join(ctx.userDataPath, "cache", "pacote");
|
|
66603
66696
|
let packumentPromise = packumentRequests.get(packageName);
|
|
66604
66697
|
if (!packumentPromise) {
|
|
@@ -66608,7 +66701,16 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
66608
66701
|
const packument = await packumentPromise;
|
|
66609
66702
|
const versions = Object.keys(packument.versions);
|
|
66610
66703
|
const range = resolvedVersionOrRange || "latest";
|
|
66611
|
-
|
|
66704
|
+
let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
|
|
66705
|
+
if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
|
|
66706
|
+
const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
|
|
66707
|
+
if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
|
|
66708
|
+
if (!foundVersion || import_semver.default.valid(foundVersion) && import_semver.default.gte(releaseTagVersion, foundVersion)) {
|
|
66709
|
+
console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) instead of "latest" (${foundVersion || "none"}) for ${packageName}`);
|
|
66710
|
+
foundVersion = releaseTagVersion;
|
|
66711
|
+
} else if (foundVersion) console.warn(`[Fetcher] Tag "${ctx.releaseTag}" (${releaseTagVersion}) is older than "latest" (${foundVersion}) for ${packageName}, keeping "latest"`);
|
|
66712
|
+
}
|
|
66713
|
+
}
|
|
66612
66714
|
if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
|
|
66613
66715
|
resolvedVersion = foundVersion;
|
|
66614
66716
|
console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
|
|
@@ -66723,7 +66825,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
66723
66825
|
const extension = isWindows ? "zip" : "tar.gz";
|
|
66724
66826
|
const fileName = `node-v${version}-${platform === "osx" ? "darwin" : platform}-${arch}.${extension}`;
|
|
66725
66827
|
const downloadUrl = `https://nodejs.org/dist/v${version}/${fileName}`;
|
|
66726
|
-
const tempDir = await
|
|
66828
|
+
const tempDir = await context.createTempFolder("node-download-");
|
|
66727
66829
|
const archivePath = join(tempDir, fileName);
|
|
66728
66830
|
sendStartupProgress(`Downloading Node.js v${version}...`);
|
|
66729
66831
|
console.log(`Downloading Node.js from ${downloadUrl}...`);
|
|
@@ -67117,9 +67219,9 @@ const builtInPlugins = async (options) => {
|
|
|
67117
67219
|
const envStart = Date.now();
|
|
67118
67220
|
await Promise.all([ensureNodeJS(options.context), ensurePNPM(options.context)]);
|
|
67119
67221
|
console.log(`[Plugins] Environment preparation took ${Date.now() - envStart}ms`);
|
|
67120
|
-
const { usePlugins } = await import("./src-
|
|
67222
|
+
const { usePlugins } = await import("./src-XVe3IQMi.mjs");
|
|
67121
67223
|
const { registerPlugins } = usePlugins();
|
|
67122
|
-
const { webSocketServer } = await import("./src-
|
|
67224
|
+
const { webSocketServer } = await import("./src-CHr-wGNr.mjs");
|
|
67123
67225
|
(async () => {
|
|
67124
67226
|
const totalStart = Date.now();
|
|
67125
67227
|
const pluginsToLoad = /* @__PURE__ */ new Map();
|
|
@@ -67138,7 +67240,7 @@ const builtInPlugins = async (options) => {
|
|
|
67138
67240
|
"@pipelab/plugin-netlify"
|
|
67139
67241
|
]) pluginsToLoad.set(name, "latest");
|
|
67140
67242
|
try {
|
|
67141
|
-
const { setupConfigFile } = await import("./config-
|
|
67243
|
+
const { setupConfigFile } = await import("./config-kWOWhsn6.mjs");
|
|
67142
67244
|
const settingsPlugins = (await (await setupConfigFile("settings", { context: options.context })).getConfig())?.plugins || [];
|
|
67143
67245
|
for (const plugin of settingsPlugins) if (plugin.name) if (plugin.enabled) {
|
|
67144
67246
|
if (!pluginsToLoad.has(plugin.name)) pluginsToLoad.set(plugin.name, "latest");
|
|
@@ -67167,7 +67269,6 @@ const builtInPlugins = async (options) => {
|
|
|
67167
67269
|
webSocketServer.broadcast("startup:progress", { type: "ready" });
|
|
67168
67270
|
}, 2e3);
|
|
67169
67271
|
})();
|
|
67170
|
-
return [];
|
|
67171
67272
|
};
|
|
67172
67273
|
//#endregion
|
|
67173
67274
|
//#region ../../packages/core-node/src/utils.ts
|
|
@@ -67223,7 +67324,7 @@ const executeGraphWithHistory = async ({ graph, variables, projectName, projectP
|
|
|
67223
67324
|
const shouldDisableHistory = process.env.PIPELAB_DISABLE_HISTORY === "true";
|
|
67224
67325
|
if (!shouldDisableHistory) await buildHistoryStorage.save(initialEntry);
|
|
67225
67326
|
const logs = [];
|
|
67226
|
-
const sandboxPath = await
|
|
67327
|
+
const sandboxPath = await ctx.createTempFolder("pipeline-sandbox-");
|
|
67227
67328
|
const { logger } = useLogger();
|
|
67228
67329
|
let completedSteps = 0;
|
|
67229
67330
|
const { registerPlugins, plugins: registeredPlugins } = usePlugins();
|
|
@@ -67689,8 +67790,9 @@ const registerEngineHandlers = (context) => {
|
|
|
67689
67790
|
};
|
|
67690
67791
|
handle("action:execute", async (event, { send, value }) => {
|
|
67691
67792
|
const { nodeId, params, pluginId } = value;
|
|
67692
|
-
|
|
67693
|
-
const
|
|
67793
|
+
await (await setupConfigFile("settings", { context })).getConfig();
|
|
67794
|
+
const cachePath = join(context.userDataPath, "cache", "actions", pluginId, nodeId);
|
|
67795
|
+
const cwd = await context.createTempFolder("action-execute-");
|
|
67694
67796
|
const mainWindow = void 0;
|
|
67695
67797
|
abortControllerGraph = new AbortController();
|
|
67696
67798
|
const signalPromise = new Promise((resolve, reject) => {
|
|
@@ -67729,11 +67831,11 @@ const registerEngineHandlers = (context) => {
|
|
|
67729
67831
|
});
|
|
67730
67832
|
handle("graph:execute", async (event, { send, value }) => {
|
|
67731
67833
|
const { graph, variables, projectName, projectPath, pipelineId } = value;
|
|
67732
|
-
|
|
67834
|
+
await (await setupConfigFile("settings", { context })).getConfig();
|
|
67733
67835
|
const effectiveProjectName = projectName || "Unnamed Project";
|
|
67734
67836
|
const effectiveProjectPath = projectPath || "";
|
|
67735
67837
|
const effectivePipelineId = pipelineId || "unknown";
|
|
67736
|
-
const effectiveCachePath =
|
|
67838
|
+
const effectiveCachePath = join(context.userDataPath, "cache", effectivePipelineId);
|
|
67737
67839
|
const mainWindow = void 0;
|
|
67738
67840
|
abortControllerGraph = new AbortController();
|
|
67739
67841
|
try {
|
|
@@ -68216,14 +68318,11 @@ const registerPluginsHandlers = (context) => {
|
|
|
68216
68318
|
}
|
|
68217
68319
|
});
|
|
68218
68320
|
handle("plugin:ensure-loaded", async (_, { send, value }) => {
|
|
68219
|
-
const {
|
|
68321
|
+
const { plugins } = value;
|
|
68220
68322
|
const { plugins: registeredPlugins, registerPlugins } = usePlugins();
|
|
68221
68323
|
const loaded = [];
|
|
68222
68324
|
const failed = [];
|
|
68223
68325
|
const pluginsToEnsure = /* @__PURE__ */ new Set();
|
|
68224
|
-
if (Array.isArray(pluginIds)) {
|
|
68225
|
-
for (const id of pluginIds) if (id) pluginsToEnsure.add(id);
|
|
68226
|
-
}
|
|
68227
68326
|
if (plugins && typeof plugins === "object") {
|
|
68228
68327
|
for (const id of Object.keys(plugins)) if (id) pluginsToEnsure.add(id);
|
|
68229
68328
|
}
|
|
@@ -68376,7 +68475,7 @@ async function runPipelineCommand(file, options, version) {
|
|
|
68376
68475
|
}
|
|
68377
68476
|
//#endregion
|
|
68378
68477
|
//#region package.json
|
|
68379
|
-
var version$2 = "2.0.0-beta.
|
|
68478
|
+
var version$2 = "2.0.0-beta.15";
|
|
68380
68479
|
//#endregion
|
|
68381
68480
|
//#region src/paths.ts
|
|
68382
68481
|
const getDefaultUserDataPath = () => {
|
|
@@ -68436,7 +68535,7 @@ async function usageCommand(options) {
|
|
|
68436
68535
|
"Oldest Entry": info.oldestEntry ? new Date(info.oldestEntry).toLocaleString() : "N/A",
|
|
68437
68536
|
"Newest Entry": info.newestEntry ? new Date(info.newestEntry).toLocaleString() : "N/A",
|
|
68438
68537
|
"User Data Path": info.userDataPath,
|
|
68439
|
-
"Cache Path": info.
|
|
68538
|
+
"Cache Path": join(info.userDataPath, "build-history")
|
|
68440
68539
|
});
|
|
68441
68540
|
console.log("\nRetention Policy:");
|
|
68442
68541
|
console.table({
|
|
@@ -69845,10 +69944,13 @@ async function setupCommand(options) {
|
|
|
69845
69944
|
pt("Setup aborted.");
|
|
69846
69945
|
process.exit(0);
|
|
69847
69946
|
}
|
|
69947
|
+
const theme = configChanges.theme === "light" ? "light" : "dark";
|
|
69948
|
+
const localeValue = configChanges.locale;
|
|
69949
|
+
const locale = isLocale(localeValue) ? localeValue : "en-US";
|
|
69848
69950
|
await settings.setConfig({
|
|
69849
69951
|
...config,
|
|
69850
|
-
theme
|
|
69851
|
-
locale
|
|
69952
|
+
theme,
|
|
69953
|
+
locale
|
|
69852
69954
|
});
|
|
69853
69955
|
const integrations = await yt({
|
|
69854
69956
|
message: "Which integrations would you like to enable?",
|
|
@@ -69879,6 +69981,16 @@ async function setupCommand(options) {
|
|
|
69879
69981
|
wt(`You're all set! You can now use Pipelab CLI to manage your automation.\n\nType 'pipelab --help' to get started.`, "Setup Complete");
|
|
69880
69982
|
gt("Happy automating! 🚀");
|
|
69881
69983
|
}
|
|
69984
|
+
function isLocale(value) {
|
|
69985
|
+
return typeof value === "string" && [
|
|
69986
|
+
"en-US",
|
|
69987
|
+
"fr-FR",
|
|
69988
|
+
"pt-BR",
|
|
69989
|
+
"zh-CN",
|
|
69990
|
+
"es-ES",
|
|
69991
|
+
"de-DE"
|
|
69992
|
+
].includes(value);
|
|
69993
|
+
}
|
|
69882
69994
|
(/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
69883
69995
|
const fs$3 = __require("fs");
|
|
69884
69996
|
const path$2 = __require("path");
|
|
@@ -76439,4 +76551,4 @@ program.hook("postAction", (thisCommand) => {
|
|
|
76439
76551
|
program.parse(process.argv);
|
|
76440
76552
|
if (!process.argv.slice(2).length) program.outputHelp();
|
|
76441
76553
|
//#endregion
|
|
76442
|
-
export {
|
|
76554
|
+
export { useAPI as A, registerHistoryHandlers as C, registerShellHandlers as D, registerFsHandlers as E, getDefaultUserDataPath$1 as M, projectRoot as N, WebSocketServer as O, registerMigrationHandlers as S, registerConfigHandlers as T, isOnline as _, executeGraphWithHistory as a, sendStartupReady as b, findInstalledPlugins as c, handleActionExecute as d, ensureNodeJS as f, fetchPipelabPlugin as g, fetchPipelabAsset as h, registerEngineHandlers as i, PipelabContext as j, webSocketServer as k, loadCustomPlugin as l, fetchPackage as m, registerAllHandlers as n, getFinalPlugins as o, ensurePNPM as p, registerAgentsHandlers as r, builtInPlugins as s, runPipelineCommand as t, loadPipelabPlugin as u, runPnpm as v, BuildHistoryStorage as w, serveCommand as x, sendStartupProgress as y };
|
package/package.json
CHANGED
package/src-CHr-wGNr.mjs
ADDED
|
@@ -1580,6 +1580,56 @@ function literal(literal_, message) {
|
|
|
1580
1580
|
}
|
|
1581
1581
|
};
|
|
1582
1582
|
}
|
|
1583
|
+
function looseObject(entries, message) {
|
|
1584
|
+
return {
|
|
1585
|
+
kind: "schema",
|
|
1586
|
+
type: "loose_object",
|
|
1587
|
+
reference: looseObject,
|
|
1588
|
+
expects: "Object",
|
|
1589
|
+
async: false,
|
|
1590
|
+
entries,
|
|
1591
|
+
message,
|
|
1592
|
+
_run(dataset, config2) {
|
|
1593
|
+
const input = dataset.value;
|
|
1594
|
+
if (input && typeof input === "object") {
|
|
1595
|
+
dataset.typed = true;
|
|
1596
|
+
dataset.value = {};
|
|
1597
|
+
for (const key in this.entries) {
|
|
1598
|
+
const value2 = input[key];
|
|
1599
|
+
const valueDataset = this.entries[key]._run({
|
|
1600
|
+
typed: false,
|
|
1601
|
+
value: value2
|
|
1602
|
+
}, config2);
|
|
1603
|
+
if (valueDataset.issues) {
|
|
1604
|
+
const pathItem = {
|
|
1605
|
+
type: "object",
|
|
1606
|
+
origin: "value",
|
|
1607
|
+
input,
|
|
1608
|
+
key,
|
|
1609
|
+
value: value2
|
|
1610
|
+
};
|
|
1611
|
+
for (const issue of valueDataset.issues) {
|
|
1612
|
+
if (issue.path) issue.path.unshift(pathItem);
|
|
1613
|
+
else issue.path = [pathItem];
|
|
1614
|
+
dataset.issues?.push(issue);
|
|
1615
|
+
}
|
|
1616
|
+
if (!dataset.issues) dataset.issues = valueDataset.issues;
|
|
1617
|
+
if (config2.abortEarly) {
|
|
1618
|
+
dataset.typed = false;
|
|
1619
|
+
break;
|
|
1620
|
+
}
|
|
1621
|
+
}
|
|
1622
|
+
if (!valueDataset.typed) dataset.typed = false;
|
|
1623
|
+
if (valueDataset.value !== void 0 || key in input) dataset.value[key] = valueDataset.value;
|
|
1624
|
+
}
|
|
1625
|
+
if (!dataset.issues || !config2.abortEarly) {
|
|
1626
|
+
for (const key in input) if (_isValidObjectKey(input, key) && !(key in this.entries)) dataset.value[key] = input[key];
|
|
1627
|
+
}
|
|
1628
|
+
} else _addIssue(this, "type", dataset, config2);
|
|
1629
|
+
return dataset;
|
|
1630
|
+
}
|
|
1631
|
+
};
|
|
1632
|
+
}
|
|
1583
1633
|
function number(message) {
|
|
1584
1634
|
return {
|
|
1585
1635
|
kind: "schema",
|
|
@@ -2051,7 +2101,7 @@ const defaultAppSettings = settingsMigratorInternal.createDefault({
|
|
|
2051
2101
|
plugins: DEFAULT_PLUGINS,
|
|
2052
2102
|
isInternalMigrationBannerClosed: false
|
|
2053
2103
|
});
|
|
2054
|
-
const appSettingsMigrator
|
|
2104
|
+
const appSettingsMigrator = settingsMigratorInternal.createMigrations({
|
|
2055
2105
|
defaultValue: defaultAppSettings,
|
|
2056
2106
|
migrations: [
|
|
2057
2107
|
createMigration({
|
|
@@ -2120,6 +2170,18 @@ const appSettingsMigrator$1 = settingsMigratorInternal.createMigrations({
|
|
|
2120
2170
|
})
|
|
2121
2171
|
]
|
|
2122
2172
|
});
|
|
2173
|
+
const connectionsMigratorInternal = createMigrator();
|
|
2174
|
+
const defaultConnections = connectionsMigratorInternal.createDefault({
|
|
2175
|
+
version: "1.0.0",
|
|
2176
|
+
connections: []
|
|
2177
|
+
});
|
|
2178
|
+
const connectionsMigrator = connectionsMigratorInternal.createMigrations({
|
|
2179
|
+
defaultValue: defaultConnections,
|
|
2180
|
+
migrations: [createMigration({
|
|
2181
|
+
version: "1.0.0",
|
|
2182
|
+
up: finalVersion
|
|
2183
|
+
})]
|
|
2184
|
+
});
|
|
2123
2185
|
const fileRepoMigratorInternal = createMigrator();
|
|
2124
2186
|
const defaultFileRepo = fileRepoMigratorInternal.createDefault({
|
|
2125
2187
|
version: "2.0.0",
|
|
@@ -2130,7 +2192,7 @@ const defaultFileRepo = fileRepoMigratorInternal.createDefault({
|
|
|
2130
2192
|
}],
|
|
2131
2193
|
pipelines: []
|
|
2132
2194
|
});
|
|
2133
|
-
const fileRepoMigrations
|
|
2195
|
+
const fileRepoMigrations = fileRepoMigratorInternal.createMigrations({
|
|
2134
2196
|
defaultValue: defaultFileRepo,
|
|
2135
2197
|
migrations: [createMigration({
|
|
2136
2198
|
version: "1.0.0",
|
|
@@ -2281,10 +2343,7 @@ const LEGACY_ID_MAP = {
|
|
|
2281
2343
|
};
|
|
2282
2344
|
const getStrictPluginId = (pluginId) => {
|
|
2283
2345
|
if (!pluginId) return pluginId;
|
|
2284
|
-
|
|
2285
|
-
if (pluginId.startsWith("@") || pluginId.includes("/") || pluginId.startsWith("pipelab-plugin-")) return pluginId;
|
|
2286
|
-
const prefixed = `@pipelab/plugin-${pluginId}`;
|
|
2287
|
-
return LEGACY_ID_MAP[prefixed] || prefixed;
|
|
2346
|
+
return LEGACY_ID_MAP[pluginId] || pluginId;
|
|
2288
2347
|
};
|
|
2289
2348
|
const normalizeBlockPluginId = (block) => {
|
|
2290
2349
|
if (!block) return false;
|
|
@@ -2312,10 +2371,57 @@ const normalizePipelineConfig$1 = (state) => {
|
|
|
2312
2371
|
return changed;
|
|
2313
2372
|
};
|
|
2314
2373
|
const configRegistry$1 = {
|
|
2315
|
-
settings: appSettingsMigrator
|
|
2316
|
-
projects: fileRepoMigrations
|
|
2317
|
-
pipeline: savedFileMigrator$1
|
|
2374
|
+
settings: appSettingsMigrator,
|
|
2375
|
+
projects: fileRepoMigrations,
|
|
2376
|
+
pipeline: savedFileMigrator$1,
|
|
2377
|
+
connections: connectionsMigrator
|
|
2318
2378
|
};
|
|
2379
|
+
//#endregion
|
|
2380
|
+
//#region ../../packages/shared/src/save-location.ts
|
|
2381
|
+
const SaveLocationInternalValidator = object({
|
|
2382
|
+
id: string(),
|
|
2383
|
+
project: string(),
|
|
2384
|
+
lastModified: string(),
|
|
2385
|
+
type: literal("internal"),
|
|
2386
|
+
configName: string()
|
|
2387
|
+
});
|
|
2388
|
+
/** @deprecated External pipeline files are deprecated and will be removed in future versions. */
|
|
2389
|
+
const SaveLocationExternalValidator = object({
|
|
2390
|
+
id: string(),
|
|
2391
|
+
project: string(),
|
|
2392
|
+
path: string(),
|
|
2393
|
+
lastModified: string(),
|
|
2394
|
+
type: literal("external"),
|
|
2395
|
+
summary: object({
|
|
2396
|
+
plugins: array(string()),
|
|
2397
|
+
name: string(),
|
|
2398
|
+
description: string()
|
|
2399
|
+
})
|
|
2400
|
+
});
|
|
2401
|
+
const SaveLocationPipelabCloudValidator = object({
|
|
2402
|
+
id: string(),
|
|
2403
|
+
project: string(),
|
|
2404
|
+
type: literal("pipelab-cloud")
|
|
2405
|
+
});
|
|
2406
|
+
const SaveLocationValidator = union([
|
|
2407
|
+
SaveLocationExternalValidator,
|
|
2408
|
+
SaveLocationInternalValidator,
|
|
2409
|
+
SaveLocationPipelabCloudValidator
|
|
2410
|
+
]);
|
|
2411
|
+
object({
|
|
2412
|
+
version: literal("1.0.0"),
|
|
2413
|
+
data: optional(record(string(), SaveLocationValidator), {})
|
|
2414
|
+
});
|
|
2415
|
+
const FileRepoProjectValidatorV2$1 = object({
|
|
2416
|
+
id: string(),
|
|
2417
|
+
name: string(),
|
|
2418
|
+
description: string()
|
|
2419
|
+
});
|
|
2420
|
+
object({
|
|
2421
|
+
version: literal("2.0.0"),
|
|
2422
|
+
projects: array(FileRepoProjectValidatorV2$1),
|
|
2423
|
+
pipelines: optional(array(SaveLocationValidator), [])
|
|
2424
|
+
});
|
|
2319
2425
|
object({
|
|
2320
2426
|
cacheFolder: string(),
|
|
2321
2427
|
theme: union([literal("light"), literal("dark")]),
|
|
@@ -2467,6 +2573,17 @@ object({
|
|
|
2467
2573
|
})),
|
|
2468
2574
|
isInternalMigrationBannerClosed: optional(boolean(), false)
|
|
2469
2575
|
});
|
|
2576
|
+
const ConnectionValidator = looseObject({
|
|
2577
|
+
id: string(),
|
|
2578
|
+
pluginName: string(),
|
|
2579
|
+
name: string(),
|
|
2580
|
+
createdAt: string(),
|
|
2581
|
+
isDefault: boolean()
|
|
2582
|
+
});
|
|
2583
|
+
object({
|
|
2584
|
+
version: literal("1.0.0"),
|
|
2585
|
+
connections: array(ConnectionValidator)
|
|
2586
|
+
});
|
|
2470
2587
|
//#endregion
|
|
2471
2588
|
//#region ../../node_modules/tslog/dist/esm/prettyLogStyles.js
|
|
2472
2589
|
const prettyLogStyles = {
|
|
@@ -4077,7 +4194,7 @@ const processGraph = async (options) => {
|
|
|
4077
4194
|
const OriginValidator = object({
|
|
4078
4195
|
pluginId: string(),
|
|
4079
4196
|
nodeId: string(),
|
|
4080
|
-
version: pipe(
|
|
4197
|
+
version: optional(pipe(string(), description("Pinned version of the plugin for this block. Falls back to \"latest\" when absent.")))
|
|
4081
4198
|
});
|
|
4082
4199
|
const BlockActionValidatorV1 = object({
|
|
4083
4200
|
type: literal("action"),
|
|
@@ -4090,7 +4207,7 @@ const EditorParamValidatorV3 = union([literal("simple"), literal("editor")]);
|
|
|
4090
4207
|
const BlockActionValidatorV3 = object({
|
|
4091
4208
|
type: literal("action"),
|
|
4092
4209
|
uid: string(),
|
|
4093
|
-
name: pipe(
|
|
4210
|
+
name: optional(pipe(string(), description("A custom name provided by the user"))),
|
|
4094
4211
|
disabled: optional(boolean()),
|
|
4095
4212
|
params: record(string(), object({
|
|
4096
4213
|
editor: EditorParamValidatorV3,
|
|
@@ -32241,38 +32358,6 @@ const usePlugins = () => {
|
|
|
32241
32358
|
};
|
|
32242
32359
|
};
|
|
32243
32360
|
//#endregion
|
|
32244
|
-
//#region ../../packages/shared/src/save-location.ts
|
|
32245
|
-
const SaveLocationInternalValidator = object({
|
|
32246
|
-
id: string(),
|
|
32247
|
-
project: string(),
|
|
32248
|
-
lastModified: string(),
|
|
32249
|
-
type: literal("internal"),
|
|
32250
|
-
configName: string()
|
|
32251
|
-
});
|
|
32252
|
-
/** @deprecated External pipeline files are deprecated and will be removed in future versions. */
|
|
32253
|
-
const SaveLocationExternalValidator = object({
|
|
32254
|
-
id: string(),
|
|
32255
|
-
project: string(),
|
|
32256
|
-
path: string(),
|
|
32257
|
-
lastModified: string(),
|
|
32258
|
-
type: literal("external"),
|
|
32259
|
-
summary: object({
|
|
32260
|
-
plugins: array(string()),
|
|
32261
|
-
name: string(),
|
|
32262
|
-
description: string()
|
|
32263
|
-
})
|
|
32264
|
-
});
|
|
32265
|
-
const SaveLocationPipelabCloudValidator = object({
|
|
32266
|
-
id: string(),
|
|
32267
|
-
project: string(),
|
|
32268
|
-
type: literal("pipelab-cloud")
|
|
32269
|
-
});
|
|
32270
|
-
const SaveLocationValidator = union([
|
|
32271
|
-
SaveLocationExternalValidator,
|
|
32272
|
-
SaveLocationInternalValidator,
|
|
32273
|
-
SaveLocationPipelabCloudValidator
|
|
32274
|
-
]);
|
|
32275
|
-
//#endregion
|
|
32276
32361
|
//#region ../../packages/shared/src/subscription-errors.ts
|
|
32277
32362
|
var SubscriptionRequiredError = class extends Error {
|
|
32278
32363
|
code = "SUBSCRIPTION_REQUIRED";
|
|
@@ -32347,20 +32432,6 @@ object({
|
|
|
32347
32432
|
version: literal("1.0.0"),
|
|
32348
32433
|
data: optional(record(string(), SaveLocationValidator), {})
|
|
32349
32434
|
});
|
|
32350
|
-
const FileRepoProjectValidatorV2$1 = object({
|
|
32351
|
-
id: string(),
|
|
32352
|
-
name: string(),
|
|
32353
|
-
description: string()
|
|
32354
|
-
});
|
|
32355
|
-
object({
|
|
32356
|
-
version: literal("2.0.0"),
|
|
32357
|
-
projects: array(FileRepoProjectValidatorV2$1),
|
|
32358
|
-
pipelines: optional(array(SaveLocationValidator), [])
|
|
32359
|
-
});
|
|
32360
|
-
object({
|
|
32361
|
-
version: literal("1.0.0"),
|
|
32362
|
-
data: optional(record(string(), SaveLocationValidator), {})
|
|
32363
|
-
});
|
|
32364
32435
|
const FileRepoProjectValidatorV2 = object({
|
|
32365
32436
|
id: string(),
|
|
32366
32437
|
name: string(),
|
|
@@ -32373,10 +32444,8 @@ object({
|
|
|
32373
32444
|
});
|
|
32374
32445
|
//#endregion
|
|
32375
32446
|
//#region ../../packages/shared/src/index.ts
|
|
32376
|
-
const appSettingsMigrator = appSettingsMigrator$1;
|
|
32377
|
-
const fileRepoMigrations = fileRepoMigrations$1;
|
|
32378
32447
|
const savedFileMigrator = savedFileMigrator$1;
|
|
32379
32448
|
const configRegistry = configRegistry$1;
|
|
32380
32449
|
const normalizePipelineConfig = normalizePipelineConfig$1;
|
|
32381
32450
|
//#endregion
|
|
32382
|
-
export { useLogger as
|
|
32451
|
+
export { useLogger as C, SaveLocationInternalValidator as D, SaveLocationExternalValidator as E, SaveLocationPipelabCloudValidator as O, fmt as S, FileRepoProjectValidatorV2$1 as T, processGraph as _, isWebSocketRequestMessage as a, createQuickJs as b, isSupabaseAvailable as c, usePlugins as d, EditorParamValidatorV3 as f, VariableValidatorV1 as g, SavedFileSimpleValidatorV4 as h, WebSocketError as i, SaveLocationValidator as k, supabase as l, SavedFileDefaultValidatorV4 as m, normalizePipelineConfig as n, isRequired as o, OriginValidator as p, savedFileMigrator as r, transformUrl as s, configRegistry as t, SubscriptionRequiredError as u, variableToFormattedVariable as v, ConnectionValidator as w, createQuickJsFromVariant as x, makeResolvedParams as y };
|
package/src-XVe3IQMi.mjs
ADDED
package/config-B6BzqMsi.mjs
DELETED
package/src-DZNeIUut.mjs
DELETED