oc 0.49.7 → 0.49.8
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 +22 -0
- package/README.md +2 -15
- package/dist/cli/domain/clean.d.ts +2 -2
- package/dist/cli/domain/clean.js +10 -13
- package/dist/cli/domain/get-components-by-dir.d.ts +1 -1
- package/dist/cli/domain/get-components-by-dir.js +8 -15
- package/dist/cli/domain/get-mocked-plugins.js +8 -6
- package/dist/cli/domain/handle-dependencies/ensure-compiler-is-declared-as-devDependency.d.ts +1 -1
- package/dist/cli/domain/handle-dependencies/ensure-compiler-is-declared-as-devDependency.js +4 -5
- package/dist/cli/domain/handle-dependencies/get-compiler.d.ts +1 -1
- package/dist/cli/domain/handle-dependencies/get-compiler.js +3 -3
- package/dist/cli/domain/handle-dependencies/index.d.ts +4 -3
- package/dist/cli/domain/handle-dependencies/index.js +40 -34
- package/dist/cli/domain/handle-dependencies/install-compiler.d.ts +1 -1
- package/dist/cli/domain/handle-dependencies/install-compiler.js +14 -7
- package/dist/cli/domain/handle-dependencies/install-missing-dependencies.d.ts +1 -1
- package/dist/cli/domain/handle-dependencies/install-missing-dependencies.js +13 -9
- package/dist/cli/domain/handle-dependencies/link-missing-dependencies.d.ts +1 -1
- package/dist/cli/domain/handle-dependencies/link-missing-dependencies.js +4 -8
- package/dist/cli/domain/init-template/index.d.ts +2 -2
- package/dist/cli/domain/init-template/index.js +6 -8
- package/dist/cli/domain/init-template/install-template.d.ts +2 -2
- package/dist/cli/domain/init-template/install-template.js +10 -9
- package/dist/cli/domain/init-template/scaffold.d.ts +2 -2
- package/dist/cli/domain/init-template/scaffold.js +7 -7
- package/dist/cli/domain/local.js +11 -10
- package/dist/cli/domain/mock.d.ts +1 -1
- package/dist/cli/domain/mock.js +21 -21
- package/dist/cli/domain/package-components.d.ts +1 -1
- package/dist/cli/domain/package-components.js +14 -17
- package/dist/cli/domain/registry.js +68 -81
- package/dist/cli/domain/watch.js +1 -1
- package/dist/cli/facade/clean.d.ts +10 -4
- package/dist/cli/facade/clean.js +38 -28
- package/dist/cli/facade/dev.d.ts +108 -15
- package/dist/cli/facade/dev.js +85 -99
- package/dist/cli/facade/init.d.ts +12 -5
- package/dist/cli/facade/init.js +22 -20
- package/dist/cli/facade/mock.d.ts +12 -5
- package/dist/cli/facade/mock.js +5 -6
- package/dist/cli/facade/package.d.ts +12 -5
- package/dist/cli/facade/package.js +30 -32
- package/dist/cli/facade/preview.d.ts +8 -3
- package/dist/cli/facade/preview.js +12 -10
- package/dist/cli/facade/publish.d.ts +16 -7
- package/dist/cli/facade/publish.js +94 -114
- package/dist/cli/facade/registry-add.d.ts +8 -3
- package/dist/cli/facade/registry-add.js +10 -9
- package/dist/cli/facade/registry-ls.d.ts +4 -1
- package/dist/cli/facade/registry-ls.js +19 -17
- package/dist/cli/facade/registry-remove.d.ts +8 -3
- package/dist/cli/facade/registry-remove.js +10 -9
- package/dist/cli/facade/registry.d.ts +4 -1
- package/dist/cli/facade/registry.js +6 -3
- package/dist/cli/index.js +3 -5
- package/dist/cli/programmatic-api.d.ts +1 -1
- package/dist/components/oc-client/_package/package.json +1 -1
- package/dist/components/oc-client/package.json +1 -1
- package/dist/registry/app-start.d.ts +2 -2
- package/dist/registry/app-start.js +20 -20
- package/dist/registry/domain/components-cache/components-list.d.ts +7 -6
- package/dist/registry/domain/components-cache/components-list.js +31 -45
- package/dist/registry/domain/components-cache/index.d.ts +6 -5
- package/dist/registry/domain/components-cache/index.js +47 -50
- package/dist/registry/domain/components-details.d.ts +5 -4
- package/dist/registry/domain/components-details.js +27 -38
- package/dist/registry/domain/extract-package.d.ts +2 -2
- package/dist/registry/domain/extract-package.js +9 -12
- package/dist/registry/domain/get-package-json-from-temp-dir.d.ts +1 -1
- package/dist/registry/domain/get-package-json-from-temp-dir.js +2 -2
- package/dist/registry/domain/nested-renderer.d.ts +7 -6
- package/dist/registry/domain/nested-renderer.js +36 -72
- package/dist/registry/domain/options-sanitiser.js +5 -3
- package/dist/registry/domain/plugins-initialiser.d.ts +3 -1
- package/dist/registry/domain/plugins-initialiser.js +29 -33
- package/dist/registry/domain/repository.js +78 -100
- package/dist/registry/domain/require-wrapper.js +1 -2
- package/dist/registry/domain/storage-adapter.d.ts +10 -0
- package/dist/registry/domain/storage-adapter.js +55 -0
- package/dist/registry/index.d.ts +2 -2
- package/dist/registry/index.js +15 -28
- package/dist/registry/middleware/index.d.ts +6 -2
- package/dist/registry/middleware/index.js +5 -1
- package/dist/registry/router.d.ts +2 -2
- package/dist/registry/router.js +0 -2
- package/dist/registry/routes/component-info.js +3 -2
- package/dist/registry/routes/component-preview.js +2 -1
- package/dist/registry/routes/components.js +1 -1
- package/dist/registry/routes/helpers/get-component-fallback.d.ts +2 -7
- package/dist/registry/routes/helpers/get-component.d.ts +5 -5
- package/dist/registry/routes/helpers/get-component.js +6 -5
- package/dist/registry/routes/helpers/is-url-discoverable.d.ts +2 -2
- package/dist/registry/routes/helpers/is-url-discoverable.js +15 -9
- package/dist/registry/routes/index.js +4 -3
- package/dist/registry/routes/publish.d.ts +1 -1
- package/dist/registry/routes/publish.js +32 -31
- package/dist/resources/settings.js +1 -1
- package/dist/types.d.ts +35 -43
- package/dist/utils/npm-utils.d.ts +6 -8
- package/dist/utils/npm-utils.js +20 -9
- package/dist/utils/put.d.ts +2 -1
- package/dist/utils/put.js +10 -29
- package/logintervals.md +1 -1
- package/package.json +6 -1
- package/src/cli/domain/clean.ts +10 -20
- package/src/cli/domain/get-components-by-dir.ts +12 -26
- package/src/cli/domain/get-mocked-plugins.ts +32 -26
- package/src/cli/domain/handle-dependencies/ensure-compiler-is-declared-as-devDependency.ts +8 -12
- package/src/cli/domain/handle-dependencies/get-compiler.ts +8 -11
- package/src/cli/domain/handle-dependencies/index.ts +55 -109
- package/src/cli/domain/handle-dependencies/install-compiler.ts +22 -15
- package/src/cli/domain/handle-dependencies/install-missing-dependencies.ts +19 -13
- package/src/cli/domain/handle-dependencies/link-missing-dependencies.ts +8 -16
- package/src/cli/domain/init-template/index.ts +13 -20
- package/src/cli/domain/init-template/install-template.ts +11 -12
- package/src/cli/domain/init-template/scaffold.ts +9 -12
- package/src/cli/domain/local.ts +19 -22
- package/src/cli/domain/mock.ts +32 -36
- package/src/cli/domain/package-components.ts +14 -25
- package/src/cli/domain/registry.ts +80 -116
- package/src/cli/domain/watch.ts +1 -1
- package/src/cli/facade/clean.ts +37 -37
- package/src/cli/facade/dev.ts +159 -182
- package/src/cli/facade/init.ts +36 -38
- package/src/cli/facade/mock.ts +11 -10
- package/src/cli/facade/package.ts +44 -49
- package/src/cli/facade/preview.ts +20 -18
- package/src/cli/facade/publish.ts +134 -172
- package/src/cli/facade/registry-add.ts +16 -15
- package/src/cli/facade/registry-ls.ts +27 -22
- package/src/cli/facade/registry-remove.ts +16 -15
- package/src/cli/facade/registry.ts +7 -5
- package/src/cli/index.ts +3 -5
- package/src/components/oc-client/_package/package.json +1 -1
- package/src/components/oc-client/package.json +1 -1
- package/src/globals.d.ts +38 -0
- package/src/registry/app-start.ts +27 -31
- package/src/registry/domain/components-cache/components-list.ts +45 -67
- package/src/registry/domain/components-cache/index.ts +55 -60
- package/src/registry/domain/components-details.ts +49 -75
- package/src/registry/domain/extract-package.ts +19 -27
- package/src/registry/domain/get-package-json-from-temp-dir.ts +3 -4
- package/src/registry/domain/nested-renderer.ts +64 -122
- package/src/registry/domain/options-sanitiser.ts +6 -3
- package/src/registry/domain/plugins-initialiser.ts +45 -49
- package/src/registry/domain/repository.ts +129 -235
- package/src/registry/domain/require-wrapper.ts +1 -2
- package/src/registry/domain/storage-adapter.ts +85 -0
- package/src/registry/index.ts +48 -79
- package/src/registry/middleware/index.ts +10 -2
- package/src/registry/router.ts +2 -10
- package/src/registry/routes/component-info.ts +4 -3
- package/src/registry/routes/component-preview.ts +3 -2
- package/src/registry/routes/components.ts +1 -1
- package/src/registry/routes/helpers/get-component-fallback.ts +3 -9
- package/src/registry/routes/helpers/get-component.ts +11 -9
- package/src/registry/routes/helpers/is-url-discoverable.ts +14 -15
- package/src/registry/routes/index.ts +18 -13
- package/src/registry/routes/publish.ts +31 -34
- package/src/resources/settings.ts +1 -1
- package/src/types.ts +63 -136
- package/src/utils/npm-utils.ts +38 -37
- package/src/utils/put.ts +15 -37
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import fs from 'fs-extra';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import
|
|
3
|
+
import got from 'got';
|
|
4
4
|
import _ from 'lodash';
|
|
5
5
|
|
|
6
6
|
import put from '../../utils/put';
|
|
@@ -28,100 +28,72 @@ export default function registry(opts: RegistryOptions = {}): RegistryCli {
|
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
return {
|
|
31
|
-
add(registry: string
|
|
31
|
+
async add(registry: string) {
|
|
32
32
|
if (registry.slice(registry.length - 1) !== '/') {
|
|
33
33
|
registry += '/';
|
|
34
34
|
}
|
|
35
|
+
try {
|
|
36
|
+
const apiResponse: { type: string } = await got(registry, {
|
|
37
|
+
headers: requestsHeaders
|
|
38
|
+
}).json();
|
|
35
39
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
fs.readJson(settings.configFile.src, (err, res) => {
|
|
50
|
-
if (err) {
|
|
51
|
-
res = {};
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if (!res.registries) {
|
|
55
|
-
res.registries = [];
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
if (!_.includes(res.registries, registry)) {
|
|
59
|
-
res.registries.push(registry);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
fs.writeJson(settings.configFile.src, res, callback as any);
|
|
63
|
-
});
|
|
40
|
+
if (!apiResponse) throw 'oc registry not available';
|
|
41
|
+
if (apiResponse.type !== 'oc-registry') throw 'not a valid oc registry';
|
|
42
|
+
|
|
43
|
+
const res = await fs
|
|
44
|
+
.readJson(settings.configFile.src)
|
|
45
|
+
.catch(() => ({}));
|
|
46
|
+
|
|
47
|
+
if (!res.registries) {
|
|
48
|
+
res.registries = [];
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (!_.includes(res.registries, registry)) {
|
|
52
|
+
res.registries.push(registry);
|
|
64
53
|
}
|
|
65
|
-
|
|
54
|
+
|
|
55
|
+
return fs.writeJson(settings.configFile.src, res);
|
|
56
|
+
} catch (err) {
|
|
57
|
+
throw 'oc registry not available';
|
|
58
|
+
}
|
|
66
59
|
},
|
|
67
|
-
get(
|
|
60
|
+
async get() {
|
|
68
61
|
if (opts.registry) {
|
|
69
|
-
return
|
|
62
|
+
return [opts.registry];
|
|
70
63
|
}
|
|
71
64
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return callback('No oc registries', undefined as any);
|
|
75
|
-
}
|
|
65
|
+
try {
|
|
66
|
+
const res = await fs.readJson(settings.configFile.src);
|
|
76
67
|
|
|
77
|
-
|
|
78
|
-
|
|
68
|
+
if (!res.registries || res.registries.length === 0)
|
|
69
|
+
throw 'No oc registries';
|
|
70
|
+
|
|
71
|
+
return res.registries;
|
|
72
|
+
} catch (err) {
|
|
73
|
+
throw 'No oc registries';
|
|
74
|
+
}
|
|
79
75
|
},
|
|
80
|
-
getApiComponentByHref(
|
|
81
|
-
href
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
request(
|
|
85
|
-
{
|
|
86
|
-
url: href + settings.registry.componentInfoPath,
|
|
87
|
-
headers: requestsHeaders,
|
|
88
|
-
json: true
|
|
89
|
-
},
|
|
90
|
-
callback
|
|
91
|
-
);
|
|
76
|
+
getApiComponentByHref(href: string) {
|
|
77
|
+
return got(href + settings.registry.componentInfoPath, {
|
|
78
|
+
headers: requestsHeaders
|
|
79
|
+
}).json();
|
|
92
80
|
},
|
|
93
|
-
getComponentPreviewUrlByUrl(
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
},
|
|
103
|
-
(err, res: { requestVersion: string; href: string }) => {
|
|
104
|
-
if (err) {
|
|
105
|
-
return callback(err, undefined as any);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const parsed = urlParser.parse(res);
|
|
109
|
-
callback(
|
|
110
|
-
null,
|
|
111
|
-
urlBuilder.componentPreview(parsed as any, parsed.registryUrl)
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
);
|
|
81
|
+
async getComponentPreviewUrlByUrl(componentHref: string) {
|
|
82
|
+
const res: { requestVersion: string; href: string } = await got(
|
|
83
|
+
componentHref,
|
|
84
|
+
{ headers: requestsHeaders }
|
|
85
|
+
).json();
|
|
86
|
+
|
|
87
|
+
const parsed = urlParser.parse(res);
|
|
88
|
+
|
|
89
|
+
return urlBuilder.componentPreview(parsed as any, parsed.registryUrl);
|
|
115
90
|
},
|
|
116
|
-
putComponent(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
},
|
|
123
|
-
callback: (err: string | null, data: unknown) => void
|
|
124
|
-
) {
|
|
91
|
+
async putComponent(options: {
|
|
92
|
+
username?: string;
|
|
93
|
+
password?: string;
|
|
94
|
+
route: string;
|
|
95
|
+
path: string;
|
|
96
|
+
}) {
|
|
125
97
|
if (!!options.username && !!options.password) {
|
|
126
98
|
requestsHeaders = Object.assign(requestsHeaders, {
|
|
127
99
|
Authorization:
|
|
@@ -131,49 +103,41 @@ export default function registry(opts: RegistryOptions = {}): RegistryCli {
|
|
|
131
103
|
)
|
|
132
104
|
});
|
|
133
105
|
}
|
|
106
|
+
try {
|
|
107
|
+
await put(options.route, options.path, requestsHeaders);
|
|
108
|
+
} catch (err) {
|
|
109
|
+
let parsedError = err as any as { code?: string; error?: string };
|
|
110
|
+
let errMsg = '';
|
|
111
|
+
if (!_.isObject(err)) {
|
|
112
|
+
try {
|
|
113
|
+
parsedError = JSON.parse(String(err));
|
|
114
|
+
} catch (er) {}
|
|
115
|
+
}
|
|
134
116
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
if (!!parsedError.code && parsedError.code === 'ECONNREFUSED') {
|
|
145
|
-
err = 'Connection to registry has not been established';
|
|
146
|
-
} else if (
|
|
147
|
-
parsedError.code !== 'cli_version_not_valid' &&
|
|
148
|
-
parsedError.code !== 'node_version_not_valid' &&
|
|
149
|
-
!!parsedError.error
|
|
150
|
-
) {
|
|
151
|
-
err = parsedError.error;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
return callback(err as any, undefined as any);
|
|
117
|
+
if (!!parsedError.code && parsedError.code === 'ECONNREFUSED') {
|
|
118
|
+
errMsg = 'Connection to registry has not been established';
|
|
119
|
+
} else if (
|
|
120
|
+
parsedError.code !== 'cli_version_not_valid' &&
|
|
121
|
+
parsedError.code !== 'node_version_not_valid' &&
|
|
122
|
+
!!parsedError.error
|
|
123
|
+
) {
|
|
124
|
+
errMsg = parsedError.error;
|
|
155
125
|
}
|
|
156
126
|
|
|
157
|
-
|
|
158
|
-
}
|
|
127
|
+
throw errMsg;
|
|
128
|
+
}
|
|
159
129
|
},
|
|
160
|
-
remove(registry: string
|
|
130
|
+
async remove(registry: string) {
|
|
161
131
|
if (registry.slice(registry.length - 1) !== '/') {
|
|
162
132
|
registry += '/';
|
|
163
133
|
}
|
|
164
134
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
if (!res.registries) {
|
|
171
|
-
res.registries = [];
|
|
172
|
-
}
|
|
135
|
+
const res = await fs
|
|
136
|
+
.readJson(settings.configFile.src)
|
|
137
|
+
.catch(() => ({ registries: [] }));
|
|
138
|
+
res.registries = _.without(res.registries, registry);
|
|
173
139
|
|
|
174
|
-
|
|
175
|
-
fs.writeJson(settings.configFile.src, res, callback as any);
|
|
176
|
-
});
|
|
140
|
+
await fs.writeJson(settings.configFile.src, res);
|
|
177
141
|
}
|
|
178
142
|
};
|
|
179
143
|
}
|
package/src/cli/domain/watch.ts
CHANGED
package/src/cli/facade/clean.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import readCb from 'read';
|
|
2
|
+
import { fromPromise } from 'universalify';
|
|
3
|
+
import { promisify } from 'util';
|
|
2
4
|
import strings from '../../resources/index';
|
|
3
5
|
import { Local } from '../../types';
|
|
4
6
|
import { Logger } from '../logger';
|
|
5
7
|
|
|
8
|
+
const read = promisify(readCb);
|
|
9
|
+
|
|
6
10
|
const clean = ({
|
|
7
11
|
local: {
|
|
8
12
|
clean: { fetchList, remove }
|
|
@@ -20,56 +24,52 @@ const clean = ({
|
|
|
20
24
|
cleanSuccess
|
|
21
25
|
} = strings.messages.cli;
|
|
22
26
|
|
|
23
|
-
const prompt =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
remove(list, err => {
|
|
36
|
-
if (err) {
|
|
37
|
-
logger.err(strings.errors.cli.cleanRemoveError(String(err)));
|
|
38
|
-
return cb(err);
|
|
39
|
-
}
|
|
27
|
+
const prompt = async (): Promise<boolean> => {
|
|
28
|
+
try {
|
|
29
|
+
const result = await read({
|
|
30
|
+
prompt: cleanPrompt,
|
|
31
|
+
default: cleanPromptDefault
|
|
32
|
+
});
|
|
33
|
+
const lowered = result.toLowerCase().trim();
|
|
34
|
+
return lowered === 'y' || lowered === 'yes';
|
|
35
|
+
} catch (err) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
40
39
|
|
|
40
|
+
const removeFolders = async (list: string[]) => {
|
|
41
|
+
try {
|
|
42
|
+
await remove(list);
|
|
41
43
|
logger.ok(cleanSuccess);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
} catch (err) {
|
|
45
|
+
logger.err(strings.errors.cli.cleanRemoveError(String(err)));
|
|
46
|
+
throw err;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
44
49
|
|
|
45
|
-
return (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
) => {
|
|
49
|
-
fetchList(opts.dirPath, (err, list) => {
|
|
50
|
-
if (err) {
|
|
51
|
-
logger.err(strings.errors.generic(String(err)));
|
|
52
|
-
return callback(err);
|
|
53
|
-
}
|
|
50
|
+
return fromPromise(async (opts: { dirPath: string; yes: boolean }) => {
|
|
51
|
+
try {
|
|
52
|
+
const list = await fetchList(opts.dirPath);
|
|
54
53
|
|
|
55
54
|
if (list.length === 0) {
|
|
56
55
|
logger.ok(cleanAlreadyClean);
|
|
57
|
-
return
|
|
56
|
+
return;
|
|
58
57
|
}
|
|
59
58
|
|
|
60
59
|
logger.warn(cleanList(list));
|
|
61
60
|
const shouldConfirm = !opts.yes;
|
|
62
61
|
|
|
63
62
|
if (shouldConfirm) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
return removeFolders(list, callback);
|
|
67
|
-
});
|
|
63
|
+
const confirmed = await prompt();
|
|
64
|
+
if (!confirmed) return;
|
|
68
65
|
}
|
|
69
66
|
|
|
70
|
-
removeFolders(list
|
|
71
|
-
})
|
|
72
|
-
|
|
67
|
+
await removeFolders(list);
|
|
68
|
+
} catch (err) {
|
|
69
|
+
logger.err(strings.errors.generic(String(err)));
|
|
70
|
+
throw err;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
73
|
};
|
|
74
74
|
|
|
75
75
|
export default clean;
|