@alauda-fe/plugin-sdk 0.0.15 → 0.0.17

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.
@@ -1,15 +1,18 @@
1
- import { getUserLanguage, isBuiltInLanguage, } from '@alauda-fe/common';
1
+ import { FALLBACK_LANGUAGE, getUserLanguage, isBuiltInLanguage, } from '@alauda-fe/common';
2
2
  import { satisfies } from 'compare-versions';
3
3
  import { loadExtensions } from './extensions-loader';
4
4
  import { translateScope } from './utils';
5
- let extensions;
5
+ let _extensions;
6
6
  let extensionTranslations;
7
+ export function getAllExtensions() {
8
+ return _extensions || [];
9
+ }
7
10
  export function getAppExtensions(type, cluster) {
8
11
  const types = Array.isArray(type) ? type : [type];
9
- if (!extensions) {
12
+ if (!_extensions) {
10
13
  throw new Error('Extensions not loaded');
11
14
  }
12
- return extensions.filter(ext => {
15
+ return _extensions.filter(ext => {
13
16
  if (ext.cluster && cluster && ext.cluster !== cluster) {
14
17
  return false;
15
18
  }
@@ -20,7 +23,8 @@ export function getAppExtensionTranslations() {
20
23
  return extensionTranslations;
21
24
  }
22
25
  export async function setupAppExtensions(host, hostVersion) {
23
- extensions = (await loadExtensions()).filter(ext => {
26
+ const allExtensions = await loadExtensions();
27
+ _extensions = allExtensions.filter(ext => {
24
28
  if (!ext.type.startsWith('console-*/') &&
25
29
  !ext.type.startsWith(host + '/')) {
26
30
  return false;
@@ -34,13 +38,14 @@ export async function setupAppExtensions(host, hostVersion) {
34
38
  }
35
39
  return isVersionMatch;
36
40
  });
37
- window.__alauda_extensions = extensions;
41
+ // for debug
42
+ window.__alauda_extensions = _extensions;
38
43
  extensionTranslations = await loadTranslations();
39
- return extensions;
44
+ return _extensions;
40
45
  }
41
46
  async function loadTranslations() {
42
47
  const lang = getUserLanguage();
43
- const entrypoints = extensions.reduce((acc, curr) => {
48
+ const entrypoints = _extensions.reduce((acc, curr) => {
44
49
  acc[curr.entrypoint] = {
45
50
  scope: translateScope(curr, lang),
46
51
  };
@@ -55,21 +60,27 @@ async function loadTranslations() {
55
60
  }));
56
61
  }
57
62
  return await Promise.all(Object.entries(entrypoints).map(([entrypoint, { scope }]) => Promise.all([
58
- fetchI18nFile(`${entrypoint}/assets/i18n/en.json`),
63
+ fetchI18nFile(`${entrypoint}/assets/i18n/${FALLBACK_LANGUAGE}.json`),
59
64
  fetchI18nFile(`/console-i18n/${lang}/${scope}.json`),
60
65
  ]).then(([en, other]) => ({
66
+ [FALLBACK_LANGUAGE]: { [scope]: en },
61
67
  [lang]: {
62
- [scope]: Object.assign(en, other),
68
+ [scope]: other,
63
69
  },
64
70
  }))));
65
71
  }
66
72
  function fetchI18nFile(path) {
67
73
  return fetch(path)
68
- .then(res => res.json())
74
+ .then(res => {
75
+ if (!res.ok) {
76
+ throw new Error(`HTTP ${res.status}: ${res.statusText}`);
77
+ }
78
+ return res.json();
79
+ })
69
80
  .catch(err => {
70
81
  console.error(`Failed to load plugin i18n file, ${path}`);
71
82
  console.error(err);
72
- return {};
83
+ return null;
73
84
  });
74
85
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWV4dGVuc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2xpYi9hcHAtZXh0ZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGlCQUFpQixHQUVsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU3QyxPQUFPLEVBQWEsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV6QyxJQUFJLFVBQXVCLENBQUM7QUFFNUIsSUFBSSxxQkFBcUMsQ0FBQztBQUUxQyxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLElBQXVCLEVBQ3ZCLE9BQWdCO0lBRWhCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDN0IsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3RELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUF3QixDQUFDO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE9BQU8scUJBQXFCLENBQUM7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QyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNOLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDO1NBQ2xDO0tBQ0YsQ0FBQyxDQUFDLENBQ0osQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLElBQVk7SUFDakMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO1NBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3ZCLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGdldFVzZXJMYW5ndWFnZSxcbiAgaXNCdWlsdEluTGFuZ3VhZ2UsXG4gIFRyYW5zbGF0aW9ucyxcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuaW1wb3J0IHsgc2F0aXNmaWVzIH0gZnJvbSAnY29tcGFyZS12ZXJzaW9ucyc7XG5cbmltcG9ydCB7IEV4dGVuc2lvbiwgbG9hZEV4dGVuc2lvbnMgfSBmcm9tICcuL2V4dGVuc2lvbnMtbG9hZGVyJztcbmltcG9ydCB7IHRyYW5zbGF0ZVNjb3BlIH0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBleHRlbnNpb25zOiBFeHRlbnNpb25bXTtcblxubGV0IGV4dGVuc2lvblRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zW107XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcHBFeHRlbnNpb25zPFQgPSBhbnk+KFxuICB0eXBlOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgY2x1c3Rlcj86IHN0cmluZyxcbikge1xuICBjb25zdCB0eXBlcyA9IEFycmF5LmlzQXJyYXkodHlwZSkgPyB0eXBlIDogW3R5cGVdO1xuICBpZiAoIWV4dGVuc2lvbnMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4dGVuc2lvbnMgbm90IGxvYWRlZCcpO1xuICB9XG4gIHJldHVybiBleHRlbnNpb25zLmZpbHRlcihleHQgPT4ge1xuICAgIGlmIChleHQuY2x1c3RlciAmJiBjbHVzdGVyICYmIGV4dC5jbHVzdGVyICE9PSBjbHVzdGVyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVzLmluY2x1ZGVzKGV4dC50eXBlKTtcbiAgfSkgYXMgQXJyYXk8RXh0ZW5zaW9uPFQ+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcEV4dGVuc2lvblRyYW5zbGF0aW9ucygpIHtcbiAgcmV0dXJuIGV4dGVuc2lvblRyYW5zbGF0aW9ucztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNldHVwQXBwRXh0ZW5zaW9ucyhob3N0OiBzdHJpbmcsIGhvc3RWZXJzaW9uPzogc3RyaW5nKSB7XG4gIGV4dGVuc2lvbnMgPSAoYXdhaXQgbG9hZEV4dGVuc2lvbnMoKSkuZmlsdGVyKGV4dCA9PiB7XG4gICAgaWYgKFxuICAgICAgIWV4dC50eXBlLnN0YXJ0c1dpdGgoJ2NvbnNvbGUtKi8nKSAmJlxuICAgICAgIWV4dC50eXBlLnN0YXJ0c1dpdGgoaG9zdCArICcvJylcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXF1aXJlZFZlcnNpb24gPVxuICAgICAgZXh0LmRlcGVuZGVuY2llcz8uW2hvc3RdIHx8IGV4dC5kZXBlbmRlbmNpZXM/LlsnY29uc29sZS0qJ107XG5cbiAgICBjb25zdCBpc1ZlcnNpb25NYXRjaCA9XG4gICAgICBob3N0VmVyc2lvbiAmJiByZXF1aXJlZFZlcnNpb25cbiAgICAgICAgPyBzYXRpc2ZpZXMoaG9zdFZlcnNpb24sIHJlcXVpcmVkVmVyc2lvbilcbiAgICAgICAgOiB0cnVlO1xuXG4gICAgaWYgKCFpc1ZlcnNpb25NYXRjaCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgRXh0ZW5zaW9uIFwiJHtleHQucGx1Z2luTmFtZX1+JHtleHQuYXBwTmFtZX1cIiAoY2x1c3RlcjogJHtleHQuY2x1c3RlciB8fCAnZGVmYXVsdCd9KSBob3N0IHZlcnNpb24gbWlzbWF0Y2g6IHJlcXVpcmVkICR7cmVxdWlyZWRWZXJzaW9ufSwgY3VycmVudCBob3N0IHZlcnNpb24gJHtob3N0VmVyc2lvbn1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNWZXJzaW9uTWF0Y2g7XG4gIH0pO1xuXG4gICh3aW5kb3cgYXMgYW55KS5fX2FsYXVkYV9leHRlbnNpb25zID0gZXh0ZW5zaW9ucztcblxuICBleHRlbnNpb25UcmFuc2xhdGlvbnMgPSBhd2FpdCBsb2FkVHJhbnNsYXRpb25zKCk7XG5cbiAgcmV0dXJuIGV4dGVuc2lvbnM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRUcmFuc2xhdGlvbnMoKTogUHJvbWlzZTxcbiAgQXJyYXk8eyBbbGFuZzogc3RyaW5nXTogVHJhbnNsYXRpb25zIH0+XG4+IHtcbiAgY29uc3QgbGFuZyA9IGdldFVzZXJMYW5ndWFnZSgpO1xuXG4gIGNvbnN0IGVudHJ5cG9pbnRzID0gZXh0ZW5zaW9ucy5yZWR1Y2UoXG4gICAgKGFjYywgY3VycikgPT4ge1xuICAgICAgYWNjW2N1cnIuZW50cnlwb2ludF0gPSB7XG4gICAgICAgIHNjb3BlOiB0cmFuc2xhdGVTY29wZShjdXJyLCBsYW5nKSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAge30gYXMgUmVjb3JkPHN0cmluZywgeyBzY29wZTogc3RyaW5nIH0+LFxuICApO1xuXG4gIGlmIChpc0J1aWx0SW5MYW5ndWFnZShsYW5nKSkge1xuICAgIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIE9iamVjdC5lbnRyaWVzKGVudHJ5cG9pbnRzKS5tYXAoKFtlbnRyeXBvaW50LCB7IHNjb3BlIH1dKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBgJHtlbnRyeXBvaW50fS9hc3NldHMvaTE4bi8ke2xhbmd9Lmpzb25gO1xuICAgICAgICByZXR1cm4gZmV0Y2hJMThuRmlsZShwYXRoKS50aGVuKHRyYW5zbGF0aW9ucyA9PiAoe1xuICAgICAgICAgIFtsYW5nXTogeyBbc2NvcGVdOiB0cmFuc2xhdGlvbnMgfSxcbiAgICAgICAgfSkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBPYmplY3QuZW50cmllcyhlbnRyeXBvaW50cykubWFwKChbZW50cnlwb2ludCwgeyBzY29wZSB9XSkgPT5cbiAgICAgIFByb21pc2UuYWxsKFtcbiAgICAgICAgZmV0Y2hJMThuRmlsZShgJHtlbnRyeXBvaW50fS9hc3NldHMvaTE4bi9lbi5qc29uYCksXG4gICAgICAgIGZldGNoSTE4bkZpbGUoYC9jb25zb2xlLWkxOG4vJHtsYW5nfS8ke3Njb3BlfS5qc29uYCksXG4gICAgICBdKS50aGVuKChbZW4sIG90aGVyXSkgPT4gKHtcbiAgICAgICAgW2xhbmddOiB7XG4gICAgICAgICAgW3Njb3BlXTogT2JqZWN0LmFzc2lnbihlbiwgb3RoZXIpLFxuICAgICAgICB9LFxuICAgICAgfSkpLFxuICAgICksXG4gICk7XG59XG5cbmZ1bmN0aW9uIGZldGNoSTE4bkZpbGUocGF0aDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2xhdGlvbnM+IHtcbiAgcmV0dXJuIGZldGNoKHBhdGgpXG4gICAgLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpXG4gICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBwbHVnaW4gaTE4biBmaWxlLCAke3BhdGh9YCk7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICByZXR1cm4ge307XG4gICAgfSk7XG59XG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWV4dGVuc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2xpYi9hcHAtZXh0ZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixpQkFBaUIsR0FFbEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFN0MsT0FBTyxFQUFhLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFekMsSUFBSSxXQUF3QixDQUFDO0FBRTdCLElBQUkscUJBQXFDLENBQUM7QUFFMUMsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLFdBQVcsSUFBSSxFQUFFLENBQUM7QUFDM0IsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsSUFBdUIsRUFDdkIsT0FBZ0I7SUFFaEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM5QixJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksT0FBTyxJQUFJLEdBQUcsQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDdEQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJ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QUFDLEdBQUcsVUFBVSxnQkFBZ0IsaUJBQWlCLE9BQU8sQ0FBQztRQUNwRSxhQUFhLENBQUMsaUJBQWlCLElBQUksSUFBSSxLQUFLLE9BQU8sQ0FBQztLQUNyRCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDcEMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNOLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSztTQUNmO0tBQ0YsQ0FBQyxDQUFDLENBQ0osQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLElBQVk7SUFDakMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO1NBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUM7U0FDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFELE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGQUxMQkFDS19MQU5HVUFHRSxcbiAgZ2V0VXNlckxhbmd1YWdlLFxuICBpc0J1aWx0SW5MYW5ndWFnZSxcbiAgVHJhbnNsYXRpb25zLFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5pbXBvcnQgeyBzYXRpc2ZpZXMgfSBmcm9tICdjb21wYXJlLXZlcnNpb25zJztcblxuaW1wb3J0IHsgRXh0ZW5zaW9uLCBsb2FkRXh0ZW5zaW9ucyB9IGZyb20gJy4vZXh0ZW5zaW9ucy1sb2FkZXInO1xuaW1wb3J0IHsgdHJhbnNsYXRlU2NvcGUgfSBmcm9tICcuL3V0aWxzJztcblxubGV0IF9leHRlbnNpb25zOiBFeHRlbnNpb25bXTtcblxubGV0IGV4dGVuc2lvblRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zW107XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxFeHRlbnNpb25zKCk6IEV4dGVuc2lvbltdIHtcbiAgcmV0dXJuIF9leHRlbnNpb25zIHx8IFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBwRXh0ZW5zaW9uczxUID0gYW55PihcbiAgdHlwZTogc3RyaW5nIHwgc3RyaW5nW10sXG4gIGNsdXN0ZXI/OiBzdHJpbmcsXG4pIHtcbiAgY29uc3QgdHlwZXMgPSBBcnJheS5pc0FycmF5KHR5cGUpID8gdHlwZSA6IFt0eXBlXTtcbiAgaWYgKCFfZXh0ZW5zaW9ucykge1xuICAgIHRocm93IG5ldyBFcnJvcignRXh0ZW5zaW9ucyBub3QgbG9hZGVkJyk7XG4gIH1cbiAgcmV0dXJuIF9leHRlbnNpb25zLmZpbHRlcihleHQgPT4ge1xuICAgIGlmIChleHQuY2x1c3RlciAmJiBjbHVzdGVyICYmIGV4dC5jbHVzdGVyICE9PSBjbHVzdGVyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVzLmluY2x1ZGVzKGV4dC50eXBlKTtcbiAgfSkgYXMgQXJyYXk8RXh0ZW5zaW9uPFQ+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcEV4dGVuc2lvblRyYW5zbGF0aW9ucygpIHtcbiAgcmV0dXJuIGV4dGVuc2lvblRyYW5zbGF0aW9ucztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNldHVwQXBwRXh0ZW5zaW9ucyhob3N0OiBzdHJpbmcsIGhvc3RWZXJzaW9uPzogc3RyaW5nKSB7XG4gIGNvbnN0IGFsbEV4dGVuc2lvbnMgPSBhd2FpdCBsb2FkRXh0ZW5zaW9ucygpO1xuXG4gIF9leHRlbnNpb25zID0gYWxsRXh0ZW5zaW9ucy5maWx0ZXIoZXh0ID0+IHtcbiAgICBpZiAoXG4gICAgICAhZXh0LnR5cGUuc3RhcnRzV2l0aCgnY29uc29sZS0qLycpICYmXG4gICAgICAhZXh0LnR5cGUuc3RhcnRzV2l0aChob3N0ICsgJy8nKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVpcmVkVmVyc2lvbiA9XG4gICAgICBleHQuZGVwZW5kZW5jaWVzPy5baG9zdF0gfHwgZXh0LmRlcGVuZGVuY2llcz8uWydjb25zb2xlLSonXTtcblxuICAgIGNvbnN0IGlzVmVyc2lvbk1hdGNoID1cbiAgICAgIGhvc3RWZXJzaW9uICYmIHJlcXVpcmVkVmVyc2lvblxuICAgICAgICA/IHNhdGlzZmllcyhob3N0VmVyc2lvbiwgcmVxdWlyZWRWZXJzaW9uKVxuICAgICAgICA6IHRydWU7XG5cbiAgICBpZiAoIWlzVmVyc2lvbk1hdGNoKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBFeHRlbnNpb24gXCIke2V4dC5wbHVnaW5OYW1lfX4ke2V4dC5hcHBOYW1lfVwiIChjbHVzdGVyOiAke2V4dC5jbHVzdGVyIHx8ICdkZWZhdWx0J30pIGhvc3QgdmVyc2lvbiBtaXNtYXRjaDogcmVxdWlyZWQgJHtyZXF1aXJlZFZlcnNpb259LCBjdXJyZW50IGhvc3QgdmVyc2lvbiAke2hvc3RWZXJzaW9ufWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBpc1ZlcnNpb25NYXRjaDtcbiAgfSk7XG5cbiAgLy8gZm9yIGRlYnVnXG4gICh3aW5kb3cgYXMgYW55KS5fX2FsYXVkYV9leHRlbnNpb25zID0gX2V4dGVuc2lvbnM7XG5cbiAgZXh0ZW5zaW9uVHJhbnNsYXRpb25zID0gYXdhaXQgbG9hZFRyYW5zbGF0aW9ucygpO1xuXG4gIHJldHVybiBfZXh0ZW5zaW9ucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZFRyYW5zbGF0aW9ucygpOiBQcm9taXNlPFxuICBBcnJheTx7IFtsYW5nOiBzdHJpbmddOiBUcmFuc2xhdGlvbnMgfT5cbj4ge1xuICBjb25zdCBsYW5nID0gZ2V0VXNlckxhbmd1YWdlKCk7XG5cbiAgY29uc3QgZW50cnlwb2ludHMgPSBfZXh0ZW5zaW9ucy5yZWR1Y2UoXG4gICAgKGFjYywgY3VycikgPT4ge1xuICAgICAgYWNjW2N1cnIuZW50cnlwb2ludF0gPSB7XG4gICAgICAgIHNjb3BlOiB0cmFuc2xhdGVTY29wZShjdXJyLCBsYW5nKSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAge30gYXMgUmVjb3JkPHN0cmluZywgeyBzY29wZTogc3RyaW5nIH0+LFxuICApO1xuXG4gIGlmIChpc0J1aWx0SW5MYW5ndWFnZShsYW5nKSkge1xuICAgIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIE9iamVjdC5lbnRyaWVzKGVudHJ5cG9pbnRzKS5tYXAoKFtlbnRyeXBvaW50LCB7IHNjb3BlIH1dKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBgJHtlbnRyeXBvaW50fS9hc3NldHMvaTE4bi8ke2xhbmd9Lmpzb25gO1xuICAgICAgICByZXR1cm4gZmV0Y2hJMThuRmlsZShwYXRoKS50aGVuKHRyYW5zbGF0aW9ucyA9PiAoe1xuICAgICAgICAgIFtsYW5nXTogeyBbc2NvcGVdOiB0cmFuc2xhdGlvbnMgfSxcbiAgICAgICAgfSkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBPYmplY3QuZW50cmllcyhlbnRyeXBvaW50cykubWFwKChbZW50cnlwb2ludCwgeyBzY29wZSB9XSkgPT5cbiAgICAgIFByb21pc2UuYWxsKFtcbiAgICAgICAgZmV0Y2hJMThuRmlsZShgJHtlbnRyeXBvaW50fS9hc3NldHMvaTE4bi8ke0ZBTExCQUNLX0xBTkdVQUdFfS5qc29uYCksXG4gICAgICAgIGZldGNoSTE4bkZpbGUoYC9jb25zb2xlLWkxOG4vJHtsYW5nfS8ke3Njb3BlfS5qc29uYCksXG4gICAgICBdKS50aGVuKChbZW4sIG90aGVyXSkgPT4gKHtcbiAgICAgICAgW0ZBTExCQUNLX0xBTkdVQUdFXTogeyBbc2NvcGVdOiBlbiB9LFxuICAgICAgICBbbGFuZ106IHtcbiAgICAgICAgICBbc2NvcGVdOiBvdGhlcixcbiAgICAgICAgfSxcbiAgICAgIH0pKSxcbiAgICApLFxuICApO1xufVxuXG5mdW5jdGlvbiBmZXRjaEkxOG5GaWxlKHBhdGg6IHN0cmluZyk6IFByb21pc2U8VHJhbnNsYXRpb25zPiB7XG4gIHJldHVybiBmZXRjaChwYXRoKVxuICAgIC50aGVuKHJlcyA9PiB7XG4gICAgICBpZiAoIXJlcy5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtyZXMuc3RhdHVzfTogJHtyZXMuc3RhdHVzVGV4dH1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXMuanNvbigpO1xuICAgIH0pXG4gICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBwbHVnaW4gaTE4biBmaWxlLCAke3BhdGh9YCk7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbn1cbiJdfQ==
@@ -1,16 +1,17 @@
1
+ import { GLOBAL_CLUSTER, } from '@alauda-fe/common';
1
2
  import { getAppExtensions } from '../app-extensions';
2
3
  import { filterLatestVersion, translateScope, translateScopeKey, } from '../utils';
3
- export function getRemoteNavigations(scope, translate) {
4
+ export function getRemoteNavigations(scope, translate, cluster) {
4
5
  if (!scope) {
5
6
  return [];
6
7
  }
7
- return filterItems(translate, scope + '/navigation');
8
+ return filterItems(translate, scope + '/navigation', cluster);
8
9
  }
9
- export function getRemoteNavigationGroups(scope, translate) {
10
+ export function getRemoteNavigationGroups(scope, translate, cluster) {
10
11
  if (!scope) {
11
12
  return [];
12
13
  }
13
- return filterItems(translate, scope + '/navigation/group');
14
+ return filterItems(translate, scope + '/navigation/group', cluster);
14
15
  }
15
16
  export function insertNavItem(source, remotes) {
16
17
  remotes.forEach(remote => {
@@ -39,12 +40,26 @@ export function insertNavGroupItem(source, remotes) {
39
40
  return { ...group, items: insertNavItem(group.items, groupRemotes) };
40
41
  });
41
42
  }
42
- function filterItems(translate, type) {
43
+ function filterItems(translate, type, cluster) {
43
44
  const exts = getAppExtensions(type);
44
- return filterLatestVersion((options) => options.name)(exts).map(ext => {
45
- const options = translateLabels(translate, ext);
46
- return fillIconPath(ext.entrypoint, options);
47
- });
45
+ const grouped = Object.values(exts.reduce((acc, ext) => {
46
+ acc[ext.options.name] = (acc[ext.options.name] || []).concat(ext);
47
+ return acc;
48
+ }, {}));
49
+ return grouped
50
+ .flatMap(items => {
51
+ let ext = filterLatestVersion((option) => option.name)(items)[0];
52
+ const mainOption = (items.find(ext => ext.cluster === GLOBAL_CLUSTER) || ext).options;
53
+ if (mainOption.clusterStrategy === 'strict' && cluster) {
54
+ ext = items.find(item => item.cluster === cluster);
55
+ }
56
+ if (ext) {
57
+ const options = translateLabels(translate, ext);
58
+ return fillIconPath(ext.entrypoint, options);
59
+ }
60
+ return null;
61
+ })
62
+ .filter(Boolean);
48
63
  }
49
64
  function translateLabels(translate, ext) {
50
65
  const transScope = translateScope(ext, translate.locale);
@@ -133,4 +148,4 @@ function genItemKey(item, parentKey = '') {
133
148
  children: item.children?.map(c => genItemKey(c, key)),
134
149
  };
135
150
  }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGx1Z2luLXNkay9zcmMvbGliL2V4dGVuc2lvbi1wb2ludHMvbmF2aWdhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxpQkFBaUIsR0FDbEIsTUFBTSxVQUFVLENBQUM7QUFFbEIsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxLQUFhLEVBQ2IsU0FBMkI7SUFFM0IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUMsU0FBUyxFQUFFLEtBQUssR0FBRyxhQUFhLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxLQUFhLEVBQ2IsU0FBMkI7SUFFM0IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUMsU0FBUyxFQUFFLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUMzQixNQUF1QixFQUN2QixPQUFtQztJQUVuQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUIsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkIsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLENBQUMsT0FB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QUFhLEVBQ2IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQy9CLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQ2xCLElBQUksQ0FDTCxDQUFDO2dCQUNGLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osT0FBTzt3QkFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNqQyxLQUFLLEtBQUssQ0FBQzs0QkFDVCxDQUFDLENBQUM7Z0NBQ0UsR0FBRyxJQUFJO2dDQUNQLFFBQVEsRUFBRSxNQUFNOzZCQUNqQjs0QkFDSCxDQUFDLENBQUMsSUFBSSxDQUNUO3dCQUNELE9BQU8sRUFBRSxJQUFJO3FCQUNkLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRSxLQUFLO0tBQ2YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FDakIsSUFBMEIsRUFDMUIsWUFBb0IsRUFBRTtJQUV0QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDekMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ2xFLE9BQU87UUFDTCxHQUFHLElBQUk7UUFDUCxHQUFHO1FBQ0gsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUN0RCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5hdkdyb3VwQ29uZmlnLFxuICBOYXZJdGVtQ29uZmlnLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5cbmltcG9ydCB7IGdldEFwcEV4dGVuc2lvbnMgfSBmcm9tICcuLi9hcHAtZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBFeHRlbnNpb24gfSBmcm9tICcuLi9leHRlbnNpb25zLWxvYWRlcic7XG5pbXBvcnQge1xuICBmaWx0ZXJMYXRlc3RWZXJzaW9uLFxuICB0cmFuc2xhdGVTY29wZSxcbiAgdHJhbnNsYXRlU2NvcGVLZXksXG59IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlbW90ZU5hdmlnYXRpb25zKFxuICBzY29wZTogc3RyaW5nLFxuICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4pOiBSZW1vdGVOYXZpZ2F0aW9uSXRlbVJvb3RbXSB7XG4gIGlmICghc2NvcGUpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gZmlsdGVySXRlbXModHJhbnNsYXRlLCBzY29wZSArICcvbmF2aWdhdGlvbicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVtb3RlTmF2aWdhdGlvbkdyb3VwcyhcbiAgc2NvcGU6IHN0cmluZyxcbiAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuKTogUmVtb3RlTmF2aWdhdGlvbkl0ZW1Sb290W10ge1xuICBpZiAoIXNjb3BlKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcmV0dXJuIGZpbHRlckl0ZW1zKHRyYW5zbGF0ZSwgc2NvcGUgKyAnL25hdmlnYXRpb24vZ3JvdXAnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydE5hdkl0ZW0oXG4gIHNvdXJjZTogTmF2SXRlbUNvbmZpZ1tdLFxuICByZW1vdGVzOiBSZW1vdGVOYXZpZ2F0aW9uSXRlbVJvb3RbXSxcbik6IE5hdkl0ZW1Db25maWdbXSB7XG4gIHJlbW90ZXMuZm9yRWFjaChyZW1vdGUgPT4ge1xuICAgIHJlbW90ZSA9IGdlbkl0ZW1LZXkocmVtb3RlKTtcblxuICAgIGlmIChyZW1vdGUuaW5zZXJ0QWZ0ZXIpIHtcbiAgICAgIGNvbnN0IHIgPSBpbnNlcnQoJ2FmdGVyJywgcmVtb3RlLmluc2VydEFmdGVyLCBbXSwgc291cmNlLCByZW1vdGUpO1xuICAgICAgaWYgKHIubWF0Y2hlZCkge1xuICAgICAgICBzb3VyY2UgPSByLnJlc3VsdDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZW1vdGUuaW5zZXJ0QmVmb3JlKSB7XG4gICAgICBjb25zdCByID0gaW5zZXJ0KCdiZWZvcmUnLCByZW1vdGUuaW5zZXJ0QmVmb3JlLCBbXSwgc291cmNlLCByZW1vdGUpO1xuICAgICAgaWYgKHIubWF0Y2hlZCkge1xuICAgICAgICBzb3VyY2UgPSByLnJlc3VsdDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNvdXJjZSA9IHNvdXJjZS5jb25jYXQocmVtb3RlKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHNvdXJjZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydE5hdkdyb3VwSXRlbShcbiAgc291cmNlOiBOYXZHcm91cENvbmZpZ1tdLFxuICByZW1vdGVzOiBSZW1vdGVOYXZpZ2F0aW9uSXRlbVJvb3RbXSxcbik6IE5hdkdyb3VwQ29uZmlnW10ge1xuICByZXR1cm4gc291cmNlLm1hcChncm91cCA9PiB7XG4gICAgY29uc3QgZ3JvdXBSZW1vdGVzID0gcmVtb3Rlcy5maWx0ZXIocmVtb3RlID0+IHJlbW90ZS5ncm91cCA9PT0gZ3JvdXAubmFtZSk7XG4gICAgcmV0dXJuIHsgLi4uZ3JvdXAsIGl0ZW1zOiBpbnNlcnROYXZJdGVtKGdyb3VwLml0ZW1zLCBncm91cFJlbW90ZXMpIH07XG4gIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZU5hdmlnYXRpb25JdGVtIGV4dGVuZHMgTmF2SXRlbUNvbmZpZyB7XG4gIGdyb3VwPzogc3RyaW5nO1xuICBkaXNwbGF5TmFtZTogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgZGlzcGxheU5hbWVLZXk6IHN0cmluZztcbiAgY2hpbGRyZW4/OiBSZW1vdGVOYXZpZ2F0aW9uSXRlbVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZU5hdmlnYXRpb25JdGVtUm9vdCBleHRlbmRzIFJlbW90ZU5hdmlnYXRpb25JdGVtIHtcbiAgaW5zZXJ0QWZ0ZXI/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgaW5zZXJ0QmVmb3JlPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIGZpbHRlckl0ZW1zKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgdHlwZTogc3RyaW5nKSB7XG4gIGNvbnN0IGV4dHMgPSBnZXRBcHBFeHRlbnNpb25zKHR5cGUpO1xuICByZXR1cm4gZmlsdGVyTGF0ZXN0VmVyc2lvbigob3B0aW9uczogeyBuYW1lOiBzdHJpbmcgfSkgPT4gb3B0aW9ucy5uYW1lKShcbiAgICBleHRzLFxuICApLm1hcChleHQgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0cmFuc2xhdGVMYWJlbHModHJhbnNsYXRlLCBleHQpO1xuICAgIHJldHVybiBmaWxsSWNvblBhdGgoZXh0LmVudHJ5cG9pbnQsIG9wdGlvbnMpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdHJhbnNsYXRlTGFiZWxzKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgZXh0OiBFeHRlbnNpb24pIHtcbiAgY29uc3QgdHJhbnNTY29wZSA9IHRyYW5zbGF0ZVNjb3BlKGV4dCwgdHJhbnNsYXRlLmxvY2FsZSk7XG4gIGNvbnN0IHRyYW5zID0gKGl0ZW06IFJlbW90ZU5hdmlnYXRpb25JdGVtKTogUmVtb3RlTmF2aWdhdGlvbkl0ZW0gPT4ge1xuICAgIGxldCBsYWJlbCA9ICcnO1xuICAgIGlmIChpdGVtLmRpc3BsYXlOYW1lS2V5KSB7XG4gICAgICBsYWJlbCA9IHRyYW5zbGF0ZS5nZXQodHJhbnNsYXRlU2NvcGVLZXkodHJhbnNTY29wZSwgaXRlbS5kaXNwbGF5TmFtZUtleSkpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGl0ZW0uZGlzcGxheU5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsYWJlbCA9IGl0ZW0uZGlzcGxheU5hbWU7XG4gICAgfSBlbHNlIGlmIChpdGVtLmRpc3BsYXlOYW1lW3RyYW5zbGF0ZS5sb2NhbGVdKSB7XG4gICAgICBsYWJlbCA9IGl0ZW0uZGlzcGxheU5hbWVbdHJhbnNsYXRlLmxvY2FsZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGtleSA9ICdQTFVHSU5fTkFWX0RJU1BMQVlfTkFNRV9fJyArIGl0ZW0uZGlzcGxheU5hbWVbJ2VuJ107XG4gICAgICBjb25zdCB2YWx1ZSA9IHRyYW5zbGF0ZS5nZXQoa2V5KTtcbiAgICAgIGxhYmVsID0gdmFsdWUgPT09IGtleSA/IGl0ZW0uZGlzcGxheU5hbWVbJ2VuJ10gOiB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uaXRlbSxcbiAgICAgIGxhYmVsLFxuICAgICAgY2hpbGRyZW46IGl0ZW0uY2hpbGRyZW4gPyBpdGVtLmNoaWxkcmVuLm1hcChjID0+IHRyYW5zKGMpKSA6IG51bGwsXG4gICAgfTtcbiAgfTtcblxuICByZXR1cm4gdHJhbnMoZXh0Lm9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBmaWxsSWNvblBhdGgoZW50cnlwb2ludDogc3RyaW5nLCBpdGVtOiBSZW1vdGVOYXZpZ2F0aW9uSXRlbSkge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMoaXRlbSkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGlmIChrZXkgPT09ICdpY29uSW1nU3JjJyB8fCBrZXkgPT09ICdpY29uTG90dGllSnNvbicpIHtcbiAgICAgIGFjY1trZXldID0gdmFsdWUucmVwbGFjZSgnPGVudHJ5cG9pbnQ+JywgZW50cnlwb2ludCk7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdjaGlsZHJlbicpIHtcbiAgICAgIGFjY1trZXldID0gaXRlbS5jaGlsZHJlblxuICAgICAgICA/IGl0ZW0uY2hpbGRyZW4ubWFwKGMgPT4gZmlsbEljb25QYXRoKGVudHJ5cG9pbnQsIGMpKVxuICAgICAgICA6IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9IGFzIFJlbW90ZU5hdmlnYXRpb25JdGVtKTtcbn1cblxuZnVuY3Rpb24gaW5zZXJ0KFxuICBwb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInLFxuICBhbmNob3I6IHN0cmluZyB8IHN0cmluZ1tdLFxuICBuYW1lUGF0aDogc3RyaW5nW10sXG4gIHRhcmdldDogTmF2SXRlbUNvbmZpZ1tdLFxuICBpdGVtOiBSZW1vdGVOYXZpZ2F0aW9uSXRlbVJvb3QsXG4pOiB7IHJlc3VsdDogTmF2SXRlbUNvbmZpZ1tdOyBtYXRjaGVkOiBib29sZWFuIH0ge1xuICBjb25zdCBvZmZzZXQgPSBwb3NpdGlvbiA9PT0gJ2JlZm9yZScgPyAwIDogMTtcbiAgYW5jaG9yID0gQXJyYXkuaXNBcnJheShhbmNob3IpID8gYW5jaG9yIDogW2FuY2hvcl07XG5cbiAgZm9yIChjb25zdCBjdXJyZW50QW5jaG9yIG9mIGFuY2hvcikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGFyZ2V0W2ldLm5hbWUgPT09IGN1cnJlbnRBbmNob3IpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXN1bHQ6IFtcbiAgICAgICAgICAgIC4uLnRhcmdldC5zbGljZSgwLCBpICsgb2Zmc2V0KSxcbiAgICAgICAgICAgIHsgLi4uaXRlbSwga2V5OiBuYW1lUGF0aC5qb2luKCcvJykgKyAnLycgKyBpdGVtLm5hbWUgfSxcbiAgICAgICAgICAgIC4uLnRhcmdldC5zbGljZShpICsgb2Zmc2V0KSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmICh0YXJnZXRbaV0uY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3QgeyByZXN1bHQsIG1hdGNoZWQgfSA9IGluc2VydChcbiAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICBjdXJyZW50QW5jaG9yLFxuICAgICAgICAgIG5hbWVQYXRoLmNvbmNhdCh0YXJnZXRbaV0ubmFtZSksXG4gICAgICAgICAgdGFyZ2V0W2ldLmNoaWxkcmVuLFxuICAgICAgICAgIGl0ZW0sXG4gICAgICAgICk7XG4gICAgICAgIGlmIChtYXRjaGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlc3VsdDogdGFyZ2V0Lm1hcCgoaXRlbSwgaW5kZXgpID0+XG4gICAgICAgICAgICAgIGluZGV4ID09PSBpXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiBpdGVtLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmVzdWx0OiB0YXJnZXQsXG4gICAgbWF0Y2hlZDogZmFsc2UsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdlbkl0ZW1LZXkoXG4gIGl0ZW06IFJlbW90ZU5hdmlnYXRpb25JdGVtLFxuICBwYXJlbnRLZXk6IHN0cmluZyA9ICcnLFxuKTogUmVtb3RlTmF2aWdhdGlvbkl0ZW0ge1xuICBjb25zdCBjdXJyZW50S2V5ID0gaXRlbS5rZXkgPz8gaXRlbS5uYW1lO1xuICBjb25zdCBrZXkgPSBwYXJlbnRLZXkgPyBwYXJlbnRLZXkgKyAnLycgKyBjdXJyZW50S2V5IDogY3VycmVudEtleTtcbiAgcmV0dXJuIHtcbiAgICAuLi5pdGVtLFxuICAgIGtleSxcbiAgICBjaGlsZHJlbjogaXRlbS5jaGlsZHJlbj8ubWFwKGMgPT4gZ2VuSXRlbUtleShjLCBrZXkpKSxcbiAgfTtcbn1cbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGx1Z2luLXNkay9zcmMvbGliL2V4dGVuc2lvbi1wb2ludHMvbmF2aWdhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxHQUlmLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsaUJBQWlCLEdBQ2xCLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsS0FBYSxFQUNiLFNBQTJCLEVBQzNCLE9BQWdCO0lBRWhCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE9BQU8sV0FBVyxDQUFDLFNBQVMsRUFBRSxLQUFLLEdBQUcsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQ3ZDLEtBQWEsRUFDYixTQUEyQixFQUMzQixPQUFnQjtJQUVoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxPQUFPLFdBQVcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxHQUFHLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUMzQixNQUF1QixFQUN2QixPQUFtQztJQUVuQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUIsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkIsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9B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LEVBQ2xCLElBQUksQ0FDTCxDQUFDO2dCQUNGLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osT0FBTzt3QkFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNqQyxLQUFLLEtBQUssQ0FBQzs0QkFDVCxDQUFDLENBQUM7Z0NBQ0UsR0FBRyxJQUFJO2dDQUNQLFFBQVEsRUFBRSxNQUFNOzZCQUNqQjs0QkFDSCxDQUFDLENBQUMsSUFBSSxDQUNUO3dCQUNELE9BQU8sRUFBRSxJQUFJO3FCQUNkLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRSxLQUFLO0tBQ2YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FDakIsSUFBMEIsRUFDMUIsWUFBb0IsRUFBRTtJQUV0QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDekMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ2xFLE9BQU87UUFDTCxHQUFHLElBQUk7UUFDUCxHQUFHO1FBQ0gsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUN0RCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEdMT0JBTF9DTFVTVEVSLFxuICBOYXZHcm91cENvbmZpZyxcbiAgTmF2SXRlbUNvbmZpZyxcbiAgVHJhbnNsYXRlU2VydmljZSxcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuXG5pbXBvcnQgeyBnZXRBcHBFeHRlbnNpb25zIH0gZnJvbSAnLi4vYXBwLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRXh0ZW5zaW9uIH0gZnJvbSAnLi4vZXh0ZW5zaW9ucy1sb2FkZXInO1xuaW1wb3J0IHtcbiAgZmlsdGVyTGF0ZXN0VmVyc2lvbixcbiAgdHJhbnNsYXRlU2NvcGUsXG4gIHRyYW5zbGF0ZVNjb3BlS2V5LFxufSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZW1vdGVOYXZpZ2F0aW9ucyhcbiAgc2NvcGU6IHN0cmluZyxcbiAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICBjbHVzdGVyPzogc3RyaW5nLFxuKTogUmVtb3RlTmF2aWdhdGlvbkl0ZW1Sb290W10ge1xuICBpZiAoIXNjb3BlKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcmV0dXJuIGZpbHRlckl0ZW1zKHRyYW5zbGF0ZSwgc2NvcGUgKyAnL25hdmlnYXRpb24nLCBjbHVzdGVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlbW90ZU5hdmlnYXRpb25Hcm91cHMoXG4gIHNjb3BlOiBzdHJpbmcsXG4gIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgY2x1c3Rlcj86IHN0cmluZyxcbik6IFJlbW90ZU5hdmlnYXRpb25JdGVtUm9vdFtdIHtcbiAgaWYgKCFzY29wZSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBmaWx0ZXJJdGVtcyh0cmFuc2xhdGUsIHNjb3BlICsgJy9uYXZpZ2F0aW9uL2dyb3VwJywgY2x1c3Rlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnROYXZJdGVtKFxuICBzb3VyY2U6IE5hdkl0ZW1Db25maWdbXSxcbiAgcmVtb3RlczogUmVtb3RlTmF2aWdhdGlvbkl0ZW1Sb290W10sXG4pOiBOYXZJdGVtQ29uZmlnW10ge1xuICByZW1vdGVzLmZvckVhY2gocmVtb3RlID0+IHtcbiAgICByZW1vdGUgPSBnZW5JdGVtS2V5KHJlbW90ZSk7XG5cbiAgICBpZiAocmVtb3RlLmluc2VydEFmdGVyKSB7XG4gICAgICBjb25zdCByID0gaW5zZXJ0KCdhZnRlcicsIHJlbW90ZS5pbnNlcnRBZnRlciwgW10sIHNvdXJjZSwgcmVtb3RlKTtcbiAgICAgIGlmIChyLm1hdGNoZWQpIHtcbiAgICAgICAgc291cmNlID0gci5yZXN1bHQ7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVtb3RlLmluc2VydEJlZm9yZSkge1xuICAgICAgY29uc3QgciA9IGluc2VydCgnYmVmb3JlJywgcmVtb3RlLmluc2VydEJlZm9yZSwgW10sIHNvdXJjZSwgcmVtb3RlKTtcbiAgICAgIGlmIChyLm1hdGNoZWQpIHtcbiAgICAgICAgc291cmNlID0gci5yZXN1bHQ7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzb3VyY2UgPSBzb3VyY2UuY29uY2F0KHJlbW90ZSk7XG4gIH0pO1xuXG4gIHJldHVybiBzb3VyY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnROYXZHcm91cEl0ZW0oXG4gIHNvdXJjZTogTmF2R3JvdXBDb25maWdbXSxcbiAgcmVtb3RlczogUmVtb3RlTmF2aWdhdGlvbkl0ZW1Sb290W10sXG4pOiBOYXZHcm91cENvbmZpZ1tdIHtcbiAgcmV0dXJuIHNvdXJjZS5tYXAoZ3JvdXAgPT4ge1xuICAgIGNvbnN0IGdyb3VwUmVtb3RlcyA9IHJlbW90ZXMuZmlsdGVyKHJlbW90ZSA9PiByZW1vdGUuZ3JvdXAgPT09IGdyb3VwLm5hbWUpO1xuICAgIHJldHVybiB7IC4uLmdyb3VwLCBpdGVtczogaW5zZXJ0TmF2SXRlbShncm91cC5pdGVtcywgZ3JvdXBSZW1vdGVzKSB9O1xuICB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVOYXZpZ2F0aW9uSXRlbSBleHRlbmRzIE5hdkl0ZW1Db25maWcge1xuICBncm91cD86IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGRpc3BsYXlOYW1lS2V5OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogUmVtb3RlTmF2aWdhdGlvbkl0ZW1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVOYXZpZ2F0aW9uSXRlbVJvb3QgZXh0ZW5kcyBSZW1vdGVOYXZpZ2F0aW9uSXRlbSB7XG4gIGluc2VydEFmdGVyPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGluc2VydEJlZm9yZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBjbHVzdGVyU3RyYXRlZ3k/OiAnbGF0ZXN0JyB8ICdzdHJpY3QnO1xufVxuXG5mdW5jdGlvbiBmaWx0ZXJJdGVtcyhcbiAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICB0eXBlOiBzdHJpbmcsXG4gIGNsdXN0ZXI/OiBzdHJpbmcsXG4pIHtcbiAgY29uc3QgZXh0cyA9IGdldEFwcEV4dGVuc2lvbnM8UmVtb3RlTmF2aWdhdGlvbkl0ZW1Sb290Pih0eXBlKTtcblxuICBjb25zdCBncm91cGVkID0gT2JqZWN0LnZhbHVlcyhcbiAgICBleHRzLnJlZHVjZShcbiAgICAgIChhY2MsIGV4dCkgPT4ge1xuICAgICAgICBhY2NbZXh0Lm9wdGlvbnMubmFtZV0gPSAoYWNjW2V4dC5vcHRpb25zLm5hbWVdIHx8IFtdKS5jb25jYXQoZXh0KTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBBcnJheTxFeHRlbnNpb248UmVtb3RlTmF2aWdhdGlvbkl0ZW1Sb290Pj4+LFxuICAgICksXG4gICk7XG4gIHJldHVybiBncm91cGVkXG4gICAgLmZsYXRNYXAoaXRlbXMgPT4ge1xuICAgICAgbGV0IGV4dCA9IGZpbHRlckxhdGVzdFZlcnNpb24oXG4gICAgICAgIChvcHRpb246IFJlbW90ZU5hdmlnYXRpb25JdGVtUm9vdCkgPT4gb3B0aW9uLm5hbWUsXG4gICAgICApKGl0ZW1zKVswXTtcbiAgICAgIGNvbnN0IG1haW5PcHRpb24gPSAoXG4gICAgICAgIGl0ZW1zLmZpbmQoZXh0ID0+IGV4dC5jbHVzdGVyID09PSBHTE9CQUxfQ0xVU1RFUikgfHwgZXh0XG4gICAgICApLm9wdGlvbnM7XG5cbiAgICAgIGlmIChtYWluT3B0aW9uLmNsdXN0ZXJTdHJhdGVneSA9PT0gJ3N0cmljdCcgJiYgY2x1c3Rlcikge1xuICAgICAgICBleHQgPSBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5jbHVzdGVyID09PSBjbHVzdGVyKTtcbiAgICAgIH1cbiAgICAgIGlmIChleHQpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRyYW5zbGF0ZUxhYmVscyh0cmFuc2xhdGUsIGV4dCk7XG4gICAgICAgIHJldHVybiBmaWxsSWNvblBhdGgoZXh0LmVudHJ5cG9pbnQsIG9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSlcbiAgICAuZmlsdGVyKEJvb2xlYW4pO1xufVxuXG5mdW5jdGlvbiB0cmFuc2xhdGVMYWJlbHModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBleHQ6IEV4dGVuc2lvbikge1xuICBjb25zdCB0cmFuc1Njb3BlID0gdHJhbnNsYXRlU2NvcGUoZXh0LCB0cmFuc2xhdGUubG9jYWxlKTtcbiAgY29uc3QgdHJhbnMgPSAoaXRlbTogUmVtb3RlTmF2aWdhdGlvbkl0ZW0pOiBSZW1vdGVOYXZpZ2F0aW9uSXRlbSA9PiB7XG4gICAgbGV0IGxhYmVsID0gJyc7XG4gICAgaWYgKGl0ZW0uZGlzcGxheU5hbWVLZXkpIHtcbiAgICAgIGxhYmVsID0gdHJhbnNsYXRlLmdldCh0cmFuc2xhdGVTY29wZUtleSh0cmFuc1Njb3BlLCBpdGVtLmRpc3BsYXlOYW1lS2V5KSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgaXRlbS5kaXNwbGF5TmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGxhYmVsID0gaXRlbS5kaXNwbGF5TmFtZTtcbiAgICB9IGVsc2UgaWYgKGl0ZW0uZGlzcGxheU5hbWVbdHJhbnNsYXRlLmxvY2FsZV0pIHtcbiAgICAgIGxhYmVsID0gaXRlbS5kaXNwbGF5TmFtZVt0cmFuc2xhdGUubG9jYWxlXTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qga2V5ID0gJ1BMVUdJTl9OQVZfRElTUExBWV9OQU1FX18nICsgaXRlbS5kaXNwbGF5TmFtZVsnZW4nXTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdHJhbnNsYXRlLmdldChrZXkpO1xuICAgICAgbGFiZWwgPSB2YWx1ZSA9PT0ga2V5ID8gaXRlbS5kaXNwbGF5TmFtZVsnZW4nXSA6IHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5pdGVtLFxuICAgICAgbGFiZWwsXG4gICAgICBjaGlsZHJlbjogaXRlbS5jaGlsZHJlbiA/IGl0ZW0uY2hpbGRyZW4ubWFwKGMgPT4gdHJhbnMoYykpIDogbnVsbCxcbiAgICB9O1xuICB9O1xuXG4gIHJldHVybiB0cmFucyhleHQub3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGZpbGxJY29uUGF0aChlbnRyeXBvaW50OiBzdHJpbmcsIGl0ZW06IFJlbW90ZU5hdmlnYXRpb25JdGVtKSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhpdGVtKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgaWYgKGtleSA9PT0gJ2ljb25JbWdTcmMnIHx8IGtleSA9PT0gJ2ljb25Mb3R0aWVKc29uJykge1xuICAgICAgYWNjW2tleV0gPSB2YWx1ZS5yZXBsYWNlKCc8ZW50cnlwb2ludD4nLCBlbnRyeXBvaW50KTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2NoaWxkcmVuJykge1xuICAgICAgYWNjW2tleV0gPSBpdGVtLmNoaWxkcmVuXG4gICAgICAgID8gaXRlbS5jaGlsZHJlbi5tYXAoYyA9PiBmaWxsSWNvblBhdGgoZW50cnlwb2ludCwgYykpXG4gICAgICAgIDogbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjW2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgUmVtb3RlTmF2aWdhdGlvbkl0ZW0pO1xufVxuXG5mdW5jdGlvbiBpbnNlcnQoXG4gIHBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicsXG4gIGFuY2hvcjogc3RyaW5nIHwgc3RyaW5nW10sXG4gIG5hbWVQYXRoOiBzdHJpbmdbXSxcbiAgdGFyZ2V0OiBOYXZJdGVtQ29uZmlnW10sXG4gIGl0ZW06IFJlbW90ZU5hdmlnYXRpb25JdGVtUm9vdCxcbik6IHsgcmVzdWx0OiBOYXZJdGVtQ29uZmlnW107IG1hdGNoZWQ6IGJvb2xlYW4gfSB7XG4gIGNvbnN0IG9mZnNldCA9IHBvc2l0aW9uID09PSAnYmVmb3JlJyA/IDAgOiAxO1xuICBhbmNob3IgPSBBcnJheS5pc0FycmF5KGFuY2hvcikgPyBhbmNob3IgOiBbYW5jaG9yXTtcblxuICBmb3IgKGNvbnN0IGN1cnJlbnRBbmNob3Igb2YgYW5jaG9yKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YXJnZXQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0YXJnZXRbaV0ubmFtZSA9PT0gY3VycmVudEFuY2hvcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc3VsdDogW1xuICAgICAgICAgICAgLi4udGFyZ2V0LnNsaWNlKDAsIGkgKyBvZmZzZXQpLFxuICAgICAgICAgICAgeyAuLi5pdGVtLCBrZXk6IG5hbWVQYXRoLmpvaW4oJy8nKSArICcvJyArIGl0ZW0ubmFtZSB9LFxuICAgICAgICAgICAgLi4udGFyZ2V0LnNsaWNlKGkgKyBvZmZzZXQpLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRhcmdldFtpXS5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCB7IHJlc3VsdCwgbWF0Y2hlZCB9ID0gaW5zZXJ0KFxuICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgIGN1cnJlbnRBbmNob3IsXG4gICAgICAgICAgbmFtZVBhdGguY29uY2F0KHRhcmdldFtpXS5uYW1lKSxcbiAgICAgICAgICB0YXJnZXRbaV0uY2hpbGRyZW4sXG4gICAgICAgICAgaXRlbSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVzdWx0OiB0YXJnZXQubWFwKChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgaW5kZXggPT09IGlcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IGl0ZW0sXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZXN1bHQ6IHRhcmdldCxcbiAgICBtYXRjaGVkOiBmYWxzZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2VuSXRlbUtleShcbiAgaXRlbTogUmVtb3RlTmF2aWdhdGlvbkl0ZW0sXG4gIHBhcmVudEtleTogc3RyaW5nID0gJycsXG4pOiBSZW1vdGVOYXZpZ2F0aW9uSXRlbSB7XG4gIGNvbnN0IGN1cnJlbnRLZXkgPSBpdGVtLmtleSA/PyBpdGVtLm5hbWU7XG4gIGNvbnN0IGtleSA9IHBhcmVudEtleSA/IHBhcmVudEtleSArICcvJyArIGN1cnJlbnRLZXkgOiBjdXJyZW50S2V5O1xuICByZXR1cm4ge1xuICAgIC4uLml0ZW0sXG4gICAga2V5LFxuICAgIGNoaWxkcmVuOiBpdGVtLmNoaWxkcmVuPy5tYXAoYyA9PiBnZW5JdGVtS2V5KGMsIGtleSkpLFxuICB9O1xufVxuIl19
@@ -1,10 +1,10 @@
1
- import { attachAuthorizationHeader, isLocalDev } from '@alauda-fe/common';
2
- import { getBootMode, LOCAL_DEV_EXTENSION_INFO } from './utils';
1
+ import { attachAuthorizationHeader } from '@alauda-fe/common';
2
+ import { getBootMode, LOCAL_DEV_EXTENSION_INFO, isLocalEnv } from './utils';
3
3
  export async function loadExtensions(query = {}) {
4
4
  if (getBootMode() === 'safe') {
5
5
  return [];
6
6
  }
7
- return isLocalDev()
7
+ return isLocalEnv()
8
8
  ? await loadDevExtensions(query)
9
9
  : await loadProdExtensions(query);
10
10
  }
@@ -20,6 +20,7 @@ async function loadDevExtensions(query = {}) {
20
20
  ...LOCAL_DEV_EXTENSION_INFO,
21
21
  ...ext,
22
22
  dependencies: plugin.dependencies || {},
23
+ i18nVersion: plugin.i18nVersion,
23
24
  entrypoint: '/dev-plugin',
24
25
  })))
25
26
  .catch(() => {
@@ -28,7 +29,7 @@ async function loadDevExtensions(query = {}) {
28
29
  });
29
30
  }
30
31
  async function loadProdExtensions(query = {}) {
31
- const reqPrefix = isLocalDev() ? '/api-gateway' : '';
32
+ const reqPrefix = isLocalEnv() ? '/api-gateway' : '';
32
33
  const queryString = Object.entries(query)
33
34
  .map(([key, value]) => `${key}=${value.join(',')}`)
34
35
  .join(';');
@@ -42,22 +43,29 @@ async function loadProdExtensions(query = {}) {
42
43
  return res.json();
43
44
  })
44
45
  .then((rawPlugins) => Object.entries(rawPlugins).reduce((acc, [cluster, plugins]) => acc.concat(plugins.flatMap(plugin => {
45
- const pluginJson = JSON.parse(plugin['console-plugin.json']);
46
- return pluginJson.extensions.map(ext => ({
47
- ...ext,
48
- cluster,
49
- pluginName: plugin.name,
50
- pluginVersion: plugin.version,
51
- appName: plugin.path
52
- .slice(plugin.path.lastIndexOf('/') + 1)
53
- .replaceAll('/', '-'),
54
- entrypoint: `${reqPrefix}/clusters-rewrite/${cluster}${plugin.path}`,
55
- dependencies: pluginJson.dependencies || {},
56
- }));
46
+ try {
47
+ const pluginJson = JSON.parse(plugin['console-plugin.json']);
48
+ return pluginJson.extensions.map(ext => ({
49
+ ...ext,
50
+ cluster,
51
+ pluginName: plugin.name,
52
+ pluginVersion: plugin.version,
53
+ appName: plugin.path
54
+ .slice(plugin.path.lastIndexOf('/') + 1)
55
+ .replaceAll('/', '-'),
56
+ entrypoint: `${reqPrefix}/clusters-rewrite/${cluster}${plugin.path}`,
57
+ dependencies: pluginJson.dependencies || {},
58
+ i18nVersion: pluginJson.i18nVersion,
59
+ }));
60
+ }
61
+ catch (error) {
62
+ console.error(`Failed to parse console-plugin.json for plugin ${plugin.name}:`, error);
63
+ return [];
64
+ }
57
65
  })), []))
58
66
  .catch(err => {
59
67
  console.error(err);
60
68
  return [];
61
69
  });
62
70
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2xpYi9leHRlbnNpb25zLWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVoRSxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FBQyxRQUF5QixFQUFFO0lBQzlELElBQUksV0FBVyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDN0IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxVQUFVLEVBQUU7UUFDakIsQ0FBQyxDQUFDLE1BQU0saUJBQWlCLENBQUMsS0FBSyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxNQUFNLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLFFBQXlCLEVBQUU7SUFFM0IsT0FBTyxNQUFNLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQztTQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDVixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsQ0FBQyxNQUFrQixFQUFFLEVBQUUsQ0FDM0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLEdBQUcsd0JBQXdCO1FBQzNCLEdBQUcsR0FBRztRQUNOLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWSxJQUFJLEVBQUU7UUFDdkMsVUFBVSxFQUFFLGFBQWE7S0FDMUIsQ0FBQyxDQUFDLENBQ0o7U0FDQSxLQUFLLENBQUMsR0FBRyxFQUFFO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FDViwrREFBK0QsQ0FDaEUsQ0FBQztRQUNGLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsS0FBSyxVQUFVLGtCQUFrQixDQUMvQixRQUF5QixFQUFFO0lBRTNCLE1BQU0sU0FBUyxHQUFHLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNyRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUN0QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1NBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUViLE9BQU8sTUFBTSxLQUFLLENBQ2hCLEdBQUcsU0FBUyw2Q0FBNkMsV0FBVyxJQUFJLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUN0SDtRQUNFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRTtLQUNyQyxDQUNGO1NBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLENBQUMsVUFBc0IsRUFBRSxFQUFFLENBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUMvQixDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQzFCLEdBQUcsQ0FBQyxNQUFNLENBQ1IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN2QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUMzQixNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FDaEIsQ0FBQztRQUVoQixPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QyxHQUFHLEdBQUc7WUFDTixPQUFPO1lBQ1AsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ3ZCLGFBQWEsRUFBRSxNQUFNLENBQUMsT0FBTztZQUM3QixPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUk7aUJBQ2pCLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3ZDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1lBQ3ZCLFVBQVUsRUFBRSxHQUFHLFNBQVMscUJBQXFCLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ3BFLFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWSxJQUFJLEVBQUU7U0FDNUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDLENBQUMsQ0FDSCxFQUNILEVBQWlCLENBQ2xCLENBQ0Y7U0FDQSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXR0YWNoQXV0aG9yaXphdGlvbkhlYWRlciwgaXNMb2NhbERldiB9IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcblxuaW1wb3J0IHsgZ2V0Qm9vdE1vZGUsIExPQ0FMX0RFVl9FWFRFTlNJT05fSU5GTyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEV4dGVuc2lvbnMocXVlcnk6IEV4dGVuc2lvbnNRdWVyeSA9IHt9KSB7XG4gIGlmIChnZXRCb290TW9kZSgpID09PSAnc2FmZScpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIGlzTG9jYWxEZXYoKVxuICAgID8gYXdhaXQgbG9hZERldkV4dGVuc2lvbnMocXVlcnkpXG4gICAgOiBhd2FpdCBsb2FkUHJvZEV4dGVuc2lvbnMocXVlcnkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBsb2FkRGV2RXh0ZW5zaW9ucyhcbiAgcXVlcnk6IEV4dGVuc2lvbnNRdWVyeSA9IHt9LFxuKTogUHJvbWlzZTxFeHRlbnNpb25bXT4ge1xuICByZXR1cm4gYXdhaXQgZmV0Y2goYC9kZXYtcGx1Z2luL2NvbnNvbGUtcGx1Z2luLmpzb25gKVxuICAgIC50aGVuKHJlcyA9PiB7XG4gICAgICBpZiAoIXJlcy5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBsb2NhbCBkZXYgZXh0ZW5zaW9ucycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcy5qc29uKCk7XG4gICAgfSlcbiAgICAudGhlbigocGx1Z2luOiBQbHVnaW5KU09OKSA9PlxuICAgICAgcGx1Z2luLmV4dGVuc2lvbnMubWFwKGV4dCA9PiAoe1xuICAgICAgICAuLi5MT0NBTF9ERVZfRVhURU5TSU9OX0lORk8sXG4gICAgICAgIC4uLmV4dCxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBwbHVnaW4uZGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgICAgICBlbnRyeXBvaW50OiAnL2Rldi1wbHVnaW4nLFxuICAgICAgfSkpLFxuICAgIClcbiAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnRmFpbGVkIHRvIGZldGNoIGxvY2FsIGRldiBleHRlbnNpb25zLCBsb2FkaW5nIHByb2QgZXh0ZW5zaW9ucycsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGxvYWRQcm9kRXh0ZW5zaW9ucyhxdWVyeSk7XG4gICAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRQcm9kRXh0ZW5zaW9ucyhcbiAgcXVlcnk6IEV4dGVuc2lvbnNRdWVyeSA9IHt9LFxuKTogUHJvbWlzZTxFeHRlbnNpb25bXT4ge1xuICBjb25zdCByZXFQcmVmaXggPSBpc0xvY2FsRGV2KCkgPyAnL2FwaS1nYXRld2F5JyA6ICcnO1xuICBjb25zdCBxdWVyeVN0cmluZyA9IE9iamVjdC5lbnRyaWVzKHF1ZXJ5KVxuICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke3ZhbHVlLmpvaW4oJywnKX1gKVxuICAgIC5qb2luKCc7Jyk7XG5cbiAgcmV0dXJuIGF3YWl0IGZldGNoKFxuICAgIGAke3JlcVByZWZpeH0vZnJvbnRlbmQtcGx1Z2lucy9jbHVzdGVycy9jb25zb2xlLXBsdWdpbnMke3F1ZXJ5U3RyaW5nICYmICc/ZmlsdGVyPScgKyBlbmNvZGVVUklDb21wb25lbnQocXVlcnlTdHJpbmcpfWAsXG4gICAge1xuICAgICAgaGVhZGVyczogYXR0YWNoQXV0aG9yaXphdGlvbkhlYWRlcigpLFxuICAgIH0sXG4gIClcbiAgICAudGhlbihyZXMgPT4ge1xuICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggZXh0ZW5zaW9ucycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcy5qc29uKCk7XG4gICAgfSlcbiAgICAudGhlbigocmF3UGx1Z2luczogUmF3UGx1Z2lucykgPT5cbiAgICAgIE9iamVjdC5lbnRyaWVzKHJhd1BsdWdpbnMpLnJlZHVjZShcbiAgICAgICAgKGFjYywgW2NsdXN0ZXIsIHBsdWdpbnNdKSA9PlxuICAgICAgICAgIGFjYy5jb25jYXQoXG4gICAgICAgICAgICBwbHVnaW5zLmZsYXRNYXAocGx1Z2luID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcGx1Z2luSnNvbiA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICAgICAgcGx1Z2luWydjb25zb2xlLXBsdWdpbi5qc29uJ10sXG4gICAgICAgICAgICAgICkgYXMgUGx1Z2luSlNPTjtcblxuICAgICAgICAgICAgICByZXR1cm4gcGx1Z2luSnNvbi5leHRlbnNpb25zLm1hcChleHQgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi5leHQsXG4gICAgICAgICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICAgICAgICBwbHVnaW5OYW1lOiBwbHVnaW4ubmFtZSxcbiAgICAgICAgICAgICAgICBwbHVnaW5WZXJzaW9uOiBwbHVnaW4udmVyc2lvbixcbiAgICAgICAgICAgICAgICBhcHBOYW1lOiBwbHVnaW4ucGF0aFxuICAgICAgICAgICAgICAgICAgLnNsaWNlKHBsdWdpbi5wYXRoLmxhc3RJbmRleE9mKCcvJykgKyAxKVxuICAgICAgICAgICAgICAgICAgLnJlcGxhY2VBbGwoJy8nLCAnLScpLFxuICAgICAgICAgICAgICAgIGVudHJ5cG9pbnQ6IGAke3JlcVByZWZpeH0vY2x1c3RlcnMtcmV3cml0ZS8ke2NsdXN0ZXJ9JHtwbHVnaW4ucGF0aH1gLFxuICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llczogcGx1Z2luSnNvbi5kZXBlbmRlbmNpZXMgfHwge30sXG4gICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgIFtdIGFzIEV4dGVuc2lvbltdLFxuICAgICAgKSxcbiAgICApXG4gICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICByZXR1cm4gW107XG4gICAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uc1F1ZXJ5IHtcbiAgdHlwZXM/OiBzdHJpbmdbXTtcbiAgY2x1c3RlcnM/OiBzdHJpbmdbXTtcbiAgb3BlcmF0b3JzPzogc3RyaW5nW107XG4gIGNoYW5uZWxzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uPFQgPSBhbnk+IGV4dGVuZHMgUmF3RXh0ZW5zaW9uPFQ+IHtcbiAgY2x1c3Rlcjogc3RyaW5nO1xuICBwbHVnaW5OYW1lOiBzdHJpbmc7XG4gIHBsdWdpblZlcnNpb246IHN0cmluZztcbiAgYXBwTmFtZTogc3RyaW5nO1xuICBlbnRyeXBvaW50OiBzdHJpbmc7XG4gIGRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuaW50ZXJmYWNlIFJhd1BsdWdpbnMge1xuICBbY2x1c3Rlcjogc3RyaW5nXTogQXJyYXk8e1xuICAgIG9wZXJhdG9yOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgJ2NvbnNvbGUtcGx1Z2luLmpzb24nOiBzdHJpbmc7XG4gIH0+O1xufVxuXG5pbnRlcmZhY2UgUGx1Z2luSlNPTiB7XG4gIGV4dGVuc2lvbnM6IFJhd0V4dGVuc2lvbltdO1xuICBkZXBlbmRlbmNpZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5pbnRlcmZhY2UgUmF3RXh0ZW5zaW9uPFQgPSBhbnk+IHtcbiAgdHlwZTogc3RyaW5nO1xuICBvcHRpb25zOiBUO1xufVxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2xpYi9leHRlbnNpb25zLWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU1RSxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FBQyxRQUF5QixFQUFFO0lBQzlELElBQUksV0FBVyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDN0IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxVQUFVLEVBQUU7UUFDakIsQ0FBQyxDQUFDLE1BQU0saUJBQWlCLENBQUMsS0FBSyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxNQUFNLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLFFBQXlCLEVBQUU7SUFFM0IsT0FBTyxNQUFNLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQztTQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDVixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsQ0FBQyxNQUFrQixFQUFFLEVBQUUsQ0FDM0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLEdBQUcsd0JBQXdCO1FBQzNCLEdBQUcsR0FBRztRQUNOLFlBQVksRUFB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QUcsQ0FBQyxFQUFFO1FBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF0dGFjaEF1dGhvcml6YXRpb25IZWFkZXIgfSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5cbmltcG9ydCB7IGdldEJvb3RNb2RlLCBMT0NBTF9ERVZfRVhURU5TSU9OX0lORk8sIGlzTG9jYWxFbnYgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRFeHRlbnNpb25zKHF1ZXJ5OiBFeHRlbnNpb25zUXVlcnkgPSB7fSkge1xuICBpZiAoZ2V0Qm9vdE1vZGUoKSA9PT0gJ3NhZmUnKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBpc0xvY2FsRW52KClcbiAgICA/IGF3YWl0IGxvYWREZXZFeHRlbnNpb25zKHF1ZXJ5KVxuICAgIDogYXdhaXQgbG9hZFByb2RFeHRlbnNpb25zKHF1ZXJ5KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZERldkV4dGVuc2lvbnMoXG4gIHF1ZXJ5OiBFeHRlbnNpb25zUXVlcnkgPSB7fSxcbik6IFByb21pc2U8RXh0ZW5zaW9uW10+IHtcbiAgcmV0dXJuIGF3YWl0IGZldGNoKGAvZGV2LXBsdWdpbi9jb25zb2xlLXBsdWdpbi5qc29uYClcbiAgICAudGhlbihyZXMgPT4ge1xuICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggbG9jYWwgZGV2IGV4dGVuc2lvbnMnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXMuanNvbigpO1xuICAgIH0pXG4gICAgLnRoZW4oKHBsdWdpbjogUGx1Z2luSlNPTikgPT5cbiAgICAgIHBsdWdpbi5leHRlbnNpb25zLm1hcChleHQgPT4gKHtcbiAgICAgICAgLi4uTE9DQUxfREVWX0VYVEVOU0lPTl9JTkZPLFxuICAgICAgICAuLi5leHQsXG4gICAgICAgIGRlcGVuZGVuY2llczogcGx1Z2luLmRlcGVuZGVuY2llcyB8fCB7fSxcbiAgICAgICAgaTE4blZlcnNpb246IHBsdWdpbi5pMThuVmVyc2lvbixcbiAgICAgICAgZW50cnlwb2ludDogJy9kZXYtcGx1Z2luJyxcbiAgICAgIH0pKSxcbiAgICApXG4gICAgLmNhdGNoKCgpID0+IHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ0ZhaWxlZCB0byBmZXRjaCBsb2NhbCBkZXYgZXh0ZW5zaW9ucywgbG9hZGluZyBwcm9kIGV4dGVuc2lvbnMnLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBsb2FkUHJvZEV4dGVuc2lvbnMocXVlcnkpO1xuICAgIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBsb2FkUHJvZEV4dGVuc2lvbnMoXG4gIHF1ZXJ5OiBFeHRlbnNpb25zUXVlcnkgPSB7fSxcbik6IFByb21pc2U8RXh0ZW5zaW9uW10+IHtcbiAgY29uc3QgcmVxUHJlZml4ID0gaXNMb2NhbEVudigpID8gJy9hcGktZ2F0ZXdheScgOiAnJztcbiAgY29uc3QgcXVlcnlTdHJpbmcgPSBPYmplY3QuZW50cmllcyhxdWVyeSlcbiAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX09JHt2YWx1ZS5qb2luKCcsJyl9YClcbiAgICAuam9pbignOycpO1xuXG4gIHJldHVybiBhd2FpdCBmZXRjaChcbiAgICBgJHtyZXFQcmVmaXh9L2Zyb250ZW5kLXBsdWdpbnMvY2x1c3RlcnMvY29uc29sZS1wbHVnaW5zJHtxdWVyeVN0cmluZyAmJiAnP2ZpbHRlcj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5U3RyaW5nKX1gLFxuICAgIHtcbiAgICAgIGhlYWRlcnM6IGF0dGFjaEF1dGhvcml6YXRpb25IZWFkZXIoKSxcbiAgICB9LFxuICApXG4gICAgLnRoZW4ocmVzID0+IHtcbiAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIGV4dGVuc2lvbnMnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXMuanNvbigpO1xuICAgIH0pXG4gICAgLnRoZW4oKHJhd1BsdWdpbnM6IFJhd1BsdWdpbnMpID0+XG4gICAgICBPYmplY3QuZW50cmllcyhyYXdQbHVnaW5zKS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIFtjbHVzdGVyLCBwbHVnaW5zXSkgPT5cbiAgICAgICAgICBhY2MuY29uY2F0KFxuICAgICAgICAgICAgcGx1Z2lucy5mbGF0TWFwKHBsdWdpbiA9PiB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGx1Z2luSnNvbiA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICAgICAgICBwbHVnaW5bJ2NvbnNvbGUtcGx1Z2luLmpzb24nXSxcbiAgICAgICAgICAgICAgICApIGFzIFBsdWdpbkpTT047XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcGx1Z2luSnNvbi5leHRlbnNpb25zLm1hcChleHQgPT4gKHtcbiAgICAgICAgICAgICAgICAgIC4uLmV4dCxcbiAgICAgICAgICAgICAgICAgIGNsdXN0ZXIsXG4gICAgICAgICAgICAgICAgICBwbHVnaW5OYW1lOiBwbHVnaW4ubmFtZSxcbiAgICAgICAgICAgICAgICAgIHBsdWdpblZlcnNpb246IHBsdWdpbi52ZXJzaW9uLFxuICAgICAgICAgICAgICAgICAgYXBwTmFtZTogcGx1Z2luLnBhdGhcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNlKHBsdWdpbi5wYXRoLmxhc3RJbmRleE9mKCcvJykgKyAxKVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZUFsbCgnLycsICctJyksXG4gICAgICAgICAgICAgICAgICBlbnRyeXBvaW50OiBgJHtyZXFQcmVmaXh9L2NsdXN0ZXJzLXJld3JpdGUvJHtjbHVzdGVyfSR7cGx1Z2luLnBhdGh9YCxcbiAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llczogcGx1Z2luSnNvbi5kZXBlbmRlbmNpZXMgfHwge30sXG4gICAgICAgICAgICAgICAgICBpMThuVmVyc2lvbjogcGx1Z2luSnNvbi5pMThuVmVyc2lvbixcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gcGFyc2UgY29uc29sZS1wbHVnaW4uanNvbiBmb3IgcGx1Z2luICR7cGx1Z2luLm5hbWV9OmAsXG4gICAgICAgICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKSxcbiAgICAgICAgW10gYXMgRXh0ZW5zaW9uW10sXG4gICAgICApLFxuICAgIClcbiAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25zUXVlcnkge1xuICB0eXBlcz86IHN0cmluZ1tdO1xuICBjbHVzdGVycz86IHN0cmluZ1tdO1xuICBvcGVyYXRvcnM/OiBzdHJpbmdbXTtcbiAgY2hhbm5lbHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb248VCA9IGFueT4gZXh0ZW5kcyBSYXdFeHRlbnNpb248VD4ge1xuICBjbHVzdGVyOiBzdHJpbmc7XG4gIHBsdWdpbk5hbWU6IHN0cmluZztcbiAgcGx1Z2luVmVyc2lvbjogc3RyaW5nO1xuICBhcHBOYW1lOiBzdHJpbmc7XG4gIGVudHJ5cG9pbnQ6IHN0cmluZztcbiAgZGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBpMThuVmVyc2lvbj86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFJhd1BsdWdpbnMge1xuICBbY2x1c3Rlcjogc3RyaW5nXTogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgICdjb25zb2xlLXBsdWdpbi5qc29uJzogc3RyaW5nO1xuICB9Pjtcbn1cblxuaW50ZXJmYWNlIFBsdWdpbkpTT04ge1xuICBleHRlbnNpb25zOiBSYXdFeHRlbnNpb25bXTtcbiAgZGVwZW5kZW5jaWVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgaTE4blZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBSYXdFeHRlbnNpb248VCA9IGFueT4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIG9wdGlvbnM6IFQ7XG59XG4iXX0=
@@ -3,9 +3,6 @@ import { loadRemoteModule, setRemoteDefinitions } from '@nx/angular/mf';
3
3
  import { compare } from 'compare-versions';
4
4
  const remoteRecord = new Set();
5
5
  const BOOT_MODE_KEY = '__boot_mode__';
6
- /**
7
- * @deprecated Use isLocalDev from @alauda-fe/common instead
8
- */
9
6
  export function isLocalEnv() {
10
7
  return location.hostname === 'localhost';
11
8
  }
@@ -65,10 +62,16 @@ export function filterLatestVersion(identity) {
65
62
  return acc;
66
63
  }, []);
67
64
  }
68
- export const translateScope = ({ cluster, pluginName, appName, }, locale) => isBuiltInLanguage(locale)
69
- ? `plugin__${cluster}~${pluginName}~${appName}`
70
- : `plugin__${pluginName}~${appName}`;
65
+ export const translateScope = (extension, locale) => {
66
+ if (isBuiltInLanguage(locale)) {
67
+ return `plugin__${extension.cluster}~${extension.pluginName}~${extension.appName}`;
68
+ }
69
+ const baseScope = `plugin__${extension.pluginName}~${extension.appName}`;
70
+ return extension.i18nVersion
71
+ ? `${baseScope}~${extension.i18nVersion}`
72
+ : baseScope;
73
+ };
71
74
  export const translateScopeKey = (scope, key) => {
72
75
  return `${scope}.${key}`;
73
76
  };
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSTNDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7QUFFdkMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFVBQVU7SUFDeEIsT0FBTyxRQUFRLENBQUMsUUFBUSxLQUFLLFdBQVcsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFVBQWtCO0lBQ25ELE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsT0FBTyxFQUFFLGNBQWM7SUFDdkIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsYUFBYSxFQUFFLFFBQVE7SUFDdkIsT0FBTyxFQUFFLFNBQVM7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBQ25DLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLGFBQWEsRUFBRSxRQUFRO0lBQ3ZCLE9BQU8sRUFBRSxTQUFTO0NBQ25CLENBQUM7QUFFRixNQUFNLFVBQVUsV0FBVztJQUN6QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTTtTQUMxQixLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ1IsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLE1BQU0sQ0FDTCxDQUFDLEdBQUcsRUFB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RUFBRSxHQUFXLEVBQUUsRUFBRTtJQUM5RCxPQUFPLEdBQUcsS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdMT0JBTF9DTFVTVEVSLCBpc0J1aWx0SW5MYW5ndWFnZSB9IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IGxvYWRSZW1vdGVNb2R1bGUsIHNldFJlbW90ZURlZmluaXRpb25zIH0gZnJvbSAnQG54L2FuZ3VsYXIvbWYnO1xuaW1wb3J0IHsgY29tcGFyZSB9IGZyb20gJ2NvbXBhcmUtdmVyc2lvbnMnO1xuXG5pbXBvcnQgeyBFeHRlbnNpb24gfSBmcm9tICcuL2V4dGVuc2lvbnMtbG9hZGVyJztcblxuY29uc3QgcmVtb3RlUmVjb3JkID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbmNvbnN0IEJPT1RfTU9ERV9LRVkgPSAnX19ib290X21vZGVfXyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGlzTG9jYWxEZXYgZnJvbSBAYWxhdWRhLWZlL2NvbW1vbiBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0xvY2FsRW52KCkge1xuICByZXR1cm4gbG9jYXRpb24uaG9zdG5hbWUgPT09ICdsb2NhbGhvc3QnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNQbHVnaW5QYXRoKHB1YmxpY1BhdGg6IHN0cmluZykge1xuICByZXR1cm4gcHVibGljUGF0aC5pbmNsdWRlcygnL19wbHVnaW5zLycpO1xufVxuXG5leHBvcnQgY29uc3QgTE9DQUxfREVWX0VYVEVOU0lPTl9JTkZPID0ge1xuICBjbHVzdGVyOiBHTE9CQUxfQ0xVU1RFUixcbiAgcGx1Z2luTmFtZTogJ2xvY2FsLWRldicsXG4gIHBsdWdpblZlcnNpb246ICd2MS4wLjAnLFxuICBhcHBOYW1lOiAnZGVmYXVsdCcsXG59O1xuXG5leHBvcnQgY29uc3QgU1RBVElDX0VYVEVOU0lPTl9JTkZPID0ge1xuICBjbHVzdGVyOiBHTE9CQUxfQ0xVU1RFUixcbiAgcGx1Z2luVmVyc2lvbjogJ3YxLjAuMCcsXG4gIGFwcE5hbWU6ICdkZWZhdWx0Jyxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCb290TW9kZSgpOiAnc3RhbmRhcmQnIHwgJ3NhZmUnIHtcbiAgY29uc3QgcXVlcnkgPSBsb2NhdGlvbi5zZWFyY2hcbiAgICAuc2xpY2UoMSlcbiAgICAuc3BsaXQoJyYnKVxuICAgIC5yZWR1Y2UoXG4gICAgICAoYWNjLCBjdXIpID0+IHtcbiAgICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gY3VyLnNwbGl0KCc9Jyk7XG4gICAgICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LFxuICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICApO1xuICBjb25zdCBtb2RlID0gKHF1ZXJ5W0JPT1RfTU9ERV9LRVldIHx8XG4gICAgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShCT09UX01PREVfS0VZKSB8fFxuICAgICdzdGFuZGFyZCcpIGFzICdzdGFuZGFyZCcgfCAnc2FmZSc7XG5cbiAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShCT09UX01PREVfS0VZLCBtb2RlKTtcblxuICByZXR1cm4gbW9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZW1vdGUocmVtb3RlOiBzdHJpbmcsIG1vZHVsZTogc3RyaW5nKSB7XG4gIGlmICghcmVtb3RlUmVjb3JkLmhhcyhyZW1vdGUpKSB7XG4gICAgcmVtb3RlUmVjb3JkLmFkZChyZW1vdGUpO1xuICAgIHNldFJlbW90ZURlZmluaXRpb25zKHsgW3JlbW90ZV06IHJlbW90ZSB9KTtcbiAgfVxuXG4gIHJldHVybiBsb2FkUmVtb3RlTW9kdWxlKHJlbW90ZSwgbW9kdWxlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckxhdGVzdFZlcnNpb248TyA9IGFueT4oXG4gIGlkZW50aXR5OiAoZXh0OiBPKSA9PiB1bmtub3duLFxuKTogKGV4dHM6IEFycmF5PEV4dGVuc2lvbjxPPj4pID0+IEFycmF5PEV4dGVuc2lvbjxPPj4ge1xuICByZXR1cm4gKGV4dHM6IEFycmF5PEV4dGVuc2lvbjxPPj4pID0+XG4gICAgZXh0cy5yZWR1Y2UoXG4gICAgICAoYWNjLCBleHQpID0+IHtcbiAgICAgICAgY29uc3QgZXhpc3RlZEluZGV4ID0gYWNjLmZpbmRJbmRleChcbiAgICAgICAgICBhID0+XG4gICAgICAgICAgICBhLnBsdWdpbk5hbWUgPT09IGV4dC5wbHVnaW5OYW1lICYmXG4gICAgICAgICAgICBpZGVudGl0eShhLm9wdGlvbnMpID09PSBpZGVudGl0eShleHQub3B0aW9ucyksXG4gICAgICAgICk7XG4gICAgICAgIGlmIChleGlzdGVkSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgYWNjLnB1c2goZXh0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYWNjW2V4aXN0ZWRJbmRleF0gPSBjb21wYXJlKFxuICAgICAgICAgICAgICBhY2NbZXhpc3RlZEluZGV4XS5wbHVnaW5WZXJzaW9uLFxuICAgICAgICAgICAgICBleHQucGx1Z2luVmVyc2lvbixcbiAgICAgICAgICAgICAgJz49JyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgPyBhY2NbZXhpc3RlZEluZGV4XVxuICAgICAgICAgICAgICA6IGV4dDtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIGBFcnJvciB3aGVuIGNvbXBhcmluZyBvcGVyYXRvciAoJHthY2NbZXhpc3RlZEluZGV4XS5wbHVnaW5OYW1lfSkgdmVyc2lvbnMgKCR7YWNjW2V4aXN0ZWRJbmRleF0ucGx1Z2luVmVyc2lvbn0sICR7ZXh0LnBsdWdpblZlcnNpb259KS4gVXNpbmcgJHthY2NbZXhpc3RlZEluZGV4XS5wbHVnaW5WZXJzaW9ufSBmcm9tIGNsdXN0ZXIgJHthY2NbZXhpc3RlZEluZGV4XS5jbHVzdGVyfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIFtdIGFzIEFycmF5PEV4dGVuc2lvbjxPPj4sXG4gICAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IHRyYW5zbGF0ZVNjb3BlID0gKFxuICB7XG4gICAgY2x1c3RlcixcbiAgICBwbHVnaW5OYW1lLFxuICAgIGFwcE5hbWUsXG4gIH06IHtcbiAgICBjbHVzdGVyOiBzdHJpbmc7XG4gICAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICAgIGFwcE5hbWU6IHN0cmluZztcbiAgfSxcbiAgbG9jYWxlOiBzdHJpbmcsXG4pID0+XG4gIGlzQnVpbHRJbkxhbmd1YWdlKGxvY2FsZSlcbiAgICA/IGBwbHVnaW5fXyR7Y2x1c3Rlcn1+JHtwbHVnaW5OYW1lfX4ke2FwcE5hbWV9YFxuICAgIDogYHBsdWdpbl9fJHtwbHVnaW5OYW1lfX4ke2FwcE5hbWV9YDtcblxuZXhwb3J0IGNvbnN0IHRyYW5zbGF0ZVNjb3BlS2V5ID0gKHNjb3BlOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBgJHtzY29wZX0uJHtrZXl9YDtcbn07XG4iXX0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSTNDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7QUFFdkMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDO0FBRXRDLE1BQU0sVUFBVSxVQUFVO0lBQ3hCLE9BQU8sUUFBUSxDQUFDLFFBQVEsS0FBSyxXQUFXLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFrQjtJQUNuRCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHO0lBQ3RDLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLGFBQWEsRUFBRSxRQUFRO0lBQ3ZCLE9BQU8sRUFBRSxTQUFTO0NBQ25CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxPQUFPLEVBQUUsY0FBYztJQUN2QixhQUFhLEVBQUUsUUFBUTtJQUN2QixPQUFPLEVBQUUsU0FBUztDQUNuQixDQUFDO0FBRUYsTUFBTSxVQUFVLFdBQVc7SUFDekIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU07U0FDMUIsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNSLEtBQUssQ0FBQyxHQUFHLENBQUM7U0FDVixNQUFNLENBQ0wsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFF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RSxPQUFPLFNBQVMsQ0FBQyxXQUFXO1FBQzFCLENBQUMsQ0FBQyxHQUFHLFNBQVMsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFO1FBQ3pDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEVBQUU7SUFDOUQsT0FBTyxHQUFHLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUMzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHTE9CQUxfQ0xVU1RFUiwgaXNCdWlsdEluTGFuZ3VhZ2UgfSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5pbXBvcnQgeyBsb2FkUmVtb3RlTW9kdWxlLCBzZXRSZW1vdGVEZWZpbml0aW9ucyB9IGZyb20gJ0BueC9hbmd1bGFyL21mJztcbmltcG9ydCB7IGNvbXBhcmUgfSBmcm9tICdjb21wYXJlLXZlcnNpb25zJztcblxuaW1wb3J0IHsgRXh0ZW5zaW9uIH0gZnJvbSAnLi9leHRlbnNpb25zLWxvYWRlcic7XG5cbmNvbnN0IHJlbW90ZVJlY29yZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG5jb25zdCBCT09UX01PREVfS0VZID0gJ19fYm9vdF9tb2RlX18nO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNMb2NhbEVudigpIHtcbiAgcmV0dXJuIGxvY2F0aW9uLmhvc3RuYW1lID09PSAnbG9jYWxob3N0Jztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhdGljUGx1Z2luUGF0aChwdWJsaWNQYXRoOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHB1YmxpY1BhdGguaW5jbHVkZXMoJy9fcGx1Z2lucy8nKTtcbn1cblxuZXhwb3J0IGNvbnN0IExPQ0FMX0RFVl9FWFRFTlNJT05fSU5GTyA9IHtcbiAgY2x1c3RlcjogR0xPQkFMX0NMVVNURVIsXG4gIHBsdWdpbk5hbWU6ICdsb2NhbC1kZXYnLFxuICBwbHVnaW5WZXJzaW9uOiAndjEuMC4wJyxcbiAgYXBwTmFtZTogJ2RlZmF1bHQnLFxufTtcblxuZXhwb3J0IGNvbnN0IFNUQVRJQ19FWFRFTlNJT05fSU5GTyA9IHtcbiAgY2x1c3RlcjogR0xPQkFMX0NMVVNURVIsXG4gIHBsdWdpblZlcnNpb246ICd2MS4wLjAnLFxuICBhcHBOYW1lOiAnZGVmYXVsdCcsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm9vdE1vZGUoKTogJ3N0YW5kYXJkJyB8ICdzYWZlJyB7XG4gIGNvbnN0IHF1ZXJ5ID0gbG9jYXRpb24uc2VhcmNoXG4gICAgLnNsaWNlKDEpXG4gICAgLnNwbGl0KCcmJylcbiAgICAucmVkdWNlKFxuICAgICAgKGFjYywgY3VyKSA9PiB7XG4gICAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IGN1ci5zcGxpdCgnPScpO1xuICAgICAgICBhY2Nba2V5XSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgKTtcbiAgY29uc3QgbW9kZSA9IChxdWVyeVtCT09UX01PREVfS0VZXSB8fFxuICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oQk9PVF9NT0RFX0tFWSkgfHxcbiAgICAnc3RhbmRhcmQnKSBhcyAnc3RhbmRhcmQnIHwgJ3NhZmUnO1xuXG4gIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oQk9PVF9NT0RFX0tFWSwgbW9kZSk7XG5cbiAgcmV0dXJuIG1vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkUmVtb3RlKHJlbW90ZTogc3RyaW5nLCBtb2R1bGU6IHN0cmluZykge1xuICBpZiAoIXJlbW90ZVJlY29yZC5oYXMocmVtb3RlKSkge1xuICAgIHJlbW90ZVJlY29yZC5hZGQocmVtb3RlKTtcbiAgICBzZXRSZW1vdGVEZWZpbml0aW9ucyh7IFtyZW1vdGVdOiByZW1vdGUgfSk7XG4gIH1cblxuICByZXR1cm4gbG9hZFJlbW90ZU1vZHVsZShyZW1vdGUsIG1vZHVsZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJMYXRlc3RWZXJzaW9uPE8gPSBhbnk+KFxuICBpZGVudGl0eTogKGV4dDogTykgPT4gdW5rbm93bixcbik6IChleHRzOiBBcnJheTxFeHRlbnNpb248Tz4+KSA9PiBBcnJheTxFeHRlbnNpb248Tz4+IHtcbiAgcmV0dXJuIChleHRzOiBBcnJheTxFeHRlbnNpb248Tz4+KSA9PlxuICAgIGV4dHMucmVkdWNlKFxuICAgICAgKGFjYywgZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGV4aXN0ZWRJbmRleCA9IGFjYy5maW5kSW5kZXgoXG4gICAgICAgICAgYSA9PlxuICAgICAgICAgICAgYS5wbHVnaW5OYW1lID09PSBleHQucGx1Z2luTmFtZSAmJlxuICAgICAgICAgICAgaWRlbnRpdHkoYS5vcHRpb25zKSA9PT0gaWRlbnRpdHkoZXh0Lm9wdGlvbnMpLFxuICAgICAgICApO1xuICAgICAgICBpZiAoZXhpc3RlZEluZGV4ID09PSAtMSkge1xuICAgICAgICAgIGFjYy5wdXNoKGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGFjY1tleGlzdGVkSW5kZXhdID0gY29tcGFyZShcbiAgICAgICAgICAgICAgYWNjW2V4aXN0ZWRJbmRleF0ucGx1Z2luVmVyc2lvbixcbiAgICAgICAgICAgICAgZXh0LnBsdWdpblZlcnNpb24sXG4gICAgICAgICAgICAgICc+PScsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgID8gYWNjW2V4aXN0ZWRJbmRleF1cbiAgICAgICAgICAgICAgOiBleHQ7XG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBgRXJyb3Igd2hlbiBjb21wYXJpbmcgb3BlcmF0b3IgKCR7YWNjW2V4aXN0ZWRJbmRleF0ucGx1Z2luTmFtZX0pIHZlcnNpb25zICgke2FjY1tleGlzdGVkSW5kZXhdLnBsdWdpblZlcnNpb259LCAke2V4dC5wbHVnaW5WZXJzaW9ufSkuIFVzaW5nICR7YWNjW2V4aXN0ZWRJbmRleF0ucGx1Z2luVmVyc2lvbn0gZnJvbSBjbHVzdGVyICR7YWNjW2V4aXN0ZWRJbmRleF0uY2x1c3Rlcn1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICBbXSBhcyBBcnJheTxFeHRlbnNpb248Tz4+LFxuICAgICk7XG59XG5cbmV4cG9ydCBjb25zdCB0cmFuc2xhdGVTY29wZSA9IChcbiAgZXh0ZW5zaW9uOiB7XG4gICAgY2x1c3Rlcjogc3RyaW5nO1xuICAgIHBsdWdpbk5hbWU6IHN0cmluZztcbiAgICBhcHBOYW1lOiBzdHJpbmc7XG4gICAgaTE4blZlcnNpb24/OiBzdHJpbmc7XG4gIH0sXG4gIGxvY2FsZTogc3RyaW5nLFxuKSA9PiB7XG4gIGlmIChpc0J1aWx0SW5MYW5ndWFnZShsb2NhbGUpKSB7XG4gICAgcmV0dXJuIGBwbHVnaW5fXyR7ZXh0ZW5zaW9uLmNsdXN0ZXJ9fiR7ZXh0ZW5zaW9uLnBsdWdpbk5hbWV9fiR7ZXh0ZW5zaW9uLmFwcE5hbWV9YDtcbiAgfVxuXG4gIGNvbnN0IGJhc2VTY29wZSA9IGBwbHVnaW5fXyR7ZXh0ZW5zaW9uLnBsdWdpbk5hbWV9fiR7ZXh0ZW5zaW9uLmFwcE5hbWV9YDtcblxuICByZXR1cm4gZXh0ZW5zaW9uLmkxOG5WZXJzaW9uXG4gICAgPyBgJHtiYXNlU2NvcGV9fiR7ZXh0ZW5zaW9uLmkxOG5WZXJzaW9ufWBcbiAgICA6IGJhc2VTY29wZTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2xhdGVTY29wZUtleSA9IChzY29wZTogc3RyaW5nLCBrZXk6IHN0cmluZykgPT4ge1xuICByZXR1cm4gYCR7c2NvcGV9LiR7a2V5fWA7XG59O1xuIl19
@@ -1,9 +1,8 @@
1
- import { isLocalDev } from '@alauda-fe/common';
2
- import { isStaticPluginPath, LOCAL_DEV_EXTENSION_INFO, STATIC_EXTENSION_INFO, } from '@alauda-fe/plugin-sdk';
1
+ import { isStaticPluginPath, LOCAL_DEV_EXTENSION_INFO, STATIC_EXTENSION_INFO, isLocalEnv, } from '@alauda-fe/plugin-sdk';
3
2
  export const PUBLIC_PATH = __webpack_public_path__;
4
3
  export const RUNTIME = runtimeInfo();
5
4
  function runtimeInfo() {
6
- if (isLocalDev()) {
5
+ if (isLocalEnv()) {
7
6
  return {
8
7
  ...LOCAL_DEV_EXTENSION_INFO,
9
8
  publicPath: PUBLIC_PATH,
@@ -28,4 +27,4 @@ function runtimeInfo() {
28
27
  appName: arr.slice(pluginIndex + 3, arr.length - 1).join('-'),
29
28
  };
30
29
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGx1Z2luLXNkay9yZW1vdGUvbGliL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUN0QixNQUFNLHVCQUF1QixDQUFDO0FBSS9CLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsV0FBVyxFQUFFLENBQUM7QUFFckMsU0FBUyxXQUFXO0lBQ2xCLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUNqQixPQUFPO1lBQ0wsR0FBRyx3QkFBd0I7WUFDM0IsVUFBVSxFQUFFLFdBQVc7U0FDeEIsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRW5DLElBQUksa0JBQWtCLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1FBRS9ELE9BQU87WUFDTCxHQUFHLHFCQUFxQjtZQUN4QixVQUFVLEVBQUUsR0FBRyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDaEMsVUFBVSxFQUFFLFdBQVc7U0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTVFLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFM0UsT0FBTztRQUNMLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLE9BQU8sRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDO1FBQzFCLFVBQVUsRUFBRSxHQUFHLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNoQyxhQUFhLEVBQUUsR0FBRyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDbkMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7S0FDOUQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0xvY2FsRGV2IH0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuXG5pbXBvcnQge1xuICBpc1N0YXRpY1BsdWdpblBhdGgsXG4gIExPQ0FMX0RFVl9FWFRFTlNJT05fSU5GTyxcbiAgU1RBVElDX0VYVEVOU0lPTl9JTkZPLFxufSBmcm9tICdAYWxhdWRhLWZlL3BsdWdpbi1zZGsnO1xuXG5kZWNsYXJlIGNvbnN0IF9fd2VicGFja19wdWJsaWNfcGF0aF9fOiBzdHJpbmc7XG5cbmV4cG9ydCBjb25zdCBQVUJMSUNfUEFUSCA9IF9fd2VicGFja19wdWJsaWNfcGF0aF9fO1xuXG5leHBvcnQgY29uc3QgUlVOVElNRSA9IHJ1bnRpbWVJbmZvKCk7XG5cbmZ1bmN0aW9uIHJ1bnRpbWVJbmZvKCk6IFJ1bnRpbWUge1xuICBpZiAoaXNMb2NhbERldigpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLkxPQ0FMX0RFVl9FWFRFTlNJT05fSU5GTyxcbiAgICAgIHB1YmxpY1BhdGg6IFBVQkxJQ19QQVRILFxuICAgIH07XG4gIH1cbiAgY29uc3QgYXJyID0gUFVCTElDX1BBVEguc3BsaXQoJy8nKTtcblxuICBpZiAoaXNTdGF0aWNQbHVnaW5QYXRoKFBVQkxJQ19QQVRIKSkge1xuICAgIGNvbnN0IHBsdWdpbkluZGV4ID0gYXJyLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09ICdfcGx1Z2lucycpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLlNUQVRJQ19FWFRFTlNJT05fSU5GTyxcbiAgICAgIHBsdWdpbk5hbWU6IGFycltwbHVnaW5JbmRleCArIDFdLFxuICAgICAgcHVibGljUGF0aDogUFVCTElDX1BBVEgsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGNsdXN0ZXJJbmRleCA9IGFyci5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSAnY2x1c3RlcnMtcmV3cml0ZScpICsgMTtcblxuICBjb25zdCBwbHVnaW5JbmRleCA9IGFyci5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSAnZnJvbnRlbmQtcGx1Z2lucycpICsgMTtcblxuICByZXR1cm4ge1xuICAgIHB1YmxpY1BhdGg6IFBVQkxJQ19QQVRILFxuICAgIGNsdXN0ZXI6IGFycltjbHVzdGVySW5kZXhdLFxuICAgIHBsdWdpbk5hbWU6IGFycltwbHVnaW5JbmRleCArIDFdLFxuICAgIHBsdWdpblZlcnNpb246IGFycltwbHVnaW5JbmRleCArIDJdLFxuICAgIGFwcE5hbWU6IGFyci5zbGljZShwbHVnaW5JbmRleCArIDMsIGFyci5sZW5ndGggLSAxKS5qb2luKCctJyksXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZSB7XG4gIHB1YmxpY1BhdGg6IHN0cmluZztcbiAgY2x1c3Rlcjogc3RyaW5nO1xuICBwbHVnaW5OYW1lOiBzdHJpbmc7XG4gIHBsdWdpblZlcnNpb246IHN0cmluZztcbiAgYXBwTmFtZTogc3RyaW5nO1xufVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGx1Z2luLXNkay9yZW1vdGUvbGliL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLFVBQVUsR0FDWCxNQUFNLHVCQUF1QixDQUFDO0FBSS9CLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsV0FBVyxFQUFFLENBQUM7QUFFckMsU0FBUyxXQUFXO0lBQ2xCLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUNqQixPQUFPO1lBQ0wsR0FBRyx3QkFBd0I7WUFDM0IsVUFBVSxFQUFFLFdBQVc7U0FDeEIsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRW5DLElBQUksa0JBQWtCLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1FBRS9ELE9BQU87WUFDTCxHQUFHLHFCQUFxQjtZQUN4QixVQUFVLEVBQUUsR0FBRyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDaEMsVUFBVSxFQUFFLFdBQVc7U0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTVFLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFM0UsT0FBTztRQUNMLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLE9BQU8sRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDO1FBQzFCLFVBQVUsRUFBRSxHQUFHLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNoQyxhQUFhLEVBQUUsR0FBRyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDbkMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7S0FDOUQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpc1N0YXRpY1BsdWdpblBhdGgsXG4gIExPQ0FMX0RFVl9FWFRFTlNJT05fSU5GTyxcbiAgU1RBVElDX0VYVEVOU0lPTl9JTkZPLFxuICBpc0xvY2FsRW52LFxufSBmcm9tICdAYWxhdWRhLWZlL3BsdWdpbi1zZGsnO1xuXG5kZWNsYXJlIGNvbnN0IF9fd2VicGFja19wdWJsaWNfcGF0aF9fOiBzdHJpbmc7XG5cbmV4cG9ydCBjb25zdCBQVUJMSUNfUEFUSCA9IF9fd2VicGFja19wdWJsaWNfcGF0aF9fO1xuXG5leHBvcnQgY29uc3QgUlVOVElNRSA9IHJ1bnRpbWVJbmZvKCk7XG5cbmZ1bmN0aW9uIHJ1bnRpbWVJbmZvKCk6IFJ1bnRpbWUge1xuICBpZiAoaXNMb2NhbEVudigpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLkxPQ0FMX0RFVl9FWFRFTlNJT05fSU5GTyxcbiAgICAgIHB1YmxpY1BhdGg6IFBVQkxJQ19QQVRILFxuICAgIH07XG4gIH1cbiAgY29uc3QgYXJyID0gUFVCTElDX1BBVEguc3BsaXQoJy8nKTtcblxuICBpZiAoaXNTdGF0aWNQbHVnaW5QYXRoKFBVQkxJQ19QQVRIKSkge1xuICAgIGNvbnN0IHBsdWdpbkluZGV4ID0gYXJyLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09ICdfcGx1Z2lucycpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLlNUQVRJQ19FWFRFTlNJT05fSU5GTyxcbiAgICAgIHBsdWdpbk5hbWU6IGFycltwbHVnaW5JbmRleCArIDFdLFxuICAgICAgcHVibGljUGF0aDogUFVCTElDX1BBVEgsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGNsdXN0ZXJJbmRleCA9IGFyci5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSAnY2x1c3RlcnMtcmV3cml0ZScpICsgMTtcblxuICBjb25zdCBwbHVnaW5JbmRleCA9IGFyci5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSAnZnJvbnRlbmQtcGx1Z2lucycpICsgMTtcblxuICByZXR1cm4ge1xuICAgIHB1YmxpY1BhdGg6IFBVQkxJQ19QQVRILFxuICAgIGNsdXN0ZXI6IGFycltjbHVzdGVySW5kZXhdLFxuICAgIHBsdWdpbk5hbWU6IGFycltwbHVnaW5JbmRleCArIDFdLFxuICAgIHBsdWdpblZlcnNpb246IGFycltwbHVnaW5JbmRleCArIDJdLFxuICAgIGFwcE5hbWU6IGFyci5zbGljZShwbHVnaW5JbmRleCArIDMsIGFyci5sZW5ndGggLSAxKS5qb2luKCctJyksXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZSB7XG4gIHB1YmxpY1BhdGg6IHN0cmluZztcbiAgY2x1c3Rlcjogc3RyaW5nO1xuICBwbHVnaW5OYW1lOiBzdHJpbmc7XG4gIHBsdWdpblZlcnNpb246IHN0cmluZztcbiAgYXBwTmFtZTogc3RyaW5nO1xufVxuIl19
@@ -1,8 +1,81 @@
1
- import { GLOBAL_CLUSTER, isBuiltInLanguage, TranslatePipe, TranslateService, } from '@alauda-fe/common';
1
+ import { NotificationService } from '@alauda/ui';
2
+ import { FALLBACK_LANGUAGE, GLOBAL_CLUSTER, isBuiltInLanguage, TranslatePipe, TranslateService, } from '@alauda-fe/common';
2
3
  import { inject, Injectable, Pipe } from '@angular/core';
3
4
  import { RUNTIME } from './runtime';
4
- import { translateScope, translateScopeKey } from '@alauda-fe/plugin-sdk';
5
+ import { translateScope, translateScopeKey, getAllExtensions, } from '@alauda-fe/plugin-sdk';
5
6
  import * as i0 from "@angular/core";
7
+ /**
8
+ * 获取扩展列表,支持新旧版本兼容(ACP <= v4.1)
9
+ * 优先使用新版 plugin-sdk 的 getAllExtensions 方法
10
+ * 回退到旧版本的全局变量 __alauda_extensions
11
+ */
12
+ function getExtensions() {
13
+ try {
14
+ // 尝试使用新版本的 getAllExtensions 方法
15
+ if (typeof getAllExtensions === 'function') {
16
+ return getAllExtensions();
17
+ }
18
+ }
19
+ catch (error) {
20
+ // getAllExtensions 不存在或调用失败时忽略错误
21
+ console.debug('getAllExtensions method not available or failed:', error);
22
+ }
23
+ // 回退到旧版本的全局变量
24
+ try {
25
+ const windowExtensions = window.__alauda_extensions;
26
+ if (Array.isArray(windowExtensions)) {
27
+ console.debug('Using fallback __alauda_extensions:', windowExtensions.length, 'extensions found');
28
+ return windowExtensions;
29
+ }
30
+ }
31
+ catch (error) {
32
+ console.debug('__alauda_extensions not available:', error);
33
+ }
34
+ // 两种方式都不可用时返回 null,功能将以降级模式运行
35
+ console.debug('No extension source available, running in fallback mode');
36
+ return null;
37
+ }
38
+ /**
39
+ * 获取当前插件的i18n版本号
40
+ * 如果无法获取扩展信息,返回 undefined,translateScope 将使用基础作用域
41
+ */
42
+ function getCurrentPluginI18nVersion() {
43
+ const extensions = getExtensions();
44
+ if (!extensions) {
45
+ console.debug('No extensions available, i18n will use base scope without version');
46
+ return undefined;
47
+ }
48
+ const currentExtension = extensions.find((ext) => ext.pluginName === RUNTIME.pluginName &&
49
+ ext.appName === RUNTIME.appName &&
50
+ ext.cluster === RUNTIME.cluster);
51
+ if (!currentExtension) {
52
+ console.debug('Current extension not found in extensions list, using base scope');
53
+ return undefined;
54
+ }
55
+ const version = currentExtension?.i18nVersion;
56
+ console.debug('Plugin i18n version:', version || 'not specified');
57
+ return version;
58
+ }
59
+ /**
60
+ * 获取i18n文件
61
+ */
62
+ function fetchI18nFile(lang, scope) {
63
+ const path = isBuiltInLanguage(lang)
64
+ ? RUNTIME.publicPath + 'assets/i18n/' + lang + '.json'
65
+ : `/console-i18n/${lang}/${scope}.json`;
66
+ return fetch(path)
67
+ .then(res => {
68
+ if (!res.ok) {
69
+ throw new Error(`HTTP ${res.status}: ${res.statusText}`);
70
+ }
71
+ return res.json();
72
+ })
73
+ .catch(err => {
74
+ console.error(`Failed to load i18n file for plugin ${RUNTIME.pluginName}~${RUNTIME.appName} and language ${lang}`);
75
+ console.error(err);
76
+ return null;
77
+ });
78
+ }
6
79
  export const getTranslateScope = (locale) => {
7
80
  const cluster = isBuiltInLanguage(locale) ? RUNTIME.cluster : GLOBAL_CLUSTER;
8
81
  return `plugin__${cluster}~${RUNTIME.pluginName}~${RUNTIME.appName}`;
@@ -10,51 +83,58 @@ export const getTranslateScope = (locale) => {
10
83
  export class TranslateScopeService {
11
84
  constructor() {
12
85
  this.translate = inject(TranslateService);
13
- this.loadedLang = new Set();
14
- this.scope = translateScope(RUNTIME, this.translate.locale);
15
- if (!this.translate.translationsList.find(item => item?.[this.translate.locale]?.[this.scope])) {
86
+ this.notification = inject(NotificationService);
87
+ this.scope = translateScope({
88
+ ...RUNTIME,
89
+ i18nVersion: getCurrentPluginI18nVersion(),
90
+ }, this.translate.locale);
91
+ const fallbackLangI18nLoaded = this.translate.translationsList.find(item => item?.[FALLBACK_LANGUAGE]?.[this.scope]);
92
+ if (!fallbackLangI18nLoaded) {
93
+ // 基座未预加载插件翻译文件时自行加载
16
94
  this.setupI18nAssets();
17
95
  }
96
+ else if (!isBuiltInLanguage(this.translate.locale)) {
97
+ this.checkTranslationAvailability();
98
+ }
18
99
  }
19
100
  getScopedKey(key) {
20
101
  return translateScopeKey(this.scope, key);
21
102
  }
103
+ checkTranslationAvailability() {
104
+ const currentLang = this.translate.locale;
105
+ const hasTranslation = this.translate.translationsList.find(item => item?.[currentLang]?.[this.scope]);
106
+ if (!hasTranslation) {
107
+ const fileName = `${this.scope}.json`;
108
+ this.notification.warning({
109
+ title: this.translate.get('translation_file_missing_warning'),
110
+ content: this.translate.get('plugin_missing_translation_file', {
111
+ pluginName: RUNTIME.pluginName,
112
+ appName: RUNTIME.appName,
113
+ lang: currentLang,
114
+ fileName,
115
+ }),
116
+ duration: 5000,
117
+ });
118
+ }
119
+ }
22
120
  async setupI18nAssets() {
23
121
  const lang = this.translate.locale;
24
122
  if (isBuiltInLanguage(lang)) {
25
123
  this.translate.addTranslations({
26
- [lang]: { [this.scope]: await this.loadTranslations(lang) },
124
+ [lang]: { [this.scope]: await fetchI18nFile(lang, this.scope) },
27
125
  });
28
126
  }
29
127
  else {
30
128
  const [en, other] = await Promise.all([
31
- this.loadTranslations('en'),
32
- this.loadTranslations(lang),
129
+ fetchI18nFile(this.translate.options.fallbackLocale, this.scope),
130
+ fetchI18nFile(lang, this.scope),
33
131
  ]);
34
132
  this.translate.addTranslations({
35
- [lang]: { [this.scope]: Object.assign(en, other) },
133
+ [FALLBACK_LANGUAGE]: { [this.scope]: en },
134
+ [lang]: { [this.scope]: other },
36
135
  });
37
136
  }
38
137
  }
39
- async loadTranslations(lang) {
40
- if (this.loadedLang.has(lang)) {
41
- return;
42
- }
43
- this.loadedLang.add(lang);
44
- return this.fetchI18nFile(lang);
45
- }
46
- fetchI18nFile(lang) {
47
- const path = isBuiltInLanguage(lang)
48
- ? RUNTIME.publicPath + 'assets/i18n/' + lang + '.json'
49
- : `/console-i18n/${lang}/plugin__${RUNTIME.pluginName}~${RUNTIME.appName}.json`;
50
- return fetch(path)
51
- .then(res => res.json())
52
- .catch(err => {
53
- console.error(`Failed to load i18n file for plugin ${RUNTIME.pluginName}~${RUNTIME.appName} and language ${lang}`);
54
- console.error(err);
55
- return {};
56
- });
57
- }
58
138
  static { this.ɵfac = function TranslateScopeService_Factory(t) { return new (t || TranslateScopeService)(); }; }
59
139
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TranslateScopeService, factory: TranslateScopeService.ɵfac, providedIn: 'root' }); }
60
140
  }
@@ -115,4 +195,4 @@ export class ScopedTranslateKeyPipe {
115
195
  name: 'scopedTranslateKey',
116
196
  }]
117
197
  }], null, null); })();
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbHVnaW4tc2RrL3JlbW90ZS9saWIvdHJhbnNsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBQ2QsaUJBQWlCLEVBRWpCLGFBQWEsRUFDYixnQkFBZ0IsR0FDakIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXhFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUUxRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO0lBQ2xELE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDN0UsT0FBTyxXQUFXLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUN2RSxDQUFDLENBQUM7QUFLRixNQUFNLE9BQU8scUJBQXFCO0lBTWhDO1FBTFEsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBRTlCLFVBQUssR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFHOUQsSUFDRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUNuQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FB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IjpbImltcG9ydCB7XG4gIEdMT0JBTF9DTFVTVEVSLFxuICBpc0J1aWx0SW5MYW5ndWFnZSxcbiAgVHJhbnNsYXRlS2V5LFxuICBUcmFuc2xhdGVQaXBlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUlVOVElNRSB9IGZyb20gJy4vcnVudGltZSc7XG5cbmltcG9ydCB7IHRyYW5zbGF0ZVNjb3BlLCB0cmFuc2xhdGVTY29wZUtleSB9IGZyb20gJ0BhbGF1ZGEtZmUvcGx1Z2luLXNkayc7XG5cbmV4cG9ydCBjb25zdCBnZXRUcmFuc2xhdGVTY29wZSA9IChsb2NhbGU6IHN0cmluZykgPT4ge1xuICBjb25zdCBjbHVzdGVyID0gaXNCdWlsdEluTGFuZ3VhZ2UobG9jYWxlKSA/IFJVTlRJTUUuY2x1c3RlciA6IEdMT0JBTF9DTFVTVEVSO1xuICByZXR1cm4gYHBsdWdpbl9fJHtjbHVzdGVyfX4ke1JVTlRJTUUucGx1Z2luTmFtZX1+JHtSVU5USU1FLmFwcE5hbWV9YDtcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVTY29wZVNlcnZpY2Uge1xuICBwcml2YXRlIHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsb2FkZWRMYW5nID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcmVhZG9ubHkgc2NvcGUgPSB0cmFuc2xhdGVTY29wZShSVU5USU1FLCB0aGlzLnRyYW5zbGF0ZS5sb2NhbGUpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmIChcbiAgICAgICF0aGlzLnRyYW5zbGF0ZS50cmFuc2xhdGlvbnNMaXN0LmZpbmQoXG4gICAgICAgIGl0ZW0gPT4gaXRlbT8uW3RoaXMudHJhbnNsYXRlLmxvY2FsZV0/Llt0aGlzLnNjb3BlXSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRoaXMuc2V0dXBJMThuQXNzZXRzKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2NvcGVkS2V5KGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZVNjb3BlS2V5KHRoaXMuc2NvcGUsIGtleSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldHVwSTE4bkFzc2V0cygpIHtcbiAgICBjb25zdCBsYW5nID0gdGhpcy50cmFuc2xhdGUubG9jYWxlO1xuICAgIGlmIChpc0J1aWx0SW5MYW5ndWFnZShsYW5nKSkge1xuICAgICAgdGhpcy50cmFuc2xhdGUuYWRkVHJhbnNsYXRpb25zKHtcbiAgICAgICAgW2xhbmddOiB7IFt0aGlzLnNjb3BlXTogYXdhaXQgdGhpcy5sb2FkVHJhbnNsYXRpb25zKGxhbmcpIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgW2VuLCBvdGhlcl0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIHRoaXMubG9hZFRyYW5zbGF0aW9ucygnZW4nKSxcbiAgICAgICAgdGhpcy5sb2FkVHJhbnNsYXRpb25zKGxhbmcpLFxuICAgICAgXSk7XG5cbiAgICAgIHRoaXMudHJhbnNsYXRlLmFkZFRyYW5zbGF0aW9ucyh7XG4gICAgICAgIFtsYW5nXTogeyBbdGhpcy5zY29wZV06IE9iamVjdC5hc3NpZ24oZW4sIG90aGVyKSB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkVHJhbnNsYXRpb25zKGxhbmc6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmxvYWRlZExhbmcuaGFzKGxhbmcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5sb2FkZWRMYW5nLmFkZChsYW5nKTtcblxuICAgIHJldHVybiB0aGlzLmZldGNoSTE4bkZpbGUobGFuZyk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoSTE4bkZpbGUobGFuZzogc3RyaW5nKSB7XG4gICAgY29uc3QgcGF0aCA9IGlzQnVpbHRJbkxhbmd1YWdlKGxhbmcpXG4gICAgICA/IFJVTlRJTUUucHVibGljUGF0aCArICdhc3NldHMvaTE4bi8nICsgbGFuZyArICcuanNvbidcbiAgICAgIDogYC9jb25zb2xlLWkxOG4vJHtsYW5nfS9wbHVnaW5fXyR7UlVOVElNRS5wbHVnaW5OYW1lfX4ke1JVTlRJTUUuYXBwTmFtZX0uanNvbmA7XG4gICAgcmV0dXJuIGZldGNoKHBhdGgpXG4gICAgICAudGhlbihyZXMgPT4gcmVzLmpzb24oKSlcbiAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBGYWlsZWQgdG8gbG9hZCBpMThuIGZpbGUgZm9yIHBsdWdpbiAke1JVTlRJTUUucGx1Z2luTmFtZX1+JHtSVU5USU1FLmFwcE5hbWV9IGFuZCBsYW5ndWFnZSAke2xhbmd9YCxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9KTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNjb3BlZFRyYW5zbGF0ZVNlcnZpY2Uge1xuICBwcml2YXRlIHNjb3BlID0gaW5qZWN0KFRyYW5zbGF0ZVNjb3BlU2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIGdldChrZXk6IHN0cmluZywgZGF0YT86IHVua25vd24pIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KHRoaXMuc2NvcGUuZ2V0U2NvcGVkS2V5KGtleSksIGRhdGEpO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgbmFtZTogJ3Njb3BlZFRyYW5zbGF0ZScsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTY29wZWRUcmFuc2xhdGVQaXBlXG4gIGV4dGVuZHMgVHJhbnNsYXRlUGlwZVxuICBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm1cbntcbiAgcHJpdmF0ZSBzY29wZSA9IGluamVjdChUcmFuc2xhdGVTY29wZVNlcnZpY2UpO1xuXG4gIG92ZXJyaWRlIHRyYW5zZm9ybShrZXk6IFRyYW5zbGF0ZUtleSB8IGFueSwgZGF0YT86IHVua25vd24pOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm0odGhpcy5zY29wZS5nZXRTY29wZWRLZXkoa2V5KSwgZGF0YSk7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBuYW1lOiAnc2NvcGVkVHJhbnNsYXRlS2V5Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NvcGVkVHJhbnNsYXRlS2V5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIHNjb3BlID0gaW5qZWN0KFRyYW5zbGF0ZVNjb3BlU2VydmljZSk7XG5cbiAgdHJhbnNmb3JtKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zY29wZS5nZXRTY29wZWRLZXkoa2V5KTtcbiAgfVxufVxuIl19
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbHVnaW4tc2RrL3JlbW90ZS9saWIvdHJhbnNsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxpQkFBaUIsRUFFakIsYUFBYSxFQUNiLGdCQUFnQixHQUNqQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQ0wsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDakIsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFL0I7Ozs7R0FJRztBQUNILFNBQVMsYUFBYTtJQUNwQixJQUFJLENBQUM7UUFDSCwrQkFBK0I7UUFDL0IsSUFBSSxPQUFPLGdCQUFnQixLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzNDLE9BQU8sZ0JBQWdCLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixpQ0FBaUM7UUFDakMsT0FBTyxDQUFDLEtBQUssQ0FBQyxrREFBa0QsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsY0FBYztJQUNkLElBQUksQ0FBQztRQUNILE1BQU0sZ0JBQWdCLEdBQUksTUFBYyxDQUFDLG1CQUFtQixDQUFDO1FBQzdELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxDQUFDLEtBQUssQ0FDWCxxQ0FBcUMsRUFDckMsZ0JBQWdCLENBQUMsTUFBTSxFQUN2QixrQkFBa0IsQ0FDbkIs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QixJQUFJO2VBQUM7Z0JBQ0osVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLElBQUksRUFBRSxLQUFLO2FBQ1o7O0FBZ0JELE1BQU0sT0FBTyxzQkFBc0I7SUFKbkM7UUFLVSxVQUFLLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FLL0M7SUFIQyxTQUFTLENBQUMsR0FBVztRQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7dUZBTFUsc0JBQXNCOzRGQUF0QixzQkFBc0I7O2lGQUF0QixzQkFBc0I7Y0FKbEMsSUFBSTtlQUFDO2dCQUNKLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixJQUFJLEVBQUUsb0JBQW9CO2FBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgRkFMTEJBQ0tfTEFOR1VBR0UsXG4gIEdMT0JBTF9DTFVTVEVSLFxuICBpc0J1aWx0SW5MYW5ndWFnZSxcbiAgVHJhbnNsYXRlS2V5LFxuICBUcmFuc2xhdGVQaXBlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUlVOVElNRSB9IGZyb20gJy4vcnVudGltZSc7XG5cbmltcG9ydCB7XG4gIHRyYW5zbGF0ZVNjb3BlLFxuICB0cmFuc2xhdGVTY29wZUtleSxcbiAgZ2V0QWxsRXh0ZW5zaW9ucyxcbn0gZnJvbSAnQGFsYXVkYS1mZS9wbHVnaW4tc2RrJztcblxuLyoqXG4gKiDojrflj5bmianlsZXliJfooajvvIzmlK/mjIHmlrDml6fniYjmnKzlhbzlrrnvvIhBQ1AgPD0gdjQuMe+8iVxuICog5LyY5YWI5L2/55So5paw54mIIHBsdWdpbi1zZGsg55qEIGdldEFsbEV4dGVuc2lvbnMg5pa55rOVXG4gKiDlm57pgIDliLDml6fniYjmnKznmoTlhajlsYDlj5jph48gX19hbGF1ZGFfZXh0ZW5zaW9uc1xuICovXG5mdW5jdGlvbiBnZXRFeHRlbnNpb25zKCk6IGFueVtdIHwgbnVsbCB7XG4gIHRyeSB7XG4gICAgLy8g5bCd6K+V5L2/55So5paw54mI5pys55qEIGdldEFsbEV4dGVuc2lvbnMg5pa55rOVXG4gICAgaWYgKHR5cGVvZiBnZXRBbGxFeHRlbnNpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gZ2V0QWxsRXh0ZW5zaW9ucygpO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBnZXRBbGxFeHRlbnNpb25zIOS4jeWtmOWcqOaIluiwg+eUqOWksei0peaXtuW/veeVpemUmeivr1xuICAgIGNvbnNvbGUuZGVidWcoJ2dldEFsbEV4dGVuc2lvbnMgbWV0aG9kIG5vdCBhdmFpbGFibGUgb3IgZmFpbGVkOicsIGVycm9yKTtcbiAgfVxuXG4gIC8vIOWbnumAgOWIsOaXp+eJiOacrOeahOWFqOWxgOWPmOmHj1xuICB0cnkge1xuICAgIGNvbnN0IHdpbmRvd0V4dGVuc2lvbnMgPSAod2luZG93IGFzIGFueSkuX19hbGF1ZGFfZXh0ZW5zaW9ucztcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh3aW5kb3dFeHRlbnNpb25zKSkge1xuICAgICAgY29uc29sZS5kZWJ1ZyhcbiAgICAgICAgJ1VzaW5nIGZhbGxiYWNrIF9fYWxhdWRhX2V4dGVuc2lvbnM6JyxcbiAgICAgICAgd2luZG93RXh0ZW5zaW9ucy5sZW5ndGgsXG4gICAgICAgICdleHRlbnNpb25zIGZvdW5kJyxcbiAgICAgICk7XG4gICAgICByZXR1cm4gd2luZG93RXh0ZW5zaW9ucztcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5kZWJ1ZygnX19hbGF1ZGFfZXh0ZW5zaW9ucyBub3QgYXZhaWxhYmxlOicsIGVycm9yKTtcbiAgfVxuXG4gIC8vIOS4pOenjeaWueW8j+mDveS4jeWPr+eUqOaXtui/lOWbniBudWxs77yM5Yqf6IO95bCG5Lul6ZmN57qn5qih5byP6L+Q6KGMXG4gIGNvbnNvbGUuZGVidWcoJ05vIGV4dGVuc2lvbiBzb3VyY2UgYXZhaWxhYmxlLCBydW5uaW5nIGluIGZhbGxiYWNrIG1vZGUnKTtcbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICog6I635Y+W5b2T5YmN5o+S5Lu255qEaTE4bueJiOacrOWPt1xuICog5aaC5p6c5peg5rOV6I635Y+W5omp5bGV5L+h5oGv77yM6L+U5ZueIHVuZGVmaW5lZO+8jHRyYW5zbGF0ZVNjb3BlIOWwhuS9v+eUqOWfuuehgOS9nOeUqOWfn1xuICovXG5mdW5jdGlvbiBnZXRDdXJyZW50UGx1Z2luSTE4blZlcnNpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZXh0ZW5zaW9ucyA9IGdldEV4dGVuc2lvbnMoKTtcbiAgaWYgKCFleHRlbnNpb25zKSB7XG4gICAgY29uc29sZS5kZWJ1ZyhcbiAgICAgICdObyBleHRlbnNpb25zIGF2YWlsYWJsZSwgaTE4biB3aWxsIHVzZSBiYXNlIHNjb3BlIHdpdGhvdXQgdmVyc2lvbicsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgY3VycmVudEV4dGVuc2lvbiA9IGV4dGVuc2lvbnMuZmluZChcbiAgICAoZXh0OiBhbnkpID0+XG4gICAgICBleHQucGx1Z2luTmFtZSA9PT0gUlVOVElNRS5wbHVnaW5OYW1lICYmXG4gICAgICBleHQuYXBwTmFtZSA9PT0gUlVOVElNRS5hcHBOYW1lICYmXG4gICAgICBleHQuY2x1c3RlciA9PT0gUlVOVElNRS5jbHVzdGVyLFxuICApO1xuXG4gIGlmICghY3VycmVudEV4dGVuc2lvbikge1xuICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICAnQ3VycmVudCBleHRlbnNpb24gbm90IGZvdW5kIGluIGV4dGVuc2lvbnMgbGlzdCwgdXNpbmcgYmFzZSBzY29wZScsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgdmVyc2lvbiA9IGN1cnJlbnRFeHRlbnNpb24/LmkxOG5WZXJzaW9uO1xuICBjb25zb2xlLmRlYnVnKCdQbHVnaW4gaTE4biB2ZXJzaW9uOicsIHZlcnNpb24gfHwgJ25vdCBzcGVjaWZpZWQnKTtcbiAgcmV0dXJuIHZlcnNpb247XG59XG5cbi8qKlxuICog6I635Y+WaTE4buaWh+S7tlxuICovXG5mdW5jdGlvbiBmZXRjaEkxOG5GaWxlKGxhbmc6IHN0cmluZywgc2NvcGU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gIGNvbnN0IHBhdGggPSBpc0J1aWx0SW5MYW5ndWFnZShsYW5nKVxuICAgID8gUlVOVElNRS5wdWJsaWNQYXRoICsgJ2Fzc2V0cy9pMThuLycgKyBsYW5nICsgJy5qc29uJ1xuICAgIDogYC9jb25zb2xlLWkxOG4vJHtsYW5nfS8ke3Njb3BlfS5qc29uYDtcblxuICByZXR1cm4gZmV0Y2gocGF0aClcbiAgICAudGhlbihyZXMgPT4ge1xuICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7cmVzLnN0YXR1c306ICR7cmVzLnN0YXR1c1RleHR9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgICB9KVxuICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byBsb2FkIGkxOG4gZmlsZSBmb3IgcGx1Z2luICR7UlVOVElNRS5wbHVnaW5OYW1lfX4ke1JVTlRJTUUuYXBwTmFtZX0gYW5kIGxhbmd1YWdlICR7bGFuZ31gLFxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNsYXRlU2NvcGUgPSAobG9jYWxlOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgY2x1c3RlciA9IGlzQnVpbHRJbkxhbmd1YWdlKGxvY2FsZSkgPyBSVU5USU1FLmNsdXN0ZXIgOiBHTE9CQUxfQ0xVU1RFUjtcbiAgcmV0dXJuIGBwbHVnaW5fXyR7Y2x1c3Rlcn1+JHtSVU5USU1FLnBsdWdpbk5hbWV9fiR7UlVOVElNRS5hcHBOYW1lfWA7XG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2NvcGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHByaXZhdGUgbm90aWZpY2F0aW9uID0gaW5qZWN0KE5vdGlmaWNhdGlvblNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHNjb3BlID0gdHJhbnNsYXRlU2NvcGUoXG4gICAge1xuICAgICAgLi4uUlVOVElNRSxcbiAgICAgIGkxOG5WZXJzaW9uOiBnZXRDdXJyZW50UGx1Z2luSTE4blZlcnNpb24oKSxcbiAgICB9LFxuICAgIHRoaXMudHJhbnNsYXRlLmxvY2FsZSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBmYWxsYmFja0xhbmdJMThuTG9hZGVkID0gdGhpcy50cmFuc2xhdGUudHJhbnNsYXRpb25zTGlzdC5maW5kKFxuICAgICAgaXRlbSA9PiBpdGVtPy5bRkFMTEJBQ0tfTEFOR1VBR0VdPy5bdGhpcy5zY29wZV0sXG4gICAgKTtcblxuICAgIGlmICghZmFsbGJhY2tMYW5nSTE4bkxvYWRlZCkge1xuICAgICAgLy8g5Z+65bqn5pyq6aKE5Yqg6L295o+S5Lu257+76K+R5paH5Lu25pe26Ieq6KGM5Yqg6L29XG4gICAgICB0aGlzLnNldHVwSTE4bkFzc2V0cygpO1xuICAgIH0gZWxzZSBpZiAoIWlzQnVpbHRJbkxhbmd1YWdlKHRoaXMudHJhbnNsYXRlLmxvY2FsZSkpIHtcbiAgICAgIHRoaXMuY2hlY2tUcmFuc2xhdGlvbkF2YWlsYWJpbGl0eSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNjb3BlZEtleShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0cmFuc2xhdGVTY29wZUtleSh0aGlzLnNjb3BlLCBrZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1RyYW5zbGF0aW9uQXZhaWxhYmlsaXR5KCkge1xuICAgIGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy50cmFuc2xhdGUubG9jYWxlO1xuXG4gICAgY29uc3QgaGFzVHJhbnNsYXRpb24gPSB0aGlzLnRyYW5zbGF0ZS50cmFuc2xhdGlvbnNMaXN0LmZpbmQoXG4gICAgICBpdGVtID0+IGl0ZW0/LltjdXJyZW50TGFuZ10/Llt0aGlzLnNjb3BlXSxcbiAgICApO1xuXG4gICAgaWYgKCFoYXNUcmFuc2xhdGlvbikge1xuICAgICAgY29uc3QgZmlsZU5hbWUgPSBgJHt0aGlzLnNjb3BlfS5qc29uYDtcblxuICAgICAgdGhpcy5ub3RpZmljYXRpb24ud2FybmluZyh7XG4gICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5nZXQoJ3RyYW5zbGF0aW9uX2ZpbGVfbWlzc2luZ193YXJuaW5nJyksXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMudHJhbnNsYXRlLmdldCgncGx1Z2luX21pc3NpbmdfdHJhbnNsYXRpb25fZmlsZScsIHtcbiAgICAgICAgICBwbHVnaW5OYW1lOiBSVU5USU1FLnBsdWdpbk5hbWUsXG4gICAgICAgICAgYXBwTmFtZTogUlVOVElNRS5hcHBOYW1lLFxuICAgICAgICAgIGxhbmc6IGN1cnJlbnRMYW5nLFxuICAgICAgICAgIGZpbGVOYW1lLFxuICAgICAgICB9KSxcbiAgICAgICAgZHVyYXRpb246IDUwMDAsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldHVwSTE4bkFzc2V0cygpIHtcbiAgICBjb25zdCBsYW5nID0gdGhpcy50cmFuc2xhdGUubG9jYWxlO1xuICAgIGlmIChpc0J1aWx0SW5MYW5ndWFnZShsYW5nKSkge1xuICAgICAgdGhpcy50cmFuc2xhdGUuYWRkVHJhbnNsYXRpb25zKHtcbiAgICAgICAgW2xhbmddOiB7IFt0aGlzLnNjb3BlXTogYXdhaXQgZmV0Y2hJMThuRmlsZShsYW5nLCB0aGlzLnNjb3BlKSB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IFtlbiwgb3RoZXJdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICBmZXRjaEkxOG5GaWxlKHRoaXMudHJhbnNsYXRlLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUsIHRoaXMuc2NvcGUpLFxuICAgICAgICBmZXRjaEkxOG5GaWxlKGxhbmcsIHRoaXMuc2NvcGUpLFxuICAgICAgXSk7XG5cbiAgICAgIHRoaXMudHJhbnNsYXRlLmFkZFRyYW5zbGF0aW9ucyh7XG4gICAgICAgIFtGQUxMQkFDS19MQU5HVUFHRV06IHsgW3RoaXMuc2NvcGVdOiBlbiB9LFxuICAgICAgICBbbGFuZ106IHsgW3RoaXMuc2NvcGVdOiBvdGhlciB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU2NvcGVkVHJhbnNsYXRlU2VydmljZSB7XG4gIHByaXZhdGUgc2NvcGUgPSBpbmplY3QoVHJhbnNsYXRlU2NvcGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgZ2V0KGtleTogc3RyaW5nLCBkYXRhPzogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXQodGhpcy5zY29wZS5nZXRTY29wZWRLZXkoa2V5KSwgZGF0YSk7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBuYW1lOiAnc2NvcGVkVHJhbnNsYXRlJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFNjb3BlZFRyYW5zbGF0ZVBpcGVcbiAgZXh0ZW5kcyBUcmFuc2xhdGVQaXBlXG4gIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybVxue1xuICBwcml2YXRlIHNjb3BlID0gaW5qZWN0KFRyYW5zbGF0ZVNjb3BlU2VydmljZSk7XG5cbiAgb3ZlcnJpZGUgdHJhbnNmb3JtKGtleTogVHJhbnNsYXRlS2V5IHwgYW55LCBkYXRhPzogdW5rbm93bik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cGVyLnRyYW5zZm9ybSh0aGlzLnNjb3BlLmdldFNjb3BlZEtleShrZXkpLCBkYXRhKTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIG5hbWU6ICdzY29wZWRUcmFuc2xhdGVLZXknLFxufSlcbmV4cG9ydCBjbGFzcyBTY29wZWRUcmFuc2xhdGVLZXlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgc2NvcGUgPSBpbmplY3QoVHJhbnNsYXRlU2NvcGVTZXJ2aWNlKTtcblxuICB0cmFuc2Zvcm0oa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNjb3BlLmdldFNjb3BlZEtleShrZXkpO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  import { Translations } from '@alauda-fe/common';
2
2
  import { Extension } from './extensions-loader';
3
+ export declare function getAllExtensions(): Extension[];
3
4
  export declare function getAppExtensions<T = any>(type: string | string[], cluster?: string): Array<Extension<T>>;
4
5
  export declare function getAppExtensionTranslations(): Translations[];
5
6
  export declare function setupAppExtensions(host: string, hostVersion?: string): Promise<Extension<any>[]>;
@@ -1,6 +1,6 @@
1
1
  import { NavGroupConfig, NavItemConfig, TranslateService } from '@alauda-fe/common';
2
- export declare function getRemoteNavigations(scope: string, translate: TranslateService): RemoteNavigationItemRoot[];
3
- export declare function getRemoteNavigationGroups(scope: string, translate: TranslateService): RemoteNavigationItemRoot[];
2
+ export declare function getRemoteNavigations(scope: string, translate: TranslateService, cluster?: string): RemoteNavigationItemRoot[];
3
+ export declare function getRemoteNavigationGroups(scope: string, translate: TranslateService, cluster?: string): RemoteNavigationItemRoot[];
4
4
  export declare function insertNavItem(source: NavItemConfig[], remotes: RemoteNavigationItemRoot[]): NavItemConfig[];
5
5
  export declare function insertNavGroupItem(source: NavGroupConfig[], remotes: RemoteNavigationItemRoot[]): NavGroupConfig[];
6
6
  export interface RemoteNavigationItem extends NavItemConfig {
@@ -12,4 +12,5 @@ export interface RemoteNavigationItem extends NavItemConfig {
12
12
  export interface RemoteNavigationItemRoot extends RemoteNavigationItem {
13
13
  insertAfter?: string | string[];
14
14
  insertBefore?: string | string[];
15
+ clusterStrategy?: 'latest' | 'strict';
15
16
  }
@@ -12,6 +12,7 @@ export interface Extension<T = any> extends RawExtension<T> {
12
12
  appName: string;
13
13
  entrypoint: string;
14
14
  dependencies: Record<string, string>;
15
+ i18nVersion?: string;
15
16
  }
16
17
  interface RawExtension<T = any> {
17
18
  type: string;
package/lib/utils.d.ts CHANGED
@@ -1,7 +1,4 @@
1
1
  import { Extension } from './extensions-loader';
2
- /**
3
- * @deprecated Use isLocalDev from @alauda-fe/common instead
4
- */
5
2
  export declare function isLocalEnv(): boolean;
6
3
  export declare function isStaticPluginPath(publicPath: string): boolean;
7
4
  export declare const LOCAL_DEV_EXTENSION_INFO: {
@@ -18,9 +15,10 @@ export declare const STATIC_EXTENSION_INFO: {
18
15
  export declare function getBootMode(): 'standard' | 'safe';
19
16
  export declare function loadRemote(remote: string, module: string): Promise<any>;
20
17
  export declare function filterLatestVersion<O = any>(identity: (ext: O) => unknown): (exts: Array<Extension<O>>) => Array<Extension<O>>;
21
- export declare const translateScope: ({ cluster, pluginName, appName, }: {
18
+ export declare const translateScope: (extension: {
22
19
  cluster: string;
23
20
  pluginName: string;
24
21
  appName: string;
22
+ i18nVersion?: string;
25
23
  }, locale: string) => string;
26
24
  export declare const translateScopeKey: (scope: string, key: string) => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alauda-fe/plugin-sdk",
3
- "version": "0.0.15",
3
+ "version": "0.0.17",
4
4
  "peerDependencies": {
5
5
  "@nx/angular": "^16.10.0"
6
6
  },
@@ -4,13 +4,12 @@ import * as i0 from "@angular/core";
4
4
  export declare const getTranslateScope: (locale: string) => string;
5
5
  export declare class TranslateScopeService {
6
6
  private translate;
7
- private loadedLang;
7
+ private notification;
8
8
  readonly scope: string;
9
9
  constructor();
10
10
  getScopedKey(key: string): string;
11
+ private checkTranslationAvailability;
11
12
  private setupI18nAssets;
12
- private loadTranslations;
13
- private fetchI18nFile;
14
13
  static ɵfac: i0.ɵɵFactoryDeclaration<TranslateScopeService, never>;
15
14
  static ɵprov: i0.ɵɵInjectableDeclaration<TranslateScopeService>;
16
15
  }