zephyr-metro-plugin 0.0.0-canary-20250728214036 → 0.0.0-canary.29

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 (51) hide show
  1. package/README.md +325 -6
  2. package/TESTING.md +153 -0
  3. package/dist/README.md +325 -6
  4. package/dist/TESTING.md +153 -0
  5. package/dist/index.d.ts +2 -3
  6. package/dist/index.js +9 -4
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/internal/extract-mf-remotes.d.ts +3 -2
  9. package/dist/lib/internal/extract-mf-remotes.js +17 -7
  10. package/dist/lib/internal/extract-mf-remotes.js.map +1 -1
  11. package/dist/lib/internal/extract-modules-from-exposes.d.ts +12 -0
  12. package/dist/lib/internal/extract-modules-from-exposes.js +66 -0
  13. package/dist/lib/internal/extract-modules-from-exposes.js.map +1 -0
  14. package/dist/lib/internal/get-package-dependencies.d.ts +4 -0
  15. package/dist/lib/internal/get-package-dependencies.js +9 -0
  16. package/dist/lib/internal/get-package-dependencies.js.map +1 -0
  17. package/dist/lib/internal/load-static-entries.d.ts +7 -0
  18. package/dist/lib/internal/load-static-entries.js +39 -0
  19. package/dist/lib/internal/load-static-entries.js.map +1 -0
  20. package/dist/lib/internal/metro-build-stats.d.ts +4 -0
  21. package/dist/lib/internal/metro-build-stats.js +53 -0
  22. package/dist/lib/internal/metro-build-stats.js.map +1 -0
  23. package/dist/lib/internal/metro-errors.d.ts +5 -0
  24. package/dist/lib/internal/metro-errors.js +7 -0
  25. package/dist/lib/internal/metro-errors.js.map +1 -0
  26. package/dist/lib/internal/mutate-mf-config.js +5 -3
  27. package/dist/lib/internal/mutate-mf-config.js.map +1 -1
  28. package/dist/lib/internal/parse-shared-dependencies.d.ts +8 -0
  29. package/dist/lib/internal/parse-shared-dependencies.js +54 -0
  30. package/dist/lib/internal/parse-shared-dependencies.js.map +1 -0
  31. package/dist/lib/internal/types.d.ts +53 -0
  32. package/dist/lib/internal/types.js +3 -0
  33. package/dist/lib/internal/types.js.map +1 -0
  34. package/dist/lib/with-zephyr.d.ts +25 -0
  35. package/dist/lib/with-zephyr.js +143 -0
  36. package/dist/lib/with-zephyr.js.map +1 -0
  37. package/dist/lib/zephyr-metro-command-wrapper.d.ts +15 -3
  38. package/dist/lib/zephyr-metro-command-wrapper.js +4 -3
  39. package/dist/lib/zephyr-metro-command-wrapper.js.map +1 -1
  40. package/dist/lib/zephyr-metro-plugin.d.ts +1 -1
  41. package/dist/lib/zephyr-metro-plugin.js +40 -32
  42. package/dist/lib/zephyr-metro-plugin.js.map +1 -1
  43. package/dist/lib/zephyr-transformer.d.ts +16 -0
  44. package/dist/lib/zephyr-transformer.js +99 -0
  45. package/dist/lib/zephyr-transformer.js.map +1 -0
  46. package/dist/package.json +49 -20
  47. package/eslint.config.mjs +23 -0
  48. package/package.json +49 -19
  49. package/dist/lib/withZephyr.d.ts +0 -14
  50. package/dist/lib/withZephyr.js +0 -20
  51. package/dist/lib/withZephyr.js.map +0 -1
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.load_static_entries = load_static_entries;
4
+ const node_fs_1 = require("node:fs");
5
+ const node_path_1 = require("node:path");
6
+ const node_util_1 = require("node:util");
7
+ // Metro-compatible path normalization (replaces vite's normalizePath)
8
+ function normalizePath(path) {
9
+ return path.replace(/\\/g, '/');
10
+ }
11
+ async function load_static_entries(props) {
12
+ const { root } = props;
13
+ const publicAssets = [];
14
+ const root_dist_dir = (0, node_path_1.resolve)(root, props.outDir);
15
+ const loadDir = async (destDir) => {
16
+ for (const file of (0, node_fs_1.readdirSync)(destDir)) {
17
+ const destFile = (0, node_path_1.resolve)(destDir, file);
18
+ const stat = (0, node_fs_1.statSync)(destFile);
19
+ if (stat.isDirectory()) {
20
+ await loadDir(destFile);
21
+ continue;
22
+ }
23
+ const fileName = normalizePath((0, node_path_1.relative)(root_dist_dir, destFile));
24
+ publicAssets.push({
25
+ fileName,
26
+ name: file,
27
+ names: [file],
28
+ needsCodeReference: false,
29
+ source: await (0, node_util_1.promisify)(node_fs_1.readFile)(destFile),
30
+ type: 'asset',
31
+ originalFileName: file,
32
+ originalFileNames: [file],
33
+ });
34
+ }
35
+ };
36
+ await loadDir(root_dist_dir);
37
+ return publicAssets;
38
+ }
39
+ //# sourceMappingURL=load-static-entries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-static-entries.js","sourceRoot":"","sources":["../../../src/lib/internal/load-static-entries.ts"],"names":[],"mappings":";;AAeA,kDA+BC;AA9CD,qCAA0D;AAC1D,yCAA8C;AAC9C,yCAAsC;AAGtC,sEAAsE;AACtE,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAOM,KAAK,UAAU,mBAAmB,CACvC,KAA+B;IAE/B,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,MAAM,aAAa,GAAG,IAAA,mBAAO,EAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QACxC,KAAK,MAAM,IAAI,IAAI,IAAA,qBAAW,EAAC,OAAO,CAAC,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAA,oBAAQ,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;YAClE,YAAY,CAAC,IAAI,CAAC;gBAChB,QAAQ;gBACR,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,CAAC,IAAI,CAAC;gBACb,kBAAkB,EAAE,KAAK;gBACzB,MAAM,EAAE,MAAM,IAAA,qBAAS,EAAC,kBAAQ,CAAC,CAAC,QAAQ,CAAC;gBAC3C,IAAI,EAAE,OAAO;gBACb,gBAAgB,EAAE,IAAI;gBACtB,iBAAiB,EAAE,CAAC,IAAI,CAAC;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7B,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ZephyrEngine } from 'zephyr-agent';
2
+ import type { ZephyrBuildStats } from 'zephyr-edge-contract';
3
+ export declare function createMinimalBuildStats(zephyr_engine: ZephyrEngine): Promise<Partial<ZephyrBuildStats>>;
4
+ export declare function resolveCatalogDependencies(dependencies?: Record<string, string>): Record<string, string>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMinimalBuildStats = createMinimalBuildStats;
4
+ exports.resolveCatalogDependencies = resolveCatalogDependencies;
5
+ // Create minimal build stats for Metro builds
6
+ async function createMinimalBuildStats(zephyr_engine) {
7
+ const app = zephyr_engine.applicationProperties;
8
+ const { git } = zephyr_engine.gitProperties;
9
+ const { isCI } = zephyr_engine.env;
10
+ const version = (await zephyr_engine.snapshotId) || '0.0.0';
11
+ const application_uid = zephyr_engine.application_uid;
12
+ const buildId = (await zephyr_engine.build_id) || 'unknown';
13
+ const { EDGE_URL, PLATFORM, DELIMITER } = await zephyr_engine.application_configuration;
14
+ return {
15
+ id: application_uid,
16
+ name: app.name,
17
+ version,
18
+ project: app.name || 'unknown-project',
19
+ app: Object.assign({}, app, { buildId }),
20
+ git,
21
+ context: { isCI },
22
+ tags: [],
23
+ edge: { url: EDGE_URL, delimiter: DELIMITER },
24
+ platform: PLATFORM,
25
+ type: 'app',
26
+ environment: '',
27
+ default: false,
28
+ overrides: [],
29
+ modules: [],
30
+ consumes: [],
31
+ dependencies: [],
32
+ devDependencies: [],
33
+ optionalDependencies: [],
34
+ peerDependencies: [],
35
+ remotes: [],
36
+ };
37
+ }
38
+ // Simple catalog dependencies resolver for Metro
39
+ function resolveCatalogDependencies(dependencies = {}) {
40
+ const resolved = {};
41
+ for (const [name, version] of Object.entries(dependencies)) {
42
+ if (version.startsWith('catalog:')) {
43
+ // For Metro plugin, we'll just use a default version for catalog references
44
+ // In a real implementation, this would resolve from a catalog file
45
+ resolved[name] = '0.0.0';
46
+ }
47
+ else {
48
+ resolved[name] = version;
49
+ }
50
+ }
51
+ return resolved;
52
+ }
53
+ //# sourceMappingURL=metro-build-stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metro-build-stats.js","sourceRoot":"","sources":["../../../src/lib/internal/metro-build-stats.ts"],"names":[],"mappings":";;AAIA,0DAmCC;AAGD,gEAgBC;AAvDD,8CAA8C;AACvC,KAAK,UAAU,uBAAuB,CAC3C,aAA2B;IAE3B,MAAM,GAAG,GAAG,aAAa,CAAC,qBAAqB,CAAC;IAChD,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC;IAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC;IAEnC,MAAM,OAAO,GAAG,CAAC,MAAM,aAAa,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC;IAC5D,MAAM,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC;IACtD,MAAM,OAAO,GAAG,CAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;IAC5D,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,aAAa,CAAC,yBAAyB,CAAC;IAExF,OAAO;QACL,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO;QACP,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,iBAAiB;QACtC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAQ;QAC/C,GAAG;QACH,OAAO,EAAE,EAAE,IAAI,EAAE;QACjB,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE;QAC7C,QAAQ,EAAE,QAAe;QACzB,IAAI,EAAE,KAAY;QAClB,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,EAAE;QACnB,oBAAoB,EAAE,EAAE;QACxB,gBAAgB,EAAE,EAAE;QACpB,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,SAAgB,0BAA0B,CACxC,eAAuC,EAAE;IAEzC,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3D,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,4EAA4E;YAC5E,mEAAmE;YACnE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const ERR_MISSING_METRO_FEDERATION_CONFIG: {
2
+ readonly id: "023";
3
+ readonly message: "Library name {{library_name}} must be a valid identifier when using \"var\" as library type in Module Federation configuration. Either use a valid identifier (e. g. {base_identifier}) or use a different library type (e. g. type: 'global', which assign a property on the global scope instead of declaring a variable). To see a list of valid identifiers, please refer to:\n- Mozilla's documentation on identifiers: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#identifiers\n- The list of Module Federation's available library type: https://github.com/module-federation/core/blob/ae5ee1eedad4565774ea82e30b3d0df7c9921c58/webpack/declarations/WebpackOptions.d.ts#L112\n\nYou can change the library name to CamelCase to avoid this error.";
4
+ readonly kind: "build";
5
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERR_MISSING_METRO_FEDERATION_CONFIG = void 0;
4
+ const zephyr_agent_1 = require("zephyr-agent");
5
+ // Use existing error from zephyr-agent
6
+ exports.ERR_MISSING_METRO_FEDERATION_CONFIG = zephyr_agent_1.ZeErrors.ERR_INVALID_MF_CONFIG;
7
+ //# sourceMappingURL=metro-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metro-errors.js","sourceRoot":"","sources":["../../../src/lib/internal/metro-errors.ts"],"names":[],"mappings":";;;AAAA,+CAAwC;AAExC,uCAAuC;AAC1B,QAAA,mCAAmC,GAAG,uBAAQ,CAAC,qBAAqB,CAAC"}
@@ -2,8 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mutateMfConfig = mutateMfConfig;
4
4
  const zephyr_agent_1 = require("zephyr-agent");
5
- const zephyr_xpack_internal_1 = require("zephyr-xpack-internal");
6
- function mutateMfConfig(zephyr_engine, config, resolvedDependencyPairs, delegate_module_template = zephyr_xpack_internal_1.xpack_delegate_module_template) {
5
+ function mutateMfConfig(zephyr_engine, config, resolvedDependencyPairs, delegate_module_template) {
6
+ // Lazy load zephyr-xpack-internal to avoid static import
7
+ const { createMfRuntimeCode, xpack_delegate_module_template, } = require('zephyr-xpack-internal');
8
+ const template = delegate_module_template || xpack_delegate_module_template;
7
9
  if (!resolvedDependencyPairs?.length) {
8
10
  zephyr_agent_1.ze_log.mf(`No resolved dependency pairs found, skipping...`);
9
11
  return;
@@ -39,7 +41,7 @@ function mutateMfConfig(zephyr_engine, config, resolvedDependencyPairs, delegate
39
41
  }
40
42
  resolved_dep.name = remote_name;
41
43
  if (remotes[remote_name]) {
42
- remotes[remote_name] = (0, zephyr_xpack_internal_1.createMfRuntimeCode)(zephyr_engine, resolved_dep, delegate_module_template);
44
+ remotes[remote_name] = createMfRuntimeCode(zephyr_engine, resolved_dep, template);
43
45
  zephyr_agent_1.ze_log.mf(`Setting runtime code for remote: ${remotes}`);
44
46
  }
45
47
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mutate-mf-config.js","sourceRoot":"","sources":["../../../src/lib/internal/mutate-mf-config.ts"],"names":[],"mappings":";;AAQA,wCAsEC;AA7ED,+CAAsC;AAEtC,iEAG+B;AAE/B,SAAgB,cAAc,CAC5B,aAA2B,EAC3B,MAAyD,EACzD,uBAAsD,EACtD,2BAAsD,sDAA8B;IAEpF,IAAI,CAAC,uBAAuB,EAAE,MAAM,EAAE,CAAC;QACrC,qBAAM,CAAC,EAAE,CAAC,iDAAiD,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC;IAChC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,qBAAM,CAAC,EAAE,CACP,gCAAgC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EACjE,aAAa,CACd,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,MAAM,CAAC;QAE7C,IACE,CAAC,WAAW;YACZ,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,cAAc;YACf,OAAO,cAAc,KAAK,QAAQ,EAClC,CAAC;YACD,qBAAM,CAAC,EAAE,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAClF,OAAO;QACT,CAAC;QACD,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAC/C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,OAAO,KAAK,cAAc,CACpE,CAAC;QAEF,qBAAM,CAAC,EAAE,CAAC,gBAAgB,WAAW,qBAAqB,cAAc,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,qBAAM,CAAC,EAAE,CACP,kDAAkD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EACnF,aAAa,CACd,CAAC;YACF,OAAO;QACT,CAAC;QAED,0FAA0F;QAC1F,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC1C,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;YAC3B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAElB,qBAAM,CAAC,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;QAC7B,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,gBAAgB,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjF,qBAAM,CAAC,EAAE,CAAC,uCAAuC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC;QAEhC,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,WAAW,CAAC,GAAG,IAAA,2CAAmB,EACxC,aAAa,EACb,YAAY,EACZ,wBAAwB,CACzB,CAAC;YACF,qBAAM,CAAC,EAAE,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"mutate-mf-config.js","sourceRoot":"","sources":["../../../src/lib/internal/mutate-mf-config.ts"],"names":[],"mappings":";;AAIA,wCAwEC;AA3ED,+CAAsC;AAGtC,SAAgB,cAAc,CAC5B,aAA2B,EAC3B,MAAyD,EACzD,uBAAsD,EACtD,wBAAoD;IAEpD,yDAAyD;IACzD,MAAM,EACJ,mBAAmB,EACnB,8BAA8B,GAC/B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,wBAAwB,IAAI,8BAA8B,CAAC;IAC5E,IAAI,CAAC,uBAAuB,EAAE,MAAM,EAAE,CAAC;QACrC,qBAAM,CAAC,EAAE,CAAC,iDAAiD,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC;IAChC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,qBAAM,CAAC,EAAE,CACP,gCAAgC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EACjE,aAAa,CACd,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,MAAM,CAAC;QAE7C,IACE,CAAC,WAAW;YACZ,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,cAAc;YACf,OAAO,cAAc,KAAK,QAAQ,EAClC,CAAC;YACD,qBAAM,CAAC,EAAE,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAClF,OAAO;QACT,CAAC;QACD,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAC/C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,OAAO,KAAK,cAAc,CACpE,CAAC;QAEF,qBAAM,CAAC,EAAE,CAAC,gBAAgB,WAAW,qBAAqB,cAAc,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,qBAAM,CAAC,EAAE,CACP,kDAAkD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EACnF,aAAa,CACd,CAAC;YACF,OAAO;QACT,CAAC;QAED,0FAA0F;QAC1F,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC1C,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;YAC3B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAElB,qBAAM,CAAC,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;QAC7B,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,gBAAgB,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjF,qBAAM,CAAC,EAAE,CAAC,uCAAuC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC;QAEhC,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,WAAW,CAAC,GAAG,mBAAmB,CAAC,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YAClF,qBAAM,CAAC,EAAE,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ZephyrEngine } from 'zephyr-agent';
2
+ export declare function parseSharedDependencies(name: string, config: unknown, zephyr_engine: ZephyrEngine): {
3
+ id: string;
4
+ name: string;
5
+ version: string;
6
+ location: string;
7
+ applicationID: string;
8
+ };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseSharedDependencies = parseSharedDependencies;
4
+ const metro_build_stats_1 = require("./metro-build-stats");
5
+ function parseSharedDependencies(name, config, zephyr_engine) {
6
+ // Module Federation allows shared to be an object, array, or string
7
+ // Get version from package dependencies if available or from config
8
+ let version = '0.0.0';
9
+ if (zephyr_engine.npmProperties.dependencies?.[name]) {
10
+ // Resolve catalog reference in dependencies if present
11
+ const depVersion = zephyr_engine.npmProperties.dependencies[name];
12
+ version = depVersion.startsWith('catalog:')
13
+ ? (0, metro_build_stats_1.resolveCatalogDependencies)({ [name]: depVersion })[name]
14
+ : depVersion;
15
+ }
16
+ else if (zephyr_engine.npmProperties.peerDependencies?.[name]) {
17
+ // Resolve catalog reference in peer dependencies if present
18
+ const peerVersion = zephyr_engine.npmProperties.peerDependencies[name];
19
+ version = peerVersion.startsWith('catalog:')
20
+ ? (0, metro_build_stats_1.resolveCatalogDependencies)({ [name]: peerVersion })[name]
21
+ : peerVersion;
22
+ }
23
+ else if (typeof config === 'object' && config !== null) {
24
+ // Object format: { react: { requiredVersion: '18.0.0', singleton: true } }
25
+ if (config.requiredVersion) {
26
+ const reqVersion = config.requiredVersion;
27
+ if (reqVersion) {
28
+ version =
29
+ typeof reqVersion === 'string' && reqVersion.startsWith('catalog:')
30
+ ? (0, metro_build_stats_1.resolveCatalogDependencies)({ [name]: reqVersion })[name]
31
+ : reqVersion;
32
+ }
33
+ }
34
+ }
35
+ else if (typeof config === 'string') {
36
+ // String format: { react: '18.0.0' }
37
+ // Only use string value if we didn't find the package in dependencies
38
+ if (!zephyr_engine.npmProperties.dependencies?.[name] &&
39
+ !zephyr_engine.npmProperties.peerDependencies?.[name]) {
40
+ version = config.startsWith('catalog:')
41
+ ? (0, metro_build_stats_1.resolveCatalogDependencies)({ [name]: config })[name]
42
+ : config;
43
+ }
44
+ }
45
+ // Array format is also possible but doesn't typically include version info
46
+ return {
47
+ id: name,
48
+ name,
49
+ version,
50
+ location: name,
51
+ applicationID: name,
52
+ };
53
+ }
54
+ //# sourceMappingURL=parse-shared-dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-shared-dependencies.js","sourceRoot":"","sources":["../../../src/lib/internal/parse-shared-dependencies.ts"],"names":[],"mappings":";;AAIA,0DA4DC;AA/DD,2DAAiE;AAGjE,SAAgB,uBAAuB,CACrC,IAAY,EACZ,MAAe,EACf,aAA2B;IAQ3B,oEAAoE;IACpE,oEAAoE;IACpE,IAAI,OAAO,GAAG,OAAO,CAAC;IAEtB,IAAI,aAAa,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,uDAAuD;QACvD,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;YACzC,CAAC,CAAC,IAAA,8CAA0B,EAAC,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC;YAC1D,CAAC,CAAC,UAAU,CAAC;IACjB,CAAC;SAAM,IAAI,aAAa,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAChE,4DAA4D;QAC5D,MAAM,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvE,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC;YAC1C,CAAC,CAAC,IAAA,8CAA0B,EAAC,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC;YAC3D,CAAC,CAAC,WAAW,CAAC;IAClB,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACzD,2EAA2E;QAC3E,IAAK,MAAiC,CAAC,eAAe,EAAE,CAAC;YACvD,MAAM,UAAU,GAAI,MAAiC,CAAC,eAAe,CAAC;YAEtE,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;wBACjE,CAAC,CAAC,IAAA,8CAA0B,EAAC,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC;wBAC1D,CAAC,CAAC,UAAU,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtC,qCAAqC;QACrC,sEAAsE;QACtE,IACE,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC;YACjD,CAAC,aAAa,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,EACrD,CAAC;YACD,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;gBACrC,CAAC,CAAC,IAAA,8CAA0B,EAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;gBACtD,CAAC,CAAC,MAAM,CAAC;QACb,CAAC;IACH,CAAC;IACD,2EAA2E;IAE3E,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI;QACJ,OAAO;QACP,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,IAAI;KACpB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,53 @@
1
+ export interface OutputAsset {
2
+ fileName: string;
3
+ name: string;
4
+ names: string[];
5
+ needsCodeReference: boolean;
6
+ source: string | Uint8Array;
7
+ type: 'asset';
8
+ originalFileName: string;
9
+ originalFileNames: string[];
10
+ }
11
+ export interface XFederatedSharedConfig {
12
+ singleton?: boolean;
13
+ requiredVersion?: string;
14
+ version?: string;
15
+ eager?: boolean;
16
+ libraryName?: string;
17
+ }
18
+ export interface XAdditionalSharedConfig {
19
+ libraryName: string;
20
+ sharedConfig?: {
21
+ singleton?: boolean;
22
+ requiredVersion?: string;
23
+ };
24
+ }
25
+ export interface XFederatedConfig {
26
+ name: string;
27
+ library?: {
28
+ type?: string;
29
+ } | any;
30
+ shared?: Record<string, string | XFederatedSharedConfig> | string[] | any;
31
+ remotes?: (string | RemotesObject)[] | RemotesObject | any;
32
+ exposes?: Record<string, string | {
33
+ import: string;
34
+ } | any> | any;
35
+ filename?: string;
36
+ bundle_name?: string;
37
+ additionalShared?: string[] | Record<string, string | XFederatedSharedConfig> | XAdditionalSharedConfig[] | any;
38
+ }
39
+ export interface ModuleFederationPlugin {
40
+ apply: (compiler: unknown) => void;
41
+ _options?: XFederatedConfig | {
42
+ config: XFederatedConfig;
43
+ };
44
+ config?: XFederatedConfig;
45
+ }
46
+ interface RemotesObject {
47
+ [index: string]: string | RemotesConfig | string[];
48
+ }
49
+ interface RemotesConfig {
50
+ external: string | string[];
51
+ shareScope?: string;
52
+ }
53
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/internal/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import type { ConfigT } from 'metro-config';
2
+ export interface ZephyrMetroOptions {
3
+ /** Application name */
4
+ name?: string;
5
+ /** Remote dependencies configuration */
6
+ remotes?: Record<string, string>;
7
+ /** Target platform */
8
+ target?: 'ios' | 'android';
9
+ /** Custom manifest endpoint path (default: /zephyr-manifest.json) */
10
+ manifestPath?: string;
11
+ /** Custom entry file patterns for runtime injection (more conservative targeting) */
12
+ entryFiles?: string[];
13
+ /** Throw an error if manifest generation fails (default: false - logs warning only) */
14
+ failOnManifestError?: boolean;
15
+ }
16
+ export interface ZephyrModuleFederationConfig {
17
+ name: string;
18
+ exposes?: Record<string, string>;
19
+ remotes?: Record<string, string>;
20
+ shared?: Record<string, any>;
21
+ }
22
+ /** Metro plugin configuration function for Zephyr */
23
+ export declare function withZephyr(zephyrOptions?: ZephyrMetroOptions): (metroConfig: ConfigT) => Promise<ConfigT>;
24
+ /** Legacy function name for backward compatibility */
25
+ export declare const withZephyrMetro: typeof withZephyr;
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withZephyrMetro = void 0;
4
+ exports.withZephyr = withZephyr;
5
+ const tslib_1 = require("tslib");
6
+ const zephyr_agent_1 = require("zephyr-agent");
7
+ const path_1 = tslib_1.__importDefault(require("path"));
8
+ const fs_1 = tslib_1.__importDefault(require("fs"));
9
+ /** Metro plugin configuration function for Zephyr */
10
+ function withZephyr(zephyrOptions = {}) {
11
+ return async (metroConfig) => {
12
+ try {
13
+ return await applyZephyrToMetroConfig(metroConfig, zephyrOptions);
14
+ }
15
+ catch (error) {
16
+ (0, zephyr_agent_1.handleGlobalError)(error);
17
+ return metroConfig; // Return original config on error
18
+ }
19
+ };
20
+ }
21
+ async function applyZephyrToMetroConfig(metroConfig, zephyrOptions) {
22
+ const projectRoot = metroConfig.projectRoot || process.cwd();
23
+ const manifestPath = zephyrOptions.manifestPath || '/zephyr-manifest.json';
24
+ // Initialize Zephyr Engine
25
+ const zephyr_engine = await zephyr_agent_1.ZephyrEngine.create({
26
+ builder: 'metro',
27
+ context: projectRoot,
28
+ });
29
+ if (zephyrOptions.target) {
30
+ zephyr_engine.env.target = zephyrOptions.target;
31
+ }
32
+ // Extract remote dependencies from zephyr options
33
+ const dependencyPairs = extractMetroRemoteDependencies(zephyrOptions.remotes || {});
34
+ // Resolve dependencies through Zephyr
35
+ const resolved_dependencies = await zephyr_engine.resolve_remote_dependencies(dependencyPairs);
36
+ // Enhanced metro config with Zephyr transformer options
37
+ const zephyrTransformerOptions = {
38
+ manifestPath,
39
+ entryFiles: zephyrOptions.entryFiles,
40
+ };
41
+ const enhancedConfig = {
42
+ ...metroConfig,
43
+ transformer: {
44
+ ...metroConfig.transformer,
45
+ babelTransformerPath: require.resolve('./zephyr-transformer'),
46
+ // Pass zephyr options to transformer via extra data
47
+ ...metroConfig.transformer,
48
+ zephyrTransformerOptions,
49
+ },
50
+ resolver: {
51
+ ...metroConfig.resolver,
52
+ // Add Zephyr-specific resolution logic
53
+ resolverMainFields: [
54
+ ...(metroConfig.resolver?.resolverMainFields || [
55
+ 'react-native',
56
+ 'browser',
57
+ 'main',
58
+ ]),
59
+ 'zephyr',
60
+ ],
61
+ },
62
+ server: {
63
+ ...metroConfig.server,
64
+ // Enhance server with manifest endpoint
65
+ enhanceMiddleware: (middleware, server) => {
66
+ // Get the base middleware (either enhanced or original)
67
+ const baseMiddleware = metroConfig.server?.enhanceMiddleware
68
+ ? metroConfig.server.enhanceMiddleware(middleware, server)
69
+ : middleware;
70
+ // Return a new middleware that intercepts manifest requests
71
+ return (req, res, next) => {
72
+ // Check if this is a manifest request
73
+ const url = req.url?.split('?')[0]; // Remove query string
74
+ if (url === manifestPath) {
75
+ try {
76
+ const manifestContent = (0, zephyr_agent_1.createManifestContent)(resolved_dependencies || []);
77
+ res.setHeader('Content-Type', 'application/json');
78
+ res.setHeader('Cache-Control', 'no-cache');
79
+ res.end(manifestContent);
80
+ return;
81
+ }
82
+ catch (error) {
83
+ (0, zephyr_agent_1.handleGlobalError)(error);
84
+ res.statusCode = 500;
85
+ res.setHeader('Content-Type', 'application/json');
86
+ res.end(JSON.stringify({ error: 'Failed to generate manifest' }));
87
+ return;
88
+ }
89
+ }
90
+ // Pass through to base middleware
91
+ return baseMiddleware(req, res, next);
92
+ };
93
+ },
94
+ },
95
+ };
96
+ // Generate manifest file for production builds
97
+ const manifestGenerated = await generateManifestFile(projectRoot, manifestPath, resolved_dependencies || []);
98
+ if (!manifestGenerated) {
99
+ const errorMessage = 'Manifest file generation failed - runtime updates may not work correctly';
100
+ if (zephyrOptions.failOnManifestError) {
101
+ throw new zephyr_agent_1.ZephyrError(zephyr_agent_1.ZeErrors.ERR_UNKNOWN, { message: errorMessage });
102
+ }
103
+ zephyr_agent_1.ze_log.error(errorMessage);
104
+ }
105
+ zephyr_agent_1.ze_log.app('Zephyr Metro plugin configured successfully');
106
+ return enhancedConfig;
107
+ }
108
+ /** Extract remote dependencies from Metro configuration */
109
+ function extractMetroRemoteDependencies(remotes) {
110
+ return Object.entries(remotes).map(([name, url]) => {
111
+ // Parse remote URL - could be just URL or name@url format
112
+ const [remoteName, remoteUrl] = url.includes('@') ? url.split('@') : [name, url];
113
+ return {
114
+ name: remoteName,
115
+ version: 'latest', // Metro doesn't have version concept like webpack MF
116
+ remote_url: remoteUrl,
117
+ };
118
+ });
119
+ }
120
+ /** Generate zephyr-manifest.json file - returns true on success, false on failure */
121
+ async function generateManifestFile(projectRoot, manifestEndpoint, resolved_dependencies) {
122
+ try {
123
+ const manifestContent = (0, zephyr_agent_1.createManifestContent)(resolved_dependencies);
124
+ // Convert endpoint path to filename (e.g., /zephyr-manifest.json -> zephyr-manifest.json)
125
+ const manifestFilename = manifestEndpoint.replace(/^\//, '');
126
+ const manifestFilePath = path_1.default.join(projectRoot, 'assets', manifestFilename);
127
+ // Ensure assets directory exists
128
+ const assetsDir = path_1.default.dirname(manifestFilePath);
129
+ if (!fs_1.default.existsSync(assetsDir)) {
130
+ fs_1.default.mkdirSync(assetsDir, { recursive: true });
131
+ }
132
+ await fs_1.default.promises.writeFile(manifestFilePath, manifestContent, 'utf-8');
133
+ zephyr_agent_1.ze_log.manifest(`Generated manifest at: ${manifestFilePath}`);
134
+ return true;
135
+ }
136
+ catch (error) {
137
+ zephyr_agent_1.ze_log.error(`Failed to generate manifest file: ${zephyr_agent_1.ZephyrError.format(error)}`);
138
+ return false;
139
+ }
140
+ }
141
+ /** Legacy function name for backward compatibility */
142
+ exports.withZephyrMetro = withZephyr;
143
+ //# sourceMappingURL=with-zephyr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-zephyr.js","sourceRoot":"","sources":["../../src/lib/with-zephyr.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,19 @@
1
+ import { type Platform } from 'zephyr-agent';
2
+ import type { ZephyrPluginOptions } from 'zephyr-edge-contract';
1
3
  export type MetroConfig = Record<string, unknown>;
2
- export type MetroFederationConfig = Record<string, unknown>;
3
- export declare function zephyrCommandWrapper(bundleFederatedRemote: (...args: any[]) => Promise<any>, loadMetroConfig: (config: MetroConfig, options: {
4
+ export type MetroFederationConfig = Pick<ZephyrPluginOptions, 'mfConfig'>['mfConfig'];
5
+ interface MetroBundleOptions {
6
+ mode: string;
7
+ platform: Platform;
8
+ }
9
+ interface MetroConfigOptions extends MetroConfig {
10
+ root: string;
11
+ }
12
+ interface MetroCliOptions {
4
13
  maxWorkers?: number;
5
14
  resetCache?: boolean;
6
15
  config?: string;
7
- }) => Promise<any>, updateManifest: () => void): Promise<(...args: any[]) => Promise<any>>;
16
+ }
17
+ type MetroCommandArgs = [[MetroBundleOptions], MetroConfigOptions, MetroCliOptions];
18
+ export declare function zephyrCommandWrapper(bundleFederatedRemote: (...args: MetroCommandArgs) => Promise<any>, loadMetroConfig: (config: MetroConfig, options: MetroCliOptions) => Promise<any>, updateManifest: () => void): Promise<(args_0: [MetroBundleOptions], args_1: MetroConfigOptions, args_2: MetroCliOptions) => Promise<any>>;
19
+ export {};
@@ -2,13 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.zephyrCommandWrapper = zephyrCommandWrapper;
4
4
  const zephyr_agent_1 = require("zephyr-agent");
5
+ const metro_errors_1 = require("./internal/metro-errors");
5
6
  const zephyr_metro_plugin_1 = require("./zephyr-metro-plugin");
6
7
  async function zephyrCommandWrapper(bundleFederatedRemote, loadMetroConfig, updateManifest) {
7
8
  return async (...args) => {
8
9
  try {
9
10
  // before build
10
- const isDev = args[0][0]['mode'];
11
- const platform = args[0][0]['platform'];
11
+ const isDev = args[0][0].mode;
12
+ const platform = args[0][0].platform;
12
13
  const context = args[1].root;
13
14
  await loadMetroConfig(args[1], {
14
15
  maxWorkers: args[2].maxWorkers,
@@ -16,7 +17,7 @@ async function zephyrCommandWrapper(bundleFederatedRemote, loadMetroConfig, upda
16
17
  config: args[2].config,
17
18
  });
18
19
  if (!global.__METRO_FEDERATION_CONFIG) {
19
- throw new zephyr_agent_1.ZephyrError(zephyr_agent_1.ZeErrors.ERR_MISSING_METRO_FEDERATION_CONFIG);
20
+ throw new zephyr_agent_1.ZephyrError(metro_errors_1.ERR_MISSING_METRO_FEDERATION_CONFIG);
20
21
  }
21
22
  const zephyrMetroPlugin = new zephyr_metro_plugin_1.ZephyrMetroPlugin({
22
23
  platform,
@@ -1 +1 @@
1
- {"version":3,"file":"zephyr-metro-command-wrapper.js","sourceRoot":"","sources":["../../src/lib/zephyr-metro-command-wrapper.ts"],"names":[],"mappings":";;AAMA,oDAiDC;AAvDD,+CAAqD;AACrD,+DAA0D;AAKnD,KAAK,UAAU,oBAAoB,CACxC,qBAAuD,EACvD,eAGiB,EACjB,cAA0B;IAE1B,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,eAAe;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAExC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE7B,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC7B,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU;gBAC9B,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU;gBAC9B,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,IAAI,CAAE,MAAc,CAAC,yBAAyB,EAAE,CAAC;gBAC/C,MAAM,IAAI,0BAAW,CAAC,uBAAQ,CAAC,mCAAmC,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,iBAAiB,GAAG,IAAI,uCAAiB,CAAC;gBAC9C,QAAQ;gBACR,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;gBAC1C,OAAO;gBACP,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAG,MAAc,CAAC,yBAAyB;aACpD,CAAC,CAAC;YAEH,MAAM,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAEtC,cAAc,EAAE,CAAC;YAEjB,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,GAAG,IAAI,CAAC,CAAC;YAEjD,MAAM,iBAAiB,CAAC,UAAU,EAAE,CAAC;YAErC,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,0BAAW,CAAC,uBAAQ,CAAC,WAAW,EAAE;gBAC1C,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"zephyr-metro-command-wrapper.js","sourceRoot":"","sources":["../../src/lib/zephyr-metro-command-wrapper.ts"],"names":[],"mappings":";;AAyBA,oDA8CC;AAvED,+CAAoE;AAEpE,0DAA8E;AAC9E,+DAA0D;AAsBnD,KAAK,UAAU,oBAAoB,CACxC,qBAAkE,EAClE,eAAgF,EAChF,cAA0B;IAE1B,OAAO,KAAK,EAAE,GAAG,IAAsB,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,eAAe;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAErC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE7B,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC7B,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU;gBAC9B,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU;gBAC9B,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,IAAI,CAAE,MAAc,CAAC,yBAAyB,EAAE,CAAC;gBAC/C,MAAM,IAAI,0BAAW,CAAC,kDAAmC,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,iBAAiB,GAAG,IAAI,uCAAiB,CAAC;gBAC9C,QAAQ;gBACR,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;gBAC1C,OAAO;gBACP,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAG,MAAc,CAAC,yBAAyB;aACpD,CAAC,CAAC;YAEH,MAAM,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAEtC,cAAc,EAAE,CAAC;YAEjB,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,GAAG,IAAI,CAAC,CAAC;YAEjD,MAAM,iBAAiB,CAAC,UAAU,EAAE,CAAC;YAErC,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,0BAAW,CAAC,uBAAQ,CAAC,WAAW,EAAE;gBAC1C,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -9,7 +9,7 @@ export interface ZephyrCommandWrapperConfig {
9
9
  mfConfig: Pick<ZephyrPluginOptions, 'mfConfig'>['mfConfig'];
10
10
  }
11
11
  export declare class ZephyrMetroPlugin {
12
- private config;
12
+ #private;
13
13
  zephyr_engine: ZephyrEngine;
14
14
  constructor(props: ZephyrCommandWrapperConfig);
15
15
  beforeBuild(): Promise<{