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.
Files changed (166) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/cli/domain/get-mocked-plugins.js +2 -3
  3. package/dist/cli/domain/handle-dependencies/ensure-compiler-is-declared-as-devDependency.js +1 -2
  4. package/dist/cli/domain/local.d.ts +1 -1
  5. package/dist/cli/domain/registry.d.ts +1 -1
  6. package/dist/cli/programmatic-api.d.ts +2 -2
  7. package/dist/components/oc-client/_package/package.json +1 -1
  8. package/dist/components/oc-client/package.json +1 -1
  9. package/dist/registry/domain/components-cache/components-list.d.ts +3 -3
  10. package/dist/registry/domain/components-cache/components-list.js +28 -5
  11. package/dist/registry/domain/components-cache/index.js +27 -22
  12. package/dist/registry/domain/components-details.js +1 -2
  13. package/dist/registry/domain/events-handler.d.ts +3 -3
  14. package/dist/registry/domain/plugins-initialiser.d.ts +1 -1
  15. package/dist/registry/domain/repository.d.ts +1 -1
  16. package/dist/registry/domain/storage-adapter.d.ts +2 -2
  17. package/dist/registry/domain/url-builder.d.ts +1 -1
  18. package/dist/registry/domain/validators/node-version.d.ts +3 -3
  19. package/dist/registry/domain/validators/oc-cli-version.d.ts +3 -3
  20. package/dist/registry/domain/validators/plugins-requirements.d.ts +1 -1
  21. package/dist/registry/domain/validators/registry-configuration.d.ts +1 -1
  22. package/dist/registry/domain/validators/uploaded-package.d.ts +1 -1
  23. package/dist/registry/index.js +2 -3
  24. package/dist/registry/routes/helpers/get-available-dependencies.js +2 -3
  25. package/dist/registry/routes/helpers/get-component-fallback.d.ts +1 -1
  26. package/dist/registry/routes/helpers/is-url-discoverable.js +1 -2
  27. package/dist/registry/views/info.d.ts +1 -1
  28. package/dist/registry/views/partials/selected-checkbox.d.ts +1 -1
  29. package/dist/types.d.ts +3 -3
  30. package/dist/utils/is-template-legacy.d.ts +1 -1
  31. package/logintervals.md +1 -1
  32. package/package.json +20 -20
  33. package/tsconfig.json +1 -1
  34. package/dist/components/oc-client/_package/src/oc-client.min.js +0 -3
  35. package/dist/components/oc-client/_package/src/oc-client.min.map +0 -1
  36. package/dist/components/oc-client/src/oc-client.min.js +0 -3
  37. package/dist/components/oc-client/src/oc-client.min.map +0 -1
  38. package/src/cli/commands.ts +0 -178
  39. package/src/cli/domain/clean.ts +0 -21
  40. package/src/cli/domain/get-components-by-dir.ts +0 -47
  41. package/src/cli/domain/get-mocked-plugins.ts +0 -154
  42. package/src/cli/domain/handle-dependencies/ensure-compiler-is-declared-as-devDependency.ts +0 -17
  43. package/src/cli/domain/handle-dependencies/get-compiler.ts +0 -35
  44. package/src/cli/domain/handle-dependencies/get-missing-dependencies.ts +0 -17
  45. package/src/cli/domain/handle-dependencies/index.ts +0 -93
  46. package/src/cli/domain/handle-dependencies/install-compiler.ts +0 -43
  47. package/src/cli/domain/handle-dependencies/install-missing-dependencies.ts +0 -48
  48. package/src/cli/domain/handle-dependencies/link-missing-dependencies.ts +0 -45
  49. package/src/cli/domain/handle-dependencies/require-template.ts +0 -62
  50. package/src/cli/domain/init-template/index.ts +0 -26
  51. package/src/cli/domain/init-template/install-template.ts +0 -52
  52. package/src/cli/domain/init-template/scaffold.ts +0 -45
  53. package/src/cli/domain/local.ts +0 -77
  54. package/src/cli/domain/mock.ts +0 -40
  55. package/src/cli/domain/package-components.ts +0 -61
  56. package/src/cli/domain/registry.ts +0 -147
  57. package/src/cli/domain/url-parser.ts +0 -44
  58. package/src/cli/domain/watch.ts +0 -33
  59. package/src/cli/facade/clean.ts +0 -75
  60. package/src/cli/facade/dev.ts +0 -214
  61. package/src/cli/facade/init.ts +0 -50
  62. package/src/cli/facade/mock.ts +0 -20
  63. package/src/cli/facade/package.ts +0 -65
  64. package/src/cli/facade/preview.ts +0 -28
  65. package/src/cli/facade/publish.ts +0 -209
  66. package/src/cli/facade/registry-add.ts +0 -23
  67. package/src/cli/facade/registry-ls.ts +0 -36
  68. package/src/cli/facade/registry-remove.ts +0 -23
  69. package/src/cli/facade/registry.ts +0 -9
  70. package/src/cli/index.ts +0 -142
  71. package/src/cli/logger.ts +0 -38
  72. package/src/cli/programmatic-api.ts +0 -142
  73. package/src/cli/validate-command.ts +0 -18
  74. package/src/components/oc-client/_package/package.json +0 -1
  75. package/src/components/oc-client/_package/server.js +0 -1
  76. package/src/components/oc-client/_package/src/oc-client.min.js +0 -3
  77. package/src/components/oc-client/_package/src/oc-client.min.map +0 -1
  78. package/src/components/oc-client/_package/template.js +0 -1
  79. package/src/components/oc-client/package.json +0 -26
  80. package/src/components/oc-client/server.js +0 -6
  81. package/src/components/oc-client/src/oc-client.min.js +0 -3
  82. package/src/components/oc-client/src/oc-client.min.map +0 -1
  83. package/src/components/oc-client/template.js +0 -4
  84. package/src/globals.d.ts +0 -103
  85. package/src/index.ts +0 -3
  86. package/src/oc-cli.js +0 -3
  87. package/src/registry/app-start.ts +0 -75
  88. package/src/registry/domain/authentication.ts +0 -59
  89. package/src/registry/domain/components-cache/components-list.ts +0 -70
  90. package/src/registry/domain/components-cache/index.ts +0 -90
  91. package/src/registry/domain/components-details.ts +0 -96
  92. package/src/registry/domain/events-handler.ts +0 -86
  93. package/src/registry/domain/extract-package.ts +0 -45
  94. package/src/registry/domain/get-package-json-from-temp-dir.ts +0 -9
  95. package/src/registry/domain/nested-renderer.ts +0 -88
  96. package/src/registry/domain/options-sanitiser.ts +0 -118
  97. package/src/registry/domain/plugins-initialiser.ts +0 -127
  98. package/src/registry/domain/register-templates.ts +0 -41
  99. package/src/registry/domain/repository.ts +0 -390
  100. package/src/registry/domain/require-wrapper.ts +0 -39
  101. package/src/registry/domain/sanitiser.ts +0 -60
  102. package/src/registry/domain/storage-adapter.ts +0 -85
  103. package/src/registry/domain/url-builder.ts +0 -80
  104. package/src/registry/domain/validators/component-parameters.ts +0 -112
  105. package/src/registry/domain/validators/index.ts +0 -24
  106. package/src/registry/domain/validators/node-version.ts +0 -59
  107. package/src/registry/domain/validators/oc-cli-version.ts +0 -52
  108. package/src/registry/domain/validators/package-json-validator.ts +0 -35
  109. package/src/registry/domain/validators/plugins-requirements.ts +0 -39
  110. package/src/registry/domain/validators/registry-configuration.ts +0 -143
  111. package/src/registry/domain/validators/uploaded-package.ts +0 -49
  112. package/src/registry/domain/version-handler.ts +0 -25
  113. package/src/registry/index.ts +0 -117
  114. package/src/registry/middleware/base-url-handler.ts +0 -16
  115. package/src/registry/middleware/cors.ts +0 -18
  116. package/src/registry/middleware/discovery-handler.ts +0 -20
  117. package/src/registry/middleware/file-uploads.ts +0 -28
  118. package/src/registry/middleware/index.ts +0 -53
  119. package/src/registry/middleware/request-handler.ts +0 -30
  120. package/src/registry/router.ts +0 -85
  121. package/src/registry/routes/component-info.ts +0 -119
  122. package/src/registry/routes/component-preview.ts +0 -87
  123. package/src/registry/routes/component.ts +0 -53
  124. package/src/registry/routes/components.ts +0 -107
  125. package/src/registry/routes/dependencies.ts +0 -27
  126. package/src/registry/routes/helpers/apply-default-values.ts +0 -29
  127. package/src/registry/routes/helpers/get-available-dependencies.ts +0 -31
  128. package/src/registry/routes/helpers/get-component-fallback.ts +0 -139
  129. package/src/registry/routes/helpers/get-component-retrieving-info.ts +0 -44
  130. package/src/registry/routes/helpers/get-component.ts +0 -583
  131. package/src/registry/routes/helpers/get-components-history.ts +0 -40
  132. package/src/registry/routes/helpers/is-url-discoverable.ts +0 -18
  133. package/src/registry/routes/index.ts +0 -127
  134. package/src/registry/routes/plugins.ts +0 -19
  135. package/src/registry/routes/publish.ts +0 -89
  136. package/src/registry/routes/static-redirector.ts +0 -74
  137. package/src/registry/views/index.ts +0 -66
  138. package/src/registry/views/info.ts +0 -89
  139. package/src/registry/views/partials/component-author.ts +0 -32
  140. package/src/registry/views/partials/component-parameters.ts +0 -53
  141. package/src/registry/views/partials/component-state.ts +0 -14
  142. package/src/registry/views/partials/component-versions.ts +0 -16
  143. package/src/registry/views/partials/components-dependencies.ts +0 -26
  144. package/src/registry/views/partials/components-history.ts +0 -24
  145. package/src/registry/views/partials/components-list.ts +0 -65
  146. package/src/registry/views/partials/components-plugins.ts +0 -23
  147. package/src/registry/views/partials/components-templates.ts +0 -36
  148. package/src/registry/views/partials/layout.ts +0 -32
  149. package/src/registry/views/partials/property.ts +0 -17
  150. package/src/registry/views/partials/selected-checkbox.ts +0 -16
  151. package/src/registry/views/preview.ts +0 -37
  152. package/src/registry/views/static/index.ts +0 -92
  153. package/src/registry/views/static/info.ts +0 -43
  154. package/src/registry/views/static/style.ts +0 -277
  155. package/src/resources/index.ts +0 -279
  156. package/src/resources/settings.ts +0 -17
  157. package/src/types.ts +0 -251
  158. package/src/utils/clean-require.ts +0 -35
  159. package/src/utils/date-stringify.ts +0 -23
  160. package/src/utils/error-to-string.ts +0 -13
  161. package/src/utils/is-template-legacy.ts +0 -7
  162. package/src/utils/is-template-valid.ts +0 -19
  163. package/src/utils/module-exists.ts +0 -14
  164. package/src/utils/npm-utils.ts +0 -109
  165. package/src/utils/put.ts +0 -35
  166. 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((_a = content.mocks.plugins.static) !== null && _a !== void 0 ? _a : {}, logger));
86
- plugins = plugins.concat(registerDynamicMocks(ocJsonLocation, (_b = content.mocks.plugins.dynamic) !== null && _b !== void 0 ? _b : {}, logger));
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 = (_a = pkg.devDependencies) === null || _a === void 0 ? void 0 : _a[compilerDep];
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 declare type Local = ReturnType<typeof local>;
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 declare type RegistryCli = ReturnType<typeof registry>;
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
- declare type Options<T extends (...args: any) => any> = Parameters<ReturnType<T>>[0];
12
- declare type Cb<T extends (...args: any) => any> = Parameters<ReturnType<T>>[1];
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.21","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.21","packaged":true,"date":1670568133835},"devDependencies":{"oc-template-es6-compiler":"^1.0.1"}}
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.21",
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 versions = await cdn.listSubDirectories(`${conf.storage.options.componentsDir}/${componentName}`);
17
- return versions.sort(semver_1.default.compare);
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 = () => setTimeout(async () => {
15
- try {
16
- const data = await componentsList.getFromJson();
17
- events_handler_1.default.fire('cache-poll', (0, oc_get_unix_utc_timestamp_1.default)());
18
- if (data.lastEdit > cachedComponentsList.lastEdit) {
19
- cachedComponentsList = data;
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
- catch (err) {
23
- events_handler_1.default.fire('error', {
24
- code: 'components_list_get',
25
- message: (err === null || err === void 0 ? void 0 : err.message) || String(err)
26
- });
27
- }
28
- refreshLoop = poll();
29
- }, conf.pollingInterval * 1000);
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
- var _a;
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
- const components = await componentsList.refresh();
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: (_a = message === null || message === void 0 ? void 0 : message.message) !== null && _a !== void 0 ? _a : 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
- declare type Subscription<T = any> = (data: T) => void;
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
- declare type Events = {
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
- declare type EventsHandler = {
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;
@@ -1,3 +1,3 @@
1
- declare type PluginFunctions = Record<string, (...args: unknown[]) => void>;
1
+ type PluginFunctions = Record<string, (...args: unknown[]) => void>;
2
2
  export declare function init(pluginsToRegister: unknown[]): Promise<PluginFunctions>;
3
3
  export {};
@@ -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 declare type Repository = ReturnType<typeof repository>;
26
+ export type Repository = ReturnType<typeof repository>;
@@ -1,9 +1,9 @@
1
1
  import { StorageAdapter } from 'oc-storage-adapters-utils';
2
- declare type RemovePromiseOverload<T> = T extends {
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
- declare type LegacyStorageAdapter = {
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,4 +1,4 @@
1
- declare type Component = {
1
+ type Component = {
2
2
  name: string;
3
3
  version?: string;
4
4
  parameters?: Record<string, string>;
@@ -1,7 +1,7 @@
1
- declare type OkResult = {
1
+ type OkResult = {
2
2
  isValid: true;
3
3
  };
4
- declare type ErrorResult = {
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
- declare type Result = OkResult | ErrorResult;
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
- declare type OkResult = {
1
+ type OkResult = {
2
2
  isValid: true;
3
3
  };
4
- declare type ErrorResult = {
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
- declare type Result = OkResult | ErrorResult;
13
+ type Result = OkResult | ErrorResult;
14
14
  export default function ocCliVersion(userAgent?: string): Result;
15
15
  export {};
@@ -1,5 +1,5 @@
1
1
  import { Config } from '../../../types';
2
- declare type ValidationResult = {
2
+ type ValidationResult = {
3
3
  isValid: true;
4
4
  } | {
5
5
  isValid: false;
@@ -1,5 +1,5 @@
1
1
  import { Config } from '../../../types';
2
- declare type ValidationResult = {
2
+ type ValidationResult = {
3
3
  isValid: true;
4
4
  } | {
5
5
  isValid: false;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="multer" />
2
- declare type ValidationResponse = {
2
+ type ValidationResponse = {
3
3
  isValid: true;
4
4
  files: Express.Multer.File[] | {
5
5
  [fieldname: string]: Express.Multer.File[];
@@ -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: (_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : String(error)
92
+ message: error?.message ?? String(error)
94
93
  });
95
94
  callback(error);
96
95
  });
97
96
  }
98
97
  catch (err) {
99
- callback((err === null || err === void 0 ? void 0 : err.msg) || err);
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 === null || packageJson === void 0 ? void 0 : packageJson.version;
16
+ const version = packageJson?.version;
18
17
  const link = core
19
18
  ? `https://nodejs.org/api/${dependency}.html`
20
- : (_a = packageJson === null || packageJson === void 0 ? void 0 : packageJson.homepage) !== null && _a !== void 0 ? _a : '';
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
- declare type ComponentCallback = (err: {
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 = !!((_a = res.headers['content-type']) === null || _a === void 0 ? void 0 : _a.includes('text/html'));
12
+ const isHtml = !!res.headers['content-type']?.includes('text/html');
14
13
  return {
15
14
  isDiscoverable: isHtml
16
15
  };
@@ -10,7 +10,7 @@ interface Vm {
10
10
  href: string;
11
11
  sandBoxDefaultQs: string;
12
12
  title: string;
13
- repositoryUrl: string;
13
+ repositoryUrl: string | null;
14
14
  }
15
15
  export default function info(vm: Vm): string;
16
16
  export {};
@@ -1,4 +1,4 @@
1
1
  import { VM } from '../../../types';
2
- declare type State = keyof VM['stateCounts'];
2
+ type State = keyof VM['stateCounts'];
3
3
  declare const selectedCheckbox: (vm: VM) => (name: State) => string;
4
4
  export default selectedCheckbox;
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 declare type Authentication<T = any> = {
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 declare type PublishAuthConfig = {
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
- declare type CompiledTemplate = (model: unknown) => string;
189
+ type CompiledTemplate = (model: unknown) => string;
190
190
  interface CompilerOptions {
191
191
  componentPackage: PackageJson & {
192
192
  oc: OcConfiguration;
@@ -1,3 +1,3 @@
1
- declare type LegacyTemplate = 'jade' | 'handlebars';
1
+ type LegacyTemplate = 'jade' | 'handlebars';
2
2
  export default function isTemplateLegacy(template: string): template is LegacyTemplate;
3
3
  export {};
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"}]