@qiankunjs/shared 0.0.1-rc.4 → 0.0.1-rc.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/cjs/assets-transpilers/index.d.ts +7 -0
  2. package/dist/cjs/assets-transpilers/index.js +7 -0
  3. package/dist/cjs/assets-transpilers/index.js.map +1 -1
  4. package/dist/cjs/assets-transpilers/link.js +15 -13
  5. package/dist/cjs/assets-transpilers/link.js.map +1 -1
  6. package/dist/cjs/assets-transpilers/script.d.ts +4 -4
  7. package/dist/cjs/assets-transpilers/script.js +156 -96
  8. package/dist/cjs/assets-transpilers/script.js.map +1 -1
  9. package/dist/cjs/assets-transpilers/types.d.ts +10 -0
  10. package/dist/cjs/assets-transpilers/types.js +3 -2
  11. package/dist/cjs/assets-transpilers/types.js.map +1 -1
  12. package/dist/cjs/assets-transpilers/utils.js +2 -4
  13. package/dist/cjs/assets-transpilers/utils.js.map +1 -1
  14. package/dist/cjs/fetch-utils/miniLruCache.d.ts +8 -0
  15. package/dist/cjs/fetch-utils/miniLruCache.js +49 -0
  16. package/dist/cjs/fetch-utils/miniLruCache.js.map +1 -0
  17. package/dist/cjs/fetch-utils/wrapFetchWithCache.d.ts +3 -0
  18. package/dist/cjs/fetch-utils/wrapFetchWithCache.js +74 -0
  19. package/dist/cjs/fetch-utils/wrapFetchWithCache.js.map +1 -0
  20. package/dist/cjs/index.d.ts +2 -1
  21. package/dist/cjs/index.js +15 -4
  22. package/dist/cjs/index.js.map +1 -1
  23. package/dist/cjs/{error → reporter}/QiankunError.js +1 -2
  24. package/dist/cjs/reporter/QiankunError.js.map +1 -0
  25. package/dist/{esm/error → cjs/reporter}/index.d.ts +1 -0
  26. package/dist/cjs/reporter/index.js +28 -0
  27. package/dist/cjs/reporter/index.js.map +1 -0
  28. package/dist/cjs/reporter/logger.d.ts +1 -0
  29. package/dist/cjs/reporter/logger.js +14 -0
  30. package/dist/cjs/reporter/logger.js.map +1 -0
  31. package/dist/cjs/utils.d.ts +8 -1
  32. package/dist/cjs/utils.js +89 -35
  33. package/dist/cjs/utils.js.map +1 -1
  34. package/dist/esm/assets-transpilers/index.d.ts +7 -0
  35. package/dist/esm/assets-transpilers/index.js +7 -0
  36. package/dist/esm/assets-transpilers/index.js.map +1 -1
  37. package/dist/esm/assets-transpilers/link.js +15 -13
  38. package/dist/esm/assets-transpilers/link.js.map +1 -1
  39. package/dist/esm/assets-transpilers/script.d.ts +4 -4
  40. package/dist/esm/assets-transpilers/script.js +156 -95
  41. package/dist/esm/assets-transpilers/script.js.map +1 -1
  42. package/dist/esm/assets-transpilers/types.d.ts +10 -0
  43. package/dist/esm/assets-transpilers/types.js +2 -0
  44. package/dist/esm/assets-transpilers/types.js.map +1 -1
  45. package/dist/esm/fetch-utils/miniLruCache.d.ts +8 -0
  46. package/dist/esm/fetch-utils/miniLruCache.js +42 -0
  47. package/dist/esm/fetch-utils/miniLruCache.js.map +1 -0
  48. package/dist/esm/fetch-utils/wrapFetchWithCache.d.ts +3 -0
  49. package/dist/esm/fetch-utils/wrapFetchWithCache.js +66 -0
  50. package/dist/esm/fetch-utils/wrapFetchWithCache.js.map +1 -0
  51. package/dist/esm/index.d.ts +2 -1
  52. package/dist/esm/index.js +2 -1
  53. package/dist/esm/index.js.map +1 -1
  54. package/dist/esm/reporter/QiankunError.js.map +1 -0
  55. package/dist/{cjs/error → esm/reporter}/index.d.ts +1 -0
  56. package/dist/esm/reporter/index.js +3 -0
  57. package/dist/esm/reporter/index.js.map +1 -0
  58. package/dist/esm/reporter/logger.d.ts +1 -0
  59. package/dist/esm/reporter/logger.js +8 -0
  60. package/dist/esm/reporter/logger.js.map +1 -0
  61. package/dist/esm/utils.d.ts +8 -1
  62. package/dist/esm/utils.js +78 -19
  63. package/dist/esm/utils.js.map +1 -1
  64. package/package.json +5 -6
  65. package/dist/cjs/error/QiankunError.js.map +0 -1
  66. package/dist/cjs/error/index.js +0 -13
  67. package/dist/cjs/error/index.js.map +0 -1
  68. package/dist/esm/error/QiankunError.js.map +0 -1
  69. package/dist/esm/error/index.js +0 -2
  70. package/dist/esm/error/index.js.map +0 -1
  71. package/src/assets-transpilers/index.ts +0 -42
  72. package/src/assets-transpilers/link.ts +0 -130
  73. package/src/assets-transpilers/script.ts +0 -169
  74. package/src/assets-transpilers/types.ts +0 -22
  75. package/src/assets-transpilers/utils.ts +0 -27
  76. package/src/common.ts +0 -3
  77. package/src/error/QiankunError.ts +0 -5
  78. package/src/error/index.ts +0 -1
  79. package/src/index.ts +0 -9
  80. package/src/module-resolver/__tests__/index.ts +0 -75
  81. package/src/module-resolver/index.ts +0 -92
  82. package/src/module-resolver/types.ts +0 -9
  83. package/src/typings.d.ts +0 -13
  84. package/src/utils.ts +0 -37
  85. /package/dist/cjs/{error → reporter}/QiankunError.d.ts +0 -0
  86. /package/dist/esm/{error → reporter}/QiankunError.d.ts +0 -0
  87. /package/dist/esm/{error → reporter}/QiankunError.js +0 -0
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LRUCache = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var LRUCache = exports.LRUCache = /*#__PURE__*/function () {
12
+ function LRUCache(capacity) {
13
+ (0, _classCallCheck2.default)(this, LRUCache);
14
+ (0, _defineProperty2.default)(this, "capacity", void 0);
15
+ (0, _defineProperty2.default)(this, "cache", void 0);
16
+ this.capacity = capacity;
17
+ this.cache = new Map();
18
+ }
19
+ (0, _createClass2.default)(LRUCache, [{
20
+ key: "get",
21
+ value: function get(key) {
22
+ var value = this.cache.get(key);
23
+ if (value !== undefined) {
24
+ this.cache.delete(key);
25
+ this.cache.set(key, value);
26
+ }
27
+ return value;
28
+ }
29
+ }, {
30
+ key: "set",
31
+ value: function set(key, value) {
32
+ if (this.cache.has(key)) {
33
+ this.cache.delete(key);
34
+ }
35
+ this.cache.set(key, value);
36
+ if (this.cache.size > this.capacity) {
37
+ var firstKey = this.cache.keys().next().value;
38
+ this.cache.delete(firstKey);
39
+ }
40
+ }
41
+ }, {
42
+ key: "delete",
43
+ value: function _delete(key) {
44
+ this.cache.delete(key);
45
+ }
46
+ }]);
47
+ return LRUCache;
48
+ }();
49
+ //# sourceMappingURL=miniLruCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["LRUCache","exports","capacity","_classCallCheck2","default","_defineProperty2","cache","Map","_createClass2","key","value","get","undefined","delete","set","has","size","firstKey","keys","next","_delete"],"sources":["../../../src/fetch-utils/miniLruCache.ts"],"sourcesContent":["export class LRUCache<K, V> {\n private readonly capacity: number;\n private cache: Map<K, V>;\n\n constructor(capacity: number) {\n this.capacity = capacity;\n this.cache = new Map();\n }\n\n get(key: K): V | undefined {\n const value = this.cache.get(key);\n if (value !== undefined) {\n this.cache.delete(key);\n this.cache.set(key, value);\n }\n return value;\n }\n\n set(key: K, value: V): void {\n if (this.cache.has(key)) {\n this.cache.delete(key);\n }\n this.cache.set(key, value);\n if (this.cache.size > this.capacity) {\n const firstKey = this.cache.keys().next().value as K;\n this.cache.delete(firstKey);\n }\n }\n\n delete(key: K): void {\n this.cache.delete(key);\n }\n}\n"],"mappings":";;;;;;;;;;IAAaA,QAAQ,GAAAC,OAAA,CAAAD,QAAA;EAInB,SAAAA,SAAYE,QAAgB,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAJ,QAAA;IAAA,IAAAK,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAC5B,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACI,KAAK,GAAG,IAAIC,GAAG,CAAC,CAAC;EACxB;EAAC,IAAAC,aAAA,CAAAJ,OAAA,EAAAJ,QAAA;IAAAS,GAAA;IAAAC,KAAA,EAED,SAAAC,IAAIF,GAAM,EAAiB;MACzB,IAAMC,KAAK,GAAG,IAAI,CAACJ,KAAK,CAACK,GAAG,CAACF,GAAG,CAAC;MACjC,IAAIC,KAAK,KAAKE,SAAS,EAAE;QACvB,IAAI,CAACN,KAAK,CAACO,MAAM,CAACJ,GAAG,CAAC;QACtB,IAAI,CAACH,KAAK,CAACQ,GAAG,CAACL,GAAG,EAAEC,KAAK,CAAC;MAC5B;MACA,OAAOA,KAAK;IACd;EAAC;IAAAD,GAAA;IAAAC,KAAA,EAED,SAAAI,IAAIL,GAAM,EAAEC,KAAQ,EAAQ;MAC1B,IAAI,IAAI,CAACJ,KAAK,CAACS,GAAG,CAACN,GAAG,CAAC,EAAE;QACvB,IAAI,CAACH,KAAK,CAACO,MAAM,CAACJ,GAAG,CAAC;MACxB;MACA,IAAI,CAACH,KAAK,CAACQ,GAAG,CAACL,GAAG,EAAEC,KAAK,CAAC;MAC1B,IAAI,IAAI,CAACJ,KAAK,CAACU,IAAI,GAAG,IAAI,CAACd,QAAQ,EAAE;QACnC,IAAMe,QAAQ,GAAG,IAAI,CAACX,KAAK,CAACY,IAAI,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAACT,KAAU;QACpD,IAAI,CAACJ,KAAK,CAACO,MAAM,CAACI,QAAQ,CAAC;MAC7B;IACF;EAAC;IAAAR,GAAA;IAAAC,KAAA,EAED,SAAAU,QAAOX,GAAM,EAAQ;MACnB,IAAI,CAACH,KAAK,CAACO,MAAM,CAACJ,GAAG,CAAC;IACxB;EAAC;EAAA,OAAAT,QAAA;AAAA"}
@@ -0,0 +1,3 @@
1
+ type Fetch = typeof window.fetch;
2
+ export declare const wrapFetchWithCache: (fetch: Fetch) => Fetch;
3
+ export {};
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.wrapFetchWithCache = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _once2 = _interopRequireDefault(require("lodash/once"));
11
+ var _miniLruCache = require("./miniLruCache");
12
+ /**
13
+ * @author Kuitos
14
+ * @since 2023-11-06
15
+ */
16
+
17
+ var getCacheKey = function getCacheKey(input) {
18
+ return typeof input === 'string' ? input : 'url' in input ? input.url : input.href;
19
+ };
20
+ var getGlobalCache = (0, _once2.default)(function () {
21
+ return new _miniLruCache.LRUCache(50);
22
+ });
23
+ var isValidaResponse = function isValidaResponse(status) {
24
+ return status >= 200 && status < 400;
25
+ };
26
+ var wrapFetchWithCache = exports.wrapFetchWithCache = function wrapFetchWithCache(fetch) {
27
+ var lruCache = getGlobalCache();
28
+ var cachedFetch = function cachedFetch(input, init) {
29
+ var fetchInput = input;
30
+ var cacheKey = getCacheKey(fetchInput);
31
+ var wrapFetchPromise = /*#__PURE__*/function () {
32
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(promise) {
33
+ var res, status;
34
+ return _regenerator.default.wrap(function _callee$(_context) {
35
+ while (1) switch (_context.prev = _context.next) {
36
+ case 0:
37
+ _context.prev = 0;
38
+ _context.next = 3;
39
+ return promise;
40
+ case 3:
41
+ res = _context.sent;
42
+ status = res.status;
43
+ if (!isValidaResponse(status)) {
44
+ lruCache.delete(cacheKey);
45
+ }
46
+
47
+ // must clone the response as one response body can only be read once as a stream
48
+ return _context.abrupt("return", res.clone());
49
+ case 9:
50
+ _context.prev = 9;
51
+ _context.t0 = _context["catch"](0);
52
+ lruCache.delete(cacheKey);
53
+ throw _context.t0;
54
+ case 13:
55
+ case "end":
56
+ return _context.stop();
57
+ }
58
+ }, _callee, null, [[0, 9]]);
59
+ }));
60
+ return function wrapFetchPromise(_x) {
61
+ return _ref.apply(this, arguments);
62
+ };
63
+ }();
64
+ var cachedFetchPromise = lruCache.get(cacheKey);
65
+ if (cachedFetchPromise) {
66
+ return wrapFetchPromise(cachedFetchPromise);
67
+ }
68
+ var fetchPromise = fetch(fetchInput, init);
69
+ lruCache.set(cacheKey, fetchPromise);
70
+ return wrapFetchPromise(fetchPromise);
71
+ };
72
+ return cachedFetch;
73
+ };
74
+ //# sourceMappingURL=wrapFetchWithCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_miniLruCache","require","getCacheKey","input","url","href","getGlobalCache","_once2","default","LRUCache","isValidaResponse","status","wrapFetchWithCache","exports","fetch","lruCache","cachedFetch","init","fetchInput","cacheKey","wrapFetchPromise","_ref","_asyncToGenerator2","_regenerator","mark","_callee","promise","res","wrap","_callee$","_context","prev","next","sent","delete","abrupt","clone","t0","stop","_x","apply","arguments","cachedFetchPromise","get","fetchPromise","set"],"sources":["../../../src/fetch-utils/wrapFetchWithCache.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-11-06\n */\nimport { once } from 'lodash';\nimport { LRUCache } from './miniLruCache';\n\ntype Fetch = typeof window.fetch;\n\nconst getCacheKey = (input: Parameters<Fetch>[0]): string => {\n return typeof input === 'string' ? input : 'url' in input ? input.url : input.href;\n};\n\nconst getGlobalCache = once(() => {\n return new LRUCache<string, Promise<Response>>(50);\n});\n\nconst isValidaResponse = (status: number): boolean => {\n return status >= 200 && status < 400;\n};\n\nexport const wrapFetchWithCache: (fetch: Fetch) => Fetch = (fetch) => {\n const lruCache = getGlobalCache();\n\n const cachedFetch: Fetch = (input, init) => {\n const fetchInput = input as Parameters<Fetch>[0];\n const cacheKey = getCacheKey(fetchInput);\n const wrapFetchPromise = async (promise: Promise<Response>): Promise<Response> => {\n try {\n const res = await promise;\n\n const { status } = res;\n if (!isValidaResponse(status)) {\n lruCache.delete(cacheKey);\n }\n\n // must clone the response as one response body can only be read once as a stream\n return res.clone();\n } catch (e) {\n lruCache.delete(cacheKey);\n throw e;\n }\n };\n\n const cachedFetchPromise = lruCache.get(cacheKey);\n if (cachedFetchPromise) {\n return wrapFetchPromise(cachedFetchPromise);\n }\n\n const fetchPromise = fetch(fetchInput, init);\n lruCache.set(cacheKey, fetchPromise);\n\n return wrapFetchPromise(fetchPromise);\n };\n\n return cachedFetch;\n};\n"],"mappings":";;;;;;;;;;AAKA,IAAAA,aAAA,GAAAC,OAAA;AALA;AACA;AACA;AACA;;AAMA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAA2B,EAAa;EAC3D,OAAO,OAAOA,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,KAAK,IAAIA,KAAK,GAAGA,KAAK,CAACC,GAAG,GAAGD,KAAK,CAACE,IAAI;AACpF,CAAC;AAED,IAAMC,cAAc,GAAG,IAAAC,MAAA,CAAAC,OAAA,EAAK,YAAM;EAChC,OAAO,IAAIC,sBAAQ,CAA4B,EAAE,CAAC;AACpD,CAAC,CAAC;AAEF,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,MAAc,EAAc;EACpD,OAAOA,MAAM,IAAI,GAAG,IAAIA,MAAM,GAAG,GAAG;AACtC,CAAC;AAEM,IAAMC,kBAA2C,GAAAC,OAAA,CAAAD,kBAAA,GAAG,SAA9CA,kBAA2CA,CAAIE,KAAK,EAAK;EACpE,IAAMC,QAAQ,GAAGT,cAAc,CAAC,CAAC;EAEjC,IAAMU,WAAkB,GAAG,SAArBA,WAAkBA,CAAIb,KAAK,EAAEc,IAAI,EAAK;IAC1C,IAAMC,UAAU,GAAGf,KAA6B;IAChD,IAAMgB,QAAQ,GAAGjB,WAAW,CAACgB,UAAU,CAAC;IACxC,IAAME,gBAAgB;MAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAd,OAAA,gBAAAe,YAAA,CAAAf,OAAA,CAAAgB,IAAA,CAAG,SAAAC,QAAOC,OAA0B;QAAA,IAAAC,GAAA,EAAAhB,MAAA;QAAA,OAAAY,YAAA,CAAAf,OAAA,CAAAoB,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAAAF,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAAE,IAAA;cAAA,OAEpCN,OAAO;YAAA;cAAnBC,GAAG,GAAAG,QAAA,CAAAG,IAAA;cAEDtB,MAAM,GAAKgB,GAAG,CAAdhB,MAAM;cACd,IAAI,CAACD,gBAAgB,CAACC,MAAM,CAAC,EAAE;gBAC7BI,QAAQ,CAACmB,MAAM,CAACf,QAAQ,CAAC;cAC3B;;cAEA;cAAA,OAAAW,QAAA,CAAAK,MAAA,WACOR,GAAG,CAACS,KAAK,CAAC,CAAC;YAAA;cAAAN,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAAO,EAAA,GAAAP,QAAA;cAElBf,QAAQ,CAACmB,MAAM,CAACf,QAAQ,CAAC;cAAC,MAAAW,QAAA,CAAAO,EAAA;YAAA;YAAA;cAAA,OAAAP,QAAA,CAAAQ,IAAA;UAAA;QAAA,GAAAb,OAAA;MAAA,CAG7B;MAAA,gBAfKL,gBAAgBA,CAAAmB,EAAA;QAAA,OAAAlB,IAAA,CAAAmB,KAAA,OAAAC,SAAA;MAAA;IAAA,GAerB;IAED,IAAMC,kBAAkB,GAAG3B,QAAQ,CAAC4B,GAAG,CAACxB,QAAQ,CAAC;IACjD,IAAIuB,kBAAkB,EAAE;MACtB,OAAOtB,gBAAgB,CAACsB,kBAAkB,CAAC;IAC7C;IAEA,IAAME,YAAY,GAAG9B,KAAK,CAACI,UAAU,EAAED,IAAI,CAAC;IAC5CF,QAAQ,CAAC8B,GAAG,CAAC1B,QAAQ,EAAEyB,YAAY,CAAC;IAEpC,OAAOxB,gBAAgB,CAACwB,YAAY,CAAC;EACvC,CAAC;EAED,OAAO5B,WAAW;AACpB,CAAC"}
@@ -6,4 +6,5 @@ export * from './assets-transpilers';
6
6
  export * from './utils';
7
7
  export * from './module-resolver';
8
8
  export * from './common';
9
- export * from './error';
9
+ export * from './reporter';
10
+ export * from './fetch-utils/wrapFetchWithCache';
package/dist/cjs/index.js CHANGED
@@ -47,14 +47,25 @@ Object.keys(_common).forEach(function (key) {
47
47
  }
48
48
  });
49
49
  });
50
- var _error = require("./error");
51
- Object.keys(_error).forEach(function (key) {
50
+ var _reporter = require("./reporter");
51
+ Object.keys(_reporter).forEach(function (key) {
52
52
  if (key === "default" || key === "__esModule") return;
53
- if (key in exports && exports[key] === _error[key]) return;
53
+ if (key in exports && exports[key] === _reporter[key]) return;
54
54
  Object.defineProperty(exports, key, {
55
55
  enumerable: true,
56
56
  get: function get() {
57
- return _error[key];
57
+ return _reporter[key];
58
+ }
59
+ });
60
+ });
61
+ var _wrapFetchWithCache = require("./fetch-utils/wrapFetchWithCache");
62
+ Object.keys(_wrapFetchWithCache).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _wrapFetchWithCache[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function get() {
68
+ return _wrapFetchWithCache[key];
58
69
  }
59
70
  });
60
71
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_assetsTranspilers","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_utils","_moduleResolver","_common","_error"],"sources":["../../src/index.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-05-06\n */\nexport * from './assets-transpilers';\nexport * from './utils';\nexport * from './module-resolver';\nexport * from './common';\nexport * from './error';\n"],"mappings":";;;;;AAIA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,MAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,MAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,MAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,MAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,eAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,eAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,eAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,eAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,OAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,OAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,OAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAG,OAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,MAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,MAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAI,MAAA,CAAAR,GAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":["_assetsTranspilers","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_utils","_moduleResolver","_common","_reporter","_wrapFetchWithCache"],"sources":["../../src/index.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-05-06\n */\nexport * from './assets-transpilers';\nexport * from './utils';\nexport * from './module-resolver';\nexport * from './common';\nexport * from './reporter';\nexport * from './fetch-utils/wrapFetchWithCache';\n"],"mappings":";;;;;AAIA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,MAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,MAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,MAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,MAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,eAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,eAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,eAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,eAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,OAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,OAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,OAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAG,OAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,SAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,SAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,SAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAI,SAAA,CAAAR,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,mBAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,mBAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAS,mBAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAK,mBAAA,CAAAT,GAAA;IAAA;EAAA;AAAA"}
@@ -10,7 +10,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
10
10
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
11
11
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
12
12
  var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
13
- var QiankunError = /*#__PURE__*/function (_Error) {
13
+ var QiankunError = exports.QiankunError = /*#__PURE__*/function (_Error) {
14
14
  (0, _inherits2.default)(QiankunError, _Error);
15
15
  var _super = (0, _createSuper2.default)(QiankunError);
16
16
  function QiankunError(message) {
@@ -19,5 +19,4 @@ var QiankunError = /*#__PURE__*/function (_Error) {
19
19
  }
20
20
  return (0, _createClass2.default)(QiankunError);
21
21
  }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
22
- exports.QiankunError = QiankunError;
23
22
  //# sourceMappingURL=QiankunError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["QiankunError","exports","_Error","_inherits2","default","_super","_createSuper2","message","_classCallCheck2","call","concat","_createClass2","_wrapNativeSuper2","Error"],"sources":["../../../src/reporter/QiankunError.ts"],"sourcesContent":["export class QiankunError extends Error {\n constructor(message: string) {\n super(`[qiankun]: ${message}`);\n }\n}\n"],"mappings":";;;;;;;;;;;;IAAaA,YAAY,GAAAC,OAAA,CAAAD,YAAA,0BAAAE,MAAA;EAAA,IAAAC,UAAA,CAAAC,OAAA,EAAAJ,YAAA,EAAAE,MAAA;EAAA,IAAAG,MAAA,OAAAC,aAAA,CAAAF,OAAA,EAAAJ,YAAA;EACvB,SAAAA,aAAYO,OAAe,EAAE;IAAA,IAAAC,gBAAA,CAAAJ,OAAA,QAAAJ,YAAA;IAAA,OAAAK,MAAA,CAAAI,IAAA,qBAAAC,MAAA,CACPH,OAAO;EAC7B;EAAC,WAAAI,aAAA,CAAAP,OAAA,EAAAJ,YAAA;AAAA,oBAAAY,iBAAA,CAAAR,OAAA,EAH+BS,KAAK"}
@@ -1 +1,2 @@
1
1
  export { QiankunError } from './QiankunError';
2
+ export * from './logger';
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ QiankunError: true
8
+ };
9
+ Object.defineProperty(exports, "QiankunError", {
10
+ enumerable: true,
11
+ get: function get() {
12
+ return _QiankunError.QiankunError;
13
+ }
14
+ });
15
+ var _QiankunError = require("./QiankunError");
16
+ var _logger = require("./logger");
17
+ Object.keys(_logger).forEach(function (key) {
18
+ if (key === "default" || key === "__esModule") return;
19
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
+ if (key in exports && exports[key] === _logger[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return _logger[key];
25
+ }
26
+ });
27
+ });
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_QiankunError","require","_logger","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sources":["../../../src/reporter/index.ts"],"sourcesContent":["export { QiankunError } from './QiankunError';\nexport * from './logger';\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAZ,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1 @@
1
+ export declare function warn(msg: string, ...args: unknown[]): void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.warn = warn;
7
+ function warn(msg) {
8
+ var _console;
9
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
10
+ args[_key - 1] = arguments[_key];
11
+ }
12
+ (_console = console).warn.apply(_console, ["[qiankun]: ".concat(msg)].concat(args));
13
+ }
14
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["warn","msg","_console","_len","arguments","length","args","Array","_key","console","apply","concat"],"sources":["../../../src/reporter/logger.ts"],"sourcesContent":["export function warn(msg: string, ...args: unknown[]) {\n console.warn(`[qiankun]: ${msg}`, ...args);\n}\n"],"mappings":";;;;;;AAAO,SAASA,IAAIA,CAACC,GAAW,EAAsB;EAAA,IAAAC,QAAA;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAjBC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAJF,IAAI,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;EAAA;EACvC,CAAAN,QAAA,GAAAO,OAAO,EAACT,IAAI,CAAAU,KAAA,CAAAR,QAAA,iBAAAS,MAAA,CAAeV,GAAG,GAAAU,MAAA,CAAOL,IAAI,EAAC;AAC5C"}
@@ -17,10 +17,17 @@ export declare const create: {
17
17
  };
18
18
  export declare const hasOwnProperty: (caller: unknown, p: PropertyKey) => boolean;
19
19
  export declare class Deferred<T> {
20
+ #private;
20
21
  promise: Promise<T>;
21
- status: 'pending' | 'fulfilled' | 'rejected';
22
22
  resolve: (value: T | PromiseLike<T>) => void;
23
23
  reject: (reason?: unknown) => void;
24
24
  constructor();
25
+ isSettled(): boolean;
25
26
  }
27
+ export declare function waitUntilSettled(promise: Promise<void>): Promise<void>;
26
28
  export declare function getEntireUrl(uri: string, baseURI: string): string;
29
+ /**
30
+ * Check if the running environment support qiankun3.0
31
+ *
32
+ */
33
+ export declare function isRuntimeCompatible(): boolean;
package/dist/cjs/utils.js CHANGED
@@ -6,54 +6,108 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.freeze = exports.defineProperty = exports.create = exports.Deferred = void 0;
8
8
  exports.getEntireUrl = getEntireUrl;
9
- exports.keys = exports.hasOwnProperty = exports.getOwnPropertyNames = exports.getOwnPropertyDescriptor = void 0;
10
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
9
+ exports.hasOwnProperty = exports.getOwnPropertyNames = exports.getOwnPropertyDescriptor = void 0;
10
+ exports.isRuntimeCompatible = isRuntimeCompatible;
11
+ exports.keys = void 0;
12
+ exports.waitUntilSettled = waitUntilSettled;
13
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
15
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
17
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var _classPrivateFieldGet2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldGet"));
19
+ var _classPrivateFieldSet2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldSet"));
20
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
21
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
13
22
  /**
14
23
  * @author Kuitos
15
24
  * @since 2023-04-26
16
25
  */
17
26
 
18
27
  // eslint-disable-next-line @typescript-eslint/unbound-method
19
- var create = Object.create,
20
- defineProperty = Object.defineProperty,
21
- getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,
22
- getOwnPropertyNames = Object.getOwnPropertyNames,
23
- freeze = Object.freeze,
24
- keys = Object.keys;
25
- exports.keys = keys;
26
- exports.freeze = freeze;
27
- exports.getOwnPropertyNames = getOwnPropertyNames;
28
- exports.getOwnPropertyDescriptor = getOwnPropertyDescriptor;
29
- exports.defineProperty = defineProperty;
30
- exports.create = create;
31
- var hasOwnProperty = function hasOwnProperty(caller, p) {
28
+ var create = exports.create = Object.create,
29
+ defineProperty = exports.defineProperty = Object.defineProperty,
30
+ getOwnPropertyDescriptor = exports.getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,
31
+ getOwnPropertyNames = exports.getOwnPropertyNames = Object.getOwnPropertyNames,
32
+ freeze = exports.freeze = Object.freeze,
33
+ keys = exports.keys = Object.keys;
34
+ var hasOwnProperty = exports.hasOwnProperty = function hasOwnProperty(caller, p) {
32
35
  return Object.prototype.hasOwnProperty.call(caller, p);
33
36
  };
34
- exports.hasOwnProperty = hasOwnProperty;
35
- var Deferred = /*#__PURE__*/(0, _createClass2.default)(function Deferred() {
36
- var _this = this;
37
- (0, _classCallCheck2.default)(this, Deferred);
38
- (0, _defineProperty2.default)(this, "promise", void 0);
39
- (0, _defineProperty2.default)(this, "status", 'pending');
40
- (0, _defineProperty2.default)(this, "resolve", void 0);
41
- (0, _defineProperty2.default)(this, "reject", void 0);
42
- this.promise = new Promise(function (resolve, reject) {
43
- _this.resolve = function (value) {
44
- _this.status = 'fulfilled';
45
- resolve(value);
46
- };
47
- _this.reject = function (reason) {
48
- _this.status = 'rejected';
49
- reject(reason);
50
- };
51
- });
52
- });
53
- exports.Deferred = Deferred;
37
+ var _status = /*#__PURE__*/new WeakMap();
38
+ var Deferred = exports.Deferred = /*#__PURE__*/function () {
39
+ function Deferred() {
40
+ var _this = this;
41
+ (0, _classCallCheck2.default)(this, Deferred);
42
+ (0, _defineProperty2.default)(this, "promise", void 0);
43
+ _classPrivateFieldInitSpec(this, _status, {
44
+ writable: true,
45
+ value: 'pending'
46
+ });
47
+ (0, _defineProperty2.default)(this, "resolve", void 0);
48
+ (0, _defineProperty2.default)(this, "reject", void 0);
49
+ this.promise = new Promise(function (resolve, reject) {
50
+ _this.resolve = function (value) {
51
+ (0, _classPrivateFieldSet2.default)(_this, _status, 'fulfilled');
52
+ resolve(value);
53
+ };
54
+ _this.reject = function (reason) {
55
+ (0, _classPrivateFieldSet2.default)(_this, _status, 'rejected');
56
+ reject(reason);
57
+ };
58
+ });
59
+ }
60
+ (0, _createClass2.default)(Deferred, [{
61
+ key: "isSettled",
62
+ value: function isSettled() {
63
+ return (0, _classPrivateFieldGet2.default)(this, _status) !== 'pending';
64
+ }
65
+ }]);
66
+ return Deferred;
67
+ }();
68
+ function waitUntilSettled(_x) {
69
+ return _waitUntilSettled.apply(this, arguments);
70
+ }
71
+ function _waitUntilSettled() {
72
+ _waitUntilSettled = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(promise) {
73
+ return _regenerator.default.wrap(function _callee$(_context) {
74
+ while (1) switch (_context.prev = _context.next) {
75
+ case 0:
76
+ _context.prev = 0;
77
+ _context.next = 3;
78
+ return promise;
79
+ case 3:
80
+ _context.next = 8;
81
+ break;
82
+ case 5:
83
+ _context.prev = 5;
84
+ _context.t0 = _context["catch"](0);
85
+ if (process.env.NODE_ENV === 'development') {
86
+ console.warn('waitUntilSettled error', _context.t0);
87
+ }
88
+ case 8:
89
+ case "end":
90
+ return _context.stop();
91
+ }
92
+ }, _callee, null, [[0, 5]]);
93
+ }));
94
+ return _waitUntilSettled.apply(this, arguments);
95
+ }
54
96
  function getEntireUrl(uri, baseURI) {
55
97
  var publicPath = new URL(baseURI, window.location.href);
56
98
  var entireUrl = new URL(uri, publicPath.toString());
57
99
  return entireUrl.toString();
58
100
  }
101
+
102
+ /**
103
+ * Check if the running environment support qiankun3.0
104
+ *
105
+ */
106
+ function isRuntimeCompatible() {
107
+ var _URL;
108
+ return (
109
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
110
+ typeof Proxy === 'function' && typeof TransformStream === 'function' && typeof ((_URL = URL) === null || _URL === void 0 ? void 0 : _URL.createObjectURL) === 'function'
111
+ );
112
+ }
59
113
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["create","Object","defineProperty","getOwnPropertyDescriptor","getOwnPropertyNames","freeze","keys","exports","hasOwnProperty","caller","p","prototype","call","Deferred","_createClass2","default","_this","_classCallCheck2","_defineProperty2","promise","Promise","resolve","reject","value","status","reason","getEntireUrl","uri","baseURI","publicPath","URL","window","location","href","entireUrl","toString"],"sources":["../../src/utils.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-04-26\n */\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nexport const { create, defineProperty, getOwnPropertyDescriptor, getOwnPropertyNames, freeze, keys } = Object;\nexport const hasOwnProperty = (caller: unknown, p: PropertyKey) => Object.prototype.hasOwnProperty.call(caller, p);\n\nexport class Deferred<T> {\n promise: Promise<T>;\n\n status: 'pending' | 'fulfilled' | 'rejected' = 'pending';\n\n resolve!: (value: T | PromiseLike<T>) => void;\n\n reject!: (reason?: unknown) => void;\n\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (value: T | PromiseLike<T>) => {\n this.status = 'fulfilled';\n resolve(value);\n };\n this.reject = (reason?: unknown) => {\n this.status = 'rejected';\n reject(reason);\n };\n });\n }\n}\n\nexport function getEntireUrl(uri: string, baseURI: string): string {\n const publicPath = new URL(baseURI, window.location.href);\n const entireUrl = new URL(uri, publicPath.toString());\n return entireUrl.toString();\n}\n"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;;AAEA;AACO,IAAQA,MAAM,GAAkFC,MAAM,CAA9FD,MAAM;EAAEE,cAAc,GAAkED,MAAM,CAAtFC,cAAc;EAAEC,wBAAwB,GAAwCF,MAAM,CAAtEE,wBAAwB;EAAEC,mBAAmB,GAAmBH,MAAM,CAA5CG,mBAAmB;EAAEC,MAAM,GAAWJ,MAAM,CAAvBI,MAAM;EAAEC,IAAI,GAAKL,MAAM,CAAfK,IAAI;AAAYC,OAAA,CAAAD,IAAA,GAAAA,IAAA;AAAAC,OAAA,CAAAF,MAAA,GAAAA,MAAA;AAAAE,OAAA,CAAAH,mBAAA,GAAAA,mBAAA;AAAAG,OAAA,CAAAJ,wBAAA,GAAAA,wBAAA;AAAAI,OAAA,CAAAL,cAAA,GAAAA,cAAA;AAAAK,OAAA,CAAAP,MAAA,GAAAA,MAAA;AACvG,IAAMQ,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,MAAe,EAAEC,CAAc;EAAA,OAAKT,MAAM,CAACU,SAAS,CAACH,cAAc,CAACI,IAAI,CAACH,MAAM,EAAEC,CAAC,CAAC;AAAA;AAACH,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAAA,IAEtGK,QAAQ,oBAAAC,aAAA,CAAAC,OAAA,EASnB,SAAAF,SAAA,EAAc;EAAA,IAAAG,KAAA;EAAA,IAAAC,gBAAA,CAAAF,OAAA,QAAAF,QAAA;EAAA,IAAAK,gBAAA,CAAAH,OAAA;EAAA,IAAAG,gBAAA,CAAAH,OAAA,kBANiC,SAAS;EAAA,IAAAG,gBAAA,CAAAH,OAAA;EAAA,IAAAG,gBAAA,CAAAH,OAAA;EAOtD,IAAI,CAACI,OAAO,GAAG,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;IAC9CN,KAAI,CAACK,OAAO,GAAG,UAACE,KAAyB,EAAK;MAC5CP,KAAI,CAACQ,MAAM,GAAG,WAAW;MACzBH,OAAO,CAACE,KAAK,CAAC;IAChB,CAAC;IACDP,KAAI,CAACM,MAAM,GAAG,UAACG,MAAgB,EAAK;MAClCT,KAAI,CAACQ,MAAM,GAAG,UAAU;MACxBF,MAAM,CAACG,MAAM,CAAC;IAChB,CAAC;EACH,CAAC,CAAC;AACJ,CAAC;AAAAlB,OAAA,CAAAM,QAAA,GAAAA,QAAA;AAGI,SAASa,YAAYA,CAACC,GAAW,EAAEC,OAAe,EAAU;EACjE,IAAMC,UAAU,GAAG,IAAIC,GAAG,CAACF,OAAO,EAAEG,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC;EACzD,IAAMC,SAAS,GAAG,IAAIJ,GAAG,CAACH,GAAG,EAAEE,UAAU,CAACM,QAAQ,CAAC,CAAC,CAAC;EACrD,OAAOD,SAAS,CAACC,QAAQ,CAAC,CAAC;AAC7B"}
1
+ {"version":3,"names":["create","exports","Object","defineProperty","getOwnPropertyDescriptor","getOwnPropertyNames","freeze","keys","hasOwnProperty","caller","p","prototype","call","_status","WeakMap","Deferred","_this","_classCallCheck2","default","_defineProperty2","_classPrivateFieldInitSpec","writable","value","promise","Promise","resolve","reject","_classPrivateFieldSet2","reason","_createClass2","key","isSettled","_classPrivateFieldGet2","waitUntilSettled","_x","_waitUntilSettled","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","t0","process","env","NODE_ENV","console","warn","stop","getEntireUrl","uri","baseURI","publicPath","URL","window","location","href","entireUrl","toString","isRuntimeCompatible","_URL","Proxy","TransformStream","createObjectURL"],"sources":["../../src/utils.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-04-26\n */\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nexport const { create, defineProperty, getOwnPropertyDescriptor, getOwnPropertyNames, freeze, keys } = Object;\nexport const hasOwnProperty = (caller: unknown, p: PropertyKey) => Object.prototype.hasOwnProperty.call(caller, p);\n\nexport class Deferred<T> {\n promise: Promise<T>;\n\n #status: 'pending' | 'fulfilled' | 'rejected' = 'pending';\n\n resolve!: (value: T | PromiseLike<T>) => void;\n\n reject!: (reason?: unknown) => void;\n\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (value: T | PromiseLike<T>) => {\n this.#status = 'fulfilled';\n resolve(value);\n };\n this.reject = (reason?: unknown) => {\n this.#status = 'rejected';\n reject(reason);\n };\n });\n }\n\n isSettled(): boolean {\n return this.#status !== 'pending';\n }\n}\n\nexport async function waitUntilSettled(promise: Promise<void>): Promise<void> {\n try {\n await promise;\n } catch (e) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('waitUntilSettled error', e);\n }\n }\n}\n\nexport function getEntireUrl(uri: string, baseURI: string): string {\n const publicPath = new URL(baseURI, window.location.href);\n const entireUrl = new URL(uri, publicPath.toString());\n return entireUrl.toString();\n}\n\n/**\n * Check if the running environment support qiankun3.0\n *\n */\nexport function isRuntimeCompatible(): boolean {\n return (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n typeof Proxy === 'function' && typeof TransformStream === 'function' && typeof URL?.createObjectURL === 'function'\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,11 @@
1
1
  import type { AssetsTranspilerOpts } from './types';
2
+ /**
3
+ * transpile the assets to support micro frontend
4
+ * @param node the original node
5
+ * @param baseURI the baseURI of the node
6
+ * @param opts
7
+ * @returns original node after transpiled
8
+ */
2
9
  export declare function transpileAssets<T extends Node>(node: T, baseURI: string, opts: AssetsTranspilerOpts): T;
3
10
  export type * from './types';
4
11
  export { isValidJavaScriptType } from './utils';
@@ -4,6 +4,13 @@
4
4
  */
5
5
  import transpileLink from "./link";
6
6
  import transpileScript from "./script";
7
+ /**
8
+ * transpile the assets to support micro frontend
9
+ * @param node the original node
10
+ * @param baseURI the baseURI of the node
11
+ * @param opts
12
+ * @returns original node after transpiled
13
+ */
7
14
  export function transpileAssets(node, baseURI, opts) {
8
15
  var htmlElement = node;
9
16
  var tagName = htmlElement.tagName;
@@ -1 +1 @@
1
- {"version":3,"names":["transpileLink","transpileScript","transpileAssets","node","baseURI","opts","htmlElement","tagName","isValidJavaScriptType"],"sources":["../../../src/assets-transpilers/index.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-03-14\n */\nimport transpileLink from './link';\nimport transpileScript from './script';\nimport type { AssetsTranspilerOpts } from './types';\n\nexport function transpileAssets<T extends Node>(node: T, baseURI: string, opts: AssetsTranspilerOpts): T {\n const htmlElement = node as unknown as HTMLElement;\n const { tagName } = htmlElement;\n\n switch (tagName) {\n case 'SCRIPT': {\n return transpileScript(htmlElement as HTMLScriptElement, baseURI, opts) as unknown as T;\n }\n\n case 'LINK': {\n return transpileLink(htmlElement as HTMLLinkElement, baseURI, opts) as unknown as T;\n }\n\n default:\n break;\n }\n\n // TODO need to deal with the text scenario of script\n // const { nodeType } = node;\n // switch (nodeType) {\n // case Node.TEXT_NODE: {\n // if (node.parentNode?.nodeName === 'script') {\n // break;\n // }\n // }\n //\n // }\n // }\n return node;\n}\n\nexport type * from './types';\n\nexport { isValidJavaScriptType } from './utils';\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA,OAAOA,aAAa;AACpB,OAAOC,eAAe;AAGtB,OAAO,SAASC,eAAeA,CAAiBC,IAAO,EAAEC,OAAe,EAAEC,IAA0B,EAAK;EACvG,IAAMC,WAAW,GAAGH,IAA8B;EAClD,IAAQI,OAAO,GAAKD,WAAW,CAAvBC,OAAO;EAEf,QAAQA,OAAO;IACb,KAAK,QAAQ;MAAE;QACb,OAAON,eAAe,CAACK,WAAW,EAAuBF,OAAO,EAAEC,IAAI,CAAC;MACzE;IAEA,KAAK,MAAM;MAAE;QACX,OAAOL,aAAa,CAACM,WAAW,EAAqBF,OAAO,EAAEC,IAAI,CAAC;MACrE;IAEA;MACE;EACJ;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAOF,IAAI;AACb;AAIA,SAASK,qBAAqB"}
1
+ {"version":3,"names":["transpileLink","transpileScript","transpileAssets","node","baseURI","opts","htmlElement","tagName","isValidJavaScriptType"],"sources":["../../../src/assets-transpilers/index.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-03-14\n */\nimport transpileLink from './link';\nimport transpileScript from './script';\nimport type { AssetsTranspilerOpts } from './types';\n\n/**\n * transpile the assets to support micro frontend\n * @param node the original node\n * @param baseURI the baseURI of the node\n * @param opts\n * @returns original node after transpiled\n */\nexport function transpileAssets<T extends Node>(node: T, baseURI: string, opts: AssetsTranspilerOpts): T {\n const htmlElement = node as unknown as HTMLElement;\n const { tagName } = htmlElement;\n\n switch (tagName) {\n case 'SCRIPT': {\n return transpileScript(htmlElement as HTMLScriptElement, baseURI, opts) as unknown as T;\n }\n\n case 'LINK': {\n return transpileLink(htmlElement as HTMLLinkElement, baseURI, opts) as unknown as T;\n }\n\n default:\n break;\n }\n\n // TODO need to deal with the text scenario of script\n // const { nodeType } = node;\n // switch (nodeType) {\n // case Node.TEXT_NODE: {\n // if (node.parentNode?.nodeName === 'script') {\n // break;\n // }\n // }\n //\n // }\n // }\n return node;\n}\n\nexport type * from './types';\n\nexport { isValidJavaScriptType } from './utils';\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA,OAAOA,aAAa;AACpB,OAAOC,eAAe;AAGtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAiBC,IAAO,EAAEC,OAAe,EAAEC,IAA0B,EAAK;EACvG,IAAMC,WAAW,GAAGH,IAA8B;EAClD,IAAQI,OAAO,GAAKD,WAAW,CAAvBC,OAAO;EAEf,QAAQA,OAAO;IACb,KAAK,QAAQ;MAAE;QACb,OAAON,eAAe,CAACK,WAAW,EAAuBF,OAAO,EAAEC,IAAI,CAAC;MACzE;IAEA,KAAK,MAAM;MAAE;QACX,OAAOL,aAAa,CAACM,WAAW,EAAqBF,OAAO,EAAEC,IAAI,CAAC;MACrE;IAEA;MACE;EACJ;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAOF,IAAI;AACb;AAIA,SAASK,qBAAqB"}
@@ -13,19 +13,18 @@ var preTranspileStyleSheetLink = function preTranspileStyleSheetLink(link, baseU
13
13
  moduleResolver = opts.moduleResolver;
14
14
  var href = link.href,
15
15
  rel = link.rel;
16
- if (sandbox) {
17
- // filter preload links
18
- if (href && rel === 'stylesheet') {
19
- var linkHref = getEntireUrl(href, baseURI);
20
- var matchedAssets = moduleResolver === null || moduleResolver === void 0 ? void 0 : moduleResolver(linkHref);
21
- if (matchedAssets) {
22
- return {
23
- mode: Mode.REUSED_DEP_IN_SANDBOX,
24
- result: _objectSpread({
25
- src: linkHref
26
- }, matchedAssets)
27
- };
28
- }
16
+
17
+ // filter preload links
18
+ if (href && rel === 'stylesheet') {
19
+ var linkHref = getEntireUrl(href, baseURI);
20
+ var matchedAssets = moduleResolver === null || moduleResolver === void 0 ? void 0 : moduleResolver(linkHref);
21
+ if (matchedAssets) {
22
+ return {
23
+ mode: sandbox ? Mode.REUSED_DEP_IN_SANDBOX : Mode.REUSED_DEP,
24
+ result: _objectSpread({
25
+ src: linkHref
26
+ }, matchedAssets)
27
+ };
29
28
  }
30
29
  }
31
30
  return {
@@ -55,6 +54,7 @@ var postProcessPreloadLink = function postProcessPreloadLink(link, baseURI, opts
55
54
  break;
56
55
  }
57
56
  case Mode.REUSED_DEP_IN_SANDBOX:
57
+ case Mode.REUSED_DEP:
58
58
  {
59
59
  var url = result.url;
60
60
  link.href = createReusingObjectUrl(href, url, 'text/javascript');
@@ -73,6 +73,7 @@ var postProcessPreloadLink = function postProcessPreloadLink(link, baseURI, opts
73
73
  _result = _preTranspileStyleShe.result;
74
74
  switch (_mode) {
75
75
  case Mode.REUSED_DEP_IN_SANDBOX:
76
+ case Mode.REUSED_DEP:
76
77
  {
77
78
  var _url = _result.url;
78
79
  link.href = createReusingObjectUrl(href, _url, 'text/css');
@@ -95,6 +96,7 @@ export default function transpileLink(link, baseURI, opts) {
95
96
  result = _preTranspileStyleShe2.result;
96
97
  switch (mode) {
97
98
  case Mode.REUSED_DEP_IN_SANDBOX:
99
+ case Mode.REUSED_DEP:
98
100
  {
99
101
  var src = result.src,
100
102
  version = result.version,
@@ -1 +1 @@
1
- {"version":3,"names":["getEntireUrl","preTranspile","preTranspileScript","Mode","createReusingObjectUrl","preTranspileStyleSheetLink","link","baseURI","opts","sandbox","moduleResolver","href","rel","linkHref","matchedAssets","mode","REUSED_DEP_IN_SANDBOX","result","_objectSpread","src","NONE","postProcessPreloadLink","as","_preTranspileScript","REMOTE_ASSETS_IN_SANDBOX","url","_preTranspileStyleShe","transpileLink","hrefAttribute","getAttribute","_preTranspileStyleShe2","undefined","version","dataset"],"sources":["../../../src/assets-transpilers/link.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-04-26\n */\nimport type { MatchResult } from '../module-resolver';\nimport { getEntireUrl } from '../utils';\nimport { preTranspile as preTranspileScript } from './script';\nimport type { AssetsTranspilerOpts, BaseTranspilerOpts } from './types';\nimport { Mode } from './types';\nimport { createReusingObjectUrl } from './utils';\n\ntype PreTranspileResult =\n | { mode: Mode.REUSED_DEP_IN_SANDBOX; result: { src: string } & MatchResult }\n | { mode: Mode.NONE; result?: never };\nconst preTranspileStyleSheetLink = (\n link: Partial<Pick<HTMLLinkElement, 'href' | 'rel'>>,\n baseURI: string,\n opts: BaseTranspilerOpts,\n): PreTranspileResult => {\n const { sandbox, moduleResolver } = opts;\n const { href, rel } = link;\n\n if (sandbox) {\n // filter preload links\n if (href && rel === 'stylesheet') {\n const linkHref = getEntireUrl(href, baseURI);\n\n const matchedAssets = moduleResolver?.(linkHref);\n if (matchedAssets) {\n return {\n mode: Mode.REUSED_DEP_IN_SANDBOX,\n result: { src: linkHref, ...matchedAssets },\n };\n }\n }\n }\n\n return {\n mode: Mode.NONE,\n };\n};\n\nconst postProcessPreloadLink = (link: HTMLLinkElement, baseURI: string, opts: AssetsTranspilerOpts): void => {\n const { as, href } = link;\n switch (as) {\n case 'script': {\n const { mode, result } = preTranspileScript({ src: href }, baseURI, opts);\n\n switch (mode) {\n /**\n * While the assets are transpiling in sandbox, it means they will be evaluated with manual fetching,\n * thus we need to set the attribute `as` to fetch instead of script or style to avoid preload cache missing.\n * see https://stackoverflow.com/questions/52635660/can-link-rel-preload-be-made-to-work-with-fetch/63814972#63814972\n */\n case Mode.REMOTE_ASSETS_IN_SANDBOX: {\n link.as = 'fetch';\n break;\n }\n\n case Mode.REUSED_DEP_IN_SANDBOX: {\n const { url } = result;\n link.href = createReusingObjectUrl(href, url, 'text/javascript');\n\n break;\n }\n }\n\n break;\n }\n\n case 'style': {\n const { mode, result } = preTranspileStyleSheetLink({ href, rel: 'stylesheet' }, baseURI, opts);\n\n switch (mode) {\n case Mode.REUSED_DEP_IN_SANDBOX: {\n const { url } = result;\n link.href = createReusingObjectUrl(href, url, 'text/css');\n break;\n }\n }\n\n break;\n }\n\n default:\n break;\n }\n};\n\nexport default function transpileLink(\n link: HTMLLinkElement,\n baseURI: string,\n opts: AssetsTranspilerOpts,\n): HTMLLinkElement {\n const hrefAttribute = link.getAttribute('href');\n const { mode, result } = preTranspileStyleSheetLink(\n {\n href: hrefAttribute || undefined,\n rel: link.rel,\n },\n baseURI,\n opts,\n );\n\n switch (mode) {\n case Mode.REUSED_DEP_IN_SANDBOX: {\n const { src, version, url } = result;\n link.dataset.href = src;\n link.dataset.version = version;\n link.href = createReusingObjectUrl(src, url, 'text/css');\n\n return link;\n }\n\n case Mode.NONE:\n default: {\n if (hrefAttribute) {\n link.href = getEntireUrl(hrefAttribute, baseURI);\n\n if (link.rel === 'preload') {\n postProcessPreloadLink(link, baseURI, opts);\n }\n\n return link;\n }\n\n return link;\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["getEntireUrl","preTranspile","preTranspileScript","Mode","createReusingObjectUrl","preTranspileStyleSheetLink","link","baseURI","opts","sandbox","moduleResolver","href","rel","linkHref","matchedAssets","mode","REUSED_DEP_IN_SANDBOX","REUSED_DEP","result","_objectSpread","src","NONE","postProcessPreloadLink","as","_preTranspileScript","REMOTE_ASSETS_IN_SANDBOX","url","_preTranspileStyleShe","transpileLink","hrefAttribute","getAttribute","_preTranspileStyleShe2","undefined","version","dataset"],"sources":["../../../src/assets-transpilers/link.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-04-26\n */\nimport type { MatchResult } from '../module-resolver';\nimport { getEntireUrl } from '../utils';\nimport { preTranspile as preTranspileScript } from './script';\nimport type { AssetsTranspilerOpts, BaseTranspilerOpts } from './types';\nimport { Mode } from './types';\nimport { createReusingObjectUrl } from './utils';\n\ntype PreTranspileResult =\n | { mode: Mode.REUSED_DEP_IN_SANDBOX | Mode.REUSED_DEP; result: { src: string } & MatchResult }\n | { mode: Mode.NONE; result?: never };\nconst preTranspileStyleSheetLink = (\n link: Partial<Pick<HTMLLinkElement, 'href' | 'rel'>>,\n baseURI: string,\n opts: BaseTranspilerOpts,\n): PreTranspileResult => {\n const { sandbox, moduleResolver } = opts;\n const { href, rel } = link;\n\n // filter preload links\n if (href && rel === 'stylesheet') {\n const linkHref = getEntireUrl(href, baseURI);\n\n const matchedAssets = moduleResolver?.(linkHref);\n if (matchedAssets) {\n return {\n mode: sandbox ? Mode.REUSED_DEP_IN_SANDBOX : Mode.REUSED_DEP,\n result: { src: linkHref, ...matchedAssets },\n };\n }\n }\n\n return {\n mode: Mode.NONE,\n };\n};\n\nconst postProcessPreloadLink = (link: HTMLLinkElement, baseURI: string, opts: AssetsTranspilerOpts): void => {\n const { as, href } = link;\n switch (as) {\n case 'script': {\n const { mode, result } = preTranspileScript({ src: href }, baseURI, opts);\n\n switch (mode) {\n /**\n * While the assets are transpiling in sandbox, it means they will be evaluated with manual fetching,\n * thus we need to set the attribute `as` to fetch instead of script or style to avoid preload cache missing.\n * see https://stackoverflow.com/questions/52635660/can-link-rel-preload-be-made-to-work-with-fetch/63814972#63814972\n */\n case Mode.REMOTE_ASSETS_IN_SANDBOX: {\n link.as = 'fetch';\n break;\n }\n\n case Mode.REUSED_DEP_IN_SANDBOX:\n case Mode.REUSED_DEP: {\n const { url } = result;\n link.href = createReusingObjectUrl(href, url, 'text/javascript');\n\n break;\n }\n }\n\n break;\n }\n\n case 'style': {\n const { mode, result } = preTranspileStyleSheetLink({ href, rel: 'stylesheet' }, baseURI, opts);\n\n switch (mode) {\n case Mode.REUSED_DEP_IN_SANDBOX:\n case Mode.REUSED_DEP: {\n const { url } = result;\n link.href = createReusingObjectUrl(href, url, 'text/css');\n break;\n }\n }\n\n break;\n }\n\n default:\n break;\n }\n};\n\nexport default function transpileLink(\n link: HTMLLinkElement,\n baseURI: string,\n opts: AssetsTranspilerOpts,\n): HTMLLinkElement {\n const hrefAttribute = link.getAttribute('href');\n const { mode, result } = preTranspileStyleSheetLink(\n {\n href: hrefAttribute || undefined,\n rel: link.rel,\n },\n baseURI,\n opts,\n );\n\n switch (mode) {\n case Mode.REUSED_DEP_IN_SANDBOX:\n case Mode.REUSED_DEP: {\n const { src, version, url } = result;\n link.dataset.href = src;\n link.dataset.version = version;\n link.href = createReusingObjectUrl(src, url, 'text/css');\n\n return link;\n }\n\n case Mode.NONE:\n default: {\n if (hrefAttribute) {\n link.href = getEntireUrl(hrefAttribute, baseURI);\n\n if (link.rel === 'preload') {\n postProcessPreloadLink(link, baseURI, opts);\n }\n\n return link;\n }\n\n return link;\n }\n }\n}\n"],"mappings":"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"}