bdy 1.23.7-dev-target-commands → 1.23.7-dev
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/distTs/README.md +181 -0
- package/distTs/package.json +10 -4
- package/distTs/src/agent/linux.js +53 -3
- package/distTs/src/agent/manager.js +3 -6
- package/distTs/src/agent/osx.js +51 -3
- package/distTs/src/agent/system.js +400 -21
- package/distTs/src/agent/windows.js +4 -7
- package/distTs/src/api/client.js +0 -156
- package/distTs/src/cliIndex.js +0 -4
- package/distTs/src/command/agent/debug.js +2 -2
- package/distTs/src/command/agent/install.js +37 -10
- package/distTs/src/command/agent/restart.js +2 -2
- package/distTs/src/command/agent/run.js +3 -0
- package/distTs/src/command/agent/start.js +2 -2
- package/distTs/src/command/agent/status.js +19 -0
- package/distTs/src/command/agent/stop.js +2 -2
- package/distTs/src/command/agent/uninstall.js +5 -8
- package/distTs/src/command/agent/update.js +2 -2
- package/distTs/src/command/artifact/list.js +6 -1
- package/distTs/src/command/artifact/publish.js +3 -1
- package/distTs/src/command/distro/route/update.js +1 -1
- package/distTs/src/command/distro/update.js +9 -9
- package/distTs/src/command/project/get.js +18 -0
- package/distTs/src/command/project/set.js +31 -0
- package/distTs/src/command/sandbox/get/yaml.js +30 -0
- package/distTs/src/command/version.js +13 -5
- package/distTs/src/command/vt/scrape.js +193 -0
- package/distTs/src/input.js +0 -54
- package/distTs/src/logger.js +40 -4
- package/distTs/src/texts.js +36 -210
- package/distTs/src/utils.js +99 -18
- package/node_modules/asn1/Jenkinsfile +65 -0
- package/node_modules/asn1/LICENSE +19 -0
- package/node_modules/asn1/README.md +50 -0
- package/node_modules/asn1/lib/ber/errors.js +13 -0
- package/node_modules/asn1/lib/ber/index.js +27 -0
- package/node_modules/asn1/lib/ber/reader.js +262 -0
- package/node_modules/asn1/lib/ber/types.js +36 -0
- package/node_modules/asn1/lib/ber/writer.js +317 -0
- package/node_modules/asn1/lib/index.js +20 -0
- package/node_modules/asn1/package.json +31 -0
- package/node_modules/bcrypt-pbkdf/CONTRIBUTING.md +13 -0
- package/node_modules/bcrypt-pbkdf/LICENSE +66 -0
- package/node_modules/bcrypt-pbkdf/README.md +45 -0
- package/node_modules/bcrypt-pbkdf/index.js +556 -0
- package/node_modules/bcrypt-pbkdf/package.json +15 -0
- package/node_modules/safer-buffer/LICENSE +21 -0
- package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
- package/node_modules/safer-buffer/Readme.md +156 -0
- package/node_modules/safer-buffer/dangerous.js +58 -0
- package/node_modules/safer-buffer/package.json +34 -0
- package/node_modules/safer-buffer/safer.js +77 -0
- package/node_modules/safer-buffer/tests.js +406 -0
- package/node_modules/ssh2/.eslintignore +4 -0
- package/node_modules/ssh2/.eslintrc.js +5 -0
- package/node_modules/ssh2/.github/workflows/ci.yml +110 -0
- package/node_modules/ssh2/.github/workflows/lint.yml +27 -0
- package/node_modules/ssh2/LICENSE +19 -0
- package/node_modules/ssh2/README.md +1529 -0
- package/node_modules/ssh2/SFTP.md +413 -0
- package/node_modules/ssh2/examples/server-chat.js +238 -0
- package/node_modules/ssh2/examples/sftp-server-download-only.js +134 -0
- package/node_modules/ssh2/install.js +27 -0
- package/node_modules/ssh2/lib/Channel.js +295 -0
- package/node_modules/ssh2/lib/agent.js +1123 -0
- package/node_modules/ssh2/lib/client.js +2176 -0
- package/node_modules/ssh2/lib/http-agents.js +84 -0
- package/node_modules/ssh2/lib/index.js +44 -0
- package/node_modules/ssh2/lib/keygen.js +582 -0
- package/node_modules/ssh2/lib/protocol/Protocol.js +2136 -0
- package/node_modules/ssh2/lib/protocol/SFTP.js +4052 -0
- package/node_modules/ssh2/lib/protocol/constants.js +356 -0
- package/node_modules/ssh2/lib/protocol/crypto/binding.gyp +23 -0
- package/node_modules/ssh2/lib/protocol/crypto/poly1305.js +43 -0
- package/node_modules/ssh2/lib/protocol/crypto/src/binding.cc +2300 -0
- package/node_modules/ssh2/lib/protocol/crypto.js +1602 -0
- package/node_modules/ssh2/lib/protocol/handlers.js +16 -0
- package/node_modules/ssh2/lib/protocol/handlers.misc.js +1285 -0
- package/node_modules/ssh2/lib/protocol/kex.js +1908 -0
- package/node_modules/ssh2/lib/protocol/keyParser.js +1484 -0
- package/node_modules/ssh2/lib/protocol/node-fs-compat.js +115 -0
- package/node_modules/ssh2/lib/protocol/utils.js +356 -0
- package/node_modules/ssh2/lib/protocol/zlib.js +255 -0
- package/node_modules/ssh2/lib/server.js +1380 -0
- package/node_modules/ssh2/lib/utils.js +336 -0
- package/node_modules/ssh2/package.json +49 -0
- package/node_modules/ssh2/test/common.js +316 -0
- package/node_modules/ssh2/test/fixtures/bad_rsa_private_key +26 -0
- package/node_modules/ssh2/test/fixtures/https_cert.pem +33 -0
- package/node_modules/ssh2/test/fixtures/https_key.pem +52 -0
- package/node_modules/ssh2/test/fixtures/id_dsa +12 -0
- package/node_modules/ssh2/test/fixtures/id_ecdsa +5 -0
- package/node_modules/ssh2/test/fixtures/id_rsa +15 -0
- package/node_modules/ssh2/test/fixtures/id_rsa.ppk +26 -0
- package/node_modules/ssh2/test/fixtures/id_rsa_enc +30 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa +21 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc +22 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc_gcm +23 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc_gcm.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc_gcm.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_dsa_enc_gcm.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa +9 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc +10 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc_gcm +10 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc_gcm.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc_gcm.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ecdsa_enc_gcm.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ed25519 +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ed25519.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ed25519.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_ed25519.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa +27 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc +28 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc_gcm +29 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc_gcm.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc_gcm.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_new_rsa_enc_gcm.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa +12 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa_enc +15 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa_enc.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa_enc.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_dsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa +5 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa_enc +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa_enc.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa_enc.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_ecdsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa +27 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc +30 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc.pub.result +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc_aes256 +54 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc_aes256.pub +1 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc_aes256.pub.result +6 -0
- package/node_modules/ssh2/test/fixtures/keyParser/openssh_old_rsa_enc_aes256.result +6 -0
- package/node_modules/ssh2/test/fixtures/keyParser/ppk_dsa_enc +17 -0
- package/node_modules/ssh2/test/fixtures/keyParser/ppk_dsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/ppk_rsa +26 -0
- package/node_modules/ssh2/test/fixtures/keyParser/ppk_rsa.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/ppk_rsa_enc +18 -0
- package/node_modules/ssh2/test/fixtures/keyParser/ppk_rsa_enc.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa.pub +9 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa2.pub +10 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa2.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa3.pub +11 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa3.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa4.pub +11 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa4.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa5.pub +8 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa5.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa6.pub +13 -0
- package/node_modules/ssh2/test/fixtures/keyParser/rfc4716_rsa6.pub.result +7 -0
- package/node_modules/ssh2/test/fixtures/openssh_new_rsa +27 -0
- package/node_modules/ssh2/test/fixtures/ssh_host_dsa_key +12 -0
- package/node_modules/ssh2/test/fixtures/ssh_host_ecdsa_key +5 -0
- package/node_modules/ssh2/test/fixtures/ssh_host_rsa_key +15 -0
- package/node_modules/ssh2/test/test-exec.js +578 -0
- package/node_modules/ssh2/test/test-integration-openssh.js +486 -0
- package/node_modules/ssh2/test/test-keygen.js +60 -0
- package/node_modules/ssh2/test/test-misc-client-server.js +1460 -0
- package/node_modules/ssh2/test/test-openssh.js +261 -0
- package/node_modules/ssh2/test/test-protocol-crypto.js +631 -0
- package/node_modules/ssh2/test/test-protocol-keyparser.js +177 -0
- package/node_modules/ssh2/test/test-server-hostkeys.js +138 -0
- package/node_modules/ssh2/test/test-sftp.js +842 -0
- package/node_modules/ssh2/test/test-shell.js +109 -0
- package/node_modules/ssh2/test/test-userauth-agent-openssh.js +110 -0
- package/node_modules/ssh2/test/test-userauth-agent.js +171 -0
- package/node_modules/ssh2/test/test-userauth.js +611 -0
- package/node_modules/ssh2/test/test-worker-imports.js +25 -0
- package/node_modules/ssh2/test/test.js +20 -0
- package/node_modules/ssh2/util/build_pagent.bat +2 -0
- package/node_modules/ssh2/util/pagent.c +88 -0
- package/node_modules/ssh2/util/pagent.exe +0 -0
- package/node_modules/tweetnacl/.npmignore +4 -0
- package/node_modules/tweetnacl/AUTHORS.md +28 -0
- package/node_modules/tweetnacl/CHANGELOG.md +221 -0
- package/node_modules/tweetnacl/LICENSE +24 -0
- package/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md +20 -0
- package/node_modules/tweetnacl/README.md +459 -0
- package/node_modules/tweetnacl/nacl-fast.js +2388 -0
- package/node_modules/tweetnacl/nacl-fast.min.js +2 -0
- package/node_modules/tweetnacl/nacl.d.ts +98 -0
- package/node_modules/tweetnacl/nacl.js +1175 -0
- package/node_modules/tweetnacl/nacl.min.js +1 -0
- package/node_modules/tweetnacl/package.json +58 -0
- package/package.json +10 -4
- package/distTs/detect-rules.json +0 -351
- package/distTs/src/command/environment/create.js +0 -70
- package/distTs/src/command/environment/delete.js +0 -29
- package/distTs/src/command/environment/get.js +0 -48
- package/distTs/src/command/environment/list.js +0 -44
- package/distTs/src/command/environment/resolve.js +0 -22
- package/distTs/src/command/environment/update.js +0 -59
- package/distTs/src/command/environment.js +0 -20
- package/distTs/src/command/pipeline/run/apply.js +0 -62
- package/distTs/src/command/target/create.js +0 -33
- package/distTs/src/command/target/delete.js +0 -30
- package/distTs/src/command/target/exec/command.js +0 -65
- package/distTs/src/command/target/exec/kill.js +0 -25
- package/distTs/src/command/target/exec/list.js +0 -54
- package/distTs/src/command/target/exec/logs.js +0 -25
- package/distTs/src/command/target/exec/status.js +0 -41
- package/distTs/src/command/target/exec.js +0 -24
- package/distTs/src/command/target/get.js +0 -62
- package/distTs/src/command/target/list.js +0 -48
- package/distTs/src/command/target/scope.js +0 -60
- package/distTs/src/command/target/update.js +0 -31
- package/distTs/src/command/target.js +0 -22
- package/distTs/src/command/yaml/actions/detect.js +0 -268
- package/distTs/src/command/yaml/actions/info.js +0 -56
- package/distTs/src/command/yaml/actions/list.js +0 -70
- package/distTs/src/command/yaml/actions/schema.js +0 -104
- package/distTs/src/command/yaml/actions.js +0 -13
- package/distTs/src/command/yaml/agents.js +0 -88
- package/distTs/src/command/yaml/cache.js +0 -98
- package/distTs/src/command/yaml/init.js +0 -110
- package/distTs/src/command/yaml/pipeline.js +0 -42
- package/distTs/src/command/yaml/render.js +0 -83
- package/distTs/src/command/yaml/schemaUtils.js +0 -139
- package/distTs/src/command/yaml/validate.js +0 -259
- package/distTs/src/command/yaml.js +0 -18
- package/distTs/src/diskCache.js +0 -82
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const fs_1 = require("fs");
|
|
7
|
-
const path_1 = require("path");
|
|
8
|
-
const utils_1 = require("../../utils");
|
|
9
|
-
const output_1 = __importDefault(require("../../output"));
|
|
10
|
-
const texts_1 = require("../../texts");
|
|
11
|
-
const schemaUtils_1 = require("./schemaUtils");
|
|
12
|
-
// Valid top-level keys the schema's PipelineYaml.properties omits (everything
|
|
13
|
-
// else is derived from the schema, so this only covers genuine gaps).
|
|
14
|
-
const SCHEMA_OMITTED_TOP_LEVEL_KEYS = ['git_config_ref'];
|
|
15
|
-
const LABEL_KEYS = ['action', 'target', 'name', 'key', 'title', 'trigger_condition'];
|
|
16
|
-
function stripRef(ref) {
|
|
17
|
-
return ref.replace('#/$defs/', '');
|
|
18
|
-
}
|
|
19
|
-
function prettifyKey(key) {
|
|
20
|
-
return key
|
|
21
|
-
.split('_')
|
|
22
|
-
.map((w) => w.charAt(0).toUpperCase() + w.slice(1))
|
|
23
|
-
.join(' ');
|
|
24
|
-
}
|
|
25
|
-
function outputErrors(result, indent) {
|
|
26
|
-
for (const err of result.errors) {
|
|
27
|
-
output_1.default.muted(`${indent}${err.path}: ${err.message}`);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
// Array whose items reference a def — directly, or via a single $ref branch in
|
|
31
|
-
// items.oneOf (how `targets` mixes a string ref with an object form).
|
|
32
|
-
function itemRef(prop) {
|
|
33
|
-
if (!prop || prop.type !== 'array' || !prop.items)
|
|
34
|
-
return null;
|
|
35
|
-
if (prop.items.$ref)
|
|
36
|
-
return stripRef(prop.items.$ref);
|
|
37
|
-
if (Array.isArray(prop.items.oneOf)) {
|
|
38
|
-
const refs = prop.items.oneOf.filter((b) => b && b.$ref);
|
|
39
|
-
if (refs.length === 1)
|
|
40
|
-
return stripRef(refs[0].$ref);
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
function classifySections(props) {
|
|
45
|
-
const itemSections = [];
|
|
46
|
-
const objectSections = [];
|
|
47
|
-
const settingsProps = {};
|
|
48
|
-
for (const [key, prop] of Object.entries(props)) {
|
|
49
|
-
const ref = itemRef(prop);
|
|
50
|
-
if (ref) {
|
|
51
|
-
itemSections.push({ key, defName: ref });
|
|
52
|
-
}
|
|
53
|
-
else if (prop && prop.$ref) {
|
|
54
|
-
objectSections.push({ key, defName: stripRef(prop.$ref) });
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
settingsProps[key] = prop;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return { itemSections, objectSections, settingsProps };
|
|
61
|
-
}
|
|
62
|
-
function discriminatorProp(def) {
|
|
63
|
-
return def && def.oneOf && def.discriminator ? def.discriminator.propertyName : null;
|
|
64
|
-
}
|
|
65
|
-
// Resolve a discriminated def to its concrete branch by the item's `type`, so
|
|
66
|
-
// AJV always validates against a single def (never a oneOf). Plain defs pass through.
|
|
67
|
-
function resolveDef(defs, refName, value) {
|
|
68
|
-
const def = defs[refName];
|
|
69
|
-
const prop = discriminatorProp(def);
|
|
70
|
-
if (!prop)
|
|
71
|
-
return { defName: refName };
|
|
72
|
-
const dv = value?.[prop];
|
|
73
|
-
if (dv === undefined || dv === null)
|
|
74
|
-
return { missingType: prop };
|
|
75
|
-
for (const branch of def.oneOf) {
|
|
76
|
-
const branchName = branch && branch.$ref ? stripRef(branch.$ref) : null;
|
|
77
|
-
if (!branchName)
|
|
78
|
-
continue;
|
|
79
|
-
if (defs[branchName]?.properties?.[prop]?.const === dv)
|
|
80
|
-
return { defName: branchName };
|
|
81
|
-
}
|
|
82
|
-
return { unknownType: String(dv), prop };
|
|
83
|
-
}
|
|
84
|
-
function itemLabel(value, index, discProp) {
|
|
85
|
-
let name;
|
|
86
|
-
for (const k of LABEL_KEYS) {
|
|
87
|
-
if (value && value[k]) {
|
|
88
|
-
name = String(value[k]);
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
if (!name && !discProp && value && value.type)
|
|
93
|
-
name = String(value.type);
|
|
94
|
-
if (!name)
|
|
95
|
-
name = `#${index + 1}`;
|
|
96
|
-
return discProp && value && value[discProp] ? `${name} (${value[discProp]})` : name;
|
|
97
|
-
}
|
|
98
|
-
function validateItemSection(defs, items, refName) {
|
|
99
|
-
const discProp = discriminatorProp(defs[refName]);
|
|
100
|
-
let errors = 0;
|
|
101
|
-
for (let i = 0; i < items.length; i++) {
|
|
102
|
-
const item = items[i];
|
|
103
|
-
if (item === null || typeof item !== 'object' || Array.isArray(item)) {
|
|
104
|
-
output_1.default.green(` ${String(item)}`);
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
const label = itemLabel(item, i, discProp);
|
|
108
|
-
const resolved = resolveDef(defs, refName, item);
|
|
109
|
-
if ('missingType' in resolved) {
|
|
110
|
-
output_1.default.error(` ${label}: missing "${resolved.missingType}"`);
|
|
111
|
-
errors++;
|
|
112
|
-
continue;
|
|
113
|
-
}
|
|
114
|
-
if ('unknownType' in resolved) {
|
|
115
|
-
output_1.default.error(` ${label}: unknown ${resolved.prop} "${resolved.unknownType}"`);
|
|
116
|
-
errors++;
|
|
117
|
-
continue;
|
|
118
|
-
}
|
|
119
|
-
const result = (0, schemaUtils_1.validateAgainstDef)(resolved.defName, item);
|
|
120
|
-
if (result.valid) {
|
|
121
|
-
output_1.default.green(` ${label}`);
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
errors += result.errors.length;
|
|
125
|
-
output_1.default.error(` ${label}`);
|
|
126
|
-
outputErrors(result, ' ');
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return errors;
|
|
130
|
-
}
|
|
131
|
-
function validateObjectSection(defs, label, value, refName) {
|
|
132
|
-
const resolved = resolveDef(defs, refName, value);
|
|
133
|
-
if ('missingType' in resolved) {
|
|
134
|
-
output_1.default.error(label);
|
|
135
|
-
output_1.default.muted(` missing "${resolved.missingType}"`);
|
|
136
|
-
return 1;
|
|
137
|
-
}
|
|
138
|
-
if ('unknownType' in resolved) {
|
|
139
|
-
output_1.default.error(label);
|
|
140
|
-
output_1.default.muted(` unknown ${resolved.prop} "${resolved.unknownType}"`);
|
|
141
|
-
return 1;
|
|
142
|
-
}
|
|
143
|
-
const result = (0, schemaUtils_1.validateAgainstDef)(resolved.defName, value);
|
|
144
|
-
if (result.valid) {
|
|
145
|
-
output_1.default.green(label);
|
|
146
|
-
return 0;
|
|
147
|
-
}
|
|
148
|
-
output_1.default.error(label);
|
|
149
|
-
outputErrors(result, ' ');
|
|
150
|
-
return result.errors.length;
|
|
151
|
-
}
|
|
152
|
-
function validateSinglePipeline(parsed, label) {
|
|
153
|
-
let errors = 0;
|
|
154
|
-
const defs = (0, schemaUtils_1.getAllDefs)();
|
|
155
|
-
const pipelineDef = defs['PipelineYaml'];
|
|
156
|
-
const props = pipelineDef?.properties || {};
|
|
157
|
-
const allKnownKeys = new Set([...Object.keys(props), ...SCHEMA_OMITTED_TOP_LEVEL_KEYS]);
|
|
158
|
-
const unknownKeys = Object.keys(parsed).filter((k) => !allKnownKeys.has(k));
|
|
159
|
-
if (unknownKeys.length > 0) {
|
|
160
|
-
output_1.default.yellow(`${label}Unknown top-level keys: ${unknownKeys.join(', ')}`);
|
|
161
|
-
}
|
|
162
|
-
const { itemSections, objectSections, settingsProps } = classifySections(props);
|
|
163
|
-
if (Object.keys(settingsProps).length > 0) {
|
|
164
|
-
const settingsData = {};
|
|
165
|
-
for (const key of Object.keys(settingsProps)) {
|
|
166
|
-
if (key in parsed)
|
|
167
|
-
settingsData[key] = parsed[key];
|
|
168
|
-
}
|
|
169
|
-
const rawSchema = (0, schemaUtils_1.loadRawSchema)();
|
|
170
|
-
const result = (0, schemaUtils_1.validateAgainstSchema)({
|
|
171
|
-
type: 'object',
|
|
172
|
-
properties: settingsProps,
|
|
173
|
-
required: (pipelineDef?.required || []).filter((r) => r in settingsProps),
|
|
174
|
-
$defs: rawSchema.$defs,
|
|
175
|
-
}, settingsData);
|
|
176
|
-
if (result.valid) {
|
|
177
|
-
output_1.default.green(`${label}Pipeline settings`);
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
errors += result.errors.length;
|
|
181
|
-
output_1.default.error(`${label}Pipeline settings`);
|
|
182
|
-
outputErrors(result, ' ');
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
const itemByKey = new Map(itemSections.map((s) => [s.key, s.defName]));
|
|
186
|
-
const objByKey = new Map(objectSections.map((s) => [s.key, s.defName]));
|
|
187
|
-
for (const key of Object.keys(props)) {
|
|
188
|
-
if (!(key in parsed))
|
|
189
|
-
continue;
|
|
190
|
-
const value = parsed[key];
|
|
191
|
-
const header = `${label}${prettifyKey(key)}`;
|
|
192
|
-
if (itemByKey.has(key)) {
|
|
193
|
-
if (!Array.isArray(value))
|
|
194
|
-
continue;
|
|
195
|
-
output_1.default.blue(header);
|
|
196
|
-
errors += validateItemSection(defs, value, itemByKey.get(key));
|
|
197
|
-
}
|
|
198
|
-
else if (objByKey.has(key)) {
|
|
199
|
-
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
200
|
-
continue;
|
|
201
|
-
errors += validateObjectSection(defs, header, value, objByKey.get(key));
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
return errors;
|
|
205
|
-
}
|
|
206
|
-
function validatePipelineFile(file) {
|
|
207
|
-
const filePath = (0, path_1.resolve)(file);
|
|
208
|
-
if (!(0, fs_1.existsSync)(filePath)) {
|
|
209
|
-
output_1.default.exitError((0, texts_1.ERR_YAML_VALIDATE_FILE_NOT_FOUND)(file));
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
const YAML = require('yaml');
|
|
213
|
-
const content = (0, fs_1.readFileSync)(filePath, 'utf8');
|
|
214
|
-
let parsed;
|
|
215
|
-
try {
|
|
216
|
-
parsed = YAML.parse(content);
|
|
217
|
-
}
|
|
218
|
-
catch (e) {
|
|
219
|
-
output_1.default.exitError(`YAML parse error: ${e.message}`);
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
if (!parsed || typeof parsed !== 'object') {
|
|
223
|
-
output_1.default.exitError('Invalid pipeline YAML: expected an array of pipeline objects');
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
if (!Array.isArray(parsed)) {
|
|
227
|
-
output_1.default.exitError('Invalid pipeline YAML: expected an array (e.g. "- pipeline: my-pipeline"), got a plain object');
|
|
228
|
-
return;
|
|
229
|
-
}
|
|
230
|
-
if (parsed.length === 0) {
|
|
231
|
-
output_1.default.exitError('Invalid pipeline YAML: empty array');
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
let errors = 0;
|
|
235
|
-
for (let i = 0; i < parsed.length; i++) {
|
|
236
|
-
const pipeline = parsed[i];
|
|
237
|
-
if (!pipeline || typeof pipeline !== 'object' || Array.isArray(pipeline)) {
|
|
238
|
-
output_1.default.error(` Pipeline #${i + 1}: expected an object`);
|
|
239
|
-
errors++;
|
|
240
|
-
continue;
|
|
241
|
-
}
|
|
242
|
-
const pipelineLabel = parsed.length > 1 ? `[${pipeline.pipeline || i + 1}] ` : '';
|
|
243
|
-
errors += validateSinglePipeline(pipeline, pipelineLabel);
|
|
244
|
-
}
|
|
245
|
-
output_1.default.normal('');
|
|
246
|
-
if (errors > 0) {
|
|
247
|
-
output_1.default.exitError(`${texts_1.ERR_YAML_VALIDATE_FAILED} (${errors} ${errors === 1 ? 'error' : 'errors'})`);
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
250
|
-
output_1.default.exitSuccess(texts_1.TXT_YAML_VALIDATE_ALL_PASS);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
const commandYamlValidate = (0, utils_1.newCommand)('validate', texts_1.DESC_COMMAND_YAML_VALIDATE);
|
|
254
|
-
commandYamlValidate.argument('<file>', texts_1.OPTION_YAML_VALIDATE_FILE);
|
|
255
|
-
commandYamlValidate.action(async (file) => {
|
|
256
|
-
await (0, schemaUtils_1.ensureYamlSchema)();
|
|
257
|
-
validatePipelineFile(file);
|
|
258
|
-
});
|
|
259
|
-
exports.default = commandYamlValidate;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const utils_1 = require("../utils");
|
|
7
|
-
const texts_1 = require("../texts");
|
|
8
|
-
const pipeline_1 = __importDefault(require("./yaml/pipeline"));
|
|
9
|
-
const actions_1 = __importDefault(require("./yaml/actions"));
|
|
10
|
-
const validate_1 = __importDefault(require("./yaml/validate"));
|
|
11
|
-
const init_1 = __importDefault(require("./yaml/init"));
|
|
12
|
-
const commandYaml = (0, utils_1.newCommand)('yaml', texts_1.DESC_COMMAND_YAML);
|
|
13
|
-
commandYaml.addCommand(pipeline_1.default);
|
|
14
|
-
commandYaml.addCommand(actions_1.default);
|
|
15
|
-
commandYaml.addCommand(validate_1.default);
|
|
16
|
-
commandYaml.addCommand(init_1.default);
|
|
17
|
-
commandYaml.addHelpText('after', texts_1.EXAMPLE_YAML);
|
|
18
|
-
exports.default = commandYaml;
|
package/distTs/src/diskCache.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.CACHE_TTL_MS = void 0;
|
|
7
|
-
exports.cacheRoot = cacheRoot;
|
|
8
|
-
exports.hashKey = hashKey;
|
|
9
|
-
exports.cachePaths = cachePaths;
|
|
10
|
-
exports.readMeta = readMeta;
|
|
11
|
-
exports.isHardFresh = isHardFresh;
|
|
12
|
-
exports.writeAtomic = writeAtomic;
|
|
13
|
-
exports.refresh = refresh;
|
|
14
|
-
const node_crypto_1 = require("node:crypto");
|
|
15
|
-
const node_fs_1 = require("node:fs");
|
|
16
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
17
|
-
const undici_1 = require("undici");
|
|
18
|
-
const utils_1 = require("./utils");
|
|
19
|
-
exports.CACHE_TTL_MS = 60 * 60 * 1000; // 1h
|
|
20
|
-
function cacheRoot() {
|
|
21
|
-
const dir = node_path_1.default.join((0, utils_1.getHomeDirectory)(), 'cache');
|
|
22
|
-
if (!(0, node_fs_1.existsSync)(dir))
|
|
23
|
-
(0, node_fs_1.mkdirSync)(dir, { recursive: true });
|
|
24
|
-
return dir;
|
|
25
|
-
}
|
|
26
|
-
function hashKey(input) {
|
|
27
|
-
return (0, node_crypto_1.createHash)('sha256').update(input).digest('hex').slice(0, 16);
|
|
28
|
-
}
|
|
29
|
-
function cachePaths(subdir, url) {
|
|
30
|
-
const dir = node_path_1.default.join(cacheRoot(), subdir);
|
|
31
|
-
if (!(0, node_fs_1.existsSync)(dir))
|
|
32
|
-
(0, node_fs_1.mkdirSync)(dir, { recursive: true });
|
|
33
|
-
const key = hashKey(url);
|
|
34
|
-
return {
|
|
35
|
-
raw: node_path_1.default.join(dir, `${key}.json`),
|
|
36
|
-
schema: node_path_1.default.join(dir, `${key}.v8`),
|
|
37
|
-
meta: node_path_1.default.join(dir, `${key}.meta.json`),
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
function readMeta(metaPath) {
|
|
41
|
-
try {
|
|
42
|
-
return JSON.parse((0, node_fs_1.readFileSync)(metaPath, 'utf8'));
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
return {};
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
function isHardFresh(meta, ttlMs = exports.CACHE_TTL_MS) {
|
|
49
|
-
return !!meta.fetchedAt && Date.now() - meta.fetchedAt < ttlMs;
|
|
50
|
-
}
|
|
51
|
-
function writeAtomic(filePath, data) {
|
|
52
|
-
const tmp = `${filePath}.${process.pid}.tmp`;
|
|
53
|
-
(0, node_fs_1.writeFileSync)(tmp, data);
|
|
54
|
-
(0, node_fs_1.renameSync)(tmp, filePath);
|
|
55
|
-
}
|
|
56
|
-
async function refresh(url, paths) {
|
|
57
|
-
const hasRaw = (0, node_fs_1.existsSync)(paths.raw);
|
|
58
|
-
const meta = hasRaw ? readMeta(paths.meta) : {};
|
|
59
|
-
// The server serves a strong content-based ETag, so revalidate with If-None-Match.
|
|
60
|
-
const headers = {};
|
|
61
|
-
if (hasRaw && meta.etag)
|
|
62
|
-
headers['if-none-match'] = meta.etag;
|
|
63
|
-
try {
|
|
64
|
-
const res = await (0, undici_1.request)(url, { headers });
|
|
65
|
-
const etag = res.headers['etag'];
|
|
66
|
-
if (res.statusCode === 304 && hasRaw) {
|
|
67
|
-
await res.body.dump();
|
|
68
|
-
writeAtomic(paths.meta, JSON.stringify({ etag: meta.etag, fetchedAt: Date.now() }));
|
|
69
|
-
return 'unchanged';
|
|
70
|
-
}
|
|
71
|
-
if (res.statusCode >= 200 && res.statusCode < 300) {
|
|
72
|
-
writeAtomic(paths.raw, await res.body.text());
|
|
73
|
-
writeAtomic(paths.meta, JSON.stringify({ etag: typeof etag === 'string' ? etag : undefined, fetchedAt: Date.now() }));
|
|
74
|
-
return 'updated';
|
|
75
|
-
}
|
|
76
|
-
await res.body.dump();
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
// network error — fall back to the cached body if present
|
|
80
|
-
}
|
|
81
|
-
return hasRaw ? 'unchanged' : 'none';
|
|
82
|
-
}
|