{"version":3,"file":"ProvideSharedPlugin.cjs","names":[],"sources":["../../../src/types/plugins/ProvideSharedPlugin.ts"],"sourcesContent":["/*\n * This file was automatically generated.\n * DO NOT MODIFY BY HAND.\n * Run `pnpm generate:schema -w` to update.\n */\n\nimport type { IncludeExcludeOptions } from './ConsumeSharedPlugin';\n\n/**\n * Request to a module that should be provided as shared module to the share scope (will be resolved when relative).\n */\nexport type ProvidesItem = string;\n\n/**\n * Advanced configuration for modules that should be provided as shared modules to the share scope.\n */\nexport interface ProvidesConfig {\n  /**\n   * Include the provided module directly instead behind an async request. This allows to use this shared module in initial load too. All possible shared modules need to be eager too.\n   */\n  eager?: boolean;\n  /**\n   * Key in the share scope under which the shared modules should be stored.\n   */\n  shareKey?: string;\n  /**\n   * Import request to match on\n   */\n  request?: string;\n  /**\n   * Share scope name.\n   */\n  shareScope?: string | string[];\n  /**\n   * Version requirement from module in share scope.\n   */\n  requiredVersion?: false | string;\n  /**\n   * Do not accept shared module if version is not valid (defaults to yes, if local fallback module is available and shared module is not a singleton, otherwise no, has no effect if there is no required version specified).\n   */\n  strictVersion?: boolean;\n  /**\n   * Allow only a single version of the shared module in share scope (disabled by default).\n   */\n  singleton?: boolean;\n  /**\n   * Layer in which the shared module should be placed.\n   */\n  layer?: string;\n  /**\n   * Layer of the issuer.\n   */\n  issuerLayer?: string;\n  /**\n   * Version of the provided module. Will replace lower matching versions, but not higher.\n   */\n  version?: false | string;\n  /**\n   * Filter for the shared module.\n   */\n  exclude?: IncludeExcludeOptions;\n  /**\n   * Options for including only certain versions or requests of the provided module. Cannot be used with 'exclude'.\n   */\n  include?: IncludeExcludeOptions;\n  /**\n   * Enable reconstructed lookup for node_modules paths for this share item\n   */\n  allowNodeModulesSuffixMatch?: boolean;\n  /**\n   * Tree shaking mode for the shared module.\n   */\n  treeShakingMode?: 'server-calc' | 'runtime-infer';\n}\n\n/**\n * Modules that should be provided as shared modules to the share scope. Property names are used as share keys.\n */\nexport interface ProvidesObject {\n  [k: string]: ProvidesConfig | ProvidesItem;\n}\n\n/**\n * Modules that should be provided as shared modules to the share scope. When provided, property name is used to match modules, otherwise this is automatically inferred from share key.\n */\nexport type Provides = (ProvidesItem | ProvidesObject)[] | ProvidesObject;\n\nexport interface ProvideSharedPluginOptions {\n  provides: Provides;\n  /**\n   * Share scope name used for all provided modules (defaults to 'default').\n   */\n  shareScope?: string | string[];\n  /**\n   * Experimental features configuration\n   */\n  experiments?: {\n    /** Enable reconstructed lookup for node_modules paths */\n    allowNodeModulesSuffixMatch?: boolean;\n  };\n}\n"],"mappings":""}