oc 0.49.21 → 0.49.22
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 +4 -0
- package/dist/cli/domain/get-mocked-plugins.js +2 -3
- package/dist/cli/domain/handle-dependencies/ensure-compiler-is-declared-as-devDependency.js +1 -2
- package/dist/cli/domain/local.d.ts +1 -1
- package/dist/cli/domain/registry.d.ts +1 -1
- package/dist/cli/programmatic-api.d.ts +2 -2
- package/dist/components/oc-client/_package/package.json +1 -1
- package/dist/components/oc-client/package.json +1 -1
- package/dist/registry/domain/components-cache/components-list.d.ts +3 -3
- package/dist/registry/domain/components-cache/components-list.js +28 -5
- package/dist/registry/domain/components-cache/index.js +27 -22
- package/dist/registry/domain/components-details.js +1 -2
- package/dist/registry/domain/events-handler.d.ts +3 -3
- package/dist/registry/domain/plugins-initialiser.d.ts +1 -1
- package/dist/registry/domain/repository.d.ts +1 -1
- package/dist/registry/domain/storage-adapter.d.ts +2 -2
- package/dist/registry/domain/url-builder.d.ts +1 -1
- package/dist/registry/domain/validators/node-version.d.ts +3 -3
- package/dist/registry/domain/validators/oc-cli-version.d.ts +3 -3
- package/dist/registry/domain/validators/plugins-requirements.d.ts +1 -1
- package/dist/registry/domain/validators/registry-configuration.d.ts +1 -1
- package/dist/registry/domain/validators/uploaded-package.d.ts +1 -1
- package/dist/registry/index.js +2 -3
- package/dist/registry/routes/helpers/get-available-dependencies.js +2 -3
- package/dist/registry/routes/helpers/get-component-fallback.d.ts +1 -1
- package/dist/registry/routes/helpers/is-url-discoverable.js +1 -2
- package/dist/registry/views/info.d.ts +1 -1
- package/dist/registry/views/partials/selected-checkbox.d.ts +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/utils/is-template-legacy.d.ts +1 -1
- package/logintervals.md +1 -1
- package/package.json +20 -20
- package/tsconfig.json +1 -1
- package/dist/components/oc-client/_package/src/oc-client.min.js +0 -3
- package/dist/components/oc-client/_package/src/oc-client.min.map +0 -1
- package/dist/components/oc-client/src/oc-client.min.js +0 -3
- package/dist/components/oc-client/src/oc-client.min.map +0 -1
- package/src/cli/commands.ts +0 -178
- package/src/cli/domain/clean.ts +0 -21
- package/src/cli/domain/get-components-by-dir.ts +0 -47
- package/src/cli/domain/get-mocked-plugins.ts +0 -154
- package/src/cli/domain/handle-dependencies/ensure-compiler-is-declared-as-devDependency.ts +0 -17
- package/src/cli/domain/handle-dependencies/get-compiler.ts +0 -35
- package/src/cli/domain/handle-dependencies/get-missing-dependencies.ts +0 -17
- package/src/cli/domain/handle-dependencies/index.ts +0 -93
- package/src/cli/domain/handle-dependencies/install-compiler.ts +0 -43
- package/src/cli/domain/handle-dependencies/install-missing-dependencies.ts +0 -48
- package/src/cli/domain/handle-dependencies/link-missing-dependencies.ts +0 -45
- package/src/cli/domain/handle-dependencies/require-template.ts +0 -62
- package/src/cli/domain/init-template/index.ts +0 -26
- package/src/cli/domain/init-template/install-template.ts +0 -52
- package/src/cli/domain/init-template/scaffold.ts +0 -45
- package/src/cli/domain/local.ts +0 -77
- package/src/cli/domain/mock.ts +0 -40
- package/src/cli/domain/package-components.ts +0 -61
- package/src/cli/domain/registry.ts +0 -147
- package/src/cli/domain/url-parser.ts +0 -44
- package/src/cli/domain/watch.ts +0 -33
- package/src/cli/facade/clean.ts +0 -75
- package/src/cli/facade/dev.ts +0 -214
- package/src/cli/facade/init.ts +0 -50
- package/src/cli/facade/mock.ts +0 -20
- package/src/cli/facade/package.ts +0 -65
- package/src/cli/facade/preview.ts +0 -28
- package/src/cli/facade/publish.ts +0 -209
- package/src/cli/facade/registry-add.ts +0 -23
- package/src/cli/facade/registry-ls.ts +0 -36
- package/src/cli/facade/registry-remove.ts +0 -23
- package/src/cli/facade/registry.ts +0 -9
- package/src/cli/index.ts +0 -142
- package/src/cli/logger.ts +0 -38
- package/src/cli/programmatic-api.ts +0 -142
- package/src/cli/validate-command.ts +0 -18
- package/src/components/oc-client/_package/package.json +0 -1
- package/src/components/oc-client/_package/server.js +0 -1
- package/src/components/oc-client/_package/src/oc-client.min.js +0 -3
- package/src/components/oc-client/_package/src/oc-client.min.map +0 -1
- package/src/components/oc-client/_package/template.js +0 -1
- package/src/components/oc-client/package.json +0 -26
- package/src/components/oc-client/server.js +0 -6
- package/src/components/oc-client/src/oc-client.min.js +0 -3
- package/src/components/oc-client/src/oc-client.min.map +0 -1
- package/src/components/oc-client/template.js +0 -4
- package/src/globals.d.ts +0 -103
- package/src/index.ts +0 -3
- package/src/oc-cli.js +0 -3
- package/src/registry/app-start.ts +0 -75
- package/src/registry/domain/authentication.ts +0 -59
- package/src/registry/domain/components-cache/components-list.ts +0 -70
- package/src/registry/domain/components-cache/index.ts +0 -90
- package/src/registry/domain/components-details.ts +0 -96
- package/src/registry/domain/events-handler.ts +0 -86
- package/src/registry/domain/extract-package.ts +0 -45
- package/src/registry/domain/get-package-json-from-temp-dir.ts +0 -9
- package/src/registry/domain/nested-renderer.ts +0 -88
- package/src/registry/domain/options-sanitiser.ts +0 -118
- package/src/registry/domain/plugins-initialiser.ts +0 -127
- package/src/registry/domain/register-templates.ts +0 -41
- package/src/registry/domain/repository.ts +0 -390
- package/src/registry/domain/require-wrapper.ts +0 -39
- package/src/registry/domain/sanitiser.ts +0 -60
- package/src/registry/domain/storage-adapter.ts +0 -85
- package/src/registry/domain/url-builder.ts +0 -80
- package/src/registry/domain/validators/component-parameters.ts +0 -112
- package/src/registry/domain/validators/index.ts +0 -24
- package/src/registry/domain/validators/node-version.ts +0 -59
- package/src/registry/domain/validators/oc-cli-version.ts +0 -52
- package/src/registry/domain/validators/package-json-validator.ts +0 -35
- package/src/registry/domain/validators/plugins-requirements.ts +0 -39
- package/src/registry/domain/validators/registry-configuration.ts +0 -143
- package/src/registry/domain/validators/uploaded-package.ts +0 -49
- package/src/registry/domain/version-handler.ts +0 -25
- package/src/registry/index.ts +0 -117
- package/src/registry/middleware/base-url-handler.ts +0 -16
- package/src/registry/middleware/cors.ts +0 -18
- package/src/registry/middleware/discovery-handler.ts +0 -20
- package/src/registry/middleware/file-uploads.ts +0 -28
- package/src/registry/middleware/index.ts +0 -53
- package/src/registry/middleware/request-handler.ts +0 -30
- package/src/registry/router.ts +0 -85
- package/src/registry/routes/component-info.ts +0 -119
- package/src/registry/routes/component-preview.ts +0 -87
- package/src/registry/routes/component.ts +0 -53
- package/src/registry/routes/components.ts +0 -107
- package/src/registry/routes/dependencies.ts +0 -27
- package/src/registry/routes/helpers/apply-default-values.ts +0 -29
- package/src/registry/routes/helpers/get-available-dependencies.ts +0 -31
- package/src/registry/routes/helpers/get-component-fallback.ts +0 -139
- package/src/registry/routes/helpers/get-component-retrieving-info.ts +0 -44
- package/src/registry/routes/helpers/get-component.ts +0 -583
- package/src/registry/routes/helpers/get-components-history.ts +0 -40
- package/src/registry/routes/helpers/is-url-discoverable.ts +0 -18
- package/src/registry/routes/index.ts +0 -127
- package/src/registry/routes/plugins.ts +0 -19
- package/src/registry/routes/publish.ts +0 -89
- package/src/registry/routes/static-redirector.ts +0 -74
- package/src/registry/views/index.ts +0 -66
- package/src/registry/views/info.ts +0 -89
- package/src/registry/views/partials/component-author.ts +0 -32
- package/src/registry/views/partials/component-parameters.ts +0 -53
- package/src/registry/views/partials/component-state.ts +0 -14
- package/src/registry/views/partials/component-versions.ts +0 -16
- package/src/registry/views/partials/components-dependencies.ts +0 -26
- package/src/registry/views/partials/components-history.ts +0 -24
- package/src/registry/views/partials/components-list.ts +0 -65
- package/src/registry/views/partials/components-plugins.ts +0 -23
- package/src/registry/views/partials/components-templates.ts +0 -36
- package/src/registry/views/partials/layout.ts +0 -32
- package/src/registry/views/partials/property.ts +0 -17
- package/src/registry/views/partials/selected-checkbox.ts +0 -16
- package/src/registry/views/preview.ts +0 -37
- package/src/registry/views/static/index.ts +0 -92
- package/src/registry/views/static/info.ts +0 -43
- package/src/registry/views/static/style.ts +0 -277
- package/src/resources/index.ts +0 -279
- package/src/resources/settings.ts +0 -17
- package/src/types.ts +0 -251
- package/src/utils/clean-require.ts +0 -35
- package/src/utils/date-stringify.ts +0 -23
- package/src/utils/error-to-string.ts +0 -13
- package/src/utils/is-template-legacy.ts +0 -7
- package/src/utils/is-template-valid.ts +0 -19
- package/src/utils/module-exists.ts +0 -14
- package/src/utils/npm-utils.ts +0 -109
- package/src/utils/put.ts +0 -35
- package/src/utils/strip-version.ts +0 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
## Change Log
|
|
2
2
|
|
|
3
|
+
### v0.49.22
|
|
4
|
+
|
|
5
|
+
- [#1319](https://github.com/opencomponents/oc/pull/1319) Check unverified packages after start/publishing
|
|
6
|
+
|
|
3
7
|
### v0.49.21
|
|
4
8
|
|
|
5
9
|
- [#1303](https://github.com/opencomponents/oc/pull/1303) add ability to retreieve environment variables from an env file
|
|
@@ -68,7 +68,6 @@ const findPath = (pathToResolve, fileName) => {
|
|
|
68
68
|
return fileToResolve;
|
|
69
69
|
};
|
|
70
70
|
function getMockedPlugins(logger, componentsDir) {
|
|
71
|
-
var _a, _b;
|
|
72
71
|
componentsDir = path_1.default.resolve(componentsDir || '.');
|
|
73
72
|
let plugins = [];
|
|
74
73
|
const ocJsonFileName = settings_1.default.configFile.src.replace('./', '');
|
|
@@ -82,8 +81,8 @@ function getMockedPlugins(logger, componentsDir) {
|
|
|
82
81
|
return plugins;
|
|
83
82
|
}
|
|
84
83
|
logger.warn(resources_1.default.messages.cli.REGISTERING_MOCKED_PLUGINS);
|
|
85
|
-
plugins = plugins.concat(registerStaticMocks(
|
|
86
|
-
plugins = plugins.concat(registerDynamicMocks(ocJsonLocation,
|
|
84
|
+
plugins = plugins.concat(registerStaticMocks(content.mocks.plugins.static ?? {}, logger));
|
|
85
|
+
plugins = plugins.concat(registerDynamicMocks(ocJsonLocation, content.mocks.plugins.dynamic ?? {}, logger));
|
|
87
86
|
return plugins;
|
|
88
87
|
}
|
|
89
88
|
exports.default = getMockedPlugins;
|
|
@@ -5,10 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const resources_1 = __importDefault(require("../../../resources"));
|
|
7
7
|
function ensureCompilerIsDeclaredAsDevDependency(options) {
|
|
8
|
-
var _a;
|
|
9
8
|
const { componentPath, pkg, template } = options;
|
|
10
9
|
const compilerDep = `${template}-compiler`;
|
|
11
|
-
const isOk =
|
|
10
|
+
const isOk = pkg.devDependencies?.[compilerDep];
|
|
12
11
|
if (!isOk)
|
|
13
12
|
throw resources_1.default.errors.cli.TEMPLATE_DEP_MISSING(template, componentPath);
|
|
14
13
|
return compilerDep;
|
|
@@ -18,4 +18,4 @@ export default function local(): {
|
|
|
18
18
|
}) => Promise<void>;
|
|
19
19
|
package: (options: import("./package-components").PackageOptions) => Promise<import("../../types").Component>;
|
|
20
20
|
};
|
|
21
|
-
export
|
|
21
|
+
export type Local = ReturnType<typeof local>;
|
|
@@ -16,5 +16,5 @@ export default function registry(opts?: RegistryOptions): {
|
|
|
16
16
|
}): Promise<void>;
|
|
17
17
|
remove(registry: string): Promise<void>;
|
|
18
18
|
};
|
|
19
|
-
export
|
|
19
|
+
export type RegistryCli = ReturnType<typeof registry>;
|
|
20
20
|
export {};
|
|
@@ -8,8 +8,8 @@ import preview from './facade/preview';
|
|
|
8
8
|
import registryAdd from './facade/registry-add';
|
|
9
9
|
import registryLs from './facade/registry-ls';
|
|
10
10
|
import registryRemove from './facade/registry-remove';
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
type Options<T extends (...args: any) => any> = Parameters<ReturnType<T>>[0];
|
|
12
|
+
type Cb<T extends (...args: any) => any> = Parameters<ReturnType<T>>[1];
|
|
13
13
|
declare const _default: {
|
|
14
14
|
dev: ({ logger, ...options }: {
|
|
15
15
|
prefix: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"oc-client","description":"The OpenComponents client-side javascript client","version":"0.49.
|
|
1
|
+
{"name":"oc-client","description":"The OpenComponents client-side javascript client","version":"0.49.22","repository":"https://github.com/opencomponents/oc/tree/master/components/oc-client","author":"Matteo Figus <matteofigus@gmail.com>","oc":{"container":false,"renderInfo":false,"minify":false,"parameters":{},"files":{"template":{"type":"oc-template-es6","hashKey":"4bdbbf7249b210dee9a729e8a611eac3dc5eae82","src":"template.js","version":"1.0.7"},"static":["src"],"dataProvider":{"type":"node.js","hashKey":"96eb8b28d43ce2093e13753e54d3f2f938dd0f7d","src":"server.js"}},"version":"0.49.22","packaged":true,"date":1671531860206},"devDependencies":{"oc-template-es6-compiler":"^1.0.1"}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oc-client",
|
|
3
3
|
"description": "The OpenComponents client-side javascript client",
|
|
4
|
-
"version": "0.49.
|
|
4
|
+
"version": "0.49.22",
|
|
5
5
|
"repository": "https://github.com/opencomponents/oc/tree/master/components/oc-client",
|
|
6
6
|
"author": "Matteo Figus <matteofigus@gmail.com>",
|
|
7
7
|
"oc": {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ComponentsList, Config } from '../../../types';
|
|
2
1
|
import { StorageAdapter } from 'oc-storage-adapters-utils';
|
|
2
|
+
import { ComponentsList, Config } from '../../../types';
|
|
3
3
|
export default function componentsList(conf: Config, cdn: StorageAdapter): {
|
|
4
4
|
getFromJson: () => Promise<ComponentsList>;
|
|
5
|
-
getFromDirectories: () => Promise<ComponentsList>;
|
|
6
|
-
refresh(): Promise<ComponentsList>;
|
|
5
|
+
getFromDirectories: (jsonList: ComponentsList | null) => Promise<ComponentsList>;
|
|
6
|
+
refresh(cachedList: ComponentsList): Promise<ComponentsList>;
|
|
7
7
|
save: (data: ComponentsList) => Promise<unknown>;
|
|
8
8
|
};
|
|
@@ -6,15 +6,38 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const semver_1 = __importDefault(require("semver"));
|
|
7
7
|
const p_limit_1 = __importDefault(require("p-limit"));
|
|
8
8
|
const oc_get_unix_utc_timestamp_1 = __importDefault(require("oc-get-unix-utc-timestamp"));
|
|
9
|
+
const events_handler_1 = __importDefault(require("../events-handler"));
|
|
9
10
|
function componentsList(conf, cdn) {
|
|
10
11
|
const filePath = () => `${conf.storage.options.componentsDir}/components.json`;
|
|
11
12
|
const componentsList = {
|
|
12
13
|
getFromJson: () => cdn.getJson(filePath(), true),
|
|
13
|
-
getFromDirectories: async () => {
|
|
14
|
+
getFromDirectories: async (jsonList) => {
|
|
14
15
|
const componentsInfo = {};
|
|
16
|
+
const validateComponentVersion = (componentName, componentVersion) => {
|
|
17
|
+
return cdn
|
|
18
|
+
.getJson(
|
|
19
|
+
// Check integrity of the package by checking existence of package.json
|
|
20
|
+
// OC will upload always the package.json last when publishing
|
|
21
|
+
`${conf.storage.options.componentsDir}/${componentName}/${componentVersion}/package.json`)
|
|
22
|
+
.then(() => true)
|
|
23
|
+
.catch(() => false);
|
|
24
|
+
};
|
|
15
25
|
const getVersionsForComponent = async (componentName) => {
|
|
16
|
-
const
|
|
17
|
-
|
|
26
|
+
const allVersions = await cdn.listSubDirectories(`${conf.storage.options.componentsDir}/${componentName}`);
|
|
27
|
+
const unCheckedVersions = allVersions.filter(version => !jsonList?.components[componentName]?.includes(version));
|
|
28
|
+
const limit = (0, p_limit_1.default)(cdn.maxConcurrentRequests);
|
|
29
|
+
const invalidVersions = (await Promise.all(unCheckedVersions.map(unCheckedVersion => limit(async () => {
|
|
30
|
+
const isValid = await validateComponentVersion(componentName, unCheckedVersion);
|
|
31
|
+
return isValid ? null : unCheckedVersion;
|
|
32
|
+
})))).filter((x) => typeof x === 'string');
|
|
33
|
+
if (invalidVersions.length > 0) {
|
|
34
|
+
events_handler_1.default.fire('error', {
|
|
35
|
+
code: 'corrupted_version',
|
|
36
|
+
message: `Couldn't validate the integrity of the component ${componentName} on the following versions: ${invalidVersions.join(', ')}.`
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const validVersions = allVersions.filter(version => !invalidVersions.includes(version));
|
|
40
|
+
return validVersions.sort(semver_1.default.compare);
|
|
18
41
|
};
|
|
19
42
|
try {
|
|
20
43
|
const components = await cdn.listSubDirectories(conf.storage.options.componentsDir);
|
|
@@ -38,8 +61,8 @@ function componentsList(conf, cdn) {
|
|
|
38
61
|
throw err;
|
|
39
62
|
}
|
|
40
63
|
},
|
|
41
|
-
async refresh() {
|
|
42
|
-
const components = await componentsList.getFromDirectories();
|
|
64
|
+
async refresh(cachedList) {
|
|
65
|
+
const components = await componentsList.getFromDirectories(cachedList);
|
|
43
66
|
await componentsList.save(components);
|
|
44
67
|
return components;
|
|
45
68
|
},
|
|
@@ -7,34 +7,36 @@ const lodash_1 = __importDefault(require("lodash"));
|
|
|
7
7
|
const components_list_1 = __importDefault(require("./components-list"));
|
|
8
8
|
const events_handler_1 = __importDefault(require("../events-handler"));
|
|
9
9
|
const oc_get_unix_utc_timestamp_1 = __importDefault(require("oc-get-unix-utc-timestamp"));
|
|
10
|
+
const oc_storage_adapters_utils_1 = require("oc-storage-adapters-utils");
|
|
10
11
|
function componentsCache(conf, cdn) {
|
|
11
12
|
let cachedComponentsList;
|
|
12
13
|
let refreshLoop;
|
|
13
14
|
const componentsList = (0, components_list_1.default)(conf, cdn);
|
|
14
|
-
const poll = () =>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
cachedComponentsList
|
|
15
|
+
const poll = () => {
|
|
16
|
+
return setTimeout(async () => {
|
|
17
|
+
try {
|
|
18
|
+
const data = await componentsList.getFromJson();
|
|
19
|
+
events_handler_1.default.fire('cache-poll', (0, oc_get_unix_utc_timestamp_1.default)());
|
|
20
|
+
if (data.lastEdit > cachedComponentsList.lastEdit) {
|
|
21
|
+
cachedComponentsList = data;
|
|
22
|
+
}
|
|
20
23
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
events_handler_1.default.fire('error', {
|
|
26
|
+
code: 'components_list_get',
|
|
27
|
+
message: err?.message || String(err)
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
refreshLoop = poll();
|
|
31
|
+
}, conf.pollingInterval * 1000);
|
|
32
|
+
};
|
|
30
33
|
const cacheDataAndStartPolling = (data) => {
|
|
31
34
|
cachedComponentsList = data;
|
|
32
35
|
refreshLoop = poll();
|
|
33
36
|
return data;
|
|
34
37
|
};
|
|
35
38
|
const throwError = (code, message) => {
|
|
36
|
-
|
|
37
|
-
events_handler_1.default.fire('error', { code, message: (_a = message === null || message === void 0 ? void 0 : message.message) !== null && _a !== void 0 ? _a : message });
|
|
39
|
+
events_handler_1.default.fire('error', { code, message: message?.message ?? message });
|
|
38
40
|
throw code;
|
|
39
41
|
};
|
|
40
42
|
return {
|
|
@@ -45,12 +47,14 @@ function componentsCache(conf, cdn) {
|
|
|
45
47
|
return cachedComponentsList;
|
|
46
48
|
},
|
|
47
49
|
async load() {
|
|
50
|
+
const jsonComponents = await componentsList.getFromJson().catch(err => {
|
|
51
|
+
if (err?.code === oc_storage_adapters_utils_1.strings.errors.STORAGE.FILE_NOT_FOUND_CODE)
|
|
52
|
+
return null;
|
|
53
|
+
return Promise.reject(err);
|
|
54
|
+
});
|
|
48
55
|
const dirComponents = await componentsList
|
|
49
|
-
.getFromDirectories()
|
|
56
|
+
.getFromDirectories(jsonComponents)
|
|
50
57
|
.catch(err => throwError('components_list_get', err));
|
|
51
|
-
const jsonComponents = await componentsList
|
|
52
|
-
.getFromJson()
|
|
53
|
-
.catch(() => null);
|
|
54
58
|
if (!jsonComponents ||
|
|
55
59
|
!lodash_1.default.isEqual(dirComponents.components, jsonComponents.components)) {
|
|
56
60
|
await componentsList
|
|
@@ -63,7 +67,8 @@ function componentsCache(conf, cdn) {
|
|
|
63
67
|
async refresh() {
|
|
64
68
|
clearTimeout(refreshLoop);
|
|
65
69
|
try {
|
|
66
|
-
|
|
70
|
+
// Passing components that we know are fine, so it doesn't refresh invalid components
|
|
71
|
+
const components = await componentsList.refresh(cachedComponentsList);
|
|
67
72
|
cacheDataAndStartPolling(components);
|
|
68
73
|
return components;
|
|
69
74
|
}
|
|
@@ -9,10 +9,9 @@ const events_handler_1 = __importDefault(require("./events-handler"));
|
|
|
9
9
|
const oc_get_unix_utc_timestamp_1 = __importDefault(require("oc-get-unix-utc-timestamp"));
|
|
10
10
|
function componentsDetails(conf, cdn) {
|
|
11
11
|
const returnError = (code, message) => {
|
|
12
|
-
var _a;
|
|
13
12
|
events_handler_1.default.fire('error', {
|
|
14
13
|
code,
|
|
15
|
-
message:
|
|
14
|
+
message: message?.message ?? message
|
|
16
15
|
});
|
|
17
16
|
throw code;
|
|
18
17
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { IncomingHttpHeaders } from 'http';
|
|
3
|
-
|
|
3
|
+
type Subscription<T = any> = (data: T) => void;
|
|
4
4
|
export interface RequestData {
|
|
5
5
|
body: unknown;
|
|
6
6
|
duration: number;
|
|
@@ -14,7 +14,7 @@ export interface RequestData {
|
|
|
14
14
|
errorDetails?: string;
|
|
15
15
|
errorCode?: string;
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
type Events = {
|
|
18
18
|
error: {
|
|
19
19
|
code: string;
|
|
20
20
|
message: string;
|
|
@@ -30,7 +30,7 @@ declare type Events = {
|
|
|
30
30
|
duration: number;
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
|
-
|
|
33
|
+
type EventsHandler = {
|
|
34
34
|
fire<T extends keyof Events>(eventName: T, data: Events[T]): void;
|
|
35
35
|
on<T extends keyof Events>(eventName: T, listener: Subscription<Events[T]>): void;
|
|
36
36
|
off<T extends keyof Events>(eventName: T, listener: Subscription<Events[T]>): void;
|
|
@@ -23,4 +23,4 @@ export default function repository(conf: Config): {
|
|
|
23
23
|
packageJson: Component;
|
|
24
24
|
}, componentName: string, componentVersion: string): Promise<ComponentsDetails>;
|
|
25
25
|
};
|
|
26
|
-
export
|
|
26
|
+
export type Repository = ReturnType<typeof repository>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { StorageAdapter } from 'oc-storage-adapters-utils';
|
|
2
|
-
|
|
2
|
+
type RemovePromiseOverload<T> = T extends {
|
|
3
3
|
(...args: infer B): void;
|
|
4
4
|
(...args: any[]): Promise<any>;
|
|
5
5
|
} ? (...args: B) => void : T;
|
|
6
|
-
|
|
6
|
+
type LegacyStorageAdapter = {
|
|
7
7
|
[P in keyof StorageAdapter]: RemovePromiseOverload<StorageAdapter[P]>;
|
|
8
8
|
};
|
|
9
9
|
export default function getPromiseBasedAdapter(adapter: StorageAdapter | LegacyStorageAdapter): StorageAdapter;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
type OkResult = {
|
|
2
2
|
isValid: true;
|
|
3
3
|
};
|
|
4
|
-
|
|
4
|
+
type ErrorResult = {
|
|
5
5
|
isValid: false;
|
|
6
6
|
error: {
|
|
7
7
|
suggestedVersion: string;
|
|
@@ -10,6 +10,6 @@ declare type ErrorResult = {
|
|
|
10
10
|
code: string;
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
type Result = OkResult | ErrorResult;
|
|
14
14
|
export default function nodeVersion(userAgent: string | undefined, nodeVersion: string): Result;
|
|
15
15
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
type OkResult = {
|
|
2
2
|
isValid: true;
|
|
3
3
|
};
|
|
4
|
-
|
|
4
|
+
type ErrorResult = {
|
|
5
5
|
isValid: false;
|
|
6
6
|
error: {
|
|
7
7
|
suggestedVersion: string;
|
|
@@ -10,6 +10,6 @@ declare type ErrorResult = {
|
|
|
10
10
|
code: string;
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
type Result = OkResult | ErrorResult;
|
|
14
14
|
export default function ocCliVersion(userAgent?: string): Result;
|
|
15
15
|
export {};
|
package/dist/registry/index.js
CHANGED
|
@@ -87,16 +87,15 @@ function registry(inputOptions) {
|
|
|
87
87
|
callback(null, { app, server });
|
|
88
88
|
});
|
|
89
89
|
server.on('error', error => {
|
|
90
|
-
var _a;
|
|
91
90
|
events_handler_1.default.fire('error', {
|
|
92
91
|
code: 'EXPRESS_ERROR',
|
|
93
|
-
message:
|
|
92
|
+
message: error?.message ?? String(error)
|
|
94
93
|
});
|
|
95
94
|
callback(error);
|
|
96
95
|
});
|
|
97
96
|
}
|
|
98
97
|
catch (err) {
|
|
99
|
-
callback(
|
|
98
|
+
callback(err?.msg || err);
|
|
100
99
|
}
|
|
101
100
|
};
|
|
102
101
|
return {
|
|
@@ -8,16 +8,15 @@ const lodash_1 = __importDefault(require("lodash"));
|
|
|
8
8
|
const require_wrapper_1 = __importDefault(require("../../domain/require-wrapper"));
|
|
9
9
|
function getAvailableDependencies(dependencies) {
|
|
10
10
|
return lodash_1.default.map(dependencies, dependency => {
|
|
11
|
-
var _a;
|
|
12
11
|
const requirer = (0, require_wrapper_1.default)(dependencies);
|
|
13
12
|
const core = lodash_1.default.includes(builtin_modules_1.default, dependency);
|
|
14
13
|
const packageJson = !core
|
|
15
14
|
? requirer(`${dependency}/package.json`)
|
|
16
15
|
: undefined;
|
|
17
|
-
const version = packageJson
|
|
16
|
+
const version = packageJson?.version;
|
|
18
17
|
const link = core
|
|
19
18
|
? `https://nodejs.org/api/${dependency}.html`
|
|
20
|
-
:
|
|
19
|
+
: packageJson?.homepage ?? '';
|
|
21
20
|
return { core, name: dependency, version, link };
|
|
22
21
|
});
|
|
23
22
|
}
|
|
@@ -3,7 +3,7 @@ import { Request, Response } from 'express';
|
|
|
3
3
|
import { IncomingHttpHeaders } from 'http';
|
|
4
4
|
import { Component, Config } from '../../../types';
|
|
5
5
|
import { GetComponentResult } from './get-component';
|
|
6
|
-
|
|
6
|
+
type ComponentCallback = (err: {
|
|
7
7
|
registryError: any;
|
|
8
8
|
fallbackError: any;
|
|
9
9
|
} | null, data: Component) => void;
|
|
@@ -5,12 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const got_1 = __importDefault(require("got"));
|
|
7
7
|
async function isUrlDiscoverable(url) {
|
|
8
|
-
var _a;
|
|
9
8
|
try {
|
|
10
9
|
const res = await (0, got_1.default)(url, {
|
|
11
10
|
headers: { accept: 'text/html' }
|
|
12
11
|
});
|
|
13
|
-
const isHtml = !!
|
|
12
|
+
const isHtml = !!res.headers['content-type']?.includes('text/html');
|
|
14
13
|
return {
|
|
15
14
|
isDiscoverable: isHtml
|
|
16
15
|
};
|
package/dist/types.d.ts
CHANGED
|
@@ -114,14 +114,14 @@ export interface VM {
|
|
|
114
114
|
title: string;
|
|
115
115
|
type: 'oc-registry' | 'oc-registry-local';
|
|
116
116
|
}
|
|
117
|
-
export
|
|
117
|
+
export type Authentication<T = any> = {
|
|
118
118
|
validate: (config: T) => {
|
|
119
119
|
isValid: boolean;
|
|
120
120
|
message: string;
|
|
121
121
|
};
|
|
122
122
|
middleware: (config: T) => any;
|
|
123
123
|
};
|
|
124
|
-
export
|
|
124
|
+
export type PublishAuthConfig = {
|
|
125
125
|
type: 'basic';
|
|
126
126
|
username: string;
|
|
127
127
|
password: string;
|
|
@@ -186,7 +186,7 @@ export interface Config {
|
|
|
186
186
|
timeout: number;
|
|
187
187
|
verbosity: number;
|
|
188
188
|
}
|
|
189
|
-
|
|
189
|
+
type CompiledTemplate = (model: unknown) => string;
|
|
190
190
|
interface CompilerOptions {
|
|
191
191
|
componentPackage: PackageJson & {
|
|
192
192
|
oc: OcConfiguration;
|
package/logintervals.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"to":"v0.49.21","from":"v0.49.20"},{"to":"v0.49.20","from":"v0.49.19"},{"to":"v0.49.19","from":"v0.49.18"},{"to":"v0.49.18","from":"v0.49.17"},{"to":"v0.49.17","from":"v0.49.16"},{"to":"v0.49.16","from":"v0.49.15"},{"to":"v0.49.15","from":"v0.49.14"},{"to":"v0.49.14","from":"v0.49.12"},{"to":"v0.49.12","from":"v0.49.11"},{"to":"v0.49.11","from":"v0.49.9"},{"to":"v0.49.9","from":"v0.49.8"},{"to":"v0.49.8","from":"v0.49.7"},{"to":"v0.49.7","from":"v0.49.6"},{"to":"v0.49.6","from":"v0.49.5"},{"to":"v0.49.5","from":"v0.49.4"},{"to":"v0.49.4","from":"v0.49.3"},{"to":"v0.49.3","from":"v0.49.2"},{"to":"v0.49.2","from":"v0.49.1"},{"to":"v0.49.1","from":"v0.49.0"},{"to":"v0.49.0","from":"v0.48.23"},{"to":"v0.48.23","from":"v0.48.22"},{"to":"v0.48.22","from":"v0.48.21"},{"to":"v0.48.21","from":"v0.48.19"},{"to":"v0.48.19","from":"v0.48.18"},{"to":"v0.48.18","from":"v0.48.17"},{"to":"v0.48.17","from":"v0.48.16"},{"to":"v0.48.16","from":"v0.48.15"},{"to":"v0.48.15","from":"v0.48.14"},{"to":"v0.48.14","from":"v0.48.13"},{"to":"v0.48.13","from":"v0.48.12"},{"to":"v0.48.12","from":"v0.48.11"},{"to":"v0.48.11","from":"v0.48.10"},{"to":"v0.48.10","from":"v0.48.9"},{"to":"v0.48.9","from":"v0.48.7"},{"to":"v0.48.7","from":"v0.48.6"},{"to":"v0.48.6","from":"v0.48.5"},{"to":"v0.48.5","from":"v0.48.4"},{"to":"v0.48.4","from":"v0.48.3"},{"to":"v0.48.3","from":"v0.48.2"},{"to":"v0.48.2","from":"v0.48.1"},{"to":"v0.48.1","from":"v0.48.0"},{"to":"v0.48.0","from":"v0.47.1"},{"to":"v0.47.1","from":"v0.47.0"},{"to":"v0.47.0","from":"v0.46.0"},{"to":"v0.46.0","from":"v0.45.4"},{"to":"v0.45.4","from":"v0.45.3"},{"to":"v0.45.3","from":"v0.45.2"},{"to":"v0.45.2","from":"v0.45.1"},{"to":"v0.45.1","from":"v0.45.0"},{"to":"v0.45.0","from":"v0.44.13"},{"to":"v0.44.13","from":"v0.44.12"},{"to":"v0.44.12","from":"v0.44.11"},{"to":"v0.44.11","from":"v0.44.10"},{"to":"v0.44.10","from":"v0.44.9"},{"to":"v0.44.9","from":"v0.44.8"},{"to":"v0.44.8","from":"v0.44.7"},{"to":"v0.44.7","from":"v0.44.6"},{"to":"v0.44.6","from":"v0.44.5"},{"to":"v0.44.5","from":"v0.44.4"},{"to":"v0.44.4","from":"v0.44.3"},{"to":"v0.44.3","from":"v0.44.2"},{"to":"v0.44.2","from":"v0.44.1"},{"to":"v0.44.1","from":"v0.44.0"},{"to":"v0.44.0","from":"v0.43.2"},{"to":"v0.43.2","from":"v0.43.1"},{"to":"v0.43.1","from":"v0.43.0"},{"to":"v0.43.0","from":"v0.42.26"},{"to":"v0.42.26","from":"v0.42.25"},{"to":"v0.42.25","from":"v0.42.24"},{"to":"v0.42.24","from":"v0.42.23"},{"to":"v0.42.23","from":"v0.42.22"},{"to":"v0.42.22","from":"v0.42.21"},{"to":"v0.42.21","from":"v0.42.20"},{"to":"v0.42.20","from":"v0.42.19"},{"to":"v0.42.19","from":"v0.42.18"},{"to":"v0.42.18","from":"v0.42.17"},{"to":"v0.42.17","from":"v0.42.16"},{"to":"v0.42.16","from":"v0.42.15"},{"to":"v0.42.15","from":"v0.42.14"},{"to":"v0.42.14","from":"v0.42.13"},{"to":"v0.42.13","from":"v0.42.12"},{"to":"v0.42.12","from":"v0.42.10"},{"to":"v0.42.10","from":"v0.42.9"},{"to":"v0.42.9","from":"v0.42.8"},{"to":"v0.42.8","from":"v0.42.7"},{"to":"v0.42.7","from":"v0.42.6"},{"to":"v0.42.6","from":"v0.42.5"},{"to":"v0.42.5","from":"v0.42.4"},{"to":"v0.42.4","from":"v0.42.3"},{"to":"v0.42.3","from":"v0.42.2"},{"to":"v0.42.2","from":"v0.42.1"},{"to":"v0.42.1","from":"v0.42.0"},{"to":"v0.42.0","from":"v0.41.16"},{"to":"v0.41.16","from":"v0.41.15"},{"to":"v0.41.15","from":"v0.41.14"},{"to":"v0.41.14","from":"v0.41.13"},{"to":"v0.41.13","from":"v0.41.12"},{"to":"v0.41.12","from":"v0.41.11"},{"to":"v0.41.11","from":"v0.41.10"},{"to":"v0.41.10","from":"v0.41.9"},{"to":"v0.41.9","from":"v0.41.8"},{"to":"v0.41.8","from":"v0.41.7"},{"to":"v0.41.7","from":"v0.41.6"},{"to":"v0.41.6","from":"v0.41.5"},{"to":"v0.41.5","from":"v0.41.4"},{"to":"v0.41.4","from":"v0.41.3"},{"to":"v0.41.3","from":"v0.41.2"},{"to":"v0.41.2","from":"v0.41.1"},{"to":"v0.41.1","from":"v0.41.0"},{"to":"v0.41.0","from":"v0.40.10"},{"to":"v0.40.10","from":"v0.40.9"},{"to":"v0.40.9","from":"v0.40.8"},{"to":"v0.40.8","from":"v0.40.7"},{"to":"v0.40.7","from":"v0.40.6"},{"to":"v0.40.6","from":"v0.40.5"},{"to":"v0.40.5","from":"v0.40.4"},{"to":"v0.40.4","from":"v0.40.3"},{"to":"v0.40.3","from":"v0.40.2"},{"to":"v0.40.2","from":"v0.40.1"},{"to":"v0.40.1","from":"v0.40.0"},{"to":"v0.40.0","from":"v0.39.8"},{"to":"v0.39.8","from":"v0.39.7"},{"to":"v0.39.7","from":"v0.39.6"},{"to":"v0.39.6","from":"v0.39.5"},{"to":"v0.39.5","from":"v0.39.4"},{"to":"v0.39.4","from":"v0.39.3"},{"to":"v0.39.3","from":"v0.39.2"},{"to":"v0.39.2","from":"v0.39.1"},{"to":"v0.39.1","from":"v0.39.0"},{"to":"v0.39.0","from":"v0.38.8"},{"to":"v0.38.8","from":"v0.38.7"},{"to":"v0.38.7","from":"v0.38.6"},{"to":"v0.38.6","from":"v0.38.5"},{"to":"v0.38.5","from":"v0.38.4"},{"to":"v0.38.4","from":"v0.38.3"},{"to":"v0.38.3","from":"v0.38.2"},{"to":"v0.38.2","from":"v0.38.1"},{"to":"v0.38.1","from":"v0.38.0"},{"to":"v0.38.0","from":"v0.37.11"},{"to":"v0.37.11","from":"v0.37.10"},{"to":"v0.37.10","from":"v0.37.9"},{"to":"v0.37.9","from":"v0.37.8"},{"to":"v0.37.8","from":"v0.37.7"},{"to":"v0.37.7","from":"v0.37.6"},{"to":"v0.37.6","from":"v0.37.5"},{"to":"v0.37.5","from":"v0.37.4"},{"to":"v0.37.4","from":"v0.37.3"},{"to":"v0.37.3","from":"v0.37.2"},{"to":"v0.37.2","from":"v0.37.1"},{"to":"v0.37.1","from":"v0.37.0"},{"to":"v0.37.0","from":"v0.36.28"},{"to":"v0.36.28","from":"v0.36.27"},{"to":"v0.36.27","from":"v0.36.26"},{"to":"v0.36.26","from":"v0.36.25"},{"to":"v0.36.25","from":"v0.36.24"},{"to":"v0.36.24","from":"v0.36.23"},{"to":"v0.36.23","from":"v0.36.22"},{"to":"v0.36.22","from":"v0.36.21"},{"to":"v0.36.21","from":"v0.36.20"},{"to":"v0.36.20","from":"v0.36.19"},{"to":"v0.36.19","from":"v0.36.18"},{"to":"v0.36.18","from":"v0.36.17"},{"to":"v0.36.17","from":"v0.36.16"},{"to":"v0.36.16","from":"v0.36.15"},{"to":"v0.36.15","from":"v0.36.14"},{"to":"v0.36.14","from":"v0.36.13"},{"to":"v0.36.13","from":"v0.36.12"},{"to":"v0.36.12","from":"v0.36.11"},{"to":"v0.36.11","from":"v0.36.10"},{"to":"v0.36.10","from":"v0.36.9"},{"to":"v0.36.9","from":"v0.36.8"},{"to":"v0.36.8","from":"v0.36.7"},{"to":"v0.36.7","from":"v0.36.6"},{"to":"v0.36.6","from":"v0.36.5"},{"to":"v0.36.5","from":"v0.36.4"},{"to":"v0.36.4","from":"v0.36.3"},{"to":"v0.36.3","from":"v0.36.2"},{"to":"v0.36.2","from":"v0.36.1"},{"to":"v0.36.1","from":"v0.36.0"},{"to":"v0.36.0","from":"v0.35.6"},{"to":"v0.35.6","from":"v0.35.5"},{"to":"v0.35.5","from":"v0.35.4"},{"to":"v0.35.4","from":"v0.35.3"},{"to":"v0.35.3","from":"v0.35.2"},{"to":"v0.35.2","from":"v0.35.1"},{"to":"v0.35.1","from":"v0.35.0"},{"to":"v0.35.0","from":"v0.34.8"},{"to":"v0.34.8","from":"v0.34.7"},{"to":"v0.34.7","from":"v0.34.6"},{"to":"v0.34.6","from":"v0.34.5"},{"to":"v0.34.5","from":"v0.34.4"},{"to":"v0.34.4","from":"v0.34.3"},{"to":"v0.34.3","from":"v0.34.2"},{"to":"v0.34.2","from":"v0.34.1"},{"to":"v0.34.1","from":"v0.34.0"},{"to":"v0.34.0","from":"v0.33.31"},{"to":"v0.33.31","from":"v0.33.30"},{"to":"v0.33.30","from":"v0.33.29"},{"to":"v0.33.29","from":"v0.33.28"},{"to":"v0.33.28","from":"v0.33.27"},{"to":"v0.33.27","from":"v0.33.26"},{"to":"v0.33.26","from":"v0.33.25"},{"to":"v0.33.25","from":"v0.33.24"},{"to":"v0.33.24","from":"v0.33.23"},{"to":"v0.33.23","from":"v0.33.22"},{"to":"v0.33.22","from":"v0.33.21"},{"to":"v0.33.21","from":"v0.33.20"},{"to":"v0.33.20","from":"v0.33.19"},{"to":"v0.33.19","from":"v0.33.18"},{"to":"v0.33.18","from":"v0.33.17"},{"to":"v0.33.17","from":"v0.33.16"},{"to":"v0.33.16","from":"v0.33.15"},{"to":"v0.33.15","from":"v0.33.14"},{"to":"v0.33.14","from":"v0.33.13"},{"to":"v0.33.13","from":"v0.33.12"},{"to":"v0.33.12","from":"v0.33.11"},{"to":"v0.33.11","from":"v0.33.10"},{"to":"v0.33.10","from":"v0.33.9"},{"to":"v0.33.9","from":"v0.33.8"},{"to":"v0.33.8","from":"v0.33.7"},{"to":"v0.33.7","from":"v0.33.6"},{"to":"v0.33.6","from":"v0.33.5"},{"to":"v0.33.5","from":"v0.33.4"},{"to":"v0.33.4","from":"v0.33.3"},{"to":"v0.33.3","from":"v0.33.2"},{"to":"v0.33.2","from":"v0.33.1"},{"to":"v0.33.1","from":"v0.33.0"},{"to":"v0.33.0","from":"v0.32.6"},{"to":"v0.32.6","from":"v0.32.5"},{"to":"v0.32.5","from":"v0.32.4"},{"to":"v0.32.4","from":"v0.32.3"},{"to":"v0.32.3","from":"v0.32.2"},{"to":"v0.32.2","from":"v0.32.1"},{"to":"v0.32.1","from":"v0.32.0"},{"to":"v0.32.0","from":"v0.31.2"},{"to":"v0.31.2","from":"v0.31.1"},{"to":"v0.31.1","from":"v0.31.0"},{"to":"v0.31.0","from":"v0.30.9"},{"to":"v0.30.9","from":"v0.30.8"},{"to":"v0.30.8","from":"v0.30.7"},{"to":"v0.30.7","from":"v0.30.6"},{"to":"v0.30.6","from":"v0.30.5"},{"to":"v0.30.5","from":"v0.30.4"},{"to":"v0.30.4","from":"v0.30.3"},{"to":"v0.30.3","from":"v0.30.2"},{"to":"v0.30.2","from":"v0.30.1"},{"to":"v0.30.1","from":"v0.30.0"},{"to":"v0.30.0","from":"v0.29.4"},{"to":"v0.29.4","from":"v0.29.3"},{"to":"v0.29.3","from":"v0.29.2"},{"to":"v0.29.2","from":"v0.29.1"},{"to":"v0.29.1","from":"v0.29.0"},{"to":"v0.29.0","from":"v0.28.9"},{"to":"v0.28.9","from":"v0.28.8"},{"to":"v0.28.8","from":"v0.28.7"},{"to":"v0.28.7","from":"v0.28.6"},{"to":"v0.28.6","from":"v0.28.5"},{"to":"v0.28.5","from":"v0.28.4"},{"to":"v0.28.4","from":"v0.28.3"},{"to":"v0.28.3","from":"v0.28.2"},{"to":"v0.28.2","from":"v0.28.1"},{"to":"v0.28.1","from":"v0.28.0"},{"to":"v0.28.0","from":"v0.27.9"},{"to":"v0.27.9","from":"v0.27.8"},{"to":"v0.27.8","from":"v0.27.7"},{"to":"v0.27.7","from":"v0.27.6"},{"to":"v0.27.6","from":"v0.27.5"},{"to":"v0.27.5","from":"v0.27.4"},{"to":"v0.27.4","from":"v0.27.3"},{"to":"v0.27.3","from":"v0.27.2"},{"to":"v0.27.2","from":"v0.27.1"},{"to":"v0.27.1","from":"v0.27.0"},{"to":"v0.27.0","from":"v0.26.2"},{"to":"v0.26.2","from":"v0.26.1"},{"to":"v0.26.1","from":"v0.26.0"},{"to":"v0.26.0","from":"v0.25.0"},{"to":"v0.25.0","from":"v0.24.1"},{"to":"v0.24.1","from":"v0.24.0"},{"to":"v0.24.0","from":"v0.23.7"},{"to":"v0.23.7","from":"v0.23.6"},{"to":"v0.23.6","from":"v0.23.5"},{"to":"v0.23.5","from":"v0.23.4"},{"to":"v0.23.4","from":"v0.23.3"},{"to":"v0.23.3","from":"v0.23.2"},{"to":"v0.23.2","from":"v0.23.1"},{"to":"v0.23.1","from":"v0.23.0"},{"to":"v0.23.0","from":"v0.22.3"},{"to":"v0.22.3","from":"v0.22.2"},{"to":"v0.22.2","from":"v0.22.1"},{"to":"v0.22.1","from":"v0.22.0"},{"to":"v0.22.0","from":"v0.21.0"},{"to":"v0.21.0","from":"v0.20.5"},{"to":"v0.20.5","from":"v0.20.4"},{"to":"v0.20.4","from":"v0.20.3"},{"to":"v0.20.3","from":"v0.20.2"},{"to":"v0.20.2","from":"v0.20.1"},{"to":"v0.20.1","from":"v0.20.0"},{"to":"v0.20.0","from":"v0.19.5"},{"to":"v0.19.5","from":"v0.19.4"},{"to":"v0.19.4","from":"v0.19.3"},{"to":"v0.19.3","from":"v0.19.2"},{"to":"v0.19.2","from":"v0.19.1"},{"to":"v0.19.1","from":"v0.19.0"},{"to":"v0.19.0","from":"6181a540729a7179d7a9d41489dfc241335cf1b5"}]
|
|
1
|
+
[{"to":"v0.49.22","from":"v0.49.21"},{"to":"v0.49.21","from":"v0.49.20"},{"to":"v0.49.20","from":"v0.49.19"},{"to":"v0.49.19","from":"v0.49.18"},{"to":"v0.49.18","from":"v0.49.17"},{"to":"v0.49.17","from":"v0.49.16"},{"to":"v0.49.16","from":"v0.49.15"},{"to":"v0.49.15","from":"v0.49.14"},{"to":"v0.49.14","from":"v0.49.12"},{"to":"v0.49.12","from":"v0.49.11"},{"to":"v0.49.11","from":"v0.49.9"},{"to":"v0.49.9","from":"v0.49.8"},{"to":"v0.49.8","from":"v0.49.7"},{"to":"v0.49.7","from":"v0.49.6"},{"to":"v0.49.6","from":"v0.49.5"},{"to":"v0.49.5","from":"v0.49.4"},{"to":"v0.49.4","from":"v0.49.3"},{"to":"v0.49.3","from":"v0.49.2"},{"to":"v0.49.2","from":"v0.49.1"},{"to":"v0.49.1","from":"v0.49.0"},{"to":"v0.49.0","from":"v0.48.23"},{"to":"v0.48.23","from":"v0.48.22"},{"to":"v0.48.22","from":"v0.48.21"},{"to":"v0.48.21","from":"v0.48.19"},{"to":"v0.48.19","from":"v0.48.18"},{"to":"v0.48.18","from":"v0.48.17"},{"to":"v0.48.17","from":"v0.48.16"},{"to":"v0.48.16","from":"v0.48.15"},{"to":"v0.48.15","from":"v0.48.14"},{"to":"v0.48.14","from":"v0.48.13"},{"to":"v0.48.13","from":"v0.48.12"},{"to":"v0.48.12","from":"v0.48.11"},{"to":"v0.48.11","from":"v0.48.10"},{"to":"v0.48.10","from":"v0.48.9"},{"to":"v0.48.9","from":"v0.48.7"},{"to":"v0.48.7","from":"v0.48.6"},{"to":"v0.48.6","from":"v0.48.5"},{"to":"v0.48.5","from":"v0.48.4"},{"to":"v0.48.4","from":"v0.48.3"},{"to":"v0.48.3","from":"v0.48.2"},{"to":"v0.48.2","from":"v0.48.1"},{"to":"v0.48.1","from":"v0.48.0"},{"to":"v0.48.0","from":"v0.47.1"},{"to":"v0.47.1","from":"v0.47.0"},{"to":"v0.47.0","from":"v0.46.0"},{"to":"v0.46.0","from":"v0.45.4"},{"to":"v0.45.4","from":"v0.45.3"},{"to":"v0.45.3","from":"v0.45.2"},{"to":"v0.45.2","from":"v0.45.1"},{"to":"v0.45.1","from":"v0.45.0"},{"to":"v0.45.0","from":"v0.44.13"},{"to":"v0.44.13","from":"v0.44.12"},{"to":"v0.44.12","from":"v0.44.11"},{"to":"v0.44.11","from":"v0.44.10"},{"to":"v0.44.10","from":"v0.44.9"},{"to":"v0.44.9","from":"v0.44.8"},{"to":"v0.44.8","from":"v0.44.7"},{"to":"v0.44.7","from":"v0.44.6"},{"to":"v0.44.6","from":"v0.44.5"},{"to":"v0.44.5","from":"v0.44.4"},{"to":"v0.44.4","from":"v0.44.3"},{"to":"v0.44.3","from":"v0.44.2"},{"to":"v0.44.2","from":"v0.44.1"},{"to":"v0.44.1","from":"v0.44.0"},{"to":"v0.44.0","from":"v0.43.2"},{"to":"v0.43.2","from":"v0.43.1"},{"to":"v0.43.1","from":"v0.43.0"},{"to":"v0.43.0","from":"v0.42.26"},{"to":"v0.42.26","from":"v0.42.25"},{"to":"v0.42.25","from":"v0.42.24"},{"to":"v0.42.24","from":"v0.42.23"},{"to":"v0.42.23","from":"v0.42.22"},{"to":"v0.42.22","from":"v0.42.21"},{"to":"v0.42.21","from":"v0.42.20"},{"to":"v0.42.20","from":"v0.42.19"},{"to":"v0.42.19","from":"v0.42.18"},{"to":"v0.42.18","from":"v0.42.17"},{"to":"v0.42.17","from":"v0.42.16"},{"to":"v0.42.16","from":"v0.42.15"},{"to":"v0.42.15","from":"v0.42.14"},{"to":"v0.42.14","from":"v0.42.13"},{"to":"v0.42.13","from":"v0.42.12"},{"to":"v0.42.12","from":"v0.42.10"},{"to":"v0.42.10","from":"v0.42.9"},{"to":"v0.42.9","from":"v0.42.8"},{"to":"v0.42.8","from":"v0.42.7"},{"to":"v0.42.7","from":"v0.42.6"},{"to":"v0.42.6","from":"v0.42.5"},{"to":"v0.42.5","from":"v0.42.4"},{"to":"v0.42.4","from":"v0.42.3"},{"to":"v0.42.3","from":"v0.42.2"},{"to":"v0.42.2","from":"v0.42.1"},{"to":"v0.42.1","from":"v0.42.0"},{"to":"v0.42.0","from":"v0.41.16"},{"to":"v0.41.16","from":"v0.41.15"},{"to":"v0.41.15","from":"v0.41.14"},{"to":"v0.41.14","from":"v0.41.13"},{"to":"v0.41.13","from":"v0.41.12"},{"to":"v0.41.12","from":"v0.41.11"},{"to":"v0.41.11","from":"v0.41.10"},{"to":"v0.41.10","from":"v0.41.9"},{"to":"v0.41.9","from":"v0.41.8"},{"to":"v0.41.8","from":"v0.41.7"},{"to":"v0.41.7","from":"v0.41.6"},{"to":"v0.41.6","from":"v0.41.5"},{"to":"v0.41.5","from":"v0.41.4"},{"to":"v0.41.4","from":"v0.41.3"},{"to":"v0.41.3","from":"v0.41.2"},{"to":"v0.41.2","from":"v0.41.1"},{"to":"v0.41.1","from":"v0.41.0"},{"to":"v0.41.0","from":"v0.40.10"},{"to":"v0.40.10","from":"v0.40.9"},{"to":"v0.40.9","from":"v0.40.8"},{"to":"v0.40.8","from":"v0.40.7"},{"to":"v0.40.7","from":"v0.40.6"},{"to":"v0.40.6","from":"v0.40.5"},{"to":"v0.40.5","from":"v0.40.4"},{"to":"v0.40.4","from":"v0.40.3"},{"to":"v0.40.3","from":"v0.40.2"},{"to":"v0.40.2","from":"v0.40.1"},{"to":"v0.40.1","from":"v0.40.0"},{"to":"v0.40.0","from":"v0.39.8"},{"to":"v0.39.8","from":"v0.39.7"},{"to":"v0.39.7","from":"v0.39.6"},{"to":"v0.39.6","from":"v0.39.5"},{"to":"v0.39.5","from":"v0.39.4"},{"to":"v0.39.4","from":"v0.39.3"},{"to":"v0.39.3","from":"v0.39.2"},{"to":"v0.39.2","from":"v0.39.1"},{"to":"v0.39.1","from":"v0.39.0"},{"to":"v0.39.0","from":"v0.38.8"},{"to":"v0.38.8","from":"v0.38.7"},{"to":"v0.38.7","from":"v0.38.6"},{"to":"v0.38.6","from":"v0.38.5"},{"to":"v0.38.5","from":"v0.38.4"},{"to":"v0.38.4","from":"v0.38.3"},{"to":"v0.38.3","from":"v0.38.2"},{"to":"v0.38.2","from":"v0.38.1"},{"to":"v0.38.1","from":"v0.38.0"},{"to":"v0.38.0","from":"v0.37.11"},{"to":"v0.37.11","from":"v0.37.10"},{"to":"v0.37.10","from":"v0.37.9"},{"to":"v0.37.9","from":"v0.37.8"},{"to":"v0.37.8","from":"v0.37.7"},{"to":"v0.37.7","from":"v0.37.6"},{"to":"v0.37.6","from":"v0.37.5"},{"to":"v0.37.5","from":"v0.37.4"},{"to":"v0.37.4","from":"v0.37.3"},{"to":"v0.37.3","from":"v0.37.2"},{"to":"v0.37.2","from":"v0.37.1"},{"to":"v0.37.1","from":"v0.37.0"},{"to":"v0.37.0","from":"v0.36.28"},{"to":"v0.36.28","from":"v0.36.27"},{"to":"v0.36.27","from":"v0.36.26"},{"to":"v0.36.26","from":"v0.36.25"},{"to":"v0.36.25","from":"v0.36.24"},{"to":"v0.36.24","from":"v0.36.23"},{"to":"v0.36.23","from":"v0.36.22"},{"to":"v0.36.22","from":"v0.36.21"},{"to":"v0.36.21","from":"v0.36.20"},{"to":"v0.36.20","from":"v0.36.19"},{"to":"v0.36.19","from":"v0.36.18"},{"to":"v0.36.18","from":"v0.36.17"},{"to":"v0.36.17","from":"v0.36.16"},{"to":"v0.36.16","from":"v0.36.15"},{"to":"v0.36.15","from":"v0.36.14"},{"to":"v0.36.14","from":"v0.36.13"},{"to":"v0.36.13","from":"v0.36.12"},{"to":"v0.36.12","from":"v0.36.11"},{"to":"v0.36.11","from":"v0.36.10"},{"to":"v0.36.10","from":"v0.36.9"},{"to":"v0.36.9","from":"v0.36.8"},{"to":"v0.36.8","from":"v0.36.7"},{"to":"v0.36.7","from":"v0.36.6"},{"to":"v0.36.6","from":"v0.36.5"},{"to":"v0.36.5","from":"v0.36.4"},{"to":"v0.36.4","from":"v0.36.3"},{"to":"v0.36.3","from":"v0.36.2"},{"to":"v0.36.2","from":"v0.36.1"},{"to":"v0.36.1","from":"v0.36.0"},{"to":"v0.36.0","from":"v0.35.6"},{"to":"v0.35.6","from":"v0.35.5"},{"to":"v0.35.5","from":"v0.35.4"},{"to":"v0.35.4","from":"v0.35.3"},{"to":"v0.35.3","from":"v0.35.2"},{"to":"v0.35.2","from":"v0.35.1"},{"to":"v0.35.1","from":"v0.35.0"},{"to":"v0.35.0","from":"v0.34.8"},{"to":"v0.34.8","from":"v0.34.7"},{"to":"v0.34.7","from":"v0.34.6"},{"to":"v0.34.6","from":"v0.34.5"},{"to":"v0.34.5","from":"v0.34.4"},{"to":"v0.34.4","from":"v0.34.3"},{"to":"v0.34.3","from":"v0.34.2"},{"to":"v0.34.2","from":"v0.34.1"},{"to":"v0.34.1","from":"v0.34.0"},{"to":"v0.34.0","from":"v0.33.31"},{"to":"v0.33.31","from":"v0.33.30"},{"to":"v0.33.30","from":"v0.33.29"},{"to":"v0.33.29","from":"v0.33.28"},{"to":"v0.33.28","from":"v0.33.27"},{"to":"v0.33.27","from":"v0.33.26"},{"to":"v0.33.26","from":"v0.33.25"},{"to":"v0.33.25","from":"v0.33.24"},{"to":"v0.33.24","from":"v0.33.23"},{"to":"v0.33.23","from":"v0.33.22"},{"to":"v0.33.22","from":"v0.33.21"},{"to":"v0.33.21","from":"v0.33.20"},{"to":"v0.33.20","from":"v0.33.19"},{"to":"v0.33.19","from":"v0.33.18"},{"to":"v0.33.18","from":"v0.33.17"},{"to":"v0.33.17","from":"v0.33.16"},{"to":"v0.33.16","from":"v0.33.15"},{"to":"v0.33.15","from":"v0.33.14"},{"to":"v0.33.14","from":"v0.33.13"},{"to":"v0.33.13","from":"v0.33.12"},{"to":"v0.33.12","from":"v0.33.11"},{"to":"v0.33.11","from":"v0.33.10"},{"to":"v0.33.10","from":"v0.33.9"},{"to":"v0.33.9","from":"v0.33.8"},{"to":"v0.33.8","from":"v0.33.7"},{"to":"v0.33.7","from":"v0.33.6"},{"to":"v0.33.6","from":"v0.33.5"},{"to":"v0.33.5","from":"v0.33.4"},{"to":"v0.33.4","from":"v0.33.3"},{"to":"v0.33.3","from":"v0.33.2"},{"to":"v0.33.2","from":"v0.33.1"},{"to":"v0.33.1","from":"v0.33.0"},{"to":"v0.33.0","from":"v0.32.6"},{"to":"v0.32.6","from":"v0.32.5"},{"to":"v0.32.5","from":"v0.32.4"},{"to":"v0.32.4","from":"v0.32.3"},{"to":"v0.32.3","from":"v0.32.2"},{"to":"v0.32.2","from":"v0.32.1"},{"to":"v0.32.1","from":"v0.32.0"},{"to":"v0.32.0","from":"v0.31.2"},{"to":"v0.31.2","from":"v0.31.1"},{"to":"v0.31.1","from":"v0.31.0"},{"to":"v0.31.0","from":"v0.30.9"},{"to":"v0.30.9","from":"v0.30.8"},{"to":"v0.30.8","from":"v0.30.7"},{"to":"v0.30.7","from":"v0.30.6"},{"to":"v0.30.6","from":"v0.30.5"},{"to":"v0.30.5","from":"v0.30.4"},{"to":"v0.30.4","from":"v0.30.3"},{"to":"v0.30.3","from":"v0.30.2"},{"to":"v0.30.2","from":"v0.30.1"},{"to":"v0.30.1","from":"v0.30.0"},{"to":"v0.30.0","from":"v0.29.4"},{"to":"v0.29.4","from":"v0.29.3"},{"to":"v0.29.3","from":"v0.29.2"},{"to":"v0.29.2","from":"v0.29.1"},{"to":"v0.29.1","from":"v0.29.0"},{"to":"v0.29.0","from":"v0.28.9"},{"to":"v0.28.9","from":"v0.28.8"},{"to":"v0.28.8","from":"v0.28.7"},{"to":"v0.28.7","from":"v0.28.6"},{"to":"v0.28.6","from":"v0.28.5"},{"to":"v0.28.5","from":"v0.28.4"},{"to":"v0.28.4","from":"v0.28.3"},{"to":"v0.28.3","from":"v0.28.2"},{"to":"v0.28.2","from":"v0.28.1"},{"to":"v0.28.1","from":"v0.28.0"},{"to":"v0.28.0","from":"v0.27.9"},{"to":"v0.27.9","from":"v0.27.8"},{"to":"v0.27.8","from":"v0.27.7"},{"to":"v0.27.7","from":"v0.27.6"},{"to":"v0.27.6","from":"v0.27.5"},{"to":"v0.27.5","from":"v0.27.4"},{"to":"v0.27.4","from":"v0.27.3"},{"to":"v0.27.3","from":"v0.27.2"},{"to":"v0.27.2","from":"v0.27.1"},{"to":"v0.27.1","from":"v0.27.0"},{"to":"v0.27.0","from":"v0.26.2"},{"to":"v0.26.2","from":"v0.26.1"},{"to":"v0.26.1","from":"v0.26.0"},{"to":"v0.26.0","from":"v0.25.0"},{"to":"v0.25.0","from":"v0.24.1"},{"to":"v0.24.1","from":"v0.24.0"},{"to":"v0.24.0","from":"v0.23.7"},{"to":"v0.23.7","from":"v0.23.6"},{"to":"v0.23.6","from":"v0.23.5"},{"to":"v0.23.5","from":"v0.23.4"},{"to":"v0.23.4","from":"v0.23.3"},{"to":"v0.23.3","from":"v0.23.2"},{"to":"v0.23.2","from":"v0.23.1"},{"to":"v0.23.1","from":"v0.23.0"},{"to":"v0.23.0","from":"v0.22.3"},{"to":"v0.22.3","from":"v0.22.2"},{"to":"v0.22.2","from":"v0.22.1"},{"to":"v0.22.1","from":"v0.22.0"},{"to":"v0.22.0","from":"v0.21.0"},{"to":"v0.21.0","from":"v0.20.5"},{"to":"v0.20.5","from":"v0.20.4"},{"to":"v0.20.4","from":"v0.20.3"},{"to":"v0.20.3","from":"v0.20.2"},{"to":"v0.20.2","from":"v0.20.1"},{"to":"v0.20.1","from":"v0.20.0"},{"to":"v0.20.0","from":"v0.19.5"},{"to":"v0.19.5","from":"v0.19.4"},{"to":"v0.19.4","from":"v0.19.3"},{"to":"v0.19.3","from":"v0.19.2"},{"to":"v0.19.2","from":"v0.19.1"},{"to":"v0.19.1","from":"v0.19.0"},{"to":"v0.19.0","from":"6181a540729a7179d7a9d41489dfc241335cf1b5"}]
|