@forge/cli-shared 2.2.2 → 2.3.0-next.10
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 +82 -0
- package/out/apps/template.d.ts +4 -2
- package/out/apps/template.d.ts.map +1 -1
- package/out/apps/template.js +33 -21
- package/out/config/config-file.js +8 -8
- package/out/config/config.d.ts +2 -1
- package/out/config/config.d.ts.map +1 -1
- package/out/config/config.js +3 -2
- package/out/graphql/graphql-types.d.ts +320 -82
- package/out/graphql/graphql-types.d.ts.map +1 -1
- package/out/graphql/graphql-types.js +1 -13
- package/out/graphql/mutation-aware-graphql-client.d.ts +1 -1
- package/out/ui/text.d.ts +1 -1
- package/out/ui/text.d.ts.map +1 -1
- package/out/ui/text.js +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,87 @@
|
|
|
1
1
|
# @forge/cli-shared
|
|
2
2
|
|
|
3
|
+
## 2.3.0-next.10
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 47a71a62: Upgrade graphql-request for node 16 compatibility
|
|
8
|
+
- Updated dependencies [fcd95803]
|
|
9
|
+
- Updated dependencies [e65d33e6]
|
|
10
|
+
- @forge/manifest@3.3.0-next.8
|
|
11
|
+
|
|
12
|
+
## 2.3.0-next.9
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- cf2420d2: Added root package.json and lock files to app bundle.
|
|
17
|
+
|
|
18
|
+
## 2.3.0-next.8
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies [8e35955]
|
|
23
|
+
- @forge/manifest@3.3.0-next.7
|
|
24
|
+
|
|
25
|
+
## 2.3.0-next.7
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- Updated dependencies [ad94136]
|
|
30
|
+
- @forge/manifest@3.3.0-next.6
|
|
31
|
+
|
|
32
|
+
## 2.3.0-next.6
|
|
33
|
+
|
|
34
|
+
### Patch Changes
|
|
35
|
+
|
|
36
|
+
- Updated dependencies [e95919f]
|
|
37
|
+
- Updated dependencies [f894871]
|
|
38
|
+
- @forge/manifest@3.3.0-next.5
|
|
39
|
+
|
|
40
|
+
## 2.3.0-next.5
|
|
41
|
+
|
|
42
|
+
### Patch Changes
|
|
43
|
+
|
|
44
|
+
- Updated dependencies [ae111cd]
|
|
45
|
+
- @forge/manifest@3.3.0-next.4
|
|
46
|
+
|
|
47
|
+
## 2.3.0-next.4
|
|
48
|
+
|
|
49
|
+
### Patch Changes
|
|
50
|
+
|
|
51
|
+
- Updated dependencies [6c44d2b]
|
|
52
|
+
- Updated dependencies [051ed1f]
|
|
53
|
+
- @forge/manifest@3.3.0-next.3
|
|
54
|
+
|
|
55
|
+
## 2.3.0-next.3
|
|
56
|
+
|
|
57
|
+
### Patch Changes
|
|
58
|
+
|
|
59
|
+
- Updated dependencies [88e57a1]
|
|
60
|
+
- Updated dependencies [e822a8a]
|
|
61
|
+
- Updated dependencies [c255b24]
|
|
62
|
+
- @forge/util@1.2.0-next.0
|
|
63
|
+
- @forge/manifest@3.3.0-next.2
|
|
64
|
+
|
|
65
|
+
## 2.3.0-next.2
|
|
66
|
+
|
|
67
|
+
### Patch Changes
|
|
68
|
+
|
|
69
|
+
- Updated dependencies [24203783]
|
|
70
|
+
- @forge/manifest@3.3.0-next.1
|
|
71
|
+
|
|
72
|
+
## 2.3.0-next.1
|
|
73
|
+
|
|
74
|
+
### Patch Changes
|
|
75
|
+
|
|
76
|
+
- Updated dependencies [c145946]
|
|
77
|
+
- @forge/manifest@3.3.0-next.0
|
|
78
|
+
|
|
79
|
+
## 2.3.0-next.0
|
|
80
|
+
|
|
81
|
+
### Minor Changes
|
|
82
|
+
|
|
83
|
+
- 949bd40: The @forge/cli will now download templates from a new service (previously bitbucket), old versions of the CLI won't receive template updates
|
|
84
|
+
|
|
3
85
|
## 2.2.2
|
|
4
86
|
|
|
5
87
|
### Patch Changes
|
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;
|
|
@@ -30,23 +30,23 @@ class ConfigFile {
|
|
|
30
30
|
return functions.map((funcs) => funcs.handler.split('.')[0]);
|
|
31
31
|
}
|
|
32
32
|
async readConfig() {
|
|
33
|
-
const manifestFileContents = this.fileReader.readFile(_1.
|
|
33
|
+
const manifestFileContents = this.fileReader.readFile(_1.manifestFileName);
|
|
34
34
|
try {
|
|
35
35
|
yaml_1.default.scalarOptions.null.nullStr = '';
|
|
36
36
|
return yaml_1.parse(manifestFileContents);
|
|
37
37
|
}
|
|
38
38
|
catch (_a) {
|
|
39
|
-
throw new ui_1.ValidationError(ui_1.Text.artifact.error.invalidYaml(_1.
|
|
39
|
+
throw new ui_1.ValidationError(ui_1.Text.artifact.error.invalidYaml(_1.manifestFileName));
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
async readConfigToDocument() {
|
|
43
|
-
const manifestFileContents = this.fileReader.readFile(_1.
|
|
43
|
+
const manifestFileContents = this.fileReader.readFile(_1.manifestFileName);
|
|
44
44
|
if (manifestFileContents) {
|
|
45
45
|
try {
|
|
46
46
|
return yaml_1.parseDocument(manifestFileContents);
|
|
47
47
|
}
|
|
48
48
|
catch (_a) {
|
|
49
|
-
throw new ui_1.ValidationError(ui_1.Text.artifact.error.invalidYaml(_1.
|
|
49
|
+
throw new ui_1.ValidationError(ui_1.Text.artifact.error.invalidYaml(_1.manifestFileName));
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -76,18 +76,18 @@ class ConfigFile {
|
|
|
76
76
|
return actualModules;
|
|
77
77
|
}
|
|
78
78
|
async prependAppNameToModules(name) {
|
|
79
|
-
const manifestFileContents = this.fileReader.readFile(_1.
|
|
79
|
+
const manifestFileContents = this.fileReader.readFile(_1.manifestFileName);
|
|
80
80
|
const currentConfigDoc = yaml_1.parseDocument(manifestFileContents || '');
|
|
81
81
|
const modules = currentConfigDoc.get('modules');
|
|
82
82
|
if (modules && modules.type === util_1.Type.MAP) {
|
|
83
83
|
const modulesObject = modules.toJSON();
|
|
84
84
|
const modulesWithUniqueName = this.makeManifestUnique(modulesObject, name);
|
|
85
85
|
currentConfigDoc.set('modules', modulesWithUniqueName);
|
|
86
|
-
this.fileWriter.writeStringToFile(currentConfigDoc.toString(), _1.
|
|
86
|
+
this.fileWriter.writeStringToFile(currentConfigDoc.toString(), _1.manifestFileName);
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
async writeToConfigFile(configKey, config) {
|
|
90
|
-
const manifestFileContents = this.fileReader.readFile(_1.
|
|
90
|
+
const manifestFileContents = this.fileReader.readFile(_1.manifestFileName);
|
|
91
91
|
const currentConfigDoc = yaml_1.parseDocument(manifestFileContents || '');
|
|
92
92
|
Object.keys(config).forEach((key) => {
|
|
93
93
|
if (config[key] === undefined) {
|
|
@@ -95,7 +95,7 @@ class ConfigFile {
|
|
|
95
95
|
}
|
|
96
96
|
});
|
|
97
97
|
currentConfigDoc.set(configKey, config);
|
|
98
|
-
this.fileWriter.writeStringToFile(currentConfigDoc.toString(), _1.
|
|
98
|
+
this.fileWriter.writeStringToFile(currentConfigDoc.toString(), _1.manifestFileName);
|
|
99
99
|
}
|
|
100
100
|
getHostedResourceKeys(modules) {
|
|
101
101
|
const resourceKeys = [];
|
package/out/config/config.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ManifestSchema, Resources } from '@forge/manifest';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const manifestFileName = "manifest.yml";
|
|
3
|
+
export declare const dependencyFileNames: string[];
|
|
3
4
|
export interface BaseModule {
|
|
4
5
|
key: string;
|
|
5
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5D,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5D,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,eAAO,MAAM,mBAAmB,UAAuE,CAAC;AAExG,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9F,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAED,eAAO,MAAM,gBAAgB,aAAc,GAAG,0BAG7C,CAAC;AAEF,eAAO,MAAM,sBAAsB,WAAY,GAAG,oCAGjD,CAAC"}
|
package/out/config/config.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isHostedResourceModule = exports.validateResource = exports.
|
|
4
|
-
exports.
|
|
3
|
+
exports.isHostedResourceModule = exports.validateResource = exports.dependencyFileNames = exports.manifestFileName = void 0;
|
|
4
|
+
exports.manifestFileName = 'manifest.yml';
|
|
5
|
+
exports.dependencyFileNames = [exports.manifestFileName, 'package.json', 'package-lock.json', 'yarn.lock'];
|
|
5
6
|
exports.validateResource = (resource) => {
|
|
6
7
|
const { key, path } = resource;
|
|
7
8
|
return typeof key === 'string' && typeof path === 'string';
|