@stencil/core 4.43.2 → 5.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/stencil.mjs +2 -0
- package/dist/chunk-ClPoSABd.mjs +21 -0
- package/dist/client-DR9zhmKG.mjs +4449 -0
- package/dist/compiler/index.d.mts +187 -0
- package/dist/compiler/index.mjs +9 -0
- package/dist/compiler/utils/index.d.mts +3 -0
- package/dist/compiler/utils/index.mjs +5 -0
- package/dist/declarations/stencil-public-compiler.d.ts +4401 -0
- package/dist/declarations/stencil-public-compiler.js +53 -0
- package/dist/declarations/stencil-public-runtime.d.ts +1857 -0
- package/dist/index-Bxo2jCf6.d.mts +77 -0
- package/dist/index-szczUd2l.d.mts +6851 -0
- package/{internal/stencil-core/index.d.ts → dist/index.d.mts} +7 -3
- package/dist/index.mjs +4 -0
- package/dist/mock-doc.d.mts +1 -0
- package/dist/mock-doc.mjs +3 -0
- package/dist/node-sys-BGURUNOZ.mjs +1954 -0
- package/{internal → dist/runtime}/app-data/index.d.ts +11 -7
- package/dist/runtime/app-data/index.js +100 -0
- package/dist/runtime/app-globals/index.d.ts +5 -0
- package/dist/runtime/app-globals/index.js +6 -0
- package/dist/runtime/client/index.d.ts +2286 -0
- package/dist/runtime/client/index.js +4839 -0
- package/dist/runtime/index.d.ts +221 -0
- package/dist/runtime/index.js +4819 -0
- package/dist/runtime/server/index.d.mts +1277 -0
- package/dist/runtime/server/index.mjs +5376 -0
- package/dist/runtime/server/runner.d.mts +298 -0
- package/dist/runtime/server/runner.mjs +1976 -0
- package/dist/serialize-BJvhE9aQ.mjs +775 -0
- package/dist/stencil-private-Cgcr414u.d.ts +1893 -0
- package/dist/sys/node/index.d.mts +33 -0
- package/dist/sys/node/index.mjs +7 -0
- package/dist/sys/node/worker.d.mts +1 -0
- package/dist/sys/node/worker.mjs +60 -0
- package/dist/testing/index.d.mts +207 -0
- package/dist/testing/index.mjs +1188 -0
- package/dist/transpile-CJQcQEVa.mjs +21854 -0
- package/dist/validation-BdcPruW_.mjs +1451 -0
- package/package.json +88 -232
- package/bin/stencil +0 -57
- package/cli/config-flags.d.ts +0 -132
- package/cli/index.cjs +0 -5816
- package/cli/index.d.ts +0 -19
- package/cli/index.js +0 -5809
- package/cli/package.json +0 -14
- package/compiler/lib.d.ts +0 -22
- package/compiler/lib.decorators.d.ts +0 -384
- package/compiler/lib.decorators.legacy.d.ts +0 -22
- package/compiler/lib.dom.asynciterable.d.ts +0 -41
- package/compiler/lib.dom.d.ts +0 -29610
- package/compiler/lib.dom.iterable.d.ts +0 -493
- package/compiler/lib.es2015.collection.d.ts +0 -147
- package/compiler/lib.es2015.core.d.ts +0 -597
- package/compiler/lib.es2015.d.ts +0 -28
- package/compiler/lib.es2015.generator.d.ts +0 -77
- package/compiler/lib.es2015.iterable.d.ts +0 -605
- package/compiler/lib.es2015.promise.d.ts +0 -81
- package/compiler/lib.es2015.proxy.d.ts +0 -128
- package/compiler/lib.es2015.reflect.d.ts +0 -144
- package/compiler/lib.es2015.symbol.d.ts +0 -46
- package/compiler/lib.es2015.symbol.wellknown.d.ts +0 -326
- package/compiler/lib.es2016.array.include.d.ts +0 -116
- package/compiler/lib.es2016.d.ts +0 -21
- package/compiler/lib.es2016.full.d.ts +0 -23
- package/compiler/lib.es2016.intl.d.ts +0 -31
- package/compiler/lib.es2017.arraybuffer.d.ts +0 -21
- package/compiler/lib.es2017.d.ts +0 -26
- package/compiler/lib.es2017.date.d.ts +0 -31
- package/compiler/lib.es2017.full.d.ts +0 -23
- package/compiler/lib.es2017.intl.d.ts +0 -44
- package/compiler/lib.es2017.object.d.ts +0 -49
- package/compiler/lib.es2017.sharedmemory.d.ts +0 -135
- package/compiler/lib.es2017.string.d.ts +0 -45
- package/compiler/lib.es2017.typedarrays.d.ts +0 -53
- package/compiler/lib.es2018.asyncgenerator.d.ts +0 -77
- package/compiler/lib.es2018.asynciterable.d.ts +0 -53
- package/compiler/lib.es2018.d.ts +0 -24
- package/compiler/lib.es2018.full.d.ts +0 -24
- package/compiler/lib.es2018.intl.d.ts +0 -83
- package/compiler/lib.es2018.promise.d.ts +0 -30
- package/compiler/lib.es2018.regexp.d.ts +0 -37
- package/compiler/lib.es2019.array.d.ts +0 -79
- package/compiler/lib.es2019.d.ts +0 -24
- package/compiler/lib.es2019.full.d.ts +0 -24
- package/compiler/lib.es2019.intl.d.ts +0 -23
- package/compiler/lib.es2019.object.d.ts +0 -33
- package/compiler/lib.es2019.string.d.ts +0 -37
- package/compiler/lib.es2019.symbol.d.ts +0 -24
- package/compiler/lib.es2020.bigint.d.ts +0 -765
- package/compiler/lib.es2020.d.ts +0 -27
- package/compiler/lib.es2020.date.d.ts +0 -42
- package/compiler/lib.es2020.full.d.ts +0 -24
- package/compiler/lib.es2020.intl.d.ts +0 -474
- package/compiler/lib.es2020.number.d.ts +0 -28
- package/compiler/lib.es2020.promise.d.ts +0 -47
- package/compiler/lib.es2020.sharedmemory.d.ts +0 -99
- package/compiler/lib.es2020.string.d.ts +0 -44
- package/compiler/lib.es2020.symbol.wellknown.d.ts +0 -41
- package/compiler/lib.es2021.d.ts +0 -23
- package/compiler/lib.es2021.full.d.ts +0 -24
- package/compiler/lib.es2021.intl.d.ts +0 -166
- package/compiler/lib.es2021.promise.d.ts +0 -48
- package/compiler/lib.es2021.string.d.ts +0 -33
- package/compiler/lib.es2021.weakref.d.ts +0 -78
- package/compiler/lib.es2022.array.d.ts +0 -121
- package/compiler/lib.es2022.d.ts +0 -25
- package/compiler/lib.es2022.error.d.ts +0 -75
- package/compiler/lib.es2022.full.d.ts +0 -24
- package/compiler/lib.es2022.intl.d.ts +0 -121
- package/compiler/lib.es2022.object.d.ts +0 -26
- package/compiler/lib.es2022.regexp.d.ts +0 -39
- package/compiler/lib.es2022.string.d.ts +0 -25
- package/compiler/lib.es2023.array.d.ts +0 -924
- package/compiler/lib.es2023.collection.d.ts +0 -21
- package/compiler/lib.es2023.d.ts +0 -22
- package/compiler/lib.es2023.full.d.ts +0 -24
- package/compiler/lib.es2023.intl.d.ts +0 -56
- package/compiler/lib.es2024.arraybuffer.d.ts +0 -65
- package/compiler/lib.es2024.collection.d.ts +0 -29
- package/compiler/lib.es2024.d.ts +0 -26
- package/compiler/lib.es2024.full.d.ts +0 -24
- package/compiler/lib.es2024.object.d.ts +0 -29
- package/compiler/lib.es2024.promise.d.ts +0 -35
- package/compiler/lib.es2024.regexp.d.ts +0 -25
- package/compiler/lib.es2024.sharedmemory.d.ts +0 -68
- package/compiler/lib.es2024.string.d.ts +0 -29
- package/compiler/lib.es5.d.ts +0 -4594
- package/compiler/lib.es6.d.ts +0 -23
- package/compiler/lib.esnext.array.d.ts +0 -35
- package/compiler/lib.esnext.collection.d.ts +0 -96
- package/compiler/lib.esnext.d.ts +0 -27
- package/compiler/lib.esnext.decorators.d.ts +0 -28
- package/compiler/lib.esnext.disposable.d.ts +0 -193
- package/compiler/lib.esnext.float16.d.ts +0 -443
- package/compiler/lib.esnext.full.d.ts +0 -24
- package/compiler/lib.esnext.intl.d.ts +0 -21
- package/compiler/lib.esnext.iterator.d.ts +0 -148
- package/compiler/lib.esnext.promise.d.ts +0 -34
- package/compiler/lib.scripthost.d.ts +0 -322
- package/compiler/lib.webworker.asynciterable.d.ts +0 -41
- package/compiler/lib.webworker.d.ts +0 -9894
- package/compiler/lib.webworker.importscripts.d.ts +0 -23
- package/compiler/lib.webworker.iterable.d.ts +0 -287
- package/compiler/package.json +0 -8
- package/compiler/stencil.d.ts +0 -73
- package/compiler/stencil.js +0 -287816
- package/compiler/sys/in-memory-fs.d.ts +0 -227
- package/compiler/transpile.d.ts +0 -32
- package/dev-server/client/app-error.d.ts +0 -20
- package/dev-server/client/events.d.ts +0 -6
- package/dev-server/client/hmr-components.d.ts +0 -12
- package/dev-server/client/hmr-external-styles.d.ts +0 -1
- package/dev-server/client/hmr-images.d.ts +0 -1
- package/dev-server/client/hmr-inline-styles.d.ts +0 -1
- package/dev-server/client/hmr-util.d.ts +0 -39
- package/dev-server/client/hmr-window.d.ts +0 -10
- package/dev-server/client/index.d.ts +0 -6
- package/dev-server/client/index.js +0 -793
- package/dev-server/client/logger.d.ts +0 -6
- package/dev-server/client/package.json +0 -8
- package/dev-server/client/progress.d.ts +0 -3
- package/dev-server/client/status.d.ts +0 -4
- package/dev-server/client/test/hmr-util.spec.d.ts +0 -1
- package/dev-server/client/test/status.spec.d.ts +0 -1
- package/dev-server/connector.html +0 -6
- package/dev-server/index.d.ts +0 -3
- package/dev-server/index.js +0 -247
- package/dev-server/package.json +0 -8
- package/dev-server/server-process.js +0 -12095
- package/dev-server/server-worker-thread.js +0 -39
- package/dev-server/static/favicon.ico +0 -0
- package/dev-server/templates/directory-index.html +0 -176
- package/dev-server/templates/initial-load.html +0 -168
- package/dev-server/visualstudio.vbs +0 -82
- package/dev-server/xdg-open +0 -1066
- package/internal/app-data/index.cjs +0 -119
- package/internal/app-data/index.js +0 -92
- package/internal/app-data/package.json +0 -15
- package/internal/app-globals/index.d.ts +0 -2
- package/internal/app-globals/index.js +0 -14
- package/internal/app-globals/package.json +0 -14
- package/internal/child_process.d.ts +0 -7
- package/internal/client/index.js +0 -4736
- package/internal/client/package.json +0 -10
- package/internal/client/patch-browser.js +0 -45
- package/internal/client/polyfills/core-js.js +0 -11
- package/internal/client/polyfills/dom.js +0 -79
- package/internal/client/polyfills/es5-html-element.js +0 -1
- package/internal/client/polyfills/index.js +0 -34
- package/internal/client/polyfills/system.js +0 -6
- package/internal/client/shadow-css.js +0 -414
- package/internal/hydrate/index.js +0 -6671
- package/internal/hydrate/package.json +0 -7
- package/internal/hydrate/runner.d.ts +0 -287
- package/internal/hydrate/runner.js +0 -17950
- package/internal/index.d.ts +0 -4
- package/internal/index.js +0 -2
- package/internal/package.json +0 -9
- package/internal/stencil-core/index.cjs +0 -1
- package/internal/stencil-core/index.js +0 -18
- package/internal/stencil-core/jsx-dev-runtime.cjs +0 -7
- package/internal/stencil-core/jsx-dev-runtime.d.ts +0 -41
- package/internal/stencil-core/jsx-dev-runtime.js +0 -2
- package/internal/stencil-core/jsx-runtime.cjs +0 -8
- package/internal/stencil-core/jsx-runtime.d.ts +0 -40
- package/internal/stencil-core/jsx-runtime.js +0 -2
- package/internal/stencil-private.d.ts +0 -2549
- package/internal/stencil-public-compiler.d.ts +0 -2867
- package/internal/stencil-public-runtime.d.ts +0 -1860
- package/internal/testing/index.js +0 -6528
- package/internal/testing/jsx-dev-runtime.d.ts +0 -2
- package/internal/testing/jsx-dev-runtime.js +0 -8
- package/internal/testing/jsx-runtime.d.ts +0 -2
- package/internal/testing/jsx-runtime.js +0 -9
- package/internal/testing/package.json +0 -7
- package/internal/utils/index.d.ts +0 -1
- package/internal/utils/result.d.ts +0 -112
- package/mock-doc/index.cjs +0 -10165
- package/mock-doc/index.d.ts +0 -1172
- package/mock-doc/index.js +0 -10144
- package/mock-doc/package.json +0 -15
- package/readme.md +0 -94
- package/screenshot/compare/assets/favicon.ico +0 -0
- package/screenshot/compare/assets/logo.png +0 -0
- package/screenshot/compare/build/app.css +0 -1
- package/screenshot/compare/build/app.esm.js +0 -1
- package/screenshot/compare/build/app.js +0 -33
- package/screenshot/compare/build/p-081b0641.js +0 -1
- package/screenshot/compare/build/p-227a1e18.entry.js +0 -1
- package/screenshot/compare/build/p-2c298727.entry.js +0 -1
- package/screenshot/compare/build/p-5479268c.entry.js +0 -1
- package/screenshot/compare/build/p-573ec8a4.entry.js +0 -1
- package/screenshot/compare/build/p-6ba08604.entry.js +0 -1
- package/screenshot/compare/build/p-6bc63295.entry.js +0 -1
- package/screenshot/compare/build/p-7a3759fd.entry.js +0 -1
- package/screenshot/compare/build/p-7b4e3ba7.js +0 -1
- package/screenshot/compare/build/p-988eb362.css +0 -1
- package/screenshot/compare/build/p-9b6a9315.js +0 -1
- package/screenshot/compare/build/p-b4cc611c.entry.js +0 -1
- package/screenshot/compare/build/p-d1bf53f5.entry.js +0 -1
- package/screenshot/compare/build/p-e2efe0df.js +0 -1
- package/screenshot/compare/build/p-e8ca6d97.entry.js +0 -1
- package/screenshot/compare/build/p-ec2f13e0.entry.js +0 -1
- package/screenshot/compare/build/p-f0b99977.entry.js +0 -1
- package/screenshot/compare/build/p-f4745c2f.entry.js +0 -1
- package/screenshot/compare/build/p-fbbae598.js +0 -1
- package/screenshot/compare/host.config.json +0 -15
- package/screenshot/compare/index.html +0 -1
- package/screenshot/compare/manifest.json +0 -13
- package/screenshot/connector-base.d.ts +0 -42
- package/screenshot/connector-local.d.ts +0 -7
- package/screenshot/connector.js +0 -2
- package/screenshot/index.d.ts +0 -3
- package/screenshot/index.js +0 -2433
- package/screenshot/local-connector.js +0 -2
- package/screenshot/package.json +0 -15
- package/screenshot/pixel-match.d.ts +0 -1
- package/screenshot/pixel-match.js +0 -2315
- package/screenshot/screenshot-compare.d.ts +0 -20
- package/screenshot/screenshot-fs.d.ts +0 -14
- package/sys/node/460.node-fetch.js +0 -451
- package/sys/node/autoprefixer.js +0 -9
- package/sys/node/glob.js +0 -1
- package/sys/node/graceful-fs.js +0 -1
- package/sys/node/index.d.ts +0 -39
- package/sys/node/index.js +0 -64
- package/sys/node/node-fetch.js +0 -12
- package/sys/node/package.json +0 -8
- package/sys/node/prompts.js +0 -1
- package/sys/node/worker.js +0 -4
- package/testing/index.d.ts +0 -9
- package/testing/index.js +0 -13064
- package/testing/jest/jest-27-and-under/jest-config.d.ts +0 -16
- package/testing/jest/jest-27-and-under/jest-environment.d.ts +0 -2
- package/testing/jest/jest-27-and-under/jest-facade.d.ts +0 -155
- package/testing/jest/jest-27-and-under/jest-preprocessor.d.ts +0 -59
- package/testing/jest/jest-27-and-under/jest-preset.d.ts +0 -3
- package/testing/jest/jest-27-and-under/jest-runner.d.ts +0 -11
- package/testing/jest/jest-27-and-under/jest-screenshot.d.ts +0 -2
- package/testing/jest/jest-27-and-under/jest-serializer.d.ts +0 -4
- package/testing/jest/jest-27-and-under/jest-setup-test-framework.d.ts +0 -9
- package/testing/jest/jest-27-and-under/matchers/attributes.d.ts +0 -14
- package/testing/jest/jest-27-and-under/matchers/class-list.d.ts +0 -12
- package/testing/jest/jest-27-and-under/matchers/events.d.ts +0 -25
- package/testing/jest/jest-27-and-under/matchers/html.d.ts +0 -13
- package/testing/jest/jest-27-and-under/matchers/index.d.ts +0 -24
- package/testing/jest/jest-27-and-under/matchers/screenshot.d.ts +0 -5
- package/testing/jest/jest-27-and-under/matchers/text.d.ts +0 -4
- package/testing/jest/jest-27-and-under/test/jest-config.spec.d.ts +0 -1
- package/testing/jest/jest-27-and-under/test/jest-preprocessor.spec.d.ts +0 -1
- package/testing/jest/jest-27-and-under/test/jest-runner.spec.d.ts +0 -1
- package/testing/jest/jest-27-and-under/test/jest-serializer.spec.d.ts +0 -1
- package/testing/jest/jest-27-and-under/test/jest-setup-test-framework.spec.d.ts +0 -1
- package/testing/jest/jest-28/jest-config.d.ts +0 -16
- package/testing/jest/jest-28/jest-environment.d.ts +0 -2
- package/testing/jest/jest-28/jest-facade.d.ts +0 -134
- package/testing/jest/jest-28/jest-preprocessor.d.ts +0 -35
- package/testing/jest/jest-28/jest-preset.d.ts +0 -3
- package/testing/jest/jest-28/jest-runner.d.ts +0 -11
- package/testing/jest/jest-28/jest-screenshot.d.ts +0 -2
- package/testing/jest/jest-28/jest-serializer.d.ts +0 -4
- package/testing/jest/jest-28/jest-setup-test-framework.d.ts +0 -9
- package/testing/jest/jest-28/matchers/attributes.d.ts +0 -14
- package/testing/jest/jest-28/matchers/class-list.d.ts +0 -12
- package/testing/jest/jest-28/matchers/events.d.ts +0 -25
- package/testing/jest/jest-28/matchers/html.d.ts +0 -13
- package/testing/jest/jest-28/matchers/index.d.ts +0 -24
- package/testing/jest/jest-28/matchers/screenshot.d.ts +0 -5
- package/testing/jest/jest-28/matchers/text.d.ts +0 -4
- package/testing/jest/jest-28/test/jest-config.spec.d.ts +0 -1
- package/testing/jest/jest-28/test/jest-preprocessor.spec.d.ts +0 -1
- package/testing/jest/jest-28/test/jest-runner.spec.d.ts +0 -1
- package/testing/jest/jest-28/test/jest-serializer.spec.d.ts +0 -1
- package/testing/jest/jest-28/test/jest-setup-test-framework.spec.d.ts +0 -1
- package/testing/jest/jest-29/jest-config.d.ts +0 -16
- package/testing/jest/jest-29/jest-environment.d.ts +0 -2
- package/testing/jest/jest-29/jest-facade.d.ts +0 -136
- package/testing/jest/jest-29/jest-preprocessor.d.ts +0 -35
- package/testing/jest/jest-29/jest-preset.d.ts +0 -3
- package/testing/jest/jest-29/jest-runner.d.ts +0 -11
- package/testing/jest/jest-29/jest-screenshot.d.ts +0 -2
- package/testing/jest/jest-29/jest-serializer.d.ts +0 -4
- package/testing/jest/jest-29/jest-setup-test-framework.d.ts +0 -9
- package/testing/jest/jest-29/matchers/attributes.d.ts +0 -14
- package/testing/jest/jest-29/matchers/class-list.d.ts +0 -12
- package/testing/jest/jest-29/matchers/events.d.ts +0 -25
- package/testing/jest/jest-29/matchers/html.d.ts +0 -13
- package/testing/jest/jest-29/matchers/index.d.ts +0 -24
- package/testing/jest/jest-29/matchers/screenshot.d.ts +0 -5
- package/testing/jest/jest-29/matchers/text.d.ts +0 -4
- package/testing/jest/jest-29/test/jest-config.spec.d.ts +0 -1
- package/testing/jest/jest-29/test/jest-preprocessor.spec.d.ts +0 -1
- package/testing/jest/jest-29/test/jest-runner.spec.d.ts +0 -1
- package/testing/jest/jest-29/test/jest-serializer.spec.d.ts +0 -1
- package/testing/jest/jest-29/test/jest-setup-test-framework.spec.d.ts +0 -1
- package/testing/jest/jest-apis.d.ts +0 -86
- package/testing/jest/jest-facade.d.ts +0 -74
- package/testing/jest/jest-stencil-connector.d.ts +0 -65
- package/testing/jest/test/jest-stencil-connector.spec.d.ts +0 -1
- package/testing/jest-environment.js +0 -3
- package/testing/jest-preprocessor.js +0 -3
- package/testing/jest-preset.js +0 -2
- package/testing/jest-runner.js +0 -3
- package/testing/jest-setuptestframework.js +0 -3
- package/testing/mock-fetch.d.ts +0 -11
- package/testing/mocks.d.ts +0 -56
- package/testing/package.json +0 -8
- package/testing/puppeteer/index.d.ts +0 -2
- package/testing/puppeteer/puppeteer-browser.d.ts +0 -6
- package/testing/puppeteer/puppeteer-declarations.d.ts +0 -414
- package/testing/puppeteer/puppeteer-element.d.ts +0 -67
- package/testing/puppeteer/puppeteer-emulate.d.ts +0 -2
- package/testing/puppeteer/puppeteer-events.d.ts +0 -21
- package/testing/puppeteer/puppeteer-page.d.ts +0 -2
- package/testing/puppeteer/puppeteer-screenshot.d.ts +0 -27
- package/testing/puppeteer/test/puppeteer-screenshot.spec.d.ts +0 -1
- package/testing/reset-build-conditionals.d.ts +0 -12
- package/testing/spec-page.d.ts +0 -7
- package/testing/test/testing-utils.spec.d.ts +0 -1
- package/testing/test-transpile.d.ts +0 -2
- package/testing/testing-logger.d.ts +0 -26
- package/testing/testing-sys.d.ts +0 -6
- package/testing/testing-utils.d.ts +0 -80
- package/testing/testing.d.ts +0 -2
- /package/{internal → dist/declarations}/stencil-ext-modules.d.ts +0 -0
- /package/{internal → dist/declarations}/stencil-public-docs.d.ts +0 -0
- /package/{screenshot/compare/build/index.esm.js → dist/declarations/stencil-public-runtime.js} +0 -0
|
@@ -0,0 +1,775 @@
|
|
|
1
|
+
//#region src/utils/constants.ts
|
|
2
|
+
const MF_String = 1;
|
|
3
|
+
const MF_Number = 2;
|
|
4
|
+
const MF_Boolean = 4;
|
|
5
|
+
const MF_Any = 8;
|
|
6
|
+
const MF_Unknown = 16;
|
|
7
|
+
const MF_State = 32;
|
|
8
|
+
const MEMBER_FLAGS = {
|
|
9
|
+
String: MF_String,
|
|
10
|
+
Number: MF_Number,
|
|
11
|
+
Boolean: MF_Boolean,
|
|
12
|
+
Any: MF_Any,
|
|
13
|
+
Unknown: MF_Unknown,
|
|
14
|
+
State: MF_State,
|
|
15
|
+
Method: 64,
|
|
16
|
+
Event: 128,
|
|
17
|
+
Element: 256,
|
|
18
|
+
ReflectAttr: 512,
|
|
19
|
+
Mutable: 1024,
|
|
20
|
+
Getter: 2048,
|
|
21
|
+
Setter: 4096,
|
|
22
|
+
Prop: 31,
|
|
23
|
+
HasAttribute: 31,
|
|
24
|
+
PropLike: 63
|
|
25
|
+
};
|
|
26
|
+
const WATCH_FLAGS = { Immediate: 1 };
|
|
27
|
+
const EVENT_FLAGS = {
|
|
28
|
+
Cancellable: 1,
|
|
29
|
+
Composed: 2,
|
|
30
|
+
Bubbles: 4
|
|
31
|
+
};
|
|
32
|
+
const LISTENER_FLAGS = {
|
|
33
|
+
Passive: 1,
|
|
34
|
+
Capture: 2,
|
|
35
|
+
TargetDocument: 4,
|
|
36
|
+
TargetWindow: 8,
|
|
37
|
+
TargetBody: 16,
|
|
38
|
+
TargetParent: 32
|
|
39
|
+
};
|
|
40
|
+
const HOST_FLAGS = {
|
|
41
|
+
hasConnected: 1,
|
|
42
|
+
hasRendered: 2,
|
|
43
|
+
isWaitingForChildren: 4,
|
|
44
|
+
isConstructingInstance: 8,
|
|
45
|
+
isQueuedForUpdate: 16,
|
|
46
|
+
hasInitializedComponent: 32,
|
|
47
|
+
hasLoadedComponent: 64,
|
|
48
|
+
isWatchReady: 128,
|
|
49
|
+
isListenReady: 256,
|
|
50
|
+
needsRerender: 512,
|
|
51
|
+
devOnRender: 1024,
|
|
52
|
+
devOnDidLoad: 2048
|
|
53
|
+
};
|
|
54
|
+
const CF_scopedCssEncapsulation = 2;
|
|
55
|
+
const CF_needsShadowDomShim = 8;
|
|
56
|
+
/**
|
|
57
|
+
* A set of flags used for bitwise calculations against {@link ComponentRuntimeMeta#$flags$}.
|
|
58
|
+
*
|
|
59
|
+
* These flags should only be used in conjunction with {@link ComponentRuntimeMeta#$flags$}.
|
|
60
|
+
* They should _not_ be used for calculations against other fields/numbers
|
|
61
|
+
*/
|
|
62
|
+
const CMP_FLAGS = {
|
|
63
|
+
shadowDomEncapsulation: 1,
|
|
64
|
+
scopedCssEncapsulation: CF_scopedCssEncapsulation,
|
|
65
|
+
hasSlotRelocation: 4,
|
|
66
|
+
needsShadowDomShim: CF_needsShadowDomShim,
|
|
67
|
+
shadowDelegatesFocus: 16,
|
|
68
|
+
hasMode: 32,
|
|
69
|
+
needsScopedEncapsulation: CF_scopedCssEncapsulation | CF_needsShadowDomShim,
|
|
70
|
+
formAssociated: 64,
|
|
71
|
+
shadowNeedsScopedCss: 128,
|
|
72
|
+
hasSlot: 256,
|
|
73
|
+
hasModernPropertyDecls: 512,
|
|
74
|
+
shadowSlotAssignmentManual: 1024
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Default style mode id
|
|
78
|
+
*/
|
|
79
|
+
const DEFAULT_STYLE_MODE = "$";
|
|
80
|
+
/**
|
|
81
|
+
* Namespaces
|
|
82
|
+
*/
|
|
83
|
+
const SVG_NS = "http://www.w3.org/2000/svg";
|
|
84
|
+
const HTML_NS = "http://www.w3.org/1999/xhtml";
|
|
85
|
+
const XLINK_NS = "http://www.w3.org/1999/xlink";
|
|
86
|
+
/**
|
|
87
|
+
* File names and value
|
|
88
|
+
*/
|
|
89
|
+
const COLLECTION_MANIFEST_FILE_NAME = "collection-manifest.json";
|
|
90
|
+
/**
|
|
91
|
+
* Constant for the 'copy' output target
|
|
92
|
+
*/
|
|
93
|
+
const COPY = "copy";
|
|
94
|
+
/**
|
|
95
|
+
* Constant for the 'custom' output target
|
|
96
|
+
*/
|
|
97
|
+
const CUSTOM = "custom";
|
|
98
|
+
/**
|
|
99
|
+
* Constant for the 'dist' output target
|
|
100
|
+
*/
|
|
101
|
+
const DIST = "dist";
|
|
102
|
+
/**
|
|
103
|
+
* Constant for the 'dist-collection' output target
|
|
104
|
+
*/
|
|
105
|
+
const DIST_COLLECTION = "dist-collection";
|
|
106
|
+
/**
|
|
107
|
+
* Constant for the 'dist-custom-elements' output target
|
|
108
|
+
*/
|
|
109
|
+
const DIST_CUSTOM_ELEMENTS = "dist-custom-elements";
|
|
110
|
+
/**
|
|
111
|
+
* Constant for the 'dist-types' output target
|
|
112
|
+
*/
|
|
113
|
+
const DIST_TYPES = "dist-types";
|
|
114
|
+
/**
|
|
115
|
+
* Constant for the 'dist-hydrate-script' output target
|
|
116
|
+
*/
|
|
117
|
+
const DIST_HYDRATE_SCRIPT = "dist-hydrate-script";
|
|
118
|
+
/**
|
|
119
|
+
* Constant for the 'dist-lazy' output target
|
|
120
|
+
*/
|
|
121
|
+
const DIST_LAZY = "dist-lazy";
|
|
122
|
+
/**
|
|
123
|
+
* Constant for the 'dist-lazy-loader' output target
|
|
124
|
+
*/
|
|
125
|
+
const DIST_LAZY_LOADER = "dist-lazy-loader";
|
|
126
|
+
/**
|
|
127
|
+
* Constant for the 'dist-global-styles' output target
|
|
128
|
+
*/
|
|
129
|
+
const DIST_GLOBAL_STYLES = "dist-global-styles";
|
|
130
|
+
/**
|
|
131
|
+
* Constant for the 'docs-custom' output target
|
|
132
|
+
*/
|
|
133
|
+
const DOCS_CUSTOM = "docs-custom";
|
|
134
|
+
/**
|
|
135
|
+
* Constant for the 'docs-json' output target
|
|
136
|
+
*/
|
|
137
|
+
const DOCS_JSON = "docs-json";
|
|
138
|
+
/**
|
|
139
|
+
* Constant for the 'docs-readme' output target
|
|
140
|
+
*/
|
|
141
|
+
const DOCS_README = "docs-readme";
|
|
142
|
+
/**
|
|
143
|
+
* Constant for the 'docs-vscode' output target
|
|
144
|
+
*/
|
|
145
|
+
const DOCS_VSCODE = "docs-vscode";
|
|
146
|
+
/**
|
|
147
|
+
* Constant for the 'docs-custom-elements-manifest' output target
|
|
148
|
+
*/
|
|
149
|
+
const DOCS_CUSTOM_ELEMENTS_MANIFEST = "docs-custom-elements-manifest";
|
|
150
|
+
/**
|
|
151
|
+
* Constant for the 'stats' output target
|
|
152
|
+
*/
|
|
153
|
+
const STATS = "stats";
|
|
154
|
+
/**
|
|
155
|
+
* Constant for the 'www' output target
|
|
156
|
+
*/
|
|
157
|
+
const WWW = "www";
|
|
158
|
+
/**
|
|
159
|
+
* Valid output targets to specify in a Stencil config.
|
|
160
|
+
*
|
|
161
|
+
* Note that there are some output targets (e.g. `DIST_TYPES`) which are
|
|
162
|
+
* programmatically set as output targets by the compiler when other output
|
|
163
|
+
* targets (in that case `DIST`) are set, but which are _not_ supported in a
|
|
164
|
+
* Stencil config. This is enforced in the output target validation code.
|
|
165
|
+
*/
|
|
166
|
+
const VALID_CONFIG_OUTPUT_TARGETS = [
|
|
167
|
+
WWW,
|
|
168
|
+
DIST,
|
|
169
|
+
DIST_COLLECTION,
|
|
170
|
+
DIST_CUSTOM_ELEMENTS,
|
|
171
|
+
DIST_LAZY,
|
|
172
|
+
DIST_HYDRATE_SCRIPT,
|
|
173
|
+
DOCS_JSON,
|
|
174
|
+
DOCS_README,
|
|
175
|
+
DOCS_VSCODE,
|
|
176
|
+
DOCS_CUSTOM,
|
|
177
|
+
DOCS_CUSTOM_ELEMENTS_MANIFEST,
|
|
178
|
+
COPY,
|
|
179
|
+
CUSTOM,
|
|
180
|
+
STATS
|
|
181
|
+
];
|
|
182
|
+
const GENERATED_DTS = "components.d.ts";
|
|
183
|
+
/**
|
|
184
|
+
* DOM Node types
|
|
185
|
+
*
|
|
186
|
+
* See https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
|
|
187
|
+
*
|
|
188
|
+
* Note: this is a duplicate of the `NODE_TYPES` enum in mock-doc, it's
|
|
189
|
+
* copied over here so that we do not need to introduce a dependency on the
|
|
190
|
+
* mock-doc bundle in the runtime. See
|
|
191
|
+
* https://github.com/stenciljs/core/pull/5705 for more details.
|
|
192
|
+
*/
|
|
193
|
+
const NODE_TYPES = {
|
|
194
|
+
ELEMENT_NODE: 1,
|
|
195
|
+
ATTRIBUTE_NODE: 2,
|
|
196
|
+
TEXT_NODE: 3,
|
|
197
|
+
CDATA_SECTION_NODE: 4,
|
|
198
|
+
ENTITY_REFERENCE_NODE: 5,
|
|
199
|
+
ENTITY_NODE: 6,
|
|
200
|
+
PROCESSING_INSTRUCTION_NODE: 7,
|
|
201
|
+
COMMENT_NODE: 8,
|
|
202
|
+
DOCUMENT_NODE: 9,
|
|
203
|
+
DOCUMENT_TYPE_NODE: 10,
|
|
204
|
+
DOCUMENT_FRAGMENT_NODE: 11,
|
|
205
|
+
NOTATION_NODE: 12
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* Represents a primitive type.
|
|
209
|
+
* Described in https://w3c.github.io/webdriver-bidi/#type-script-PrimitiveProtocolValue.
|
|
210
|
+
*/
|
|
211
|
+
const PrimitiveType = {
|
|
212
|
+
Undefined: "undefined",
|
|
213
|
+
Null: "null",
|
|
214
|
+
String: "string",
|
|
215
|
+
Number: "number",
|
|
216
|
+
SpecialNumber: "number",
|
|
217
|
+
Boolean: "boolean",
|
|
218
|
+
BigInt: "bigint"
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Represents a non-primitive type.
|
|
222
|
+
* Described in https://w3c.github.io/webdriver-bidi/#type-script-RemoteValue.
|
|
223
|
+
* @deprecated will be removed in v5. Use `@AttrDeserialize()` / `@PropDeserialize()` decorators instead.
|
|
224
|
+
*/
|
|
225
|
+
const NonPrimitiveType = {
|
|
226
|
+
Array: "array",
|
|
227
|
+
Date: "date",
|
|
228
|
+
Map: "map",
|
|
229
|
+
Object: "object",
|
|
230
|
+
RegularExpression: "regexp",
|
|
231
|
+
Set: "set",
|
|
232
|
+
Channel: "channel",
|
|
233
|
+
Symbol: "symbol"
|
|
234
|
+
};
|
|
235
|
+
/** @deprecated will be removed in v5. Use `@AttrDeserialize()` / `@PropDeserialize()` decorators instead. */
|
|
236
|
+
const TYPE_CONSTANT = "type";
|
|
237
|
+
/** @deprecated will be removed in v5. Use `@AttrDeserialize()` / `@PropDeserialize()` decorators instead. */
|
|
238
|
+
const VALUE_CONSTANT = "value";
|
|
239
|
+
/** @deprecated will be removed in v5. Use `@AttrDeserialize()` / `@PropDeserialize()` decorators instead. */
|
|
240
|
+
const SERIALIZED_PREFIX = "serialized:";
|
|
241
|
+
|
|
242
|
+
//#endregion
|
|
243
|
+
//#region src/utils/query-nonce-meta-tag-content.ts
|
|
244
|
+
/**
|
|
245
|
+
* Helper method for querying a `meta` tag that contains a nonce value
|
|
246
|
+
* out of a DOM's head.
|
|
247
|
+
*
|
|
248
|
+
* @param doc The DOM containing the `head` to query against
|
|
249
|
+
* @returns The content of the meta tag representing the nonce value, or `undefined` if no tag
|
|
250
|
+
* exists or the tag has no content.
|
|
251
|
+
*/
|
|
252
|
+
function queryNonceMetaTagContent(doc) {
|
|
253
|
+
return doc.head?.querySelector("meta[name=\"csp-nonce\"]")?.getAttribute("content") ?? void 0;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
//#endregion
|
|
257
|
+
//#region src/utils/helpers.ts
|
|
258
|
+
const isDef = (v) => v != null && v !== void 0;
|
|
259
|
+
/**
|
|
260
|
+
* Convert a string from PascalCase to dash-case
|
|
261
|
+
*
|
|
262
|
+
* @param str the string to convert
|
|
263
|
+
* @returns a converted string
|
|
264
|
+
*/
|
|
265
|
+
const toDashCase = (str) => str.replace(/([A-Z0-9])/g, (match) => ` ${match[0]}`).trim().split(" ").join("-").toLowerCase();
|
|
266
|
+
/**
|
|
267
|
+
* Convert a string from dash-case / kebab-case to PascalCase (or CamelCase,
|
|
268
|
+
* or whatever you call it!)
|
|
269
|
+
*
|
|
270
|
+
* @param str a string to convert
|
|
271
|
+
* @returns a converted string
|
|
272
|
+
*/
|
|
273
|
+
const dashToPascalCase = (str) => str.toLowerCase().split("-").map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1)).join("");
|
|
274
|
+
/**
|
|
275
|
+
* Convert a string to 'camelCase'
|
|
276
|
+
*
|
|
277
|
+
* @param str the string to convert
|
|
278
|
+
* @returns the converted string
|
|
279
|
+
*/
|
|
280
|
+
const toCamelCase = (str) => {
|
|
281
|
+
const pascalCase = dashToPascalCase(str);
|
|
282
|
+
return pascalCase.charAt(0).toLowerCase() + pascalCase.slice(1);
|
|
283
|
+
};
|
|
284
|
+
/**
|
|
285
|
+
* Capitalize the first letter of a string
|
|
286
|
+
*
|
|
287
|
+
* @param str the string to capitalize
|
|
288
|
+
* @returns a capitalized string
|
|
289
|
+
*/
|
|
290
|
+
const toTitleCase = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
|
291
|
+
/**
|
|
292
|
+
* Escapes all occurrences of a specified pattern in a string.
|
|
293
|
+
* @description This function replaces all matches of a given pattern in the input text with a specified replacement string.
|
|
294
|
+
* It can handle both string and regular expression patterns and allows toggling between global and single-match replacements.
|
|
295
|
+
* @param {string} text - The input string to process.
|
|
296
|
+
* @param {RegExp | string} pattern - The pattern to search for in the input string. Can be a regular expression or a string.
|
|
297
|
+
* @param {string} replacement - The string to replace each match with.
|
|
298
|
+
* @param {boolean} [replaceAll=true] - Whether to replace all occurrences (`true`) or just the first occurrence (`false`). Defaults to `true`.
|
|
299
|
+
* @returns {string} The processed string with the replacements applied.
|
|
300
|
+
* @example
|
|
301
|
+
* @see src\utils\util.ts
|
|
302
|
+
*/
|
|
303
|
+
const escapeWithPattern = (text, pattern, replacement, replaceAll = true) => {
|
|
304
|
+
let regex;
|
|
305
|
+
if (typeof pattern === "string") {
|
|
306
|
+
const escaped = pattern.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
307
|
+
regex = new RegExp(escaped, replaceAll ? "g" : "");
|
|
308
|
+
} else {
|
|
309
|
+
const flags = pattern.flags;
|
|
310
|
+
const hasG = flags.includes("g");
|
|
311
|
+
const newFlags = replaceAll ? hasG ? flags : flags + "g" : hasG ? flags.replace(/g/g, "") : flags;
|
|
312
|
+
regex = new RegExp(pattern.source, newFlags);
|
|
313
|
+
}
|
|
314
|
+
return text.replace(regex, replacement);
|
|
315
|
+
};
|
|
316
|
+
/**
|
|
317
|
+
* This is just a no-op, don't expect it to do anything.
|
|
318
|
+
*/
|
|
319
|
+
const noop = () => {};
|
|
320
|
+
/**
|
|
321
|
+
* Check whether a value is a 'complex type', defined here as an object or a
|
|
322
|
+
* function.
|
|
323
|
+
*
|
|
324
|
+
* @param o the value to check
|
|
325
|
+
* @returns whether it's a complex type or not
|
|
326
|
+
*/
|
|
327
|
+
const isComplexType = (o) => {
|
|
328
|
+
o = typeof o;
|
|
329
|
+
return o === "object" || o === "function";
|
|
330
|
+
};
|
|
331
|
+
/**
|
|
332
|
+
* Sort an array without mutating it in-place (as `Array.prototype.sort`
|
|
333
|
+
* unfortunately does)
|
|
334
|
+
*
|
|
335
|
+
* @param array the array you'd like to sort
|
|
336
|
+
* @param prop a function for deriving sortable values (strings or numbers)
|
|
337
|
+
* from array members
|
|
338
|
+
* @returns a new array of all items `x` in `array` ordered by `prop(x)`
|
|
339
|
+
*/
|
|
340
|
+
const sortBy = (array, prop) => {
|
|
341
|
+
return array.slice().sort((a, b) => {
|
|
342
|
+
const nameA = prop(a);
|
|
343
|
+
const nameB = prop(b);
|
|
344
|
+
if (nameA < nameB) return -1;
|
|
345
|
+
if (nameA > nameB) return 1;
|
|
346
|
+
return 0;
|
|
347
|
+
});
|
|
348
|
+
};
|
|
349
|
+
/**
|
|
350
|
+
* A polyfill of sorts for `Array.prototype.flat` which will return the result
|
|
351
|
+
* of calling that method if present and, if not, return an equivalent based on
|
|
352
|
+
* `Array.prototype.reduce`.
|
|
353
|
+
*
|
|
354
|
+
* @param array the array to flatten (one level)
|
|
355
|
+
* @returns a flattened array
|
|
356
|
+
*/
|
|
357
|
+
const flatOne = (array) => {
|
|
358
|
+
if (array.flat) return array.flat(1);
|
|
359
|
+
return array.reduce((result, item) => {
|
|
360
|
+
result.push(...item);
|
|
361
|
+
return result;
|
|
362
|
+
}, []);
|
|
363
|
+
};
|
|
364
|
+
/**
|
|
365
|
+
* Deduplicate an array, retaining items at the earliest position in which
|
|
366
|
+
* they appear.
|
|
367
|
+
*
|
|
368
|
+
* So `unique([1,3,2,1,1,4])` would be `[1,3,2,4]`.
|
|
369
|
+
*
|
|
370
|
+
* @param array the array to deduplicate
|
|
371
|
+
* @param predicate an optional function used to generate the key used to
|
|
372
|
+
* determine uniqueness
|
|
373
|
+
* @returns a new, deduplicated array
|
|
374
|
+
*/
|
|
375
|
+
const unique = (array, predicate = (i) => i) => {
|
|
376
|
+
const set = /* @__PURE__ */ new Set();
|
|
377
|
+
return array.filter((item) => {
|
|
378
|
+
const key = predicate(item);
|
|
379
|
+
if (key == null) return true;
|
|
380
|
+
if (set.has(key)) return false;
|
|
381
|
+
set.add(key);
|
|
382
|
+
return true;
|
|
383
|
+
});
|
|
384
|
+
};
|
|
385
|
+
/**
|
|
386
|
+
* Merge elements of an array into an existing array, using a predicate to
|
|
387
|
+
* determine uniqueness and only adding elements when they are not present in
|
|
388
|
+
* the first array.
|
|
389
|
+
*
|
|
390
|
+
* **Note**: this mutates the target array! This is intentional to avoid
|
|
391
|
+
* unnecessary array allocation, but be sure that it's what you want!
|
|
392
|
+
*
|
|
393
|
+
* @param target the target array, to which new unique items should be added
|
|
394
|
+
* @param newItems a list of new items, some (or all!) of which may be added
|
|
395
|
+
* @param mergeWith a predicate function which reduces the items in `target`
|
|
396
|
+
* and `newItems` to a value which can be equated with `===` for the purposes
|
|
397
|
+
* of determining uniqueness
|
|
398
|
+
*/
|
|
399
|
+
function mergeIntoWith(target, newItems, mergeWith) {
|
|
400
|
+
for (const item of newItems) if (!target.find((existingItem) => mergeWith(existingItem) === mergeWith(item))) target.push(item);
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* A utility for building an object from an iterable very similar to
|
|
404
|
+
* `Object.fromEntries`
|
|
405
|
+
*
|
|
406
|
+
* @param entries an iterable object holding entries (key-value tuples) to
|
|
407
|
+
* plop into a new object
|
|
408
|
+
* @returns an object containing those entries
|
|
409
|
+
*/
|
|
410
|
+
const fromEntries = (entries) => {
|
|
411
|
+
const object = {};
|
|
412
|
+
for (const [key, value] of entries) object[key] = value;
|
|
413
|
+
return object;
|
|
414
|
+
};
|
|
415
|
+
/**
|
|
416
|
+
* Based on a given object, create a new object which has only the specified
|
|
417
|
+
* key-value pairs included in it.
|
|
418
|
+
*
|
|
419
|
+
* @param obj the object from which to take values
|
|
420
|
+
* @param keys a set of keys to take
|
|
421
|
+
* @returns an object mapping `key` to `obj[key]` if `obj[key]` is truthy for
|
|
422
|
+
* every `key` in `keys`
|
|
423
|
+
*/
|
|
424
|
+
const pluck = (obj, keys) => {
|
|
425
|
+
return keys.reduce((final, key) => {
|
|
426
|
+
if (obj[key]) final[key] = obj[key];
|
|
427
|
+
return final;
|
|
428
|
+
}, {});
|
|
429
|
+
};
|
|
430
|
+
const isDefined = (v) => v !== null && v !== void 0;
|
|
431
|
+
const isBoolean = (v) => typeof v === "boolean";
|
|
432
|
+
const isFunction = (v) => typeof v === "function";
|
|
433
|
+
const isNumber = (v) => typeof v === "number";
|
|
434
|
+
const isObject = (val) => val != null && typeof val === "object" && Array.isArray(val) === false;
|
|
435
|
+
const isString = (v) => typeof v === "string";
|
|
436
|
+
const isIterable = (v) => isDefined(v) && isFunction(v[Symbol.iterator]);
|
|
437
|
+
|
|
438
|
+
//#endregion
|
|
439
|
+
//#region src/utils/regular-expression.ts
|
|
440
|
+
/**
|
|
441
|
+
* Utility function that will escape all regular expression special characters in a string.
|
|
442
|
+
*
|
|
443
|
+
* @param text The string potentially containing special characters.
|
|
444
|
+
* @returns The string with all special characters escaped.
|
|
445
|
+
*/
|
|
446
|
+
const escapeRegExpSpecialCharacters = (text) => {
|
|
447
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
448
|
+
};
|
|
449
|
+
|
|
450
|
+
//#endregion
|
|
451
|
+
//#region src/utils/local-value.ts
|
|
452
|
+
/**
|
|
453
|
+
* Represents a local value with a specified type and optional value.
|
|
454
|
+
* Described in https://w3c.github.io/webdriver-bidi/#type-script-LocalValue
|
|
455
|
+
* @deprecated will be removed in v5. Use `@AttrDeserialize()` / `@PropDeserialize()` decorators instead.
|
|
456
|
+
*/
|
|
457
|
+
var LocalValue = class LocalValue {
|
|
458
|
+
type;
|
|
459
|
+
value;
|
|
460
|
+
constructor(type, value) {
|
|
461
|
+
if (type === PrimitiveType.Undefined || type === PrimitiveType.Null) this.type = type;
|
|
462
|
+
else {
|
|
463
|
+
this.type = type;
|
|
464
|
+
this.value = value;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Creates a new LocalValue object with a string value.
|
|
469
|
+
*
|
|
470
|
+
* @param {string} value - The string value to be stored in the LocalValue object.
|
|
471
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
472
|
+
*/
|
|
473
|
+
static createStringValue(value) {
|
|
474
|
+
return new LocalValue(PrimitiveType.String, value);
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Creates a new LocalValue object with a number value.
|
|
478
|
+
*
|
|
479
|
+
* @param {number} value - The number value.
|
|
480
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
481
|
+
*/
|
|
482
|
+
static createNumberValue(value) {
|
|
483
|
+
return new LocalValue(PrimitiveType.Number, value);
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Creates a new LocalValue object with a special number value.
|
|
487
|
+
*
|
|
488
|
+
* @param {number} value - The value of the special number.
|
|
489
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
490
|
+
*/
|
|
491
|
+
static createSpecialNumberValue(value) {
|
|
492
|
+
if (Number.isNaN(value)) return new LocalValue(PrimitiveType.SpecialNumber, "NaN");
|
|
493
|
+
if (Object.is(value, -0)) return new LocalValue(PrimitiveType.SpecialNumber, "-0");
|
|
494
|
+
if (value === Infinity) return new LocalValue(PrimitiveType.SpecialNumber, "Infinity");
|
|
495
|
+
if (value === -Infinity) return new LocalValue(PrimitiveType.SpecialNumber, "-Infinity");
|
|
496
|
+
return new LocalValue(PrimitiveType.SpecialNumber, value);
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Creates a new LocalValue object with an undefined value.
|
|
500
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
501
|
+
*/
|
|
502
|
+
static createUndefinedValue() {
|
|
503
|
+
return new LocalValue(PrimitiveType.Undefined);
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* Creates a new LocalValue object with a null value.
|
|
507
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
508
|
+
*/
|
|
509
|
+
static createNullValue() {
|
|
510
|
+
return new LocalValue(PrimitiveType.Null);
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* Creates a new LocalValue object with a boolean value.
|
|
514
|
+
*
|
|
515
|
+
* @param {boolean} value - The boolean value.
|
|
516
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
517
|
+
*/
|
|
518
|
+
static createBooleanValue(value) {
|
|
519
|
+
return new LocalValue(PrimitiveType.Boolean, value);
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* Creates a new LocalValue object with a BigInt value.
|
|
523
|
+
*
|
|
524
|
+
* @param {BigInt} value - The BigInt value.
|
|
525
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
526
|
+
*/
|
|
527
|
+
static createBigIntValue(value) {
|
|
528
|
+
return new LocalValue(PrimitiveType.BigInt, value.toString());
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* Creates a new LocalValue object with an array.
|
|
532
|
+
*
|
|
533
|
+
* @param {Array} value - The array.
|
|
534
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
535
|
+
*/
|
|
536
|
+
static createArrayValue(value) {
|
|
537
|
+
return new LocalValue(NonPrimitiveType.Array, value);
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Creates a new LocalValue object with date value.
|
|
541
|
+
*
|
|
542
|
+
* @param {string} value - The date.
|
|
543
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
544
|
+
*/
|
|
545
|
+
static createDateValue(value) {
|
|
546
|
+
return new LocalValue(NonPrimitiveType.Date, value);
|
|
547
|
+
}
|
|
548
|
+
/**
|
|
549
|
+
* Creates a new LocalValue object of map value.
|
|
550
|
+
* @param {Map} map - The map.
|
|
551
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
552
|
+
*/
|
|
553
|
+
static createMapValue(map) {
|
|
554
|
+
const value = [];
|
|
555
|
+
Array.from(map.entries()).forEach(([key, val]) => {
|
|
556
|
+
value.push([LocalValue.getArgument(key), LocalValue.getArgument(val)]);
|
|
557
|
+
});
|
|
558
|
+
return new LocalValue(NonPrimitiveType.Map, value);
|
|
559
|
+
}
|
|
560
|
+
/**
|
|
561
|
+
* Creates a new LocalValue object from the passed object.
|
|
562
|
+
*
|
|
563
|
+
* @param object the object to create a LocalValue from
|
|
564
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
565
|
+
*/
|
|
566
|
+
static createObjectValue(object) {
|
|
567
|
+
const value = [];
|
|
568
|
+
Object.entries(object).forEach(([key, val]) => {
|
|
569
|
+
value.push([key, LocalValue.getArgument(val)]);
|
|
570
|
+
});
|
|
571
|
+
return new LocalValue(NonPrimitiveType.Object, value);
|
|
572
|
+
}
|
|
573
|
+
/**
|
|
574
|
+
* Creates a new LocalValue object of regular expression value.
|
|
575
|
+
*
|
|
576
|
+
* @param {string} value - The value of the regular expression.
|
|
577
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
578
|
+
*/
|
|
579
|
+
static createRegularExpressionValue(value) {
|
|
580
|
+
return new LocalValue(NonPrimitiveType.RegularExpression, value);
|
|
581
|
+
}
|
|
582
|
+
/**
|
|
583
|
+
* Creates a new LocalValue object with the specified value.
|
|
584
|
+
* @param {Set} value - The value to be set.
|
|
585
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
586
|
+
*/
|
|
587
|
+
static createSetValue(value) {
|
|
588
|
+
return new LocalValue(NonPrimitiveType.Set, value);
|
|
589
|
+
}
|
|
590
|
+
/**
|
|
591
|
+
* Creates a new LocalValue object with the given channel value
|
|
592
|
+
*
|
|
593
|
+
* @param {ChannelValue} value - The channel value.
|
|
594
|
+
* @returns {LocalValue} - The created LocalValue object.
|
|
595
|
+
*/
|
|
596
|
+
static createChannelValue(value) {
|
|
597
|
+
return new LocalValue(NonPrimitiveType.Channel, value);
|
|
598
|
+
}
|
|
599
|
+
/**
|
|
600
|
+
* Creates a new LocalValue object with a Symbol value.
|
|
601
|
+
*
|
|
602
|
+
* @param {Symbol} symbol - The Symbol value
|
|
603
|
+
* @returns {LocalValue} - The created LocalValue object
|
|
604
|
+
*/
|
|
605
|
+
static createSymbolValue(symbol) {
|
|
606
|
+
const description = symbol.description || "Symbol()";
|
|
607
|
+
return new LocalValue(NonPrimitiveType.Symbol, description);
|
|
608
|
+
}
|
|
609
|
+
static getArgument(argument) {
|
|
610
|
+
const type = typeof argument;
|
|
611
|
+
switch (type) {
|
|
612
|
+
case PrimitiveType.String: return LocalValue.createStringValue(argument);
|
|
613
|
+
case PrimitiveType.Number:
|
|
614
|
+
if (Number.isNaN(argument) || Object.is(argument, -0) || !Number.isFinite(argument)) return LocalValue.createSpecialNumberValue(argument);
|
|
615
|
+
return LocalValue.createNumberValue(argument);
|
|
616
|
+
case PrimitiveType.Boolean: return LocalValue.createBooleanValue(argument);
|
|
617
|
+
case PrimitiveType.BigInt: return LocalValue.createBigIntValue(argument);
|
|
618
|
+
case PrimitiveType.Undefined: return LocalValue.createUndefinedValue();
|
|
619
|
+
case NonPrimitiveType.Symbol: return LocalValue.createSymbolValue(argument);
|
|
620
|
+
case NonPrimitiveType.Object:
|
|
621
|
+
if (argument === null) return LocalValue.createNullValue();
|
|
622
|
+
if (argument instanceof Date) return LocalValue.createDateValue(argument);
|
|
623
|
+
if (argument instanceof Map) {
|
|
624
|
+
const map = [];
|
|
625
|
+
argument.forEach((value, key) => {
|
|
626
|
+
const objectKey = typeof key === "string" ? key : LocalValue.getArgument(key);
|
|
627
|
+
const objectValue = LocalValue.getArgument(value);
|
|
628
|
+
map.push([objectKey, objectValue]);
|
|
629
|
+
});
|
|
630
|
+
return LocalValue.createMapValue(argument);
|
|
631
|
+
}
|
|
632
|
+
if (argument instanceof Set) {
|
|
633
|
+
const set = [];
|
|
634
|
+
argument.forEach((value) => {
|
|
635
|
+
set.push(LocalValue.getArgument(value));
|
|
636
|
+
});
|
|
637
|
+
return LocalValue.createSetValue(set);
|
|
638
|
+
}
|
|
639
|
+
if (argument instanceof Array) {
|
|
640
|
+
const arr = [];
|
|
641
|
+
argument.forEach((value) => {
|
|
642
|
+
arr.push(LocalValue.getArgument(value));
|
|
643
|
+
});
|
|
644
|
+
return LocalValue.createArrayValue(arr);
|
|
645
|
+
}
|
|
646
|
+
if (argument instanceof RegExp) return LocalValue.createRegularExpressionValue({
|
|
647
|
+
pattern: argument.source,
|
|
648
|
+
flags: argument.flags
|
|
649
|
+
});
|
|
650
|
+
return LocalValue.createObjectValue(argument);
|
|
651
|
+
}
|
|
652
|
+
throw new Error(`Unsupported type: ${type}`);
|
|
653
|
+
}
|
|
654
|
+
asMap() {
|
|
655
|
+
return {
|
|
656
|
+
[TYPE_CONSTANT]: this.type,
|
|
657
|
+
...!(this.type === PrimitiveType.Null || this.type === PrimitiveType.Undefined) ? { [VALUE_CONSTANT]: this.value } : {}
|
|
658
|
+
};
|
|
659
|
+
}
|
|
660
|
+
};
|
|
661
|
+
|
|
662
|
+
//#endregion
|
|
663
|
+
//#region src/utils/remote-value.ts
|
|
664
|
+
/**
|
|
665
|
+
* RemoteValue class for deserializing LocalValue serialized objects back into their original form
|
|
666
|
+
* @deprecated will be removed in v5. Use `@AttrDeserialize()` / `@PropDeserialize()` decorators instead.
|
|
667
|
+
*/
|
|
668
|
+
var RemoteValue = class RemoteValue {
|
|
669
|
+
/**
|
|
670
|
+
* Deserializes a LocalValue serialized object back to its original JavaScript representation
|
|
671
|
+
*
|
|
672
|
+
* @param serialized The serialized LocalValue object
|
|
673
|
+
* @returns The original JavaScript value/object
|
|
674
|
+
*/
|
|
675
|
+
static fromLocalValue(serialized) {
|
|
676
|
+
const type = serialized[TYPE_CONSTANT];
|
|
677
|
+
const value = VALUE_CONSTANT in serialized ? serialized[VALUE_CONSTANT] : void 0;
|
|
678
|
+
switch (type) {
|
|
679
|
+
case PrimitiveType.String: return value;
|
|
680
|
+
case PrimitiveType.Boolean: return value;
|
|
681
|
+
case PrimitiveType.BigInt: return BigInt(value);
|
|
682
|
+
case PrimitiveType.Undefined: return;
|
|
683
|
+
case PrimitiveType.Null: return null;
|
|
684
|
+
case PrimitiveType.Number:
|
|
685
|
+
if (value === "NaN") return NaN;
|
|
686
|
+
if (value === "-0") return -0;
|
|
687
|
+
if (value === "Infinity") return Infinity;
|
|
688
|
+
if (value === "-Infinity") return -Infinity;
|
|
689
|
+
return value;
|
|
690
|
+
case NonPrimitiveType.Array: return value.map((item) => RemoteValue.fromLocalValue(item));
|
|
691
|
+
case NonPrimitiveType.Date: return new Date(value);
|
|
692
|
+
case NonPrimitiveType.Map:
|
|
693
|
+
const map = /* @__PURE__ */ new Map();
|
|
694
|
+
for (const [key, val] of value) {
|
|
695
|
+
const deserializedKey = typeof key === "object" && key !== null ? RemoteValue.fromLocalValue(key) : key;
|
|
696
|
+
const deserializedValue = RemoteValue.fromLocalValue(val);
|
|
697
|
+
map.set(deserializedKey, deserializedValue);
|
|
698
|
+
}
|
|
699
|
+
return map;
|
|
700
|
+
case NonPrimitiveType.Object:
|
|
701
|
+
const obj = {};
|
|
702
|
+
for (const [key, val] of value) obj[key] = RemoteValue.fromLocalValue(val);
|
|
703
|
+
return obj;
|
|
704
|
+
case NonPrimitiveType.RegularExpression:
|
|
705
|
+
const { pattern, flags } = value;
|
|
706
|
+
return new RegExp(pattern, flags);
|
|
707
|
+
case NonPrimitiveType.Set:
|
|
708
|
+
const set = /* @__PURE__ */ new Set();
|
|
709
|
+
for (const item of value) set.add(RemoteValue.fromLocalValue(item));
|
|
710
|
+
return set;
|
|
711
|
+
case NonPrimitiveType.Symbol: return Symbol(value);
|
|
712
|
+
default: throw new Error(`Unsupported type: ${type}`);
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
/**
|
|
716
|
+
* Utility method to deserialize multiple LocalValues at once
|
|
717
|
+
*
|
|
718
|
+
* @param serializedValues Array of serialized LocalValue objects
|
|
719
|
+
* @returns Array of deserialized JavaScript values
|
|
720
|
+
*/
|
|
721
|
+
static fromLocalValueArray(serializedValues) {
|
|
722
|
+
return serializedValues.map((value) => RemoteValue.fromLocalValue(value));
|
|
723
|
+
}
|
|
724
|
+
/**
|
|
725
|
+
* Verifies if the given object matches the structure of a serialized LocalValue
|
|
726
|
+
*
|
|
727
|
+
* @param obj Object to verify
|
|
728
|
+
* @returns boolean indicating if the object has LocalValue structure
|
|
729
|
+
*/
|
|
730
|
+
static isLocalValueObject(obj) {
|
|
731
|
+
if (typeof obj !== "object" || obj === null) return false;
|
|
732
|
+
if (!obj.hasOwnProperty(TYPE_CONSTANT)) return false;
|
|
733
|
+
const type = obj[TYPE_CONSTANT];
|
|
734
|
+
if (!Object.values({
|
|
735
|
+
...PrimitiveType,
|
|
736
|
+
...NonPrimitiveType
|
|
737
|
+
}).includes(type)) return false;
|
|
738
|
+
if (type !== PrimitiveType.Null && type !== PrimitiveType.Undefined) return obj.hasOwnProperty(VALUE_CONSTANT);
|
|
739
|
+
return true;
|
|
740
|
+
}
|
|
741
|
+
};
|
|
742
|
+
|
|
743
|
+
//#endregion
|
|
744
|
+
//#region src/utils/serialize.ts
|
|
745
|
+
/**
|
|
746
|
+
* Serialize a value to a string that can be deserialized later.
|
|
747
|
+
* @param {unknown} value - The value to serialize.
|
|
748
|
+
* @returns {string} A string that can be deserialized later.
|
|
749
|
+
* @deprecated will be removed in v5. Use `@PropSerialize()` decorator instead.
|
|
750
|
+
*/
|
|
751
|
+
function serializeProperty(value) {
|
|
752
|
+
/**
|
|
753
|
+
* If the value is a primitive type, return it as is.
|
|
754
|
+
*/
|
|
755
|
+
if ([
|
|
756
|
+
"string",
|
|
757
|
+
"boolean",
|
|
758
|
+
"undefined"
|
|
759
|
+
].includes(typeof value) || typeof value === "number" && value !== Infinity && value !== -Infinity && !isNaN(value)) return value;
|
|
760
|
+
const arg = LocalValue.getArgument(value);
|
|
761
|
+
return SERIALIZED_PREFIX + btoa(JSON.stringify(arg));
|
|
762
|
+
}
|
|
763
|
+
/**
|
|
764
|
+
* Deserialize a value from a string that was serialized earlier.
|
|
765
|
+
* @param {string} value - The string to deserialize.
|
|
766
|
+
* @returns {unknown} The deserialized value.
|
|
767
|
+
* @deprecated will be removed in v5. Use `@AttrDeserialize()` decorator instead.
|
|
768
|
+
*/
|
|
769
|
+
function deserializeProperty(value) {
|
|
770
|
+
if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) return value;
|
|
771
|
+
return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
//#endregion
|
|
775
|
+
export { PrimitiveType as $, CUSTOM as A, DOCS_CUSTOM as B, toDashCase as C, CMP_FLAGS as D, queryNonceMetaTagContent as E, DIST_GLOBAL_STYLES as F, EVENT_FLAGS as G, DOCS_JSON as H, DIST_HYDRATE_SCRIPT as I, HTML_NS as J, GENERATED_DTS as K, DIST_LAZY as L, DIST as M, DIST_COLLECTION as N, COLLECTION_MANIFEST_FILE_NAME as O, DIST_CUSTOM_ELEMENTS as P, NonPrimitiveType as Q, DIST_LAZY_LOADER as R, toCamelCase as S, unique as T, DOCS_README as U, DOCS_CUSTOM_ELEMENTS_MANIFEST as V, DOCS_VSCODE as W, MEMBER_FLAGS as X, LISTENER_FLAGS as Y, NODE_TYPES as Z, isString as _, escapeRegExpSpecialCharacters as a, VALUE_CONSTANT as at, pluck as b, flatOne as c, XLINK_NS as ct, isComplexType as d, SERIALIZED_PREFIX as et, isDef as f, isObject as g, isNumber as h, LocalValue as i, VALID_CONFIG_OUTPUT_TARGETS as it, DEFAULT_STYLE_MODE as j, COPY as k, fromEntries as l, isIterable as m, serializeProperty as n, SVG_NS as nt, dashToPascalCase as o, WATCH_FLAGS as ot, isFunction as p, HOST_FLAGS as q, RemoteValue as r, TYPE_CONSTANT as rt, escapeWithPattern as s, WWW as st, deserializeProperty as t, STATS as tt, isBoolean as u, mergeIntoWith as v, toTitleCase as w, sortBy as x, noop as y, DIST_TYPES as z };
|