@forge/cli-shared 2.2.2 → 2.3.0-next.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/CHANGELOG.md
CHANGED
package/out/apps/template.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export interface TemplateLister {
|
|
|
17
17
|
export interface Templater extends TemplateLister {
|
|
18
18
|
downloadAndExtract(template: string, directory: string): Promise<void>;
|
|
19
19
|
}
|
|
20
|
-
export declare class
|
|
20
|
+
export declare class TemplateServiceDownloader implements TemplateDownloader {
|
|
21
21
|
download(template: string, zipFile: string): Promise<void>;
|
|
22
22
|
private buildZipUrl;
|
|
23
23
|
}
|
|
@@ -30,7 +30,9 @@ export declare class ZipTemplateExtractor implements TemplateExtractor {
|
|
|
30
30
|
export declare class TemplateFetchError extends Error {
|
|
31
31
|
constructor();
|
|
32
32
|
}
|
|
33
|
-
export declare class
|
|
33
|
+
export declare class TemplateServiceLister implements TemplateLister {
|
|
34
|
+
private isValidTemplateMapEntry;
|
|
35
|
+
private isValidTemplatesResponse;
|
|
34
36
|
getAvailableTemplates(): Promise<string[]>;
|
|
35
37
|
}
|
|
36
38
|
export declare class ComposableTemplater implements Templater {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/apps/template.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/apps/template.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAM/B,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,QAAQ,EAAE,MAAM;CAG7B;AAED,qBAAa,2BAA4B,SAAQ,KAAK;CAAG;AAEzD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,cAAc;IAC7B,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAED,qBAAa,yBAA0B,YAAW,kBAAkB;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAevE,OAAO,CAAC,WAAW;CAGpB;AAED,qBAAa,oBAAqB,YAAW,iBAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAExC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAc7D,2BAA2B;CAqB1C;AAED,qBAAa,kBAAmB,SAAQ,KAAK;;CAI5C;AAKD,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,wBAAwB;IAOnB,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAkBxD;AAED,qBAAa,mBAAoB,YAAW,SAAS;IAEjD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM;IAEpB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnF,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAG3C"}
|
package/out/apps/template.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ComposableTemplater = exports.
|
|
3
|
+
exports.ComposableTemplater = exports.TemplateServiceLister = exports.TemplateFetchError = exports.ZipTemplateExtractor = exports.TemplateServiceDownloader = exports.InvalidTemplateArchiveError = exports.NoTemplateError = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
6
6
|
const fs_extra_1 = require("fs-extra");
|
|
7
|
-
const https_1 = require("https");
|
|
8
7
|
const ignore_walk_1 = tslib_1.__importDefault(require("ignore-walk"));
|
|
9
8
|
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
|
10
9
|
const path_1 = require("path");
|
|
11
10
|
const tmp_1 = tslib_1.__importDefault(require("tmp"));
|
|
11
|
+
const url_1 = require("url");
|
|
12
12
|
const ui_1 = require("../ui");
|
|
13
|
-
const
|
|
13
|
+
const TEMPLATE_SERVICE_URL = 'https://forge-templates.us-west-2.prod.public.atl-paas.net/';
|
|
14
|
+
const TEMPLATE_MAP = 'templates.json';
|
|
14
15
|
class NoTemplateError extends Error {
|
|
15
16
|
constructor(template) {
|
|
16
17
|
super(ui_1.Text.create.error.template.notFound(template));
|
|
@@ -20,27 +21,24 @@ exports.NoTemplateError = NoTemplateError;
|
|
|
20
21
|
class InvalidTemplateArchiveError extends Error {
|
|
21
22
|
}
|
|
22
23
|
exports.InvalidTemplateArchiveError = InvalidTemplateArchiveError;
|
|
23
|
-
class
|
|
24
|
+
class TemplateServiceDownloader {
|
|
24
25
|
async download(template, zipFile) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
res.pipe(fileStream);
|
|
34
|
-
});
|
|
35
|
-
downloadRequest.end();
|
|
26
|
+
const zipUrl = this.buildZipUrl(template);
|
|
27
|
+
const fileStream = fs_1.default.createWriteStream(zipFile);
|
|
28
|
+
const response = await node_fetch_1.default(zipUrl);
|
|
29
|
+
if (!response.ok) {
|
|
30
|
+
throw new NoTemplateError(template);
|
|
31
|
+
}
|
|
32
|
+
await new Promise((resolve) => {
|
|
36
33
|
fileStream.on('finish', resolve);
|
|
34
|
+
response.body.pipe(fileStream);
|
|
37
35
|
});
|
|
38
36
|
}
|
|
39
37
|
buildZipUrl(template) {
|
|
40
|
-
return
|
|
38
|
+
return new url_1.URL(`${template}.zip`, TEMPLATE_SERVICE_URL);
|
|
41
39
|
}
|
|
42
40
|
}
|
|
43
|
-
exports.
|
|
41
|
+
exports.TemplateServiceDownloader = TemplateServiceDownloader;
|
|
44
42
|
class ZipTemplateExtractor {
|
|
45
43
|
constructor(zipAccessor) {
|
|
46
44
|
this.zipAccessor = zipAccessor;
|
|
@@ -80,22 +78,36 @@ class TemplateFetchError extends Error {
|
|
|
80
78
|
}
|
|
81
79
|
}
|
|
82
80
|
exports.TemplateFetchError = TemplateFetchError;
|
|
83
|
-
class
|
|
81
|
+
class TemplateServiceLister {
|
|
82
|
+
isValidTemplateMapEntry(entry) {
|
|
83
|
+
return typeof entry === 'object' && entry !== null && typeof entry.name === 'string';
|
|
84
|
+
}
|
|
85
|
+
isValidTemplatesResponse(response) {
|
|
86
|
+
if (Array.isArray(response)) {
|
|
87
|
+
return response.every((curr) => this.isValidTemplateMapEntry(curr));
|
|
88
|
+
}
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
84
91
|
async getAvailableTemplates() {
|
|
85
92
|
try {
|
|
86
|
-
const res = await node_fetch_1.default(
|
|
93
|
+
const res = await node_fetch_1.default(new url_1.URL(TEMPLATE_MAP, TEMPLATE_SERVICE_URL));
|
|
87
94
|
if (!res.ok) {
|
|
88
95
|
throw new TemplateFetchError();
|
|
89
96
|
}
|
|
90
97
|
const json = await res.json();
|
|
91
|
-
|
|
98
|
+
if (this.isValidTemplatesResponse(json)) {
|
|
99
|
+
return json.map(({ name }) => name);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
throw new TemplateFetchError();
|
|
103
|
+
}
|
|
92
104
|
}
|
|
93
105
|
catch (e) {
|
|
94
106
|
throw new TemplateFetchError();
|
|
95
107
|
}
|
|
96
108
|
}
|
|
97
109
|
}
|
|
98
|
-
exports.
|
|
110
|
+
exports.TemplateServiceLister = TemplateServiceLister;
|
|
99
111
|
class ComposableTemplater {
|
|
100
112
|
constructor(downloader, extractor, lister, logger) {
|
|
101
113
|
this.downloader = downloader;
|