🐷 4.21.0 (2024-08-26)
- compiler: default
asyncLoading
build conditional totrue
(#5941) (0e261d6), closes #3580 - compiler: prefer
localName
overoriginalName
by running an empty check onoriginalName
(#5943) (0f42656), closes #5882 - compiler: verify parent node when validating component members (#5942) (37a0aaf), closes #5940
- runtime: have fallback for style setting (#5948) (ae19d7a)
- runtime: only use setter if existing (#5947) (7e9fa60), closes #2703
- runtime: place scoped component styles after preconnect links but before custom styles (#5938) (8f92b11)
- runtime: provide second arg to
insertBefore
(#5933) (afcc9a5) - runtime: render component styles at the end of the head tag (#5926) (90da726), closes #5915
- runtime: update call to
prepend
to removenull
node (#5946) (970c5d2) - typescript: fix documentation on 'serializeShadowRoot' flag (#5927) (277e3e3), closes #5914
🚐 4.20.0 (2024-08-02)
- core: add @stencil/core/testing/jest-preset to export map (#5900) (3def2b7), fixes #5896
- compiler: don't allow shadowRoot getter to avoid hydration issues (#5912) (5dd4f7f)
- compiler: no need for commenting selectors anymore (#5892) (d571bbb), fixes #5880
- compiler: respect project tsconfig watch options (#5916) (74adeee), closes #5709, fixes #5709, fixes #5592
- compiler: run copy task after other output targets (#5902) (c3d4e8b), fixes #5592
- core: add missing screenshot export (#5909) (764a8ba), fixes #5906
- hydrate: ensure beforeHydrateFn and afterHydrateFn always return a function (#5890) (a7c212c), fixes #5884
- runtime: hydrate shadow dom first (#5911) (ccf1a89)
- runtime: make isSameVnode return false on initial render in a hydration case (#5891) (82a7bb9)
- testing: update Jest types (#5910) (5f8c969), fixes #5908
- core: update TypeScript to v5.5 (#5898) (5e74837)
As we’ve made further enhancements to support declarative Shadow DOM, the Stencil team has determined that it’s not feasible to allow users to render a shadow component as a scoped component after compilation, such as by calling renderToString
with serializeShadowRoot: false
. This is because Stencil compiles styles for either shadow or scoped mode during the compilation process, embedding these styles into the hydrate module. Once this compilation is complete, the styles cannot be transformed to support the other mode. Recognizing that this change would impact the current functionality, the Stencil team has decided to proceed with this update. Moving forward, we recommend serializing all components marked with shadow: true as declarative Shadow DOM.
🏉 4.19.2 (2024-07-02)
- hydrate: partially revert #5838 (#5876) (dfbc340)
- hydrate: support server side rendering of components with listener (#5877) (2c5b7f8), fixes #5869
- testing: add testing sub module to export map (#5873) (bb2e04f), fixes #5871 and #5868
🍈 4.19.1 (2024-06-27)
- compiler: account for package imports in aliasing (#5862) (02b41d3), fixes #5859
- compiler: try to create web worker with the workerPath before falling back to blob (#3513) (c84dd32), fixes #3512
- hydrate: change type resolve order (#5863) (42b1ff2)
- internal: add cli sub package to export map (ad95222)
- internal: add mock-doc export in client runtime package.json (ad95222)
🏄 4.19.0 (2024-06-26)
- compiler: support rollup's external input option (#3227) (2c68849), fixes #3226
- emit: don't emit test files (#5789) (50892f1), fixes #5788
- hydrate: support vdom annotation in nested dsd structures (#5856) (61bb5e3)
- label attribute not toggling input (#3474) (13db920), fixes #3473
- mock-doc: expose ShadowRoot and DocumentFragment globals (#5827) (98bbd7c), fixes #3260
- runtime: allow watchers to fire w/ no Stencil members (#5855) (850ad4f), fixes #5854
- runtime: catch errors in async lifecycle methods (#5826) (87e5b33), fixes #5824
- runtime: don't register listener before connected to DOM (#5844) (9d7021f), fixes #4067
- runtime: properly assign style declarations (#5838) (5c10ebf)
- testing: allow to re-use pages across it blocks (#5830) (561eab4), fixes #3720
- typescript: remove unsupported label property (#5840) (d26ea2b), fixes #3473
- cli: support generation of sass and less files (#5857) (1883812), closes #2155
- compiler: generate export maps on build (#5809) (b6d2404)
- complier: support type import aliasing (#5836) (7ffb25d), closes #2335
- runtime: support declarative shadow DOM (#5792) (c837063), closes #4010
- testing: add
toHaveLastReceivedEventDetail
event spy matcher (#5829) (63491de), closes #2488 - testing: allow to disable network error logging via 'logFailingNetworkRequests' option (#5839) (dac3e33), closes #2572
- testing: expose captureBeyondViewport in pageCompareScreenshot (#5828) (cf6a450), closes #3188
😄 4.18.3 (2024-05-28)
- esbuild: remove all
node:
imports from glob script to keep support for Jest v26 (#5784) (5f4fcfa), fixes #5766 - mock-doc: support toDataURL method in canvas (#5773) (3830dad), closes #2923
- runtime: add missing intermediate parents scope ids to the elements (#5775) (56c60d4), fixes #5774
⛲️ 4.18.2 (2024-05-20)
- e2e: allow to fetch CSS variables assigned to host elements (#5682) (e420eb6), closes #5681
- hydrate: respect
HydratedFlag
configuration in hydrate script (#5741) (3538d06), closes #3606 - runtime: always throw if component can not be loaded (#5762) (1d52b95), closes #5759
- runtime: support watch for components with custom tag names (#5767) (f561e0f), closes #3554
- runtime: throw proper error if component is loaded with invalid runtime (#5675) (3cfbb8d), closes #5596
- types: move autofocus attr/prop definition to HTMLAttributes (#5727) (3a33eff), closes #5726
🏍 4.18.1 (2024-05-13)
- build: do not copy polyfills to the
dist
OT unless building es5 (#5725) (945df46), closes #5416 - compiler: Allow OutputTargetCustom to be called on devMode (#5541) (b0a9f7b), closes #5514
- compiler: deprecate
scriptDataOpts
(#5737) (da25aaa) - declarations: Attribute ping is missing on AnchorHTMLAttributes (#5752) (d345412), closes #5751
- runtime: add root scope id to the user provided nested children as classname (#5750) (e864132), closes #5749
🍵 4.18.0 (2024-05-06)
- hydrate: output track elements as void elms (#5720) (2082351), closes #2994
- runtime: add root scope id to the nested child as classname (#5704) (b40ebb9), closes #5702
- testing: support functional components in unit tests (#5722) (922a972), closes #4063
🏊 4.17.2 (2024-04-29)
- build: address @ionic/angular bundle size issue (#5705) (0a7becc)
- compiler: recognize loud comments when generating style docs (#5706) (a325f5c), closes #5623
🚒 4.17.1 (2024-04-23)
♨️ 4.17.0 (2024-04-22)
- Rollup to Esbuild Migration The Stencil team has been working on a migration from Rollup to Esbuild. This release (v4.17.0) is the first release we make in which the published Stencil code is compiled by Esbuild. We have done our due diligence to ensure that this will have no impact on Stencil users nor the output of your compiled components. If you experience any problems though, please raise an issue and we will address it accordingly.
- docs: merge together style docs from multiple CSS files (#5653) (84e1a14)
- docs: respect custom README content when writing to a custom path (#5648) (6bfba1d), fixes #5400
- slot-fallback: fix hiding fallback slot content issue when the slotted element is a text node (#5496) (29c69c4), fixes #5335
- testing: perform string -> boolean type casting for Jest config (#5672) (20f74fc), fixes #5640
🚛 4.16.0 (2024-04-15)
- cli: fix a bug in CLI argument parsing (#5646) (1fdea63), refs #5640
- testing: prevent
find
from throwing error when query has no match (#5641) (b3886aa), closes #5639
- dev-server: dark mode support (#5642) (89a5e40)
- typescript: Update dependency typescript to v5.4.5 (#5663) (2596536)
🎖 4.15.0 (2024-04-08)
- compiler: perform automatic key insertion in more situations (#5594) (8ee071b)
- typescript: Update dependency typescript to v5.4.4 (#5636) (a463871)
🏋 4.14.1 (2024-04-04)
- compiler: don't mistake aliased paths for collections imports (#5620) (af22bb8), closes #2319
- runtime: nested multiple default slot relocation (#5403) (363c07b), partially closes #5335
- runtime: prevent ref callbacks from being called too early (#5614) (81fa375), closes #4074
🚡 4.14.0 (2024-04-01)
- mock-doc: provide a local name (#5480) (2f67b35), closes #5342
- mock-doc: resolve type issue for localName (#5595) (d91af87), closes #5342
- testing: allow to set screenshot timeout option in Jest v28+ (#5537) (6df12b2)
- testing: support deep piercing with Puppeteer (#5481) (13d5d41)
- typescript: Update dependency typescript to v5.4.3 (#5588) (9d489e4)
🚞 4.13.0 (2024-03-18)
- compiler: allow to set custom root directory (#5446) (b6b9617)
- compiler: don't validate references for @Prop, @Method and @Event decorator (#5475) (3e45a82), closes #1352
- renderer: fix conditional rendering issue (#5365) (5aa886e), closes #5335
- renderer: fix missing slot ref callback handling (#5337) (41f877e), closes #5335
- runtime: remove
forceUpdate
inappendChild
patch (#5437) (e03795b) - sys: fix expected types for
createNodeLogger
andcreateNodeSys
(#5375) (7a70281) - testing: use viewport for Puppeteer screenshot clip dimensions (#5359) (c879800), closes #5353
- dev-server: add "ping" route (#5414) (b279858)
- typescript: Update dependency typescript to ~5.4.0 (#5464) (0833dc4)
🍍 4.12.6 (2024-03-11)
- cli: move version logging earlier in CLI to allow
-v
,--version
(#5425) (194b0fc) - compiler: fix generated import statement (#5419) (502da1b)
- test: ensure screenshot dir is cleaned up (#5421) (15e7a49)
💙 4.12.5 (2024-03-04)
🐮 4.12.4 (2024-02-26)
🐍 4.12.3 (2024-02-20)
- compiler: point crypto import at
crypto
instead ofnode:crypto
(#5369) (7fb783f), closes #5358 - runtime: replace
innerHTML
withtextContent
for CSS injection (#5207) (8de2ab5), closes #5206
🎯 4.12.2 (2024-02-12)
- compiler: support async globalScripts functions (#5158) (8a129ce), closes #3392
- mock-doc: overwrite parentElement in MockHTMLElement to return null (#5336) (0d9ed22), closes #5252
🏸 4.12.1 (2024-02-05)
- mock-doc: improve error message when
:scope
selector is used (#5318) (f5d4e98) - runtime: dynamic slot name change (#5304) (9d9fe41), closes #2982
- runtime: only generate lazy build CSS when there are component tags (#5305) (a0c1bd0), closes #3771
🌅 4.12.0 (2024-01-29)
🍝 4.11.0 (2024-01-22)
- runtime: resolve memory leak caused by global content ref (#5266) (fb1b3f5)
- screenshot: recognise clip options (#5205) (0d61a53)
- style: fixes to watching nested and multiple styles on Stencil components (#5244) (fa5ab1b)
- compiler: deprecate customResolveOptions config option (#5269) (6faf746)
- deps: upgrade rollup, commonjs plugin (#5274) (661120c)
🍪 4.10.0 (2024-01-15)
- runtime: revert slot relocation forwarding (#5222) (a2e119d)
- runtime: slot regressions from experimental slot fixes (#5221) (3b4deaa)
- deps: update dependency typescript to ~5.3.0 (#5248) (e0e6a96)
- runtime: add extras flag for scoped slot changes (#5220) (15ff950)
🍬 4.9.1 (2024-01-08)
🐏 4.9.0 (2023-12-18)
- compiler: fix transforming method parameters into docs (#5166) (2d16db6)
- mock-doc: add HTMLUListElement (#5169) (6233cb5), closes #3382
- runtime: allow setting
key
attr on nested Stencil components (#5164) (f6903a8) - runtime: patch
removeChild
forscoped
components (#5148) (956c196), closes #3278 - screenshot: reject pixel match process on exit (#5167) (c2ee40d)
🐳 4.8.2 (2023-12-11)
- compiler: make sure typesDir exist before writing to it (#5109) (9e4e27e)
- compiler: reapply changes to style import transformer (#5125) (#5131) (735d45a), closes #5016
- runtime: hide slotted content with no destination in scoped components (#5135) (77bce27), closes #4284
- runtime: relocate slotted content when slot parent element tag changes (#5120) (4303d6a), closes #4284
- runtime: update
textContent
patch to mimic Shadow Root (#5146) (55c56d6), closes #3977 - testing: make Puppeteer an optional dependency (#5145) (43cf0dc)
🍹 4.8.1 (2023-12-04)
- runtime: apply nonce to data styles before DOM insert (#5112) (df46fdc), closes #5102
- runtime: call form-associated lifecycle callbacks w/
this
(#5104) (1ac8aa3) - testing: re-add Puppeteer
asElement()
calls (#5114) (0c843f8), closes #5113
🌞 4.8.0 (2023-11-27)
- hydrate: prevent dead code elimination of patch dom implementation (#4966) (5e36057)
- mock-doc: add
getAttributeNode
to mock elements (#5070) (4e840e0) - mock-doc: add inert to HTMLAttributes (#5072) (71a4110), closes #5071
- runtime: apply textnodes to shadow DOM instead of light DOM (#4946) (217d588)
- test: pass jest args correctly for v28/29 (#5068) (5c4ac32)
- declarations: add popover attributes to JSX declarations (#5064) (f73aa14)
- runtime: proxy form associated custom element lifecycle callbacks (#4939) (ca53dbb)
🐄 4.7.2 (2023-11-13)
- compiler: normalize paths on windows (#4997) (bb0b1d4), closes #4980 #4961
- runtime: add display style to slot-fb elements (#5028) (72c1f1a)
- test: don't fail build when jest typings can't be resolved (#5031) (5df16e6), closes #5030
- vite: resolve PURE comment warnings (#5018) (0a1fbe1), closes #5008
🍿 4.7.1 (2023-11-06)
- compiler: correctly generate CSS rules using
::slotted
outside shadow DOM (#4969) (4fd0ecd) - compiler: ignore TS diagnostics on builds where typedef file changes (#5013) (2a75b65)
💪 4.7.0 (2023-10-30)
- runtime: prevent additional attempted move of slot content (#4921) (adb3ccf)
- runtime: relocate slot content from non-shadow to shadow components w/ slot name change (#4940) (0fe78c7)
- runtime: slot name forwarding & attribute reset (#4993) (ee60f3b)
- runtime: slotted content order with sibling elements (#4994) (740c1e4)
- runtime: support "capture" style events (#4968) (2c8cfac)
- www: ensure that files necessary for www build are on disk (#4992) (b74220b)
- www: fix an inconsistency between www builds (#4983) (f113b05)
💥 4.6.0 (2023-10-23)
- compiler: consistently generate additional type files (#4938) (70cba50)
- compiler: persist polyfills on build (#4932) (b97dadc), closes #4661
- runtime: add height, width Source attrs (#4943) (c9a3eac), closes #4942
- types: generate addEventListener and removeEventListener overloads to component html element type (#4909) (0249798)
📢 4.5.0 (2023-10-16)
❤️ 4.4.1 (2023-10-09)
🍫 4.4.0 (2023-10-02)
🐫 4.3.0 (2023-09-18)
- compiler: restrict config extras slot fix flags (#4767) (f2c3229)
- test: ensure legacy decorators are used when using transpile (#4771) (2ef9ec7)
- compiler: computed properties can be used with Stencil decorators (#4746) (a848269)
- runtime: watch native HTML attributes (#4760) (fc86c23)
😀 4.2.1 (2023-09-11)
🌲 4.2.0 (2023-09-05)
- compiler: resolve implicit enum types (#4739) (f5a3bd8)
- runtime: patch methods for scoped slot
append
,prepend
, andinsertAdjacent
(#4719) (1d98462)
⚽️ 4.2.0-0 (2023-09-05)
- compiler: resolve implicit enum types (#4739) (f5a3bd8)
- runtime: patch methods for scoped slot
append
,prepend
, andinsertAdjacent
(#4719) (1d98462)
🐟 4.1.0 (2023-08-21)
- runtime: adds a testing check to the forceUpdate method (#4682) (7e9544d)
- typings: add crossorigin html attr to img (#4686) (65d60fb), closes #4685
- compiler: include
getAssetPath
in generated export statement (#4683) (821da79) - config: add experimentalSlotFixes config value (#4652) (392af26)
🚣 4.0.5 (2023-08-14)
🍧 4.0.4 (2023-08-07)
- runtime:
forceUpdate
calls only execute when in a browser env (#4591) (b203263) - typings: add additional transition events to DOMAttributes (#4645) (420052f), closes #4643
🎾 4.0.3 (2023-07-31)
- compiler: custom elements relative typedef import paths (#4633) (feba98c)
- docs-json: use dts-bundle-generator to bundle types for docs-json (#4619) (6ba3249)
- runtime: add onSelect to textarea and input (#4616) (8ae64f2)
- runtime: handle lazy-instance promises for connected & disconnected callbacks (#4072) (dffc5bb)
- runtime: override attrs set on Host with values from host element (#4548) (b088b9e)
- testing: remove use of
emulate
field inE2EPage()
(#4632) (4d7b138)
😈 4.0.2 (2023-07-24)
- compiler: ensures transformed paths are relative paths for
dist-collection
(#4552) (e11ac0e) - compiler: handle
@supports
blocks when scoping css (#4572) (18ed5fc) - compiler: only create one class member when transforming
@Element()
decorators (#4547) (13fac03) - compiler: sourcemap errors for dist-custom-elements + dist-hydrate-script (#4527) (1d79672)
- compiler: sourcemap generation without ext runtime (#4570) (d1be334)
- lazy: adjust the type of
defineCustomElements
(#4592) (5c85c33) - mock-doc: adjust matchMedia mock return (#4509) (3cda014)
- output-targets: fix path normalization logic (#4545) (cd5849c)
- rollup-config: deprecate BundlingConfig#namedExports (#4532) (a353769), closes #2523
- runtime: properly type color-interpolation-filter (#4530) (3ccf753)
🎉 Thanks for @bdriguesdev for their contributions! 🎉
⛹ 4.0.1 (2023-06-28)
- compiler: address when a home module cannot be found (#4521) (06eaa8f)
- compiler: normalize recommended
collection
path forpackage.json
validation (#4522) (af9639c)
🐅 4.0.0 (2023-06-26)
- compiler: remove in-browser compilation support (#4317) (b042d8b)
- compiler: primary package output target validation (#4395) (e53ee07)
- compiler remove shadow dom shim (#4440) (8ecdec9)
- compiler remove CSS var shim & patchEsm() (#4419) (4977f38)
- compiler remove safari10 extra flag (#4421) (283fd5c)
- compiler remove dynamicImportShim (#4420) (3ee20b7)
- config: set new defaults for transformAliasedImportPaths (#4418) (52d4209)
- docs: enrich type information for docs-json Output Target (#4212) (7c0511e)
- runtime: drop Node 14 support (#4472) (ce18945)
- props: removal of deprecated connect and context APIs (#4437) (4691e9f)
See BREAKING_CHANGES.md - v4.0.0 for a comprehensive list of breaking changes.
See the v4.0.0 Migration Guide for a guide to migrate to Stencil v4.0.0.
This release includes the latest changes from Stencil v3.4.1.
🍜 4.0.0-rc.0 (2023-06-16)
The following changes are new to this release:
- props: removal of deprecated connect and context APIs (#4437) (f399ef1)
- runtime: drop Node 14 support (#4472) (ce18945)
The following changes are also present from previous beta releases:
- compiler: remove in-browser compilation support (#4317) (b042d8b)
- compiler: primary package output target validation (#4395) (e53ee07)
- compiler remove shadow dom shim (#4440) (8ecdec9)
- compiler remove CSS var shim & patchEsm() (#4419) (4977f38)
- compiler remove safari10 extra flag (#4421) (283fd5c)
- compiler remove dynamicImportShim (#4420) (3ee20b7)
See BREAKING_CHANGES.md - v4.0.0 for a comprehensive list of breaking changes.
See the v4.0.0 Migration Guide for a guide to migrate to Stencil v4.0.0.
This release includes the latest changes from Stencil v3.4.0.
👻 4.0.0-beta.2 (2023-06-07)
- compiler: remove in-browser compilation support (#4317) (b042d8b)
- compiler: primary package output target validation (#4395) (e53ee07)
See BREAKING_CHANGES.md - v4.0.0 for a comprehensive list of breaking changes.
See the v4.0.0 Migration Guide for a guide to migrate to Stencil v4.0.0.
This release includes the latest changes from Stencil v3.3.1.
🐐 4.0.0-beta.1 (2023-06-02)
See BREAKING_CHANGES.md - v4.0.0 for a comprehensive list of breaking changes.
See the v4.0.0 Migration Guide for a guide to migrate to Stencil v4.0.0.
This release includes the latest changes from Stencil v3.3.1.
🎬 4.0.0-beta.0 (2023-05-30)
- compiler remove CSS var shim & patchEsm() (#4419) (4977f38)
- compiler remove safari10 extra flag (#4421) (283fd5c)
- compiler remove dynamicImportShim (#4420) (3ee20b7)
See BREAKING_CHANGES.md - v4.0.0 for a comprehensive list of breaking changes.
See the v4.0.0 Migration Guide for a guide to migrate to Stencil v4.0.0.
☀️ 3.4.2 (2023-07-24)
🐨 3.4.1 (2023-06-26)
- compiler: fix issue with aliased paths getting cut off (#4481) (1a2c160)
- compiler: reorder tsconfig#path transforms (#4501) (6b4fe58)
✨ 3.4.0 (2023-06-13)
- compiler: handle static members with stencil decorators (#4463) (dc3925e)
- runtime: add autocomplete to textarea (#4465) (7f42430)
- runtime: issue with update-component and patched Promise (#4460) (1187694)
🎀 3.3.1 (2023-06-02)
- compiler: handle ts 5.0 static members (#4447) (6dbe9a5), closes #4424
- e2e: honor devtools and browserDevtools settings (#4403) (fe433b6), closes #2537
🍭 3.3.0 (2023-05-23)
- node add support for node v20 (#4368) (ffe1847)
- testing: support puppeteer's 'headless': 'new' (#4356) (79dc015)
- typescript: upgrade to TypeScript 5 (#4315) (0b6621f)
🏒 3.2.2 (2023-05-01)
- declarations: add
onCancel
to dialog attributes (#4280) (725ff7e), fixes #4267 - runtime: initialize custom elements even when there is no styles (#4296) (23f1e66), fixes #4221
- testing: jest component disconnected callback (#4269) (4ec3b69), fixes #4053
🎙 3.2.1 (2023-04-10)
- compiler: sourcemap for dist-custom-elements generation (#4200) (62ad269)
- compiler: write exports for defineCustomElement typedefs (#4194) (89cd845)
- mock-doc: add missing properties of object returned by matchMedia (#2880) (69176f8)
- test: fix infinite loops w/ react and @testing-library/dom (#4188) (51750a2), closes #3434
🎉 Thanks for @cam-narzt for their contributions! 🎉
🌷 3.2.0 (2023-03-14)
- cli: support Jest-specific CLI flag aliases (#4124) (56389a4)
- compiler: use file system polling events in watch mode (#4146) (4a12b06), fixes #3952, #4011, #4044
- test: support importing from ES modules in spec tests (#4136) (23a73f0), closes #3251
- typo: fix info task output (#4099) (d88bf30)
🎉 Thanks for @sandrooco for their contributions! 🎉
🍕 3.1.0 (2023-02-28)
- browser: polyfill assert, process (#4066) (d493987)
- runtime: prevent null data-opts access (#4101) (9526633), closes #2431
- compiler: transform module aliases in emitted js, typedefs (#4042) (7bccf68)
- testing: add support for transforming path aliases in spec tests (#4090) (92fbd1c)
🍒 3.0.1 (2023-02-13)
🎉 Thanks for @George-Payne for their contributions! 🎉
🍇 3.0.0 (2023-01-25)
- compiler: fix 'destroy' callback naming (#3289) (602b322)
- declarations: correct event handler names for composition events (#3777) (e09fdf8)
- runtime: type autocapitalize property as a string (#3692) (650a355)
- runtime: narrow onInput & onCapture event type (#3135) (38198f7)
- api remove
sys
parameter fromparseFlags
public API (#3489) (674bf51) - cli: update configuration flag defaults for V3 (#3502) (c78dd20)
- compiler: remove inlineDynamicImports from custom elements targets (#3897) (238b267)
- compiler: export custom types in compiled output (#3710) (509869c)
- compiler remove deprecated assetsDir field (#3341) (6074a29)
- e2e: add support for puppeteer v19 (#3810) (0c3bb50)
- node: drop node 12 support (#3302) (cb1f5fc)
- output_targets: remove legacy angular target (#3493) (9916612b)
- output_targets: remove
dist-custom-elements-bundle
(#3579) (9916612) - output_targets: add
CustomElementExportBehavior
todist-custom-elements
(#3562) (8158b88) - output_targets: add
defineCustomElements
method & signature typedef todist-custom-elements
(#3619) (1cac95d) - output_targets: moves
autoDefineCustomElements
to an export behavior fordist-custom-elements
(#3615) (b8ed386) - runtime: Support for older browsers, including Internet Explorer 11 and Safari 10, has been marked as deprecated via:
- testing: puppeteer v10 support (#2934) (09afd3f)
See BREAKING_CHANGES.md - v3.0.0 for a comprehensive list of breaking changes.
See the v3.0.0 Migration Guide for a guide to migrate to Stencil v3.0.0.
🍀 3.0.0-rc.1 (2023-01-23)
This release includes all feature and bug fixes from all prior Stencil 3 pre-releases, and syncs the Stencil
v3.0.0-dev
branch with main
.
⭐️ 3.0.0-rc.0 (2023-01-17)
This release includes all feature and bug fixes from all prior Stencil 3 pre-releases, and as well as all features included in Stencil v2.22.1
🚚 3.0.0-beta.1 (2023-01-09)
This release includes all feature and bug fixes from all prior Stencil 3 pre-releases, and syncs the Stencil
v3.0.0-dev
branch with main
.
👑 3.0.0-beta.0 (2022-12-19)
- compiler: remove inlineDynamicImports from custom elements targets (#3897) (90aa4f5)
- runtime: Support for older browsers, including Internet Explorer 11 and Safari 10, has been marked as deprecated via:
This release includes all feature and bug fixes from all prior Stencil 3 pre-releases, as well as the following unreleased Stencil v2 features:
- compiler: copy doc block from component to generated types (#3525) (2e4b1fc)
- typescript: add support for typescript 4.9 (#3863) (542c46a)
🐙 3.0.0-alpha.2 (2022-12-12)
This release includes all feature and bug fixes from all prior Stencil 3 pre-releases, as well as the following unreleased Stencil v2 features:
- compiler: copy doc block from component to generated types (#3525) (2e4b1fc)
- typescript: add support for typescript 4.9 (#3863) (542c46a)
🎷 3.0.0-alpha.1 (2022-12-05)
This release includes all feature and bug fixes from
- Prior Stencil 3 pre-releases
- Stencil v2.20.0 and below
☕️ 3.0.0-alpha.0 (2022-11-28)
- compiler: fix 'destroy' callback naming (#3289) (b733e79)
- declarations: correct event handler names for composition events (#3777) (4d6a842)
- runtime: type autocapitalize property as a string (#3692) (2cec0a6)
- runtime: narrow onInput & onCapture event type (#3135) (8316a62)
- api remove
sys
parameter fromparseFlags
public API (#3489 (b5db83c)) - cli: update configuration flag defaults for V3 (#3502) (7241968)
- compiler: export custom types in compiled output (#3710) (e52489e)
- compiler remove deprecated assetsDir field (#3341) (eb61f89)
- node: drop node 12 support (#3302) (72779d9)
- output_targets: remove legacy angular target (#3493) (62bacc8)
- output_targets: remove
dist-custom-elements-bundle
(#3579) (3c97c0f) - output_targets: add
CustomElementExportBehavior
todist-custom-elements
(#3562) (c9a9366) - output_targets: add
defineCustomElements
method & signature typedef todist-custom-elements
(#3619) (7521e17) - output_targets: moves
autoDefineCustomElements
to an export behavior fordist-custom-elements
(#3615) (6b60ef3) - testing: puppeteer v10 support (#2934) (0c09aaa)
- testing: update puppeteer supported version ranges (#3321) (81ab42f)
See BREAKING_CHANGES.md - v3.0.0 for a comprehensive list of breaking changes.
See the v3.0.0 Migration Guide for a guide to migrate to Stencil v3.0.0.
🎆 2.22.3 (2023-03-14)
🎈 2.22.2 (2023-01-23)
✈️ 2.22.1 (2023-01-17)
v2.22.0 was never published to NPM, nor GitHub. The team had originally intended to release v2.22.0 on 2023.01.17. However, the publish attempt occurred during an NPM outage (unbeknown to the team). The result of this outage left the package 'marked' as published, although the publish did not succeed. v2.22.1 is identical to the version that the Stencil team originally intended to release as v2.22.0.
🍟 2.21.0 (2023-01-04)
- compiler: copy doc block from component to generated types (#3525) (2e4b1fc)
- typescript: add support for typescript 4.9 (#3863) (542c46a)
🎉 Thanks for @jgroth for their contributions! 🎉
🍁 2.20.0 (2022-12-05)
🎉 Thanks for @PengBoUESTC for their contributions! 🎉
🌏 2.19.3 (2022-11-15)
- cli: refactor CLI argument parser (#3765) (d34c4f2), closes #3712
- generate: prevent type error when existing task (#3793) (f553fde)
🎉 Thanks for @PengBoUESTC and @boahc077 for their contributions! 🎉
🍋 2.19.2 (2022-10-27)
🌵 2.19.2-0 (2022-10-27)
📻 2.19.1 (2022-10-26)
🐺 2.19.1-0 (2022-10-25)
💾 2.19.0 (2022-10-24)
- cli: "Browserslist: caniuse-lite is outdated" spams output when buildEs5 is truthy (#3649) (d30cf58)
- compiler: update handling of decorators to support emitting ES2022+ (#3614) (f977830)
- jest: adjust conversion of CLI args to Jest args (#3730) (5b76a0a), closes #3724
😛 2.18.1 (2022-10-03)
- cli: typo in telemetry command (#3602) (3013f5e)
- logger: fix possibly-null property access in logger-typescript.ts (#3627) (49ead11), partially fixes #3443
🔥 2.18.0 (2022-09-12)
- loader: add private field to loader's package.json (#3566) (fc8efb3)
- typescript: add support for typescript v4.7 (#3530) (1226e56)
🐞 2.17.4 (2022-08-22)
- compiler: don't break HMR by mangling CSS (#3517) (f5b2b69), closes #3461
- task: consider config sys in task runner (#3518) (103ec60), closes #3510
🌭 2.17.3 (2022-08-02)
🍤 2.17.2 (2022-08-01)
- cli: fix bug with parsing --fooBar=baz type CLI flags (#3483) (65f5275), closes #3471 #3481
- cli: remove usage of deprecated npm env var from arg parser (#3486) (22d9858), closes #3482
- compiler: fix typedef file generated for dist-custom-elements (#3468) (854d498)
- compiler: update package.json validation for the 'module' field (#3475) (47c4ccb)
- mock-doc: add missing methods to the element mock (#3480) (835e00f)
🏜 2.17.2-0 (2022-07-19)
😊 2.17.1 (2022-07-11)
- cli: add explicit support for Jest CLI arguments (#3444) (700b3a9)
- compiler: handle null window.location.origin (#2813) (255cd66)
- styles: ensure styles are applied before paint (#3452) (c47cec6)
🚂 2.17.0 (2022-06-21)
- compiler: export all built components from index.js w/ dist-custom-elements (ff0e8cc), closes #3368
- compiler: update generation of type declaration file w/ dist-custom-elements (9d3bf15), closes #3368
- mock-doc: add matrix and tspan props for svgelement (#3408) (d3b93c1)
- telemetry: add stencil config to telemetry object (#3401) (9fe3f15)
🎻 2.16.1 (2022-06-03)
🌸 2.16.1-0 (2022-06-03)
🎉 2.16.0 (2022-05-31)
- bundler: prevent vite bundling errors in downstream projects (#3349) (4c8d8c0)
- compiler: prevent double full builds (#3374) (267e3dd)
- mock-doc: handle children in contains() (#3363) (2f8a6c0)
🎢 2.15.2 (2022-05-09)
- cli: don't generate files if they would overwrite existing code (#3326) (9fc3a44)
- sys: make NodeLazyRequire complain if package versions aren't right (#3346) (b7adc33)
- sys: tweak NodeLazyRequire logic around too-high-versions errors (#3347) (9bfef1a)
- types: components.d.ts type resolution for duplicate types (#3337) (31eae6e)
🐼 2.15.1 (2022-04-18)
- mock-doc: Add missing DOMParser stub to MockWindow (#3279) (f88fb2e)
- tests: ensure jest respects passed flags (#3329) (c6a1d42)
⛷ 2.15.0 (2022-03-28)
- testing: handle snapshot filepaths (#3282) (d164dba)
- types: generate types for dist-custom-elements (#3270) (04fb830)
😃 2.14.2 (2022-03-10)
🐦 2.14.1 (2022-03-07)
- bundling: allow proper webpack treeshaking (#3248) (5dccc85)
- renderer: prevent infinite loops for NaN (#3254) (e2d4e16)
- testing: don't run tests against non-test files (#3237) (c6fda39)
💫 2.14.0 (2022-02-14)
🍣 2.13.0 (2022-01-24)
- mock-doc: add simple MockEvent#composedPath() impl (#3204) (7b47d96)
- test: jest 27 support (#3189) (10efeb6)
🍔 2.12.1 (2022-01-04)
⛸ 2.12.0 (2021-12-13)
- cli: wait for help task to finish before exiting (#3160) (f10cee1)
- mock-doc: make Node.contains() return true for self (#3150) (f164407)
- mock-doc: allow urls as css values (#2857) (6faa5f2)
- sourcemaps: do not encode inline sourcemaps (#3163) (b2eb083), closes #3147
🐌 2.11.0 (2021-11-22)
🚟 2.11.0-0 (2021-11-09)
🦁 2.10.0 (2021-11-01)
- compiler: add delegatesFocus to custom elements targets (#3117) (2ffb503)
- runtime: prevent unnecessary re-renders when reflecting props (#3106) (63dbb47)
- sourcemap: enable rfc-3986 urls (#3100) (4b2018a)
- typescript: update to typescript 4.3.5 (#3103) (e1d4e66)
🚙 2.9.0 (2021-10-11)
- docs: fix docs generation for method return values (#3064) (dc2f6fb)
- output-targets: restore stats output target (#3030) (c76dca7)
- preamble: restore preamble functionality (#3085) (39caa8c)
- test: attempt to fix flaky prerender test (#3095) (16b8ea4)
- compiler: consumer sourcemap support (#3005) (bb3bf90)
- deno: remove deno from codebase (#3067) (037b228)
- dist-custom-elements: automatically import and define dependencies (#3039) (6987e43)
- mock-doc: add pathname to mock anchors (#3090) (99428c7)
- telemetry: adding yarn 1 support, sanitizing data pre-flight (#3082) (07f69cb)
⚡️ 2.9.0-0 (2021-10-05)
- docs: fix docs generation for method return values (#3064) (dc2f6fb)
- output-targets: restore stats output target (#3030) (c76dca7)
- preamble: restore preamble functionality (#3085) (39caa8c)
- dist-custom-elements: automatically import and define dependencies (#3039) (6987e43)
- telemetry: adding yarn 1 support, sanitizing data pre-flight (#3082) (07f69cb)
🐱 2.8.1 (2021-09-15)
🎲 2.8.0 (2021-09-01)
- types: add referrerPolicy to AnchorHTMLAttributes (#3006) (4f7c073)
- docs: update app-es5-disabled.ts message (#2993) (4f7c073)
🐔 2.7.1 (2021-08-24)
- ci: vendor deno for builds (#3020) (6d8a61d)
- compiler: solve issue where worker thread didn't have access to fetch (#3012) (925d4e9)
- telemetry: handle malformed telemetry tokens (#3014) (ff75a47)
⛰ 2.7.1-0 (2021-08-24)
- ci: vendor deno for builds (#3020) (6d8a61d)
- compiler: solve issue where worker thread didn't have access to fetch (#3012) (925d4e9)
- telemetry: handle malformed telemetry tokens (#3014) (ff75a47)
🌟 2.7.0 (2021-08-19)
- dev-server: allow file change events to pass through (#3001) (b84dd11)
- dev-server: allow web server to be run in Docker (#2973) (42cdeae)
- dev-server: prevent crash with Safari 15 (ed173cd)
- runtime: prevent watchers from prematurely firing in custom elements build (#2971) (8c375bd)
- runtime: prevent shadowing on non-upgraded components (#2949) (afbd129)
- testing: puppeteer v10 support (#2939) (09afd3f)
- cli: add telemetry and cli features (#2964) (1381cc7)
- cli: writing and reading the ionic config file (#2963) (f981812)
🕹 2.7.0-0 (2021-07-07)
- runtime: prevent shadowing on non-upgraded components (#2949) (afbd129)
- testing: puppeteer v10 support (#2939) (09afd3f)
📟 2.6.0 (2021-06-02)
- platform: add setPlatformHelpers() api (f09abe6)
🛥 2.5.2 (2021-03-30)
🐭 2.5.1 (2021-03-25)
- worker transferable work both ways (#2866) (46ee1a2)
- worker-plugin: transfer OffscreenCanvas (#2849) (969da47)
🎠 2.5.0 (2021-03-22)
- dev-server: provide custom request listener (eec7651)
- typescript: update to typescript 4.2.3 (50d4afb)
- rollup: update to rollup 2.42.3 (0af5d6a)
- terser: update to terser 5.6.1 (3a480f5)
- autoprefixer: update to autoprefixer 10.2.5 and postcss 8.2.8 (9c6f8d5)
- sizzle: update to sizzle 2.3.6 (4f94a13)
- graceful-fs: update to graceful-fs 4.2.6 (c15ba1c)
- mime-db: update to mime-db 1.46.0 (27db7ae)
- open: update to open 8.0.4 (0208698)
- mock-doc: set document.dir property from document.documentElement (9a65494)
📷 2.4.0 (2021-01-28)
- custom-elements: enable dist-custom-elements output (fc70564)
- output: includeGlobalScripts option for custom elements (e7fa9c8)
- setPlatformOptions: add setPlatformOptions for ce builds (12fec21)
- typescript: update to typescript 4.1.3 (adf9c93)
- TypeScript 4.1.3
- Rollup 2.35.1
- Terser 5.5.1
- Puppeteer 5.4.2
- events: map onFocusIn/Out to correct events (#2745) (2dc930f)
- vdom: prevent error for parentless nodes (#2761) (a08f3a8)
- devserver: expose startupTimeout (0046051)
- runtime: don't render when crashing (#2746) (c91e0c8)
- vdom: hide fallback slot when content present in scoped/non-shadow components (#2650) (2ae6f5f)
- worker: update *?worker declaration (#2754) (7b96ada)
- mock-doc: make MockAttributeMap iterable (#2788) (1aa9cae)
- show warning when immutable props change (9c18fa0), closes #2433
- client: test for presence of replace method of CSSStyleSheet (#2773) (67e0ea8)
- bundles: add sideEffects false to package (d3bc9e6)
- autoprefixer: update autoprefixer (75acfca)
- hydrate: check for fetch patch (16a3330)
- polyfill: convert checkIfURLIsSupported to function expression (#2799) (f8618d6)
⛵️ 2.3.0 (2020-11-06)
- config: env (#2732) (ab6dff1)
- devserver: dev server startup timeout configurable (#2719) (455adb3)
- jest: update to jest 26.6.3 (b6ca680)
- rollup: update to rollup 2.33.1 (bb1f55e)
- path: export win32 (a536654)
🍉 2.2.0 (2020-10-27)
- jest: update to jest 26.6.1 (aafb1a3)
- prerender: do not inline external styles by default (044aa96)
- puppeteer: update to puppeteer 5.4.1 (cf8847b)
- rollup: update to rollup 2.32.1 (83236f9)
- terser: update to terser 5.3.8 (46a0207)
- typescript: update to typescript 4.0.5 (0ca07a1)
🍗 2.1.2 (2020-10-26)
- devserver: fix dev server static data with trailing slash (d70423d)
- hydrate: do not add html comments inside inline scripts (3c16737)
🎂 2.1.1 (2020-10-23)
- prerender: fix slot relocation and inline styles (2af380f)
- worker: capture worker errors (#2709) (dcd49c0)
🖍 2.1.0 (2020-10-20)
- TypeScript 4.0.3
- Rollup 2.32.0
- Terser 5.3.7
- Jest 26.6.0
- Puppeteer 5.3.1
- Open 7.3.0
- Node Fetch 2.6.1
- prerender: hash assets and add version querystring (e20c284)
- prerender: hash assets in page.state static content (baeb842)
- prerender: add buildId, hydrate externals, DOMContentLoaded (4d49c63)
- prerender: server-side only bundle modules w/ .server directory (d8fcb60)
- prerender: write page.state.json data from hydrat
- add setErrorHandler() (#2704) (5d2780a)
- docs-custom: add config argument (#2696) (d285879)
- sys: add encoding option to readFile (99ef518)
- sys: add sys.generateFileHash() for more efficient file hashing (d762c6d)
- dev-server: add ssr option for dev server for prerending dev (2574094)
- e2e: e2e timeout configurable (8b69731), closes #2662
- nodeRequire: export nodeRequire utility from compiler (10ea2fb)e builds (a2c93f6)
- hmr: reload from changed css import in global styles (4f8934d)
- runtime: do regular clone of normal slotting (#2694) (602c1e2)
- mock-doc: set hostname when location is updated (#2689) (9598a05)
- worker: Build.isDev in worker (#2702) (e8ced45)
- dev-server: clear module cache on ssr reload (cfd5d39)
- mock-doc: no indentation w/in whitespace sensitive elements (46ff715)
- dev-server: improve exiting dev server process (eb02517)
- e2e: update to use page.waitForTimeout() (e48d306)
- hydrate: improve dev server console error (9cb31a5)
- mock-doc: do not pretty print whitespace senstive elements (de0dc65)
- mock-doc: provide mocked global fetch() fn (8fbc694)
- types: do not require @types/node because of puppeteer types (1a907f7)
- types: export h() function types (be20372)
🍮 2.0.3 (2020-09-03)
- watch: do not rebuild on docs output target file changes (4529de7)
- worker: can import Build from @stencil/core (3058143)
🐡 2.0.2 (2020-09-02)
- prerender: export Fragment for prerender builds (142adc8)
- test: do not build docs from test command (557b371)
- watch: fix config.watchIgnoredRegex and update w/ RegExp array (981e0ae)
👽 2.0.1 (2020-08-31)
- custom-elements: update package json module recommendation (9f29dbd)
- jest: update to jest 26.4.2 (6aeb2f7)
- rollup: update to rollup 2.26.8 (cac6482)
- testing: use default jest maxConcurrency (c5d216f)
- cli: add changlog link to stencil version update message (5fa5991)
🚗 2.0.0 (2020-08-31)
In keeping with Semver, Stencil 2.0.0
was released due to changes in the API (mainly from some updates to the config API).
Even though this is a new major version, there are few BREAKING CHANGES, and any changes will be flagged and described by the compiler during development. For the most part, most of the changes are removal of deprecated APIs that have been printing out warning logs for quite some time now.
- typescript: bundle typescript (1973032)
- typescript: update to typescript 4.0.0-beta (a274e11)
- typescript: update to typescript 4.0.1-rc (def2e6b)
- typescript: update to typescript 4.0.2 (f55f0bf)
The other change is the update to TypeScript 4. With Stencil 2, TypeScript will no longer be a dependency
, but instead included within the Stencil compiler. There are a few advantages to this we'll be experimenting with:
- Faster compiler startup times and overall smaller install size.
- The custom elements build should have a
dependency
of@stencil/core
, so not having TypeScript as a dependency of@stencil/core
simplifies the dependency graph for end-users and libraries. - Drastically simplifies the Stencil compiler by not having to dynamically import TypeScript, which quickly gets complicated since the compiler can work within Node, Deno, web workers and the browser's main thread. By bundling internally many of the complexities are no longer an issue.
- Stencil compiler guaranteed to run with the exact version of TypeScript it was designed with.
- Easier to adjust to breaking changes. For example, TypeScript 4 introduced a few breaking changes, but with this update it made it easier for the compiler to adjust internally.
- assetsDir: remove deprecated component assetsDir (b5cba6a)
- attr: remove deprecated prop attr/reflectToAttr (133dd49)
- collection: remove deprecated collection parsing (1a94d1e)
- compiler: remove deprecated compile/compileSync (58a27d2)
- config: remove deprecated includeSrc/excludeSrc (c18cb1f)
- context: remove deprecated prop context/connect (a87b738)
- copy: remove deprecated copy config (6cf3134)
- docs: remove deprecated 'docs' type (043e2d8)
- experimental-dist-module: remove deprecated experimental-dist-module (41189a6)
- forceUpdate: remove deprecated elm.forceUpdate() (dfc1e59)
- legacyLoader: remove deprecated legacy loader (7480f92)
- listen: remove Listen target: 'parent' option (ed63707)
- listen: remove deprecated listen target (1a3b519)
- reflectToAttr: remove deprecated prop reflectToAttr (6eae6f8)
- prerender: use internal typescript (8f0bb51)
- test: do not require typescript for tests (43c5d98)
- test: remove deprecated testing configs (fb8a02b)
- transpile: remove deprecated "script" option (75dfebb)
- watch: remove deprecated PropWillChange/PropDidChange (fa2b400)
The Context
object was originally added in the 0.x.x
versions of Stencil, before ES Modules were widely adopted. Since then we've deprecated it in Stencil 1, and have ported any external libraries off of it. The remaining one was @stencil/redux
, and we've released 0.2.0
to be used with Stencil 2 (and can also work with Stencil 1). Additionally, now might be a good time to look into using @stencil/store instead.
- assetsDirs: allow same destination asset dir copy task (b6379b3), closes #2615
- compiler: normalizePath result from fs.realpathSync (#2625) (df83c83)
- dist: ensure src dts files not emitted still get shipped in dist (dea56be), closes #1797
- dist: export Components, JSX types from custom-elements build (abae5d1)
- Fragment: fix tsconfig Fragment (ba0ea8d)
- exit: ensure all node processes are destroyed on exit (73a04c2)
- exit: sys.exit() returns a promise (208ef8c)
- export: export client runtime from @stencil/core (4c6cb60)
- hmr: fix dev server hmr (fa480b6)
- hydrate: ensure all timers are cleared (db1d747)
- monorepos: do not lazy require missing dependencies (7f739a0)
- parse: parse decorator shorthand property assignment (6b9e035)
- plugin: ensure external plugin css do not require physical file (b5a2536), closes #2622
- prerender: flatten hAsync children to resolve promises (363d258)
- prerender: hAsync only returns promise if it has to (25a547a)
- safari: fix safari10 builds (63f02f8)
- sys: set ts.getExecutingFilePath() from stencil sys (2b21f2d)
- taskQueue: fix "immediate" rendering (#2630) (62ea511)
- testing: add collectCoverageFrom jest parameter (#2613) (370a701)
- treeshaking: move environment helpers out of utils (c9306b9)
- ts: update ts lib default local module path (16f30bc)
- watch: fix rebuild components on e2e w/ watch (7cd28ca), closes #2642
- watch: hmr scss _partial reload on file change (4ffbe4a), closes #2205
- worker: error passing (03864f2)
- buildEs5: add "prod" as an option for config.buildEs5 (1af30a2)
- dev-server: single-threaded dev-server for debugging (cf335e3)
- runtime: add jsx Fragment (#2647) (f3abee7)
- jest: update to jest 26.4.0 (9e3a6a8)
- prerendering: async h() function (d6eabb9)
- rollup: update to rollup 2.26.6 (6424254)
- terser: update to terser 5.1.0 and use its esm build (4b67c5a)
- terser: update to terser 5.2.1 (7582974)
⛱ 1.17.3 (2020-08-04)
- build: dist-custom-elements-bundle types (#2597) (7f2f5ad), closes #2596
- test: update module ext order (79ba207), closes #2608
☎️ 1.17.2 (2020-07-28)
- dev-server: fix dev client requesting build results (91564f4)
- env: add os.plaform() polyfill (93b53e2)
- resolve: fix ts resolve module for transpile sync (7e538f4)
- sys: node sys prerender applyPrerenderGlobalPatch (517891d)
- worker: mock worker instance for hydrate builds (207ce44)
🐚 1.17.1 (2020-07-26)
🍩 1.17.0 (2020-07-24)
- runtime: ability to hook into creating CustomEvent, so vue binding can lowercase event names (a2ce019)
- setAssetPath: customize path of asset base urls (a06a941)
- dev-server: pick up scheme and host from forwarding proxy. (#2492) (3be1d72)
- Rollup 2.23.0
- polyfill: use core-js promise and iife fetch polyfill (#2443) (7b7ed0b)
- render: allow mapping of childNode to functional component (#2548) (d0176c9)
- resolve: fix typescript resolve patch (1ef8097)
- screenshot: update compare.html in e2e screenshot (#2585) (85f6504)
- sys: ensure in-memory sys checks file data (f7c03c2)