@pipeline-builder/pipeline-manager 3.1.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/LICENSE +202 -0
- package/README.md +74 -0
- package/cdk.json +91 -0
- package/config.yml +94 -0
- package/dist/boilerplate.d.ts +3 -0
- package/dist/boilerplate.d.ts.map +1 -0
- package/dist/boilerplate.js +58 -0
- package/dist/cdk.json +91 -0
- package/dist/cli.d.ts +62 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +372 -0
- package/dist/commands/bootstrap.d.ts +11 -0
- package/dist/commands/bootstrap.d.ts.map +1 -0
- package/dist/commands/bootstrap.js +159 -0
- package/dist/commands/create-pipeline.d.ts +12 -0
- package/dist/commands/create-pipeline.d.ts.map +1 -0
- package/dist/commands/create-pipeline.js +291 -0
- package/dist/commands/deploy.d.ts +15 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +167 -0
- package/dist/commands/get-pipeline.d.ts +13 -0
- package/dist/commands/get-pipeline.d.ts.map +1 -0
- package/dist/commands/get-pipeline.js +97 -0
- package/dist/commands/get-plugin.d.ts +13 -0
- package/dist/commands/get-plugin.d.ts.map +1 -0
- package/dist/commands/get-plugin.js +98 -0
- package/dist/commands/list-pipelines.d.ts +20 -0
- package/dist/commands/list-pipelines.d.ts.map +1 -0
- package/dist/commands/list-pipelines.js +172 -0
- package/dist/commands/list-plugins.d.ts +20 -0
- package/dist/commands/list-plugins.d.ts.map +1 -0
- package/dist/commands/list-plugins.js +167 -0
- package/dist/commands/login.d.ts +21 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +179 -0
- package/dist/commands/setup-events.d.ts +15 -0
- package/dist/commands/setup-events.d.ts.map +1 -0
- package/dist/commands/setup-events.js +177 -0
- package/dist/commands/status.d.ts +11 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +89 -0
- package/dist/commands/store-token.d.ts +20 -0
- package/dist/commands/store-token.d.ts.map +1 -0
- package/dist/commands/store-token.js +233 -0
- package/dist/commands/synth.d.ts +21 -0
- package/dist/commands/synth.d.ts.map +1 -0
- package/dist/commands/synth.js +143 -0
- package/dist/commands/upload-plugin.d.ts +21 -0
- package/dist/commands/upload-plugin.d.ts.map +1 -0
- package/dist/commands/upload-plugin.js +311 -0
- package/dist/commands/version.d.ts +12 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +223 -0
- package/dist/config/cli.constants.d.ts +101 -0
- package/dist/config/cli.constants.d.ts.map +1 -0
- package/dist/config/cli.constants.js +165 -0
- package/dist/config.yml +94 -0
- package/dist/templates/events-stack.json +141 -0
- package/dist/types/config.d.ts +44 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/error.d.ts +61 -0
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/error.js +39 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +26 -0
- package/dist/types/pipeline.d.ts +144 -0
- package/dist/types/pipeline.d.ts.map +1 -0
- package/dist/types/pipeline.js +5 -0
- package/dist/types/plugin.d.ts +160 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +5 -0
- package/dist/utils/api-client.d.ts +26 -0
- package/dist/utils/api-client.d.ts.map +1 -0
- package/dist/utils/api-client.js +160 -0
- package/dist/utils/audit-log.d.ts +8 -0
- package/dist/utils/audit-log.d.ts.map +1 -0
- package/dist/utils/audit-log.js +53 -0
- package/dist/utils/auth-guard.d.ts +16 -0
- package/dist/utils/auth-guard.d.ts.map +1 -0
- package/dist/utils/auth-guard.js +25 -0
- package/dist/utils/aws-secrets.d.ts +21 -0
- package/dist/utils/aws-secrets.d.ts.map +1 -0
- package/dist/utils/aws-secrets.js +74 -0
- package/dist/utils/banner.d.ts +19 -0
- package/dist/utils/banner.d.ts.map +1 -0
- package/dist/utils/banner.js +59 -0
- package/dist/utils/cdk-utils.d.ts +51 -0
- package/dist/utils/cdk-utils.d.ts.map +1 -0
- package/dist/utils/cdk-utils.js +101 -0
- package/dist/utils/command-utils.d.ts +56 -0
- package/dist/utils/command-utils.d.ts.map +1 -0
- package/dist/utils/command-utils.js +138 -0
- package/dist/utils/config-loader.d.ts +27 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +166 -0
- package/dist/utils/error-handler.d.ts +29 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +255 -0
- package/dist/utils/list-command-utils.d.ts +23 -0
- package/dist/utils/list-command-utils.d.ts.map +1 -0
- package/dist/utils/list-command-utils.js +60 -0
- package/dist/utils/output-utils.d.ts +60 -0
- package/dist/utils/output-utils.d.ts.map +1 -0
- package/dist/utils/output-utils.js +320 -0
- package/dist/utils/rate-limiter.d.ts +14 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +73 -0
- package/package.json +144 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.ApiError = exports.ERROR_CODES = void 0;
|
|
6
|
+
/**
|
|
7
|
+
* Numeric exit-code constants mapped to error categories.
|
|
8
|
+
* Used by {@link handleError} to set the process exit code.
|
|
9
|
+
*/
|
|
10
|
+
exports.ERROR_CODES = {
|
|
11
|
+
GENERAL: 1,
|
|
12
|
+
VALIDATION: 2,
|
|
13
|
+
API_REQUEST: 3,
|
|
14
|
+
AUTHENTICATION: 4,
|
|
15
|
+
AUTHORIZATION: 5,
|
|
16
|
+
NOT_FOUND: 6,
|
|
17
|
+
NETWORK: 7,
|
|
18
|
+
CONFIGURATION: 8,
|
|
19
|
+
FILE_SYSTEM: 9,
|
|
20
|
+
TIMEOUT: 10,
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Typed API error with status, response, and Axios compatibility flag.
|
|
24
|
+
* Replaces `as any` casts in api-client.ts error handling.
|
|
25
|
+
*/
|
|
26
|
+
class ApiError extends Error {
|
|
27
|
+
status;
|
|
28
|
+
response;
|
|
29
|
+
isAxiosError = true;
|
|
30
|
+
constructor(message, status, response) {
|
|
31
|
+
super(message);
|
|
32
|
+
this.status = status;
|
|
33
|
+
this.response = response;
|
|
34
|
+
this.name = 'ApiError';
|
|
35
|
+
Error.captureStackTrace(this, this.constructor);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ApiError = ApiError;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7OztBQUV0Qzs7O0dBR0c7QUFDVSxRQUFBLFdBQVcsR0FBRztJQUN6QixPQUFPLEVBQUUsQ0FBQztJQUNWLFVBQVUsRUFBRSxDQUFDO0lBQ2IsV0FBVyxFQUFFLENBQUM7SUFDZCxjQUFjLEVBQUUsQ0FBQztJQUNqQixhQUFhLEVBQUUsQ0FBQztJQUNoQixTQUFTLEVBQUUsQ0FBQztJQUNaLE9BQU8sRUFBRSxDQUFDO0lBQ1YsYUFBYSxFQUFFLENBQUM7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxPQUFPLEVBQUUsRUFBRTtDQUNILENBQUM7QUF1Q1g7OztHQUdHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsS0FBSztJQUt4QjtJQUNBO0lBTE8sWUFBWSxHQUFHLElBQWEsQ0FBQztJQUU3QyxZQUNFLE9BQWUsRUFDUixNQUFjLEVBQ2QsUUFBb0M7UUFFM0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBSFIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQTRCO1FBRzNDLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQVpELDRCQVlDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogTnVtZXJpYyBleGl0LWNvZGUgY29uc3RhbnRzIG1hcHBlZCB0byBlcnJvciBjYXRlZ29yaWVzLlxuICogVXNlZCBieSB7QGxpbmsgaGFuZGxlRXJyb3J9IHRvIHNldCB0aGUgcHJvY2VzcyBleGl0IGNvZGUuXG4gKi9cbmV4cG9ydCBjb25zdCBFUlJPUl9DT0RFUyA9IHtcbiAgR0VORVJBTDogMSxcbiAgVkFMSURBVElPTjogMixcbiAgQVBJX1JFUVVFU1Q6IDMsXG4gIEFVVEhFTlRJQ0FUSU9OOiA0LFxuICBBVVRIT1JJWkFUSU9OOiA1LFxuICBOT1RfRk9VTkQ6IDYsXG4gIE5FVFdPUks6IDcsXG4gIENPTkZJR1VSQVRJT046IDgsXG4gIEZJTEVfU1lTVEVNOiA5LFxuICBUSU1FT1VUOiAxMCxcbn0gYXMgY29uc3Q7XG5cbi8qKiBVbmlvbiBvZiBhbGwgdmFsaWQgZXJyb3IgY29kZSB2YWx1ZXMuICovXG5leHBvcnQgdHlwZSBFcnJvckNvZGUgPSAodHlwZW9mIEVSUk9SX0NPREVTKVtrZXlvZiB0eXBlb2YgRVJST1JfQ09ERVNdO1xuXG4vKipcbiAqIE9wdGlvbnMgY29udHJvbGxpbmcgaG93IHtAbGluayBoYW5kbGVFcnJvcn0gcHJvY2Vzc2VzIGFuZCByZXBvcnRzIGFuIGVycm9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVycm9ySGFuZGxlck9wdGlvbnMge1xuICAvKiogV2hlbiBgdHJ1ZWAsIHByaW50cyBmdWxsIHN0YWNrIHRyYWNlcyBhbmQgaW50ZXJuYWwgZGV0YWlscy4gKi9cbiAgZGVidWc/OiBib29sZWFuO1xuICAvKiogV2hlbiBgdHJ1ZWAsIGNhbGxzIGBwcm9jZXNzLmV4aXQoKWAgd2l0aCB0aGUgZXJyb3IgY29kZS4gKi9cbiAgZXhpdD86IGJvb2xlYW47XG4gIC8qKiBXaGVuIGB0cnVlYCwgbG9ncyB0aGUgZXJyb3IgdG8gdGhlIGNvbnNvbGUgKGRlZmF1bHRzIHRvIGB0cnVlYCkuICovXG4gIGxvZ1RvQ29uc29sZT86IGJvb2xlYW47XG4gIC8qKiBBcmJpdHJhcnkga2V5LXZhbHVlIGNvbnRleHQgYXR0YWNoZWQgdG8gdGhlIGVycm9yIG91dHB1dCBmb3IgZGVidWdnaW5nLiAqL1xuICBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKiBSZXF1ZXN0L2V4ZWN1dGlvbiBjb3JyZWxhdGlvbiBJRCBmb3IgbG9nIHRyYWNpbmcuICovXG4gIGNvcnJlbGF0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTWluaW1hbCBBeGlvcy1jb21wYXRpYmxlIGVycm9yIHNoYXBlIHVzZWQgZm9yIGR1Y2stdHlwaW5nIGluIGVycm9yIGhhbmRsZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF4aW9zRXJyb3JMaWtlIHtcbiAgcmVzcG9uc2U/OiB7XG4gICAgc3RhdHVzPzogbnVtYmVyO1xuICAgIHN0YXR1c1RleHQ/OiBzdHJpbmc7XG4gICAgZGF0YT86IHVua25vd247XG4gIH07XG4gIGNvbmZpZz86IHtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgbWV0aG9kPzogc3RyaW5nO1xuICAgIHRpbWVvdXQ/OiBudW1iZXI7XG4gIH07XG4gIHJlcXVlc3Q/OiB1bmtub3duO1xuICBpc0F4aW9zRXJyb3I6IHRydWU7XG59XG5cbi8qKlxuICogVHlwZWQgQVBJIGVycm9yIHdpdGggc3RhdHVzLCByZXNwb25zZSwgYW5kIEF4aW9zIGNvbXBhdGliaWxpdHkgZmxhZy5cbiAqIFJlcGxhY2VzIGBhcyBhbnlgIGNhc3RzIGluIGFwaS1jbGllbnQudHMgZXJyb3IgaGFuZGxpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcGlFcnJvciBleHRlbmRzIEVycm9yIGltcGxlbWVudHMgQXhpb3NFcnJvckxpa2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgaXNBeGlvc0Vycm9yID0gdHJ1ZSBhcyBjb25zdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcHVibGljIHN0YXR1czogbnVtYmVyLFxuICAgIHB1YmxpYyByZXNwb25zZTogQXhpb3NFcnJvckxpa2VbJ3Jlc3BvbnNlJ10sXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdBcGlFcnJvcic7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgdGhpcy5jb25zdHJ1Y3Rvcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
16
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
/**
|
|
20
|
+
* Main type definitions export
|
|
21
|
+
*/
|
|
22
|
+
__exportStar(require("./config"), exports);
|
|
23
|
+
__exportStar(require("./pipeline"), exports);
|
|
24
|
+
__exportStar(require("./plugin"), exports);
|
|
25
|
+
__exportStar(require("./error"), exports);
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdEM7O0dBRUc7QUFFSCwyQ0FBeUI7QUFDekIsNkNBQTJCO0FBQzNCLDJDQUF5QjtBQUN6QiwwQ0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBNYWluIHR5cGUgZGVmaW5pdGlvbnMgZXhwb3J0XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlbGluZSc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9yJztcbiJdfQ==
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Arbitrary key-value pipeline configuration properties
|
|
3
|
+
* passed through to the CDK builder.
|
|
4
|
+
*/
|
|
5
|
+
export type PipelineProps = Record<string, unknown>;
|
|
6
|
+
/**
|
|
7
|
+
* Pipeline visibility level.
|
|
8
|
+
*/
|
|
9
|
+
export type PipelineAccessModifier = 'public' | 'private';
|
|
10
|
+
/**
|
|
11
|
+
* Core pipeline fields required on every pipeline record.
|
|
12
|
+
*/
|
|
13
|
+
export interface PipelineBase {
|
|
14
|
+
/**
|
|
15
|
+
* Unique pipeline identifier
|
|
16
|
+
*/
|
|
17
|
+
id: string;
|
|
18
|
+
/**
|
|
19
|
+
* Project name
|
|
20
|
+
*/
|
|
21
|
+
project: string;
|
|
22
|
+
/**
|
|
23
|
+
* Organization name
|
|
24
|
+
*/
|
|
25
|
+
organization: string;
|
|
26
|
+
/**
|
|
27
|
+
* Tenant identifier (from API response, used for per-org secret resolution)
|
|
28
|
+
*/
|
|
29
|
+
orgId?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Pipeline properties/configuration
|
|
32
|
+
*/
|
|
33
|
+
props: PipelineProps;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Optional metadata fields attached to a pipeline record.
|
|
37
|
+
*/
|
|
38
|
+
export interface PipelineMetadata {
|
|
39
|
+
/**
|
|
40
|
+
* Human-readable pipeline name
|
|
41
|
+
*/
|
|
42
|
+
pipelineName?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Access modifier (public or private)
|
|
45
|
+
*/
|
|
46
|
+
accessModifier?: PipelineAccessModifier;
|
|
47
|
+
/**
|
|
48
|
+
* Whether this is the default pipeline
|
|
49
|
+
*/
|
|
50
|
+
isDefault?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the pipeline is active
|
|
53
|
+
*/
|
|
54
|
+
isActive?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Pipeline creation timestamp
|
|
57
|
+
*/
|
|
58
|
+
createdAt?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Pipeline last update timestamp
|
|
61
|
+
*/
|
|
62
|
+
updatedAt?: string;
|
|
63
|
+
/**
|
|
64
|
+
* User who created the pipeline
|
|
65
|
+
*/
|
|
66
|
+
createdBy?: string;
|
|
67
|
+
/**
|
|
68
|
+
* User who last updated the pipeline
|
|
69
|
+
*/
|
|
70
|
+
updatedBy?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Complete pipeline entity combining core fields and metadata.
|
|
74
|
+
*/
|
|
75
|
+
export interface Pipeline extends PipelineBase, PipelineMetadata {
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Request payload for creating a new pipeline via the platform API.
|
|
79
|
+
*/
|
|
80
|
+
export interface CreatePipelineRequest {
|
|
81
|
+
/**
|
|
82
|
+
* Project name
|
|
83
|
+
*/
|
|
84
|
+
project: string;
|
|
85
|
+
/**
|
|
86
|
+
* Organization name
|
|
87
|
+
*/
|
|
88
|
+
organization: string;
|
|
89
|
+
/**
|
|
90
|
+
* Pipeline properties/configuration
|
|
91
|
+
*/
|
|
92
|
+
props: PipelineProps;
|
|
93
|
+
/**
|
|
94
|
+
* Human-readable pipeline name
|
|
95
|
+
*/
|
|
96
|
+
pipelineName?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Access modifier (public or private)
|
|
99
|
+
* @default 'private'
|
|
100
|
+
*/
|
|
101
|
+
accessModifier?: PipelineAccessModifier;
|
|
102
|
+
/**
|
|
103
|
+
* Whether this is the default pipeline
|
|
104
|
+
* @default false
|
|
105
|
+
*/
|
|
106
|
+
isDefault?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Whether the pipeline is active
|
|
109
|
+
* @default true
|
|
110
|
+
*/
|
|
111
|
+
isActive?: boolean;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Response returned by single-pipeline API endpoints (get, create).
|
|
115
|
+
*/
|
|
116
|
+
export interface PipelineResponse {
|
|
117
|
+
pipeline: Pipeline;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Paginated response returned by the pipeline list API endpoint.
|
|
121
|
+
*/
|
|
122
|
+
export interface PipelineListResponse {
|
|
123
|
+
/**
|
|
124
|
+
* List of pipelines
|
|
125
|
+
*/
|
|
126
|
+
pipelines: Pipeline[];
|
|
127
|
+
/**
|
|
128
|
+
* Total number of pipelines (for pagination)
|
|
129
|
+
*/
|
|
130
|
+
total: number;
|
|
131
|
+
/**
|
|
132
|
+
* Current page number
|
|
133
|
+
*/
|
|
134
|
+
page: number;
|
|
135
|
+
/**
|
|
136
|
+
* Number of items per page
|
|
137
|
+
*/
|
|
138
|
+
limit: number;
|
|
139
|
+
/**
|
|
140
|
+
* Whether there are more pages
|
|
141
|
+
*/
|
|
142
|
+
hasMore: boolean;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/types/pipeline.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IAExC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,YAAY,EAAE,gBAAgB;CAAG;AAEnE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,KAAK,EAAE,aAAa,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IAExC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEtB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcGlwZWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBBcmJpdHJhcnkga2V5LXZhbHVlIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICogcGFzc2VkIHRocm91Z2ggdG8gdGhlIENESyBidWlsZGVyLlxuICovXG5leHBvcnQgdHlwZSBQaXBlbGluZVByb3BzID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbi8qKlxuICogUGlwZWxpbmUgdmlzaWJpbGl0eSBsZXZlbC5cbiAqL1xuZXhwb3J0IHR5cGUgUGlwZWxpbmVBY2Nlc3NNb2RpZmllciA9ICdwdWJsaWMnIHwgJ3ByaXZhdGUnO1xuXG4vKipcbiAqIENvcmUgcGlwZWxpbmUgZmllbGRzIHJlcXVpcmVkIG9uIGV2ZXJ5IHBpcGVsaW5lIHJlY29yZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUJhc2Uge1xuICAvKipcbiAgICogVW5pcXVlIHBpcGVsaW5lIGlkZW50aWZpZXJcbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb2plY3QgbmFtZVxuICAgKi9cbiAgcHJvamVjdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcmdhbml6YXRpb24gbmFtZVxuICAgKi9cbiAgb3JnYW5pemF0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRlbmFudCBpZGVudGlmaWVyIChmcm9tIEFQSSByZXNwb25zZSwgdXNlZCBmb3IgcGVyLW9yZyBzZWNyZXQgcmVzb2x1dGlvbilcbiAgICovXG4gIG9yZ0lkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZSBwcm9wZXJ0aWVzL2NvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByb3BzOiBQaXBlbGluZVByb3BzO1xufVxuXG4vKipcbiAqIE9wdGlvbmFsIG1ldGFkYXRhIGZpZWxkcyBhdHRhY2hlZCB0byBhIHBpcGVsaW5lIHJlY29yZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZU1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIHBpcGVsaW5lIG5hbWVcbiAgICovXG4gIHBpcGVsaW5lTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQWNjZXNzIG1vZGlmaWVyIChwdWJsaWMgb3IgcHJpdmF0ZSlcbiAgICovXG4gIGFjY2Vzc01vZGlmaWVyPzogUGlwZWxpbmVBY2Nlc3NNb2RpZmllcjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IHBpcGVsaW5lXG4gICAqL1xuICBpc0RlZmF1bHQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwaXBlbGluZSBpcyBhY3RpdmVcbiAgICovXG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGlwZWxpbmUgY3JlYXRpb24gdGltZXN0YW1wXG4gICAqL1xuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIGxhc3QgdXBkYXRlIHRpbWVzdGFtcFxuICAgKi9cbiAgdXBkYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2VyIHdobyBjcmVhdGVkIHRoZSBwaXBlbGluZVxuICAgKi9cbiAgY3JlYXRlZEJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2VyIHdobyBsYXN0IHVwZGF0ZWQgdGhlIHBpcGVsaW5lXG4gICAqL1xuICB1cGRhdGVkQnk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29tcGxldGUgcGlwZWxpbmUgZW50aXR5IGNvbWJpbmluZyBjb3JlIGZpZWxkcyBhbmQgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmUgZXh0ZW5kcyBQaXBlbGluZUJhc2UsIFBpcGVsaW5lTWV0YWRhdGEge31cblxuLyoqXG4gKiBSZXF1ZXN0IHBheWxvYWQgZm9yIGNyZWF0aW5nIGEgbmV3IHBpcGVsaW5lIHZpYSB0aGUgcGxhdGZvcm0gQVBJLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVBpcGVsaW5lUmVxdWVzdCB7XG4gIC8qKlxuICAgKiBQcm9qZWN0IG5hbWVcbiAgICovXG4gIHByb2plY3Q6IHN0cmluZztcblxuICAvKipcbiAgICogT3JnYW5pemF0aW9uIG5hbWVcbiAgICovXG4gIG9yZ2FuaXphdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZSBwcm9wZXJ0aWVzL2NvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByb3BzOiBQaXBlbGluZVByb3BzO1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBwaXBlbGluZSBuYW1lXG4gICAqL1xuICBwaXBlbGluZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyBtb2RpZmllciAocHVibGljIG9yIHByaXZhdGUpXG4gICAqIEBkZWZhdWx0ICdwcml2YXRlJ1xuICAgKi9cbiAgYWNjZXNzTW9kaWZpZXI/OiBQaXBlbGluZUFjY2Vzc01vZGlmaWVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgcGlwZWxpbmVcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGlzRGVmYXVsdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBpcGVsaW5lIGlzIGFjdGl2ZVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVzcG9uc2UgcmV0dXJuZWQgYnkgc2luZ2xlLXBpcGVsaW5lIEFQSSBlbmRwb2ludHMgKGdldCwgY3JlYXRlKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZVJlc3BvbnNlIHtcbiAgcGlwZWxpbmU6IFBpcGVsaW5lO1xufVxuXG4vKipcbiAqIFBhZ2luYXRlZCByZXNwb25zZSByZXR1cm5lZCBieSB0aGUgcGlwZWxpbmUgbGlzdCBBUEkgZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVMaXN0UmVzcG9uc2Uge1xuICAvKipcbiAgICogTGlzdCBvZiBwaXBlbGluZXNcbiAgICovXG4gIHBpcGVsaW5lczogUGlwZWxpbmVbXTtcblxuICAvKipcbiAgICogVG90YWwgbnVtYmVyIG9mIHBpcGVsaW5lcyAoZm9yIHBhZ2luYXRpb24pXG4gICAqL1xuICB0b3RhbDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHBhZ2UgbnVtYmVyXG4gICAqL1xuICBwYWdlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZVxuICAgKi9cbiAgbGltaXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGVyZSBhcmUgbW9yZSBwYWdlc1xuICAgKi9cbiAgaGFzTW9yZTogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package-level metadata extracted from the plugin archive.
|
|
3
|
+
*/
|
|
4
|
+
export interface PluginMetadata {
|
|
5
|
+
/**
|
|
6
|
+
* Plugin name
|
|
7
|
+
*/
|
|
8
|
+
name: string;
|
|
9
|
+
/**
|
|
10
|
+
* Plugin version
|
|
11
|
+
*/
|
|
12
|
+
version: string;
|
|
13
|
+
/**
|
|
14
|
+
* Plugin description
|
|
15
|
+
*/
|
|
16
|
+
description?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Plugin author
|
|
19
|
+
*/
|
|
20
|
+
author?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Plugin license
|
|
23
|
+
*/
|
|
24
|
+
license?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Plugin homepage URL
|
|
27
|
+
*/
|
|
28
|
+
homepage?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Plugin repository URL
|
|
31
|
+
*/
|
|
32
|
+
repository?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Plugin keywords/tags
|
|
35
|
+
*/
|
|
36
|
+
keywords?: string[];
|
|
37
|
+
/**
|
|
38
|
+
* Plugin dependencies
|
|
39
|
+
*/
|
|
40
|
+
dependencies?: Record<string, string>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Runtime configuration for a plugin, including its entry point and schema.
|
|
44
|
+
*/
|
|
45
|
+
export interface PluginConfig {
|
|
46
|
+
/**
|
|
47
|
+
* Plugin entry point
|
|
48
|
+
*/
|
|
49
|
+
main?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Plugin configuration schema
|
|
52
|
+
*/
|
|
53
|
+
schema?: Record<string, unknown>;
|
|
54
|
+
/**
|
|
55
|
+
* Plugin default configuration
|
|
56
|
+
*/
|
|
57
|
+
defaults?: Record<string, unknown>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Core plugin fields required on every plugin record.
|
|
61
|
+
*/
|
|
62
|
+
export interface PluginBase {
|
|
63
|
+
/**
|
|
64
|
+
* Unique plugin identifier
|
|
65
|
+
*/
|
|
66
|
+
id: string;
|
|
67
|
+
/**
|
|
68
|
+
* Plugin name
|
|
69
|
+
*/
|
|
70
|
+
name: string;
|
|
71
|
+
/**
|
|
72
|
+
* Plugin version
|
|
73
|
+
*/
|
|
74
|
+
version: string;
|
|
75
|
+
/**
|
|
76
|
+
* Organization that owns the plugin
|
|
77
|
+
*/
|
|
78
|
+
organization: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Complete plugin entity combining core fields with optional detail fields.
|
|
82
|
+
*/
|
|
83
|
+
export interface Plugin extends PluginBase {
|
|
84
|
+
/**
|
|
85
|
+
* Plugin description
|
|
86
|
+
*/
|
|
87
|
+
description?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Plugin metadata
|
|
90
|
+
*/
|
|
91
|
+
metadata?: PluginMetadata;
|
|
92
|
+
/**
|
|
93
|
+
* Plugin configuration
|
|
94
|
+
*/
|
|
95
|
+
config?: PluginConfig;
|
|
96
|
+
/**
|
|
97
|
+
* Plugin file URL
|
|
98
|
+
*/
|
|
99
|
+
fileUrl?: string;
|
|
100
|
+
/**
|
|
101
|
+
* Plugin file size in bytes
|
|
102
|
+
*/
|
|
103
|
+
fileSize?: number;
|
|
104
|
+
/**
|
|
105
|
+
* Plugin checksum (SHA256)
|
|
106
|
+
*/
|
|
107
|
+
checksum?: string;
|
|
108
|
+
/**
|
|
109
|
+
* Whether the plugin is active
|
|
110
|
+
*/
|
|
111
|
+
isActive?: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Whether the plugin is public
|
|
114
|
+
*/
|
|
115
|
+
isPublic?: boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Plugin creation timestamp
|
|
118
|
+
*/
|
|
119
|
+
createdAt?: string;
|
|
120
|
+
/**
|
|
121
|
+
* Plugin last update timestamp
|
|
122
|
+
*/
|
|
123
|
+
updatedAt?: string;
|
|
124
|
+
/**
|
|
125
|
+
* User who uploaded the plugin
|
|
126
|
+
*/
|
|
127
|
+
uploadedBy?: string;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Response returned by single-plugin API endpoints (get, upload).
|
|
131
|
+
*/
|
|
132
|
+
export interface PluginResponse {
|
|
133
|
+
plugin: Plugin;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Paginated response returned by the plugin list API endpoint.
|
|
137
|
+
*/
|
|
138
|
+
export interface PluginListResponse {
|
|
139
|
+
/**
|
|
140
|
+
* List of plugins
|
|
141
|
+
*/
|
|
142
|
+
plugins: Plugin[];
|
|
143
|
+
/**
|
|
144
|
+
* Total number of plugins (for pagination)
|
|
145
|
+
*/
|
|
146
|
+
total: number;
|
|
147
|
+
/**
|
|
148
|
+
* Current page number
|
|
149
|
+
*/
|
|
150
|
+
page: number;
|
|
151
|
+
/**
|
|
152
|
+
* Number of items per page
|
|
153
|
+
*/
|
|
154
|
+
limit: number;
|
|
155
|
+
/**
|
|
156
|
+
* Whether there are more pages
|
|
157
|
+
*/
|
|
158
|
+
hasMore: boolean;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDO0FBQy9DLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFBhY2thZ2UtbGV2ZWwgbWV0YWRhdGEgZXh0cmFjdGVkIGZyb20gdGhlIHBsdWdpbiBhcmNoaXZlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbk1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIFBsdWdpbiBuYW1lXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiB2ZXJzaW9uXG4gICAqL1xuICB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBkZXNjcmlwdGlvblxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBhdXRob3JcbiAgICovXG4gIGF1dGhvcj86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIGxpY2Vuc2VcbiAgICovXG4gIGxpY2Vuc2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBob21lcGFnZSBVUkxcbiAgICovXG4gIGhvbWVwYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gcmVwb3NpdG9yeSBVUkxcbiAgICovXG4gIHJlcG9zaXRvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBrZXl3b3Jkcy90YWdzXG4gICAqL1xuICBrZXl3b3Jkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gZGVwZW5kZW5jaWVzXG4gICAqL1xuICBkZXBlbmRlbmNpZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG4vKipcbiAqIFJ1bnRpbWUgY29uZmlndXJhdGlvbiBmb3IgYSBwbHVnaW4sIGluY2x1ZGluZyBpdHMgZW50cnkgcG9pbnQgYW5kIHNjaGVtYS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5Db25maWcge1xuICAvKipcbiAgICogUGx1Z2luIGVudHJ5IHBvaW50XG4gICAqL1xuICBtYWluPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gY29uZmlndXJhdGlvbiBzY2hlbWFcbiAgICovXG4gIHNjaGVtYT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBkZWZhdWx0cz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIENvcmUgcGx1Z2luIGZpZWxkcyByZXF1aXJlZCBvbiBldmVyeSBwbHVnaW4gcmVjb3JkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkJhc2Uge1xuICAvKipcbiAgICogVW5pcXVlIHBsdWdpbiBpZGVudGlmaWVyXG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gbmFtZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gdmVyc2lvblxuICAgKi9cbiAgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcmdhbml6YXRpb24gdGhhdCBvd25zIHRoZSBwbHVnaW5cbiAgICovXG4gIG9yZ2FuaXphdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbXBsZXRlIHBsdWdpbiBlbnRpdHkgY29tYmluaW5nIGNvcmUgZmllbGRzIHdpdGggb3B0aW9uYWwgZGV0YWlsIGZpZWxkcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW4gZXh0ZW5kcyBQbHVnaW5CYXNlIHtcbiAgLyoqXG4gICAqIFBsdWdpbiBkZXNjcmlwdGlvblxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBtZXRhZGF0YVxuICAgKi9cbiAgbWV0YWRhdGE/OiBQbHVnaW5NZXRhZGF0YTtcblxuICAvKipcbiAgICogUGx1Z2luIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIGNvbmZpZz86IFBsdWdpbkNvbmZpZztcblxuICAvKipcbiAgICogUGx1Z2luIGZpbGUgVVJMXG4gICAqL1xuICBmaWxlVXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gZmlsZSBzaXplIGluIGJ5dGVzXG4gICAqL1xuICBmaWxlU2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogUGx1Z2luIGNoZWNrc3VtIChTSEEyNTYpXG4gICAqL1xuICBjaGVja3N1bT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcGx1Z2luIGlzIGFjdGl2ZVxuICAgKi9cbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwbHVnaW4gaXMgcHVibGljXG4gICAqL1xuICBpc1B1YmxpYz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBjcmVhdGlvbiB0aW1lc3RhbXBcbiAgICovXG4gIGNyZWF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIGxhc3QgdXBkYXRlIHRpbWVzdGFtcFxuICAgKi9cbiAgdXBkYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2VyIHdobyB1cGxvYWRlZCB0aGUgcGx1Z2luXG4gICAqL1xuICB1cGxvYWRlZEJ5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIHJldHVybmVkIGJ5IHNpbmdsZS1wbHVnaW4gQVBJIGVuZHBvaW50cyAoZ2V0LCB1cGxvYWQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblJlc3BvbnNlIHtcbiAgcGx1Z2luOiBQbHVnaW47XG59XG5cbi8qKlxuICogUGFnaW5hdGVkIHJlc3BvbnNlIHJldHVybmVkIGJ5IHRoZSBwbHVnaW4gbGlzdCBBUEkgZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luTGlzdFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcGx1Z2luc1xuICAgKi9cbiAgcGx1Z2luczogUGx1Z2luW107XG5cbiAgLyoqXG4gICAqIFRvdGFsIG51bWJlciBvZiBwbHVnaW5zIChmb3IgcGFnaW5hdGlvbilcbiAgICovXG4gIHRvdGFsOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgcGFnZSBudW1iZXJcbiAgICovXG4gIHBhZ2U6IG51bWJlcjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlXG4gICAqL1xuICBsaW1pdDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZXJlIGFyZSBtb3JlIHBhZ2VzXG4gICAqL1xuICBoYXNNb3JlOiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import FormData from 'form-data';
|
|
2
|
+
import { Config } from './config-loader';
|
|
3
|
+
/**
|
|
4
|
+
* API Client for making HTTP requests to the platform API
|
|
5
|
+
*/
|
|
6
|
+
export declare class ApiClient {
|
|
7
|
+
private client;
|
|
8
|
+
private config;
|
|
9
|
+
constructor(config: Config);
|
|
10
|
+
private handleError;
|
|
11
|
+
get<T = unknown>(url: string, params?: Record<string, unknown>, headers?: Record<string, string>): Promise<T>;
|
|
12
|
+
post<T = unknown>(url: string, data?: unknown, headers?: Record<string, string>): Promise<T>;
|
|
13
|
+
postForm<T = unknown>(url: string, formData: FormData, headers?: Record<string, string>): Promise<T>;
|
|
14
|
+
put<T = unknown>(url: string, data?: unknown, headers?: Record<string, string>): Promise<T>;
|
|
15
|
+
delete<T = unknown>(url: string, headers?: Record<string, string>): Promise<T>;
|
|
16
|
+
patch<T = unknown>(url: string, data?: unknown, headers?: Record<string, string>): Promise<T>;
|
|
17
|
+
getConfig(): Config;
|
|
18
|
+
getBaseUrl(): string;
|
|
19
|
+
isAuthenticated(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Advisory check: decode JWT exp claim and warn if expired.
|
|
22
|
+
* Does NOT verify signature — server handles that.
|
|
23
|
+
*/
|
|
24
|
+
private checkTokenExpiry;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/utils/api-client.ts"],"names":[],"mappings":"AAKA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAwD1B,OAAO,CAAC,WAAW;IA+Cb,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK7G,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK5F,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAWpG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK3F,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK9E,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKnG,SAAS,IAAI,MAAM;IACnB,UAAU,IAAI,MAAM;IACpB,eAAe,IAAI,OAAO;IAE1B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAezB"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
|
+
};
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ApiClient = void 0;
|
|
9
|
+
const https_1 = __importDefault(require("https"));
|
|
10
|
+
const axios_1 = __importDefault(require("axios"));
|
|
11
|
+
const cli_constants_1 = require("../config/cli.constants");
|
|
12
|
+
const types_1 = require("../types");
|
|
13
|
+
const error_handler_1 = require("./error-handler");
|
|
14
|
+
const output_utils_1 = require("./output-utils");
|
|
15
|
+
/**
|
|
16
|
+
* API Client for making HTTP requests to the platform API
|
|
17
|
+
*/
|
|
18
|
+
class ApiClient {
|
|
19
|
+
client;
|
|
20
|
+
config;
|
|
21
|
+
constructor(config) {
|
|
22
|
+
this.config = config;
|
|
23
|
+
if (!config.auth?.token) {
|
|
24
|
+
throw new Error('Authentication token is required. Set PLATFORM_TOKEN environment variable.');
|
|
25
|
+
}
|
|
26
|
+
// Warn if token appears expired (advisory — server validates authoritatively)
|
|
27
|
+
this.checkTokenExpiry(config.auth.token);
|
|
28
|
+
const httpsAgent = new https_1.default.Agent({
|
|
29
|
+
rejectUnauthorized: config.api.rejectUnauthorized ?? true,
|
|
30
|
+
});
|
|
31
|
+
if (config.api.rejectUnauthorized === false) {
|
|
32
|
+
(0, output_utils_1.printWarning)('Certificate validation is disabled');
|
|
33
|
+
}
|
|
34
|
+
this.client = axios_1.default.create({
|
|
35
|
+
baseURL: config.api.baseUrl,
|
|
36
|
+
timeout: config.api.timeout || cli_constants_1.TIMEOUTS.HTTP_REQUEST,
|
|
37
|
+
httpsAgent,
|
|
38
|
+
headers: { 'Content-Type': 'application/json' },
|
|
39
|
+
});
|
|
40
|
+
// Auth interceptor
|
|
41
|
+
this.client.interceptors.request.use((requestConfig) => {
|
|
42
|
+
requestConfig.headers.Authorization = `Bearer ${config.auth.token}`;
|
|
43
|
+
(0, output_utils_1.printDebug)('API Request', {
|
|
44
|
+
method: requestConfig.method?.toUpperCase(),
|
|
45
|
+
url: requestConfig.url,
|
|
46
|
+
baseURL: requestConfig.baseURL,
|
|
47
|
+
});
|
|
48
|
+
return requestConfig;
|
|
49
|
+
}, (error) => {
|
|
50
|
+
(0, output_utils_1.printError)('Request interceptor error', { error: error.message });
|
|
51
|
+
return Promise.reject(error);
|
|
52
|
+
});
|
|
53
|
+
// Response interceptor
|
|
54
|
+
this.client.interceptors.response.use((response) => {
|
|
55
|
+
(0, output_utils_1.printDebug)('API Response', {
|
|
56
|
+
status: response.status,
|
|
57
|
+
statusText: response.statusText,
|
|
58
|
+
url: response.config.url,
|
|
59
|
+
});
|
|
60
|
+
return response;
|
|
61
|
+
}, (error) => this.handleError(error));
|
|
62
|
+
}
|
|
63
|
+
handleError(error) {
|
|
64
|
+
if (error.response) {
|
|
65
|
+
const { status, statusText, data } = error.response;
|
|
66
|
+
const url = error.config?.url;
|
|
67
|
+
(0, output_utils_1.printError)('API request failed', { status, statusText, url, data });
|
|
68
|
+
let message = `API request failed with status ${status}`;
|
|
69
|
+
if (data && typeof data === 'object' && 'message' in data) {
|
|
70
|
+
message = data.message;
|
|
71
|
+
}
|
|
72
|
+
return Promise.reject(new types_1.ApiError(message, status, error.response));
|
|
73
|
+
}
|
|
74
|
+
else if (error.request) {
|
|
75
|
+
const code = error.code || 'UNKNOWN';
|
|
76
|
+
const url = error.config?.url;
|
|
77
|
+
const timeout = error.config?.timeout;
|
|
78
|
+
const cause = error.cause;
|
|
79
|
+
(0, output_utils_1.printError)('No response received from API', {
|
|
80
|
+
url,
|
|
81
|
+
timeout,
|
|
82
|
+
code,
|
|
83
|
+
...(cause instanceof Error ? { cause: cause.message } : {}),
|
|
84
|
+
});
|
|
85
|
+
const hints = {
|
|
86
|
+
ECONNREFUSED: 'Server is not running or port is wrong',
|
|
87
|
+
ECONNRESET: 'Server closed the connection unexpectedly',
|
|
88
|
+
ETIMEDOUT: 'Connection timed out — server unreachable or too slow',
|
|
89
|
+
ENOTFOUND: 'DNS lookup failed — check the hostname in baseUrl',
|
|
90
|
+
ERR_BAD_REQUEST: 'Request was malformed — check the endpoint and payload',
|
|
91
|
+
CERT_HAS_EXPIRED: 'SSL certificate expired — use --no-verify-ssl for dev',
|
|
92
|
+
DEPTH_ZERO_SELF_SIGNED_CERT: 'Self-signed certificate — use --no-verify-ssl',
|
|
93
|
+
UNABLE_TO_VERIFY_LEAF_SIGNATURE: 'SSL chain incomplete — use --no-verify-ssl for dev',
|
|
94
|
+
};
|
|
95
|
+
const hint = hints[code] || 'Check network connectivity and server status';
|
|
96
|
+
const message = `${code}: ${hint} (url: ${url})`;
|
|
97
|
+
return Promise.reject(new error_handler_1.NetworkError(message, url, error));
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
(0, output_utils_1.printError)('API request error', { error: error.message });
|
|
101
|
+
return Promise.reject(error);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async get(url, params, headers) {
|
|
105
|
+
const response = await this.client.get(url, { params, headers });
|
|
106
|
+
return response.data;
|
|
107
|
+
}
|
|
108
|
+
async post(url, data, headers) {
|
|
109
|
+
const response = await this.client.post(url, data, { headers });
|
|
110
|
+
return response.data;
|
|
111
|
+
}
|
|
112
|
+
async postForm(url, formData, headers) {
|
|
113
|
+
const uploadTimeout = this.config.api.uploadTimeout || 15 * 60 * 1000; // default 15 minutes
|
|
114
|
+
const response = await this.client.post(url, formData, {
|
|
115
|
+
headers: { ...formData.getHeaders(), ...headers },
|
|
116
|
+
maxContentLength: Infinity,
|
|
117
|
+
maxBodyLength: Infinity,
|
|
118
|
+
timeout: uploadTimeout,
|
|
119
|
+
});
|
|
120
|
+
return response.data;
|
|
121
|
+
}
|
|
122
|
+
async put(url, data, headers) {
|
|
123
|
+
const response = await this.client.put(url, data, { headers });
|
|
124
|
+
return response.data;
|
|
125
|
+
}
|
|
126
|
+
async delete(url, headers) {
|
|
127
|
+
const response = await this.client.delete(url, { headers });
|
|
128
|
+
return response.data;
|
|
129
|
+
}
|
|
130
|
+
async patch(url, data, headers) {
|
|
131
|
+
const response = await this.client.patch(url, data, { headers });
|
|
132
|
+
return response.data;
|
|
133
|
+
}
|
|
134
|
+
getConfig() { return this.config; }
|
|
135
|
+
getBaseUrl() { return this.config.api.baseUrl; }
|
|
136
|
+
isAuthenticated() { return !!this.config.auth?.token; }
|
|
137
|
+
/**
|
|
138
|
+
* Advisory check: decode JWT exp claim and warn if expired.
|
|
139
|
+
* Does NOT verify signature — server handles that.
|
|
140
|
+
*/
|
|
141
|
+
checkTokenExpiry(token) {
|
|
142
|
+
try {
|
|
143
|
+
const parts = token.split('.');
|
|
144
|
+
if (parts.length !== 3 || !parts[1])
|
|
145
|
+
return;
|
|
146
|
+
const payload = JSON.parse(Buffer.from(parts[1], 'base64url').toString('utf-8'));
|
|
147
|
+
if (payload.exp && typeof payload.exp === 'number') {
|
|
148
|
+
const expiresAt = new Date(payload.exp * 1000);
|
|
149
|
+
if (expiresAt.getTime() < Date.now()) {
|
|
150
|
+
(0, output_utils_1.printWarning)(`Token expired at ${expiresAt.toISOString()} — run "pipeline-manager login" to refresh`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// Silently ignore decode errors — server will reject invalid tokens
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
exports.ApiClient = ApiClient;
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hcGktY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDOzs7Ozs7QUFFdEMsa0RBQTBCO0FBQzFCLGtEQUF5RDtBQUV6RCwyREFBbUQ7QUFDbkQsb0NBQW9DO0FBRXBDLG1EQUErQztBQUMvQyxpREFBc0U7QUFFdEU7O0dBRUc7QUFDSCxNQUFhLFNBQVM7SUFDWixNQUFNLENBQWdCO0lBQ3RCLE1BQU0sQ0FBUztJQUV2QixZQUFZLE1BQWM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDO1FBQ2hHLENBQUM7UUFFRCw4RUFBOEU7UUFDOUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFLLENBQUMsS0FBSyxDQUFDO1lBQ2pDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksSUFBSTtTQUMxRCxDQUFDLENBQUM7UUFFSCxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDNUMsSUFBQSwyQkFBWSxFQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBSyxDQUFDLE1BQU0sQ0FBQztZQUN6QixPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPO1lBQzNCLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSx3QkFBUSxDQUFDLFlBQVk7WUFDcEQsVUFB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QyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQy9DLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO29CQUNyQyxJQUFBLDJCQUFZLEVBQUMsb0JBQW9CLFNBQVMsQ0FBQyxXQUFXLEVBQUUsNENBQTRDLENBQUMsQ0FBQztnQkFDeEcsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1Asb0VBQW9FO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF0S0QsOEJBc0tDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgYXhpb3MsIHsgQXhpb3NJbnN0YW5jZSwgQXhpb3NFcnJvciB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCBGb3JtRGF0YSBmcm9tICdmb3JtLWRhdGEnO1xuaW1wb3J0IHsgVElNRU9VVFMgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBBcGlFcnJvciB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4vY29uZmlnLWxvYWRlcic7XG5pbXBvcnQgeyBOZXR3b3JrRXJyb3IgfSBmcm9tICcuL2Vycm9yLWhhbmRsZXInO1xuaW1wb3J0IHsgcHJpbnREZWJ1ZywgcHJpbnRFcnJvciwgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi9vdXRwdXQtdXRpbHMnO1xuXG4vKipcbiAqIEFQSSBDbGllbnQgZm9yIG1ha2luZyBIVFRQIHJlcXVlc3RzIHRvIHRoZSBwbGF0Zm9ybSBBUElcbiAqL1xuZXhwb3J0IGNsYXNzIEFwaUNsaWVudCB7XG4gIHByaXZhdGUgY2xpZW50OiBBeGlvc0luc3RhbmNlO1xuICBwcml2YXRlIGNvbmZpZzogQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQ29uZmlnKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG5cbiAgICBpZiAoIWNvbmZpZy5hdXRoPy50b2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdXRoZW50aWNhdGlvbiB0b2tlbiBpcyByZXF1aXJlZC4gU2V0IFBMQVRGT1JNX1RPS0VOIGVudmlyb25tZW50IHZhcmlhYmxlLicpO1xuICAgIH1cblxuICAgIC8vIFdhcm4gaWYgdG9rZW4gYXBwZWFycyBleHBpcmVkIChhZHZpc29yeSDigJQgc2VydmVyIHZhbGlkYXRlcyBhdXRob3JpdGF0aXZlbHkpXG4gICAgdGhpcy5jaGVja1Rva2VuRXhwaXJ5KGNvbmZpZy5hdXRoLnRva2VuKTtcblxuICAgIGNvbnN0IGh0dHBzQWdlbnQgPSBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiBjb25maWcuYXBpLnJlamVjdFVuYXV0aG9yaXplZCA/PyB0cnVlLFxuICAgIH0pO1xuXG4gICAgaWYgKGNvbmZpZy5hcGkucmVqZWN0VW5hdXRob3JpemVkID09PSBmYWxzZSkge1xuICAgICAgcHJpbnRXYXJuaW5nKCdDZXJ0aWZpY2F0ZSB2YWxpZGF0aW9uIGlzIGRpc2FibGVkJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jbGllbnQgPSBheGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogY29uZmlnLmFwaS5iYXNlVXJsLFxuICAgICAgdGltZW91dDogY29uZmlnLmFwaS50aW1lb3V0IHx8IFRJTUVPVVRTLkhUVFBfUkVRVUVTVCxcbiAgICAgIGh0dHBzQWdlbnQsXG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICB9KTtcblxuICAgIC8vIEF1dGggaW50ZXJjZXB0b3JcbiAgICB0aGlzLmNsaWVudC5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoXG4gICAgICAocmVxdWVzdENvbmZpZykgPT4ge1xuICAgICAgICByZXF1ZXN0Q29uZmlnLmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IGBCZWFyZXIgJHtjb25maWcuYXV0aC50b2tlbn1gO1xuICAgICAgICBwcmludERlYnVnKCdBUEkgUmVxdWVzdCcsIHtcbiAgICAgICAgICBtZXRob2Q6IHJlcXVlc3RDb25maWcubWV0aG9kPy50b1VwcGVyQ2FzZSgpLFxuICAgICAgICAgIHVybDogcmVxdWVzdENvbmZpZy51cmwsXG4gICAgICAgICAgYmFzZVVSTDogcmVxdWVzdENvbmZpZy5iYXNlVVJMLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlcXVlc3RDb25maWc7XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIHByaW50RXJyb3IoJ1JlcXVlc3QgaW50ZXJjZXB0b3IgZXJyb3InLCB7IGVycm9yOiBlcnJvci5tZXNzYWdlIH0pO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gUmVzcG9uc2UgaW50ZXJjZXB0b3JcbiAgICB0aGlzLmNsaWVudC5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHByaW50RGVidWcoJ0FQSSBSZXNwb25zZScsIHtcbiAgICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICBzdGF0dXNUZXh0OiByZXNwb25zZS5zdGF0dXNUZXh0LFxuICAgICAgICAgIHVybDogcmVzcG9uc2UuY29uZmlnLnVybCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IEF4aW9zRXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBBeGlvc0Vycm9yKTogUHJvbWlzZTxuZXZlcj4ge1xuICAgIGlmIChlcnJvci5yZXNwb25zZSkge1xuICAgICAgY29uc3QgeyBzdGF0dXMsIHN0YXR1c1RleHQsIGRhdGEgfSA9IGVycm9yLnJlc3BvbnNlO1xuICAgICAgY29uc3QgdXJsID0gZXJyb3IuY29uZmlnPy51cmw7XG5cbiAgICAgIHByaW50RXJyb3IoJ0FQSSByZXF1ZXN0IGZhaWxlZCcsIHsgc3RhdHVzLCBzdGF0dXNUZXh0LCB1cmwsIGRhdGEgfSk7XG5cbiAgICAgIGxldCBtZXNzYWdlID0gYEFQSSByZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAke3N0YXR1c31gO1xuICAgICAgaWYgKGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmICdtZXNzYWdlJyBpbiBkYXRhKSB7XG4gICAgICAgIG1lc3NhZ2UgPSAoZGF0YSBhcyB7IG1lc3NhZ2U6IHN0cmluZyB9KS5tZXNzYWdlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEFwaUVycm9yKG1lc3NhZ2UsIHN0YXR1cywgZXJyb3IucmVzcG9uc2UpKTtcbiAgICB9IGVsc2UgaWYgKGVycm9yLnJlcXVlc3QpIHtcbiAgICAgIGNvbnN0IGNvZGUgPSBlcnJvci5jb2RlIHx8ICdVTktOT1dOJztcbiAgICAgIGNvbnN0IHVybCA9IGVycm9yLmNvbmZpZz8udXJsO1xuICAgICAgY29uc3QgdGltZW91dCA9IGVycm9yLmNvbmZpZz8udGltZW91dDtcbiAgICAgIGNvbnN0IGNhdXNlID0gZXJyb3IuY2F1c2U7XG5cbiAgICAgIHByaW50RXJyb3IoJ05vIHJlc3BvbnNlIHJlY2VpdmVkIGZyb20gQVBJJywge1xuICAgICAgICB1cmwsXG4gICAgICAgIHRpbWVvdXQsXG4gICAgICAgIGNvZGUsXG4gICAgICAgIC4uLihjYXVzZSBpbnN0YW5jZW9mIEVycm9yID8geyBjYXVzZTogY2F1c2UubWVzc2FnZSB9IDoge30pLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGhpbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgICBFQ09OTlJFRlVTRUQ6ICdTZXJ2ZXIgaXMgbm90IHJ1bm5pbmcgb3IgcG9ydCBpcyB3cm9uZycsXG4gICAgICAgIEVDT05OUkVTRVQ6ICdTZXJ2ZXIgY2xvc2VkIHRoZSBjb25uZWN0aW9uIHVuZXhwZWN0ZWRseScsXG4gICAgICAgIEVUSU1FRE9VVDogJ0Nvbm5lY3Rpb24gdGltZWQgb3V0IOKAlCBzZXJ2ZXIgdW5yZWFjaGFibGUgb3IgdG9vIHNsb3cnLFxuICAgICAgICBFTk9URk9VTkQ6ICdETlMgbG9va3VwIGZhaWxlZCDigJQgY2hlY2sgdGhlIGhvc3RuYW1lIGluIGJhc2VVcmwnLFxuICAgICAgICBFUlJfQkFEX1JFUVVFU1Q6ICdSZXF1ZXN0IHdhcyBtYWxmb3JtZWQg4oCUIGNoZWNrIHRoZSBlbmRwb2ludCBhbmQgcGF5bG9hZCcsXG4gICAgICAgIENFUlRfSEFTX0VYUElSRUQ6ICdTU0wgY2VydGlmaWNhdGUgZXhwaXJlZCDigJQgdXNlIC0tbm8tdmVyaWZ5LXNzbCBmb3IgZGV2JyxcbiAgICAgICAgREVQVEhfWkVST19TRUxGX1NJR05FRF9DRVJUOiAnU2VsZi1zaWduZWQgY2VydGlmaWNhdGUg4oCUIHVzZSAtLW5vLXZlcmlmeS1zc2wnLFxuICAgICAgICBVTkFCTEVfVE9fVkVSSUZZX0xFQUZfU0lHTkFUVVJFOiAnU1NMIGNoYWluIGluY29tcGxldGUg4oCUIHVzZSAtLW5vLXZlcmlmeS1zc2wgZm9yIGRldicsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBoaW50ID0gaGludHNbY29kZV0gfHwgJ0NoZWNrIG5ldHdvcmsgY29ubmVjdGl2aXR5IGFuZCBzZXJ2ZXIgc3RhdHVzJztcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgJHtjb2RlfTogJHtoaW50fSAodXJsOiAke3VybH0pYDtcblxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBOZXR3b3JrRXJyb3IobWVzc2FnZSwgdXJsLCBlcnJvcikpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcmludEVycm9yKCdBUEkgcmVxdWVzdCBlcnJvcicsIHsgZXJyb3I6IGVycm9yLm1lc3NhZ2UgfSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldDxUID0gdW5rbm93bj4odXJsOiBzdHJpbmcsIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0PFQ+KHVybCwgeyBwYXJhbXMsIGhlYWRlcnMgfSk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gIH1cblxuICBhc3luYyBwb3N0PFQgPSB1bmtub3duPih1cmw6IHN0cmluZywgZGF0YT86IHVua25vd24sIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0PFQ+KHVybCwgZGF0YSwgeyBoZWFkZXJzIH0pO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICB9XG5cbiAgYXN5bmMgcG9zdEZvcm08VCA9IHVua25vd24+KHVybDogc3RyaW5nLCBmb3JtRGF0YTogRm9ybURhdGEsIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgdXBsb2FkVGltZW91dCA9IHRoaXMuY29uZmlnLmFwaS51cGxvYWRUaW1lb3V0IHx8IDE1ICogNjAgKiAxMDAwOyAvLyBkZWZhdWx0IDE1IG1pbnV0ZXNcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3Q8VD4odXJsLCBmb3JtRGF0YSwge1xuICAgICAgaGVhZGVyczogeyAuLi5mb3JtRGF0YS5nZXRIZWFkZXJzKCksIC4uLmhlYWRlcnMgfSxcbiAgICAgIG1heENvbnRlbnRMZW5ndGg6IEluZmluaXR5LFxuICAgICAgbWF4Qm9keUxlbmd0aDogSW5maW5pdHksXG4gICAgICB0aW1lb3V0OiB1cGxvYWRUaW1lb3V0LFxuICAgIH0pO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICB9XG5cbiAgYXN5bmMgcHV0PFQgPSB1bmtub3duPih1cmw6IHN0cmluZywgZGF0YT86IHVua25vd24sIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wdXQ8VD4odXJsLCBkYXRhLCB7IGhlYWRlcnMgfSk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gIH1cblxuICBhc3luYyBkZWxldGU8VCA9IHVua25vd24+KHVybDogc3RyaW5nLCBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuZGVsZXRlPFQ+KHVybCwgeyBoZWFkZXJzIH0pO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICB9XG5cbiAgYXN5bmMgcGF0Y2g8VCA9IHVua25vd24+KHVybDogc3RyaW5nLCBkYXRhPzogdW5rbm93biwgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBhdGNoPFQ+KHVybCwgZGF0YSwgeyBoZWFkZXJzIH0pO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICB9XG5cbiAgZ2V0Q29uZmlnKCk6IENvbmZpZyB7IHJldHVybiB0aGlzLmNvbmZpZzsgfVxuICBnZXRCYXNlVXJsKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmNvbmZpZy5hcGkuYmFzZVVybDsgfVxuICBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7IHJldHVybiAhIXRoaXMuY29uZmlnLmF1dGg/LnRva2VuOyB9XG5cbiAgLyoqXG4gICAqIEFkdmlzb3J5IGNoZWNrOiBkZWNvZGUgSldUIGV4cCBjbGFpbSBhbmQgd2FybiBpZiBleHBpcmVkLlxuICAgKiBEb2VzIE5PVCB2ZXJpZnkgc2lnbmF0dXJlIOKAlCBzZXJ2ZXIgaGFuZGxlcyB0aGF0LlxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja1Rva2VuRXhwaXJ5KHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFydHMgPSB0b2tlbi5zcGxpdCgnLicpO1xuICAgICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMyB8fCAhcGFydHNbMV0pIHJldHVybjtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHBhcnRzWzFdLCAnYmFzZTY0dXJsJykudG9TdHJpbmcoJ3V0Zi04JykpO1xuICAgICAgaWYgKHBheWxvYWQuZXhwICYmIHR5cGVvZiBwYXlsb2FkLmV4cCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3QgZXhwaXJlc0F0ID0gbmV3IERhdGUocGF5bG9hZC5leHAgKiAxMDAwKTtcbiAgICAgICAgaWYgKGV4cGlyZXNBdC5nZXRUaW1lKCkgPCBEYXRlLm5vdygpKSB7XG4gICAgICAgICAgcHJpbnRXYXJuaW5nKGBUb2tlbiBleHBpcmVkIGF0ICR7ZXhwaXJlc0F0LnRvSVNPU3RyaW5nKCl9IOKAlCBydW4gXCJwaXBlbGluZS1tYW5hZ2VyIGxvZ2luXCIgdG8gcmVmcmVzaGApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTaWxlbnRseSBpZ25vcmUgZGVjb2RlIGVycm9ycyDigJQgc2VydmVyIHdpbGwgcmVqZWN0IGludmFsaWQgdG9rZW5zXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log a sensitive operation to the local audit file.
|
|
3
|
+
*
|
|
4
|
+
* @param command - The command name (e.g., 'store-token', 'deploy', 'bootstrap')
|
|
5
|
+
* @param details - Non-sensitive metadata about the operation
|
|
6
|
+
*/
|
|
7
|
+
export declare function auditLog(command: string, details?: Record<string, unknown>): void;
|
|
8
|
+
//# sourceMappingURL=audit-log.d.ts.map
|