@lynx-js/chunk-loading-webpack-plugin-canary 0.4.2 → 0.4.3-canary-20261027-749147c8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @lynx-js/chunk-loading-webpack-plugin
2
2
 
3
+ ## 0.4.3-canary-20261027063858-749147c82c3e0bb06f1e92567a5afec909baf19b
4
+
5
+ ### Patch Changes
6
+
7
+ - Add internal HMR loading and update coordination hooks. Allow coordinated updates to refresh cached module factories, serialize application, detect timeouts, preserve runtime hashes on reconnect, and reload once on failure using a valid Native CDP request. ([#4178](https://github.com/lynx-family/lynx-stack/pull/4178))
8
+
9
+ Keep downloaded factories ahead of cached refresh fallbacks across update chunks, regardless of loading order.
10
+
11
+ Allow up to ten seconds for coordinated background application before timeout recovery.
12
+
13
+ Report each hot-update module once per result list, including modules collected earlier without a list.
14
+ - Apply main-thread hot updates to loaded async chunks, keep async definition modules stable when worklets are added or removed, and retain background HMR on hosts without Native bundle loading. Centralize the shared HMR runtime identifiers. ([#4179](https://github.com/lynx-family/lynx-stack/pull/4179))
15
+
16
+ Keep the refresh plugin compatible with the planned `react-webpack-plugin` 0.15 release while preserving its existing peer dependency ranges.
17
+ - Updated dependencies [[`7d498ae`](https://github.com/lynx-family/lynx-stack/commit/7d498aece52a20e77abc19e2a4579333861c11da)]:
18
+ - @lynx-js/webpack-runtime-globals@0.1.0-canary-20261027063858-749147c82c3e0bb06f1e92567a5afec909baf19b
19
+
3
20
  ## 0.4.2
4
21
 
5
22
  ### Patch Changes
package/lib/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @packageDocumentation
3
3
  *
4
- * A webpack/Rspack plugin to generate chunk loading runtime for Lynx.
4
+ * An Rspack plugin to generate chunk loading runtime for Lynx.
5
5
  */
6
6
  import type { Compiler } from '@rspack/core';
7
7
  /**
@@ -12,33 +12,18 @@ import type { Compiler } from '@rspack/core';
12
12
  export interface ChunkLoadingWebpackPluginOptions {
13
13
  }
14
14
  /**
15
- * The ChunkLoadingWebpackPlugin enables chunk loading for webpack/Rspack in Lynx.
15
+ * The ChunkLoadingWebpackPlugin enables chunk loading for Rspack in Lynx.
16
+ * It only takes effect when `output.chunkLoading` is `'lynx'`.
16
17
  *
17
18
  * @example
18
19
  *
19
- * - Use with Rspack.
20
- *
21
20
  * ```js
22
21
  * // rspack.config.js
23
22
  * import { ChunkLoadingWebpackPlugin } from '@lynx-js/chunk-loading-webpack-plugin'
24
23
  * export default {
25
24
  * output: {
26
- * chunkFormat: 'require',
27
- * },
28
- * plugins: [new ChunkLoadingWebpackPlugin()],
29
- * }
30
- * ```
31
- *
32
- * @example
33
- *
34
- * - Use with Webpack.
35
- *
36
- * ```js
37
- * // webpack.config.js
38
- * import { ChunkLoadingWebpackPlugin } from '@lynx-js/chunk-loading-webpack-plugin'
39
- * export default {
40
- * output: {
41
- * chunkFormat: 'lynx',
25
+ * chunkLoading: 'lynx',
26
+ * chunkFormat: 'commonjs',
42
27
  * },
43
28
  * plugins: [new ChunkLoadingWebpackPlugin()],
44
29
  * }
package/lib/index.js CHANGED
@@ -3,33 +3,18 @@
3
3
  // LICENSE file in the root directory of this source tree.
4
4
  import { ChunkLoadingWebpackPluginImpl } from './ChunkLoadingWebpackPlugin.js';
5
5
  /**
6
- * The ChunkLoadingWebpackPlugin enables chunk loading for webpack/Rspack in Lynx.
6
+ * The ChunkLoadingWebpackPlugin enables chunk loading for Rspack in Lynx.
7
+ * It only takes effect when `output.chunkLoading` is `'lynx'`.
7
8
  *
8
9
  * @example
9
10
  *
10
- * - Use with Rspack.
11
- *
12
11
  * ```js
13
12
  * // rspack.config.js
14
13
  * import { ChunkLoadingWebpackPlugin } from '@lynx-js/chunk-loading-webpack-plugin'
15
14
  * export default {
16
15
  * output: {
17
- * chunkFormat: 'require',
18
- * },
19
- * plugins: [new ChunkLoadingWebpackPlugin()],
20
- * }
21
- * ```
22
- *
23
- * @example
24
- *
25
- * - Use with Webpack.
26
- *
27
- * ```js
28
- * // webpack.config.js
29
- * import { ChunkLoadingWebpackPlugin } from '@lynx-js/chunk-loading-webpack-plugin'
30
- * export default {
31
- * output: {
32
- * chunkFormat: 'lynx',
16
+ * chunkLoading: 'lynx',
17
+ * chunkFormat: 'commonjs',
33
18
  * },
34
19
  * plugins: [new ChunkLoadingWebpackPlugin()],
35
20
  * }
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAU1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAU/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,OAAO,yBAAyB;IAEjB;IADnB,YACmB,UAAqD,EAAE;QAAvD,YAAO,GAAP,OAAO,CAAgD;IACvE,CAAC;IAEJ;;;;OAIG;IACH,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAEnC,EAAE,CAAC,CAAC;IAEN;;;OAGG;IACH,KAAK,CAAC,QAAkB;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,EAAE,EACF,yBAAyB,CAAC,cAAc,EACxC,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,6BAA6B,CAC/B,QAAsD,EACtD,OAAO,CACR,CAAC;IACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAU1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAU/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,yBAAyB;IAEjB;IADnB,YACmB,UAAqD,EAAE;QAAvD,YAAO,GAAP,OAAO,CAAgD;IACvE,CAAC;IAEJ;;;;OAIG;IACH,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAEnC,EAAE,CAAC,CAAC;IAEN;;;OAGG;IACH,KAAK,CAAC,QAAkB;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,EAAE,EACF,yBAAyB,CAAC,cAAc,EACxC,IAAI,CAAC,OAAO,CACb,CAAC;QACF,IAAI,6BAA6B,CAC/B,QAAsD,EACtD,OAAO,CACR,CAAC;IACJ,CAAC"}
@@ -10,8 +10,10 @@
10
10
  /* istanbul ignore file */
11
11
  export default function () {
12
12
  function loadUpdateChunk(chunkId, updatedModulesList) {
13
+ var load = $RuntimeGlobals_lynxHMRLoad$
14
+ || lynx.requireModuleAsync.bind(lynx);
13
15
  return new Promise((resolve, reject) => {
14
- lynx.requireModuleAsync($RuntimeGlobals_publicPath$
16
+ load($RuntimeGlobals_publicPath$
15
17
  + $RuntimeGlobals_getChunkUpdateScriptFilename$(chunkId), (err, update) => {
16
18
  if (err) {
17
19
  reject(err);
@@ -21,11 +23,28 @@ export default function () {
21
23
  var runtime = update.runtime;
22
24
  for (var moduleId in updatedModules) {
23
25
  if ($RuntimeGlobals_hasOwnProperty$(updatedModules, moduleId)) {
24
- currentUpdate[moduleId] = updatedModules[moduleId];
25
- if (updatedModulesList)
26
+ if (updatedModulesList
27
+ && updatedModulesList.indexOf(moduleId) === -1)
26
28
  updatedModulesList.push(moduleId);
29
+ currentUpdate[moduleId] = updatedModules[moduleId];
27
30
  }
28
31
  }
32
+ // Owners unchanged on BTS still need fresh worklet contexts. Cached
33
+ // factories are only fallbacks; any downloaded factory takes priority
34
+ // regardless of which update chunk finishes loading first.
35
+ (update.lynxRefreshModules || []).forEach(function (moduleId) {
36
+ // Match the string keys used by downloaded module factories.
37
+ moduleId = String(moduleId);
38
+ if (__webpack_require__.c[moduleId]
39
+ && currentUpdate[moduleId] !== false) {
40
+ if (!$RuntimeGlobals_hasOwnProperty$(currentUpdate, moduleId)) {
41
+ currentUpdate[moduleId] = __webpack_require__.m[moduleId];
42
+ }
43
+ if (updatedModulesList
44
+ && updatedModulesList.indexOf(moduleId) === -1)
45
+ updatedModulesList.push(moduleId);
46
+ }
47
+ });
29
48
  if (runtime)
30
49
  currentUpdateRuntime.push(runtime);
31
50
  resolve();
@@ -1 +1 @@
1
- {"version":3,"file":"hmr-load-chunk.js","sourceRoot":"","sources":["../../../src/runtime/javascript/hmr-load-chunk.js"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,cAAc;AACd,0DAA0D;AAC1D,yEAAyE;AACzE,gDAAgD;AAChD,0BAA0B;AAE1B,MAAM,CAAC,OAAO;IACZ,SAAS,eAAe,CAAC,OAAO,EAAE,kBAAkB;QAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,kBAAkB,CACrB,2BAA2B;kBACvB,6CAA6C,CAAC,OAAO,CAAC,EAC1D,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACd,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,OAAO;gBACT,CAAC;gBAED,IAAI,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;gBACpC,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,KAAK,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;oBACpC,IAAI,+BAA+B,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC;wBAC9D,aAAa,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;wBACnD,IAAI,kBAAkB;4BAAE,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO;oBAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChD,OAAO,EAAE,CAAC;YACZ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"hmr-load-chunk.js","sourceRoot":"","sources":["../../../src/runtime/javascript/hmr-load-chunk.js"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,cAAc;AACd,0DAA0D;AAC1D,yEAAyE;AACzE,gDAAgD;AAChD,0BAA0B;AAE1B,MAAM,CAAC,OAAO;IACZ,SAAS,eAAe,CAAC,OAAO,EAAE,kBAAkB;QAClD,IAAI,IAAI,GAAG,4BAA4B;eAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CACF,2BAA2B;kBACvB,6CAA6C,CAAC,OAAO,CAAC,EAC1D,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACd,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,OAAO;gBACT,CAAC;gBAED,IAAI,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;gBACpC,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,KAAK,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;oBACpC,IAAI,+BAA+B,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC;wBAC9D,IACE,kBAAkB;+BACf,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BAC9C,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACpC,aAAa,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;gBACD,oEAAoE;gBACpE,sEAAsE;gBACtE,2DAA2D;gBAC3D,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,QAAQ;oBACzD,6DAA6D;oBAC7D,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC5B,IACE,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;2BAC5B,aAAa,CAAC,QAAQ,CAAC,KAAK,KAAK,EACpC,CAAC;wBACD,IAAI,CAAC,+BAA+B,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC;4BAC9D,aAAa,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;wBAC5D,CAAC;wBACD,IACE,kBAAkB;+BACf,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BAC9C,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,OAAO;oBAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChD,OAAO,EAAE,CAAC;YACZ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -10,7 +10,9 @@
10
10
  /* istanbul ignore file */
11
11
  export default function () {
12
12
  $RuntimeGlobals_hmrDownloadManifest$ = function () {
13
- return new Promise((resolve, reject) => lynx.requireModuleAsync($RuntimeGlobals_publicPath$
13
+ var load = $RuntimeGlobals_lynxHMRLoad$
14
+ || lynx.requireModuleAsync.bind(lynx);
15
+ return new Promise((resolve, reject) => load($RuntimeGlobals_publicPath$
14
16
  + $RuntimeGlobals_getUpdateManifestFilename$(), (err, ret) => {
15
17
  if (err)
16
18
  return reject(err);
@@ -1 +1 @@
1
- {"version":3,"file":"hmr-load-manifest.js","sourceRoot":"","sources":["../../../src/runtime/javascript/hmr-load-manifest.js"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,cAAc;AACd,0DAA0D;AAC1D,yEAAyE;AACzE,gDAAgD;AAChD,0BAA0B;AAE1B,MAAM,CAAC,OAAO;IACZ,oCAAoC,GAAG;QACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,IAAI,CAAC,kBAAkB,CACrB,2BAA2B;cACvB,0CAA0C,EAAE,EAChD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,IAAI,GAAG;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CACF,CACF,CAAC,OAAO,CAAC,CAAC,UAAS,GAAG;YACrB,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB;gBAAE,MAAM,GAAG,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"hmr-load-manifest.js","sourceRoot":"","sources":["../../../src/runtime/javascript/hmr-load-manifest.js"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,cAAc;AACd,0DAA0D;AAC1D,yEAAyE;AACzE,gDAAgD;AAChD,0BAA0B;AAE1B,MAAM,CAAC,OAAO;IACZ,oCAAoC,GAAG;QACrC,IAAI,IAAI,GAAG,4BAA4B;eAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,IAAI,CACF,2BAA2B;cACvB,0CAA0C,EAAE,EAChD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,IAAI,GAAG;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CACF,CACF,CAAC,OAAO,CAAC,CAAC,UAAS,GAAG;YACrB,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB;gBAAE,MAAM,GAAG,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lynx-js/chunk-loading-webpack-plugin-canary",
3
- "version": "0.4.2",
3
+ "version": "0.4.3-canary-20261027-749147c8",
4
4
  "private": false,
5
5
  "description": "A webpack plugin to generate chunk loading runtime for Lynx.",
6
6
  "keywords": [
@@ -32,14 +32,14 @@
32
32
  "README.md"
33
33
  ],
34
34
  "dependencies": {
35
- "@lynx-js/webpack-runtime-globals": "npm:@lynx-js/webpack-runtime-globals-canary@0.0.8"
35
+ "@lynx-js/webpack-runtime-globals": "npm:@lynx-js/webpack-runtime-globals-canary@0.1.0-canary-20261027-749147c8"
36
36
  },
37
37
  "devDependencies": {
38
- "@microsoft/api-extractor": "7.58.12",
39
- "@rspack/core": "2.2.2",
40
- "@rstest/core": "0.11.12",
41
- "css-loader": "^7.1.4",
42
- "@lynx-js/test-tools": "0.0.0"
38
+ "@lynx-js/test-tools": "0.0.0",
39
+ "@microsoft/api-extractor": "7.59.4",
40
+ "@rspack/core": "2.2.7",
41
+ "@rstest/core": "0.12.1",
42
+ "css-loader": "^7.1.4"
43
43
  },
44
44
  "engines": {
45
45
  "node": ">=18"