@module-federation/native-federation-tests 0.5.0 → 0.6.0
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/README.md +22 -0
- package/dist/CHANGELOG.md +12 -0
- package/dist/README.md +22 -0
- package/dist/chunk-UQAU264C.js +1 -0
- package/dist/chunk-XQKXJQ5G.mjs +1 -0
- package/dist/esbuild.js +1 -1
- package/dist/esbuild.mjs +1 -1
- package/dist/farm.d.mts +7 -0
- package/dist/farm.d.ts +7 -0
- package/dist/farm.js +1 -0
- package/dist/farm.mjs +1 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/package.json +6 -6
- package/dist/rolldown.js +1 -1
- package/dist/rolldown.mjs +1 -1
- package/dist/rollup.js +1 -1
- package/dist/rollup.mjs +1 -1
- package/dist/rspack.js +1 -1
- package/dist/rspack.mjs +1 -1
- package/dist/vite.js +1 -1
- package/dist/vite.mjs +1 -1
- package/dist/webpack.js +1 -1
- package/dist/webpack.mjs +1 -1
- package/package.json +6 -6
- package/dist/chunk-SYHYDCCQ.js +0 -1
- package/dist/chunk-TF5YWS3M.mjs +0 -1
package/README.md
CHANGED
|
@@ -200,6 +200,28 @@ export default {
|
|
|
200
200
|
<br>
|
|
201
201
|
</details>
|
|
202
202
|
|
|
203
|
+
<details>
|
|
204
|
+
<summary>Farm</summary><br>
|
|
205
|
+
|
|
206
|
+
```ts
|
|
207
|
+
// farm.config.ts
|
|
208
|
+
import { NativeFederationTestsHost, NativeFederationTestsRemote } from '@module-federation/native-federation-tests/farm';
|
|
209
|
+
|
|
210
|
+
const config: UserConfig = {
|
|
211
|
+
plugins: [
|
|
212
|
+
NativeFederationTestsRemote({
|
|
213
|
+
/* options */
|
|
214
|
+
}),
|
|
215
|
+
NativeFederationTestsHost({
|
|
216
|
+
/* options */
|
|
217
|
+
}),
|
|
218
|
+
]
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
<br>
|
|
223
|
+
</details>
|
|
224
|
+
|
|
203
225
|
## Examples
|
|
204
226
|
|
|
205
227
|
To use it in a `host` module, refer to [this example](https://github.com/module-federation/module-federation-examples/tree/master/native-federation-tests-typescript-plugins/host).
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# [1.0.0-canary.1](https://github.com/module-federation/core/compare/native-federation-tests-0.2.1...native-federation-tests-1.0.0-canary.1) (2023-11-06)
|
|
2
2
|
|
|
3
|
+
## 0.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8941ef4: feat: support for farm, drop support for node < 16
|
|
8
|
+
|
|
9
|
+
## 0.5.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 3082718: ability to use relative paths
|
|
14
|
+
|
|
3
15
|
## 0.5.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/dist/README.md
CHANGED
|
@@ -200,6 +200,28 @@ export default {
|
|
|
200
200
|
<br>
|
|
201
201
|
</details>
|
|
202
202
|
|
|
203
|
+
<details>
|
|
204
|
+
<summary>Farm</summary><br>
|
|
205
|
+
|
|
206
|
+
```ts
|
|
207
|
+
// farm.config.ts
|
|
208
|
+
import { NativeFederationTestsHost, NativeFederationTestsRemote } from '@module-federation/native-federation-tests/farm';
|
|
209
|
+
|
|
210
|
+
const config: UserConfig = {
|
|
211
|
+
plugins: [
|
|
212
|
+
NativeFederationTestsRemote({
|
|
213
|
+
/* options */
|
|
214
|
+
}),
|
|
215
|
+
NativeFederationTestsHost({
|
|
216
|
+
/* options */
|
|
217
|
+
}),
|
|
218
|
+
]
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
<br>
|
|
223
|
+
</details>
|
|
224
|
+
|
|
203
225
|
## Examples
|
|
204
226
|
|
|
205
227
|
To use it in a `host` module, refer to [this example](https://github.com/module-federation/module-federation-examples/tree/master/native-federation-tests-typescript-plugins/host).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _ansicolors = require('ansi-colors'); var _ansicolors2 = _interopRequireDefault(_ansicolors);var _path = require('path');var _rambda = require('rambda');var _tsup = require('tsup');var _unplugin = require('unplugin');var C={testsFolder:"@mf-tests",mocksFolder:"./__mocks__",deleteTestsFolder:!0,maxRetries:3},b=t=>{let e=t.split("@");return e[e.length-1]},l="file:",E=(t,e)=>{let r=b(e),o=new URL(r,l),s=o.pathname.split("/").slice(0,-1).join("/");return o.pathname=`${s}/${t.testsFolder}.zip`,o.protocol===l?o.pathname:o.href},H=t=>Object.entries(t.moduleFederationConfig.remotes).reduce((e,[r,o])=>(e[r]=E(t,o),e),{}),u=t=>{if(!t.moduleFederationConfig)throw new Error("moduleFederationConfig is required");let e={...C,...t},r=H(e);return{hostOptions:e,mapRemotesToDownload:r}};var _fs = require('fs');var T={testsFolder:"@mf-tests",distFolder:"./dist",deleteTestsFolder:!0,additionalBundlerConfig:{}},U=["ts","tsx","js","jsx","mjs"],f=t=>{let e=process.cwd();for(let r of U){let o=_path.join.call(void 0, e,`${t}.${r}`);if(_fs.existsSync.call(void 0, o))return o}},S=t=>Object.entries(t.moduleFederationConfig.exposes).reduce((e,[r,o])=>(e[r]=f(o)||f(_path.join.call(void 0, o,"index"))||o,e),{}),g=t=>{if(!t.moduleFederationConfig)throw new Error("moduleFederationConfig is required");let e={...T,...t},r=S(e),o=Object.keys(t.moduleFederationConfig.shared||{}).concat(Object.keys(t.moduleFederationConfig.remotes||{})),s=_path.join.call(void 0, e.distFolder,e.testsFolder);return{remoteOptions:e,externalDeps:o,compiledFilesFolder:s,mapComponentsToExpose:r}};var _admzip = require('adm-zip'); var _admzip2 = _interopRequireDefault(_admzip);var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);var _crypto = require('crypto');var _promises = require('fs/promises');var B=t=>_path.join.call(void 0, t.distFolder,`${t.testsFolder}.zip`),F=async(t,e)=>{let r=new _admzip2.default;return r.addLocalFolder(e),r.writeZipPromise(B(t))},N=(t,e)=>r=>{throw{...r,message:`Network error: Unable to download federated mocks for '${t}' from '${e}' because '${r.message}'`}},a=async(t,e)=>{t.deleteTestsFolder&&await _promises.rm.call(void 0, e,{recursive:!0,force:!0}).catch(r=>console.error(_ansicolors2.default.red(`Unable to remove tests folder, ${r}`)))},w=t=>{let e={},r={};return async([o,s])=>{e[s]=0;let n=_path.join.call(void 0, t.mocksFolder,o);for(;e[s]++<t.maxRetries;)try{let i=await _axios2.default.get(s,{responseType:"arraybuffer"}).catch(N(o,s)),m=Buffer.from(i.data),p=_crypto.createHash.call(void 0, "sha256").update(m).digest("hex");r[s]!==p&&(await a(t,n),new (0, _admzip2.default)(m).extractAllTo(n,!0),r[s]=p);break}catch(i){if(console.error(_ansicolors2.default.red(`Error during types archive download: ${(i==null?void 0:i.message)||"unknown error"}`)),e[s]>=t.maxRetries)throw i}}};var ie=_unplugin.createUnplugin.call(void 0, t=>{let{remoteOptions:e,compiledFilesFolder:r,externalDeps:o,mapComponentsToExpose:s}=g(t);return{name:"native-federation-tests/remote",async writeBundle(){let n=_rambda.mergeRight.call(void 0, e.additionalBundlerConfig,{external:o.map(i=>new RegExp(`^${i}`)),entry:s,outDir:r,silent:!0});try{await _tsup.build.call(void 0, n),await F(e,r),await a(e,r),console.log(_ansicolors2.default.green("Federated mocks created correctly"))}catch(i){console.error(_ansicolors2.default.red(`Unable to build federated mocks: ${i}`))}},get vite(){return process.env.NODE_ENV==="production"?void 0:{buildStart:this.writeBundle,watchChange:this.writeBundle}},webpack(n){n.options.devServer=_rambda.mergeDeepRight.call(void 0, n.options.devServer||{},{static:{directory:_path.resolve.call(void 0, e.distFolder)}})},rspack(n){n.options.devServer=_rambda.mergeDeepRight.call(void 0, n.options.devServer||{},{static:{directory:_path.resolve.call(void 0, e.distFolder)}})}}}),de= exports.b =_unplugin.createUnplugin.call(void 0, t=>{let{hostOptions:e,mapRemotesToDownload:r}=u(t),o=w(e);return{name:"native-federation-tests/host",async writeBundle(){let s=Object.entries(r).map(o);await Promise.allSettled(s),console.log(_ansicolors2.default.green("Federated mocks extraction completed"))},get vite(){return process.env.NODE_ENV==="production"?void 0:{buildStart:this.writeBundle,watchChange:this.writeBundle}}}});exports.a = ie; exports.b = de;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import c from"ansi-colors";import{resolve as v}from"path";import{mergeDeepRight as x,mergeRight as P}from"rambda";import{build as _}from"tsup";import{createUnplugin as y}from"unplugin";var C={testsFolder:"@mf-tests",mocksFolder:"./__mocks__",deleteTestsFolder:!0,maxRetries:3},b=t=>{let e=t.split("@");return e[e.length-1]},l="file:",E=(t,e)=>{let r=b(e),o=new URL(r,l),s=o.pathname.split("/").slice(0,-1).join("/");return o.pathname=`${s}/${t.testsFolder}.zip`,o.protocol===l?o.pathname:o.href},H=t=>Object.entries(t.moduleFederationConfig.remotes).reduce((e,[r,o])=>(e[r]=E(t,o),e),{}),u=t=>{if(!t.moduleFederationConfig)throw new Error("moduleFederationConfig is required");let e={...C,...t},r=H(e);return{hostOptions:e,mapRemotesToDownload:r}};import{existsSync as k}from"fs";import{join as d}from"path";var T={testsFolder:"@mf-tests",distFolder:"./dist",deleteTestsFolder:!0,additionalBundlerConfig:{}},U=["ts","tsx","js","jsx","mjs"],f=t=>{let e=process.cwd();for(let r of U){let o=d(e,`${t}.${r}`);if(k(o))return o}},S=t=>Object.entries(t.moduleFederationConfig.exposes).reduce((e,[r,o])=>(e[r]=f(o)||f(d(o,"index"))||o,e),{}),g=t=>{if(!t.moduleFederationConfig)throw new Error("moduleFederationConfig is required");let e={...T,...t},r=S(e),o=Object.keys(t.moduleFederationConfig.shared||{}).concat(Object.keys(t.moduleFederationConfig.remotes||{})),s=d(e.distFolder,e.testsFolder);return{remoteOptions:e,externalDeps:o,compiledFilesFolder:s,mapComponentsToExpose:r}};import R from"adm-zip";import h from"ansi-colors";import $ from"axios";import{createHash as j}from"node:crypto";import{rm as q}from"node:fs/promises";import{join as O}from"node:path";var B=t=>O(t.distFolder,`${t.testsFolder}.zip`),F=async(t,e)=>{let r=new R;return r.addLocalFolder(e),r.writeZipPromise(B(t))},N=(t,e)=>r=>{throw{...r,message:`Network error: Unable to download federated mocks for '${t}' from '${e}' because '${r.message}'`}},a=async(t,e)=>{t.deleteTestsFolder&&await q(e,{recursive:!0,force:!0}).catch(r=>console.error(h.red(`Unable to remove tests folder, ${r}`)))},w=t=>{let e={},r={};return async([o,s])=>{e[s]=0;let n=O(t.mocksFolder,o);for(;e[s]++<t.maxRetries;)try{let i=await $.get(s,{responseType:"arraybuffer"}).catch(N(o,s)),m=Buffer.from(i.data),p=j("sha256").update(m).digest("hex");r[s]!==p&&(await a(t,n),new R(m).extractAllTo(n,!0),r[s]=p);break}catch(i){if(console.error(h.red(`Error during types archive download: ${(i==null?void 0:i.message)||"unknown error"}`)),e[s]>=t.maxRetries)throw i}}};var ie=y(t=>{let{remoteOptions:e,compiledFilesFolder:r,externalDeps:o,mapComponentsToExpose:s}=g(t);return{name:"native-federation-tests/remote",async writeBundle(){let n=P(e.additionalBundlerConfig,{external:o.map(i=>new RegExp(`^${i}`)),entry:s,outDir:r,silent:!0});try{await _(n),await F(e,r),await a(e,r),console.log(c.green("Federated mocks created correctly"))}catch(i){console.error(c.red(`Unable to build federated mocks: ${i}`))}},get vite(){return process.env.NODE_ENV==="production"?void 0:{buildStart:this.writeBundle,watchChange:this.writeBundle}},webpack(n){n.options.devServer=x(n.options.devServer||{},{static:{directory:v(e.distFolder)}})},rspack(n){n.options.devServer=x(n.options.devServer||{},{static:{directory:v(e.distFolder)}})}}}),de=y(t=>{let{hostOptions:e,mapRemotesToDownload:r}=u(t),o=w(e);return{name:"native-federation-tests/host",async writeBundle(){let s=Object.entries(r).map(o);await Promise.allSettled(s),console.log(c.green("Federated mocks extraction completed"))},get vite(){return process.env.NODE_ENV==="production"?void 0:{buildStart:this.writeBundle,watchChange:this.writeBundle}}}});export{ie as a,de as b};
|
package/dist/esbuild.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUQAU264Cjs = require('./chunk-UQAU264C.js');var o=_chunkUQAU264Cjs.a.esbuild,a= exports.NativeFederationTestsHost =_chunkUQAU264Cjs.b.esbuild;exports.NativeFederationTestsHost = a; exports.NativeFederationTestsRemote = o;
|
package/dist/esbuild.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,b as t}from"./chunk-
|
|
1
|
+
import{a as e,b as t}from"./chunk-XQKXJQ5G.mjs";var o=e.esbuild,a=t.esbuild;export{a as NativeFederationTestsHost,o as NativeFederationTestsRemote};
|
package/dist/farm.d.mts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { R as RemoteOptions, H as HostOptions } from './RemoteOptions-817643e7.js';
|
|
2
|
+
import 'tsup';
|
|
3
|
+
|
|
4
|
+
declare const NativeFederationTestsRemote: (options: RemoteOptions) => JsPlugin;
|
|
5
|
+
declare const NativeFederationTestsHost: (options: HostOptions) => JsPlugin;
|
|
6
|
+
|
|
7
|
+
export { NativeFederationTestsHost, NativeFederationTestsRemote };
|
package/dist/farm.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { R as RemoteOptions, H as HostOptions } from './RemoteOptions-817643e7.js';
|
|
2
|
+
import 'tsup';
|
|
3
|
+
|
|
4
|
+
declare const NativeFederationTestsRemote: (options: RemoteOptions) => JsPlugin;
|
|
5
|
+
declare const NativeFederationTestsHost: (options: HostOptions) => JsPlugin;
|
|
6
|
+
|
|
7
|
+
export { NativeFederationTestsHost, NativeFederationTestsRemote };
|
package/dist/farm.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUQAU264Cjs = require('./chunk-UQAU264C.js');var s=_chunkUQAU264Cjs.a.farm,a= exports.NativeFederationTestsHost =_chunkUQAU264Cjs.b.farm;exports.NativeFederationTestsHost = a; exports.NativeFederationTestsRemote = s;
|
package/dist/farm.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,b as t}from"./chunk-XQKXJQ5G.mjs";var s=e.farm,a=t.farm;export{a as NativeFederationTestsHost,s as NativeFederationTestsRemote};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUQAU264Cjs = require('./chunk-UQAU264C.js');exports.NativeFederationTestsHost = _chunkUQAU264Cjs.b; exports.NativeFederationTestsRemote = _chunkUQAU264Cjs.a;
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"./chunk-
|
|
1
|
+
import{a,b}from"./chunk-XQKXJQ5G.mjs";export{b as NativeFederationTestsHost,a as NativeFederationTestsRemote};
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/native-federation-tests",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Bundler agnostic unplugin to share federated tests",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
"author": "Matteo Pietro Dazzi <matteopietro.dazzi@gmail.com> (https://github.com/ilteoood)",
|
|
53
53
|
"license": "MIT",
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"adm-zip": "^0.5.
|
|
55
|
+
"adm-zip": "^0.5.14",
|
|
56
56
|
"ansi-colors": "^4.1.3",
|
|
57
|
-
"axios": "^1.
|
|
58
|
-
"rambda": "^9.1
|
|
59
|
-
"tsup": "^
|
|
60
|
-
"unplugin": "^1.
|
|
57
|
+
"axios": "^1.7.2",
|
|
58
|
+
"rambda": "^9.2.1",
|
|
59
|
+
"tsup": "^8.1.0",
|
|
60
|
+
"unplugin": "^1.10.1"
|
|
61
61
|
}
|
|
62
62
|
}
|
package/dist/rolldown.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUQAU264Cjs = require('./chunk-UQAU264C.js');var s=_chunkUQAU264Cjs.a.rolldown,a= exports.NativeFederationTestsHost =_chunkUQAU264Cjs.b.rolldown;exports.NativeFederationTestsHost = a; exports.NativeFederationTestsRemote = s;
|
package/dist/rolldown.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,b as t}from"./chunk-
|
|
1
|
+
import{a as e,b as t}from"./chunk-XQKXJQ5G.mjs";var s=e.rolldown,a=t.rolldown;export{a as NativeFederationTestsHost,s as NativeFederationTestsRemote};
|
package/dist/rollup.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUQAU264Cjs = require('./chunk-UQAU264C.js');var s=_chunkUQAU264Cjs.a.rollup,a= exports.NativeFederationTestsHost =_chunkUQAU264Cjs.b.rollup;exports.NativeFederationTestsHost = a; exports.NativeFederationTestsRemote = s;
|
package/dist/rollup.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,b as t}from"./chunk-
|
|
1
|
+
import{a as e,b as t}from"./chunk-XQKXJQ5G.mjs";var s=e.rollup,a=t.rollup;export{a as NativeFederationTestsHost,s as NativeFederationTestsRemote};
|
package/dist/rspack.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUQAU264Cjs = require('./chunk-UQAU264C.js');var o=_chunkUQAU264Cjs.a.rspack,a= exports.NativeFederationTestsHost =_chunkUQAU264Cjs.b.rspack;exports.NativeFederationTestsHost = a; exports.NativeFederationTestsRemote = o;
|
package/dist/rspack.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,b as t}from"./chunk-
|
|
1
|
+
import{a as e,b as t}from"./chunk-XQKXJQ5G.mjs";var o=e.rspack,a=t.rspack;export{a as NativeFederationTestsHost,o as NativeFederationTestsRemote};
|
package/dist/vite.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUQAU264Cjs = require('./chunk-UQAU264C.js');var s=_chunkUQAU264Cjs.a.vite,i= exports.NativeFederationTestsHost =_chunkUQAU264Cjs.b.vite;exports.NativeFederationTestsHost = i; exports.NativeFederationTestsRemote = s;
|
package/dist/vite.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as t,b as e}from"./chunk-
|
|
1
|
+
import{a as t,b as e}from"./chunk-XQKXJQ5G.mjs";var s=t.vite,i=e.vite;export{i as NativeFederationTestsHost,s as NativeFederationTestsRemote};
|
package/dist/webpack.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUQAU264Cjs = require('./chunk-UQAU264C.js');var s=_chunkUQAU264Cjs.a.webpack,n= exports.NativeFederationTestsHost =_chunkUQAU264Cjs.b.webpack;exports.NativeFederationTestsHost = n; exports.NativeFederationTestsRemote = s;
|
package/dist/webpack.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,b as t}from"./chunk-
|
|
1
|
+
import{a as e,b as t}from"./chunk-XQKXJQ5G.mjs";var s=e.webpack,n=t.webpack;export{n as NativeFederationTestsHost,s as NativeFederationTestsRemote};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/native-federation-tests",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Bundler agnostic unplugin to share federated tests",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
"author": "Matteo Pietro Dazzi <matteopietro.dazzi@gmail.com> (https://github.com/ilteoood)",
|
|
53
53
|
"license": "MIT",
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"adm-zip": "^0.5.
|
|
55
|
+
"adm-zip": "^0.5.14",
|
|
56
56
|
"ansi-colors": "^4.1.3",
|
|
57
|
-
"axios": "^1.
|
|
58
|
-
"rambda": "^9.1
|
|
59
|
-
"tsup": "^
|
|
60
|
-
"unplugin": "^1.
|
|
57
|
+
"axios": "^1.7.2",
|
|
58
|
+
"rambda": "^9.2.1",
|
|
59
|
+
"tsup": "^8.1.0",
|
|
60
|
+
"unplugin": "^1.10.1"
|
|
61
61
|
}
|
|
62
62
|
}
|
package/dist/chunk-SYHYDCCQ.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _ansicolors = require('ansi-colors'); var _ansicolors2 = _interopRequireDefault(_ansicolors);var _path = require('path');var _rambda = require('rambda');var _tsup = require('tsup');var _unplugin = require('unplugin');var y={testsFolder:"@mf-tests",mocksFolder:"./__mocks__",deleteTestsFolder:!0,maxRetries:3},C=t=>{let e=t.split("@");return e[e.length-1]},b=(t,e)=>{let r=C(e),o=new URL(r),s=o.pathname.split("/").slice(0,-1).join("/");return o.pathname=`${s}/${t.testsFolder}.zip`,o.href},E=t=>Object.entries(t.moduleFederationConfig.remotes).reduce((e,[r,o])=>(e[r]=b(t,o),e),{}),l=t=>{if(!t.moduleFederationConfig)throw new Error("moduleFederationConfig is required");let e={...y,...t},r=E(e);return{hostOptions:e,mapRemotesToDownload:r}};var _fs = require('fs');var k={testsFolder:"@mf-tests",distFolder:"./dist",deleteTestsFolder:!0,additionalBundlerConfig:{}},U=["ts","tsx","js","jsx","mjs"],u=t=>{let e=process.cwd();for(let r of U){let o=_path.join.call(void 0, e,`${t}.${r}`);if(_fs.existsSync.call(void 0, o))return o}},T=t=>Object.entries(t.moduleFederationConfig.exposes).reduce((e,[r,o])=>(e[r]=u(o)||u(_path.join.call(void 0, o,"index"))||o,e),{}),f=t=>{if(!t.moduleFederationConfig)throw new Error("moduleFederationConfig is required");let e={...k,...t},r=T(e),o=Object.keys(t.moduleFederationConfig.shared||{}).concat(Object.keys(t.moduleFederationConfig.remotes||{})),s=_path.join.call(void 0, e.distFolder,e.testsFolder);return{remoteOptions:e,externalDeps:o,compiledFilesFolder:s,mapComponentsToExpose:r}};var _admzip = require('adm-zip'); var _admzip2 = _interopRequireDefault(_admzip);var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);var _crypto = require('crypto');var _promises = require('fs/promises');var q=t=>_path.join.call(void 0, t.distFolder,`${t.testsFolder}.zip`),O=async(t,e)=>{let r=new _admzip2.default;return r.addLocalFolder(e),r.writeZipPromise(q(t))},B=(t,e)=>r=>{throw{...r,message:`Network error: Unable to download federated mocks for '${t}' from '${e}' because '${r.message}'`}},a=async(t,e)=>{t.deleteTestsFolder&&await _promises.rm.call(void 0, e,{recursive:!0,force:!0}).catch(r=>console.error(_ansicolors2.default.red(`Unable to remove tests folder, ${r}`)))},w=t=>{let e={},r={};return async([o,s])=>{e[s]=0;let n=_path.join.call(void 0, t.mocksFolder,o);for(;e[s]++<t.maxRetries;)try{let i=await _axios2.default.get(s,{responseType:"arraybuffer"}).catch(B(o,s)),c=Buffer.from(i.data),p=_crypto.createHash.call(void 0, "sha256").update(c).digest("hex");r[s]!==p&&(await a(t,n),new (0, _admzip2.default)(c).extractAllTo(n,!0),r[s]=p);break}catch(i){if(console.error(_ansicolors2.default.red(`Error during types archive download: ${(i==null?void 0:i.message)||"unknown error"}`)),e[s]>=t.maxRetries)throw i}}};var ne=_unplugin.createUnplugin.call(void 0, t=>{let{remoteOptions:e,compiledFilesFolder:r,externalDeps:o,mapComponentsToExpose:s}=f(t);return{name:"native-federation-tests/remote",async writeBundle(){let n=_rambda.mergeRight.call(void 0, e.additionalBundlerConfig,{external:o.map(i=>new RegExp(`^${i}`)),entry:s,outDir:r,silent:!0});try{await _tsup.build.call(void 0, n),await O(e,r),await a(e,r),console.log(_ansicolors2.default.green("Federated mocks created correctly"))}catch(i){console.error(_ansicolors2.default.red(`Unable to build federated mocks: ${i}`))}},get vite(){return process.env.NODE_ENV==="production"?void 0:{buildStart:this.writeBundle,watchChange:this.writeBundle}},webpack(n){n.options.devServer=_rambda.mergeDeepRight.call(void 0, n.options.devServer||{},{static:{directory:_path.resolve.call(void 0, e.distFolder)}})},rspack(n){n.options.devServer=_rambda.mergeDeepRight.call(void 0, n.options.devServer||{},{static:{directory:_path.resolve.call(void 0, e.distFolder)}})}}}),ie= exports.b =_unplugin.createUnplugin.call(void 0, t=>{let{hostOptions:e,mapRemotesToDownload:r}=l(t),o=w(e);return{name:"native-federation-tests/host",async writeBundle(){let s=Object.entries(r).map(o);await Promise.allSettled(s),console.log(_ansicolors2.default.green("Federated mocks extraction completed"))},get vite(){return process.env.NODE_ENV==="production"?void 0:{buildStart:this.writeBundle,watchChange:this.writeBundle}}}});exports.a = ne; exports.b = ie;
|
package/dist/chunk-TF5YWS3M.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import m from"ansi-colors";import{resolve as F}from"path";import{mergeDeepRight as v,mergeRight as N}from"rambda";import{build as P}from"tsup";import{createUnplugin as x}from"unplugin";var y={testsFolder:"@mf-tests",mocksFolder:"./__mocks__",deleteTestsFolder:!0,maxRetries:3},C=t=>{let e=t.split("@");return e[e.length-1]},b=(t,e)=>{let r=C(e),o=new URL(r),s=o.pathname.split("/").slice(0,-1).join("/");return o.pathname=`${s}/${t.testsFolder}.zip`,o.href},E=t=>Object.entries(t.moduleFederationConfig.remotes).reduce((e,[r,o])=>(e[r]=b(t,o),e),{}),l=t=>{if(!t.moduleFederationConfig)throw new Error("moduleFederationConfig is required");let e={...y,...t},r=E(e);return{hostOptions:e,mapRemotesToDownload:r}};import{existsSync as H}from"fs";import{join as d}from"path";var k={testsFolder:"@mf-tests",distFolder:"./dist",deleteTestsFolder:!0,additionalBundlerConfig:{}},U=["ts","tsx","js","jsx","mjs"],u=t=>{let e=process.cwd();for(let r of U){let o=d(e,`${t}.${r}`);if(H(o))return o}},T=t=>Object.entries(t.moduleFederationConfig.exposes).reduce((e,[r,o])=>(e[r]=u(o)||u(d(o,"index"))||o,e),{}),f=t=>{if(!t.moduleFederationConfig)throw new Error("moduleFederationConfig is required");let e={...k,...t},r=T(e),o=Object.keys(t.moduleFederationConfig.shared||{}).concat(Object.keys(t.moduleFederationConfig.remotes||{})),s=d(e.distFolder,e.testsFolder);return{remoteOptions:e,externalDeps:o,compiledFilesFolder:s,mapComponentsToExpose:r}};import g from"adm-zip";import R from"ansi-colors";import S from"axios";import{createHash as $}from"node:crypto";import{rm as j}from"node:fs/promises";import{join as h}from"node:path";var q=t=>h(t.distFolder,`${t.testsFolder}.zip`),O=async(t,e)=>{let r=new g;return r.addLocalFolder(e),r.writeZipPromise(q(t))},B=(t,e)=>r=>{throw{...r,message:`Network error: Unable to download federated mocks for '${t}' from '${e}' because '${r.message}'`}},a=async(t,e)=>{t.deleteTestsFolder&&await j(e,{recursive:!0,force:!0}).catch(r=>console.error(R.red(`Unable to remove tests folder, ${r}`)))},w=t=>{let e={},r={};return async([o,s])=>{e[s]=0;let n=h(t.mocksFolder,o);for(;e[s]++<t.maxRetries;)try{let i=await S.get(s,{responseType:"arraybuffer"}).catch(B(o,s)),c=Buffer.from(i.data),p=$("sha256").update(c).digest("hex");r[s]!==p&&(await a(t,n),new g(c).extractAllTo(n,!0),r[s]=p);break}catch(i){if(console.error(R.red(`Error during types archive download: ${(i==null?void 0:i.message)||"unknown error"}`)),e[s]>=t.maxRetries)throw i}}};var ne=x(t=>{let{remoteOptions:e,compiledFilesFolder:r,externalDeps:o,mapComponentsToExpose:s}=f(t);return{name:"native-federation-tests/remote",async writeBundle(){let n=N(e.additionalBundlerConfig,{external:o.map(i=>new RegExp(`^${i}`)),entry:s,outDir:r,silent:!0});try{await P(n),await O(e,r),await a(e,r),console.log(m.green("Federated mocks created correctly"))}catch(i){console.error(m.red(`Unable to build federated mocks: ${i}`))}},get vite(){return process.env.NODE_ENV==="production"?void 0:{buildStart:this.writeBundle,watchChange:this.writeBundle}},webpack(n){n.options.devServer=v(n.options.devServer||{},{static:{directory:F(e.distFolder)}})},rspack(n){n.options.devServer=v(n.options.devServer||{},{static:{directory:F(e.distFolder)}})}}}),ie=x(t=>{let{hostOptions:e,mapRemotesToDownload:r}=l(t),o=w(e);return{name:"native-federation-tests/host",async writeBundle(){let s=Object.entries(r).map(o);await Promise.allSettled(s),console.log(m.green("Federated mocks extraction completed"))},get vite(){return process.env.NODE_ENV==="production"?void 0:{buildStart:this.writeBundle,watchChange:this.writeBundle}}}});export{ne as a,ie as b};
|