@stepzen/sdk 0.21.0-beta.1 → 0.21.0-beta.2
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/lib/client-v2.d.ts +11 -0
- package/lib/client-v2.d.ts.map +1 -1
- package/lib/client-v2.js +18 -2
- package/lib/client-v2.js.map +1 -1
- package/lib/commands/upload.d.ts.map +1 -1
- package/lib/commands/upload.js +2 -7
- package/lib/commands/upload.js.map +1 -1
- package/lib/commands-v2/account.js +1 -1
- package/lib/commands-v2/deploy.d.ts +1 -1
- package/lib/commands-v2/deploy.d.ts.map +1 -1
- package/lib/commands-v2/deploy.js +1 -1
- package/lib/commands-v2/deploy.js.map +1 -1
- package/lib/commands-v2/list.d.ts +12 -0
- package/lib/commands-v2/list.d.ts.map +1 -0
- package/lib/commands-v2/list.js +58 -0
- package/lib/commands-v2/list.js.map +1 -0
- package/lib/init-v2.d.ts +6 -0
- package/lib/init-v2.d.ts.map +1 -1
- package/lib/shared/payloads.d.ts +1 -1
- package/lib/shared/payloads.d.ts.map +1 -1
- package/lib/shared/payloads.js +10 -19
- package/lib/shared/payloads.js.map +1 -1
- package/lib/shared/transpiling.d.ts +14 -1
- package/lib/shared/transpiling.d.ts.map +1 -1
- package/lib/shared/transpiling.js +8 -9
- package/lib/shared/transpiling.js.map +1 -1
- package/lib/shared/validation.d.ts.map +1 -1
- package/lib/shared/validation.js +7 -1
- package/lib/shared/validation.js.map +1 -1
- package/package.json +3 -3
- package/src/client-v2.ts +18 -2
- package/src/commands/upload.ts +3 -7
- package/src/commands-v2/account.ts +1 -1
- package/src/commands-v2/deploy.ts +2 -2
- package/src/commands-v2/list.ts +91 -0
- package/src/shared/payloads.ts +11 -28
- package/src/shared/transpiling.ts +25 -11
- package/src/shared/validation.ts +11 -1
package/lib/client-v2.d.ts
CHANGED
|
@@ -35,5 +35,16 @@ export declare const createSdkClient: (auth: {
|
|
|
35
35
|
config?: string | undefined;
|
|
36
36
|
public?: boolean | undefined;
|
|
37
37
|
}) => Promise<import("./shared/types").ZenCtlResponseV2<import("./shared/types").StepZenEndpointV2>>;
|
|
38
|
+
list: {
|
|
39
|
+
/**
|
|
40
|
+
* List deployed endpoints.
|
|
41
|
+
*
|
|
42
|
+
* @returns list of deployed endpoints
|
|
43
|
+
*/
|
|
44
|
+
endpoints: () => Promise<import("./shared/types").ZenCtlResponseV2<{
|
|
45
|
+
folderName: string;
|
|
46
|
+
endpointName: string;
|
|
47
|
+
}[]>>;
|
|
48
|
+
};
|
|
38
49
|
}>;
|
|
39
50
|
//# sourceMappingURL=client-v2.d.ts.map
|
package/lib/client-v2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-v2.d.ts","sourceRoot":"","sources":["../src/client-v2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client-v2.d.ts","sourceRoot":"","sources":["../src/client-v2.ts"],"names":[],"mappings":"AAUA,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAA;AAEjD,eAAO,MAAM,sBAAsB,SAE7B;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAC,GAC3D;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAC,aAC7C,kBAAkB,2DAkC9B,CAAA;AAED,eAAO,MAAM,eAAe,SAEtB;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAC,GAC3D;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAC,aAC7C,kBAAkB;;IAS3B;;;;;;;;;;;OAWG;;gBAQO,MAAM;cACR,MAAM;mBACD,MAAM;;;;;QAkBjB;;;;WAIG;;;;;;EAWR,CAAA"}
|
package/lib/client-v2.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.createSdkClient = exports.ensureValidCredentials = void 0;
|
|
5
5
|
const account_1 = require("./commands-v2/account");
|
|
6
6
|
const deploy_1 = require("./commands-v2/deploy");
|
|
7
|
+
const list_1 = require("./commands-v2/list");
|
|
7
8
|
const getPublicAccount_1 = require("./commands-v2/getPublicAccount");
|
|
8
9
|
const payloads_1 = require("./shared/payloads");
|
|
9
10
|
const ensureValidCredentials = async (auth, sdkConfig) => {
|
|
@@ -55,7 +56,7 @@ const createSdkClient = async (auth, sdkConfig) => {
|
|
|
55
56
|
* @param public - whether or not to allow public access to the endpoint (`false` by default)
|
|
56
57
|
* @returns details of the created / updated endpoint
|
|
57
58
|
*/
|
|
58
|
-
deploy: ({ folder, name, directory, config, public: _public = false, }) => {
|
|
59
|
+
deploy: async ({ folder, name, directory, config, public: _public = false, }) => {
|
|
59
60
|
return (0, deploy_1.default)({
|
|
60
61
|
account: credentials.account,
|
|
61
62
|
adminKey: credentials.adminKey,
|
|
@@ -65,10 +66,25 @@ const createSdkClient = async (auth, sdkConfig) => {
|
|
|
65
66
|
folderName: folder,
|
|
66
67
|
public: _public,
|
|
67
68
|
schemaFiles: (0, payloads_1.generateSchemaFilesPayload)(directory),
|
|
68
|
-
configuration: (0, payloads_1.generateConfigurationPayload)(config),
|
|
69
|
+
configuration: await (0, payloads_1.generateConfigurationPayload)(config),
|
|
69
70
|
sdkConfig,
|
|
70
71
|
});
|
|
71
72
|
},
|
|
73
|
+
list: {
|
|
74
|
+
/**
|
|
75
|
+
* List deployed endpoints.
|
|
76
|
+
*
|
|
77
|
+
* @returns list of deployed endpoints
|
|
78
|
+
*/
|
|
79
|
+
endpoints: () => {
|
|
80
|
+
return (0, list_1.default)({
|
|
81
|
+
account: credentials.account,
|
|
82
|
+
adminKey: credentials.adminKey,
|
|
83
|
+
deploymentType: credentials.deploymentType,
|
|
84
|
+
sdkConfig,
|
|
85
|
+
});
|
|
86
|
+
},
|
|
87
|
+
},
|
|
72
88
|
};
|
|
73
89
|
};
|
|
74
90
|
exports.createSdkClient = createSdkClient;
|
package/lib/client-v2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-v2.js","sourceRoot":"","sources":["../src/client-v2.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C,mDAA8C;AAC9C,iDAA4C;AAC5C,qEAA6D;AAC7D,gDAG0B;AAGnB,MAAM,sBAAsB,GAAG,KAAK,EACzC,IAEwD,EACxD,SAA6B,EAC7B,EAAE;IACF,IAAI,WAAW,CAAA;IAEf,IAAI,oBAAoB,IAAI,IAAI,EAAE;QAChC,8EAA8E;QAC9E,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAA,0BAAgB,EAAC;YAC3C,KAAK,EAAE,IAAI,CAAC,kBAAkB;YAC9B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS;SACV,CAAC,CAAA;QAEF,IAAI,KAAK,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;SAClE;QAED,WAAW,GAAG,IAAI,CAAA;KACnB;SAAM;QACL,gEAAgE;QAChE,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAA,iBAAU,EAAC;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS;SACV,CAAC,CAAA;QAEF,IAAI,KAAK,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;SAC/B;QAED,WAAW,GAAG,IAAI,CAAA;KACnB;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAtCY,QAAA,sBAAsB,0BAsClC;AAEM,MAAM,eAAe,GAAG,KAAK,EAClC,IAEwD,EACxD,SAA6B,EAC7B,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,IAAA,8BAAsB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAEjE,OAAO;QACL,IAAI,WAAW;YACb,uEAAuE;YACvE,OAAO,EAAC,GAAG,WAAW,EAAC,CAAA;QACzB,CAAC;QACD;;;;;;;;;;;WAWG;QACH,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"client-v2.js","sourceRoot":"","sources":["../src/client-v2.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C,mDAA8C;AAC9C,iDAA4C;AAC5C,6CAAiD;AACjD,qEAA6D;AAC7D,gDAG0B;AAGnB,MAAM,sBAAsB,GAAG,KAAK,EACzC,IAEwD,EACxD,SAA6B,EAC7B,EAAE;IACF,IAAI,WAAW,CAAA;IAEf,IAAI,oBAAoB,IAAI,IAAI,EAAE;QAChC,8EAA8E;QAC9E,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAA,0BAAgB,EAAC;YAC3C,KAAK,EAAE,IAAI,CAAC,kBAAkB;YAC9B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS;SACV,CAAC,CAAA;QAEF,IAAI,KAAK,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;SAClE;QAED,WAAW,GAAG,IAAI,CAAA;KACnB;SAAM;QACL,gEAAgE;QAChE,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAA,iBAAU,EAAC;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS;SACV,CAAC,CAAA;QAEF,IAAI,KAAK,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;SAC/B;QAED,WAAW,GAAG,IAAI,CAAA;KACnB;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAtCY,QAAA,sBAAsB,0BAsClC;AAEM,MAAM,eAAe,GAAG,KAAK,EAClC,IAEwD,EACxD,SAA6B,EAC7B,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,IAAA,8BAAsB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAEjE,OAAO;QACL,IAAI,WAAW;YACb,uEAAuE;YACvE,OAAO,EAAC,GAAG,WAAW,EAAC,CAAA;QACzB,CAAC;QACD;;;;;;;;;;;WAWG;QACH,MAAM,EAAE,KAAK,EAAE,EACb,MAAM,EACN,IAAI,EACJ,SAAS,EACT,MAAM,EACN,MAAM,EAAE,OAAO,GAAG,KAAK,GAOxB,EAAE,EAAE;YACH,OAAO,IAAA,gBAAS,EAAC;gBACf,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,cAAc,EAAE,WAAW,CAAC,cAAc;gBAC1C,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,MAAM;gBAClB,MAAM,EAAE,OAAO;gBACf,WAAW,EAAE,IAAA,qCAA0B,EAAC,SAAS,CAAC;gBAClD,aAAa,EAAE,MAAM,IAAA,uCAA4B,EAAC,MAAM,CAAC;gBACzD,SAAS;aACV,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,EAAE;YACJ;;;;eAIG;YACH,SAAS,EAAE,GAAG,EAAE;gBACd,OAAO,IAAA,cAAgB,EAAC;oBACtB,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,cAAc,EAAE,WAAW,CAAC,cAAc;oBAC1C,SAAS;iBACV,CAAC,CAAA;YACJ,CAAC;SACF;KACF,CAAA;AACH,CAAC,CAAA;AAnEY,QAAA,eAAe,mBAmE3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,cAAc,EACf,MAAM,iBAAiB,CAAA;kCAKb,aAAa,WACb,cAAc,aACZ,gBAAgB,KAC1B,QAAQ,cAAc,CAAC;AAJ1B,
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,cAAc,EACf,MAAM,iBAAiB,CAAA;kCAKb,aAAa,WACb,cAAc,aACZ,gBAAgB,KAC1B,QAAQ,cAAc,CAAC;AAJ1B,wBAyEC"}
|
package/lib/commands/upload.js
CHANGED
|
@@ -15,13 +15,8 @@ exports.default = async (details, account, sdkConfig) => {
|
|
|
15
15
|
case 'configurationset':
|
|
16
16
|
await (0, validation_1.validateConfigurationset)(details.file);
|
|
17
17
|
const transpiled = await (0, transpiling_1.transpileConfigurationset)(details.file);
|
|
18
|
-
debug('stepzen:
|
|
19
|
-
|
|
20
|
-
payload = await (0, payloads_1.generateYamlPayload)(transpiled);
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
payload = await (0, payloads_1.generateYamlPayload)(details.file);
|
|
24
|
-
}
|
|
18
|
+
debug('stepzen:sdk')(`effective config written to ${transpiled}`);
|
|
19
|
+
payload = await (0, payloads_1.generateYamlPayload)(transpiled);
|
|
25
20
|
break;
|
|
26
21
|
case 'schema':
|
|
27
22
|
await (0, validation_1.validateSchema)(details.directory);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":";AAAA,8CAA8C;;AAE9C,+BAA8B;AAC9B,2CAA8B;AAE9B,mDAAoD;AACpD,iDAA0E;AAC1E,+CAAmD;AAOnD,uDAA+D;AAC/D,qDAA6E;AAE7E,kBAAe,KAAK,EAClB,OAAsB,EACtB,OAAuB,EACvB,SAA2B,EACF,EAAE;IAC3B,MAAM,OAAO,GAAG,IAAA,2BAAiB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACrD,IAAI,OAAO,CAAA;IAEX,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,kBAAkB;YACrB,MAAM,IAAA,qCAAwB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC5C,MAAM,UAAU,GAAG,MAAM,IAAA,uCAAyB,EAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":";AAAA,8CAA8C;;AAE9C,+BAA8B;AAC9B,2CAA8B;AAE9B,mDAAoD;AACpD,iDAA0E;AAC1E,+CAAmD;AAOnD,uDAA+D;AAC/D,qDAA6E;AAE7E,kBAAe,KAAK,EAClB,OAAsB,EACtB,OAAuB,EACvB,SAA2B,EACF,EAAE;IAC3B,MAAM,OAAO,GAAG,IAAA,2BAAiB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACrD,IAAI,OAAO,CAAA;IAEX,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,kBAAkB;YACrB,MAAM,IAAA,qCAAwB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC5C,MAAM,UAAU,GAAG,MAAM,IAAA,uCAAyB,EAAC,OAAO,CAAC,IAAK,CAAC,CAAA;YACjE,KAAK,CAAC,aAAa,CAAC,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAA;YACjE,OAAO,GAAG,MAAM,IAAA,8BAAmB,EAAC,UAAU,CAAC,CAAA;YAC/C,MAAK;QAEP,KAAK,QAAQ;YACX,MAAM,IAAA,2BAAc,EAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACvC,OAAO,GAAG,MAAM,IAAA,6BAAkB,EAChC,OAAO,CAAC,SAAS,EACjB;gBACE,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,YAAY,EAAE,eAAe;aAC9B,EACD,CAAC,eAAe,CAAC,CAClB,CAAA;YACD,MAAK;KACR;IAED,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAA;IACjC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAA;IAEjC,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAC1B,GAAG,OAAO,CAAC,MAAM,GAAG,4BAAgB,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,EAC7E;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,OAAc;QACvB,MAAM,EAAE,MAAM;KACf,CACF,CAAA;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,CAAA;IAEnC,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;QACnD,OAAO;YACL,OAAO,EACL,uFAAuF;YACzF,OAAO,EAAE,KAAK;SACf,CAAA;KACF;IAED,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;QAC1B,OAAO;YACL,MAAM,EAAE,CAAC,uBAAuB,CAAC;YACjC,OAAO,EAAE,QAAQ,CAAC,UAAU;YAC5B,OAAO,EAAE,KAAK;SACf,CAAA;KACF;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAClC,IAAI,IAAI,CAAA;IAER,IAAI;QACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;KACxB;IAAC,MAAM;QACN,OAAO;YACL,MAAM,EAAE,CAAC,oCAAoC,IAAI,EAAE,CAAC;YACpD,OAAO,EAAE,oCAAoC,IAAI,EAAE;YACnD,OAAO,EAAE,KAAK;SACf,CAAA;KACF;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -21,7 +21,7 @@ exports.default = async ({ account, adminKey, deploymentType, sdkConfig, }) => {
|
|
|
21
21
|
account: account_name
|
|
22
22
|
ownerEmail: account_owner_email
|
|
23
23
|
adminKey: key_value_admin
|
|
24
|
-
apiKeysAsJsonArray:
|
|
24
|
+
apiKeysAsJsonArray: key_value_api
|
|
25
25
|
}
|
|
26
26
|
}`,
|
|
27
27
|
variables: {
|
|
@@ -7,7 +7,7 @@ declare const _default: ({ account, deploymentType, folderName, endpointName, pu
|
|
|
7
7
|
public: boolean;
|
|
8
8
|
endpointType: string;
|
|
9
9
|
schemaFiles: Readonly<SchemaFiles>;
|
|
10
|
-
configuration
|
|
10
|
+
configuration: Readonly<Configuration> | null;
|
|
11
11
|
adminKey: string;
|
|
12
12
|
sdkConfig: SDKConfigurationV2;
|
|
13
13
|
}) => Promise<ZenCtlResponseV2<StepZenEndpointV2>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands-v2/deploy.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;;aAeb,MAAM;oBACC,MAAM;gBACV,MAAM;kBACJ,MAAM;YACZ,OAAO;kBACD,MAAM;iBACP,SAAS,WAAW,CAAC
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands-v2/deploy.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;;aAeb,MAAM;oBACC,MAAM;gBACV,MAAM;kBACJ,MAAM;YACZ,OAAO;kBACD,MAAM;iBACP,SAAS,WAAW,CAAC;mBACnB,SAAS,aAAa,CAAC,GAAG,IAAI;cACnC,MAAM;eACL,kBAAkB;MAC3B,QAAQ,iBAAiB,iBAAiB,CAAC,CAAC;AAtBhD,wBAqIC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands-v2/deploy.ts"],"names":[],"mappings":";AAAA,8CAA8C;;AAS9C,6DAAgE;AAEhE,kBAAe,KAAK,EAAE,EACpB,OAAO,EACP,cAAc,EACd,UAAU,EACV,YAAY,EACZ,MAAM,EAAE,OAAO,EACf,YAAY,EACZ,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,GAYV,EAAgD,EAAE;IACjD,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,GAAG,MAAM,IAAA,wCAAuB,EASjD;QACD,OAAO;QACP,QAAQ;QACR,cAAc;QACd,KAAK,EAAE,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+BpB;QACD,SAAS,EAAE;YACT,OAAO;YACP,cAAc;YACd,UAAU;YACV,YAAY;YACZ,MAAM,EAAE,OAAO;YACf,YAAY;YACZ,WAAW;YACX,aAAa
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands-v2/deploy.ts"],"names":[],"mappings":";AAAA,8CAA8C;;AAS9C,6DAAgE;AAEhE,kBAAe,KAAK,EAAE,EACpB,OAAO,EACP,cAAc,EACd,UAAU,EACV,YAAY,EACZ,MAAM,EAAE,OAAO,EACf,YAAY,EACZ,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,GAYV,EAAgD,EAAE;IACjD,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,GAAG,MAAM,IAAA,wCAAuB,EASjD;QACD,OAAO;QACP,QAAQ;QACR,cAAc;QACd,KAAK,EAAE,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+BpB;QACD,SAAS,EAAE;YACT,OAAO;YACP,cAAc;YACd,UAAU;YACV,YAAY;YACZ,MAAM,EAAE,OAAO;YACf,YAAY;YACZ,WAAW;YACX,aAAa;YACb,QAAQ;SACT;QACD,SAAS;KACV,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,+DAA+D;QAC/D,MAAM,OAAO,GAAG,MAAM;aACnB,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE;YACjB,IACE,OAAO,CAAC,UAAU,CAChB,4DAA4D,CAC7D,EACD;gBACA,OAAO,CACL,4BAA4B,cAAc,GAAG;oBAC7C,+CAA+C,CAChD,CAAA;aACF;YAED,IACE,OAAO,CAAC,UAAU,CAChB,0DAA0D,CAC3D,EACD;gBACA,OAAO,CACL,0BAA0B,YAAY,GAAG;oBACzC,6CAA6C,CAC9C,CAAA;aACF;YAED,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAA;QAEb,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE;gBACL,OAAO;aACR;SACF,CAAA;KACF;IAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;QAC1B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE;gBACL,OAAO,EAAE,qBAAqB;aAC/B;SACF,CAAA;KACF;IAED,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACvB,KAAK,EAAE,SAAS;KACjB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SDKConfigurationV2, ZenCtlResponseV2 } from '../shared/types';
|
|
2
|
+
declare const _default: ({ account, deploymentType, adminKey, sdkConfig, }: {
|
|
3
|
+
account: string;
|
|
4
|
+
deploymentType: string;
|
|
5
|
+
adminKey: string;
|
|
6
|
+
sdkConfig: SDKConfigurationV2;
|
|
7
|
+
}) => Promise<ZenCtlResponseV2<Array<{
|
|
8
|
+
folderName: string;
|
|
9
|
+
endpointName: string;
|
|
10
|
+
}>>>;
|
|
11
|
+
export default _default;
|
|
12
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands-v2/list.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,kBAAkB,EAAE,gBAAgB,EAAC,MAAM,iBAAiB,CAAA;;aASzD,MAAM;oBACC,MAAM;cACZ,MAAM;eACL,kBAAkB;MAC3B,QACF,iBACE,MAAM;IACJ,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAC,CACH,CACF;AAjBD,wBAqFC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) 2020,2021,2022, StepZen, Inc.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const graphql_client_1 = require("../shared/graphql-client");
|
|
5
|
+
exports.default = async ({ account, deploymentType, adminKey, sdkConfig, }) => {
|
|
6
|
+
const { data, errors } = await (0, graphql_client_1.fetchZenCtlGraphQLQuery)({
|
|
7
|
+
account,
|
|
8
|
+
adminKey,
|
|
9
|
+
deploymentType,
|
|
10
|
+
query: /* GraphQL */ `
|
|
11
|
+
query ($account: String!, $deploymentType: String!, $adminKey: String!) {
|
|
12
|
+
endpoints: endpointsForAccount(
|
|
13
|
+
account: $account
|
|
14
|
+
deploymentType: $deploymentType
|
|
15
|
+
adminkey: $adminKey
|
|
16
|
+
) {
|
|
17
|
+
endpointName: endpoint_name
|
|
18
|
+
folderName: folder_name
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
`,
|
|
22
|
+
variables: {
|
|
23
|
+
account,
|
|
24
|
+
deploymentType,
|
|
25
|
+
adminKey,
|
|
26
|
+
},
|
|
27
|
+
sdkConfig,
|
|
28
|
+
});
|
|
29
|
+
if (errors) {
|
|
30
|
+
// strip graphql-specific error details, leave only the message
|
|
31
|
+
const message = errors
|
|
32
|
+
.map(({ message }) => {
|
|
33
|
+
if (message.startsWith('ERROR: invalid input value for enum zenctl.deployment_type')) {
|
|
34
|
+
return (`Invalid deployment type: ${deploymentType}.` +
|
|
35
|
+
` Please check the 'deploymentType' parameter.`);
|
|
36
|
+
}
|
|
37
|
+
return message;
|
|
38
|
+
})
|
|
39
|
+
.join('\n');
|
|
40
|
+
return {
|
|
41
|
+
data: undefined,
|
|
42
|
+
error: {
|
|
43
|
+
message,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// The case with data.endpoints === [] is ambiguous.
|
|
48
|
+
// It may mean "invalid credentials" and it may mean "no endpoints".
|
|
49
|
+
// At this point it makes more sense to assume "no endpoints" since
|
|
50
|
+
// the "invalid credentials" error would be detected earlier, when
|
|
51
|
+
// creating an SDK client instance.
|
|
52
|
+
// See https://github.com/steprz/zen/issues/6361
|
|
53
|
+
return {
|
|
54
|
+
data: data.endpoints,
|
|
55
|
+
error: undefined,
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands-v2/list.ts"],"names":[],"mappings":";AAAA,8CAA8C;;AAG9C,6DAAgE;AAEhE,kBAAe,KAAK,EAAE,EACpB,OAAO,EACP,cAAc,EACd,QAAQ,EACR,SAAS,GAMV,EAOC,EAAE;IACF,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,GAAG,MAAM,IAAA,wCAAuB,EAKjD;QACD,OAAO;QACP,QAAQ;QACR,cAAc;QACd,KAAK,EAAE,aAAa,CAAC;;;;;;;;;;;KAWpB;QACD,SAAS,EAAE;YACT,OAAO;YACP,cAAc;YACd,QAAQ;SACT;QACD,SAAS;KACV,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,+DAA+D;QAC/D,MAAM,OAAO,GAAG,MAAM;aACnB,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE;YACjB,IACE,OAAO,CAAC,UAAU,CAChB,4DAA4D,CAC7D,EACD;gBACA,OAAO,CACL,4BAA4B,cAAc,GAAG;oBAC7C,+CAA+C,CAChD,CAAA;aACF;YAED,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAA;QAEb,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE;gBACL,OAAO;aACR;SACF,CAAA;KACF;IAED,oDAAoD;IACpD,oEAAoE;IACpE,mEAAmE;IACnE,kEAAkE;IAClE,mCAAmC;IACnC,gDAAgD;IAEhD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,SAAS;QACpB,KAAK,EAAE,SAAS;KACjB,CAAA;AACH,CAAC,CAAA"}
|
package/lib/init-v2.d.ts
CHANGED
|
@@ -17,6 +17,12 @@ export declare const initV2: (sdkConfig: SDKConfigurationV2) => {
|
|
|
17
17
|
config?: string | undefined;
|
|
18
18
|
public?: boolean | undefined;
|
|
19
19
|
}) => Promise<import("./shared/types").ZenCtlResponseV2<import("./shared/types").StepZenEndpointV2>>;
|
|
20
|
+
list: {
|
|
21
|
+
endpoints: () => Promise<import("./shared/types").ZenCtlResponseV2<{
|
|
22
|
+
folderName: string;
|
|
23
|
+
endpointName: string;
|
|
24
|
+
}[]>>;
|
|
25
|
+
};
|
|
20
26
|
}>;
|
|
21
27
|
};
|
|
22
28
|
declare type PromisedType<T> = T extends Promise<infer U> ? U : T;
|
package/lib/init-v2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-v2.d.ts","sourceRoot":"","sources":["../src/init-v2.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAA;AAEjD,eAAO,MAAM,MAAM,cAAe,kBAAkB;sBAGrC,MAAM,YACL,MAAM,kBACA,MAAM;mBAgBlB;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAC,GAC3D;QAAC,kBAAkB,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAC
|
|
1
|
+
{"version":3,"file":"init-v2.d.ts","sourceRoot":"","sources":["../src/init-v2.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAA;AAEjD,eAAO,MAAM,MAAM,cAAe,kBAAkB;sBAGrC,MAAM,YACL,MAAM,kBACA,MAAM;mBAgBlB;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAC,GAC3D;QAAC,kBAAkB,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAC;;;;;;;;;;;;;;;;CAK7D,CAAA;AAGD,aAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEzD,oBAAY,KAAK,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;AAC7C,oBAAY,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA"}
|
package/lib/shared/payloads.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ declare type ZipPayload = FormData;
|
|
|
5
5
|
export declare const generateYamlPayload: (file: string | undefined) => Promise<YamlPayload>;
|
|
6
6
|
export declare const generateZipPayload: (directory: string | undefined, data: object | undefined, filters: RegExp[]) => Promise<ZipPayload>;
|
|
7
7
|
export declare const generateSchemaFilesPayload: (workspaceFolderPath: string) => SchemaFiles;
|
|
8
|
-
export declare const generateConfigurationPayload: (configFilePath?: string) => Configuration |
|
|
8
|
+
export declare const generateConfigurationPayload: (configFilePath?: string) => Promise<Configuration | null>;
|
|
9
9
|
export {};
|
|
10
10
|
//# sourceMappingURL=payloads.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payloads.d.ts","sourceRoot":"","sources":["../../src/shared/payloads.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"payloads.d.ts","sourceRoot":"","sources":["../../src/shared/payloads.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAA;AAQrC,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AAElD,aAAK,WAAW,GAAG,QAAQ,CAAA;AAC3B,aAAK,UAAU,GAAG,QAAQ,CAAA;AAI1B,eAAO,MAAM,mBAAmB,SACxB,MAAM,GAAG,SAAS,KACvB,QAAQ,WAAW,CAgBrB,CAAA;AAKD,eAAO,MAAM,kBAAkB,cAClB,MAAM,GAAG,SAAS,QACvB,MAAM,GAAG,SAAS,WACf,MAAM,EAAE,KAChB,QAAQ,UAAU,CA4DpB,CAAA;AAED,eAAO,MAAM,0BAA0B,wBAChB,MAAM,KAC1B,WA0BF,CAAA;AAED,eAAO,MAAM,4BAA4B,oBACtB,MAAM,KACtB,QAAQ,aAAa,GAAG,IAAI,CAU9B,CAAA"}
|
package/lib/shared/payloads.js
CHANGED
|
@@ -11,6 +11,8 @@ const glob = require("glob");
|
|
|
11
11
|
const os = require("os");
|
|
12
12
|
const path = require("path");
|
|
13
13
|
const yaml = require("yaml");
|
|
14
|
+
const transpiling_1 = require("./transpiling");
|
|
15
|
+
const validation_1 = require("./validation");
|
|
14
16
|
// This function takes a (yaml) file path
|
|
15
17
|
// and creates a FormData payload, containing the yaml content as 'yaml'
|
|
16
18
|
const generateYamlPayload = async (file) => {
|
|
@@ -21,7 +23,7 @@ const generateYamlPayload = async (file) => {
|
|
|
21
23
|
reject(new Error(`File does not exist: ${file}`));
|
|
22
24
|
}
|
|
23
25
|
const content = fs.readFileSync(file, 'utf8');
|
|
24
|
-
debug('stepzen:
|
|
26
|
+
debug('stepzen:sdk:payload')(`adding YAML payload\n${content}`);
|
|
25
27
|
payload.append('yaml', fs.readFileSync(file));
|
|
26
28
|
resolve(payload);
|
|
27
29
|
}
|
|
@@ -107,26 +109,15 @@ const generateSchemaFilesPayload = (workspaceFolderPath) => {
|
|
|
107
109
|
};
|
|
108
110
|
};
|
|
109
111
|
exports.generateSchemaFilesPayload = generateSchemaFilesPayload;
|
|
110
|
-
const generateConfigurationPayload = (configFilePath) => {
|
|
112
|
+
const generateConfigurationPayload = async (configFilePath) => {
|
|
111
113
|
if (!configFilePath) {
|
|
112
|
-
return;
|
|
114
|
+
return null;
|
|
113
115
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
const content = fs.readFileSync(
|
|
118
|
-
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
let config;
|
|
122
|
-
try {
|
|
123
|
-
config = yaml.parse(content, { schema: 'failsafe' });
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
throw new Error(`Failed to parse file as YAML (${configFilePath}). ${error}`);
|
|
127
|
-
}
|
|
128
|
-
// strip away any non-recognized properties
|
|
129
|
-
return Object.fromEntries(Object.entries(config).filter(([key, _value]) => ['configurationset', 'ruleset', 'access', 'deployment'].includes(key)));
|
|
116
|
+
await (0, validation_1.validateConfigurationset)(configFilePath);
|
|
117
|
+
const transpiled = await (0, transpiling_1.transpileConfigurationset)(configFilePath);
|
|
118
|
+
debug('stepzen:sdk')(`effective config written to ${transpiled}`);
|
|
119
|
+
const content = fs.readFileSync(transpiled, 'utf-8');
|
|
120
|
+
return yaml.parse(content, { schema: 'failsafe' }) || null;
|
|
130
121
|
};
|
|
131
122
|
exports.generateConfigurationPayload = generateConfigurationPayload;
|
|
132
123
|
//# sourceMappingURL=payloads.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payloads.js","sourceRoot":"","sources":["../../src/shared/payloads.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C,0DAA0D;AAE1D,qCAAoC;AACpC,+BAA8B;AAC9B,sCAAqC;AACrC,yBAAwB;AACxB,6BAA4B;AAC5B,yBAAwB;AACxB,6BAA4B;AAC5B,6BAA4B;
|
|
1
|
+
{"version":3,"file":"payloads.js","sourceRoot":"","sources":["../../src/shared/payloads.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @returns `undefined` when called without arguments
|
|
3
|
+
*/
|
|
4
|
+
export declare function transpileConfigurationset(): Promise<undefined>;
|
|
5
|
+
/**
|
|
6
|
+
* Strip off any unsupported properties and substitute any STEPZEN_*
|
|
7
|
+
* placeholders with matching environment variables (load a `.env` file
|
|
8
|
+
* if present next to the `config.yaml` file).
|
|
9
|
+
*
|
|
10
|
+
* @param file path to a `config.yaml` file
|
|
11
|
+
* @returns path to a temp copy of `config.yaml` file with all clean-up
|
|
12
|
+
* and substitutions made
|
|
13
|
+
*/
|
|
14
|
+
export declare function transpileConfigurationset(file: string): Promise<string>;
|
|
2
15
|
//# sourceMappingURL=transpiling.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transpiling.d.ts","sourceRoot":"","sources":["../../src/shared/transpiling.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transpiling.d.ts","sourceRoot":"","sources":["../../src/shared/transpiling.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,SAAS,CAAC,CAAA;AAErE;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA"}
|
|
@@ -3,28 +3,27 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.transpileConfigurationset = void 0;
|
|
5
5
|
const dotenv = require("dotenv");
|
|
6
|
+
const debug = require("debug");
|
|
6
7
|
const fs = require("fs-extra");
|
|
7
8
|
const os = require("os");
|
|
8
9
|
const path = require("path");
|
|
9
10
|
const transpiler_1 = require("@stepzen/transpiler");
|
|
10
|
-
|
|
11
|
+
async function transpileConfigurationset(file) {
|
|
11
12
|
if (!file) {
|
|
12
13
|
return;
|
|
13
14
|
}
|
|
14
15
|
const source = file.substring(0, file.lastIndexOf('/'));
|
|
16
|
+
debug('stepzen:dotenv')(`loading .env from ${path.resolve(source)}` +
|
|
17
|
+
`, at sdk/src/shared/transpiling.ts`);
|
|
15
18
|
dotenv.config({ path: path.resolve(source, '.env') });
|
|
16
19
|
const tmp = path.join(os.tmpdir(), `stepzen-transpiler-${Date.now()}`);
|
|
17
20
|
const configPath = path.join(tmp, 'config.yaml');
|
|
18
21
|
fs.ensureDirSync(tmp);
|
|
19
22
|
fs.copyFileSync(file, configPath);
|
|
20
23
|
const result = await (0, transpiler_1.transpile)(tmp);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
fs.removeSync(tmp);
|
|
27
|
-
return;
|
|
28
|
-
};
|
|
24
|
+
fs.emptyDirSync(tmp);
|
|
25
|
+
fs.writeFileSync(configPath, result.config || '');
|
|
26
|
+
return configPath;
|
|
27
|
+
}
|
|
29
28
|
exports.transpileConfigurationset = transpileConfigurationset;
|
|
30
29
|
//# sourceMappingURL=transpiling.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transpiling.js","sourceRoot":"","sources":["../../src/shared/transpiling.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C,iCAAgC;AAChC,+BAA8B;AAC9B,yBAAwB;AACxB,6BAA4B;AAC5B,oDAA6C;
|
|
1
|
+
{"version":3,"file":"transpiling.js","sourceRoot":"","sources":["../../src/shared/transpiling.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C,iCAAgC;AAChC,+BAA8B;AAC9B,+BAA8B;AAC9B,yBAAwB;AACxB,6BAA4B;AAC5B,oDAA6C;AAkBtC,KAAK,UAAU,yBAAyB,CAAC,IAAa;IAC3D,IAAI,CAAC,IAAI,EAAE;QACT,OAAM;KACP;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,KAAK,CAAC,gBAAgB,CAAC,CACrB,qBAAqB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzC,oCAAoC,CACvC,CAAA;IACD,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAC,CAAC,CAAA;IAEnD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACtE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;IAEhD,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IACrB,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAEjC,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAS,EAAC,GAAG,CAAC,CAAA;IAEnC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IACpB,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IACjD,OAAO,UAAU,CAAA;AACnB,CAAC;AAvBD,8DAuBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,wBAAwB,SAAgB,MAAM,GAAG,SAAS,kBA0BtE,CAAA;AAGD,eAAO,MAAM,cAAc,cAAqB,MAAM,GAAG,SAAS,kBAcjE,CAAA"}
|
package/lib/shared/validation.js
CHANGED
|
@@ -2,15 +2,19 @@
|
|
|
2
2
|
// Copyright (c) 2020,2021,2022, StepZen, Inc.
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.validateSchema = exports.validateConfigurationset = void 0;
|
|
5
|
+
const debug = require("debug");
|
|
5
6
|
const fs = require("fs");
|
|
6
7
|
const glob = require("glob");
|
|
7
8
|
const yaml = require("yaml");
|
|
8
9
|
// Validate the Configurationset file
|
|
9
10
|
const validateConfigurationset = async (file) => {
|
|
10
11
|
if (!file) {
|
|
12
|
+
debug('stepzen:sdk')(`validateConfigurationset() expected 'file' to be a` +
|
|
13
|
+
` non-empty string but got ${file}`);
|
|
11
14
|
throw new Error('You must provide a file path');
|
|
12
15
|
}
|
|
13
16
|
if (!fs.existsSync(file)) {
|
|
17
|
+
debug('stepzen:sdk')(`validateConfigurationset() expected ${file} to exist`);
|
|
14
18
|
throw new Error('The file does not exist');
|
|
15
19
|
}
|
|
16
20
|
const content = fs.readFileSync(file, 'utf8');
|
|
@@ -18,7 +22,9 @@ const validateConfigurationset = async (file) => {
|
|
|
18
22
|
try {
|
|
19
23
|
yaml.parse(content);
|
|
20
24
|
}
|
|
21
|
-
catch {
|
|
25
|
+
catch (error) {
|
|
26
|
+
debug('stepzen:sdk')(`validateConfigurationset() expected ${file} to parse as YAML,` +
|
|
27
|
+
` but got an error ${error}`);
|
|
22
28
|
throw new Error('The file is not valid YAML');
|
|
23
29
|
}
|
|
24
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C,yBAAwB;AACxB,6BAA4B;AAC5B,6BAA4B;AAE5B,qCAAqC;AAC9B,MAAM,wBAAwB,GAAG,KAAK,EAAE,IAAwB,EAAE,EAAE;IACzE,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;KAChD;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;KAC3C;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAE7C,gCAAgC;IAChC,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;KACpB;IAAC,
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C,+BAA8B;AAC9B,yBAAwB;AACxB,6BAA4B;AAC5B,6BAA4B;AAE5B,qCAAqC;AAC9B,MAAM,wBAAwB,GAAG,KAAK,EAAE,IAAwB,EAAE,EAAE;IACzE,IAAI,CAAC,IAAI,EAAE;QACT,KAAK,CAAC,aAAa,CAAC,CAClB,oDAAoD;YAClD,6BAA6B,IAAI,EAAE,CACtC,CAAA;QACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;KAChD;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACxB,KAAK,CAAC,aAAa,CAAC,CAAC,uCAAuC,IAAI,WAAW,CAAC,CAAA;QAC5E,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;KAC3C;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAE7C,gCAAgC;IAChC,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;KACpB;IAAC,OAAO,KAAK,EAAE;QACd,KAAK,CAAC,aAAa,CAAC,CAClB,uCAAuC,IAAI,oBAAoB;YAC7D,qBAAqB,KAAK,EAAE,CAC/B,CAAA;QACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;KAC9C;AACH,CAAC,CAAA;AA1BY,QAAA,wBAAwB,4BA0BpC;AAED,gCAAgC;AACzB,MAAM,cAAc,GAAG,KAAK,EAAE,SAA6B,EAAE,EAAE;IACpE,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;KACrD;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;KAChD;IAED,6CAA6C;IAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAC,GAAG,EAAE,SAAS,EAAC,CAAC,CAAA;IACnE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;KAChE;AACH,CAAC,CAAA;AAdY,QAAA,cAAc,kBAc1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stepzen/sdk",
|
|
3
|
-
"version": "0.21.0-beta.
|
|
3
|
+
"version": "0.21.0-beta.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Darren Waddell <darren@stepzen.com>",
|
|
6
6
|
"homepage": "https://stepzen.com",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"posttest": "prettier . --check"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@stepzen/transpiler": "^0.21.0-beta.
|
|
25
|
+
"@stepzen/transpiler": "^0.21.0-beta.2",
|
|
26
26
|
"archiver": "^5.3.0",
|
|
27
27
|
"debug": "^4.3.4",
|
|
28
28
|
"dotenv": "^16.0.1",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"prettier": "^2.5.1",
|
|
50
50
|
"ts-node": "^10.8.2"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "58b85cc37fa990639bf7170d4224cf51cc1f7ad1"
|
|
53
53
|
}
|
package/src/client-v2.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import accountCmd from './commands-v2/account'
|
|
4
4
|
import deployCmd from './commands-v2/deploy'
|
|
5
|
+
import listEndpointsCmd from './commands-v2/list'
|
|
5
6
|
import getPublicAccount from './commands-v2/getPublicAccount'
|
|
6
7
|
import {
|
|
7
8
|
generateConfigurationPayload,
|
|
@@ -74,7 +75,7 @@ export const createSdkClient = async (
|
|
|
74
75
|
* @param public - whether or not to allow public access to the endpoint (`false` by default)
|
|
75
76
|
* @returns details of the created / updated endpoint
|
|
76
77
|
*/
|
|
77
|
-
deploy: ({
|
|
78
|
+
deploy: async ({
|
|
78
79
|
folder,
|
|
79
80
|
name,
|
|
80
81
|
directory,
|
|
@@ -96,9 +97,24 @@ export const createSdkClient = async (
|
|
|
96
97
|
folderName: folder,
|
|
97
98
|
public: _public,
|
|
98
99
|
schemaFiles: generateSchemaFilesPayload(directory),
|
|
99
|
-
configuration: generateConfigurationPayload(config),
|
|
100
|
+
configuration: await generateConfigurationPayload(config),
|
|
100
101
|
sdkConfig,
|
|
101
102
|
})
|
|
102
103
|
},
|
|
104
|
+
list: {
|
|
105
|
+
/**
|
|
106
|
+
* List deployed endpoints.
|
|
107
|
+
*
|
|
108
|
+
* @returns list of deployed endpoints
|
|
109
|
+
*/
|
|
110
|
+
endpoints: () => {
|
|
111
|
+
return listEndpointsCmd({
|
|
112
|
+
account: credentials.account,
|
|
113
|
+
adminKey: credentials.adminKey,
|
|
114
|
+
deploymentType: credentials.deploymentType,
|
|
115
|
+
sdkConfig,
|
|
116
|
+
})
|
|
117
|
+
},
|
|
118
|
+
},
|
|
103
119
|
}
|
|
104
120
|
}
|
package/src/commands/upload.ts
CHANGED
|
@@ -26,13 +26,9 @@ export default async (
|
|
|
26
26
|
switch (details.type) {
|
|
27
27
|
case 'configurationset':
|
|
28
28
|
await validateConfigurationset(details.file)
|
|
29
|
-
const transpiled = await transpileConfigurationset(details.file)
|
|
30
|
-
debug('stepzen:
|
|
31
|
-
|
|
32
|
-
payload = await generateYamlPayload(transpiled)
|
|
33
|
-
} else {
|
|
34
|
-
payload = await generateYamlPayload(details.file)
|
|
35
|
-
}
|
|
29
|
+
const transpiled = await transpileConfigurationset(details.file!)
|
|
30
|
+
debug('stepzen:sdk')(`effective config written to ${transpiled}`)
|
|
31
|
+
payload = await generateYamlPayload(transpiled)
|
|
36
32
|
break
|
|
37
33
|
|
|
38
34
|
case 'schema':
|
|
@@ -28,7 +28,7 @@ export default async ({
|
|
|
28
28
|
public: boolean
|
|
29
29
|
endpointType: string
|
|
30
30
|
schemaFiles: Readonly<SchemaFiles>
|
|
31
|
-
configuration
|
|
31
|
+
configuration: Readonly<Configuration> | null
|
|
32
32
|
adminKey: string
|
|
33
33
|
sdkConfig: SDKConfigurationV2
|
|
34
34
|
}): Promise<ZenCtlResponseV2<StepZenEndpointV2>> => {
|
|
@@ -85,7 +85,7 @@ export default async ({
|
|
|
85
85
|
public: _public,
|
|
86
86
|
endpointType,
|
|
87
87
|
schemaFiles,
|
|
88
|
-
configuration
|
|
88
|
+
configuration,
|
|
89
89
|
adminKey,
|
|
90
90
|
},
|
|
91
91
|
sdkConfig,
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// Copyright (c) 2020,2021,2022, StepZen, Inc.
|
|
2
|
+
|
|
3
|
+
import {SDKConfigurationV2, ZenCtlResponseV2} from '../shared/types'
|
|
4
|
+
import {fetchZenCtlGraphQLQuery} from '../shared/graphql-client'
|
|
5
|
+
|
|
6
|
+
export default async ({
|
|
7
|
+
account,
|
|
8
|
+
deploymentType,
|
|
9
|
+
adminKey,
|
|
10
|
+
sdkConfig,
|
|
11
|
+
}: {
|
|
12
|
+
account: string
|
|
13
|
+
deploymentType: string
|
|
14
|
+
adminKey: string
|
|
15
|
+
sdkConfig: SDKConfigurationV2
|
|
16
|
+
}): Promise<
|
|
17
|
+
ZenCtlResponseV2<
|
|
18
|
+
Array<{
|
|
19
|
+
folderName: string
|
|
20
|
+
endpointName: string
|
|
21
|
+
}>
|
|
22
|
+
>
|
|
23
|
+
> => {
|
|
24
|
+
const {data, errors} = await fetchZenCtlGraphQLQuery<{
|
|
25
|
+
endpoints: Array<{
|
|
26
|
+
folderName: string
|
|
27
|
+
endpointName: string
|
|
28
|
+
}>
|
|
29
|
+
}>({
|
|
30
|
+
account,
|
|
31
|
+
adminKey,
|
|
32
|
+
deploymentType,
|
|
33
|
+
query: /* GraphQL */ `
|
|
34
|
+
query ($account: String!, $deploymentType: String!, $adminKey: String!) {
|
|
35
|
+
endpoints: endpointsForAccount(
|
|
36
|
+
account: $account
|
|
37
|
+
deploymentType: $deploymentType
|
|
38
|
+
adminkey: $adminKey
|
|
39
|
+
) {
|
|
40
|
+
endpointName: endpoint_name
|
|
41
|
+
folderName: folder_name
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
`,
|
|
45
|
+
variables: {
|
|
46
|
+
account,
|
|
47
|
+
deploymentType,
|
|
48
|
+
adminKey,
|
|
49
|
+
},
|
|
50
|
+
sdkConfig,
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
if (errors) {
|
|
54
|
+
// strip graphql-specific error details, leave only the message
|
|
55
|
+
const message = errors
|
|
56
|
+
.map(({message}) => {
|
|
57
|
+
if (
|
|
58
|
+
message.startsWith(
|
|
59
|
+
'ERROR: invalid input value for enum zenctl.deployment_type',
|
|
60
|
+
)
|
|
61
|
+
) {
|
|
62
|
+
return (
|
|
63
|
+
`Invalid deployment type: ${deploymentType}.` +
|
|
64
|
+
` Please check the 'deploymentType' parameter.`
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return message
|
|
69
|
+
})
|
|
70
|
+
.join('\n')
|
|
71
|
+
|
|
72
|
+
return {
|
|
73
|
+
data: undefined,
|
|
74
|
+
error: {
|
|
75
|
+
message,
|
|
76
|
+
},
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// The case with data.endpoints === [] is ambiguous.
|
|
81
|
+
// It may mean "invalid credentials" and it may mean "no endpoints".
|
|
82
|
+
// At this point it makes more sense to assume "no endpoints" since
|
|
83
|
+
// the "invalid credentials" error would be detected earlier, when
|
|
84
|
+
// creating an SDK client instance.
|
|
85
|
+
// See https://github.com/steprz/zen/issues/6361
|
|
86
|
+
|
|
87
|
+
return {
|
|
88
|
+
data: data.endpoints,
|
|
89
|
+
error: undefined,
|
|
90
|
+
}
|
|
91
|
+
}
|
package/src/shared/payloads.ts
CHANGED
|
@@ -10,6 +10,8 @@ import * as glob from 'glob'
|
|
|
10
10
|
import * as os from 'os'
|
|
11
11
|
import * as path from 'path'
|
|
12
12
|
import * as yaml from 'yaml'
|
|
13
|
+
import {transpileConfigurationset} from './transpiling'
|
|
14
|
+
import {validateConfigurationset} from './validation'
|
|
13
15
|
import {Configuration, SchemaFiles} from './types'
|
|
14
16
|
|
|
15
17
|
type YamlPayload = FormData
|
|
@@ -28,7 +30,7 @@ export const generateYamlPayload = async (
|
|
|
28
30
|
reject(new Error(`File does not exist: ${file}`))
|
|
29
31
|
}
|
|
30
32
|
const content = fs.readFileSync(file, 'utf8')
|
|
31
|
-
debug('stepzen:
|
|
33
|
+
debug('stepzen:sdk:payload')(`adding YAML payload\n${content}`)
|
|
32
34
|
payload.append('yaml', fs.readFileSync(file))
|
|
33
35
|
resolve(payload)
|
|
34
36
|
} else {
|
|
@@ -136,35 +138,16 @@ export const generateSchemaFilesPayload = (
|
|
|
136
138
|
}
|
|
137
139
|
}
|
|
138
140
|
|
|
139
|
-
export const generateConfigurationPayload = (
|
|
141
|
+
export const generateConfigurationPayload = async (
|
|
140
142
|
configFilePath?: string,
|
|
141
|
-
): Configuration |
|
|
143
|
+
): Promise<Configuration | null> => {
|
|
142
144
|
if (!configFilePath) {
|
|
143
|
-
return
|
|
145
|
+
return null
|
|
144
146
|
}
|
|
145
147
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
if (!content) {
|
|
152
|
-
return
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
let config
|
|
156
|
-
try {
|
|
157
|
-
config = yaml.parse(content, {schema: 'failsafe'})
|
|
158
|
-
} catch (error) {
|
|
159
|
-
throw new Error(
|
|
160
|
-
`Failed to parse file as YAML (${configFilePath}). ${error}`,
|
|
161
|
-
)
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// strip away any non-recognized properties
|
|
165
|
-
return Object.fromEntries(
|
|
166
|
-
Object.entries(config).filter(([key, _value]) =>
|
|
167
|
-
['configurationset', 'ruleset', 'access', 'deployment'].includes(key),
|
|
168
|
-
),
|
|
169
|
-
)
|
|
148
|
+
await validateConfigurationset(configFilePath)
|
|
149
|
+
const transpiled = await transpileConfigurationset(configFilePath)
|
|
150
|
+
debug('stepzen:sdk')(`effective config written to ${transpiled}`)
|
|
151
|
+
const content = fs.readFileSync(transpiled, 'utf-8')
|
|
152
|
+
return yaml.parse(content, {schema: 'failsafe'}) || null
|
|
170
153
|
}
|
|
@@ -1,19 +1,38 @@
|
|
|
1
1
|
// Copyright (c) 2020,2021,2022, StepZen, Inc.
|
|
2
2
|
|
|
3
3
|
import * as dotenv from 'dotenv'
|
|
4
|
+
import * as debug from 'debug'
|
|
4
5
|
import * as fs from 'fs-extra'
|
|
5
6
|
import * as os from 'os'
|
|
6
7
|
import * as path from 'path'
|
|
7
8
|
import {transpile} from '@stepzen/transpiler'
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
/**
|
|
11
|
+
* @returns `undefined` when called without arguments
|
|
12
|
+
*/
|
|
13
|
+
export async function transpileConfigurationset(): Promise<undefined>
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Strip off any unsupported properties and substitute any STEPZEN_*
|
|
17
|
+
* placeholders with matching environment variables (load a `.env` file
|
|
18
|
+
* if present next to the `config.yaml` file).
|
|
19
|
+
*
|
|
20
|
+
* @param file path to a `config.yaml` file
|
|
21
|
+
* @returns path to a temp copy of `config.yaml` file with all clean-up
|
|
22
|
+
* and substitutions made
|
|
23
|
+
*/
|
|
24
|
+
export async function transpileConfigurationset(file: string): Promise<string>
|
|
25
|
+
|
|
26
|
+
export async function transpileConfigurationset(file?: string) {
|
|
12
27
|
if (!file) {
|
|
13
28
|
return
|
|
14
29
|
}
|
|
15
30
|
|
|
16
31
|
const source = file.substring(0, file.lastIndexOf('/'))
|
|
32
|
+
debug('stepzen:dotenv')(
|
|
33
|
+
`loading .env from ${path.resolve(source)}` +
|
|
34
|
+
`, at sdk/src/shared/transpiling.ts`,
|
|
35
|
+
)
|
|
17
36
|
dotenv.config({path: path.resolve(source, '.env')})
|
|
18
37
|
|
|
19
38
|
const tmp = path.join(os.tmpdir(), `stepzen-transpiler-${Date.now()}`)
|
|
@@ -24,12 +43,7 @@ export const transpileConfigurationset = async (
|
|
|
24
43
|
|
|
25
44
|
const result = await transpile(tmp)
|
|
26
45
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return configPath
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
fs.removeSync(tmp)
|
|
34
|
-
return
|
|
46
|
+
fs.emptyDirSync(tmp)
|
|
47
|
+
fs.writeFileSync(configPath, result.config || '')
|
|
48
|
+
return configPath
|
|
35
49
|
}
|
package/src/shared/validation.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Copyright (c) 2020,2021,2022, StepZen, Inc.
|
|
2
2
|
|
|
3
|
+
import * as debug from 'debug'
|
|
3
4
|
import * as fs from 'fs'
|
|
4
5
|
import * as glob from 'glob'
|
|
5
6
|
import * as yaml from 'yaml'
|
|
@@ -7,10 +8,15 @@ import * as yaml from 'yaml'
|
|
|
7
8
|
// Validate the Configurationset file
|
|
8
9
|
export const validateConfigurationset = async (file: string | undefined) => {
|
|
9
10
|
if (!file) {
|
|
11
|
+
debug('stepzen:sdk')(
|
|
12
|
+
`validateConfigurationset() expected 'file' to be a` +
|
|
13
|
+
` non-empty string but got ${file}`,
|
|
14
|
+
)
|
|
10
15
|
throw new Error('You must provide a file path')
|
|
11
16
|
}
|
|
12
17
|
|
|
13
18
|
if (!fs.existsSync(file)) {
|
|
19
|
+
debug('stepzen:sdk')(`validateConfigurationset() expected ${file} to exist`)
|
|
14
20
|
throw new Error('The file does not exist')
|
|
15
21
|
}
|
|
16
22
|
|
|
@@ -19,7 +25,11 @@ export const validateConfigurationset = async (file: string | undefined) => {
|
|
|
19
25
|
// Ensure the file is valid YAML
|
|
20
26
|
try {
|
|
21
27
|
yaml.parse(content)
|
|
22
|
-
} catch {
|
|
28
|
+
} catch (error) {
|
|
29
|
+
debug('stepzen:sdk')(
|
|
30
|
+
`validateConfigurationset() expected ${file} to parse as YAML,` +
|
|
31
|
+
` but got an error ${error}`,
|
|
32
|
+
)
|
|
23
33
|
throw new Error('The file is not valid YAML')
|
|
24
34
|
}
|
|
25
35
|
}
|