@stencil/core 5.0.0-alpha.1 → 5.0.0-alpha.11

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 (50) hide show
  1. package/dist/app-data/index.d.ts +2 -0
  2. package/dist/{runtime/app-data → app-data}/index.js +17 -12
  3. package/dist/{client-B1nuvCd2.mjs → client-aTQ7xHxx.mjs} +2432 -2278
  4. package/dist/compiler/index.d.mts +6 -6
  5. package/dist/compiler/index.mjs +2 -2
  6. package/dist/compiler/utils/index.d.mts +2 -2
  7. package/dist/compiler/utils/index.mjs +3 -3
  8. package/dist/{compiler-LX4_RKKd.mjs → compiler-DCN7Np2A.mjs} +14854 -13500
  9. package/dist/declarations/stencil-public-compiler.d.ts +4374 -2
  10. package/dist/declarations/stencil-public-compiler.js +2 -4
  11. package/dist/declarations/stencil-public-docs.d.ts +504 -1
  12. package/dist/declarations/stencil-public-runtime.d.ts +1982 -2
  13. package/dist/{index-fIuYTL9f.d.mts → index-BvkyxSY6.d.mts} +29 -2
  14. package/dist/{index-D-LlB2nw.d.mts → index-vY35H18z.d.mts} +795 -1188
  15. package/dist/{index-BONzXKJt.d.ts → index-xAkMgLX_.d.ts} +88 -39
  16. package/dist/index.d.mts +1 -1
  17. package/dist/index.mjs +2 -2
  18. package/dist/jsx-runtime.d.mts +18 -0
  19. package/dist/jsx-runtime.mjs +2 -0
  20. package/dist/{node-SxQIOCZE.mjs → node--akYC-sG.mjs} +20 -30
  21. package/dist/regular-expression-CFVJOTUh.mjs +508 -0
  22. package/dist/{runtime-CF9DJtSu.js → runtime/client/lazy.js} +2675 -2493
  23. package/dist/runtime/client/{index.d.ts → runtime.d.ts} +106 -78
  24. package/dist/runtime/client/{index.js → runtime.js} +2545 -2487
  25. package/dist/runtime/index.d.ts +58 -29
  26. package/dist/runtime/index.js +4795 -2
  27. package/dist/runtime/server/index.d.mts +103 -70
  28. package/dist/runtime/server/index.mjs +2545 -2350
  29. package/dist/runtime/server/runner.d.mts +44 -48
  30. package/dist/runtime/server/runner.mjs +347 -751
  31. package/dist/signals/index.d.ts +47 -0
  32. package/dist/signals/index.js +199 -0
  33. package/dist/sys/node/index.d.mts +1 -1
  34. package/dist/sys/node/index.mjs +1 -1
  35. package/dist/sys/node/worker.mjs +2 -2
  36. package/dist/testing/index.d.mts +97 -3
  37. package/dist/testing/index.mjs +367 -59
  38. package/dist/{validation-CaCgjw-f.mjs → validation-ByxKj8bC.mjs} +116 -99
  39. package/package.json +47 -38
  40. package/dist/index-CHjZtib0.d.ts +0 -30
  41. package/dist/jsx-runtime-DBzBJLKk.d.ts +0 -28
  42. package/dist/jsx-runtime.d.ts +0 -2
  43. package/dist/jsx-runtime.js +0 -2
  44. package/dist/runtime/app-data/index.d.ts +0 -2
  45. package/dist/serialize-BkYHk7Mi.mjs +0 -766
  46. package/dist/stencil-public-compiler-C_X1iolo.d.ts +0 -4455
  47. package/dist/stencil-public-runtime-DlV8o7-z.d.ts +0 -1845
  48. /package/dist/{runtime/app-globals → app-globals}/index.d.ts +0 -0
  49. /package/dist/{runtime/app-globals → app-globals}/index.js +0 -0
  50. /package/dist/{chunk-CjcI7cDX.mjs → chunk-z9aeyW2b.mjs} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { Diagnostic, Node as Node$1 } from "typescript";
2
- import { RollupError, SourceMap } from "rollup";
2
+ import { InputOptions, RolldownError, SourceMap, SourceMap as RolldownSourceMap } from "rolldown";
3
3
  import { Serializable } from "child_process";
4
4
 
5
5
  //#region src/utils/byte-size.d.ts
@@ -44,10 +44,6 @@ declare const LISTENER_FLAGS: {
44
44
  readonly TargetDocument: number;
45
45
  readonly TargetWindow: number;
46
46
  readonly TargetBody: number;
47
- /**
48
- * @deprecated Prevented from new apps, but left in for older collections
49
- */
50
- readonly TargetParent: number;
51
47
  };
52
48
  declare const HOST_FLAGS: {
53
49
  readonly hasConnected: number;
@@ -84,13 +80,6 @@ declare const CMP_FLAGS: {
84
80
  * Used to determine if a component does not use the shadow DOM _and_ has `<slot/>` tags in its markup.
85
81
  */
86
82
  readonly hasSlotRelocation: number;
87
- /**
88
- * Determines if a shim for the shadow DOM is necessary.
89
- *
90
- * The shim should only be needed if a component requires {@link shadowDomEncapsulation} and if any output
91
- * target-specific criteria are met. Refer to this flag's usage to determine each output target's criteria.
92
- */
93
- readonly needsShadowDomShim: number;
94
83
  /**
95
84
  * Determines if `delegatesFocus` is enabled for a component that uses the shadow DOM.
96
85
  * e.g. `shadow: { delegatesFocus: true }` is set on the `@Component()` decorator
@@ -101,10 +90,7 @@ declare const CMP_FLAGS: {
101
90
  */
102
91
  readonly hasMode: number;
103
92
  /**
104
- * Determines if styles must be scoped due to either:
105
- * 1. A component is using scoped stylesheets ({@link scopedCssEncapsulation})
106
- * 2. A component is using the shadow DOM _and_ the output target's rules for requiring a shadow DOM shim have been
107
- * met ({@link needsShadowDomShim})
93
+ * Determines if styles must be scoped - i.e. the component uses scoped stylesheets.
108
94
  */
109
95
  readonly needsScopedEncapsulation: number;
110
96
  /**
@@ -130,6 +116,32 @@ declare const CMP_FLAGS: {
130
116
  * e.g. `shadow: { slotAssignment: 'manual' }` is set on the `@Component()` decorator
131
117
  */
132
118
  readonly shadowSlotAssignmentManual: number;
119
+ /**
120
+ * Determines if the shadow DOM mode is 'closed'.
121
+ * e.g. `encapsulation: { type: 'shadow', mode: 'closed' }` is set on the `@Component()` decorator
122
+ */
123
+ readonly shadowModeClosed: number;
124
+ /**
125
+ * Determines if the component should patch child node accessors for slot handling.
126
+ * e.g. `encapsulation: { type: 'none', patches: ['children'] }`
127
+ */
128
+ readonly patchChildren: number;
129
+ /**
130
+ * Determines if the component should patch cloneNode() for slot handling.
131
+ * e.g. `encapsulation: { type: 'none', patches: ['clone'] }`
132
+ */
133
+ readonly patchClone: number;
134
+ /**
135
+ * Determines if the component should patch appendChild/insertBefore for slot handling.
136
+ * e.g. `encapsulation: { type: 'none', patches: ['insert'] }`
137
+ */
138
+ readonly patchInsert: number;
139
+ /**
140
+ * Determines if the component should apply all slot patches.
141
+ * e.g. `encapsulation: { type: 'none', patches: ['all'] }`
142
+ * Equivalent to the global `experimentalSlotFixes` config option.
143
+ */
144
+ readonly patchAll: number;
133
145
  };
134
146
  /**
135
147
  * Default style mode id
@@ -145,6 +157,7 @@ declare const XLINK_NS = "http://www.w3.org/1999/xlink";
145
157
  * File names and value
146
158
  */
147
159
  declare const COLLECTION_MANIFEST_FILE_NAME = "collection-manifest.json";
160
+ declare const COLLECTION_APP_DATA_FILE_NAME = "app-data.js";
148
161
  /**
149
162
  * Constant for the 'copy' output target
150
163
  */
@@ -154,37 +167,54 @@ declare const COPY = "copy";
154
167
  */
155
168
  declare const CUSTOM = "custom";
156
169
  /**
157
- * Constant for the 'dist' output target
170
+ * Constant for the 'loader-bundle' output target
171
+ * (formerly 'dist' in v4)
172
+ */
173
+ declare const LOADER_BUNDLE = "loader-bundle";
174
+ /**
175
+ * Constant for the 'standalone' output target
176
+ * (formerly 'dist-custom-elements' in v4)
158
177
  */
159
- declare const DIST = "dist";
178
+ declare const STANDALONE = "standalone";
160
179
  /**
161
- * Constant for the 'dist-collection' output target
180
+ * Constant for the 'ssr' output target
181
+ * (formerly 'dist-hydrate-script' in v4)
162
182
  */
163
- declare const DIST_COLLECTION = "dist-collection";
183
+ declare const SSR = "ssr";
164
184
  /**
165
- * Constant for the 'dist-custom-elements' output target
185
+ * Constant for the 'ssr-wasm' output target.
186
+ * Compiles the SSR script to a WASM binary via javy for use in any WASM-capable host
187
+ * (PHP, Java, Ruby, Go, etc.) without requiring a JavaScript runtime.
166
188
  */
167
- declare const DIST_CUSTOM_ELEMENTS = "dist-custom-elements";
189
+ declare const SSR_WASM = "ssr-wasm";
168
190
  /**
169
- * Constant for the 'dist-types' output target
191
+ * Constant for the 'collection' output target
192
+ * (formerly 'dist-collection' sub-output in v4)
193
+ *
194
+ * Contains transpiled source + metadata for downstream Stencil projects
195
+ * to re-compile/bundle.
170
196
  */
171
- declare const DIST_TYPES = "dist-types";
197
+ declare const COLLECTION = "collection";
172
198
  /**
173
- * Constant for the 'dist-hydrate-script' output target
199
+ * Constant for the 'types' output target
200
+ * (formerly 'dist-types' sub-output in v4)
174
201
  */
175
- declare const DIST_HYDRATE_SCRIPT = "dist-hydrate-script";
202
+ declare const TYPES = "types";
176
203
  /**
177
- * Constant for the 'dist-lazy' output target
204
+ * Constant for the 'global-style' output target
205
+ * Outputs global styles to a unified location available to all distributions.
178
206
  */
179
- declare const DIST_LAZY = "dist-lazy";
207
+ declare const GLOBAL_STYLE = "global-style";
180
208
  /**
181
- * Constant for the 'dist-lazy-loader' output target
209
+ * Constant for the 'assets' output target
210
+ * Copies component assetsDirs to a unified location available to all distributions.
182
211
  */
183
- declare const DIST_LAZY_LOADER = "dist-lazy-loader";
212
+ declare const ASSETS = "assets";
184
213
  /**
185
- * Constant for the 'dist-global-styles' output target
214
+ * Internal constant for the 'dist-lazy' output target
215
+ * (used by loader-bundle and www)
186
216
  */
187
- declare const DIST_GLOBAL_STYLES = "dist-global-styles";
217
+ declare const DIST_LAZY = "dist-lazy";
188
218
  /**
189
219
  * Constant for the 'docs-custom' output target
190
220
  */
@@ -216,13 +246,14 @@ declare const WWW = "www";
216
246
  /**
217
247
  * Valid output targets to specify in a Stencil config.
218
248
  *
219
- * Note that there are some output targets (e.g. `DIST_TYPES`) which are
220
- * programmatically set as output targets by the compiler when other output
221
- * targets (in that case `DIST`) are set, but which are _not_ supported in a
222
- * Stencil config. This is enforced in the output target validation code.
249
+ * Note that some internal output targets (e.g. `DIST_LAZY`, `DIST_GLOBAL_STYLES`)
250
+ * are programmatically created by the compiler and are not user-configurable.
251
+ *
252
+ * In v5, `TYPES` and `COLLECTION` are auto-generated in production builds unless explicitly configured.
223
253
  */
224
- declare const VALID_CONFIG_OUTPUT_TARGETS: readonly ["www", "dist", "dist-collection", "dist-custom-elements", "dist-lazy", "dist-hydrate-script", "docs-json", "docs-readme", "docs-vscode", "docs-custom", "docs-custom-elements-manifest", "copy", "custom", "stats"];
254
+ declare const VALID_CONFIG_OUTPUT_TARGETS: readonly ["www", "loader-bundle", "standalone", "ssr", "ssr-wasm", "collection", "types", "global-style", "assets", "dist", "dist-custom-elements", "dist-hydrate-script", "dist-collection", "dist-types", "docs-json", "docs-readme", "docs-vscode", "docs-custom", "docs-custom-elements-manifest", "copy", "custom", "stats"];
225
255
  declare const GENERATED_DTS = "components.d.ts";
256
+ declare const STYLE_EXT: string[];
226
257
  /**
227
258
  * DOM Node types
228
259
  *
@@ -247,42 +278,6 @@ declare const NODE_TYPES: {
247
278
  readonly DOCUMENT_FRAGMENT_NODE: 11;
248
279
  readonly NOTATION_NODE: 12;
249
280
  };
250
- /**
251
- * Represents a primitive type.
252
- * Described in https://w3c.github.io/webdriver-bidi/#type-script-PrimitiveProtocolValue.
253
- */
254
- declare const PrimitiveType: {
255
- readonly Undefined: "undefined";
256
- readonly Null: "null";
257
- readonly String: "string";
258
- readonly Number: "number";
259
- readonly SpecialNumber: "number";
260
- readonly Boolean: "boolean";
261
- readonly BigInt: "bigint";
262
- };
263
- type PrimitiveTypeValue = (typeof PrimitiveType)[keyof typeof PrimitiveType];
264
- /**
265
- * Represents a non-primitive type.
266
- * Described in https://w3c.github.io/webdriver-bidi/#type-script-RemoteValue.
267
- * @deprecated will be removed in v5. Use `@AttrDeserialize()` / `@PropDeserialize()` decorators instead.
268
- */
269
- declare const NonPrimitiveType: {
270
- readonly Array: "array";
271
- readonly Date: "date";
272
- readonly Map: "map";
273
- readonly Object: "object";
274
- readonly RegularExpression: "regexp";
275
- readonly Set: "set";
276
- readonly Channel: "channel";
277
- readonly Symbol: "symbol";
278
- };
279
- type NonPrimitiveTypeValue = (typeof NonPrimitiveType)[keyof typeof NonPrimitiveType];
280
- /** @deprecated will be removed in v5. Use `@AttrDeserialize()` / `@PropDeserialize()` decorators instead. */
281
- declare const TYPE_CONSTANT = "type";
282
- /** @deprecated will be removed in v5. Use `@AttrDeserialize()` / `@PropDeserialize()` decorators instead. */
283
- declare const VALUE_CONSTANT = "value";
284
- /** @deprecated will be removed in v5. Use `@AttrDeserialize()` / `@PropDeserialize()` decorators instead. */
285
- declare const SERIALIZED_PREFIX = "serialized:";
286
281
  //#endregion
287
282
  //#region src/utils/format-component-runtime-meta.d.ts
288
283
  declare const formatLazyBundleRuntimeMeta: (bundleId: any, cmps: ComponentCompilerMeta[]) => LazyBundleRuntimeData;
@@ -452,189 +447,9 @@ declare const isGlob: (str: string) => boolean;
452
447
  */
453
448
  declare const isRootPath: (p: string) => boolean;
454
449
  //#endregion
455
- //#region src/utils/types.d.ts
456
- type Serializeable = string | number | boolean | unknown;
457
- type LocalValueParam = Serializeable | Serializeable[] | [Serializeable, Serializeable][];
458
- type ScriptLocalValue = ScriptPrimitiveProtocolValue | ScriptArrayLocalValue | ScriptDateLocalValue | ScriptSymbolValue | ScriptMapLocalValue | ScriptObjectLocalValue | ScriptRegExpLocalValue | ScriptSetLocalValue;
459
- type ScriptListLocalValue = ScriptLocalValue[];
460
- interface ScriptArrayLocalValue {
461
- type: 'array';
462
- value: ScriptListLocalValue;
463
- }
464
- interface ScriptDateLocalValue {
465
- type: 'date';
466
- value: string;
467
- }
468
- type ScriptMappingLocalValue = (ScriptLocalValue | ScriptLocalValue)[];
469
- interface ScriptMapLocalValue {
470
- type: 'map';
471
- value: ScriptMappingLocalValue;
472
- }
473
- interface ScriptObjectLocalValue {
474
- type: 'object';
475
- value: ScriptMappingLocalValue;
476
- }
477
- interface ScriptRegExpValue {
478
- pattern: string;
479
- flags?: string;
480
- }
481
- interface ScriptRegExpLocalValue {
482
- type: 'regexp';
483
- value: ScriptRegExpValue;
484
- }
485
- interface ScriptSetLocalValue {
486
- type: 'set';
487
- value: ScriptListLocalValue;
488
- }
489
- type ScriptPreloadScript = string;
490
- type ScriptRealm = string;
491
- type ScriptPrimitiveProtocolValue = ScriptUndefinedValue | ScriptNullValue | ScriptStringValue | ScriptNumberValue | ScriptBooleanValue | ScriptBigIntValue;
492
- interface ScriptUndefinedValue {
493
- type: 'undefined';
494
- }
495
- interface ScriptNullValue {
496
- type: 'null';
497
- }
498
- interface ScriptStringValue {
499
- type: 'string';
500
- value: string;
501
- }
502
- interface ScriptSymbolValue {
503
- type: 'symbol';
504
- value: string;
505
- }
506
- type ScriptSpecialNumber = 'NaN' | '-0' | 'Infinity' | '-Infinity';
507
- interface ScriptNumberValue {
508
- type: 'number';
509
- value: number | ScriptSpecialNumber;
510
- }
511
- interface ScriptBooleanValue {
512
- type: 'boolean';
513
- value: boolean;
514
- }
515
- interface ScriptBigIntValue {
516
- type: 'bigint';
517
- value: string;
518
- }
519
- //#endregion
520
- //#region src/utils/local-value.d.ts
521
- /**
522
- * Represents a local value with a specified type and optional value.
523
- * Described in https://w3c.github.io/webdriver-bidi/#type-script-LocalValue
524
- * @deprecated will be removed in v5. Use `@AttrDeserialize()` / `@PropDeserialize()` decorators instead.
525
- */
526
- declare class LocalValue {
527
- type: PrimitiveTypeValue | NonPrimitiveTypeValue;
528
- value?: Serializeable | Serializeable[] | [Serializeable, Serializeable][];
529
- constructor(type: PrimitiveTypeValue | NonPrimitiveTypeValue, value?: LocalValueParam);
530
- /**
531
- * Creates a new LocalValue object with a string value.
532
- *
533
- * @param {string} value - The string value to be stored in the LocalValue object.
534
- * @returns {LocalValue} - The created LocalValue object.
535
- */
536
- static createStringValue(value: string): LocalValue;
537
- /**
538
- * Creates a new LocalValue object with a number value.
539
- *
540
- * @param {number} value - The number value.
541
- * @returns {LocalValue} - The created LocalValue object.
542
- */
543
- static createNumberValue(value: number): LocalValue;
544
- /**
545
- * Creates a new LocalValue object with a special number value.
546
- *
547
- * @param {number} value - The value of the special number.
548
- * @returns {LocalValue} - The created LocalValue object.
549
- */
550
- static createSpecialNumberValue(value: number): LocalValue;
551
- /**
552
- * Creates a new LocalValue object with an undefined value.
553
- * @returns {LocalValue} - The created LocalValue object.
554
- */
555
- static createUndefinedValue(): LocalValue;
556
- /**
557
- * Creates a new LocalValue object with a null value.
558
- * @returns {LocalValue} - The created LocalValue object.
559
- */
560
- static createNullValue(): LocalValue;
561
- /**
562
- * Creates a new LocalValue object with a boolean value.
563
- *
564
- * @param {boolean} value - The boolean value.
565
- * @returns {LocalValue} - The created LocalValue object.
566
- */
567
- static createBooleanValue(value: boolean): LocalValue;
568
- /**
569
- * Creates a new LocalValue object with a BigInt value.
570
- *
571
- * @param {BigInt} value - The BigInt value.
572
- * @returns {LocalValue} - The created LocalValue object.
573
- */
574
- static createBigIntValue(value: bigint): LocalValue;
575
- /**
576
- * Creates a new LocalValue object with an array.
577
- *
578
- * @param {Array} value - The array.
579
- * @returns {LocalValue} - The created LocalValue object.
580
- */
581
- static createArrayValue(value: Array<unknown>): LocalValue;
582
- /**
583
- * Creates a new LocalValue object with date value.
584
- *
585
- * @param {string} value - The date.
586
- * @returns {LocalValue} - The created LocalValue object.
587
- */
588
- static createDateValue(value: Date): LocalValue;
589
- /**
590
- * Creates a new LocalValue object of map value.
591
- * @param {Map} map - The map.
592
- * @returns {LocalValue} - The created LocalValue object.
593
- */
594
- static createMapValue(map: Map<unknown, unknown>): LocalValue;
595
- /**
596
- * Creates a new LocalValue object from the passed object.
597
- *
598
- * @param object the object to create a LocalValue from
599
- * @returns {LocalValue} - The created LocalValue object.
600
- */
601
- static createObjectValue(object: Record<string | number | symbol, unknown>): LocalValue;
602
- /**
603
- * Creates a new LocalValue object of regular expression value.
604
- *
605
- * @param {string} value - The value of the regular expression.
606
- * @returns {LocalValue} - The created LocalValue object.
607
- */
608
- static createRegularExpressionValue(value: {
609
- pattern: string;
610
- flags: string;
611
- }): LocalValue;
612
- /**
613
- * Creates a new LocalValue object with the specified value.
614
- * @param {Set} value - The value to be set.
615
- * @returns {LocalValue} - The created LocalValue object.
616
- */
617
- static createSetValue(value: ([unknown, unknown] | LocalValue)[]): LocalValue;
618
- /**
619
- * Creates a new LocalValue object with the given channel value
620
- *
621
- * @param {ChannelValue} value - The channel value.
622
- * @returns {LocalValue} - The created LocalValue object.
623
- */
624
- static createChannelValue(value: unknown): LocalValue;
625
- /**
626
- * Creates a new LocalValue object with a Symbol value.
627
- *
628
- * @param {Symbol} symbol - The Symbol value
629
- * @returns {LocalValue} - The created LocalValue object
630
- */
631
- static createSymbolValue(symbol: symbol): LocalValue;
632
- static getArgument(argument: unknown): LocalValue;
633
- asMap(): ScriptLocalValue;
634
- }
635
- //#endregion
636
- //#region src/utils/logger/logger-rollup.d.ts
637
- declare const loadRollupDiagnostics: (config: ValidatedConfig, compilerCtx: CompilerCtx, buildCtx: BuildCtx, rollupError: RollupError) => void;
450
+ //#region src/utils/logger/logger-rolldown.d.ts
451
+ declare const isRolldownError: (e: unknown) => e is RolldownError;
452
+ declare const loadRolldownDiagnostics: (config: ValidatedConfig, compilerCtx: CompilerCtx, buildCtx: BuildCtx, rolldownError: RolldownError) => void;
638
453
  declare const createOnWarnFn: (diagnostics: Diagnostic$1[], bundleModulesFiles?: Module[]) => (warning: {
639
454
  code?: string;
640
455
  importer?: string;
@@ -718,7 +533,8 @@ declare const buildWarn: (diagnostics: Diagnostic$1[]) => Diagnostic$1;
718
533
  * @param jsonFilePath the path to the JSON file where the error occurred
719
534
  * @param msg the error message
720
535
  * @param jsonField the key for the field which caused the error, used for finding
721
- * the error line in the original JSON file
536
+ * the error line in the original JSON file. Only root-level keys (with minimal
537
+ * indentation, typically 2 spaces) are highlighted to avoid matching nested keys.
722
538
  * @returns a reference to the newly-created diagnostic
723
539
  */
724
540
  declare const buildJsonFileError: (compilerCtx: CompilerCtx, diagnostics: Diagnostic$1[], jsonFilePath: string, msg: string, jsonField: string) => Diagnostic$1;
@@ -772,21 +588,22 @@ declare const filterExcludedComponents: (components: ComponentCompilerMeta[], co
772
588
  declare const relativeImport: (pathFrom: string, pathTo: string, ext?: string, addPrefix?: boolean) => string;
773
589
  declare const getComponentsDtsSrcFilePath: (config: ValidatedConfig) => string;
774
590
  /**
775
- * Helper to get an appropriate file path for `components.d.ts` for a `"dist"`
776
- * or `"dist-types"` output target.
591
+ * Helper to get an appropriate file path for `components.d.ts` for an output target.
777
592
  *
778
- * @param outputTarget the output target of interest
593
+ * @param typesDir the directory where types are generated
779
594
  * @returns a properly-formatted path
780
595
  */
781
- declare const getComponentsDtsTypesFilePath: (outputTarget: Required<OutputTargetDist> | OutputTargetDistTypes) => string;
782
- declare const isOutputTargetDist: (o: OutputTarget) => o is OutputTargetDist;
783
- declare const isOutputTargetDistCollection: (o: OutputTarget) => o is OutputTargetDistCollection;
784
- declare const isOutputTargetDistCustomElements: (o: OutputTarget) => o is OutputTargetDistCustomElements;
596
+ declare const getComponentsDtsTypesFilePath: (typesDir: string) => string;
597
+ declare const isOutputTargetLoaderBundle: (o: OutputTarget) => o is OutputTargetLoaderBundle;
598
+ declare const isOutputTargetStandalone: (o: OutputTarget) => o is OutputTargetStandalone;
599
+ declare const isOutputTargetSsr: (o: OutputTarget) => o is OutputTargetSsr;
600
+ declare const isOutputTargetSsrWasm: (o: OutputTarget) => o is OutputTargetSsrWasm;
601
+ declare const isOutputTargetCollection: (o: OutputTarget) => o is OutputTargetCollection;
602
+ declare const isOutputTargetTypes: (o: OutputTarget) => o is OutputTargetTypes;
603
+ declare const isOutputTargetGlobalStyle: (o: OutputTarget) => o is OutputTargetGlobalStyle;
604
+ declare const isOutputTargetAssets: (o: OutputTarget) => o is OutputTargetAssets;
785
605
  declare const isOutputTargetCopy: (o: OutputTarget) => o is OutputTargetCopy;
786
606
  declare const isOutputTargetDistLazy: (o: OutputTarget) => o is OutputTargetDistLazy;
787
- declare const isOutputTargetDistLazyLoader: (o: OutputTarget) => o is OutputTargetDistLazyLoader;
788
- declare const isOutputTargetDistGlobalStyles: (o: OutputTarget) => o is OutputTargetDistGlobalStyles;
789
- declare const isOutputTargetHydrate: (o: OutputTarget) => o is OutputTargetHydrate;
790
607
  declare const isOutputTargetCustom: (o: OutputTarget) => o is OutputTargetCustom;
791
608
  declare const isOutputTargetDocs: (o: OutputTarget) => o is OutputTargetDocsJson | OutputTargetDocsReadme | OutputTargetDocsVscode | OutputTargetDocsCustom | OutputTargetDocsCustomElementsManifest;
792
609
  declare const isOutputTargetDocsReadme: (o: OutputTarget) => o is OutputTargetDocsReadme;
@@ -796,15 +613,6 @@ declare const isOutputTargetDocsVscode: (o: OutputTarget) => o is OutputTargetDo
796
613
  declare const isOutputTargetDocsCustomElementsManifest: (o: OutputTarget) => o is OutputTargetDocsCustomElementsManifest;
797
614
  declare const isOutputTargetWww: (o: OutputTarget) => o is OutputTargetWww;
798
615
  declare const isOutputTargetStats: (o: OutputTarget) => o is OutputTargetStats;
799
- declare const isOutputTargetDistTypes: (o: OutputTarget) => o is OutputTargetDistTypes;
800
- /**
801
- * Checks whether or not the supplied output target's type matches one of the eligible primary
802
- * package output target types (i.e. it can have `isPrimaryPackageOutputTarget: true` in its config).
803
- *
804
- * @param o The output target to check.
805
- * @returns Whether the output target type is one of the "primary" output targets.
806
- */
807
- declare const isEligiblePrimaryPackageOutputTarget: (o: OutputTarget) => o is EligiblePrimaryPackageOutputTarget;
808
616
  /**
809
617
  * Retrieve the Stencil component compiler metadata from a collection of Stencil {@link d.Module}s
810
618
  * @param moduleFiles the collection of `Module`s to retrieve the metadata from
@@ -819,6 +627,16 @@ type ValidConfigOutputTarget = (typeof VALID_CONFIG_OUTPUT_TARGETS)[number];
819
627
  * @returns whether or not the targetType is a valid, configurable output target.
820
628
  */
821
629
  declare function isValidConfigOutputTarget(targetType: string): targetType is ValidConfigOutputTarget;
630
+ /**
631
+ * Filter output targets based on devMode and their skipInDev setting.
632
+ * In dev mode, targets with `skipInDev: true` are filtered out.
633
+ * In prod mode, all targets are included.
634
+ *
635
+ * @param targets Array of output targets to filter
636
+ * @param devMode Whether we're in dev mode
637
+ * @returns Filtered array of active targets
638
+ */
639
+ declare const filterActiveTargets: <T extends OutputTarget>(targets: T[], devMode: boolean) => T[];
822
640
  //#endregion
823
641
  //#region src/utils/path.d.ts
824
642
  /**
@@ -913,35 +731,6 @@ declare function queryNonceMetaTagContent(doc: Document): string | undefined;
913
731
  * @returns The string with all special characters escaped.
914
732
  */
915
733
  declare const escapeRegExpSpecialCharacters: (text: string) => string;
916
- //#endregion
917
- //#region src/utils/remote-value.d.ts
918
- /**
919
- * RemoteValue class for deserializing LocalValue serialized objects back into their original form
920
- * @deprecated will be removed in v5. Use `@AttrDeserialize()` / `@PropDeserialize()` decorators instead.
921
- */
922
- declare class RemoteValue {
923
- /**
924
- * Deserializes a LocalValue serialized object back to its original JavaScript representation
925
- *
926
- * @param serialized The serialized LocalValue object
927
- * @returns The original JavaScript value/object
928
- */
929
- static fromLocalValue(serialized: ScriptLocalValue): any;
930
- /**
931
- * Utility method to deserialize multiple LocalValues at once
932
- *
933
- * @param serializedValues Array of serialized LocalValue objects
934
- * @returns Array of deserialized JavaScript values
935
- */
936
- static fromLocalValueArray(serializedValues: ScriptLocalValue[]): any[];
937
- /**
938
- * Verifies if the given object matches the structure of a serialized LocalValue
939
- *
940
- * @param obj Object to verify
941
- * @returns boolean indicating if the object has LocalValue structure
942
- */
943
- static isLocalValueObject(obj: any): boolean;
944
- }
945
734
  declare namespace result_d_exports {
946
735
  export { Result, err, map, ok, unwrap, unwrapErr };
947
736
  }
@@ -1057,31 +846,15 @@ declare const unwrap: <T, E>(result: Result<T, E>) => T;
1057
846
  */
1058
847
  declare const unwrapErr: <T, E>(result: Result<T, E>) => E;
1059
848
  //#endregion
1060
- //#region src/utils/serialize.d.ts
1061
- /**
1062
- * Serialize a value to a string that can be deserialized later.
1063
- * @param {unknown} value - The value to serialize.
1064
- * @returns {string} A string that can be deserialized later.
1065
- * @deprecated will be removed in v5. Use `@PropSerialize()` decorator instead.
1066
- */
1067
- declare function serializeProperty(value: unknown): string | number | boolean;
1068
- /**
1069
- * Deserialize a value from a string that was serialized earlier.
1070
- * @param {string} value - The string to deserialize.
1071
- * @returns {unknown} The deserialized value.
1072
- * @deprecated will be removed in v5. Use `@AttrDeserialize()` decorator instead.
1073
- */
1074
- declare function deserializeProperty(value: string): any;
1075
- //#endregion
1076
849
  //#region src/utils/sourcemaps.d.ts
1077
850
  /**
1078
- * Converts a rollup provided source map to one that Stencil can easily understand
1079
- * @param rollupSourceMap the sourcemap to transform
851
+ * Converts a rolldown provided source map to one that Stencil can easily understand
852
+ * @param rolldownSourceMap the sourcemap to transform
1080
853
  * @returns the transformed sourcemap
1081
854
  */
1082
- declare function rollupToStencilSourceMap(rollupSourceMap: null): null;
1083
- declare function rollupToStencilSourceMap(rollupSourceMap: undefined): null;
1084
- declare function rollupToStencilSourceMap(rollupSourceMap: SourceMap): SourceMap$1;
855
+ declare function rolldownToStencilSourceMap(rolldownSourceMap: null): null;
856
+ declare function rolldownToStencilSourceMap(rolldownSourceMap: undefined): null;
857
+ declare function rolldownToStencilSourceMap(rolldownSourceMap: SourceMap): SourceMap$1;
1085
858
  /**
1086
859
  * Generates a string used to link generated code with the original source, to be placed at the end of the generated
1087
860
  * code.
@@ -1929,7 +1702,7 @@ interface FunctionalUtilities {
1929
1702
  map: (children: VNode[], cb: (vnode: ChildNode$1, index: number, array: ChildNode$1[]) => ChildNode$1) => VNode[];
1930
1703
  }
1931
1704
  interface FunctionalComponent<T = {}> {
1932
- (props: T, children: VNode[], utils: FunctionalUtilities): VNode | VNode[] | null;
1705
+ (props: T, children: VNode[], utils: FunctionalUtilities): VNode | null;
1933
1706
  }
1934
1707
  /**
1935
1708
  * A Child VDOM node
@@ -1940,7 +1713,7 @@ interface FunctionalComponent<T = {}> {
1940
1713
  * {@link FunctionalUtilities}).
1941
1714
  */
1942
1715
  interface ChildNode$1 {
1943
- vtag?: string | number | Function;
1716
+ vtag?: string | number | Function | symbol | null;
1944
1717
  vkey?: string | number;
1945
1718
  vtext?: string;
1946
1719
  vchildren?: VNode[];
@@ -1952,13 +1725,15 @@ interface ChildNode$1 {
1952
1725
  */
1953
1726
  interface VNode {
1954
1727
  $flags$: number;
1955
- $tag$: string | number | Function;
1728
+ $tag$: string | number | Function | symbol | null;
1956
1729
  $elm$: any;
1957
1730
  $text$: string;
1958
1731
  $children$: VNode[];
1959
1732
  $attrs$?: any;
1960
1733
  $name$?: string;
1961
1734
  $key$?: string | number;
1735
+ /** Signal reference for vdom bypass: signal text nodes store the signal here. */
1736
+ $signal$?: any;
1962
1737
  }
1963
1738
  //#endregion
1964
1739
  //#region src/declarations/stencil-public-compiler.d.ts
@@ -2045,20 +1820,6 @@ interface StencilConfig {
2045
1820
  * @default false
2046
1821
  */
2047
1822
  generateExportMaps?: boolean;
2048
- /**
2049
- * When the hashFileNames config is set to true, and it is a production build,
2050
- * the hashedFileNameLength config is used to determine how many characters the file name's hash should be.
2051
- */
2052
- hashedFileNameLength?: number;
2053
- /**
2054
- * During production builds, the content of each generated file is hashed to represent the content,
2055
- * and the hashed value is used as the filename. If the content isn't updated between builds,
2056
- * then it receives the same filename. When the content is updated, then the filename is different.
2057
- *
2058
- * By doing this, deployed apps can "forever-cache" the build directory and take full advantage of
2059
- * content delivery networks (CDNs) and heavily caching files for faster apps.
2060
- */
2061
- hashFileNames?: boolean;
2062
1823
  /**
2063
1824
  * The namespace config is a string representing a namespace for the app.
2064
1825
  * For apps that are not meant to be a library of reusable components,
@@ -2075,7 +1836,7 @@ interface StencilConfig {
2075
1836
  */
2076
1837
  outputTargets?: OutputTarget[];
2077
1838
  /**
2078
- * The plugins config can be used to add your own rollup plugins.
1839
+ * The plugins config can be used to add your own rolldown plugins.
2079
1840
  * By default, Stencil does not come with Sass or PostCSS support.
2080
1841
  * However, either can be added using the plugin array.
2081
1842
  */
@@ -2105,32 +1866,18 @@ interface StencilConfig {
2105
1866
  */
2106
1867
  suppressReservedPublicNameWarnings?: boolean;
2107
1868
  /**
2108
- * When `true`, we will validate a project's `package.json` based on the output target the user has designated
2109
- * as `isPrimaryPackageOutputTarget: true` in their Stencil config.
2110
- */
2111
- validatePrimaryPackageOutputTarget?: boolean;
2112
- /**
2113
- * Passes custom configuration down to the "@rollup/plugin-commonjs" that Stencil uses under the hood.
2114
- * For further information: https://stenciljs.com/docs/module-bundling
1869
+ * When `true`, Stencil will suppress diagnostics which warn about event names conflicting with native DOM event names. Defaults to `false`.
2115
1870
  */
2116
- commonjs?: BundlingConfig;
1871
+ suppressReservedEventNameWarnings?: boolean;
2117
1872
  /**
2118
- * Passes custom configuration down to the "@rollup/plugin-node-resolve" that Stencil uses under the hood.
1873
+ * Passes custom configuration down to the "@rolldown/plugin-node-resolve" that Stencil uses under the hood.
2119
1874
  * For further information: https://stenciljs.com/docs/module-bundling
2120
1875
  */
2121
1876
  nodeResolve?: NodeResolveConfig;
2122
1877
  /**
2123
- * Passes custom configuration down to rollup itself, not all rollup options can be overridden.
2124
- */
2125
- rollupConfig?: RollupConfig;
2126
- /**
2127
- * Sets if the ES5 build should be generated or not. Stencil generates a modern build without ES5,
2128
- * whereas this setting to `true` will also create es5 builds for both dev and prod modes. Setting
2129
- * `buildEs5` to `prod` will only build ES5 in prod mode. Basically if the app does not need to run
2130
- * on legacy browsers (IE11 and Edge 18 and below), it's safe to not build ES5, which will also speed
2131
- * up build times. Defaults to `false`.
1878
+ * Passes custom configuration down to rolldown itself, not all rolldown options can be overridden.
2132
1879
  */
2133
- buildEs5?: boolean | 'prod';
1880
+ rolldownConfig?: RolldownConfig;
2134
1881
  /**
2135
1882
  * Sets if the JS browser files are minified or not. Stencil uses `terser` under the hood.
2136
1883
  * Defaults to `false` in dev mode and `true` in production mode.
@@ -2141,24 +1888,23 @@ interface StencilConfig {
2141
1888
  * Defaults to `false` in dev mode and `true` in production mode.
2142
1889
  */
2143
1890
  minifyCss?: boolean;
2144
- /**
2145
- * Forces Stencil to run in `dev` mode if the value is `true` and `production` mode
2146
- * if it's `false`.
2147
- *
2148
- * Defaults to `false` (ie. production) unless the `--dev` flag is used in the CLI.
2149
- */
2150
- devMode?: boolean;
2151
1891
  /**
2152
1892
  * Object to provide a custom logger. By default a `logger` is already provided for the
2153
1893
  * platform the compiler is running on, such as NodeJS or a browser.
2154
1894
  */
2155
1895
  logger?: Logger;
2156
1896
  /**
2157
- * Config to add extra runtime for DOM features that require more polyfills. Note
2158
- * that not all DOM APIs are fully polyfilled when using the slot polyfill. These
2159
- * are opt-in since not all users will require the additional runtime.
1897
+ * Compatibility and workaround flags for framework integration and bundler edge cases.
1898
+ */
1899
+ compat?: ConfigCompat;
1900
+ /**
1901
+ * Replace `@State` and `@Prop` internals with `@preact/signals-core` signal primitives.
1902
+ * Enables cross-framework reactive interop - component state becomes subscribable by
1903
+ * Solid, Angular, Preact and any TC39-signal-compatible library without event/attribute
1904
+ * roundtrips. No API changes required in component code.
1905
+ * Defaults to `false`.
2160
1906
  */
2161
- extras?: ConfigExtras;
1907
+ signalBacking?: boolean;
2162
1908
  /**
2163
1909
  * The hydrated flag identifies if a component and all of its child components
2164
1910
  * have finished hydrating. This helps prevent any flash of unstyled content (FOUC)
@@ -2216,31 +1962,13 @@ interface StencilConfig {
2216
1962
  docs?: StencilDocsConfig;
2217
1963
  globalScript?: string;
2218
1964
  srcIndexHtml?: string;
2219
- /**
2220
- * Configuration for Stencil's integrated testing (Jest + Puppeteer).
2221
- *
2222
- * @deprecated Integrated testing support will be removed in Stencil v5. Migrate spec tests to
2223
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) and e2e / browser tests to either
2224
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) or
2225
- * [`@stencil/playwright`](https://github.com/stenciljs/playwright).
2226
- * See https://github.com/stenciljs/core/issues/6584 for full discussion and migration guidance.
2227
- */
2228
- testing?: TestingConfig;
2229
1965
  maxConcurrentWorkers?: number;
2230
1966
  preamble?: string;
2231
- rollupPlugins?: {
1967
+ rolldownPlugins?: {
2232
1968
  before?: any[];
2233
1969
  after?: any[];
2234
1970
  };
2235
1971
  entryComponentsHint?: string[];
2236
- /**
2237
- * Sets whether Stencil will write files to `dist/` during the build or not.
2238
- *
2239
- * By default this value is set to the opposite value of {@link devMode},
2240
- * i.e. it will be `true` when building for production and `false` when
2241
- * building for development.
2242
- */
2243
- buildDist?: boolean;
2244
1972
  buildLogFilePath?: string;
2245
1973
  devInspector?: boolean;
2246
1974
  devServer?: StencilDevServerConfig;
@@ -2268,7 +1996,7 @@ interface StencilConfig {
2268
1996
  * An array of component tag names to exclude from production builds.
2269
1997
  * Useful to remove test, demo or experimental components from final output.
2270
1998
  *
2271
- * **Note:** Exclusion only applies to production builds (default, or when `--prod` is used).
1999
+ * **Note:** Exclusion only applies to production builds (the default).
2272
2000
  * Development builds (with `--dev` flag) will include all components to support local testing.
2273
2001
  *
2274
2002
  * Supports glob patterns for matching multiple components:
@@ -2292,23 +2020,56 @@ interface StencilConfig {
2292
2020
  * Set whether unused dependencies should be excluded from the built output.
2293
2021
  */
2294
2022
  excludeUnusedDependencies?: boolean;
2295
- stencilCoreResolvedId?: string;
2296
- }
2297
- interface ConfigExtrasBase {
2298
2023
  /**
2299
- * Experimental flag. Projects that use a Stencil library built using the `dist` output target may have trouble lazily
2300
- * loading components when using a bundler such as Vite or Parcel. Setting this flag to `true` will change how Stencil
2301
- * lazily loads components in a way that works with additional bundlers. Setting this flag to `true` will increase
2302
- * the size of the compiled output. Defaults to `false`.
2303
- * @deprecated This flag has been deprecated in favor of `enableImportInjection`, which provides the same
2304
- * functionality. `experimentalImportInjection` will be removed in a future major version of Stencil.
2024
+ * Explicitly declare which npm packages are Stencil collections to be re-bundled into this project.
2025
+ *
2026
+ * Without this option, collection ingestion is triggered only by a side-effect import:
2027
+ * ```ts
2028
+ * import '@ionic/core';
2029
+ * ```
2030
+ * @example
2031
+ * ```ts
2032
+ * export const config: Config = {
2033
+ * collections: ['@ionic/core', '@my-org/design-system'],
2034
+ * };
2035
+ * ```
2036
+ *
2037
+ * @default []
2305
2038
  */
2306
- experimentalImportInjection?: boolean;
2039
+ collections?: string[];
2040
+ stencilCoreResolvedId?: string;
2041
+ }
2042
+ /**
2043
+ * DOM patches for light-dom / scoped components that use `<slot>`.
2044
+ *
2045
+ * These patches shield the component's slot machinery from framework DOM mutations
2046
+ * (e.g. when Angular or React insert / remove nodes they route directly to the host
2047
+ * element, bypassing the slot polyfill) and prevent hydration errors when a framework
2048
+ * encounters Stencil's internal slot reference nodes during SSR reconciliation.
2049
+ *
2050
+ * Patches are only applied at runtime when a component is both non-shadow **and**
2051
+ * declares at least one `<slot>`, so enabling them has no effect on pure shadow-DOM
2052
+ * components.
2053
+ *
2054
+ * Set to `true` (default) to enable all patches, `false` to disable all, or an object
2055
+ * for granular control.
2056
+ */
2057
+ type LightDomPatches = {
2058
+ /** Patches `childNodes`/`children` getters to return only slotted content. */childNodes?: boolean; /** Patches `cloneNode()` to correctly deep-clone slotted content. */
2059
+ cloneNode?: boolean; /** Patches `appendChild()`, `insertBefore()`, and `removeChild()` to route to the correct slot. */
2060
+ domMutations?: boolean; /** Patches `textContent` to act like shadow DOM (reads/writes slotted text only). */
2061
+ textContent?: boolean;
2062
+ };
2063
+ /**
2064
+ * Compatibility and workaround flags for framework integration and bundler edge cases.
2065
+ * These are opt-in runtime behaviors that aren't needed by every project.
2066
+ */
2067
+ interface ConfigCompat {
2307
2068
  /**
2308
2069
  * Projects that use a Stencil library built using the `dist` output target may have trouble lazily
2309
2070
  * loading components when using a bundler such as Vite or Parcel. Setting this flag to `true` will change how Stencil
2310
2071
  * lazily loads components in a way that works with additional bundlers. Setting this flag to `true` will increase
2311
- * the size of the compiled output. Defaults to `false`.
2072
+ * the size of the compiled output. Defaults to `true`.
2312
2073
  */
2313
2074
  enableImportInjection?: boolean;
2314
2075
  /**
@@ -2323,76 +2084,18 @@ interface ConfigExtrasBase {
2323
2084
  */
2324
2085
  initializeNextTick?: boolean;
2325
2086
  /**
2326
- * Enables the tagNameTransform option of `defineCustomElements()`, so the component tagName
2327
- * can be customized at runtime. Defaults to `false`.
2328
- * @deprecated This option has been deprecated in favour of `setTagTransformer` and `transformTag`. It will be removed in a future major version of Stencil.
2329
- */
2330
- tagNameTransform?: boolean;
2331
- /**
2332
- * Adds `transformTag` calls to css strings and querySelector(All) calls
2087
+ * Adds `transformTag` calls to css strings and querySelector(All) calls.
2088
+ * Use `'prod'` to enable only in production builds.
2333
2089
  */
2334
2090
  additionalTagTransformers?: boolean | 'prod';
2335
2091
  /**
2336
- * Experimental flag.
2337
- * Updates the behavior of scoped components to align more closely with the behavior of the native
2338
- * Shadow DOM when using `slot`s.
2339
- * Defaults to `false`.
2340
- */
2341
- experimentalScopedSlotChanges?: boolean;
2342
- /**
2343
- * By default Stencil turns the stylesheet provided to `globalStyle` into a constructable stylesheet
2344
- * and adds it to each component when rendered on the client which can be useful for sharing styles
2345
- * efficiently across components.
2346
- *
2347
- * If you want Stencil to also add the `globalStyle` to each component when rendering on the server
2348
- * then set this to `true`. If your `globalStyle` sheet is large then doing this may bloat the size
2349
- * of your SSR output when using declarative-shadow-dom.
2350
- *
2351
- * Setting this to `false` will prevent Stencil from adding any `globalStyle` to each component.
2352
- *
2353
- * Defaults to `'client'`.
2092
+ * DOM patches for light-dom / scoped components that use `<slot>`.
2093
+ * See {@link LightDomPatches} for granular control. Defaults to `true`.
2354
2094
  */
2355
- addGlobalStyleToComponents?: boolean | 'client';
2095
+ lightDomPatches?: boolean | LightDomPatches;
2356
2096
  }
2357
- type ConfigExtrasSlotFixes<ExperimentalFixesEnabled extends boolean, IndividualFlags extends boolean> = {
2358
- /**
2359
- * By default, the slot polyfill does not update `appendChild()` so that it appends
2360
- * new child nodes into the correct child slot like how shadow dom works. This is an opt-in
2361
- * polyfill for those who need it when using `element.appendChild(node)` and expecting the
2362
- * child to be appended in the same location shadow dom would. This is not required for
2363
- * IE11 or Edge 18, but can be enabled if the app is using `appendChild()`. Defaults to `false`.
2364
- */
2365
- appendChildSlotFix?: IndividualFlags;
2366
- /**
2367
- * By default, the runtime does not polyfill `cloneNode()` when cloning a component
2368
- * that uses the slot polyfill. This is an opt-in polyfill for those who need it.
2369
- * This is not required for IE11 or Edge 18, but can be enabled if the app is using
2370
- * `cloneNode()` and unexpected node are being cloned due to the slot polyfill
2371
- * simulating shadow dom. Defaults to `false`.
2372
- */
2373
- cloneNodeFix?: IndividualFlags;
2374
- /**
2375
- * Experimental flag to align the behavior of invoking `textContent` on a scoped component to act more like a
2376
- * component that uses the shadow DOM. Defaults to `false`
2377
- */
2378
- scopedSlotTextContentFix?: IndividualFlags;
2379
- /**
2380
- * For browsers that do not support shadow dom (IE11 and Edge 18 and below), slot is polyfilled
2381
- * to simulate the same behavior. However, the host element's `childNodes` and `children`
2382
- * getters are not patched to only show the child nodes and elements of the default slot.
2383
- * Defaults to `false`.
2384
- */
2385
- slotChildNodesFix?: IndividualFlags;
2386
- /**
2387
- * Enables all slot-related fixes such as {@link slotChildNodesFix}, and
2388
- * {@link scopedSlotTextContentFix}.
2389
- */
2390
- experimentalSlotFixes?: ExperimentalFixesEnabled;
2391
- };
2392
- type ConfigExtras = ConfigExtrasBase & (ConfigExtrasSlotFixes<true, true> | ConfigExtrasSlotFixes<false, boolean>);
2393
2097
  interface Config extends StencilConfig {
2394
2098
  buildAppCore?: boolean;
2395
- buildDocs?: boolean;
2396
2099
  configPath?: string;
2397
2100
  writeLog?: boolean;
2398
2101
  devServer?: DevServerConfig;
@@ -2406,6 +2109,11 @@ interface Config extends StencilConfig {
2406
2109
  tsWatchOptions?: any;
2407
2110
  _isValidated?: boolean;
2408
2111
  _isTesting?: boolean;
2112
+ /**
2113
+ * Internal flag set when --docs CLI flag is used.
2114
+ * Forces docs output targets to build even in dev mode.
2115
+ */
2116
+ _docsFlag?: boolean;
2409
2117
  /**
2410
2118
  * Whether running in a CI environment (disables interactive features, adjusts worker count)
2411
2119
  */
@@ -2430,10 +2138,6 @@ interface Config extends StencilConfig {
2430
2138
  * Whether to generate service worker
2431
2139
  */
2432
2140
  generateServiceWorker?: boolean;
2433
- /**
2434
- * Whether e2e tests are being run
2435
- */
2436
- e2eTests?: boolean;
2437
2141
  /**
2438
2142
  * Dev server address override
2439
2143
  */
@@ -2492,7 +2196,7 @@ type RequireFields<T, K extends keyof T> = T & { [P in K]-?: T[P] };
2492
2196
  /**
2493
2197
  * Fields in {@link Config} to make required for {@link ValidatedConfig}
2494
2198
  */
2495
- type StrictConfigFields = keyof Pick<Config, 'buildEs5' | 'cacheDir' | 'devMode' | 'devServer' | 'extras' | 'fsNamespace' | 'hashFileNames' | 'hashedFileNameLength' | 'hydratedFlag' | 'logLevel' | 'logger' | 'minifyCss' | 'minifyJs' | 'namespace' | 'outputTargets' | 'packageJsonFilePath' | 'rollupConfig' | 'rootDir' | 'srcDir' | 'srcIndexHtml' | 'sys' | 'testing' | 'transformAliasedImportPaths' | 'validatePrimaryPackageOutputTarget'>;
2199
+ type StrictConfigFields = keyof Pick<Config, 'cacheDir' | 'devServer' | 'compat' | 'fsNamespace' | 'hydratedFlag' | 'logLevel' | 'logger' | 'minifyCss' | 'minifyJs' | 'namespace' | 'outputTargets' | 'packageJsonFilePath' | 'rolldownConfig' | 'rootDir' | 'srcDir' | 'srcIndexHtml' | 'sys' | 'transformAliasedImportPaths'>;
2496
2200
  /**
2497
2201
  * A version of {@link Config} that makes certain fields required. This type represents a valid configuration entity.
2498
2202
  * When a configuration is received by the user, it is a bag of unverified data. In order to make stricter guarantees
@@ -2500,6 +2204,11 @@ type StrictConfigFields = keyof Pick<Config, 'buildEs5' | 'cacheDir' | 'devMode'
2500
2204
  * validations have occurred at runtime.
2501
2205
  */
2502
2206
  type ValidatedConfig = RequireFields<Config, StrictConfigFields> & {
2207
+ /**
2208
+ * Whether the build is running in development mode.
2209
+ * Set by the `--dev` CLI flag. Not user-configurable in `stencil.config.ts`.
2210
+ */
2211
+ devMode: boolean;
2503
2212
  sourceMap: boolean;
2504
2213
  };
2505
2214
  interface HydratedFlag {
@@ -2543,8 +2252,7 @@ interface StencilDevServerConfig {
2543
2252
  * EXPERIMENTAL!
2544
2253
  * During development, node modules can be independently requested and bundled, making for
2545
2254
  * faster build times. This is only available using the Stencil Dev Server throughout
2546
- * development. Production builds and builds with the `es5` flag will override
2547
- * this setting to `false`. Default is `false`.
2255
+ * development. Production builds will override this setting to `false`. Default is `false`.
2548
2256
  */
2549
2257
  experimentalDevModules?: boolean;
2550
2258
  /**
@@ -2705,11 +2413,11 @@ interface PrerenderConfig {
2705
2413
  * Run after each `document` is hydrated, but before it is serialized
2706
2414
  * into an HTML string. Hook is passed the `document` and its `URL`.
2707
2415
  */
2708
- afterHydrate?(document: Document, url: URL, results: PrerenderUrlResults): any | Promise<any>;
2416
+ afterSsr?(document: Document, url: URL, results: PrerenderUrlResults): any | Promise<any>;
2709
2417
  /**
2710
2418
  * Run before each `document` is hydrated. Hook is passed the `document` it's `URL`.
2711
2419
  */
2712
- beforeHydrate?(document: Document, url: URL): any | Promise<any>;
2420
+ beforeSsr?(document: Document, url: URL): any | Promise<any>;
2713
2421
  /**
2714
2422
  * Runs after the template Document object has serialize into an
2715
2423
  * HTML formatted string. Returns an HTML string to be used as the
@@ -2753,9 +2461,9 @@ interface PrerenderConfig {
2753
2461
  */
2754
2462
  filePath?(url: URL, filePath: string): string;
2755
2463
  /**
2756
- * Returns the hydrate options to use for each individual prerendered page.
2464
+ * Returns the prerender options to use for each individual prerendered page.
2757
2465
  */
2758
- hydrateOptions?(url: URL): PrerenderHydrateOptions;
2466
+ prerenderOptions?(url: URL): PrerenderOptions;
2759
2467
  /**
2760
2468
  * Returns the template file's content. The template is the base
2761
2469
  * HTML used for all prerendered pages.
@@ -2779,7 +2487,7 @@ interface PrerenderConfig {
2779
2487
  */
2780
2488
  trailingSlash?: boolean;
2781
2489
  }
2782
- interface HydrateDocumentOptions {
2490
+ interface SsrDocumentOptions {
2783
2491
  /**
2784
2492
  * Build ID that will be added to `<html data-stencil-build="BUILD_ID">`. By default
2785
2493
  * a random ID will be generated
@@ -2796,7 +2504,7 @@ interface HydrateDocumentOptions {
2796
2504
  * JavaScript to read the structure of the HTML and rebuild each
2797
2505
  * component. Defaults to `true`.
2798
2506
  */
2799
- clientHydrateAnnotations?: boolean;
2507
+ clientSsrAnnotations?: boolean;
2800
2508
  /**
2801
2509
  * Constrain `setTimeout()` to 1ms, but still async. Also
2802
2510
  * only allows `setInterval()` to fire once, also constrained to 1ms.
@@ -2895,10 +2603,19 @@ interface HydrateDocumentOptions {
2895
2603
  default: 'declarative-shadow-dom' | 'scoped';
2896
2604
  } | boolean;
2897
2605
  }
2898
- interface SerializeDocumentOptions extends HydrateDocumentOptions {
2606
+ /**
2607
+ * Backwards compat for v4
2608
+ * @deprecated - use SsrDocumentOptions instead
2609
+ */
2610
+ interface HydrateDocumentOptions extends SsrDocumentOptions {}
2611
+ interface SerializeDocumentOptions extends SsrDocumentOptions {
2899
2612
  /**
2900
2613
  * Runs after the `document` has been hydrated.
2901
2614
  */
2615
+ afterSsr?(document: any): any | Promise<any>;
2616
+ /**
2617
+ * @deprecated Use `afterSsr` instead.
2618
+ */
2902
2619
  afterHydrate?(document: any): any | Promise<any>;
2903
2620
  /**
2904
2621
  * Sets an approximate line width the HTML should attempt to stay within.
@@ -2911,6 +2628,10 @@ interface SerializeDocumentOptions extends HydrateDocumentOptions {
2911
2628
  /**
2912
2629
  * Runs before the `document` has been hydrated.
2913
2630
  */
2631
+ beforeSsr?(document: any): any | Promise<any>;
2632
+ /**
2633
+ * @deprecated Use `beforeSsr` instead.
2634
+ */
2914
2635
  beforeHydrate?(document: any): any | Promise<any>;
2915
2636
  /**
2916
2637
  * Format the HTML in a nicely indented format.
@@ -2948,12 +2669,17 @@ interface SerializeDocumentOptions extends HydrateDocumentOptions {
2948
2669
  */
2949
2670
  modes?: ResolutionHandler[];
2950
2671
  }
2951
- interface HydrateFactoryOptions extends SerializeDocumentOptions {
2672
+ interface SsrFactoryOptions extends SerializeDocumentOptions {
2952
2673
  serializeToHtml: boolean;
2953
2674
  destroyWindow: boolean;
2954
2675
  destroyDocument: boolean;
2955
2676
  }
2956
- interface PrerenderHydrateOptions extends SerializeDocumentOptions {
2677
+ /**
2678
+ * Backwards compat for v4
2679
+ * @deprecated - use SsrFactoryOptions instead
2680
+ */
2681
+ interface HydrateFactoryOptions extends SsrFactoryOptions {}
2682
+ interface PrerenderOptions extends SerializeDocumentOptions {
2957
2683
  /**
2958
2684
  * Adds `<link rel="modulepreload">` for modules that will eventually be requested.
2959
2685
  * Defaults to `true`.
@@ -2988,6 +2714,11 @@ interface PrerenderHydrateOptions extends SerializeDocumentOptions {
2988
2714
  */
2989
2715
  staticDocument?: boolean;
2990
2716
  }
2717
+ /**
2718
+ * v4 backwards compat
2719
+ * @deprecated - use PrerenderOptions instead
2720
+ */
2721
+ interface PrerenderHydrateOptions extends PrerenderOptions {}
2991
2722
  interface RobotsTxtOpts {
2992
2723
  urls: string[];
2993
2724
  sitemapUrl: string;
@@ -3077,25 +2808,6 @@ interface CompilerSystem {
3077
2808
  */
3078
2809
  createWorkerController?(maxConcurrentWorkers: number): WorkerMainController;
3079
2810
  encodeToBase64(str: string): string;
3080
- /**
3081
- * @deprecated
3082
- */
3083
- ensureDependencies?(opts: {
3084
- rootDir: string;
3085
- logger: Logger;
3086
- dependencies: CompilerDependency[];
3087
- }): Promise<{
3088
- stencilPath: string;
3089
- diagnostics: Diagnostic$1[];
3090
- }>;
3091
- /**
3092
- * @deprecated
3093
- */
3094
- ensureResources?(opts: {
3095
- rootDir: string;
3096
- logger: Logger;
3097
- dependencies: CompilerDependency[];
3098
- }): Promise<void>;
3099
2811
  /**
3100
2812
  * process.exit()
3101
2813
  */
@@ -3315,18 +3027,18 @@ interface ResolveModuleIdResults {
3315
3027
  * A controller which provides for communication and coordination between
3316
3028
  * threaded workers.
3317
3029
  */
3318
- interface WorkerMainController {
3030
+ interface WorkerMainController<T extends Record<string, (...args: any[]) => Promise<any>> = Record<string, (...args: any[]) => Promise<any>>> {
3319
3031
  /**
3320
3032
  * Send a given set of arguments to a worker
3321
3033
  */
3322
- send(...args: any[]): Promise<any>;
3034
+ send<K extends keyof T>(methodName: K, ...args: Parameters<T[K]>): ReturnType<T[K]>;
3323
3035
  /**
3324
3036
  * Handle a particular method
3325
3037
  *
3326
3038
  * @param name of the method to be passed to a worker
3327
3039
  * @returns a Promise wrapping the results
3328
3040
  */
3329
- handler(name: string): (...args: any[]) => Promise<any>;
3041
+ handler<K extends keyof T>(name: K): T[K];
3330
3042
  /**
3331
3043
  * Destroy the worker represented by this instance, rejecting all outstanding
3332
3044
  * tasks and killing the child process.
@@ -3393,6 +3105,7 @@ interface BuildNoChangeResults {
3393
3105
  interface CompilerBuildResults {
3394
3106
  buildId: number;
3395
3107
  componentGraph?: BuildResultsComponentGraph;
3108
+ components: ComponentCompilerMeta[];
3396
3109
  diagnostics: Diagnostic$1[];
3397
3110
  dirsAdded: string[];
3398
3111
  dirsDeleted: string[];
@@ -3404,9 +3117,10 @@ interface CompilerBuildResults {
3404
3117
  hasError: boolean;
3405
3118
  hasSuccessfulBuild: boolean;
3406
3119
  hmr?: HotModuleReplacement;
3407
- hydrateAppFilePath?: string;
3120
+ ssrAppFilePath?: string;
3408
3121
  isRebuild: boolean;
3409
3122
  namespace: string;
3123
+ fsNamespace: string;
3410
3124
  outputs: BuildOutput[];
3411
3125
  rootDir: string;
3412
3126
  srcDir: string;
@@ -3567,8 +3281,8 @@ interface ConfigBundle {
3567
3281
  }
3568
3282
  /**
3569
3283
  * A file and/or directory copy operation that may be specified as part of
3570
- * certain output targets for Stencil (in particular `dist`,
3571
- * `dist-custom-elements`, and `www`).
3284
+ * certain output targets for Stencil (in particular `loader-bundle`,
3285
+ * `standalone`, and `www`).
3572
3286
  */
3573
3287
  interface CopyTask {
3574
3288
  /**
@@ -3589,8 +3303,9 @@ interface CopyTask {
3589
3303
  */
3590
3304
  dest?: string;
3591
3305
  /**
3592
- * An optional array of glob patterns to exclude from the copy operation.
3593
- * @default ['**\/__mocks__/**', '**\/__fixtures__/**', '**\/dist/**', '**\/.{idea,git,cache,output,temp}/**', '**\/.ds_store', '**\/.gitignore', '**\/desktop.ini', '**\/thumbs.db']
3306
+ * Additional glob patterns to exclude from the copy operation, merged with
3307
+ * the built-in defaults: `__mocks__`, `__fixtures__`, `dist`, hidden dirs,
3308
+ * `.ds_store`, `.gitignore`, `desktop.ini`, `thumbs.db`.
3594
3309
  */
3595
3310
  ignore?: string[];
3596
3311
  /**
@@ -3669,412 +3384,42 @@ interface StencilDocsConfig {
3669
3384
  };
3670
3385
  };
3671
3386
  }
3672
- interface BundlingConfig {
3673
- /**
3674
- * @deprecated the `namedExports` field is no longer honored by `@rollup/plugin-commonjs` and is not used by Stencil.
3675
- * This field can be safely removed from your Stencil configuration file.
3676
- */
3677
- namedExports?: {
3678
- [key: string]: string[];
3679
- };
3680
- }
3681
- interface NodeResolveConfig {
3682
- exportConditions?: string[];
3683
- browser?: boolean;
3684
- moduleDirectories?: string[];
3685
- modulePaths?: string[];
3686
- dedupe?: string[] | ((importee: string) => boolean);
3687
- extensions?: readonly string[];
3688
- jail?: string;
3689
- mainFields?: readonly string[];
3690
- modulesOnly?: boolean;
3691
- preferBuiltins?: boolean | ((module: string) => boolean);
3692
- resolveOnly?: ReadonlyArray<string | RegExp> | null | ((module: string) => boolean);
3693
- rootDir?: string;
3694
- allowExportsFolderMapping?: boolean;
3695
- /**
3696
- * @see https://github.com/browserify/resolve#resolveid-opts-cb
3697
- * @deprecated the `customResolveOptions` field is no longer honored in future versions of
3698
- * `@rollup/plugin-node-resolve`. If you are currently using it, please open a new issue in the Stencil repo to
3699
- * describe your use case & provide input (https://github.com/stenciljs/core/issues/new/choose)
3700
- */
3701
- customResolveOptions?: {
3702
- basedir?: string;
3703
- package?: string;
3704
- extensions?: string[];
3705
- readFile?: Function;
3706
- isFile?: Function;
3707
- isDirectory?: Function;
3708
- packageFilter?: Function;
3709
- pathFilter?: Function;
3710
- paths?: Function | string[];
3711
- moduleDirectory?: string | string[];
3712
- preserveSymlinks?: boolean;
3713
- };
3714
- }
3715
- interface RollupConfig {
3716
- inputOptions?: RollupInputOptions;
3717
- outputOptions?: RollupOutputOptions;
3718
- }
3719
- interface RollupInputOptions {
3720
- context?: string;
3721
- moduleContext?: ((id: string) => string) | {
3722
- [id: string]: string;
3723
- };
3387
+ /** Options for rolldown's built-in module resolver, passed directly to rolldown's `resolve` input option. */
3388
+ type NodeResolveConfig = NonNullable<InputOptions['resolve']>;
3389
+ interface RolldownConfig {
3724
3390
  treeshake?: boolean;
3725
- maxParallelFileOps?: number;
3726
3391
  external?: (string | RegExp)[] | string | RegExp | ((source: string, importer: string | undefined, isResolved: boolean) => boolean | null | undefined);
3727
3392
  }
3728
- interface RollupOutputOptions {
3729
- globals?: {
3730
- [name: string]: string;
3731
- } | ((name: string) => string);
3732
- }
3733
- /**
3734
- * @deprecated Integrated testing support will be removed in Stencil v5. Migrate spec tests to
3735
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) and e2e / browser tests to either
3736
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) or
3737
- * [`@stencil/playwright`](https://github.com/stenciljs/playwright).
3738
- * See https://github.com/stenciljs/core/issues/6584 for full discussion and migration guidance.
3739
- */
3740
- interface Testing {
3741
- run(opts: TestingRunOptions): Promise<boolean>;
3742
- destroy(): Promise<void>;
3743
- }
3744
- declare type Path = string;
3745
- declare type TransformerConfig = [string, Record<string, unknown>];
3746
3393
  /**
3747
- * Options for initiating a run of Stencil tests (spec and/or end-to-end)
3394
+ * This sets the log level hierarchy for our terminal logger, ranging from
3395
+ * most to least verbose.
3396
+ *
3397
+ * Ordering the levels like this lets us easily check whether we should log a
3398
+ * message at a given time. For instance, if the log level is set to `'warn'`,
3399
+ * then anything passed to the logger with level `'warn'` or `'error'` should
3400
+ * be logged, but we should _not_ log anything with level `'info'` or `'debug'`.
3401
+ *
3402
+ * If we have a current log level `currentLevel` and a message with level
3403
+ * `msgLevel` is passed to the logger, we can determine whether or not we should
3404
+ * log it by checking if the log level on the message is further up or at the
3405
+ * same level in the hierarchy than `currentLevel`, like so:
3406
+ *
3407
+ * ```ts
3408
+ * LOG_LEVELS.indexOf(msgLevel) >= LOG_LEVELS.indexOf(currentLevel)
3409
+ * ```
3748
3410
  *
3749
- * @deprecated Integrated testing support will be removed in Stencil v5. Migrate spec tests to
3750
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) and e2e / browser tests to either
3751
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) or
3752
- * [`@stencil/playwright`](https://github.com/stenciljs/playwright).
3753
- * See https://github.com/stenciljs/core/issues/6584 for full discussion and migration guidance.
3411
+ * NOTE: for the reasons described above, do not change the order of the entries
3412
+ * in this array without good reason!
3754
3413
  */
3755
- interface TestingRunOptions {
3756
- /**
3757
- * If true, run end-to-end tests
3758
- */
3759
- e2e?: boolean;
3760
- /**
3761
- * If true, run screenshot tests
3762
- */
3763
- screenshot?: boolean;
3764
- /**
3765
- * If true, run spec tests
3766
- */
3767
- spec?: boolean;
3768
- /**
3769
- * If true, update 'golden' screenshots. Otherwise, compare against priori.
3770
- */
3771
- updateScreenshot?: boolean;
3772
- }
3414
+ declare const LOG_LEVELS: readonly ["debug", "info", "warn", "error"];
3415
+ type LogLevel = (typeof LOG_LEVELS)[number];
3773
3416
  /**
3774
- * @deprecated Integrated testing support will be removed in Stencil v5. Migrate spec tests to
3775
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) and e2e / browser tests to either
3776
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) or
3777
- * [`@stencil/playwright`](https://github.com/stenciljs/playwright).
3778
- * See https://github.com/stenciljs/core/issues/6584 for full discussion and migration guidance.
3779
- */
3780
- interface JestConfig {
3781
- /**
3782
- * This option tells Jest that all imported modules in your tests should be mocked automatically.
3783
- * All modules used in your tests will have a replacement implementation, keeping the API surface. Default: false
3784
- */
3785
- automock?: boolean;
3786
- /**
3787
- * By default, Jest runs all tests and produces all errors into the console upon completion.
3788
- * The bail config option can be used here to have Jest stop running tests after the first failure. Default: false
3789
- */
3790
- bail?: boolean | number;
3791
- /**
3792
- * The directory where Jest should store its cached dependency information. Jest attempts to scan your dependency tree once (up-front)
3793
- * and cache it in order to ease some of the filesystem raking that needs to happen while running tests. This config option lets you
3794
- * customize where Jest stores that cache data on disk. Default: "/tmp/<path>"
3795
- */
3796
- cacheDirectory?: string;
3797
- /**
3798
- * Automatically clear mock calls and instances between every test. Equivalent to calling jest.clearAllMocks()
3799
- * between each test. This does not remove any mock implementation that may have been provided. Default: false
3800
- */
3801
- clearMocks?: boolean;
3802
- /**
3803
- * Indicates whether the coverage information should be collected while executing the test. Because this retrofits all
3804
- * executed files with coverage collection statements, it may significantly slow down your tests. Default: false
3805
- */
3806
- collectCoverage?: boolean;
3807
- /**
3808
- * An array of glob patterns indicating a set of files for which coverage information should be collected.
3809
- * If a file matches the specified glob pattern, coverage information will be collected for it even if no tests exist
3810
- * for this file and it's never required in the test suite. Default: undefined
3811
- */
3812
- collectCoverageFrom?: any[];
3813
- /**
3814
- * The directory where Jest should output its coverage files. Default: undefined
3815
- */
3816
- coverageDirectory?: string;
3817
- /**
3818
- * An array of regexp pattern strings that are matched against all file paths before executing the test. If the file path matches
3819
- * any of the patterns, coverage information will be skipped. These pattern strings match against the full path.
3820
- * Use the <rootDir> string token to include the path to your project's root directory to prevent it from accidentally
3821
- * ignoring all of your files in different environments that may have different root directories.
3822
- * Example: ["<rootDir>/build/", "<rootDir>/node_modules/"]. Default: ["/node_modules/"]
3823
- */
3824
- coveragePathIgnorePatterns?: any[];
3825
- /**
3826
- * A list of reporter names that Jest uses when writing coverage reports. Any istanbul reporter can be used.
3827
- * Default: `["json", "lcov", "text"]`
3828
- */
3829
- coverageReporters?: any[];
3830
- /**
3831
- * This will be used to configure minimum threshold enforcement for coverage results. Thresholds can be specified as global,
3832
- * as a glob, and as a directory or file path. If thresholds aren't met, jest will fail. Thresholds specified as a positive
3833
- * number are taken to be the minimum percentage required. Thresholds specified as a negative number represent the maximum
3834
- * number of uncovered entities allowed. Default: undefined
3835
- */
3836
- coverageThreshold?: any;
3837
- errorOnDeprecated?: boolean;
3838
- forceCoverageMatch?: any[];
3839
- globals?: any;
3840
- globalSetup?: string;
3841
- globalTeardown?: string;
3842
- /**
3843
- * An array of directory names to be searched recursively up from the requiring module's location. Setting this option will
3844
- * override the default, if you wish to still search node_modules for packages include it along with any other
3845
- * options: ["node_modules", "bower_components"]. Default: ["node_modules"]
3846
- */
3847
- moduleDirectories?: string[];
3848
- /**
3849
- * An array of file extensions your modules use. If you require modules without specifying a file extension,
3850
- * these are the extensions Jest will look for. Default: ['ts', 'tsx', 'js', 'json']
3851
- */
3852
- moduleFileExtensions?: string[];
3853
- moduleNameMapper?: any;
3854
- modulePaths?: any[];
3855
- modulePathIgnorePatterns?: any[];
3856
- notify?: boolean;
3857
- notifyMode?: string;
3858
- preset?: string;
3859
- prettierPath?: string;
3860
- projects?: any;
3861
- reporters?: any;
3862
- resetMocks?: boolean;
3863
- resetModules?: boolean;
3864
- resolver?: Path | null;
3865
- restoreMocks?: boolean;
3866
- rootDir?: string;
3867
- roots?: any[];
3868
- runner?: string;
3869
- /**
3870
- * The paths to modules that run some code to configure or set up the testing environment before each test.
3871
- * Since every test runs in its own environment, these scripts will be executed in the testing environment
3872
- * immediately before executing the test code itself. Default: []
3873
- */
3874
- setupFiles?: string[];
3875
- setupFilesAfterEnv?: string[];
3876
- snapshotSerializers?: any[];
3877
- testEnvironment?: string;
3878
- testEnvironmentOptions?: any;
3879
- testMatch?: string[];
3880
- testPathIgnorePatterns?: string[];
3881
- testPreset?: string;
3882
- testRegex?: string[];
3883
- testResultsProcessor?: string;
3884
- testRunner?: string;
3885
- testURL?: string;
3886
- timers?: string;
3887
- transform?: {
3888
- [regex: string]: Path | TransformerConfig;
3889
- };
3890
- transformIgnorePatterns?: any[];
3891
- unmockedModulePathPatterns?: any[];
3892
- verbose?: boolean;
3893
- watchPathIgnorePatterns?: any[];
3894
- }
3895
- /**
3896
- * Configuration for Stencil's integrated testing (Jest + Puppeteer).
3897
- *
3898
- * @deprecated Integrated testing support will be removed in Stencil v5. Migrate spec tests to
3899
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) and e2e / browser tests to either
3900
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) or
3901
- * [`@stencil/playwright`](https://github.com/stenciljs/playwright).
3902
- * See https://github.com/stenciljs/core/issues/6584 for full discussion and migration guidance.
3903
- */
3904
- interface TestingConfig extends JestConfig {
3905
- /**
3906
- * The `allowableMismatchedPixels` value is used to determine an acceptable
3907
- * number of pixels that can be mismatched before the image is considered
3908
- * to have changes. Realistically, two screenshots representing the same
3909
- * content may have a small number of pixels that are not identical due to
3910
- * anti-aliasing, which is perfectly normal. If the `allowableMismatchedRatio`
3911
- * is provided it will take precedence, otherwise `allowableMismatchedPixels`
3912
- * will be used.
3913
- */
3914
- allowableMismatchedPixels?: number;
3915
- /**
3916
- * The `allowableMismatchedRatio` ranges from `0` to `1` and is used to
3917
- * determine an acceptable ratio of pixels that can be mismatched before
3918
- * the image is considered to have changes. Realistically, two screenshots
3919
- * representing the same content may have a small number of pixels that
3920
- * are not identical due to anti-aliasing, which is perfectly normal. The
3921
- * `allowableMismatchedRatio` is the number of pixels that were mismatched,
3922
- * divided by the total number of pixels in the screenshot. For example,
3923
- * a ratio value of `0.06` means 6% of the pixels can be mismatched before
3924
- * the image is considered to have changes. If the `allowableMismatchedRatio`
3925
- * is provided it will take precedence, otherwise `allowableMismatchedPixels`
3926
- * will be used.
3927
- */
3928
- allowableMismatchedRatio?: number;
3929
- /**
3930
- * Matching threshold while comparing two screenshots. Value ranges from `0` to `1`.
3931
- * Smaller values make the comparison more sensitive. The `pixelmatchThreshold`
3932
- * value helps to ignore anti-aliasing. Default: `0.1`
3933
- */
3934
- pixelmatchThreshold?: number;
3935
- /**
3936
- * Additional arguments to pass to the browser instance.
3937
- */
3938
- browserArgs?: string[];
3939
- /**
3940
- * Path to a Chromium or Chrome executable to run instead of the bundled Chromium.
3941
- * @default env.PUPPETEER_EXECUTABLE_PATH || env.CHROME_PATH || puppeteer.computeExecutablePath()
3942
- */
3943
- browserExecutablePath?: string;
3944
- /**
3945
- * Url of remote Chrome instance to use instead of local Chrome.
3946
- */
3947
- browserWSEndpoint?: string;
3948
- /**
3949
- * The browser channel to use for e2e tests (stable, beta, dev or canary).
3950
- * @default 'chrome'
3951
- */
3952
- browserChannel?: 'chrome' | 'chrome-beta' | 'chrome-dev' | 'chrome-canary';
3953
- /**
3954
- * Whether to run browser e2e tests in headless mode using Chrome Headless Shell
3955
- * @see https://developer.chrome.com/blog/chrome-headless-shell
3956
- * @default shell
3957
- */
3958
- browserHeadless?: boolean | 'shell';
3959
- /**
3960
- * Slows down e2e browser operations by the specified amount of milliseconds.
3961
- * Useful so that you can see what is going on.
3962
- */
3963
- browserSlowMo?: number;
3964
- /**
3965
- * By default, all E2E pages wait until the "load" event, this global setting can be used
3966
- * to change the default `waitUntil` behavior.
3967
- */
3968
- browserWaitUntil?: 'load' | 'domcontentloaded' | 'networkidle0' | 'networkidle2';
3969
- /**
3970
- * Whether to auto-open a DevTools panel for each tab.
3971
- * If this option is true, the headless option will be set false
3972
- */
3973
- browserDevtools?: boolean;
3974
- /**
3975
- * Array of browser emulations to be used during _screenshot_ tests. A full screenshot
3976
- * test is ran for each emulation.
3977
- *
3978
- * To emulate a device display for your e2e tests, use the `setViewport` method on a test's E2E page.
3979
- * An example can be found in [the Stencil docs](https://stenciljs.com/docs/end-to-end-testing#emulate-a-display).
3980
- */
3981
- emulate?: EmulateConfig[];
3982
- /**
3983
- * Path to the Screenshot Connector module.
3984
- */
3985
- screenshotConnector?: string;
3986
- /**
3987
- * Timeout for the pixelmatch worker to resolve (in ms).
3988
- * @default 2500
3989
- */
3990
- screenshotTimeout?: number | null;
3991
- /**
3992
- * Amount of time in milliseconds to wait before a screenshot is taken.
3993
- */
3994
- waitBeforeScreenshot?: number;
3995
- }
3996
- /**
3997
- * @deprecated Integrated testing support will be removed in Stencil v5. Migrate spec tests to
3998
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) and e2e / browser tests to either
3999
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) or
4000
- * [`@stencil/playwright`](https://github.com/stenciljs/playwright).
4001
- * See https://github.com/stenciljs/core/issues/6584 for full discussion and migration guidance.
4002
- */
4003
- interface EmulateConfig {
4004
- /**
4005
- * Predefined device descriptor name, such as "iPhone X" or "Nexus 10".
4006
- * For a complete list please see: https://github.com/puppeteer/puppeteer/blob/main/src/common/DeviceDescriptors.ts
4007
- */
4008
- device?: string;
4009
- /**
4010
- * User-Agent to be used. Defaults to the user-agent of the installed Puppeteer version.
4011
- */
4012
- userAgent?: string;
4013
- viewport?: EmulateViewport;
4014
- }
4015
- /**
4016
- * @deprecated Integrated testing support will be removed in Stencil v5. Migrate spec tests to
4017
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) and e2e / browser tests to either
4018
- * [`@stencil/vitest`](https://github.com/stenciljs/vitest) or
4019
- * [`@stencil/playwright`](https://github.com/stenciljs/playwright).
4020
- * See https://github.com/stenciljs/core/issues/6584 for full discussion and migration guidance.
4021
- */
4022
- interface EmulateViewport {
4023
- /**
4024
- * Page width in pixels.
4025
- */
4026
- width: number;
4027
- /**
4028
- * page height in pixels.
4029
- */
4030
- height: number;
4031
- /**
4032
- * Specify device scale factor (can be thought of as dpr). Defaults to 1.
4033
- */
4034
- deviceScaleFactor?: number;
4035
- /**
4036
- * Whether the meta viewport tag is taken into account. Defaults to false.
4037
- */
4038
- isMobile?: boolean;
4039
- /**
4040
- * Specifies if viewport supports touch events. Defaults to false
4041
- */
4042
- hasTouch?: boolean;
4043
- /**
4044
- * Specifies if viewport is in landscape mode. Defaults to false.
4045
- */
4046
- isLandscape?: boolean;
4047
- }
4048
- /**
4049
- * This sets the log level hierarchy for our terminal logger, ranging from
4050
- * most to least verbose.
4051
- *
4052
- * Ordering the levels like this lets us easily check whether we should log a
4053
- * message at a given time. For instance, if the log level is set to `'warn'`,
4054
- * then anything passed to the logger with level `'warn'` or `'error'` should
4055
- * be logged, but we should _not_ log anything with level `'info'` or `'debug'`.
4056
- *
4057
- * If we have a current log level `currentLevel` and a message with level
4058
- * `msgLevel` is passed to the logger, we can determine whether or not we should
4059
- * log it by checking if the log level on the message is further up or at the
4060
- * same level in the hierarchy than `currentLevel`, like so:
4061
- *
4062
- * ```ts
4063
- * LOG_LEVELS.indexOf(msgLevel) >= LOG_LEVELS.indexOf(currentLevel)
4064
- * ```
4065
- *
4066
- * NOTE: for the reasons described above, do not change the order of the entries
4067
- * in this array without good reason!
4068
- */
4069
- declare const LOG_LEVELS: readonly ["debug", "info", "warn", "error"];
4070
- type LogLevel = (typeof LOG_LEVELS)[number];
4071
- /**
4072
- * Abstract interface representing a logger with the capability to accept log
4073
- * messages at various levels (debug, info, warn, and error), set colors, log
4074
- * time spans, print diagnostic messages, and more.
4075
- *
4076
- * A Node.js-specific implementation of this interface is used when Stencil is
4077
- * building and compiling a project.
3417
+ * Abstract interface representing a logger with the capability to accept log
3418
+ * messages at various levels (debug, info, warn, and error), set colors, log
3419
+ * time spans, print diagnostic messages, and more.
3420
+ *
3421
+ * A Node.js-specific implementation of this interface is used when Stencil is
3422
+ * building and compiling a project.
4078
3423
  */
4079
3424
  interface Logger {
4080
3425
  enableColors: (useColors: boolean) => void;
@@ -4109,49 +3454,91 @@ interface LoggerTimeSpan {
4109
3454
  duration(): number;
4110
3455
  finish(finishedMsg: string, color?: string, bold?: boolean, newLineSuffix?: boolean): number;
4111
3456
  }
4112
- interface OutputTargetDist extends OutputTargetValidationConfig {
4113
- type: 'dist';
3457
+ /**
3458
+ * Output target for generating lazy-loaded component bundles with a loader infrastructure.
3459
+ * This creates an optimized distribution for CDN usage and applications that benefit from
3460
+ * lazy-loading components on demand.
3461
+ *
3462
+ * Formerly known as 'dist' in v4.
3463
+ *
3464
+ * @example
3465
+ * ```typescript
3466
+ * {
3467
+ * type: 'loader-bundle',
3468
+ * dir: 'dist/loader-bundle'
3469
+ * }
3470
+ * ```
3471
+ */
3472
+ interface OutputTargetLoaderBundle extends OutputTargetBaseNext {
3473
+ type: 'loader-bundle';
3474
+ /**
3475
+ * Directory where lazy-loaded bundles will be written.
3476
+ * @default '' (root of output directory)
3477
+ */
4114
3478
  buildDir?: string;
4115
- collectionDir?: string | null;
3479
+ copy?: CopyTask[];
3480
+ empty?: boolean;
4116
3481
  /**
4117
- * When `true` this flag will transform aliased import paths defined in
4118
- * a project's `tsconfig.json` to relative import paths in the compiled output's
4119
- * `dist-collection` bundle if it is generated (i.e. `collectionDir` is set).
3482
+ * Whether to generate CommonJS (CJS) bundles.
4120
3483
  *
4121
- * Paths will be left in aliased format if `false`.
3484
+ * When `true`, generates CJS output in `cjs/` subdirectory.
3485
+ * When `false` (default in v5+), only ESM bundles are generated.
4122
3486
  *
4123
- * @example
4124
- * // tsconfig.json
4125
- * {
4126
- * paths: {
4127
- * "@utils/*": ['/src/utils/*']
4128
- * }
4129
- * }
4130
- *
4131
- * // Source file
4132
- * import * as dateUtils from '@utils/date-utils';
4133
- * // Output file
4134
- * import * as dateUtils from '../utils/date-utils';
3487
+ * @default false
4135
3488
  */
4136
- transformAliasedImportPathsInCollection?: boolean | null;
4137
- typesDir?: string;
3489
+ cjs?: boolean;
4138
3490
  /**
4139
- * Provide a custom path for the ESM loader directory, containing files you can import
3491
+ * Custom path for the loader directory; files you can import
4140
3492
  * in an initiation script within your application to register all your components for
4141
3493
  * lazy loading.
4142
3494
  *
4143
- * @default /dist/loader
3495
+ * @default 'loader' (relative to output directory)
4144
3496
  */
4145
- esmLoaderPath?: string;
4146
- copy?: CopyTask[];
4147
- polyfills?: boolean;
4148
- empty?: boolean;
3497
+ loaderPath?: string;
3498
+ /**
3499
+ * Hash the filenames of generated chunks based on their content.
3500
+ * Enables forever-caching of CDN-served bundles.
3501
+ *
3502
+ * @default true in production, false in dev mode
3503
+ */
3504
+ hashFileNames?: boolean;
3505
+ /**
3506
+ * Number of characters to use for the content hash in filenames.
3507
+ *
3508
+ * @default 8
3509
+ */
3510
+ hashedFileNameLength?: number;
3511
+ /**
3512
+ * When `true`, marks `@stencil/core` as an external dependency in the bundler (ESM/CJS)
3513
+ * distribution output. Consumers must provide `@stencil/core` themselves.
3514
+ *
3515
+ * Has no effect on the browser/CDN build - the runtime is always bundled there.
3516
+ *
3517
+ * @default false
3518
+ */
3519
+ externalRuntime?: boolean;
4149
3520
  }
4150
- interface OutputTargetDistCollection extends OutputTargetValidationConfig {
4151
- type: 'dist-collection';
3521
+ /**
3522
+ * Output target for generating Stencil component source for downstream re-bundling.
3523
+ * This output contains transpiled source code, component metadata, and configuration
3524
+ * that downstream Stencil projects can re-compile and bundle.
3525
+ *
3526
+ * Formerly 'dist-collection' sub-output in v4, now a first-class output target in v5.
3527
+ *
3528
+ * In production builds, this output is auto-generated unless explicitly configured.
3529
+ *
3530
+ * @example
3531
+ * ```typescript
3532
+ * {
3533
+ * type: 'collection',
3534
+ * dir: 'dist/collection',
3535
+ * transformAliasedImportPaths: true
3536
+ * }
3537
+ * ```
3538
+ */
3539
+ interface OutputTargetCollection extends OutputTargetBaseNext {
3540
+ type: 'collection';
4152
3541
  empty?: boolean;
4153
- dir: string;
4154
- collectionDir: string;
4155
3542
  /**
4156
3543
  * When `true` this flag will transform aliased import paths defined in
4157
3544
  * a project's `tsconfig.json` to relative import paths in the compiled output.
@@ -4173,49 +3560,135 @@ interface OutputTargetDistCollection extends OutputTargetValidationConfig {
4173
3560
  */
4174
3561
  transformAliasedImportPaths?: boolean | null;
4175
3562
  }
4176
- interface OutputTargetDistTypes extends OutputTargetValidationConfig {
4177
- type: 'dist-types';
4178
- dir: string;
4179
- typesDir: string;
3563
+ /**
3564
+ * Output target for generating TypeScript type definitions (.d.ts files).
3565
+ *
3566
+ * Formerly a sub-output of 'dist' and 'dist-custom-elements' in v4,
3567
+ * now a first-class output target in v5 that can be shared across multiple outputs.
3568
+ *
3569
+ * In production builds, this output is auto-generated unless explicitly configured.
3570
+ *
3571
+ * @example
3572
+ * ```typescript
3573
+ * {
3574
+ * type: 'types',
3575
+ * dir: 'dist/types'
3576
+ * }
3577
+ * ```
3578
+ */
3579
+ interface OutputTargetTypes extends OutputTargetBaseNext {
3580
+ type: 'types';
3581
+ empty?: boolean;
4180
3582
  }
4181
3583
  interface OutputTargetDistLazy extends OutputTargetBase {
4182
3584
  type: 'dist-lazy';
4183
3585
  dir?: string;
4184
3586
  esmDir?: string;
4185
- esmEs5Dir?: string;
4186
- systemDir?: string;
4187
3587
  cjsDir?: string;
4188
- polyfills?: boolean;
4189
3588
  isBrowserBuild?: boolean;
4190
3589
  esmIndexFile?: string;
4191
3590
  cjsIndexFile?: string;
4192
- systemLoaderFile?: string;
4193
- legacyLoaderFile?: string;
3591
+ loaderDir?: string;
3592
+ typesDir?: string;
4194
3593
  empty?: boolean;
3594
+ /** Inherited from parent output target (loader-bundle or www). Only meaningful for browser builds. */
3595
+ hashFileNames?: boolean;
3596
+ /** Inherited from parent output target (loader-bundle or www). */
3597
+ hashedFileNameLength?: number;
3598
+ /** Inherited from loader-bundle. When true, @stencil/core is external in this bundler output. */
3599
+ externalRuntime?: boolean;
4195
3600
  }
4196
- interface OutputTargetDistGlobalStyles extends OutputTargetBase {
4197
- type: 'dist-global-styles';
4198
- file: string;
4199
- }
4200
- interface OutputTargetDistLazyLoader extends OutputTargetBase {
4201
- type: 'dist-lazy-loader';
4202
- dir: string;
4203
- esmDir: string;
4204
- esmEs5Dir?: string;
4205
- cjsDir: string;
4206
- componentDts: string;
4207
- empty: boolean;
4208
- }
4209
- interface OutputTargetHydrate extends OutputTargetBase {
4210
- type: 'dist-hydrate-script';
4211
- dir?: string;
3601
+ /**
3602
+ * Output target for global styles.
3603
+ * Generates a CSS file from an input stylesheet.
3604
+ *
3605
+ * Can be configured in two ways:
3606
+ * 1. **Implicit** (backwards compat): Set `globalStyle` in the config and this output is auto-generated
3607
+ * 2. **Explicit**: Define this output target with an `input` property
3608
+ *
3609
+ * Multiple `global-style` outputs are supported for building separate CSS bundles.
3610
+ *
3611
+ * @example
3612
+ * ```typescript
3613
+ * // Explicit configuration with custom input/output
3614
+ * {
3615
+ * type: 'global-style',
3616
+ * input: './src/theme.css',
3617
+ * fileName: 'theme.css',
3618
+ * dir: 'dist/assets',
3619
+ * copyToLoaderBrowser: false
3620
+ * }
3621
+ * ```
3622
+ */
3623
+ interface OutputTargetGlobalStyle extends OutputTargetBaseNext {
3624
+ type: 'global-style';
3625
+ /**
3626
+ * Path to the input CSS file to compile.
3627
+ * When specified, this takes precedence over the `globalStyle` config option.
3628
+ *
3629
+ * If neither `input` nor `globalStyle` config is set, no CSS will be built.
3630
+ */
3631
+ input?: string;
3632
+ /**
3633
+ * Output filename for the compiled CSS.
3634
+ * @default '{namespace}.css' when using globalStyle config, or basename of input file
3635
+ */
3636
+ fileName?: string;
4212
3637
  /**
4213
- * Whether to generate a package.json file in the hydrate output directory.
4214
- * Defaults to `true`
4215
- * @deprecated
4216
- * In the next major release, the `package.json` file will be completely removed from the `dist-hydrate-script` output (use `exports` from your library's main `package.json`)
3638
+ * When `true`, also copies the global style CSS to the loader-bundle browser directory
3639
+ * for backwards compatibility with existing CDN consumers who have hardcoded CSS paths.
3640
+ *
3641
+ * @default true
3642
+ */
3643
+ copyToLoaderBrowser?: boolean;
3644
+ /**
3645
+ * Controls whether this global stylesheet is injected into component shadow DOMs
3646
+ * as a constructable stylesheet at runtime.
3647
+ *
3648
+ * - `'none'` (default): Don't inject - stylesheet must be loaded externally (e.g., via `<link>`)
3649
+ * - `'client'`: Inject only in client builds, not SSR (reduces SSR output size)
3650
+ * - `'all'`: Inject in both client and SSR builds
3651
+ *
3652
+ * @default 'none'
4217
3653
  */
4218
- generatePackageJson?: boolean;
3654
+ inject?: 'none' | 'client' | 'all';
3655
+ }
3656
+ /**
3657
+ * Output target for component assets.
3658
+ * Copies all component `assetsDirs` to a unified location.
3659
+ *
3660
+ * auto-generated when components have `assetsDirs` unless explicitly configured.
3661
+ * The output is placed in `dist/assets/` by default and is available to all distribution strategies.
3662
+ *
3663
+ * @example
3664
+ * ```typescript
3665
+ * {
3666
+ * type: 'assets',
3667
+ * dir: 'dist/assets'
3668
+ * }
3669
+ * ```
3670
+ */
3671
+ interface OutputTargetAssets extends OutputTargetBaseNext {
3672
+ type: 'assets';
3673
+ }
3674
+ /**
3675
+ * Output target for server-side rendering (SSR) and hydration.
3676
+ * Generates a script that can be used for SSR and static site generation (prerendering).
3677
+ *
3678
+ * Formerly known as 'dist-hydrate-script' in v4.
3679
+ *
3680
+ * @example
3681
+ * ```typescript
3682
+ * {
3683
+ * type: 'ssr',
3684
+ * dir: 'dist/ssr',
3685
+ * minify: true
3686
+ * }
3687
+ * ```
3688
+ */
3689
+ interface OutputTargetSsr extends OutputTargetBase {
3690
+ type: 'ssr';
3691
+ dir?: string;
4219
3692
  /**
4220
3693
  * Module IDs that should not be bundled into the script.
4221
3694
  * By default, all node builtin's, such as `fs` or `path`
@@ -4224,6 +3697,22 @@ interface OutputTargetHydrate extends OutputTargetBase {
4224
3697
  external?: string[];
4225
3698
  empty?: boolean;
4226
3699
  minify?: boolean;
3700
+ /**
3701
+ * Whether to generate CommonJS (CJS) bundles.
3702
+ *
3703
+ * When `true`, generates CJS output as `index.cjs` alongside ESM `index.js`.
3704
+ * When `false` (default in v5+), only ESM bundles are generated.
3705
+ *
3706
+ * @default false
3707
+ */
3708
+ cjs?: boolean;
3709
+ }
3710
+ interface OutputTargetSsrWasm extends OutputTargetBase {
3711
+ type: 'ssr-wasm';
3712
+ /** Output directory. @default 'dist/ssr-wasm' */
3713
+ dir?: string;
3714
+ empty?: boolean;
3715
+ minify?: boolean;
4227
3716
  }
4228
3717
  interface OutputTargetCustom extends OutputTargetBase {
4229
3718
  type: 'custom';
@@ -4326,14 +3815,13 @@ interface OutputTargetStats extends OutputTargetBase {
4326
3815
  type: 'stats';
4327
3816
  file?: string;
4328
3817
  }
4329
- interface OutputTargetBaseNext {
4330
- type: string;
3818
+ interface OutputTargetBaseNext extends OutputTargetBase {
4331
3819
  dir?: string;
4332
3820
  }
4333
3821
  /**
4334
3822
  * The collection of valid export behaviors.
4335
3823
  * Used to generate a type for typed configs as well as output target validation
4336
- * for the `dist-custom-elements` output target.
3824
+ * for the `standalone` output target.
4337
3825
  *
4338
3826
  * Adding a value to this const array will automatically add it as a valid option on the
4339
3827
  * output target configuration for `customElementsExportBehavior`.
@@ -4342,8 +3830,7 @@ interface OutputTargetBaseNext {
4342
3830
  * - `auto-define-custom-elements`: Enables the auto-definition of a component and its children (recursively) in the custom elements registry. This
4343
3831
  * functionality allows consumers to bypass the explicit call to define a component, its children, its children's
4344
3832
  * children, etc. Users of this flag should be aware that enabling this functionality may increase bundle size.
4345
- * - `bundle`: A `defineCustomElements` function will be exported from the distribution directory. This behavior was added to allow easy migration
4346
- * from `dist-custom-elements-bundle` to `dist-custom-elements`.
3833
+ * - `bundle`: A `defineCustomElements` function will be exported from the distribution directory.
4347
3834
  * - `single-export-module`: All components will be re-exported from the specified directory's root `index.js` file.
4348
3835
  */
4349
3836
  declare const CustomElementsExportBehaviorOptions: readonly ["default", "auto-define-custom-elements", "bundle", "single-export-module"];
@@ -4352,23 +3839,40 @@ declare const CustomElementsExportBehaviorOptions: readonly ["default", "auto-de
4352
3839
  * This is used on the output target config for intellisense in typed configs.
4353
3840
  */
4354
3841
  type CustomElementsExportBehavior = (typeof CustomElementsExportBehaviorOptions)[number];
4355
- interface OutputTargetDistCustomElements extends OutputTargetValidationConfig {
4356
- type: 'dist-custom-elements';
3842
+ /**
3843
+ * Output target for generating standalone component modules.
3844
+ * Each component is output as an individual ES module that can be directly imported.
3845
+ *
3846
+ * This output target is ideal for npm consumption and tree-shaking, as consumers
3847
+ * can import only the components they need.
3848
+ *
3849
+ * Formerly known as 'dist-custom-elements' in v4.
3850
+ *
3851
+ * @example
3852
+ * ```typescript
3853
+ * {
3854
+ * type: 'standalone',
3855
+ * dir: 'dist/standalone',
3856
+ * externalRuntime: true,
3857
+ * autoLoader: true
3858
+ * }
3859
+ * ```
3860
+ */
3861
+ interface OutputTargetStandalone extends OutputTargetBaseNext {
3862
+ type: 'standalone';
4357
3863
  empty?: boolean;
4358
3864
  /**
4359
3865
  * Triggers the following behaviors when enabled:
4360
3866
  * 1. All `@stencil/core/*` module references are treated as external during bundling.
4361
3867
  * 2. File names are not hashed.
4362
3868
  * 3. File minification will follow the behavior defined at the root of the Stencil config.
3869
+ *
3870
+ * @default false
4363
3871
  */
4364
3872
  externalRuntime?: boolean;
4365
3873
  copy?: CopyTask[];
4366
3874
  includeGlobalScripts?: boolean;
4367
3875
  minify?: boolean;
4368
- /**
4369
- * Enables the generation of type definition files for the output target.
4370
- */
4371
- generateTypeDeclarations?: boolean;
4372
3876
  /**
4373
3877
  * Define the export/definition behavior for the output target's generated output.
4374
3878
  * This controls if/how custom elements will be defined or where components will be exported from.
@@ -4379,6 +3883,8 @@ interface OutputTargetDistCustomElements extends OutputTargetValidationConfig {
4379
3883
  * Generate an auto-loader script that uses MutationObserver to lazily load
4380
3884
  * and define custom elements as they appear in the DOM.
4381
3885
  *
3886
+ * @default true
3887
+ *
4382
3888
  * When set to `true`, generates a `loader.js` file that auto-starts on import.
4383
3889
  * Can also be configured with an object for more control:
4384
3890
  * - `fileName`: Custom filename for the loader (default: 'loader.js')
@@ -4418,27 +3924,45 @@ interface OutputTargetBase {
4418
3924
  * A unique string to differentiate one output target from another
4419
3925
  */
4420
3926
  type: string;
3927
+ /**
3928
+ * When `true`, this output target will be skipped during development builds (`--dev`).
3929
+ * This improves dev build times by not generating production-only artifacts.
3930
+ *
3931
+ * Defaults vary by output target type:
3932
+ * - `loader-bundle`: `false` (always builds)
3933
+ * - `standalone`: `true` (skips in dev)
3934
+ * - `ssr`: `true` (skips in dev, unless `devServer.ssr` is enabled)
3935
+ * - `docs-*`: `true` (skips in dev)
3936
+ * - `custom`: `true` (skips in dev)
3937
+ * - `www`, `copy`, `stats`: `false` (always runs)
3938
+ */
3939
+ skipInDev?: boolean;
4421
3940
  }
4422
- /**
4423
- * Output targets that can have validation for common `package.json` field values
4424
- * (module, types, etc.). This allows them to be marked for validation in a project's Stencil config.
4425
- */
4426
- interface OutputTargetValidationConfig extends OutputTargetBaseNext {
4427
- isPrimaryPackageOutputTarget?: boolean;
4428
- }
4429
- type EligiblePrimaryPackageOutputTarget = OutputTargetDist | OutputTargetDistCustomElements | OutputTargetDistCollection | OutputTargetDistTypes;
4430
- type OutputTargetBuild = OutputTargetDistCollection | OutputTargetDistLazy;
3941
+ type OutputTargetBuild = OutputTargetCollection | OutputTargetDistLazy;
4431
3942
  interface OutputTargetCopy extends OutputTargetBase {
4432
3943
  type: 'copy';
4433
3944
  dir: string;
4434
3945
  copy?: CopyTask[];
4435
- copyAssets?: 'collection' | 'dist';
4436
3946
  }
4437
3947
  interface OutputTargetWww extends OutputTargetBase {
4438
3948
  /**
4439
3949
  * Webapp output target.
4440
3950
  */
4441
3951
  type: 'www';
3952
+ /**
3953
+ * Choose how components are bundled for the www output.
3954
+ *
3955
+ * - `'loader'` (default): Uses the loader-bundle architecture with chunk
3956
+ * splitting and a loader infrastructure. Best for production apps with many
3957
+ * components where you want optimal loading performance.
3958
+ *
3959
+ * - `'standalone'`: Uses standalone component modules with an auto-loader that
3960
+ * uses MutationObserver to dynamically import components as they appear in
3961
+ * the DOM. Simpler architecture, easier debugging, one module per component.
3962
+ *
3963
+ * Default: `'loader'`
3964
+ */
3965
+ bundleMode?: 'loader' | 'standalone';
4442
3966
  /**
4443
3967
  * The directory to write the app's JavaScript and CSS build
4444
3968
  * files to. The default is to place this directory as a child
@@ -4481,17 +4005,11 @@ interface OutputTargetWww extends OutputTargetBase {
4481
4005
  * Default: `/`
4482
4006
  */
4483
4007
  baseUrl?: string;
4484
- /**
4485
- * By default, stencil will include all the polyfills required by legacy browsers in the ES5 build.
4486
- * If it's `false`, stencil will not emit this polyfills anymore and it's your responsibility to provide them before
4487
- * stencil initializes.
4488
- */
4489
- polyfills?: boolean;
4490
4008
  /**
4491
4009
  * Path to an external node module which has exports of the prerender config object.
4492
4010
  * ```
4493
4011
  * module.exports = {
4494
- * afterHydrate(document, url) {
4012
+ * afterSsr(document, url) {
4495
4013
  * document.title = `URL: ${url.href}`;
4496
4014
  * }
4497
4015
  * }
@@ -4499,15 +4017,35 @@ interface OutputTargetWww extends OutputTargetBase {
4499
4017
  */
4500
4018
  prerenderConfig?: string;
4501
4019
  /**
4502
- * Service worker config for production builds. During development builds
4503
- * service worker script will be injected to automatically deregister existing
4504
- * service workers. When set to `false` neither a service worker registration
4505
- * or deregistration will be added to the index.html.
4020
+ * Service worker config for production builds. In development mode, a script
4021
+ * to deregister existing service workers is always injected. Defaults to
4022
+ * `null` (disabled). Set to `true` to enable with default settings, or provide
4023
+ * a config object for custom settings.
4506
4024
  */
4507
- serviceWorker?: ServiceWorkerConfig | null | false;
4025
+ serviceWorker?: ServiceWorkerConfig | true | null;
4508
4026
  appDir?: string;
4027
+ /**
4028
+ * Hash the filenames of generated chunks based on their content.
4029
+ * Enables forever-caching of CDN-served bundles.
4030
+ *
4031
+ * @default true in production, false in dev mode
4032
+ */
4033
+ hashFileNames?: boolean;
4034
+ /**
4035
+ * Number of characters to use for the content hash in filenames.
4036
+ *
4037
+ * @default 8
4038
+ */
4039
+ hashedFileNameLength?: number;
4509
4040
  }
4510
- type OutputTarget = OutputTargetCopy | OutputTargetCustom | OutputTargetDist | OutputTargetDistCollection | OutputTargetDistCustomElements | OutputTargetDistLazy | OutputTargetDistGlobalStyles | OutputTargetDistLazyLoader | OutputTargetDocsJson | OutputTargetDocsCustom | OutputTargetDocsReadme | OutputTargetDocsVscode | OutputTargetDocsCustomElementsManifest | OutputTargetWww | OutputTargetHydrate | OutputTargetStats | OutputTargetDistTypes;
4041
+ type OutputTarget = OutputTargetCopy | OutputTargetCustom | OutputTargetLoaderBundle | OutputTargetStandalone | OutputTargetSsr | OutputTargetSsrWasm | OutputTargetCollection | OutputTargetTypes | OutputTargetGlobalStyle | OutputTargetAssets | OutputTargetDistLazy | OutputTargetDocsJson | OutputTargetDocsCustom | OutputTargetDocsReadme | OutputTargetDocsVscode | OutputTargetDocsCustomElementsManifest | OutputTargetWww | OutputTargetStats;
4042
+ /**
4043
+ * A post-validation form of {@link OutputTargetWww} where `serviceWorker`
4044
+ * has been normalized - `true` is resolved to a {@link ServiceWorkerConfig}.
4045
+ */
4046
+ type ValidatedOutputTargetWww = Omit<OutputTargetWww, 'serviceWorker'> & {
4047
+ serviceWorker?: ServiceWorkerConfig | null;
4048
+ };
4511
4049
  /**
4512
4050
  * Our custom configuration interface for generated caching Service Workers
4513
4051
  * using the Workbox library (see https://developer.chrome.com/docs/workbox/).
@@ -4555,12 +4093,6 @@ interface LoadConfigInit {
4555
4093
  configPath?: string;
4556
4094
  logger?: Logger;
4557
4095
  sys?: CompilerSystem;
4558
- /**
4559
- * When set to true, if the "tsconfig.json" file is not found
4560
- * it'll automatically generate and save a default tsconfig
4561
- * within the root directory.
4562
- */
4563
- initTsConfig?: boolean;
4564
4096
  }
4565
4097
  /**
4566
4098
  * Results from an attempt to load a config. The values on this interface
@@ -4602,24 +4134,13 @@ interface WorkerOptions {
4602
4134
  maxConcurrentTasksPerWorker?: number;
4603
4135
  logger?: Logger;
4604
4136
  }
4605
- interface RollupInterface {
4606
- rollup: {
4607
- (config: any): Promise<any>;
4608
- };
4609
- plugins: {
4610
- nodeResolve(opts: any): any;
4611
- replace(opts: any): any;
4612
- commonjs(opts: any): any;
4613
- json(): any;
4614
- };
4615
- }
4616
4137
  interface ResolveModuleOptions {
4617
4138
  manuallyResolve?: boolean;
4618
4139
  packageJson?: boolean;
4619
4140
  }
4620
4141
  interface PrerenderStartOptions {
4621
4142
  buildId?: string;
4622
- hydrateAppFilePath?: string;
4143
+ ssrAppFilePath?: string;
4623
4144
  componentGraph?: BuildResultsComponentGraph;
4624
4145
  srcIndexHtmlPath?: string;
4625
4146
  }
@@ -4644,14 +4165,26 @@ interface OptimizeCssInput {
4644
4165
  resolveUrl?: (url: string) => Promise<string> | string;
4645
4166
  }
4646
4167
  /**
4647
- * This is not a real interface describing the options which can
4648
- * be passed to autoprefixer, for that see the docs, here:
4649
- * https://github.com/postcss/autoprefixer#options
4168
+ * Options for autoprefixing CSS via Lightning CSS.
4650
4169
  *
4651
- * Instead, this basically just serves as a label type to track
4652
- * that arguments are being passed consistently.
4170
+ * The `targets` field accepts a browserslist query array. When omitted,
4171
+ * Stencil uses a modern default browser list suitable for Stencil v5+.
4172
+ *
4173
+ * @example
4174
+ * ```ts
4175
+ * autoprefixer: {
4176
+ * targets: ['last 2 Chrome versions', 'last 2 Safari versions', 'iOS >= 14'],
4177
+ * }
4178
+ * ```
4653
4179
  */
4654
- type AutoprefixerOptions = object;
4180
+ interface AutoprefixerOptions {
4181
+ /**
4182
+ * A browserslist query array describing which browsers to generate vendor
4183
+ * prefixes for. Defaults to a modern set of browsers appropriate for
4184
+ * Stencil v5+.
4185
+ */
4186
+ targets?: string[];
4187
+ }
4655
4188
  /**
4656
4189
  * Output from CSS optimization functions, wrapping up optimized
4657
4190
  * CSS and any diagnostics produced during optimization.
@@ -4663,7 +4196,7 @@ interface OptimizeCssOutput {
4663
4196
  interface OptimizeJsInput {
4664
4197
  input: string;
4665
4198
  filePath?: string;
4666
- target?: 'es5' | 'latest';
4199
+ target?: 'latest';
4667
4200
  pretty?: boolean;
4668
4201
  sourceMap?: boolean;
4669
4202
  }
@@ -4677,61 +4210,23 @@ interface LazyRequire {
4677
4210
  require(fromDir: string, moduleId: string): any;
4678
4211
  getModulePath(fromDir: string, moduleId: string): string;
4679
4212
  }
4680
- /**
4681
- * @deprecated This interface is no longer used by Stencil
4682
- * TODO(STENCIL-743): Remove this interface
4683
- */
4684
- interface FsWatcherItem {
4685
- close(): void;
4686
- }
4687
- /**
4688
- * @deprecated This interface is no longer used by Stencil
4689
- * TODO(STENCIL-743): Remove this interface
4690
- */
4691
- interface MakeDirectoryOptions {
4692
- /**
4693
- * Indicates whether parent folders should be created.
4694
- * @default false
4695
- */
4696
- recursive?: boolean;
4697
- /**
4698
- * A file mode. If a string is passed, it is parsed as an octal integer. If not specified
4699
- * @default 0o777.
4700
- */
4701
- mode?: number;
4702
- }
4703
- /**
4704
- * @deprecated This interface is no longer used by Stencil
4705
- * TODO(STENCIL-743): Remove this interface
4706
- */
4707
- interface FsStats {
4708
- isFile(): boolean;
4709
- isDirectory(): boolean;
4710
- isBlockDevice(): boolean;
4711
- isCharacterDevice(): boolean;
4712
- isSymbolicLink(): boolean;
4713
- isFIFO(): boolean;
4714
- isSocket(): boolean;
4715
- dev: number;
4716
- ino: number;
4717
- mode: number;
4718
- nlink: number;
4719
- uid: number;
4720
- gid: number;
4721
- rdev: number;
4722
- size: number;
4723
- blksize: number;
4724
- blocks: number;
4725
- atime: Date;
4726
- mtime: Date;
4727
- ctime: Date;
4728
- birthtime: Date;
4729
- }
4730
4213
  interface Compiler {
4731
4214
  build(): Promise<CompilerBuildResults>;
4732
4215
  createWatcher(): Promise<CompilerWatcher>;
4733
4216
  destroy(): Promise<void>;
4734
4217
  sys: CompilerSystem;
4218
+ /**
4219
+ * @internal - Testing only. Access to the in-memory filesystem
4220
+ */
4221
+ fs?: InMemoryFileSystem;
4222
+ /**
4223
+ * @internal - Testing only. Access to the validated configuration
4224
+ */
4225
+ config?: ValidatedConfig;
4226
+ /**
4227
+ * @internal - Testing only. Access to the compiler context
4228
+ */
4229
+ compilerCtx?: CompilerCtx;
4735
4230
  }
4736
4231
  interface CompilerWatcher extends BuildOnEvents {
4737
4232
  start: () => Promise<WatcherCloseResults>;
@@ -4772,7 +4267,7 @@ interface TranspileOptions {
4772
4267
  componentMetadata?: 'runtimestatic' | 'compilerstatic' | string | undefined;
4773
4268
  /**
4774
4269
  * The actual internal import path for any `@stencil/core` imports.
4775
- * Default is `@stencil/core/runtime/client`.
4270
+ * Default is `@stencil/core/runtime/client/standalone`.
4776
4271
  */
4777
4272
  coreImportPath?: string;
4778
4273
  /**
@@ -4808,8 +4303,8 @@ interface TranspileOptions {
4808
4303
  */
4809
4304
  styleImportData?: 'queryparams' | string | undefined;
4810
4305
  /**
4811
- * The JavaScript source target TypeScript should to transpile to. Values can be
4812
- * `latest`, `esnext`, `es2017`, `es2015`, or `es5`. Defaults to `latest`.
4306
+ * The JavaScript source target TypeScript should transpile to. Values can be
4307
+ * `latest`, `esnext`, `es2020`, `es2017`, or `es2015`. Defaults to `latest`.
4813
4308
  */
4814
4309
  target?: CompileTarget;
4815
4310
  /**
@@ -4858,8 +4353,29 @@ interface TranspileOptions {
4858
4353
  * Adds `transformTag` calls to css strings and querySelector(All) calls
4859
4354
  */
4860
4355
  additionalTagTransformers?: boolean;
4356
+ /**
4357
+ * A map of virtual file paths to source text for modules that the component
4358
+ * under transpilation extends from. When provided, `transpile()` builds a
4359
+ * minimal multi-file TypeScript program from these sources so that
4360
+ * {@link https://stenciljs.com/docs/component-lifecycle inheritance chains}
4361
+ * can be resolved without requiring the parent files to exist on disk.
4362
+ *
4363
+ * Keys are the same import paths used in the component's `import` statements
4364
+ * (relative paths are resolved against `currentDirectory`). Values are the
4365
+ * TypeScript/JavaScript source text of that module.
4366
+ *
4367
+ * @example
4368
+ * ```ts
4369
+ * transpile(myComponentCode, {
4370
+ * extraFiles: {
4371
+ * './base-component.ts': baseComponentSourceText,
4372
+ * },
4373
+ * });
4374
+ * ```
4375
+ */
4376
+ extraFiles?: Record<string, string>;
4861
4377
  }
4862
- type CompileTarget = 'latest' | 'esnext' | 'es2020' | 'es2019' | 'es2018' | 'es2017' | 'es2015' | 'es5' | string | undefined;
4378
+ type CompileTarget = 'latest' | 'esnext' | 'es2020' | 'es2019' | 'es2018' | 'es2017' | 'es2015' | string | undefined;
4863
4379
  interface TranspileResults {
4864
4380
  code: string;
4865
4381
  data?: any[];
@@ -4884,6 +4400,10 @@ interface TransformOptions {
4884
4400
  style: 'static' | null;
4885
4401
  styleImportData: 'queryparams' | null;
4886
4402
  target?: string;
4403
+ /**
4404
+ * @see {@link TranspileOptions.extraFiles}
4405
+ */
4406
+ extraFiles?: Record<string, string>;
4887
4407
  }
4888
4408
  interface CompileScriptMinifyOptions {
4889
4409
  target?: CompileTarget;
@@ -4960,6 +4480,7 @@ interface BuildFeatures {
4960
4480
  formAssociated: boolean;
4961
4481
  shadowDom: boolean;
4962
4482
  shadowDelegatesFocus: boolean;
4483
+ shadowModeClosed: boolean;
4963
4484
  shadowSlotAssignmentManual: boolean;
4964
4485
  scoped: boolean;
4965
4486
  /**
@@ -4981,7 +4502,12 @@ interface BuildFeatures {
4981
4502
  vdomStyle: boolean;
4982
4503
  vdomText: boolean;
4983
4504
  vdomXlink: boolean;
4505
+ vdomSignals: boolean;
4984
4506
  slotRelocation: boolean;
4507
+ patchAll: boolean;
4508
+ patchChildren: boolean;
4509
+ patchClone: boolean;
4510
+ patchInsert: boolean;
4985
4511
  slot: boolean;
4986
4512
  svg: boolean;
4987
4513
  element: boolean;
@@ -4990,10 +4516,6 @@ interface BuildFeatures {
4990
4516
  hostListenerTargetWindow: boolean;
4991
4517
  hostListenerTargetDocument: boolean;
4992
4518
  hostListenerTargetBody: boolean;
4993
- /**
4994
- * @deprecated Prevented from new apps, but left in for older collections
4995
- */
4996
- hostListenerTargetParent: boolean;
4997
4519
  hostListenerTarget: boolean;
4998
4520
  method: boolean;
4999
4521
  prop: boolean;
@@ -5027,29 +4549,34 @@ interface BuildConditionals extends Partial<BuildFeatures> {
5027
4549
  lazyLoad?: boolean;
5028
4550
  profile?: boolean;
5029
4551
  constructableCSS?: boolean;
5030
- appendChildSlotFix?: boolean;
5031
- slotChildNodesFix?: boolean;
5032
- scopedSlotTextContentFix?: boolean;
5033
- cloneNodeFix?: boolean;
4552
+ /** True when `compat.lightDomPatches === true` - enables `applyLightDomPatches` shortcut. */
4553
+ lightDomPatches?: boolean;
4554
+ /** Patch `childNodes`/`children` getters on light-dom slotted components. */
4555
+ slotChildNodes?: boolean;
4556
+ /** Patch `cloneNode()` on light-dom slotted components. */
4557
+ slotCloneNode?: boolean;
4558
+ /** Patch `appendChild`/`insertBefore`/`removeChild` on light-dom slotted components. */
4559
+ slotDomMutations?: boolean;
4560
+ /** Patch `textContent` on light-dom slotted components. */
4561
+ slotTextContent?: boolean;
5034
4562
  hydratedAttribute?: boolean;
5035
4563
  hydratedClass?: boolean;
5036
4564
  hydratedSelectorName?: string;
4565
+ /** True when a global-style input contains `@import "stencil-hydrate"` - suppresses dynamic style injection in the loader. */
4566
+ staticHydrationStyles?: boolean;
5037
4567
  initializeNextTick?: boolean;
5038
- shadowDomShim?: boolean;
5039
4568
  asyncQueue?: boolean;
5040
- transformTagName?: boolean;
5041
4569
  additionalTagTransformers?: boolean | 'prod';
5042
- attachStyles?: boolean;
5043
- experimentalSlotFixes?: boolean;
5044
- experimentalScopedSlotChanges?: boolean;
5045
- addGlobalStyleToComponents?: boolean | 'client';
4570
+ signalBacking?: boolean;
4571
+ /** True when JSX signal bypass is active - text nodes and attributes backed by Signal objects update the DOM directly. Auto-enabled when `signalBacking: true`. */
4572
+ vdomSignals?: boolean;
5046
4573
  }
5047
4574
  type ModuleFormat = 'amd' | 'cjs' | 'es' | 'iife' | 'system' | 'umd' | 'commonjs' | 'esm' | 'module' | 'systemjs';
5048
- interface RollupResultModule {
4575
+ interface RolldownResultModule {
5049
4576
  id: string;
5050
4577
  }
5051
- interface RollupResults {
5052
- modules: RollupResultModule[];
4578
+ interface RolldownResults {
4579
+ modules: RolldownResultModule[];
5053
4580
  }
5054
4581
  interface UpdatedLazyBuildCtx {
5055
4582
  name: 'esm-browser' | 'esm' | 'cjs' | 'system';
@@ -5067,8 +4594,6 @@ interface BuildCtx {
5067
4594
  compilerCtx: CompilerCtx;
5068
4595
  esmBrowserComponentBundle: ReadonlyArray<BundleModule>;
5069
4596
  esmComponentBundle: ReadonlyArray<BundleModule>;
5070
- es5ComponentBundle: ReadonlyArray<BundleModule>;
5071
- systemComponentBundle: ReadonlyArray<BundleModule>;
5072
4597
  commonJsComponentBundle: ReadonlyArray<BundleModule>;
5073
4598
  components: ComponentCompilerMeta[];
5074
4599
  componentGraph: Map<string, string[]>;
@@ -5095,19 +4620,21 @@ interface BuildCtx {
5095
4620
  hasScriptChanges: boolean;
5096
4621
  hasStyleChanges: boolean;
5097
4622
  hasWarning: boolean;
5098
- hydrateAppFilePath: string;
4623
+ ssrAppFilePath: string;
5099
4624
  indexBuildCount: number;
5100
4625
  indexDoc: Document;
4626
+ /** All non-entry HTML files found in srcDir, keyed by path relative to srcDir */
4627
+ htmlDocs: Map<string, Document>;
5101
4628
  isRebuild: boolean;
5102
4629
  /**
5103
4630
  * A collection of Stencil's intermediate representation of components, tied to the current build
5104
4631
  */
5105
4632
  moduleFiles: Module[];
5106
- packageJson: PackageJsonData;
4633
+ packageJson: PackageJsonData | null;
5107
4634
  pendingCopyTasks: Promise<CopyResults>[];
5108
4635
  progress(task: BuildTask): void;
5109
4636
  requiresFullBuild: boolean;
5110
- rollupResults?: RollupResults;
4637
+ rolldownResults?: RolldownResults;
5111
4638
  scriptsAdded: string[];
5112
4639
  scriptsDeleted: string[];
5113
4640
  startTime: number;
@@ -5147,20 +4674,15 @@ interface CompilerBuildStats {
5147
4674
  options: {
5148
4675
  minifyJs: boolean;
5149
4676
  minifyCss: boolean;
5150
- hashFileNames: boolean;
5151
- hashedFileNameLength: number;
5152
- buildEs5: boolean | 'prod';
5153
4677
  };
5154
4678
  formats: {
5155
4679
  esmBrowser: ReadonlyArray<CompilerBuildStatBundle>;
5156
4680
  esm: ReadonlyArray<CompilerBuildStatBundle>;
5157
- es5: ReadonlyArray<CompilerBuildStatBundle>;
5158
- system: ReadonlyArray<CompilerBuildStatBundle>;
5159
4681
  commonjs: ReadonlyArray<CompilerBuildStatBundle>;
5160
4682
  };
5161
4683
  components: BuildComponent[];
5162
4684
  entries: EntryModule[];
5163
- rollupResults: RollupResults;
4685
+ rolldownResults: RolldownResults;
5164
4686
  sourceGraph?: BuildSourceGraph;
5165
4687
  componentGraph: BuildResultsComponentGraph;
5166
4688
  collections: CompilerBuildStatCollection[];
@@ -5186,20 +4708,14 @@ interface BuildComponent {
5186
4708
  dependencyOf?: string[];
5187
4709
  dependencies?: string[];
5188
4710
  }
5189
- type SourceTarget = 'es5' | 'es2017' | 'latest';
5190
- /**
5191
- * A note regarding Rollup types:
5192
- * As of this writing, there is no great way to import external types for packages that are directly embedded in the
5193
- * Stencil source. As a result, some types are duplicated here for Rollup that will be used within the codebase.
5194
- * Updates to rollup may require these typings to be updated.
5195
- */
5196
- type RollupResult = RollupChunkResult | RollupAssetResult;
5197
- interface RollupAssetResult {
4711
+ type SourceTarget = 'es2017' | 'latest';
4712
+ type RolldownResult = RolldownChunkResult | RolldownAssetResult;
4713
+ interface RolldownAssetResult {
5198
4714
  type: 'asset';
5199
4715
  fileName: string;
5200
4716
  content: string;
5201
4717
  }
5202
- interface RollupChunkResult {
4718
+ interface RolldownChunkResult {
5203
4719
  type: 'chunk';
5204
4720
  entryKey: string;
5205
4721
  fileName: string;
@@ -5211,17 +4727,7 @@ interface RollupChunkResult {
5211
4727
  isBrowserLoader: boolean;
5212
4728
  imports: string[];
5213
4729
  moduleFormat: ModuleFormat;
5214
- map?: RollupSourceMap;
5215
- }
5216
- interface RollupSourceMap {
5217
- file: string;
5218
- mappings: string;
5219
- names: string[];
5220
- sources: string[];
5221
- sourcesContent: string[];
5222
- version: number;
5223
- toString(): string;
5224
- toUrl(): string;
4730
+ map?: RolldownSourceMap;
5225
4731
  }
5226
4732
  /**
5227
4733
  * Result of Stencil compressing, mangling, and otherwise 'minifying' JavaScript
@@ -5233,7 +4739,7 @@ type OptimizeJsResult = {
5233
4739
  };
5234
4740
  interface BundleModule {
5235
4741
  entryKey: string;
5236
- rollupResult: RollupChunkResult;
4742
+ rolldownResult: RolldownChunkResult;
5237
4743
  cmps: ComponentCompilerMeta[];
5238
4744
  output: BundleModuleOutput;
5239
4745
  }
@@ -5266,6 +4772,7 @@ interface CollectionCompilerMeta {
5266
4772
  bundles?: {
5267
4773
  components: string[];
5268
4774
  }[];
4775
+ buildFlags?: Partial<BuildConditionals>;
5269
4776
  }
5270
4777
  interface CollectionCompilerVersion {
5271
4778
  name: string;
@@ -5284,6 +4791,8 @@ interface CollectionManifest {
5284
4791
  global?: string;
5285
4792
  compiler?: CollectionCompilerVersion;
5286
4793
  bundles?: CollectionBundleManifest[];
4794
+ /** Build flags the lib was compiled with. Consuming Stencil projects OR-merge these in. */
4795
+ buildFlags?: Partial<BuildConditionals>;
5287
4796
  }
5288
4797
  type CollectionComponentEntryPath = string;
5289
4798
  interface CollectionBundleManifest {
@@ -5302,6 +4811,25 @@ interface CollectionDependencyData {
5302
4811
  name: string;
5303
4812
  tags: string[];
5304
4813
  }
4814
+ /**
4815
+ * A memoized result of the SASS + Lightning CSS transformation for a single stylesheet, keyed by
4816
+ * the annotated Rolldown import id (e.g. `/path/to/comp.scss?tag=ion-button&encapsulation=shadow`).
4817
+ *
4818
+ * Storing this allows all output targets (customElements, lazy, hydrate) that process the same
4819
+ * stylesheets to share a single computation instead of repeating it N times.
4820
+ */
4821
+ interface CssTransformCacheEntry {
4822
+ /** Resolved file ID after plugin (SASS) transforms */
4823
+ pluginTransformId: string;
4824
+ /** CSS source produced by the SASS / plugin pipeline */
4825
+ pluginTransformCode: string;
4826
+ /** File dependencies discovered during the SASS transform (e.g. `@import`-ed partials) */
4827
+ pluginTransformDependencies: string[];
4828
+ /** Diagnostics emitted during the plugin transform pass */
4829
+ pluginTransformDiagnostics: Diagnostic$1[];
4830
+ /** Full output of the subsequent `transformCssToEsm` call */
4831
+ cssTransformOutput: TransformCssToEsmOutput;
4832
+ }
5305
4833
  interface CompilerCtx {
5306
4834
  version: number;
5307
4835
  activeBuildId: number;
@@ -5314,7 +4842,8 @@ interface CompilerCtx {
5314
4842
  addWatchFile: (path: string) => void;
5315
4843
  cache: Cache;
5316
4844
  cssModuleImports: Map<string, string[]>;
5317
- cachedGlobalStyle: string;
4845
+ /** Cache of built global styles, keyed by input file path */
4846
+ globalStyleCache: Map<string, string>;
5318
4847
  collections: CollectionCompilerMeta[];
5319
4848
  compilerOptions: any;
5320
4849
  events: BuildEvents;
@@ -5328,14 +4857,40 @@ interface CompilerCtx {
5328
4857
  moduleMap: ModuleMap;
5329
4858
  nodeMap: NodeMap;
5330
4859
  resolvedCollections: Set<string>;
5331
- rollupCacheHydrate: any;
5332
- rollupCacheLazy: any;
5333
- rollupCacheNative: any;
4860
+ rolldownCacheSsr: any;
4861
+ rolldownCacheLazy: any;
4862
+ rolldownCacheNative: any;
5334
4863
  styleModeNames: Set<string>;
5335
4864
  changedModules: Set<string>;
5336
4865
  changedFiles: Set<string>;
5337
4866
  worker?: CompilerWorkerContext;
5338
- rollupCache: Map<string, any>;
4867
+ rolldownCache: Map<string, any>;
4868
+ /**
4869
+ * Cross-build cache for {@link ts.transpileModule} results.
4870
+ * Keyed by `"${bundleId}:${normalizedFilePath}"`. Invalidated for any
4871
+ * file that appears in {@link changedModules} after TypeScript re-emits.
4872
+ * @see transpileCache in compiler-ctx.ts
4873
+ */
4874
+ transpileCache: Map<string, {
4875
+ outputText: string;
4876
+ sourceMapText: string | null;
4877
+ }>;
4878
+ /**
4879
+ * Cross-build cache of the last style text pushed to the HMR client.
4880
+ * Keyed by getScopeId result (e.g. "ion-accordion$ios"). Used by
4881
+ * extTransformsPlugin to avoid re-pushing unchanged styles on every rebuild.
4882
+ */
4883
+ prevStylesMap: Map<string, string>;
4884
+ /**
4885
+ * Cross-output-target cache for the SASS + Lightning CSS computation.
4886
+ * Keyed by the annotated Rolldown import id. Null entries indicate that the
4887
+ * source file could not be read (propagated as a `null` return from the
4888
+ * transform hook).
4889
+ *
4890
+ * Entries are invalidated in `invalidateRolldownCaches` whenever a
4891
+ * source file or one of its SASS dependencies is modified.
4892
+ */
4893
+ cssTransformCache: Map<string, CssTransformCacheEntry | null>;
5339
4894
  reset(): void;
5340
4895
  }
5341
4896
  type NodeMap = WeakMap<any, ComponentCompilerMeta>;
@@ -5366,14 +4921,14 @@ interface ComponentCompilerFeatures {
5366
4921
  hasListenerTargetWindow: boolean;
5367
4922
  hasListenerTargetDocument: boolean;
5368
4923
  hasListenerTargetBody: boolean;
5369
- /**
5370
- * @deprecated Prevented from new apps, but left in for older collections
5371
- */
5372
- hasListenerTargetParent: boolean;
5373
4924
  hasMember: boolean;
5374
4925
  hasMethod: boolean;
5375
4926
  hasMode: boolean;
5376
4927
  hasModernPropertyDecls: boolean;
4928
+ hasPatchAll: boolean;
4929
+ hasPatchChildren: boolean;
4930
+ hasPatchClone: boolean;
4931
+ hasPatchInsert: boolean;
5377
4932
  hasProp: boolean;
5378
4933
  hasPropBoolean: boolean;
5379
4934
  hasPropNumber: boolean;
@@ -5396,6 +4951,7 @@ interface ComponentCompilerFeatures {
5396
4951
  hasVdomStyle: boolean;
5397
4952
  hasVdomText: boolean;
5398
4953
  hasVdomXlink: boolean;
4954
+ hasSignalsImport: boolean;
5399
4955
  hasWatchCallback: boolean;
5400
4956
  htmlAttrNames: string[];
5401
4957
  htmlTagNames: string[];
@@ -5472,16 +5028,28 @@ interface ComponentCompilerMeta extends ComponentCompilerFeatures {
5472
5028
  properties: ComponentCompilerProperty[];
5473
5029
  serializers: ComponentCompilerChangeHandler[];
5474
5030
  shadowDelegatesFocus: boolean;
5031
+ /**
5032
+ * Shadow DOM mode. 'open' (default) or 'closed'.
5033
+ * Only applicable when encapsulation is 'shadow'.
5034
+ */
5035
+ shadowMode: 'open' | 'closed' | null;
5475
5036
  /**
5476
5037
  * Slot assignment mode for shadow DOM. 'manual', enables imperative slotting
5477
5038
  * using HTMLSlotElement.assign(). Only applicable when encapsulation is 'shadow'.
5478
5039
  */
5479
5040
  slotAssignment: 'manual' | null;
5041
+ /**
5042
+ * Per-component slot patches for non-shadow DOM components.
5043
+ * These patches enable proper slot behavior without native Shadow DOM.
5044
+ * Only applicable when encapsulation is 'none' or 'scoped'.
5045
+ */
5046
+ patches: ComponentPatches | null;
5480
5047
  sourceFilePath: string;
5481
5048
  sourceMapPath: string;
5482
5049
  states: ComponentCompilerState[];
5483
5050
  styleDocs: CompilerStyleDoc[];
5484
5051
  styles: StyleCompiler[];
5052
+ globalStyles: ComponentGlobalStyle[];
5485
5053
  tagName: string;
5486
5054
  virtualProperties: ComponentCompilerVirtualProperty[];
5487
5055
  watchers: ComponentCompilerChangeHandler[];
@@ -5493,6 +5061,20 @@ interface ComponentCompilerMeta extends ComponentCompilerFeatures {
5493
5061
  * 3. 'none' - a basic HTML element
5494
5062
  */
5495
5063
  type Encapsulation = 'shadow' | 'scoped' | 'none';
5064
+ /**
5065
+ * Per-component slot patches for non-shadow DOM components.
5066
+ * These enable proper slot behavior when not using native Shadow DOM.
5067
+ */
5068
+ interface ComponentPatches {
5069
+ /** Apply all slot patches (equivalent to lightDomPatches) */
5070
+ all?: boolean;
5071
+ /** Patch child node accessors (children, firstChild, lastChild, etc.) */
5072
+ children?: boolean;
5073
+ /** Patch cloneNode() to handle slotted content */
5074
+ clone?: boolean;
5075
+ /** Patch appendChild(), insertBefore(), etc. for slot relocation */
5076
+ insert?: boolean;
5077
+ }
5496
5078
  /**
5497
5079
  * Intermediate Representation (IR) of a static property on a Stencil component
5498
5080
  */
@@ -5544,6 +5126,11 @@ interface ComponentCompilerPropertyComplexType {
5544
5126
  * annotation in the original source file.
5545
5127
  */
5546
5128
  references: ComponentCompilerTypeReferences;
5129
+ /**
5130
+ * @internal TypeScript AST node used for semantic type analysis during compilation.
5131
+ * Not serialized, only used internally for improved type renaming logic.
5132
+ */
5133
+ _astNode?: any;
5547
5134
  }
5548
5135
  /**
5549
5136
  * A record of `ComponentCompilerTypeReference` entities.
@@ -5637,6 +5224,11 @@ interface ComponentCompilerMethodComplexType {
5637
5224
  parameters: JsonDocMethodParameter[];
5638
5225
  references: ComponentCompilerTypeReferences;
5639
5226
  return: string;
5227
+ /**
5228
+ * @internal TypeScript AST method node used for semantic type analysis during compilation.
5229
+ * Not serialized, only used internally for improved type renaming logic.
5230
+ */
5231
+ _astNode?: any;
5640
5232
  }
5641
5233
  interface ComponentCompilerChangeHandler {
5642
5234
  propName: string;
@@ -5815,7 +5407,7 @@ interface HostElement extends HTMLElement {
5815
5407
  disconnectedCallback?: () => void;
5816
5408
  host?: Element;
5817
5409
  forceUpdate?: () => void;
5818
- __stencil__getHostRef?: () => HostRef;
5410
+ __s_ghr?: () => HostRef;
5819
5411
  /**
5820
5412
  * Unique stencil id for this element
5821
5413
  */
@@ -5871,7 +5463,7 @@ interface HostElement extends HTMLElement {
5871
5463
  ['s-p']?: Promise<void>[];
5872
5464
  componentOnReady?: () => Promise<this>;
5873
5465
  }
5874
- interface HydrateResults {
5466
+ interface SsrResults {
5875
5467
  buildId: string;
5876
5468
  diagnostics: Diagnostic$1[];
5877
5469
  url: string;
@@ -5883,42 +5475,42 @@ interface HydrateResults {
5883
5475
  search: string | null;
5884
5476
  hash: string | null;
5885
5477
  html: string | null;
5886
- components: HydrateComponent[];
5887
- anchors: HydrateAnchorElement[];
5888
- imgs: HydrateImgElement[];
5889
- scripts: HydrateScriptElement[];
5890
- styles: HydrateStyleElement[];
5891
- staticData: HydrateStaticData[];
5478
+ components: SsrComponent[];
5479
+ anchors: SsrAnchorElement[];
5480
+ imgs: SsrImgElement[];
5481
+ scripts: SsrScriptElement[];
5482
+ styles: SsrStyleElement[];
5483
+ staticData: SsrStaticData[];
5892
5484
  title: string | null;
5893
5485
  hydratedCount: number;
5894
5486
  httpStatus: number | null;
5895
5487
  }
5896
- interface HydrateComponent {
5488
+ interface SsrComponent {
5897
5489
  tag: string;
5898
5490
  mode: string;
5899
5491
  count: number;
5900
5492
  depth: number;
5901
5493
  }
5902
- interface HydrateElement {
5494
+ interface SsrElement {
5903
5495
  [attrName: string]: string | undefined;
5904
5496
  }
5905
- interface HydrateAnchorElement extends HydrateElement {
5497
+ interface SsrAnchorElement extends SsrElement {
5906
5498
  href?: string;
5907
5499
  target?: string;
5908
5500
  }
5909
- interface HydrateImgElement extends HydrateElement {
5501
+ interface SsrImgElement extends SsrElement {
5910
5502
  src?: string;
5911
5503
  }
5912
- interface HydrateScriptElement extends HydrateElement {
5504
+ interface SsrScriptElement extends SsrElement {
5913
5505
  src?: string;
5914
5506
  type?: string;
5915
5507
  }
5916
- interface HydrateStyleElement extends HydrateElement {
5508
+ interface SsrStyleElement extends SsrElement {
5917
5509
  id?: string;
5918
5510
  href?: string;
5919
5511
  content?: string;
5920
5512
  }
5921
- interface HydrateStaticData {
5513
+ interface SsrStaticData {
5922
5514
  id: string;
5923
5515
  type: string;
5924
5516
  content: string;
@@ -6009,6 +5601,7 @@ interface Module {
6009
5601
  hasVdomStyle: boolean;
6010
5602
  hasVdomText: boolean;
6011
5603
  hasVdomXlink: boolean;
5604
+ hasSignalsImport: boolean;
6012
5605
  }
6013
5606
  interface Plugin {
6014
5607
  name?: string;
@@ -6043,7 +5636,7 @@ interface PrerenderUrlRequest {
6043
5636
  baseUrl: string;
6044
5637
  componentGraphPath: string;
6045
5638
  devServerHostUrl: string;
6046
- hydrateAppFilePath: string;
5639
+ ssrAppFilePath: string;
6047
5640
  isDebug: boolean;
6048
5641
  prerenderConfigPath: string;
6049
5642
  staticSite: boolean;
@@ -6056,7 +5649,7 @@ interface PrerenderManager {
6056
5649
  prerenderUrlWorker: (prerenderRequest: PrerenderUrlRequest) => Promise<PrerenderUrlResults>;
6057
5650
  devServerHostUrl: string;
6058
5651
  diagnostics: Diagnostic$1[];
6059
- hydrateAppFilePath: string;
5652
+ ssrAppFilePath: string;
6060
5653
  isDebug: boolean;
6061
5654
  logCount: number;
6062
5655
  outputTarget: OutputTargetWww;
@@ -6164,61 +5757,61 @@ interface RenderNode extends HostElement {
6164
5757
  ['s-en']?: '' | /*shadow*/'c';
6165
5758
  /**
6166
5759
  * On a `scoped: true` component
6167
- * with `experimentalSlotFixes` flag enabled,
5760
+ * with `lightDomPatches` flag enabled,
6168
5761
  * returns the internal `childNodes` of the component
6169
5762
  */
6170
5763
  readonly __childNodes?: NodeListOf<ChildNode>;
6171
5764
  /**
6172
5765
  * On a `scoped: true` component
6173
- * with `experimentalSlotFixes` flag enabled,
5766
+ * with `lightDomPatches` flag enabled,
6174
5767
  * returns the internal `children` of the component
6175
5768
  */
6176
5769
  readonly __children?: HTMLCollectionOf<Element>;
6177
5770
  /**
6178
5771
  * On a `scoped: true` component
6179
- * with `experimentalSlotFixes` flag enabled,
5772
+ * with `lightDomPatches` flag enabled,
6180
5773
  * returns the internal `firstChild` of the component
6181
5774
  */
6182
5775
  readonly __firstChild?: ChildNode;
6183
5776
  /**
6184
5777
  * On a `scoped: true` component
6185
- * with `experimentalSlotFixes` flag enabled,
5778
+ * with `lightDomPatches` flag enabled,
6186
5779
  * returns the internal `lastChild` of the component
6187
5780
  */
6188
5781
  readonly __lastChild?: ChildNode;
6189
5782
  /**
6190
5783
  * On a `scoped: true` component
6191
- * with `experimentalSlotFixes` flag enabled,
5784
+ * with `lightDomPatches` flag enabled,
6192
5785
  * returns the internal `textContent` of the component
6193
5786
  */
6194
5787
  __textContent?: string;
6195
5788
  /**
6196
5789
  * On a `scoped: true` component
6197
- * with `experimentalSlotFixes` flag enabled,
5790
+ * with `lightDomPatches` flag enabled,
6198
5791
  * gives access to the original `append` method
6199
5792
  */
6200
5793
  __append?: (...nodes: (Node | string)[]) => void;
6201
5794
  /**
6202
5795
  * On a `scoped: true` component
6203
- * with `experimentalSlotFixes` flag enabled,
5796
+ * with `lightDomPatches` flag enabled,
6204
5797
  * gives access to the original `prepend` method
6205
5798
  */
6206
5799
  __prepend?: (...nodes: (Node | string)[]) => void;
6207
5800
  /**
6208
5801
  * On a `scoped: true` component
6209
- * with `experimentalSlotFixes` flag enabled,
5802
+ * with `lightDomPatches` flag enabled,
6210
5803
  * gives access to the original `appendChild` method
6211
5804
  */
6212
5805
  __appendChild?: <T extends Node>(newChild: T) => T;
6213
5806
  /**
6214
5807
  * On a `scoped: true` component
6215
- * with `experimentalSlotFixes` flag enabled,
5808
+ * with `lightDomPatches` flag enabled,
6216
5809
  * gives access to the original `insertBefore` method
6217
5810
  */
6218
5811
  __insertBefore?: <T extends Node>(node: T, child: Node | null) => T;
6219
5812
  /**
6220
5813
  * On a `scoped: true` component
6221
- * with `experimentalSlotFixes` flag enabled,
5814
+ * with `lightDomPatches` flag enabled,
6222
5815
  * gives access to the original `removeChild` method
6223
5816
  */
6224
5817
  __removeChild?: <T extends Node>(child: T) => T;
@@ -6256,31 +5849,31 @@ interface PatchedSlotNode extends Node {
6256
5849
  ['s-sr']?: boolean;
6257
5850
  /**
6258
5851
  * On a `scoped: true` component
6259
- * with `experimentalSlotFixes` flag enabled,
5852
+ * with `lightDomPatches` flag enabled,
6260
5853
  * returns the actual `parentNode` of the component
6261
5854
  */
6262
5855
  __parentNode?: RenderNode;
6263
5856
  /**
6264
5857
  * On a `scoped: true` component
6265
- * with `experimentalSlotFixes` flag enabled,
5858
+ * with `lightDomPatches` flag enabled,
6266
5859
  * returns the actual `nextSibling` of the component
6267
5860
  */
6268
5861
  __nextSibling?: RenderNode;
6269
5862
  /**
6270
5863
  * On a `scoped: true` component
6271
- * with `experimentalSlotFixes` flag enabled,
5864
+ * with `lightDomPatches` flag enabled,
6272
5865
  * returns the actual `previousSibling` of the component
6273
5866
  */
6274
5867
  __previousSibling?: RenderNode;
6275
5868
  /**
6276
5869
  * On a `scoped: true` component
6277
- * with `experimentalSlotFixes` flag enabled,
5870
+ * with `lightDomPatches` flag enabled,
6278
5871
  * returns the actual `nextElementSibling` of the component
6279
5872
  */
6280
5873
  __nextElementSibling?: RenderNode;
6281
5874
  /**
6282
5875
  * On a `scoped: true` component
6283
- * with `experimentalSlotFixes` flag enabled,
5876
+ * with `lightDomPatches` flag enabled,
6284
5877
  * returns the actual `nextElementSibling` of the component
6285
5878
  */
6286
5879
  __previousElementSibling?: RenderNode;
@@ -6381,7 +5974,7 @@ type ComponentRuntimeReflectingAttr = [string, string | undefined];
6381
5974
  * associated {@link HostRef} instance.
6382
5975
  */
6383
5976
  type RuntimeRef = HostElement | {
6384
- __stencil__getHostRef?: () => HostRef;
5977
+ __s_ghr?: () => HostRef;
6385
5978
  };
6386
5979
  /**
6387
5980
  * Interface used to track an Element, it's virtual Node (`VNode`), and other data
@@ -6392,6 +5985,9 @@ interface HostRef {
6392
5985
  $cmpMeta$: ComponentRuntimeMeta;
6393
5986
  $hostElement$: HostElement;
6394
5987
  $instanceValues$?: Map<string, any>;
5988
+ $signalValues$?: Map<string, import('@preact/signals-core').Signal<any>>;
5989
+ /** Dispose function that tears down all signal effects for this component. */
5990
+ $signalCleanup$?: () => void;
6395
5991
  $serializerValues$?: Map<string, string>;
6396
5992
  $lazyInstance$?: ComponentInterface;
6397
5993
  /**
@@ -6490,6 +6086,12 @@ interface ExternalStyleCompiler {
6490
6086
  relativePath: string;
6491
6087
  originalComponentPath: string;
6492
6088
  }
6089
+ interface ComponentGlobalStyle {
6090
+ /** Absolute path to the CSS file, or null for inline styles */
6091
+ absolutePath: string | null;
6092
+ /** Raw inline CSS string, or null for file-based styles */
6093
+ styleStr: string | null;
6094
+ }
6493
6095
  interface CompilerModeStyles {
6494
6096
  [modeName: string]: string[];
6495
6097
  }
@@ -6562,6 +6164,7 @@ interface TransformCssToEsmOutput {
6562
6164
  interface PackageJsonData {
6563
6165
  name?: string;
6564
6166
  version?: string;
6167
+ type?: 'module' | 'commonjs';
6565
6168
  main?: string;
6566
6169
  exports?: {
6567
6170
  [key: string]: string | {
@@ -6575,7 +6178,6 @@ interface PackageJsonData {
6575
6178
  browser?: string;
6576
6179
  module?: string;
6577
6180
  'jsnext:main'?: string;
6578
- 'collection:main'?: string;
6579
6181
  unpkg?: string;
6580
6182
  collection?: string;
6581
6183
  types?: string;
@@ -6713,10 +6315,6 @@ interface NewSpecPageOptions {
6713
6315
  * Sets the mocked `document.referrer`.
6714
6316
  */
6715
6317
  referrer?: string;
6716
- /**
6717
- * Manually set if the mocked document supports Shadow DOM or not. Default is `true`.
6718
- */
6719
- supportsShadowDom?: boolean;
6720
6318
  /**
6721
6319
  * When a component is pre-rendered it includes HTML annotations, such as `s-id` attributes and `<!-t.0->` comments. This information is used by client-side hydrating. Default is `false`.
6722
6320
  */
@@ -6733,11 +6331,6 @@ interface NewSpecPageOptions {
6733
6331
  * By default, any changes to component properties and attributes must `page.waitForChanges()` in order to test the updates. As an option, `autoApplyChanges` continuously flushes the queue on the background. Default is `false`.
6734
6332
  */
6735
6333
  autoApplyChanges?: boolean;
6736
- /**
6737
- * By default, styles are not attached to the DOM and they are not reflected in the serialized HTML.
6738
- * Setting this option to `true` will include the component's styles in the serializable output.
6739
- */
6740
- attachStyles?: boolean;
6741
6334
  /**
6742
6335
  * Set {@link BuildConditionals} for testing based off the metadata of the component under test.
6743
6336
  * When `true` all `BuildConditionals` will be assigned to the global testing `BUILD` object, regardless of their
@@ -6749,6 +6342,20 @@ interface NewSpecPageOptions {
6749
6342
  * the spec page.
6750
6343
  */
6751
6344
  platform?: Partial<PlatformRuntime>;
6345
+ /**
6346
+ * Controls how shadow DOM components are serialized during `hydrateServerSide`.
6347
+ * When set to `'scoped'`, shadow DOM components are rendered as scoped light DOM
6348
+ * (matching the behavior of `serializeShadowRoot: 'scoped'` in production SSR).
6349
+ * When set to `false`, shadow DOM components render with a real shadow root.
6350
+ * Default is `false`.
6351
+ */
6352
+ serializeShadowRoot?: 'scoped' | false;
6353
+ /**
6354
+ * Override individual {@link BuildConditionals} for this test. Applied after all other
6355
+ * BUILD setup so these values take final precedence. Useful for testing code paths that
6356
+ * are gated behind a build flag (e.g. `{ signalBacking: true }`).
6357
+ */
6358
+ buildFlags?: Partial<BuildConditionals>;
6752
6359
  }
6753
6360
  /**
6754
6361
  * A record of `TypesMemberNameData` entities.
@@ -6835,7 +6442,7 @@ interface VNodeProdData {
6835
6442
  */
6836
6443
  interface CompilerWorkerContext {
6837
6444
  optimizeCss(inputOpts: OptimizeCssInput): Promise<OptimizeCssOutput>;
6838
- prepareModule(input: string, minifyOpts: any, transpile: boolean, inlineHelpers: boolean): Promise<{
6445
+ prepareModule(input: string, minifyOpts: any): Promise<{
6839
6446
  output: string;
6840
6447
  diagnostics: Diagnostic$1[];
6841
6448
  sourceMap?: SourceMap$1;
@@ -6915,4 +6522,4 @@ interface ValidateTypesResults {
6915
6522
  filePaths: string[];
6916
6523
  }
6917
6524
  //#endregion
6918
- export { ComponentCompilerVirtualProperty as $, isTsFile as $a, SitemapXmpResults as $i, CompilerEventBuildFinish as $n, catchError as $o, LazyRequire as $r, toCamelCase as $s, PluginTransformationDescriptor as $t, CompilerStyleDoc as A, JsonDocsListener as Aa, NODE_TYPES as Ac, OutputTargetHydrate as Ai, VNodeProdData as An, isOutputTargetDist as Ao, CopyResults as Ar, ScriptSpecialNumber as As, HydrateScriptElement as At, ComponentCompilerMeta as B, JsonDocsValue as Ba, VALUE_CONSTANT as Bc, PrerenderStartOptions as Bi, BuildOnEventRemove as Bn, isOutputTargetDocsJson as Bo, EmulateConfig as Br, fromEntries as Bs, ModuleMap as Bt, CompilerBuildStatBundle as C, VNode as Ca, DOCS_VSCODE as Cc, OutputTargetDistLazyLoader as Ci, TransformCssToEsmOutput as Cn, filterExcludedComponents as Co, CompilerSystemRenameResults as Cr, ScriptObjectLocalValue as Cs, HostElement as Ct, CompilerJsDoc as D, JsonDocsCustomState as Da, HTML_NS as Dc, OutputTargetDocsJson as Di, TypesMemberNameData as Dn, isEligiblePrimaryPackageOutputTarget as Do, Config as Dr, ScriptRegExpLocalValue as Ds, HydrateElement as Dt, CompilerCtx as E, JsonDocsComponent as Ea, HOST_FLAGS as Ec, OutputTargetDocsCustomElementsManifest as Ei, TypesImportData as En, getComponentsFromModules as Eo, CompilerWatcher as Er, ScriptRealm as Es, HydrateComponent as Et, ComponentCompilerData as F, JsonDocsSlot as Fa, SERIALIZED_PREFIX as Fc, Path as Fi, AutoprefixerOptions as Fn, isOutputTargetDistLazyLoader as Fo, DevServer as Fr, isRootPath as Fs, JsDoc as Ft, ComponentCompilerPropertyType as G, addDocBlock as Ga, RobotsTxtResults as Gi, CacheStorage as Gn, isOutputTargetWww as Go, HistoryApiFallback as Gr, isIterable as Gs, OptimizeJsResult as Gt, ComponentCompilerMethodComplexType as H, FsWriteResults as Ha, WWW as Hc, ResolveModuleIdResults as Hi, BuildOutput as Hn, isOutputTargetDocsVscode as Ho, FsStats as Hr, isComplexType as Hs, MsgToWorker as Ht, ComponentCompilerEvent as I, JsonDocsStyle as Ia, STATS as Ic, PlatformPath as Ii, BuildEmitEvents as In, isOutputTargetDistTypes as Io, DevServerConfig as Ir, isGlob as Is, LazyBundleRuntimeData as It, ComponentCompilerStaticEvent as J, getTextDocs as Ja, RollupInterface as Ji, CompileTarget as Jn, shouldExcludeComponent as Jo, HydrateDocumentOptions as Jr, isString as Js, PatchedSlotNode as Jt, ComponentCompilerReferencedType as K, createJsVarName as Ka, RollupConfig as Ki, CliInitOptions as Kn, isValidConfigOutputTarget as Ko, HmrStyleUpdate as Kr, isNumber as Ks, PackageJsonData as Kt, ComponentCompilerEventComplexType as L, JsonDocsTag as La, SVG_NS as Lc, PrerenderConfig as Li, BuildEvents as Ln, isOutputTargetDocs as Lo, DevServerEditor as Lr, dashToPascalCase as Ls, LazyBundlesRuntimeData as Lt, CompilerWorkerTask as M, JsonDocsMethodReturn as Ma, NonPrimitiveTypeValue as Mc, OutputTargetWww as Mi, Workbox as Mn, isOutputTargetDistCustomElements as Mo, Credentials as Mr, ScriptSymbolValue as Ms, HydrateStyleElement as Mt, ComponentCompilerChangeHandler as N, JsonDocsPart as Na, PrimitiveType as Nc, PageReloadStrategy as Ni, WorkerContextMethod as Nn, isOutputTargetDistGlobalStyles as No, CustomElementsExportBehavior as Nr, ScriptUndefinedValue as Ns, ImportData as Nt, CompilerJsDocTagInfo as O, JsonDocsDependencyGraph as Oa, LISTENER_FLAGS as Oc, OutputTargetDocsReadme as Oi, TypesModule as On, isOutputTargetCopy as Oo, ConfigBundle as Or, ScriptRegExpValue as Os, HydrateImgElement as Ot, ComponentCompilerCustomState as P, JsonDocsProp as Pa, PrimitiveTypeValue as Pc, ParsedPath as Pi, WorkerMsgHandler as Pn, isOutputTargetDistLazy as Po, CustomElementsExportBehaviorOptions as Pr, Serializeable as Ps, JSDocTagInfo as Pt, ComponentCompilerTypeReferences as Q, isJsxFile as Qa, SitemapXmpOpts as Qi, CompilerDependency as Qn, buildWarn as Qo, LOG_LEVELS as Qr, sortBy as Qs, PluginTransformResults as Qt, ComponentCompilerFeatures as R, JsonDocsTypeLibrary as Ra, TYPE_CONSTANT as Rc, PrerenderHydrateOptions as Ri, BuildLog as Rn, isOutputTargetDocsCustom as Ro, Diagnostic$1 as Rr, escapeWithPattern as Rs, Module as Rt, CompilerAssetDir as S, UserBuildConditionals as Sa, DOCS_README as Sc, OutputTargetDistLazy as Si, TransformCssToEsmInput as Sn, FilterComponentsResult as So, CompilerSystemRemoveFileResults as Sr, ScriptNumberValue as Ss, ExternalStyleCompiler as St, CompilerBuildStats as T, JsonDocs as Ta, GENERATED_DTS as Tc, OutputTargetDocsCustom as Ti, TypeInfo as Tn, getComponentsDtsTypesFilePath as To, CompilerSystemWriteFileResults as Tr, ScriptPrimitiveProtocolValue as Ts, HydrateAnchorElement as Tt, ComponentCompilerProperty as U, validateComponentTag as Ua, XLINK_NS as Uc, ResolveModuleOptions as Ui, BuildResultsComponentGraph as Un, isOutputTargetHydrate as Uo, FsWatchResults as Ur, isDef as Us, NewSpecPageOptions as Ut, ComponentCompilerMethod as V, StyleDoc as Va, WATCH_FLAGS as Vc, ResolveModuleIdOptions as Vi, BuildOnEvents as Vn, isOutputTargetDocsReadme as Vo, EmulateViewport as Vr, isBoolean as Vs, MsgFromWorker as Vt, ComponentCompilerPropertyComplexType as W, ParsePackageJsonResult as Wa, byteSize as Wc, RobotsTxtOpts as Wi, BundlingConfig as Wn, isOutputTargetStats as Wo, FsWatcherItem as Wr, isFunction as Ws, NodeMap as Wt, ComponentCompilerStaticProperty as X, isDtsFile as Xa, SerializeDocumentOptions as Xi, CompilerBuildResults as Xn, buildError as Xo, HydratedFlag as Xr, noop as Xs, Plugin as Xt, ComponentCompilerStaticMethod as Y, hasDependency as Ya, RollupOutputOptions as Yi, Compiler as Yn, TASK_CANCELED_MSG as Yo, HydrateFactoryOptions as Yr, mergeIntoWith as Ys, PlatformRuntime as Yt, ComponentCompilerTypeReference as Z, isJsFile as Za, ServiceWorkerConfig as Zi, CompilerBuildStart as Zn, buildJsonFileError as Zo, JestConfig as Zr, pluck as Zs, PluginCtx as Zt, CollectionCompilerVersion as _, ErrorHandler as _a, DIST_LAZY_LOADER as _c, OutputTargetCustom as _i, SourceTarget as _n, normalizeFsPath as _o, CompilerSystemCreateDirectoryOptions as _r, ScriptListLocalValue as _s, CssToEsmImportData as _t, BuildCtx as a, TestingConfig as aa, stringifyRuntimeData as ac, LoggerTimeSpan as ai, RenderNode as an, getInlineSourceMappingUrlLinker as ao, CompilerEventFileAdd as ar, splitLineBreaks as as, ComponentConstructorProperties as at, CollectionDependencyManifest as b, ResolutionHandler as ba, DOCS_CUSTOM_ELEMENTS_MANIFEST as bc, OutputTargetDistCustomElements as bi, StyleCompiler as bn, relative as bo, CompilerSystemRemoveDirectoryOptions as br, ScriptMappingLocalValue as bs, EntryModule as bt, BuildStyleUpdate as c, TransformerConfig as ca, COPY as cc, OptimizeCssInput as ci, RollupResult as cn, rollupToStencilSourceMap as co, CompilerEventFsChange as cr, loadTypeScriptDiagnostics as cs, ComponentNativeConstructor as ct, BundleModuleOutput as d, TranspileResults as da, DIST as dc, OptimizeJsOutput as di, RollupSourceMap as dn, result_d_exports as do, CompilerFileWatcherCallback as dr, LocalValue as ds, ComponentRuntimeMembers as dt, StencilConfig as ea, toDashCase as ec, LoadConfigInit as ei, PrerenderManager as en, isTsxFile as eo, CompilerEventBuildLog as er, hasError as es, ComponentConstructor as et, Cache as f, UnvalidatedConfig as fa, DIST_COLLECTION as fc, OutputTarget as fi, RootAppliedStyleMap as fn, RemoteValue as fo, CompilerFileWatcherEvent as fr, LocalValueParam as fs, ComponentRuntimeMeta as ft, CollectionCompilerMeta as g, WorkerOptions as ga, DIST_LAZY as gc, OutputTargetCopy as gi, SourceMap$1 as gn, normalize as go, CompilerSystem as gr, ScriptDateLocalValue as gs, CssImportData as gt, CollectionCompiler as h, WorkerMainController as ha, DIST_HYDRATE_SCRIPT as hc, OutputTargetBuild as hi, SerializedEvent as hn, join as ho, CompilerRequestResponse as hr, ScriptBooleanValue as hs, ComponentTestingConstructor as ht, BuildConditionals as i, Testing as ia, formatLazyBundleRuntimeMeta as ic, LoggerLineUpdater as ii, PropsType as in, isRemoteUrl as io, CompilerEventDirDelete as ir, normalizeDiagnostics as is, ComponentConstructorListener as it, CompilerWorkerContext as j, JsonDocsMethod as ja, NonPrimitiveType as jc, OutputTargetStats as ji, ValidateTypesResults as jn, isOutputTargetDistCollection as jo, CopyTask as jr, ScriptStringValue as js, HydrateStaticData as jt, CompilerModeStyles as k, JsonDocsEvent as ka, MEMBER_FLAGS as kc, OutputTargetDocsVscode as ki, UpdatedLazyBuildCtx as kn, isOutputTargetCustom as ko, ConfigExtras as kr, ScriptSetLocalValue as ks, HydrateResults as kt, BuildTask as l, TranspileOnlyResults as la, CUSTOM as lc, OptimizeCssOutput as li, RollupResultModule as ln, deserializeProperty as lo, CompilerEventName as lr, createOnWarnFn as ls, ComponentRuntimeHostListener as lt, CollectionBundleManifest as m, WatcherCloseResults as ma, DIST_GLOBAL_STYLES as mc, OutputTargetBaseNext as mi, SerializeImportData as mn, queryNonceMetaTagContent as mo, CompilerRequest as mr, ScriptBigIntValue as ms, ComponentRuntimeReflectingAttr as mt, AssetsMeta as n, StencilDocsConfig as na, unique as nc, LogLevel as ni, PrerenderUrlResults as nn, readOnlyArrayHasStringMember as no, CompilerEventBuildStart as nr, shouldIgnoreError as ns, ComponentConstructorEncapsulation as nt, BuildFeatures as o, TestingRunOptions as oa, CMP_FLAGS as oc, MakeDirectoryOptions as oi, RollupAssetResult as on, getSourceMappingUrlForEndOfFile as oo, CompilerEventFileDelete as or, augmentDiagnosticWithNode as os, ComponentConstructorProperty as ot, ChildType as p, ValidatedConfig as pa, DIST_CUSTOM_ELEMENTS as pc, OutputTargetBase as pi, RuntimeRef as pn, escapeRegExpSpecialCharacters as po, CompilerFsStats as pr, ScriptArrayLocalValue as ps, ComponentRuntimeMetaCompact as pt, ComponentCompilerState as q, generatePreamble as qa, RollupInputOptions as qi, CompileScriptMinifyOptions as qn, relativeImport as qo, HotModuleReplacement as qr, isObject as qs, ParsedImport as qt, BuildComponent as r, SystemDetails as ra, formatComponentRuntimeMeta as rc, Logger as ri, PrintLine as rn, readPackageJson as ro, CompilerEventDirAdd as rr, escapeHtml as rs, ComponentConstructorEvent as rt, BuildSourceGraph as s, TransformOptions as sa, COLLECTION_MANIFEST_FILE_NAME as sc, NodeResolveConfig as si, RollupChunkResult as sn, getSourceMappingUrlLinker as so, CompilerEventFileUpdate as sr, loadTypeScriptDiagnostic as ss, ComponentConstructorPropertyType as st, AnyHTMLElement as t, StencilDevServerConfig as ta, toTitleCase as tc, LoadConfigResults as ti, PrerenderUrlRequest as tn, parsePackageJson as to, CompilerEventBuildNoChange as tr, hasWarning as ts, ComponentConstructorChangeHandlers as tt, BundleModule as u, TranspileOptions as ua, DEFAULT_STYLE_MODE as uc, OptimizeJsInput as ui, RollupResults as un, serializeProperty as uo, CompilerFileWatcher as ur, loadRollupDiagnostics as us, ComponentRuntimeMember as ut, CollectionComponentEntryPath as v, FunctionalComponent as va, DIST_TYPES as vc, OutputTargetDist as vi, SpecPage as vn, normalizeFsPathQuery as vo, CompilerSystemCreateDirectoryResults as vr, ScriptLocalValue as vs, DocData as vt, CompilerBuildStatCollection as w, JsonDocMethodParameter as wa, EVENT_FLAGS as wc, OutputTargetDistTypes as wi, TranspileModuleResults as wn, getComponentsDtsSrcFilePath as wo, CompilerSystemRenamedPath as wr, ScriptPreloadScript as ws, HostRef as wt, CollectionManifest as x, TagTransformer as xa, DOCS_JSON as xc, OutputTargetDistGlobalStyles as xi, StyleMap as xn, resolve as xo, CompilerSystemRemoveDirectoryResults as xr, ScriptNullValue as xs, EventInitDict as xt, CollectionDependencyData as y, RafCallback as ya, DOCS_CUSTOM as yc, OutputTargetDistCollection as yi, StencilDocument as yn, normalizePath as yo, CompilerSystemRealpathResults as yr, ScriptMapLocalValue as ys, Encapsulation as yt, ComponentCompilerListener as z, JsonDocsUsage as za, VALID_CONFIG_OUTPUT_TARGETS as zc, PrerenderResults as zi, BuildNoChangeResults as zn, isOutputTargetDocsCustomElementsManifest as zo, EligiblePrimaryPackageOutputTarget as zr, flatOne as zs, ModuleFormat as zt };
6525
+ export { ComponentCompilerVirtualProperty as $, getInlineSourceMappingUrlLinker as $a, SystemDetails as $i, CompilerBuildStart as $n, loadTypeScriptDiagnostic as $o, LogLevel as $r, SSR_WASM as $s, PropsType as $t, CompilerStyleDoc as A, JsonDocsTag as Aa, PageReloadStrategy as Ai, TypesMemberNameData as An, isOutputTargetGlobalStyle as Ao, ConfigBundle as Ar, CMP_FLAGS as As, JsDoc as At, ComponentCompilerMeta as B, createJsVarName as Ba, ResolveModuleOptions as Bi, BuildEvents as Bn, shouldExcludeComponent as Bo, Diagnostic$1 as Br, DOCS_JSON as Bs, OptimizeJsResult as Bt, CompilerBuildStatBundle as C, JsonDocsListener as Ca, OutputTargetLoaderBundle as Ci, StyleCompiler as Cn, isOutputTargetDistLazy as Co, CompilerSystemRemoveDirectoryResults as Cr, toDashCase as Cs, EntryModule as Ct, CompilerJsDoc as D, JsonDocsProp as Da, OutputTargetStats as Di, TranspileModuleResults as Dn, isOutputTargetDocsJson as Do, CompilerSystemWriteFileResults as Dr, formatLazyBundleRuntimeMeta as Ds, HostRef as Dt, CompilerCtx as E, JsonDocsPart as Ea, OutputTargetStandalone as Ei, TransformCssToEsmOutput as En, isOutputTargetDocsCustomElementsManifest as Eo, CompilerSystemRenamedPath as Er, formatComponentRuntimeMeta as Es, HostElement as Et, ComponentCompilerData as F, FsWriteResults as Fa, PrerenderOptions as Fi, Workbox as Fn, isOutputTargetStats as Fo, CustomElementsExportBehavior as Fr, CUSTOM as Fs, ModuleMap as Ft, ComponentCompilerPropertyType as G, isJsFile as Ga, ServiceWorkerConfig as Gi, BuildOutput as Gn, catchError as Go, HydrateDocumentOptions as Gr, GLOBAL_STYLE as Gs, Plugin as Gt, ComponentCompilerMethodComplexType as H, getTextDocs as Ha, RobotsTxtResults as Hi, BuildNoChangeResults as Hn, buildError as Ho, HistoryApiFallback as Hr, DOCS_VSCODE as Hs, ParsedImport as Ht, ComponentCompilerEvent as I, InMemoryFileSystem as Ia, PrerenderResults as Ii, WorkerContextMethod as In, isOutputTargetTypes as Io, CustomElementsExportBehaviorOptions as Ir, DEFAULT_STYLE_MODE as Is, MsgFromWorker as It, ComponentCompilerStaticEvent as J, isTsxFile as Ja, SsrDocumentOptions as Ji, CliInitOptions as Jn, shouldIgnoreError as Jo, LOG_LEVELS as Jr, LISTENER_FLAGS as Js, PluginTransformationDescriptor as Jt, ComponentCompilerReferencedType as K, isJsxFile as Ka, SitemapXmpOpts as Ki, BuildResultsComponentGraph as Kn, hasError as Ko, HydrateFactoryOptions as Kr, HOST_FLAGS as Ks, PluginCtx as Kt, ComponentCompilerEventComplexType as L, validateComponentTag as La, PrerenderStartOptions as Li, WorkerMsgHandler as Ln, isOutputTargetWww as Lo, DevServer as Lr, DIST_LAZY as Ls, MsgToWorker as Lt, CompilerWorkerTask as M, JsonDocsUsage as Ma, PlatformPath as Mi, UpdatedLazyBuildCtx as Mn, isOutputTargetSsr as Mo, CopyResults as Mr, COLLECTION_APP_DATA_FILE_NAME as Ms, LazyBundlesRuntimeData as Mt, ComponentCompilerChangeHandler as N, JsonDocsValue as Na, PrerenderConfig as Ni, VNodeProdData as Nn, isOutputTargetSsrWasm as No, CopyTask as Nr, COLLECTION_MANIFEST_FILE_NAME as Ns, Module as Nt, CompilerJsDocTagInfo as O, JsonDocsSlot as Oa, OutputTargetTypes as Oi, TypeInfo as On, isOutputTargetDocsReadme as Oo, CompilerWatcher as Or, stringifyRuntimeData as Os, ImportData as Ot, ComponentCompilerCustomState as P, StyleDoc as Pa, PrerenderHydrateOptions as Pi, ValidateTypesResults as Pn, isOutputTargetStandalone as Po, Credentials as Pr, COPY as Ps, ModuleFormat as Pt, ComponentCompilerTypeReferences as Q, isRemoteUrl as Qa, StencilDocsConfig as Qi, CompilerBuildResults as Qn, augmentDiagnosticWithNode as Qo, LoadConfigResults as Qr, SSR as Qs, PrintLine as Qt, ComponentCompilerFeatures as R, ParsePackageJsonResult as Ra, ResolveModuleIdOptions as Ri, AutoprefixerOptions as Rn, isValidConfigOutputTarget as Ro, DevServerConfig as Rr, DOCS_CUSTOM as Rs, NewSpecPageOptions as Rt, CompilerAssetDir as S, JsonDocsEvent as Sa, OutputTargetGlobalStyle as Si, StencilDocument as Sn, isOutputTargetCustom as So, CompilerSystemRemoveDirectoryOptions as Sr, toCamelCase as Ss, Encapsulation as St, CompilerBuildStats as T, JsonDocsMethodReturn as Ta, OutputTargetSsrWasm as Ti, TransformCssToEsmInput as Tn, isOutputTargetDocsCustom as To, CompilerSystemRenameResults as Tr, unique as Ts, ExternalStyleCompiler as Tt, ComponentCompilerProperty as U, hasDependency as Ua, RolldownConfig as Ui, BuildOnEventRemove as Un, buildJsonFileError as Uo, HmrStyleUpdate as Ur, EVENT_FLAGS as Us, PatchedSlotNode as Ut, ComponentCompilerMethod as V, generatePreamble as Va, RobotsTxtOpts as Vi, BuildLog as Vn, TASK_CANCELED_MSG as Vo, FsWatchResults as Vr, DOCS_README as Vs, PackageJsonData as Vt, ComponentCompilerPropertyComplexType as W, isDtsFile as Wa, SerializeDocumentOptions as Wi, BuildOnEvents as Wn, buildWarn as Wo, HotModuleReplacement as Wr, GENERATED_DTS as Ws, PlatformRuntime as Wt, ComponentCompilerStaticProperty as X, readOnlyArrayHasStringMember as Xa, StencilConfig as Xi, CompileTarget as Xn, normalizeDiagnostics as Xo, LightDomPatches as Xr, MEMBER_FLAGS as Xs, PrerenderUrlRequest as Xt, ComponentCompilerStaticMethod as Y, parsePackageJson as Ya, SsrFactoryOptions as Yi, CompileScriptMinifyOptions as Yn, escapeHtml as Yo, LazyRequire as Yr, LOADER_BUNDLE as Ys, PrerenderManager as Yt, ComponentCompilerTypeReference as Z, readPackageJson as Za, StencilDevServerConfig as Zi, Compiler as Zn, splitLineBreaks as Zo, LoadConfigInit as Zr, NODE_TYPES as Zs, PrerenderUrlResults as Zt, CollectionCompilerVersion as _, JsonDocMethodParameter as _a, OutputTargetDocsCustom as _i, SsrImgElement as _n, getComponentsDtsTypesFilePath as _o, CompilerRequestResponse as _r, isString as _s, ComponentTestingConstructor as _t, BuildCtx as a, ValidatedConfig as aa, VALID_CONFIG_OUTPUT_TARGETS as ac, OptimizeCssOutput as ai, RolldownResults as an, queryNonceMetaTagContent as ao, CompilerEventDirAdd as ar, isGlob as as, ComponentConstructorProperties as at, CollectionDependencyManifest as b, JsonDocsCustomState as ba, OutputTargetDocsReadme as bi, SsrStaticData as bn, isOutputTargetCollection as bo, CompilerSystemCreateDirectoryResults as br, pluck as bs, CssTransformCacheEntry as bt, BuildStyleUpdate as c, WorkerMainController as ca, XLINK_NS as cc, OutputTarget as ci, RuntimeRef as cn, normalizeFsPath as co, CompilerEventFileDelete as cr, flatOne as cs, ComponentGlobalStyle as ct, BundleModuleOutput as d, FunctionalComponent as da, OutputTargetBaseNext as di, SourceMap$1 as dn, relative as do, CompilerEventName as dr, isComplexType as ds, ComponentRuntimeHostListener as dt, TransformOptions as ea, STANDALONE as ec, Logger as ei, RenderNode as en, getSourceMappingUrlForEndOfFile as eo, CompilerDependency as er, loadTypeScriptDiagnostics as es, ComponentConstructor as et, Cache as f, RafCallback as fa, OutputTargetBuild as fi, SourceTarget as fn, resolve as fo, CompilerFileWatcher as fr, isDef as fs, ComponentRuntimeMember as ft, CollectionCompilerMeta as g, VNode as ga, OutputTargetDistLazy as gi, SsrElement as gn, getComponentsDtsSrcFilePath as go, CompilerRequest as gr, isObject as gs, ComponentRuntimeReflectingAttr as gt, CollectionCompiler as h, UserBuildConditionals as ha, OutputTargetCustom as hi, SsrComponent as hn, filterExcludedComponents as ho, CompilerFsStats as hr, isNumber as hs, ComponentRuntimeMetaCompact as ht, BuildConditionals as i, UnvalidatedConfig as ia, TYPES as ic, OptimizeCssInput as ii, RolldownResultModule as in, escapeRegExpSpecialCharacters as io, CompilerEventBuildStart as ir, isRootPath as is, ComponentConstructorListener as it, CompilerWorkerContext as j, JsonDocsTypeLibrary as ja, ParsedPath as ji, TypesModule as jn, isOutputTargetLoaderBundle as jo, ConfigCompat as jr, COLLECTION as js, LazyBundleRuntimeData as jt, CompilerModeStyles as k, JsonDocsStyle as ka, OutputTargetWww as ki, TypesImportData as kn, isOutputTargetDocsVscode as ko, Config as kr, ASSETS as ks, JSDocTagInfo as kt, BuildTask as l, WorkerOptions as la, byteSize as lc, OutputTargetAssets as li, SerializeImportData as ln, normalizeFsPathQuery as lo, CompilerEventFileUpdate as lr, fromEntries as ls, ComponentNativeConstructor as lt, CollectionBundleManifest as m, TagTransformer as ma, OutputTargetCopy as mi, SsrAnchorElement as mn, filterActiveTargets as mo, CompilerFileWatcherEvent as mr, isIterable as ms, ComponentRuntimeMeta as mt, AssetsMeta as n, TranspileOptions as na, STYLE_EXT as nc, LoggerTimeSpan as ni, RolldownChunkResult as nn, rolldownToStencilSourceMap as no, CompilerEventBuildLog as nr, isRolldownError as ns, ComponentConstructorEncapsulation as nt, BuildFeatures as o, ValidatedOutputTargetWww as oa, WATCH_FLAGS as oc, OptimizeJsInput as oi, RolldownSourceMap as on, join as oo, CompilerEventDirDelete as or, dashToPascalCase as os, ComponentConstructorProperty as ot, ChildType as p, ResolutionHandler as pa, OutputTargetCollection as pi, SpecPage as pn, FilterComponentsResult as po, CompilerFileWatcherCallback as pr, isFunction as ps, ComponentRuntimeMembers as pt, ComponentCompilerState as q, isTsFile as qa, SitemapXmpResults as qi, CacheStorage as qn, hasWarning as qo, HydratedFlag as qr, HTML_NS as qs, PluginTransformResults as qt, BuildComponent as r, TranspileResults as ra, SVG_NS as rc, NodeResolveConfig as ri, RolldownResult as rn, result_d_exports as ro, CompilerEventBuildNoChange as rr, loadRolldownDiagnostics as rs, ComponentConstructorEvent as rt, BuildSourceGraph as s, WatcherCloseResults as sa, WWW as sc, OptimizeJsOutput as si, RootAppliedStyleMap as sn, normalize as so, CompilerEventFileAdd as sr, escapeWithPattern as ss, ComponentConstructorPropertyType as st, AnyHTMLElement as t, TranspileOnlyResults as ta, STATS as tc, LoggerLineUpdater as ti, RolldownAssetResult as tn, getSourceMappingUrlLinker as to, CompilerEventBuildFinish as tr, createOnWarnFn as ts, ComponentConstructorChangeHandlers as tt, BundleModule as u, ErrorHandler as ua, OutputTargetBase as ui, SerializedEvent as un, normalizePath as uo, CompilerEventFsChange as ur, isBoolean as us, ComponentPatches as ut, CollectionComponentEntryPath as v, JsonDocs as va, OutputTargetDocsCustomElementsManifest as vi, SsrResults as vn, getComponentsFromModules as vo, CompilerSystem as vr, mergeIntoWith as vs, CssImportData as vt, CompilerBuildStatCollection as w, JsonDocsMethod as wa, OutputTargetSsr as wi, StyleMap as wn, isOutputTargetDocs as wo, CompilerSystemRemoveFileResults as wr, toTitleCase as ws, EventInitDict as wt, CollectionManifest as x, JsonDocsDependencyGraph as xa, OutputTargetDocsVscode as xi, SsrStyleElement as xn, isOutputTargetCopy as xo, CompilerSystemRealpathResults as xr, sortBy as xs, DocData as xt, CollectionDependencyData as y, JsonDocsComponent as ya, OutputTargetDocsJson as yi, SsrScriptElement as yn, isOutputTargetAssets as yo, CompilerSystemCreateDirectoryOptions as yr, noop as ys, CssToEsmImportData as yt, ComponentCompilerListener as z, addDocBlock as za, ResolveModuleIdResults as zi, BuildEmitEvents as zn, relativeImport as zo, DevServerEditor as zr, DOCS_CUSTOM_ELEMENTS_MANIFEST as zs, NodeMap as zt };