every-plugin 2.10.1 → 3.0.0-rc.3
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/bin/every-plugin-serve.mjs +12 -0
- package/bin/every-plugin.mjs +59 -0
- package/dist/_virtual/_rolldown/runtime.cjs +1 -2
- package/dist/build/artifact-names.cjs +119 -0
- package/dist/build/artifact-names.cjs.map +1 -0
- package/dist/build/artifact-names.d.cts +68 -0
- package/dist/build/artifact-names.d.cts.map +1 -0
- package/dist/build/artifact-names.d.mts +68 -0
- package/dist/build/artifact-names.d.mts.map +1 -0
- package/dist/build/artifact-names.mjs +102 -0
- package/dist/build/artifact-names.mjs.map +1 -0
- package/dist/build/contract-types.cjs +89 -0
- package/dist/build/contract-types.cjs.map +1 -0
- package/dist/build/contract-types.mjs +81 -0
- package/dist/build/contract-types.mjs.map +1 -0
- package/dist/build/rspack/build-report-plugin.cjs +37 -0
- package/dist/build/rspack/build-report-plugin.cjs.map +1 -0
- package/dist/build/rspack/build-report-plugin.d.cts +18 -0
- package/dist/build/rspack/build-report-plugin.d.cts.map +1 -0
- package/dist/build/rspack/build-report-plugin.d.mts +18 -0
- package/dist/build/rspack/build-report-plugin.d.mts.map +1 -0
- package/dist/build/rspack/build-report-plugin.mjs +37 -0
- package/dist/build/rspack/build-report-plugin.mjs.map +1 -0
- package/dist/build/rspack/chunk-completeness-plugin.cjs +47 -0
- package/dist/build/rspack/chunk-completeness-plugin.cjs.map +1 -0
- package/dist/build/rspack/chunk-completeness-plugin.mjs +47 -0
- package/dist/build/rspack/chunk-completeness-plugin.mjs.map +1 -0
- package/dist/build/rspack/compose.cjs +69 -0
- package/dist/build/rspack/compose.cjs.map +1 -0
- package/dist/build/rspack/compose.d.cts +20 -0
- package/dist/build/rspack/compose.d.cts.map +1 -0
- package/dist/build/rspack/compose.d.mts +20 -0
- package/dist/build/rspack/compose.d.mts.map +1 -0
- package/dist/build/rspack/compose.mjs +65 -0
- package/dist/build/rspack/compose.mjs.map +1 -0
- package/dist/build/rspack/fix-mf-data-uri-plugin.cjs +11 -11
- package/dist/build/rspack/fix-mf-data-uri-plugin.cjs.map +1 -1
- package/dist/build/rspack/fix-mf-data-uri-plugin.d.cts +2 -0
- package/dist/build/rspack/fix-mf-data-uri-plugin.d.cts.map +1 -1
- package/dist/build/rspack/fix-mf-data-uri-plugin.d.mts +2 -0
- package/dist/build/rspack/fix-mf-data-uri-plugin.d.mts.map +1 -1
- package/dist/build/rspack/fix-mf-data-uri-plugin.mjs +11 -10
- package/dist/build/rspack/fix-mf-data-uri-plugin.mjs.map +1 -1
- package/dist/build/rspack/generated-config.cjs +35 -0
- package/dist/build/rspack/generated-config.cjs.map +1 -0
- package/dist/build/rspack/generated-config.mjs +32 -0
- package/dist/build/rspack/generated-config.mjs.map +1 -0
- package/dist/build/rspack/index.cjs +8 -5
- package/dist/build/rspack/index.d.cts +5 -3
- package/dist/build/rspack/index.d.mts +5 -3
- package/dist/build/rspack/index.mjs +5 -3
- package/dist/build/rspack/module-federation.cjs +2 -2
- package/dist/build/rspack/module-federation.cjs.map +1 -1
- package/dist/build/rspack/module-federation.mjs +1 -1
- package/dist/build/rspack/module-federation.mjs.map +1 -1
- package/dist/build/rspack/plugin.cjs +44 -69
- package/dist/build/rspack/plugin.cjs.map +1 -1
- package/dist/build/rspack/plugin.d.cts +4 -13
- package/dist/build/rspack/plugin.d.cts.map +1 -1
- package/dist/build/rspack/plugin.d.mts +4 -13
- package/dist/build/rspack/plugin.d.mts.map +1 -1
- package/dist/build/rspack/plugin.mjs +44 -69
- package/dist/build/rspack/plugin.mjs.map +1 -1
- package/dist/build/rspack/utils.cjs +7 -5
- package/dist/build/rspack/utils.cjs.map +1 -1
- package/dist/build/rspack/utils.mjs +7 -6
- package/dist/build/rspack/utils.mjs.map +1 -1
- package/dist/build/ui/factory.cjs +88 -0
- package/dist/build/ui/factory.cjs.map +1 -0
- package/dist/build/ui/factory.d.cts +11 -0
- package/dist/build/ui/factory.d.cts.map +1 -0
- package/dist/build/ui/factory.d.mts +11 -0
- package/dist/build/ui/factory.d.mts.map +1 -0
- package/dist/build/ui/factory.mjs +80 -0
- package/dist/build/ui/factory.mjs.map +1 -0
- package/dist/build/ui/generated-config.cjs +118 -0
- package/dist/build/ui/generated-config.cjs.map +1 -0
- package/dist/build/ui/generated-config.d.cts +33 -0
- package/dist/build/ui/generated-config.d.cts.map +1 -0
- package/dist/build/ui/generated-config.d.mts +33 -0
- package/dist/build/ui/generated-config.d.mts.map +1 -0
- package/dist/build/ui/generated-config.mjs +111 -0
- package/dist/build/ui/generated-config.mjs.map +1 -0
- package/dist/build/ui/hash-artifacts-plugin.cjs +61 -0
- package/dist/build/ui/hash-artifacts-plugin.cjs.map +1 -0
- package/dist/build/ui/hash-artifacts-plugin.d.cts +20 -0
- package/dist/build/ui/hash-artifacts-plugin.d.cts.map +1 -0
- package/dist/build/ui/hash-artifacts-plugin.d.mts +20 -0
- package/dist/build/ui/hash-artifacts-plugin.d.mts.map +1 -0
- package/dist/build/ui/hash-artifacts-plugin.mjs +58 -0
- package/dist/build/ui/hash-artifacts-plugin.mjs.map +1 -0
- package/dist/build/ui/index.cjs +90 -0
- package/dist/build/ui/index.cjs.map +1 -0
- package/dist/build/ui/index.d.cts +29 -0
- package/dist/build/ui/index.d.cts.map +1 -0
- package/dist/build/ui/index.d.mts +29 -0
- package/dist/build/ui/index.d.mts.map +1 -0
- package/dist/build/ui/index.mjs +68 -0
- package/dist/build/ui/index.mjs.map +1 -0
- package/dist/build/ui/manifest-plugin.cjs +37 -0
- package/dist/build/ui/manifest-plugin.cjs.map +1 -0
- package/dist/build/ui/manifest-plugin.d.cts +19 -0
- package/dist/build/ui/manifest-plugin.d.cts.map +1 -0
- package/dist/build/ui/manifest-plugin.d.mts +19 -0
- package/dist/build/ui/manifest-plugin.d.mts.map +1 -0
- package/dist/build/ui/manifest-plugin.mjs +37 -0
- package/dist/build/ui/manifest-plugin.mjs.map +1 -0
- package/dist/build/ui/rsbuild-config.cjs +203 -0
- package/dist/build/ui/rsbuild-config.cjs.map +1 -0
- package/dist/build/ui/rsbuild-config.d.cts +45 -0
- package/dist/build/ui/rsbuild-config.d.cts.map +1 -0
- package/dist/build/ui/rsbuild-config.d.mts +45 -0
- package/dist/build/ui/rsbuild-config.d.mts.map +1 -0
- package/dist/build/ui/rsbuild-config.mjs +200 -0
- package/dist/build/ui/rsbuild-config.mjs.map +1 -0
- package/dist/build/ui/stubs.cjs +107 -0
- package/dist/build/ui/stubs.cjs.map +1 -0
- package/dist/build/ui/stubs.d.cts +25 -0
- package/dist/build/ui/stubs.d.cts.map +1 -0
- package/dist/build/ui/stubs.d.mts +25 -0
- package/dist/build/ui/stubs.d.mts.map +1 -0
- package/dist/build/ui/stubs.mjs +106 -0
- package/dist/build/ui/stubs.mjs.map +1 -0
- package/dist/cli.cjs +83 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.d.cts +6 -0
- package/dist/cli.d.cts.map +1 -0
- package/dist/cli.d.mts +6 -0
- package/dist/cli.d.mts.map +1 -0
- package/dist/cli.mjs +82 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/dev/serve.cjs +390 -0
- package/dist/dev/serve.cjs.map +1 -0
- package/dist/dev/serve.d.cts +23 -0
- package/dist/dev/serve.d.cts.map +1 -0
- package/dist/dev/serve.d.mts +23 -0
- package/dist/dev/serve.d.mts.map +1 -0
- package/dist/dev/serve.mjs +384 -0
- package/dist/dev/serve.mjs.map +1 -0
- package/dist/dev/watch-kill.cjs +39 -0
- package/dist/dev/watch-kill.cjs.map +1 -0
- package/dist/dev/watch-kill.mjs +38 -0
- package/dist/dev/watch-kill.mjs.map +1 -0
- package/dist/effect-helpers.cjs +23 -0
- package/dist/effect-helpers.cjs.map +1 -0
- package/dist/effect-helpers.d.cts +20 -0
- package/dist/effect-helpers.d.cts.map +1 -0
- package/dist/effect-helpers.d.mts +20 -0
- package/dist/effect-helpers.d.mts.map +1 -0
- package/dist/effect-helpers.mjs +22 -0
- package/dist/effect-helpers.mjs.map +1 -0
- package/dist/errors.cjs +50 -69
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.cts +13 -96
- package/dist/errors.d.cts.map +1 -1
- package/dist/errors.d.mts +13 -96
- package/dist/errors.d.mts.map +1 -1
- package/dist/errors.mjs +16 -34
- package/dist/errors.mjs.map +1 -1
- package/dist/identity.cjs +19 -0
- package/dist/identity.cjs.map +1 -0
- package/dist/identity.d.cts +33 -0
- package/dist/identity.d.cts.map +1 -0
- package/dist/identity.d.mts +33 -0
- package/dist/identity.d.mts.map +1 -0
- package/dist/identity.mjs +16 -0
- package/dist/identity.mjs.map +1 -0
- package/dist/index.cjs +9 -5
- package/dist/index.d.cts +8 -6
- package/dist/index.d.mts +8 -6
- package/dist/index.mjs +6 -4
- package/dist/plugin.cjs +13 -26
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.cts +57 -24
- package/dist/plugin.d.cts.map +1 -1
- package/dist/plugin.d.mts +58 -25
- package/dist/plugin.d.mts.map +1 -1
- package/dist/plugin.mjs +16 -29
- package/dist/plugin.mjs.map +1 -1
- package/dist/remote-entry.cjs +103 -0
- package/dist/remote-entry.cjs.map +1 -0
- package/dist/remote-entry.d.cts +53 -0
- package/dist/remote-entry.d.cts.map +1 -0
- package/dist/remote-entry.d.mts +53 -0
- package/dist/remote-entry.d.mts.map +1 -0
- package/dist/remote-entry.mjs +98 -0
- package/dist/remote-entry.mjs.map +1 -0
- package/dist/runtime/errors.cjs +159 -33
- package/dist/runtime/errors.cjs.map +1 -1
- package/dist/runtime/errors.d.cts +64 -7
- package/dist/runtime/errors.d.cts.map +1 -1
- package/dist/runtime/errors.d.mts +64 -7
- package/dist/runtime/errors.d.mts.map +1 -1
- package/dist/runtime/errors.mjs +154 -30
- package/dist/runtime/errors.mjs.map +1 -1
- package/dist/runtime/index.cjs +95 -23
- package/dist/runtime/index.cjs.map +1 -1
- package/dist/runtime/index.d.cts +16 -0
- package/dist/runtime/index.d.cts.map +1 -1
- package/dist/runtime/index.d.mts +16 -0
- package/dist/runtime/index.d.mts.map +1 -1
- package/dist/runtime/index.mjs +98 -26
- package/dist/runtime/index.mjs.map +1 -1
- package/dist/runtime/mf-config.cjs +3 -78
- package/dist/runtime/mf-config.cjs.map +1 -1
- package/dist/runtime/mf-config.d.cts +3 -49
- package/dist/runtime/mf-config.d.cts.map +1 -1
- package/dist/runtime/mf-config.d.mts +3 -49
- package/dist/runtime/mf-config.d.mts.map +1 -1
- package/dist/runtime/mf-config.mjs +5 -78
- package/dist/runtime/mf-config.mjs.map +1 -1
- package/dist/runtime/services/module-federation.service.cjs +57 -12
- package/dist/runtime/services/module-federation.service.cjs.map +1 -1
- package/dist/runtime/services/module-federation.service.d.cts +4 -13
- package/dist/runtime/services/module-federation.service.d.mts +4 -13
- package/dist/runtime/services/module-federation.service.mjs +57 -14
- package/dist/runtime/services/module-federation.service.mjs.map +1 -1
- package/dist/runtime/services/normalize.cjs +2 -22
- package/dist/runtime/services/normalize.d.cts +2 -21
- package/dist/runtime/services/normalize.d.mts +2 -21
- package/dist/runtime/services/normalize.mjs +2 -21
- package/dist/runtime/services/plugin-lifecycle.service.cjs +9 -11
- package/dist/runtime/services/plugin-lifecycle.service.cjs.map +1 -1
- package/dist/runtime/services/plugin-lifecycle.service.d.cts +3 -16
- package/dist/runtime/services/plugin-lifecycle.service.d.mts +3 -16
- package/dist/runtime/services/plugin-lifecycle.service.mjs +10 -13
- package/dist/runtime/services/plugin-lifecycle.service.mjs.map +1 -1
- package/dist/runtime/services/plugin-loader.service.cjs +56 -30
- package/dist/runtime/services/plugin-loader.service.cjs.map +1 -1
- package/dist/runtime/services/plugin-loader.service.d.cts +6 -53
- package/dist/runtime/services/plugin-loader.service.d.mts +6 -53
- package/dist/runtime/services/plugin-loader.service.mjs +55 -31
- package/dist/runtime/services/plugin-loader.service.mjs.map +1 -1
- package/dist/runtime/services/plugin.service.cjs +10 -12
- package/dist/runtime/services/plugin.service.cjs.map +1 -1
- package/dist/runtime/services/plugin.service.d.cts +14 -36
- package/dist/runtime/services/plugin.service.d.cts.map +1 -1
- package/dist/runtime/services/plugin.service.d.mts +14 -36
- package/dist/runtime/services/plugin.service.d.mts.map +1 -1
- package/dist/runtime/services/plugin.service.mjs +14 -18
- package/dist/runtime/services/plugin.service.mjs.map +1 -1
- package/dist/runtime/services/secrets.service.cjs +12 -12
- package/dist/runtime/services/secrets.service.cjs.map +1 -1
- package/dist/runtime/services/secrets.service.d.cts +3 -15
- package/dist/runtime/services/secrets.service.d.mts +3 -15
- package/dist/runtime/services/secrets.service.mjs +12 -13
- package/dist/runtime/services/secrets.service.mjs.map +1 -1
- package/dist/runtime/services/shared-identity.cjs +40 -0
- package/dist/runtime/services/shared-identity.cjs.map +1 -0
- package/dist/runtime/services/shared-identity.mjs +38 -0
- package/dist/runtime/services/shared-identity.mjs.map +1 -0
- package/dist/runtime/validation.cjs +2 -2
- package/dist/runtime/validation.cjs.map +1 -1
- package/dist/runtime/validation.mjs +2 -2
- package/dist/runtime/validation.mjs.map +1 -1
- package/dist/shared-deps-spec.cjs +384 -0
- package/dist/shared-deps-spec.cjs.map +1 -0
- package/dist/shared-deps-spec.d.cts +182 -0
- package/dist/shared-deps-spec.d.cts.map +1 -0
- package/dist/shared-deps-spec.d.mts +182 -0
- package/dist/shared-deps-spec.d.mts.map +1 -0
- package/dist/shared-deps-spec.mjs +368 -0
- package/dist/shared-deps-spec.mjs.map +1 -0
- package/dist/types.d.cts +25 -41
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +25 -41
- package/dist/types.d.mts.map +1 -1
- package/dist/ui/manifest/construct.cjs +268 -0
- package/dist/ui/manifest/construct.cjs.map +1 -0
- package/dist/ui/manifest/construct.d.cts +48 -0
- package/dist/ui/manifest/construct.d.cts.map +1 -0
- package/dist/ui/manifest/construct.d.mts +48 -0
- package/dist/ui/manifest/construct.d.mts.map +1 -0
- package/dist/ui/manifest/construct.mjs +268 -0
- package/dist/ui/manifest/construct.mjs.map +1 -0
- package/dist/ui/manifest/contract.cjs +34 -0
- package/dist/ui/manifest/contract.cjs.map +1 -0
- package/dist/ui/manifest/contract.d.cts +26 -0
- package/dist/ui/manifest/contract.d.cts.map +1 -0
- package/dist/ui/manifest/contract.d.mts +26 -0
- package/dist/ui/manifest/contract.d.mts.map +1 -0
- package/dist/ui/manifest/contract.mjs +26 -0
- package/dist/ui/manifest/contract.mjs.map +1 -0
- package/dist/ui/manifest/descriptor.cjs +64 -0
- package/dist/ui/manifest/descriptor.cjs.map +1 -0
- package/dist/ui/manifest/descriptor.d.cts +60 -0
- package/dist/ui/manifest/descriptor.d.cts.map +1 -0
- package/dist/ui/manifest/descriptor.d.mts +60 -0
- package/dist/ui/manifest/descriptor.d.mts.map +1 -0
- package/dist/ui/manifest/descriptor.mjs +61 -0
- package/dist/ui/manifest/descriptor.mjs.map +1 -0
- package/dist/ui/manifest/generator.cjs +128 -0
- package/dist/ui/manifest/generator.cjs.map +1 -0
- package/dist/ui/manifest/generator.d.cts +41 -0
- package/dist/ui/manifest/generator.d.cts.map +1 -0
- package/dist/ui/manifest/generator.d.mts +41 -0
- package/dist/ui/manifest/generator.d.mts.map +1 -0
- package/dist/ui/manifest/generator.mjs +125 -0
- package/dist/ui/manifest/generator.mjs.map +1 -0
- package/dist/ui/manifest/index.cjs +35 -0
- package/dist/ui/manifest/index.d.cts +9 -0
- package/dist/ui/manifest/index.d.mts +9 -0
- package/dist/ui/manifest/index.mjs +9 -0
- package/dist/ui/manifest/manifest-schema.cjs +97 -0
- package/dist/ui/manifest/manifest-schema.cjs.map +1 -0
- package/dist/ui/manifest/manifest-schema.d.cts +132 -0
- package/dist/ui/manifest/manifest-schema.d.cts.map +1 -0
- package/dist/ui/manifest/manifest-schema.d.mts +132 -0
- package/dist/ui/manifest/manifest-schema.d.mts.map +1 -0
- package/dist/ui/manifest/manifest-schema.mjs +90 -0
- package/dist/ui/manifest/manifest-schema.mjs.map +1 -0
- package/dist/ui/manifest/mount-registry.cjs +52 -0
- package/dist/ui/manifest/mount-registry.cjs.map +1 -0
- package/dist/ui/manifest/mount-registry.d.cts +61 -0
- package/dist/ui/manifest/mount-registry.d.cts.map +1 -0
- package/dist/ui/manifest/mount-registry.d.mts +61 -0
- package/dist/ui/manifest/mount-registry.d.mts.map +1 -0
- package/dist/ui/manifest/mount-registry.mjs +48 -0
- package/dist/ui/manifest/mount-registry.mjs.map +1 -0
- package/dist/ui/manifest/nav.cjs +13 -0
- package/dist/ui/manifest/nav.cjs.map +1 -0
- package/dist/ui/manifest/nav.d.cts +34 -0
- package/dist/ui/manifest/nav.d.cts.map +1 -0
- package/dist/ui/manifest/nav.d.mts +34 -0
- package/dist/ui/manifest/nav.d.mts.map +1 -0
- package/dist/ui/manifest/nav.mjs +13 -0
- package/dist/ui/manifest/nav.mjs.map +1 -0
- package/dist/ui/manifest/route-config.cjs +33 -0
- package/dist/ui/manifest/route-config.cjs.map +1 -0
- package/dist/ui/manifest/route-config.d.cts +40 -0
- package/dist/ui/manifest/route-config.d.cts.map +1 -0
- package/dist/ui/manifest/route-config.d.mts +40 -0
- package/dist/ui/manifest/route-config.d.mts.map +1 -0
- package/dist/ui/manifest/route-config.mjs +33 -0
- package/dist/ui/manifest/route-config.mjs.map +1 -0
- package/dist/version-manifest.cjs +65 -0
- package/dist/version-manifest.cjs.map +1 -0
- package/dist/version-manifest.d.cts +52 -0
- package/dist/version-manifest.d.cts.map +1 -0
- package/dist/version-manifest.d.mts +52 -0
- package/dist/version-manifest.d.mts.map +1 -0
- package/dist/version-manifest.mjs +63 -0
- package/dist/version-manifest.mjs.map +1 -0
- package/package.json +165 -68
- package/skills/plugin-client/SKILL.md +24 -5
- package/skills/plugin-development/SKILL.md +79 -47
- package/skills/plugin-testing/SKILL.md +41 -12
- package/src/build/artifact-names.ts +117 -0
- package/src/build/contract-types.ts +101 -0
- package/src/build/rspack/build-report-plugin.ts +34 -0
- package/src/build/rspack/chunk-completeness-plugin.ts +57 -0
- package/src/build/rspack/compose.ts +87 -0
- package/src/build/rspack/fix-mf-data-uri-plugin.ts +23 -12
- package/src/build/rspack/generated-config.ts +35 -0
- package/src/build/rspack/index.ts +10 -5
- package/src/build/rspack/module-federation.ts +1 -1
- package/src/build/rspack/plugin.ts +103 -105
- package/src/build/rspack/utils.ts +8 -2
- package/src/build/ui/factory.ts +96 -0
- package/src/build/ui/generated-config.ts +133 -0
- package/src/build/ui/hash-artifacts-plugin.ts +79 -0
- package/src/build/ui/index.ts +98 -0
- package/src/build/ui/manifest-plugin.ts +54 -0
- package/src/build/ui/rsbuild-config.ts +256 -0
- package/src/build/ui/stubs.ts +103 -0
- package/src/cli.ts +100 -0
- package/src/dev/serve.ts +477 -0
- package/src/dev/watch-kill.ts +58 -0
- package/src/effect-helpers.ts +25 -0
- package/src/errors.ts +17 -18
- package/src/identity.ts +36 -0
- package/src/index.ts +4 -0
- package/src/plugin.ts +88 -91
- package/src/remote-entry.ts +171 -0
- package/src/runtime/errors.ts +229 -26
- package/src/runtime/index.ts +132 -43
- package/src/runtime/mf-config.ts +12 -107
- package/src/runtime/services/module-federation.service.ts +218 -117
- package/src/runtime/services/normalize.ts +1 -18
- package/src/runtime/services/plugin-lifecycle.service.ts +66 -75
- package/src/runtime/services/plugin-loader.service.ts +271 -212
- package/src/runtime/services/plugin.service.ts +61 -43
- package/src/runtime/services/secrets.service.ts +20 -15
- package/src/runtime/services/shared-identity.ts +68 -0
- package/src/runtime/validation.ts +5 -7
- package/src/shared-deps-spec.ts +478 -0
- package/src/types.ts +25 -48
- package/src/ui/manifest/construct.ts +403 -0
- package/src/ui/manifest/contract.ts +33 -0
- package/src/ui/manifest/descriptor.ts +96 -0
- package/src/ui/manifest/generator.ts +238 -0
- package/src/ui/manifest/index.ts +55 -0
- package/src/ui/manifest/manifest-schema.ts +107 -0
- package/src/ui/manifest/mount-registry.ts +50 -0
- package/src/ui/manifest/nav.ts +43 -0
- package/src/ui/manifest/route-config.ts +82 -0
- package/src/version-manifest.ts +88 -0
- package/dist/build/rspack/dev-server-middleware.cjs +0 -248
- package/dist/build/rspack/dev-server-middleware.cjs.map +0 -1
- package/dist/build/rspack/dev-server-middleware.mjs +0 -247
- package/dist/build/rspack/dev-server-middleware.mjs.map +0 -1
- package/dist/build/shared-deps.cjs +0 -83
- package/dist/build/shared-deps.cjs.map +0 -1
- package/dist/build/shared-deps.d.cts +0 -67
- package/dist/build/shared-deps.d.cts.map +0 -1
- package/dist/build/shared-deps.d.mts +0 -67
- package/dist/build/shared-deps.d.mts.map +0 -1
- package/dist/build/shared-deps.mjs +0 -79
- package/dist/build/shared-deps.mjs.map +0 -1
- package/dist/effect.cjs +0 -9
- package/dist/effect.d.cts +0 -1
- package/dist/effect.d.mts +0 -1
- package/dist/effect.mjs +0 -3
- package/dist/orpc-openapi.cjs +0 -17
- package/dist/orpc-openapi.d.cts +0 -2
- package/dist/orpc-openapi.d.mts +0 -2
- package/dist/orpc-openapi.mjs +0 -5
- package/dist/orpc.cjs +0 -46
- package/dist/orpc.d.cts +0 -7
- package/dist/orpc.d.mts +0 -7
- package/dist/orpc.mjs +0 -11
- package/dist/package.cjs +0 -23
- package/dist/package.cjs.map +0 -1
- package/dist/package.mjs +0 -17
- package/dist/package.mjs.map +0 -1
- package/dist/runtime/services/module-federation.service.d.cts.map +0 -1
- package/dist/runtime/services/module-federation.service.d.mts.map +0 -1
- package/dist/runtime/services/normalize.cjs.map +0 -1
- package/dist/runtime/services/normalize.d.cts.map +0 -1
- package/dist/runtime/services/normalize.d.mts.map +0 -1
- package/dist/runtime/services/normalize.mjs.map +0 -1
- package/dist/runtime/services/plugin-lifecycle.service.d.cts.map +0 -1
- package/dist/runtime/services/plugin-lifecycle.service.d.mts.map +0 -1
- package/dist/runtime/services/plugin-loader.service.d.cts.map +0 -1
- package/dist/runtime/services/plugin-loader.service.d.mts.map +0 -1
- package/dist/runtime/services/secrets.service.d.cts.map +0 -1
- package/dist/runtime/services/secrets.service.d.mts.map +0 -1
- package/dist/testing/index.cjs +0 -57
- package/dist/testing/index.cjs.map +0 -1
- package/dist/testing/index.d.cts +0 -54
- package/dist/testing/index.d.cts.map +0 -1
- package/dist/testing/index.d.mts +0 -54
- package/dist/testing/index.d.mts.map +0 -1
- package/dist/testing/index.mjs +0 -55
- package/dist/testing/index.mjs.map +0 -1
- package/dist/zod-core.cjs +0 -9
- package/dist/zod-core.d.cts +0 -1
- package/dist/zod-core.d.mts +0 -1
- package/dist/zod-core.mjs +0 -3
- package/dist/zod.cjs +0 -11
- package/dist/zod.d.cts +0 -2
- package/dist/zod.d.mts +0 -2
- package/dist/zod.mjs +0 -3
- package/src/build/rspack/dev-server-middleware.ts +0 -324
- package/src/build/shared-deps.ts +0 -102
- package/src/effect.ts +0 -1
- package/src/orpc-openapi.ts +0 -2
- package/src/orpc.ts +0 -9
- package/src/testing/index.ts +0 -87
- package/src/testing/mocks/module-federation.service.ts +0 -41
- package/src/zod-core.ts +0 -1
- package/src/zod.ts +0 -3
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
import { Data } from "effect";
|
|
3
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
4
|
+
import { dirname, join, resolve } from "node:path";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
|
|
7
|
+
//#region src/shared-deps-spec.ts
|
|
8
|
+
/**
|
|
9
|
+
* SharedDependencySpec: the one module owning shared-dependency names,
|
|
10
|
+
* criticality, version resolution, and fallback policy across the Module
|
|
11
|
+
* Federation graph. Four consumers derive from it — the rspack config
|
|
12
|
+
* factory (plugin builds), the rsbuild config factory (ui remotes), the
|
|
13
|
+
* runtime mf-config (the every-plugin MF instance), and the host's shared
|
|
14
|
+
* pre-registration — so a name or criticality can never disagree between
|
|
15
|
+
* them, and an unresolved version fails the build loudly instead of
|
|
16
|
+
* silently degrading to "*"/"latest" (which disables the strict-singleton
|
|
17
|
+
* guard).
|
|
18
|
+
*
|
|
19
|
+
* Lists:
|
|
20
|
+
* - core: shared by the host and server-side plugin remotes (every-plugin,
|
|
21
|
+
* effect, zod, @orpc/*). Effect-critical entries pin the exact installed
|
|
22
|
+
* version (strictVersion) — the version-check machinery in
|
|
23
|
+
* runtime/services/shared-identity.ts relies on it.
|
|
24
|
+
* - ui: shared by the core ui provider and ui remotes (react, react-dom,
|
|
25
|
+
* @orpc/client, @orpc/contract, TanStack, lingui, the everything-dev
|
|
26
|
+
* session/i18n subpath modules). All strict singletons; consumers add
|
|
27
|
+
* `import: false`.
|
|
28
|
+
*/
|
|
29
|
+
const require = createRequire(import.meta.url);
|
|
30
|
+
var SharedDependencyResolutionError = class extends Data.TaggedError("SharedDependencyResolutionError") {
|
|
31
|
+
constructor(packageName, searched) {
|
|
32
|
+
super({
|
|
33
|
+
packageName,
|
|
34
|
+
searched
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
get message() {
|
|
38
|
+
return `Could not resolve shared dependency "${this.packageName}". Looked in:\n` + this.searched.map((location) => ` - ${location}`).join("\n") + "\nUnresolved shared dependencies fail loudly (no \"*\", no \"latest\" fallback) — install the package in the resolving workspace or pin a resolvable version.";
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const CORE_SHARED_DEPS = [
|
|
42
|
+
{
|
|
43
|
+
name: "every-plugin",
|
|
44
|
+
singleton: true,
|
|
45
|
+
critical: true,
|
|
46
|
+
resolution: "self"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "effect",
|
|
50
|
+
singleton: true,
|
|
51
|
+
critical: true,
|
|
52
|
+
resolution: "package"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "zod",
|
|
56
|
+
singleton: true,
|
|
57
|
+
critical: false,
|
|
58
|
+
resolution: "package"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "@orpc/contract",
|
|
62
|
+
singleton: true,
|
|
63
|
+
critical: true,
|
|
64
|
+
resolution: "package"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: "@orpc/client",
|
|
68
|
+
singleton: true,
|
|
69
|
+
critical: true,
|
|
70
|
+
resolution: "package"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: "@orpc/server",
|
|
74
|
+
singleton: true,
|
|
75
|
+
critical: true,
|
|
76
|
+
resolution: "package"
|
|
77
|
+
}
|
|
78
|
+
];
|
|
79
|
+
const coreCriticalNames = CORE_SHARED_DEPS.flatMap((spec) => spec.critical ? [spec.name] : []);
|
|
80
|
+
/**
|
|
81
|
+
* Effect-critical shared names, derived from the core list's `critical: true`
|
|
82
|
+
* entries — the one source of criticality (`strictVersion` pinning in the
|
|
83
|
+
* runtime's version-check machinery keys off this list).
|
|
84
|
+
*/
|
|
85
|
+
const EFFECT_CRITICAL_SHARED_DEPS = coreCriticalNames;
|
|
86
|
+
const isEffectCriticalSharedDep = (name) => EFFECT_CRITICAL_SHARED_DEPS.includes(name);
|
|
87
|
+
const UI_SHARED_DEPS = [
|
|
88
|
+
{
|
|
89
|
+
name: "react",
|
|
90
|
+
singleton: true,
|
|
91
|
+
critical: true,
|
|
92
|
+
resolution: "package"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: "react-dom",
|
|
96
|
+
singleton: true,
|
|
97
|
+
critical: true,
|
|
98
|
+
resolution: "package"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: "@orpc/client",
|
|
102
|
+
singleton: true,
|
|
103
|
+
critical: true,
|
|
104
|
+
resolution: "package"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: "@orpc/contract",
|
|
108
|
+
singleton: true,
|
|
109
|
+
critical: true,
|
|
110
|
+
resolution: "package"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: "@tanstack/react-query",
|
|
114
|
+
singleton: true,
|
|
115
|
+
critical: true,
|
|
116
|
+
resolution: "package"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: "@tanstack/react-router",
|
|
120
|
+
singleton: true,
|
|
121
|
+
critical: true,
|
|
122
|
+
resolution: "package"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
name: "@lingui/core",
|
|
126
|
+
singleton: true,
|
|
127
|
+
critical: true,
|
|
128
|
+
resolution: "package"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
name: "@lingui/react",
|
|
132
|
+
singleton: true,
|
|
133
|
+
critical: true,
|
|
134
|
+
resolution: "package"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: "everything-dev/ui/auth",
|
|
138
|
+
singleton: true,
|
|
139
|
+
critical: true,
|
|
140
|
+
resolution: "subpath"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: "everything-dev/ui/i18n",
|
|
144
|
+
singleton: true,
|
|
145
|
+
critical: true,
|
|
146
|
+
resolution: "subpath"
|
|
147
|
+
}
|
|
148
|
+
];
|
|
149
|
+
const SHARED_DEP_SPECS = (() => {
|
|
150
|
+
const byName = /* @__PURE__ */ new Map();
|
|
151
|
+
for (const spec of [...CORE_SHARED_DEPS, ...UI_SHARED_DEPS]) {
|
|
152
|
+
const existing = byName.get(spec.name);
|
|
153
|
+
if (existing) {
|
|
154
|
+
if (existing.critical !== spec.critical) throw new Error(`Shared dependency spec conflict for "${spec.name}": criticality disagrees between the core and ui lists`);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
byName.set(spec.name, spec);
|
|
158
|
+
}
|
|
159
|
+
return [...byName.values()];
|
|
160
|
+
})();
|
|
161
|
+
function searchedNote(target) {
|
|
162
|
+
return `require.resolve("${target}")`;
|
|
163
|
+
}
|
|
164
|
+
function findPackageJsonVersion(startDir, searched) {
|
|
165
|
+
let currentDir = startDir;
|
|
166
|
+
for (let i = 0; i < 5; i += 1) {
|
|
167
|
+
const packageJsonPath = join(currentDir, "package.json");
|
|
168
|
+
searched.push(packageJsonPath);
|
|
169
|
+
if (existsSync(packageJsonPath)) try {
|
|
170
|
+
const version = JSON.parse(readFileSync(packageJsonPath, "utf8")).version;
|
|
171
|
+
if (version) return version;
|
|
172
|
+
} catch {}
|
|
173
|
+
const parent = dirname(currentDir);
|
|
174
|
+
if (parent === currentDir) break;
|
|
175
|
+
currentDir = parent;
|
|
176
|
+
}
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
function resolveSubpathVersion(request, workspaceRoot, searched) {
|
|
180
|
+
if (request.startsWith("@")) throw new Error(`Scoped-package subpath "${request}" is not supported — subpath version resolution handles unscoped specifiers only (the known subpath specs, everything-dev/ui/*, are unscoped).`);
|
|
181
|
+
const packageName = request.split("/")[0] ?? request;
|
|
182
|
+
const subpath = request.split("/").slice(1).join("/");
|
|
183
|
+
const candidates = [];
|
|
184
|
+
if (workspaceRoot) candidates.push(join(workspaceRoot, "node_modules", packageName, "package.json"));
|
|
185
|
+
const resolveRequests = [
|
|
186
|
+
{
|
|
187
|
+
request: `${packageName}/${subpath}`,
|
|
188
|
+
...workspaceRoot ? { paths: [workspaceRoot] } : {}
|
|
189
|
+
},
|
|
190
|
+
{ request: `${packageName}/${subpath}` },
|
|
191
|
+
{
|
|
192
|
+
request: `${packageName}/package.json`,
|
|
193
|
+
...workspaceRoot ? { paths: [workspaceRoot] } : {}
|
|
194
|
+
},
|
|
195
|
+
{ request: `${packageName}/package.json` }
|
|
196
|
+
];
|
|
197
|
+
for (const { request: target, paths } of resolveRequests) try {
|
|
198
|
+
const resolved = require.resolve(target, paths ? { paths } : void 0);
|
|
199
|
+
searched.push(resolved);
|
|
200
|
+
candidates.push(resolved.endsWith("package.json") ? resolved : resolve(dirname(resolved), "..", "..", "package.json"));
|
|
201
|
+
} catch {
|
|
202
|
+
searched.push(searchedNote(target));
|
|
203
|
+
}
|
|
204
|
+
for (const candidate of candidates) {
|
|
205
|
+
if (!existsSync(candidate)) continue;
|
|
206
|
+
try {
|
|
207
|
+
const version = JSON.parse(readFileSync(candidate, "utf8")).version;
|
|
208
|
+
if (version) return version;
|
|
209
|
+
} catch {}
|
|
210
|
+
}
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
function resolveSharedVersion(name, options = {}) {
|
|
214
|
+
const searched = [];
|
|
215
|
+
const { workspaceRoot, resolution = "package" } = options;
|
|
216
|
+
if (resolution === "subpath") {
|
|
217
|
+
const version = resolveSubpathVersion(name, workspaceRoot, searched);
|
|
218
|
+
if (version) return version;
|
|
219
|
+
throw new SharedDependencyResolutionError(name, searched);
|
|
220
|
+
}
|
|
221
|
+
const roots = workspaceRoot ? [workspaceRoot, void 0] : [void 0];
|
|
222
|
+
for (const root of roots) try {
|
|
223
|
+
const resolved = root ? require.resolve(name, { paths: [root] }) : require.resolve(name);
|
|
224
|
+
searched.push(resolved);
|
|
225
|
+
const version = findPackageJsonVersion(dirname(resolved), searched);
|
|
226
|
+
if (version) return version;
|
|
227
|
+
} catch {
|
|
228
|
+
searched.push(searchedNote(name));
|
|
229
|
+
}
|
|
230
|
+
throw new SharedDependencyResolutionError(name, searched);
|
|
231
|
+
}
|
|
232
|
+
function resolveOwnVersion(searched) {
|
|
233
|
+
const localPackageJson = join(dirname(fileURLToPath(import.meta.url)), "..", "package.json");
|
|
234
|
+
searched.push(localPackageJson);
|
|
235
|
+
if (existsSync(localPackageJson)) try {
|
|
236
|
+
const version = JSON.parse(readFileSync(localPackageJson, "utf8")).version;
|
|
237
|
+
if (version) return version;
|
|
238
|
+
} catch {}
|
|
239
|
+
try {
|
|
240
|
+
const resolved = require.resolve("every-plugin/package.json");
|
|
241
|
+
searched.push(resolved);
|
|
242
|
+
const version = JSON.parse(readFileSync(resolved, "utf8")).version;
|
|
243
|
+
if (version) return version;
|
|
244
|
+
} catch {
|
|
245
|
+
searched.push(searchedNote("every-plugin/package.json"));
|
|
246
|
+
}
|
|
247
|
+
throw new SharedDependencyResolutionError("every-plugin", searched);
|
|
248
|
+
}
|
|
249
|
+
function shareConfigFor(spec, version) {
|
|
250
|
+
return spec.critical ? {
|
|
251
|
+
requiredVersion: version,
|
|
252
|
+
singleton: true,
|
|
253
|
+
strictVersion: true,
|
|
254
|
+
eager: false,
|
|
255
|
+
shareScope: "default"
|
|
256
|
+
} : {
|
|
257
|
+
requiredVersion: false,
|
|
258
|
+
singleton: true,
|
|
259
|
+
strictVersion: false,
|
|
260
|
+
eager: false,
|
|
261
|
+
shareScope: "default"
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
function specVersion(spec, options) {
|
|
265
|
+
if (spec.resolution === "self") return options.ownVersion ?? resolveOwnVersion([`own package.json of "${spec.name}"`]);
|
|
266
|
+
return resolveSharedVersion(spec.name, { resolution: spec.resolution === "subpath" ? "subpath" : "package" });
|
|
267
|
+
}
|
|
268
|
+
function getPluginSharedDependencies(options = {}) {
|
|
269
|
+
return Object.fromEntries(CORE_SHARED_DEPS.map((spec) => {
|
|
270
|
+
const version = specVersion(spec, options);
|
|
271
|
+
return [spec.name, {
|
|
272
|
+
version,
|
|
273
|
+
...shareConfigFor(spec, version)
|
|
274
|
+
}];
|
|
275
|
+
}));
|
|
276
|
+
}
|
|
277
|
+
function toHostSharedEntry(name, config) {
|
|
278
|
+
const normalized = normalizeSharedConfig(config, name);
|
|
279
|
+
return {
|
|
280
|
+
version: normalized.version,
|
|
281
|
+
shareScope: normalized.shareScope,
|
|
282
|
+
shareConfig: {
|
|
283
|
+
singleton: normalized.singleton,
|
|
284
|
+
requiredVersion: normalized.requiredVersion,
|
|
285
|
+
strictVersion: normalized.strictVersion,
|
|
286
|
+
eager: normalized.eager
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* The runtime mf-config's core shared map: the same entries
|
|
292
|
+
* `getPluginSharedDependencies` assembles, shaped through the one host mapper
|
|
293
|
+
* (`toHostSharedEntry`) so both consumers derive from a single entry type.
|
|
294
|
+
*/
|
|
295
|
+
function buildMfCoreSharedDependencies(options = {}) {
|
|
296
|
+
return Object.fromEntries(Object.entries(getPluginSharedDependencies(options)).map(([name, config]) => [name, toHostSharedEntry(name, config)]));
|
|
297
|
+
}
|
|
298
|
+
function createUiSharedDeps(options = {}) {
|
|
299
|
+
const deps = {};
|
|
300
|
+
for (const spec of UI_SHARED_DEPS) {
|
|
301
|
+
const version = resolveSharedVersion(spec.name, {
|
|
302
|
+
workspaceRoot: options.workspaceRoot,
|
|
303
|
+
resolution: spec.resolution === "subpath" ? "subpath" : "package"
|
|
304
|
+
});
|
|
305
|
+
const strict = options.strictVersion !== false;
|
|
306
|
+
deps[spec.name] = {
|
|
307
|
+
version,
|
|
308
|
+
requiredVersion: strict ? version : false,
|
|
309
|
+
singleton: true,
|
|
310
|
+
strictVersion: strict,
|
|
311
|
+
eager: false,
|
|
312
|
+
shareScope: "default",
|
|
313
|
+
...options.role === "consumer" ? { import: false } : {}
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
return deps;
|
|
317
|
+
}
|
|
318
|
+
const UNRESOLVED_VERSIONS = /* @__PURE__ */ new Set([
|
|
319
|
+
"*",
|
|
320
|
+
"latest",
|
|
321
|
+
""
|
|
322
|
+
]);
|
|
323
|
+
function assertResolvedSharedVersion(name, version) {
|
|
324
|
+
if (typeof version !== "string" || UNRESOLVED_VERSIONS.has(version.trim())) throw new SharedDependencyResolutionError(name, [`declared version ${JSON.stringify(version ?? null)} is not resolvable — "*", "latest", and empty fail loudly instead of disabling the strict-singleton guard`]);
|
|
325
|
+
return version;
|
|
326
|
+
}
|
|
327
|
+
function normalizeSharedConfig(config, name) {
|
|
328
|
+
return {
|
|
329
|
+
version: assertResolvedSharedVersion(name, config.version),
|
|
330
|
+
requiredVersion: config.requiredVersion ?? false,
|
|
331
|
+
singleton: config.singleton ?? false,
|
|
332
|
+
strictVersion: config.strictVersion ?? false,
|
|
333
|
+
eager: config.eager ?? false,
|
|
334
|
+
shareScope: config.shareScope ?? "default"
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
function comparableSharedConfig(config) {
|
|
338
|
+
return {
|
|
339
|
+
version: config.version,
|
|
340
|
+
requiredVersion: config.requiredVersion ?? false,
|
|
341
|
+
singleton: config.singleton ?? false,
|
|
342
|
+
strictVersion: config.strictVersion ?? false,
|
|
343
|
+
eager: config.eager ?? false,
|
|
344
|
+
shareScope: config.shareScope ?? "default"
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
function isSameSharedConfig(a, b) {
|
|
348
|
+
const left = comparableSharedConfig(a);
|
|
349
|
+
const right = comparableSharedConfig(b);
|
|
350
|
+
return left.version === right.version && left.requiredVersion === right.requiredVersion && left.singleton === right.singleton && left.strictVersion === right.strictVersion && left.eager === right.eager && left.shareScope === right.shareScope;
|
|
351
|
+
}
|
|
352
|
+
function mergeSharedMaps(...maps) {
|
|
353
|
+
const merged = {};
|
|
354
|
+
for (const map of maps) {
|
|
355
|
+
if (!map) continue;
|
|
356
|
+
for (const [name, config] of Object.entries(map)) {
|
|
357
|
+
const normalized = normalizeSharedConfig(config, name);
|
|
358
|
+
const existing = merged[name];
|
|
359
|
+
if (existing && !isSameSharedConfig(existing, normalized)) throw new Error(`Conflicting shared dependency "${name}" in shared dependency configuration`);
|
|
360
|
+
merged[name] = normalized;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
return merged;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
//#endregion
|
|
367
|
+
export { CORE_SHARED_DEPS, EFFECT_CRITICAL_SHARED_DEPS, SHARED_DEP_SPECS, SharedDependencyResolutionError, UI_SHARED_DEPS, assertResolvedSharedVersion, buildMfCoreSharedDependencies, createUiSharedDeps, getPluginSharedDependencies, isEffectCriticalSharedDep, isSameSharedConfig, mergeSharedMaps, normalizeSharedConfig, resolveSharedVersion, shareConfigFor, toHostSharedEntry };
|
|
368
|
+
//# sourceMappingURL=shared-deps-spec.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-deps-spec.mjs","names":[],"sources":["../src/shared-deps-spec.ts"],"sourcesContent":["/**\n * SharedDependencySpec: the one module owning shared-dependency names,\n * criticality, version resolution, and fallback policy across the Module\n * Federation graph. Four consumers derive from it — the rspack config\n * factory (plugin builds), the rsbuild config factory (ui remotes), the\n * runtime mf-config (the every-plugin MF instance), and the host's shared\n * pre-registration — so a name or criticality can never disagree between\n * them, and an unresolved version fails the build loudly instead of\n * silently degrading to \"*\"/\"latest\" (which disables the strict-singleton\n * guard).\n *\n * Lists:\n * - core: shared by the host and server-side plugin remotes (every-plugin,\n * effect, zod, @orpc/*). Effect-critical entries pin the exact installed\n * version (strictVersion) — the version-check machinery in\n * runtime/services/shared-identity.ts relies on it.\n * - ui: shared by the core ui provider and ui remotes (react, react-dom,\n * @orpc/client, @orpc/contract, TanStack, lingui, the everything-dev\n * session/i18n subpath modules). All strict singletons; consumers add\n * `import: false`.\n */\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { Data } from \"effect\";\n\nconst require = createRequire(import.meta.url);\n\nexport class SharedDependencyResolutionError extends Data.TaggedError(\n \"SharedDependencyResolutionError\",\n)<{\n readonly packageName: string;\n readonly searched: string[];\n}> {\n constructor(packageName: string, searched: string[]) {\n super({\n packageName,\n searched,\n });\n }\n\n override get message() {\n return (\n `Could not resolve shared dependency \"${this.packageName}\". Looked in:\\n` +\n this.searched.map((location) => ` - ${location}`).join(\"\\n\") +\n `\\nUnresolved shared dependencies fail loudly (no \"*\", no \"latest\" fallback) — ` +\n `install the package in the resolving workspace or pin a resolvable version.`\n );\n }\n}\n\nexport type SharedDependencyResolution = \"self\" | \"package\" | \"subpath\";\n\nexport interface SharedDependencySpec {\n name: string;\n singleton: true;\n /** exact-version pin (requiredVersion = resolved version, strictVersion = true) */\n critical: boolean;\n resolution: SharedDependencyResolution;\n}\n\nexport const CORE_SHARED_DEPS = [\n { name: \"every-plugin\", singleton: true, critical: true, resolution: \"self\" },\n { name: \"effect\", singleton: true, critical: true, resolution: \"package\" },\n { name: \"zod\", singleton: true, critical: false, resolution: \"package\" },\n { name: \"@orpc/contract\", singleton: true, critical: true, resolution: \"package\" },\n { name: \"@orpc/client\", singleton: true, critical: true, resolution: \"package\" },\n { name: \"@orpc/server\", singleton: true, critical: true, resolution: \"package\" },\n // v1's proven sharing set, restored: @orpc/openapi, @orpc/experimental-effect,\n // and @orpc/publisher joined this list in the v2 fleet-spec pass and their\n // share-scope consumption broke plugin loading at runtime\n // (__webpack_modules__[r] is not a function — the runtime's import()-based\n // provides hand the consumer an ESM namespace where a module factory is\n // expected). They stay declared in each workspace's package.json and are\n // bundled per workspace instead.\n] as const satisfies readonly SharedDependencySpec[];\n\nexport type CoreSharedDepName = (typeof CORE_SHARED_DEPS)[number][\"name\"];\n\nconst coreCriticalNames = CORE_SHARED_DEPS.flatMap((spec) => (spec.critical ? [spec.name] : []));\n\n/**\n * Effect-critical shared names, derived from the core list's `critical: true`\n * entries — the one source of criticality (`strictVersion` pinning in the\n * runtime's version-check machinery keys off this list).\n */\nexport const EFFECT_CRITICAL_SHARED_DEPS: readonly EffectCriticalSharedDepName[] =\n coreCriticalNames;\n\nexport type EffectCriticalSharedDepName = (typeof coreCriticalNames)[number];\n\nexport const isEffectCriticalSharedDep = (name: string): boolean =>\n (EFFECT_CRITICAL_SHARED_DEPS as readonly string[]).includes(name);\n\nexport const UI_SHARED_DEPS = [\n { name: \"react\", singleton: true, critical: true, resolution: \"package\" },\n { name: \"react-dom\", singleton: true, critical: true, resolution: \"package\" },\n { name: \"@orpc/client\", singleton: true, critical: true, resolution: \"package\" },\n { name: \"@orpc/contract\", singleton: true, critical: true, resolution: \"package\" },\n { name: \"@tanstack/react-query\", singleton: true, critical: true, resolution: \"package\" },\n { name: \"@tanstack/react-router\", singleton: true, critical: true, resolution: \"package\" },\n { name: \"@lingui/core\", singleton: true, critical: true, resolution: \"package\" },\n { name: \"@lingui/react\", singleton: true, critical: true, resolution: \"package\" },\n {\n name: \"everything-dev/ui/auth\",\n singleton: true,\n critical: true,\n resolution: \"subpath\",\n },\n {\n name: \"everything-dev/ui/i18n\",\n singleton: true,\n critical: true,\n resolution: \"subpath\",\n },\n] as const satisfies readonly SharedDependencySpec[];\n\nexport const SHARED_DEP_SPECS: readonly SharedDependencySpec[] = (() => {\n const byName = new Map<string, SharedDependencySpec>();\n for (const spec of [...CORE_SHARED_DEPS, ...UI_SHARED_DEPS]) {\n const existing = byName.get(spec.name);\n if (existing) {\n if (existing.critical !== spec.critical) {\n throw new Error(\n `Shared dependency spec conflict for \"${spec.name}\": criticality disagrees between the core and ui lists`,\n );\n }\n continue;\n }\n byName.set(spec.name, spec);\n }\n return [...byName.values()];\n})();\n\nexport interface SharedDependencyConfig {\n version: string;\n requiredVersion: string | false;\n singleton: boolean;\n strictVersion: boolean;\n eager: boolean;\n shareScope: string;\n}\n\nexport type SharedDependencies = Record<string, SharedDependencyConfig>;\n\nexport type SharedConfigInput = {\n version: string;\n requiredVersion?: string | false;\n singleton?: boolean;\n strictVersion?: boolean;\n eager?: boolean;\n shareScope?: string;\n};\n\nexport interface SharedDependencyResolutionOptions {\n /** the building workspace to resolve from; default is this module's own location */\n workspaceRoot?: string;\n resolution?: \"package\" | \"subpath\";\n}\n\nfunction searchedNote(target: string): string {\n return `require.resolve(\"${target}\")`;\n}\n\nfunction findPackageJsonVersion(startDir: string, searched: string[]): string | null {\n let currentDir = startDir;\n for (let i = 0; i < 5; i += 1) {\n const packageJsonPath = join(currentDir, \"package.json\");\n searched.push(packageJsonPath);\n if (existsSync(packageJsonPath)) {\n try {\n const version = (JSON.parse(readFileSync(packageJsonPath, \"utf8\")) as { version?: string })\n .version;\n if (version) return version;\n } catch {}\n }\n const parent = dirname(currentDir);\n if (parent === currentDir) break;\n currentDir = parent;\n }\n return null;\n}\n\nfunction resolveSubpathVersion(\n request: string,\n workspaceRoot: string | undefined,\n searched: string[],\n): string | null {\n if (request.startsWith(\"@\")) {\n throw new Error(\n `Scoped-package subpath \"${request}\" is not supported — subpath version resolution ` +\n `handles unscoped specifiers only (the known subpath specs, everything-dev/ui/*, are unscoped).`,\n );\n }\n const packageName = request.split(\"/\")[0] ?? request;\n const subpath = request.split(\"/\").slice(1).join(\"/\");\n const candidates: string[] = [];\n if (workspaceRoot) {\n candidates.push(join(workspaceRoot, \"node_modules\", packageName, \"package.json\"));\n }\n const resolveRequests: Array<{ request: string; paths?: string[] }> = [\n { request: `${packageName}/${subpath}`, ...(workspaceRoot ? { paths: [workspaceRoot] } : {}) },\n { request: `${packageName}/${subpath}` },\n {\n request: `${packageName}/package.json`,\n ...(workspaceRoot ? { paths: [workspaceRoot] } : {}),\n },\n { request: `${packageName}/package.json` },\n ];\n for (const { request: target, paths } of resolveRequests) {\n try {\n const resolved = require.resolve(target, paths ? { paths } : undefined);\n searched.push(resolved);\n candidates.push(\n resolved.endsWith(\"package.json\")\n ? resolved\n : resolve(dirname(resolved), \"..\", \"..\", \"package.json\"),\n );\n } catch {\n searched.push(searchedNote(target));\n }\n }\n for (const candidate of candidates) {\n if (!existsSync(candidate)) continue;\n try {\n const version = (JSON.parse(readFileSync(candidate, \"utf8\")) as { version?: string }).version;\n if (version) return version;\n } catch {}\n }\n return null;\n}\n\nexport function resolveSharedVersion(\n name: string,\n options: SharedDependencyResolutionOptions = {},\n): string {\n const searched: string[] = [];\n const { workspaceRoot, resolution = \"package\" } = options;\n\n if (resolution === \"subpath\") {\n const version = resolveSubpathVersion(name, workspaceRoot, searched);\n if (version) return version;\n throw new SharedDependencyResolutionError(name, searched);\n }\n\n const roots: Array<string | undefined> = workspaceRoot ? [workspaceRoot, undefined] : [undefined];\n for (const root of roots) {\n try {\n const resolved = root ? require.resolve(name, { paths: [root] }) : require.resolve(name);\n searched.push(resolved);\n const version = findPackageJsonVersion(dirname(resolved), searched);\n if (version) return version;\n } catch {\n searched.push(searchedNote(name));\n }\n }\n throw new SharedDependencyResolutionError(name, searched);\n}\n\nfunction resolveOwnVersion(searched: string[]): string {\n const localPackageJson = join(dirname(fileURLToPath(import.meta.url)), \"..\", \"package.json\");\n searched.push(localPackageJson);\n if (existsSync(localPackageJson)) {\n try {\n const version = (JSON.parse(readFileSync(localPackageJson, \"utf8\")) as { version?: string })\n .version;\n if (version) return version;\n } catch {}\n }\n try {\n const resolved = require.resolve(\"every-plugin/package.json\");\n searched.push(resolved);\n const version = (JSON.parse(readFileSync(resolved, \"utf8\")) as { version?: string }).version;\n if (version) return version;\n } catch {\n searched.push(searchedNote(\"every-plugin/package.json\"));\n }\n throw new SharedDependencyResolutionError(\"every-plugin\", searched);\n}\n\nexport function shareConfigFor(\n spec: SharedDependencySpec,\n version: string,\n): Omit<SharedDependencyConfig, \"version\"> {\n return spec.critical\n ? {\n requiredVersion: version,\n singleton: true,\n strictVersion: true,\n eager: false,\n shareScope: \"default\",\n }\n : {\n requiredVersion: false,\n singleton: true,\n strictVersion: false,\n eager: false,\n shareScope: \"default\",\n };\n}\n\nexport interface SharedDepsBuildOptions {\n /** the every-plugin share version; default resolves the installed package.json */\n ownVersion?: string;\n}\n\nfunction specVersion(spec: SharedDependencySpec, options: SharedDepsBuildOptions): string {\n if (spec.resolution === \"self\") {\n return options.ownVersion ?? resolveOwnVersion([`own package.json of \"${spec.name}\"`]);\n }\n return resolveSharedVersion(spec.name, {\n resolution: spec.resolution === \"subpath\" ? \"subpath\" : \"package\",\n });\n}\n\nexport function getPluginSharedDependencies(\n options: SharedDepsBuildOptions = {},\n): SharedDependencies {\n return Object.fromEntries(\n CORE_SHARED_DEPS.map((spec) => {\n const version = specVersion(spec, options);\n return [spec.name, { version, ...shareConfigFor(spec, version) }];\n }),\n );\n}\n\nexport interface HostSharedEntry {\n version: string;\n shareScope: string;\n shareConfig: {\n singleton: boolean;\n requiredVersion: string | false;\n strictVersion: boolean;\n eager: boolean;\n };\n}\n\nexport function toHostSharedEntry(name: string, config: SharedConfigInput): HostSharedEntry {\n const normalized = normalizeSharedConfig(config, name);\n return {\n version: normalized.version,\n shareScope: normalized.shareScope,\n shareConfig: {\n singleton: normalized.singleton,\n requiredVersion: normalized.requiredVersion,\n strictVersion: normalized.strictVersion,\n eager: normalized.eager,\n },\n };\n}\n\n/**\n * The runtime mf-config's core shared map: the same entries\n * `getPluginSharedDependencies` assembles, shaped through the one host mapper\n * (`toHostSharedEntry`) so both consumers derive from a single entry type.\n */\nexport function buildMfCoreSharedDependencies(\n options: SharedDepsBuildOptions = {},\n): Record<string, HostSharedEntry> {\n return Object.fromEntries(\n Object.entries(getPluginSharedDependencies(options)).map(([name, config]) => [\n name,\n toHostSharedEntry(name, config),\n ]),\n );\n}\n\nexport interface UiSharedDepEntry {\n version: string;\n requiredVersion: string | false;\n singleton: true;\n strictVersion: boolean;\n eager: false;\n shareScope: \"default\";\n /** consumer role only: no bundled fallback copy — the provider provides */\n import?: false;\n}\n\nexport interface UiSharedDepsOptions {\n /** explicit core-shell parity opt-out; default is the strict singleton */\n strictVersion?: boolean;\n role?: \"provider\" | \"consumer\";\n workspaceRoot?: string;\n}\n\nexport function createUiSharedDeps(\n options: UiSharedDepsOptions = {},\n): Record<string, UiSharedDepEntry> {\n const deps: Record<string, UiSharedDepEntry> = {};\n for (const spec of UI_SHARED_DEPS) {\n const version = resolveSharedVersion(spec.name, {\n workspaceRoot: options.workspaceRoot,\n resolution: spec.resolution === \"subpath\" ? \"subpath\" : \"package\",\n });\n const strict = options.strictVersion !== false;\n deps[spec.name] = {\n version,\n requiredVersion: strict ? version : false,\n singleton: true,\n strictVersion: strict,\n eager: false,\n shareScope: \"default\",\n ...(options.role === \"consumer\" ? { import: false as const } : {}),\n };\n }\n return deps;\n}\n\nconst UNRESOLVED_VERSIONS = new Set([\"*\", \"latest\", \"\"]);\n\nexport function assertResolvedSharedVersion(name: string, version: unknown): string {\n if (typeof version !== \"string\" || UNRESOLVED_VERSIONS.has(version.trim())) {\n throw new SharedDependencyResolutionError(name, [\n `declared version ${JSON.stringify(version ?? null)} is not resolvable — \"*\", \"latest\", and empty fail loudly instead of disabling the strict-singleton guard`,\n ]);\n }\n return version;\n}\n\nexport function normalizeSharedConfig(\n config: SharedConfigInput,\n name: string,\n): SharedDependencyConfig {\n const version = assertResolvedSharedVersion(name, config.version);\n return {\n version,\n requiredVersion: config.requiredVersion ?? false,\n singleton: config.singleton ?? false,\n strictVersion: config.strictVersion ?? false,\n eager: config.eager ?? false,\n shareScope: config.shareScope ?? \"default\",\n };\n}\n\nfunction comparableSharedConfig(config: SharedConfigInput) {\n return {\n version: config.version,\n requiredVersion: config.requiredVersion ?? false,\n singleton: config.singleton ?? false,\n strictVersion: config.strictVersion ?? false,\n eager: config.eager ?? false,\n shareScope: config.shareScope ?? \"default\",\n };\n}\n\nexport function isSameSharedConfig(a: SharedConfigInput, b: SharedConfigInput): boolean {\n const left = comparableSharedConfig(a);\n const right = comparableSharedConfig(b);\n return (\n left.version === right.version &&\n left.requiredVersion === right.requiredVersion &&\n left.singleton === right.singleton &&\n left.strictVersion === right.strictVersion &&\n left.eager === right.eager &&\n left.shareScope === right.shareScope\n );\n}\n\nexport function mergeSharedMaps(\n ...maps: Array<Record<string, SharedConfigInput> | undefined>\n): Record<string, SharedDependencyConfig> {\n const merged: Record<string, SharedDependencyConfig> = {};\n for (const map of maps) {\n if (!map) continue;\n for (const [name, config] of Object.entries(map)) {\n const normalized = normalizeSharedConfig(config, name);\n const existing = merged[name];\n if (existing && !isSameSharedConfig(existing, normalized)) {\n throw new Error(\n `Conflicting shared dependency \"${name}\" in shared dependency configuration`,\n );\n }\n merged[name] = normalized;\n }\n }\n return merged;\n}\n"],"mappings":"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"}
|
package/dist/types.d.cts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { PluginWarningInfo } from "./runtime/errors.cjs";
|
|
1
2
|
import { Plugin } from "./plugin.cjs";
|
|
2
|
-
import {
|
|
3
|
+
import { ContractedRouter, RouterClient } from "@orpc/server";
|
|
4
|
+
import { Context, Scope } from "effect";
|
|
3
5
|
import { AnyContractRouter, AnySchema, InferSchemaInput, InferSchemaOutput } from "@orpc/contract";
|
|
4
|
-
import { Router, RouterClient } from "@orpc/server";
|
|
5
6
|
//#region src/types.d.ts
|
|
6
7
|
/**
|
|
7
8
|
* Registry bindings interface - populated via module augmentation
|
|
@@ -19,7 +20,7 @@ interface RegisteredPlugins {}
|
|
|
19
20
|
/**
|
|
20
21
|
* Base type for any plugin instance.
|
|
21
22
|
*/
|
|
22
|
-
type AnyPlugin = Plugin<AnyContractRouter, AnySchema, AnySchema, AnySchema | undefined
|
|
23
|
+
type AnyPlugin = Plugin<AnyContractRouter, AnySchema, AnySchema, AnySchema | undefined>;
|
|
23
24
|
/**
|
|
24
25
|
* Loaded plugin constructor with binding information
|
|
25
26
|
*/
|
|
@@ -93,11 +94,20 @@ type PluginContext<T> = T extends {
|
|
|
93
94
|
* Extract router type from plugin binding
|
|
94
95
|
* Uses 'any' for context to support nested router compositions
|
|
95
96
|
*/
|
|
96
|
-
type PluginRouterType<T> =
|
|
97
|
+
type PluginRouterType<T> = ContractedRouter<PluginContract<T>, any>;
|
|
97
98
|
/**
|
|
98
99
|
* Extract client type from plugin binding
|
|
99
100
|
*/
|
|
100
101
|
type PluginClientType<T> = RouterClient<PluginRouterType<T>>;
|
|
102
|
+
/**
|
|
103
|
+
* Sibling plugin entry passed to `initialize` and `createRouter`.
|
|
104
|
+
* `client` creates a typed in-process client for the plugin's router;
|
|
105
|
+
* `router` is the raw implemented router for cross-plugin merging.
|
|
106
|
+
*/
|
|
107
|
+
type PluginServicesEntry<T = any> = {
|
|
108
|
+
client: (context?: PluginContextInput<T>) => PluginClientType<T>;
|
|
109
|
+
router: PluginRouterType<T>;
|
|
110
|
+
};
|
|
101
111
|
/**
|
|
102
112
|
* Extract plugin type from registered plugins by key
|
|
103
113
|
* @param K - The plugin key
|
|
@@ -110,11 +120,7 @@ type RegisteredPlugin<K extends keyof R, R = RegisteredPlugins> = R[K] extends {
|
|
|
110
120
|
variables: infer V extends AnySchema;
|
|
111
121
|
secrets: infer S extends AnySchema;
|
|
112
122
|
context: infer TRequestContext extends AnySchema | undefined;
|
|
113
|
-
} ? Plugin<C, V, S, TRequestContext
|
|
114
|
-
/**
|
|
115
|
-
* Extract plugin constructor type from registry entry
|
|
116
|
-
*/
|
|
117
|
-
type PluginConstructor<K extends keyof R, R = RegisteredPlugins> = RegisteredPlugin<K, R>;
|
|
123
|
+
} ? Plugin<C, V, S, TRequestContext> : never : never;
|
|
118
124
|
/**
|
|
119
125
|
* Extract context input type from plugin binding (for client creation)
|
|
120
126
|
*/
|
|
@@ -126,10 +132,6 @@ type PluginConfigInput<T> = {
|
|
|
126
132
|
variables: InferSchemaInput<PluginVariables<T>>;
|
|
127
133
|
secrets: InferSchemaInput<PluginSecrets<T>>;
|
|
128
134
|
};
|
|
129
|
-
/**
|
|
130
|
-
* Extract deps context type from plugin instance (used for initialization)
|
|
131
|
-
*/
|
|
132
|
-
type ContextOf<T extends AnyPlugin> = T extends Plugin<AnyContractRouter, AnySchema, AnySchema, AnySchema | undefined, infer TDeps> ? TDeps : never;
|
|
133
135
|
/**
|
|
134
136
|
* Plugin metadata for remote loading
|
|
135
137
|
*/
|
|
@@ -142,10 +144,6 @@ type PluginMetadata = {
|
|
|
142
144
|
* Runtime registry configuration supporting both module and remote entries
|
|
143
145
|
*/
|
|
144
146
|
type PluginRegistry = Record<string, PluginRegistryEntry>;
|
|
145
|
-
/**
|
|
146
|
-
* Legacy metadata-only registry (for backwards compatibility)
|
|
147
|
-
*/
|
|
148
|
-
type PluginMetadataRegistry = Record<string, PluginMetadata>;
|
|
149
147
|
/**
|
|
150
148
|
* Configuration for secrets injection.
|
|
151
149
|
* Secrets are hydrated into plugin configs using template replacement.
|
|
@@ -177,8 +175,15 @@ interface InitializedPlugin<T extends AnyPlugin = AnyPlugin> {
|
|
|
177
175
|
variables: InferSchemaOutput<T["configSchema"]["variables"]>;
|
|
178
176
|
secrets: InferSchemaOutput<T["configSchema"]["secrets"]>;
|
|
179
177
|
};
|
|
180
|
-
|
|
181
|
-
|
|
178
|
+
/**
|
|
179
|
+
* Built Effect context from the plugin's initialize Layer. Provided to
|
|
180
|
+
* handlers as `effect/context` — `.effect()` handlers `yield* Tag`,
|
|
181
|
+
* plain handlers use `Context.get(context["effect/context"], Tag)`.
|
|
182
|
+
*/
|
|
183
|
+
readonly effectContext: Context.Context<any>;
|
|
184
|
+
readonly scope: Scope.Closeable;
|
|
185
|
+
/** Non-fatal config warnings collected during initialization (empty when none). */
|
|
186
|
+
readonly warnings: PluginWarningInfo[];
|
|
182
187
|
}
|
|
183
188
|
/**
|
|
184
189
|
* Helper type to detect type errors when looking up RegisteredPlugins
|
|
@@ -202,17 +207,6 @@ type UsePluginResult<K extends keyof R, R = RegisteredPlugins> = VerifyPluginBin
|
|
|
202
207
|
readonly metadata: PluginMetadata;
|
|
203
208
|
readonly initialized: InitializedPlugin<RegisteredPlugin<K, R>>;
|
|
204
209
|
} : VerifyPluginBinding<K, R>;
|
|
205
|
-
/**
|
|
206
|
-
* Runtime options
|
|
207
|
-
*/
|
|
208
|
-
interface RuntimeOptions {
|
|
209
|
-
isolation?: "strict" | "shared" | "none";
|
|
210
|
-
memoryLimit?: string;
|
|
211
|
-
concurrency?: number;
|
|
212
|
-
resourceTimeout?: string;
|
|
213
|
-
debug?: boolean;
|
|
214
|
-
metrics?: boolean;
|
|
215
|
-
}
|
|
216
210
|
/**
|
|
217
211
|
* Extract registry type from runtime instance or use type directly
|
|
218
212
|
* This allows EveryPlugin.Infer to work with both:
|
|
@@ -251,17 +245,7 @@ declare namespace EveryPlugin {
|
|
|
251
245
|
interface PluginRuntimeConfig<R extends Record<string, PluginRegistryEntry> = Record<string, PluginRegistryEntry>> {
|
|
252
246
|
registry: R;
|
|
253
247
|
secrets?: SecretsConfig;
|
|
254
|
-
options?: RuntimeOptions;
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Legacy plugin runtime configuration (metadata-only registry)
|
|
258
|
-
* @deprecated Use PluginRuntimeConfig with module/remote entries instead
|
|
259
|
-
*/
|
|
260
|
-
interface LegacyPluginRuntimeConfig {
|
|
261
|
-
registry: PluginMetadataRegistry;
|
|
262
|
-
secrets?: SecretsConfig;
|
|
263
|
-
options?: RuntimeOptions;
|
|
264
248
|
}
|
|
265
249
|
//#endregion
|
|
266
|
-
export { AnyPlugin, AnyPluginConstructor,
|
|
250
|
+
export { AnyPlugin, AnyPluginConstructor, EveryPlugin, ExtractPluginType, InferRegistryFromEntries, InitializedPlugin, LoadedPlugin, PluginClientType, PluginConfigInput, PluginContext, PluginContextInput, PluginContract, PluginInstance, PluginMetadata, PluginRegistry, PluginRegistryEntry, PluginRouterType, PluginRuntimeConfig, PluginSecrets, PluginServicesEntry, PluginVariables, RegisteredPlugin, RegisteredPlugins, SecretsConfig, UsePluginResult };
|
|
267
251
|
//# sourceMappingURL=types.d.cts.map
|
package/dist/types.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;;;;;;;;;;;;;UAwBiB;;;;KAKL,YAAY,OAAO,mBAAmB,WAAW,WAAW;;;;KAK5D;UACF;EACR;IACE,UAAU;IACV,WAAW;IACX,SAAS;IACT,SAAS;;;;;;KAOD;EACN,QAAQ;EAAsB;EAAiB;EAAkB;;EACjE;EAAgB;EAAkB;;;;;KAK5B,kBAAkB,KAAK;EAAY,cAAc;IAAM;;;;KAKvD,yBAAyB,UAAU,eAAe,2BAC3D,WAAW,IAAI,EAAE;EAAa,cAAc;IACzC,IACA,gBAAgB,oBACd,kBAAkB;;;;KAOd,eAAe,KAAK;EAC9B;IAAW,gBAAgB,UAAU;;IAEnC;;;;KAMQ,gBAAgB,KAAK;EAAY;IAAW,iBAAiB,UAAU;;IAC/E;;;;KAMQ,cAAc,KAAK;EAAY;IAAW,eAAe,UAAU;;IAC3E;;;;KAMQ,cAAc,KAAK;EAC7B;IAAW,eAAe,UAAU;;IAElC;;;;;KAOQ,iBAAiB,KAAK,iBAAiB,eAAe;;;;KAKtD,iBAAiB,KAAK,aAAa,iBAAiB;;;;;;KAOpD,oBAAoB;EAC9B,SAAS,UAAU,mBAAmB,OAAO,iBAAiB;EAC9D,QAAQ,iBAAiB;;;;;;;KAQf,iBAAiB,gBAAgB,GAAG,IAAI,qBAAqB,EAAE;EACzE,eAAe;IAEb;EACE,gBAAgB,UAAU;EAC1B,iBAAiB,UAAU;EAC3B,eAAe,UAAU;EACzB,eAAe,wBAAwB;IAEvC,OAAO,GAAG,GAAG,GAAG;;;;KAOV,mBAAmB,KAC7B,cAAc,WAAW,YAAY,iBAAiB,cAAc;;;;KAK1D,kBAAkB;EAC5B,WAAW,iBAAiB,gBAAgB;EAC5C,SAAS,iBAAiB,cAAc;;;;;KAM9B;WACD;WACA;WACA;;;;;KAMC,iBAAiB,eAAe;;;;;UAM3B;GACd;;;;;UAMc,aAAa,UAAU,YAAY;WACzC,gBAAgB;WAChB,UAAU;;;;;UAMJ,eAAe,UAAU,YAAY;WAC3C,QAAQ;WACR,UAAU;;;;;UAMJ,kBAAkB,UAAU,YAAY;WAC9C,QAAQ;WACR,UAAU;WACV;IACP,WAAW,kBAAkB;IAC7B,SAAS,kBAAkB;;;;;;;WAOpB,eAAe,QAAQ;WACvB,OAAO,MAAM;;WAEb,UAAU;;;;;KAMhB,oBAAoB,gBAAgB,GAAG,IAAI,qBAAqB,EAAE;EACrE,eAAe;IAEb;EACE,UAAU;EACV,WAAW;EACX,SAAS;EACT,SAAS;wBAGI,4IACF;;;;;;KAOL,gBAAgB,gBAAgB,GAAG,IAAI,qBACjD,oBAAoB,GAAG;WAER,eAAe,UAAU,mBAAmB,EAAE,QAAQ,iBAAiB,EAAE;WACzE,QAAQ,iBAAiB,EAAE;WAC3B,UAAU;WACV,aAAa,kBAAkB,iBAAiB,GAAG;IAE9D,oBAAoB,GAAG;;;;;;;KAQxB,WAAW,KAAK;EAAY,uBAAuB;IAAM,IAAI;;;;kBAKjD;;;;;;;;;;;;;;;;;;OAkBH,MACV,kBACA,SAAS,qBACP,gBAAgB,WAAW,UAAU,gBAAgB,GAAG,WAAW;;;;;UAMxD,oBACf,UAAU,eAAe,uBAAuB,eAAe;EAE/D,UAAU;EACV,UAAU"}
|