From 124373db50eafb46c59b362dda1bdb18c3bfc5e4 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 2 Feb 2023 16:20:32 +0800 Subject: [PATCH 001/999] wip: isolatedModules + use rollup-plugin-esbuild --- package.json | 2 + packages/compiler-core/src/index.ts | 34 +- packages/compiler-sfc/src/index.ts | 15 +- packages/reactivity/src/index.ts | 46 +-- packages/runtime-core/src/component.ts | 2 +- packages/runtime-core/src/index.ts | 57 ++-- packages/runtime-dom/src/index.ts | 6 +- packages/runtime-dom/src/modules/events.ts | 2 +- packages/server-renderer/src/index.ts | 4 +- pnpm-lock.yaml | 53 ++- rollup.config.mjs | 81 +++-- rollup.original.config.mjs | 379 +++++++++++++++++++++ tsconfig.json | 1 + 13 files changed, 569 insertions(+), 113 deletions(-) create mode 100644 rollup.original.config.mjs diff --git a/package.json b/package.json index 99bbce748d4..5b5cc49bc9a 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "@babel/types": "^7.12.0", "@esbuild-plugins/node-modules-polyfill": "^0.1.4", "@microsoft/api-extractor": "~7.20.0", + "@rollup/plugin-alias": "^4.0.3", "@rollup/plugin-commonjs": "^23.0.2", "@rollup/plugin-json": "^5.0.1", "@rollup/plugin-node-resolve": "^15.0.1", @@ -88,6 +89,7 @@ "pug": "^3.0.1", "puppeteer": "^19.2.2", "rollup": "~3.10.0", + "rollup-plugin-esbuild": "^5.0.0", "rollup-plugin-node-builtins": "^2.1.2", "rollup-plugin-node-globals": "^1.4.0", "rollup-plugin-polyfill-node": "^0.11.0", diff --git a/packages/compiler-core/src/index.ts b/packages/compiler-core/src/index.ts index 6a1f8b63b57..4898a181dfc 100644 --- a/packages/compiler-core/src/index.ts +++ b/packages/compiler-core/src/index.ts @@ -2,31 +2,31 @@ export { baseCompile } from './compile' // Also expose lower level APIs & types export { - CompilerOptions, - ParserOptions, - TransformOptions, - CodegenOptions, - HoistTransform, - BindingMetadata, + type CompilerOptions, + type ParserOptions, + type TransformOptions, + type CodegenOptions, + type HoistTransform, + type BindingMetadata, BindingTypes } from './options' export { baseParse, TextModes } from './parse' export { transform, - TransformContext, + type TransformContext, createTransformContext, traverseNode, createStructuralDirectiveTransform, - NodeTransform, - StructuralDirectiveTransform, - DirectiveTransform + type NodeTransform, + type StructuralDirectiveTransform, + type DirectiveTransform } from './transform' -export { generate, CodegenContext, CodegenResult } from './codegen' +export { generate, type CodegenContext, type CodegenResult } from './codegen' export { ErrorCodes, - CoreCompilerError, - CompilerError, - createCompilerError + createCompilerError, + type CoreCompilerError, + type CompilerError } from './errors' export * from './ast' @@ -34,7 +34,7 @@ export * from './utils' export * from './babelUtils' export * from './runtimeHelpers' -export { getBaseTransformPreset, TransformPreset } from './compile' +export { getBaseTransformPreset, type TransformPreset } from './compile' export { transformModel } from './transforms/vModel' export { transformOn } from './transforms/vOn' export { transformBind } from './transforms/vBind' @@ -48,7 +48,7 @@ export { } from './transforms/transformExpression' export { buildSlots, - SlotFnBuilder, + type SlotFnBuilder, trackVForSlotScopes, trackSlotScopes } from './transforms/vSlot' @@ -57,7 +57,7 @@ export { resolveComponentType, buildProps, buildDirectiveArgs, - PropsExpression + type PropsExpression } from './transforms/transformElement' export { processSlotOutlet } from './transforms/transformSlotOutlet' export { getConstantType } from './transforms/hoistStatic' diff --git a/packages/compiler-sfc/src/index.ts b/packages/compiler-sfc/src/index.ts index b99aeafbb47..c56b1266220 100644 --- a/packages/compiler-sfc/src/index.ts +++ b/packages/compiler-sfc/src/index.ts @@ -27,7 +27,7 @@ export { } from '@vue/compiler-core' // Types -export { +export type { SFCParseOptions, SFCParseResult, SFCDescriptor, @@ -36,19 +36,22 @@ export { SFCScriptBlock, SFCStyleBlock } from './parse' -export { +export type { TemplateCompiler, SFCTemplateCompileOptions, SFCTemplateCompileResults } from './compileTemplate' -export { +export type { SFCStyleCompileOptions, SFCAsyncStyleCompileOptions, SFCStyleCompileResults } from './compileStyle' -export { SFCScriptCompileOptions } from './compileScript' -export { AssetURLOptions, AssetURLTagConfig } from './templateTransformAssetUrl' -export { +export type { SFCScriptCompileOptions } from './compileScript' +export type { + AssetURLOptions, + AssetURLTagConfig +} from './templateTransformAssetUrl' +export type { CompilerOptions, CompilerError, BindingMetadata diff --git a/packages/reactivity/src/index.ts b/packages/reactivity/src/index.ts index 5c65cd52ae2..cbba32d3146 100644 --- a/packages/reactivity/src/index.ts +++ b/packages/reactivity/src/index.ts @@ -8,14 +8,14 @@ export { proxyRefs, customRef, triggerRef, - Ref, - ToRef, - ToRefs, - UnwrapRef, - ShallowRef, - ShallowUnwrapRef, - RefUnwrapBailTypes, - CustomRefFactory + type Ref, + type ToRef, + type ToRefs, + type UnwrapRef, + type ShallowRef, + type ShallowUnwrapRef, + type RefUnwrapBailTypes, + type CustomRefFactory } from './ref' export { reactive, @@ -28,19 +28,19 @@ export { shallowReadonly, markRaw, toRaw, - Raw, ReactiveFlags, - DeepReadonly, - ShallowReactive, - UnwrapNestedRefs + type Raw, + type DeepReadonly, + type ShallowReactive, + type UnwrapNestedRefs } from './reactive' export { computed, - ComputedRef, - WritableComputedRef, - WritableComputedOptions, - ComputedGetter, - ComputedSetter + type ComputedRef, + type WritableComputedRef, + type WritableComputedOptions, + type ComputedGetter, + type ComputedSetter } from './computed' export { deferredComputed } from './deferredComputed' export { @@ -53,12 +53,12 @@ export { resetTracking, ITERATE_KEY, ReactiveEffect, - ReactiveEffectRunner, - ReactiveEffectOptions, - EffectScheduler, - DebuggerOptions, - DebuggerEvent, - DebuggerEventExtraInfo + type ReactiveEffectRunner, + type ReactiveEffectOptions, + type EffectScheduler, + type DebuggerOptions, + type DebuggerEvent, + type DebuggerEventExtraInfo } from './effect' export { effectScope, diff --git a/packages/runtime-core/src/component.ts b/packages/runtime-core/src/component.ts index b04ae6e51f5..768a47d9b6c 100644 --- a/packages/runtime-core/src/component.ts +++ b/packages/runtime-core/src/component.ts @@ -162,7 +162,7 @@ export type Component< | ConcreteComponent | ComponentPublicInstanceConstructor -export { ComponentOptions } +export type { ComponentOptions } type LifecycleHook = TFn[] | null diff --git a/packages/runtime-core/src/index.ts b/packages/runtime-core/src/index.ts index 3101ed06c24..fd3415e3382 100644 --- a/packages/runtime-core/src/index.ts +++ b/packages/runtime-core/src/index.ts @@ -86,11 +86,11 @@ export { h } from './h' // Advanced render function utilities export { createVNode, cloneVNode, mergeProps, isVNode } from './vnode' // VNode types -export { Fragment, Text, Comment, Static, VNodeRef } from './vnode' +export { Fragment, Text, Comment, Static, type VNodeRef } from './vnode' // Built-in components -export { Teleport, TeleportProps } from './components/Teleport' -export { Suspense, SuspenseProps } from './components/Suspense' -export { KeepAlive, KeepAliveProps } from './components/KeepAlive' +export { Teleport, type TeleportProps } from './components/Teleport' +export { Suspense, type SuspenseProps } from './components/Suspense' +export { KeepAlive, type KeepAliveProps } from './components/KeepAlive' export { BaseTransition, BaseTransitionPropsValidators, @@ -148,8 +148,8 @@ declare module '@vue/reactivity' { } } } - -export { +export { TrackOpTypes, TriggerOpTypes } from '@vue/reactivity' +export type { Ref, ToRef, ToRefs, @@ -172,11 +172,9 @@ export { DebuggerOptions, DebuggerEvent, DebuggerEventExtraInfo, - TrackOpTypes, - TriggerOpTypes, Raw } from '@vue/reactivity' -export { +export type { WatchEffect, WatchOptions, WatchOptionsBase, @@ -184,8 +182,8 @@ export { WatchSource, WatchStopHandle } from './apiWatch' -export { InjectionKey } from './apiInject' -export { +export type { InjectionKey } from './apiInject' +export type { App, AppConfig, AppContext, @@ -193,7 +191,7 @@ export { CreateAppFunction, OptionMergeFunction } from './apiCreateApp' -export { +export type { VNode, VNodeChild, VNodeTypes, @@ -201,7 +199,7 @@ export { VNodeArrayChildren, VNodeNormalizedChildren } from './vnode' -export { +export type { Component, ConcreteComponent, FunctionalComponent, @@ -210,8 +208,8 @@ export { ComponentCustomProps, AllowedComponentProps } from './component' -export { DefineComponent } from './apiDefineComponent' -export { +export type { DefineComponent } from './apiDefineComponent' +export type { ComponentOptions, ComponentOptionsMixin, ComponentOptionsWithoutProps, @@ -226,13 +224,13 @@ export { RuntimeCompilerOptions, ComponentInjectOptions } from './componentOptions' -export { EmitsOptions, ObjectEmitsOptions } from './componentEmits' -export { +export type { EmitsOptions, ObjectEmitsOptions } from './componentEmits' +export type { ComponentPublicInstance, ComponentCustomProperties, CreateComponentPublicInstance } from './componentPublicInstance' -export { +export type { Renderer, RendererNode, RendererElement, @@ -240,9 +238,9 @@ export { RendererOptions, RootRenderFunction } from './renderer' -export { RootHydrateFunction } from './hydration' -export { Slot, Slots } from './componentSlots' -export { +export type { RootHydrateFunction } from './hydration' +export type { Slot, Slots } from './componentSlots' +export type { Prop, PropType, ComponentPropsOptions, @@ -250,7 +248,7 @@ export { ExtractPropTypes, ExtractDefaultPropTypes } from './componentProps' -export { +export type { Directive, DirectiveBinding, DirectiveHook, @@ -258,13 +256,16 @@ export { FunctionDirective, DirectiveArguments } from './directives' -export { SuspenseBoundary } from './components/Suspense' -export { TransitionState, TransitionHooks } from './components/BaseTransition' -export { +export type { SuspenseBoundary } from './components/Suspense' +export type { + TransitionState, + TransitionHooks +} from './components/BaseTransition' +export type { AsyncComponentOptions, AsyncComponentLoader } from './apiAsyncComponent' -export { HMRRuntime } from './hmr' +export type { HMRRuntime } from './hmr' // Internal API ---------------------------------------------------------------- @@ -336,8 +337,8 @@ export const ssrUtils = (__SSR__ ? _ssrUtils : null) as typeof _ssrUtils // 2.x COMPAT ------------------------------------------------------------------ export { DeprecationTypes } from './compat/compatConfig' -export { CompatVue } from './compat/global' -export { LegacyConfig } from './compat/globalConfig' +export type { CompatVue } from './compat/global' +export type { LegacyConfig } from './compat/globalConfig' import { warnDeprecation } from './compat/compatConfig' import { createCompatVue } from './compat/global' diff --git a/packages/runtime-dom/src/index.ts b/packages/runtime-dom/src/index.ts index 405acc08944..a980f1dd684 100644 --- a/packages/runtime-dom/src/index.ts +++ b/packages/runtime-dom/src/index.ts @@ -207,7 +207,7 @@ export { defineCustomElement, defineSSRCustomElement, VueElement, - VueElementConstructor + type VueElementConstructor } from './apiCustomElement' // SFC CSS utilities @@ -215,10 +215,10 @@ export { useCssModule } from './helpers/useCssModule' export { useCssVars } from './helpers/useCssVars' // DOM-only components -export { Transition, TransitionProps } from './components/Transition' +export { Transition, type TransitionProps } from './components/Transition' export { TransitionGroup, - TransitionGroupProps + type TransitionGroupProps } from './components/TransitionGroup' // **Internal** DOM-only runtime directive helpers diff --git a/packages/runtime-dom/src/modules/events.ts b/packages/runtime-dom/src/modules/events.ts index 8dbccadef1a..272cededcf4 100644 --- a/packages/runtime-dom/src/modules/events.ts +++ b/packages/runtime-dom/src/modules/events.ts @@ -1,9 +1,9 @@ import { hyphenate, isArray } from '@vue/shared' import { + ErrorCodes, ComponentInternalInstance, callWithAsyncErrorHandling } from '@vue/runtime-core' -import { ErrorCodes } from 'packages/runtime-core/src/errorHandling' interface Invoker extends EventListener { value: EventValue diff --git a/packages/server-renderer/src/index.ts b/packages/server-renderer/src/index.ts index 81946fac811..1e453c913c1 100644 --- a/packages/server-renderer/src/index.ts +++ b/packages/server-renderer/src/index.ts @@ -2,7 +2,7 @@ import { initDirectivesForSSR } from 'vue' initDirectivesForSSR() // public -export { SSRContext } from './render' +export type { SSRContext } from './render' export { renderToString } from './renderToString' export { renderToSimpleStream, @@ -10,7 +10,7 @@ export { pipeToNodeWritable, renderToWebStream, pipeToWebWritable, - SimpleReadable, + type SimpleReadable, // deprecated renderToStream } from './renderToStream' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6df7b8778b3..26d700396ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,7 @@ importers: '@babel/types': ^7.12.0 '@esbuild-plugins/node-modules-polyfill': ^0.1.4 '@microsoft/api-extractor': ~7.20.0 + '@rollup/plugin-alias': ^4.0.3 '@rollup/plugin-commonjs': ^23.0.2 '@rollup/plugin-json': ^5.0.1 '@rollup/plugin-node-resolve': ^15.0.1 @@ -39,6 +40,7 @@ importers: pug: ^3.0.1 puppeteer: ^19.2.2 rollup: ~3.10.0 + rollup-plugin-esbuild: ^5.0.0 rollup-plugin-node-builtins: ^2.1.2 rollup-plugin-node-globals: ^1.4.0 rollup-plugin-polyfill-node: ^0.11.0 @@ -57,6 +59,7 @@ importers: '@babel/types': 7.16.0 '@esbuild-plugins/node-modules-polyfill': 0.1.4_esbuild@0.17.4 '@microsoft/api-extractor': 7.20.1 + '@rollup/plugin-alias': 4.0.3_rollup@3.10.0 '@rollup/plugin-commonjs': 23.0.2_rollup@3.10.0 '@rollup/plugin-json': 5.0.1_rollup@3.10.0 '@rollup/plugin-node-resolve': 15.0.1_rollup@3.10.0 @@ -89,6 +92,7 @@ importers: pug: 3.0.2 puppeteer: 19.2.2 rollup: 3.10.0 + rollup-plugin-esbuild: 5.0.0_ejjt5bxqy7rglzzuwkobwucgry rollup-plugin-node-builtins: 2.1.2 rollup-plugin-node-globals: 1.4.0 rollup-plugin-polyfill-node: 0.11.0_rollup@3.10.0 @@ -337,7 +341,7 @@ packages: '@babel/traverse': 7.16.3 '@babel/types': 7.16.0 convert-source-map: 1.8.0 - debug: 4.3.3 + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.0 semver: 6.3.0 @@ -524,7 +528,7 @@ packages: '@babel/helper-split-export-declaration': 7.16.0 '@babel/parser': 7.16.4 '@babel/types': 7.16.0 - debug: 4.3.3 + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -1082,6 +1086,19 @@ packages: fastq: 1.13.0 dev: true + /@rollup/plugin-alias/4.0.3_rollup@3.10.0: + resolution: {integrity: sha512-ZuDWE1q4PQDhvm/zc5Prun8sBpLJy41DMptYrS6MhAy9s9kL/doN1613BWfEchGVfKxzliJ3BjbOPizXX38DbQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: 3.10.0 + slash: 4.0.0 + dev: true + /@rollup/plugin-commonjs/23.0.2_rollup@3.10.0: resolution: {integrity: sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==} engines: {node: '>=14.0.0'} @@ -2750,6 +2767,10 @@ packages: unbox-primitive: 1.0.1 dev: true + /es-module-lexer/1.1.0: + resolution: {integrity: sha512-fJg+1tiyEeS8figV+fPcPpm8WqJEflG3yPU0NOm5xMvrNkuiy7HzX/Ljng4Y0hAoiw4/3hQTCFYw+ub8+a2pRA==} + dev: true + /es-to-primitive/1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} @@ -3933,6 +3954,11 @@ packages: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: true + /joycon/3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + /js-stringify/1.0.2: resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} dev: true @@ -5490,6 +5516,24 @@ packages: inherits: 2.0.4 dev: true + /rollup-plugin-esbuild/5.0.0_ejjt5bxqy7rglzzuwkobwucgry: + resolution: {integrity: sha512-1cRIOHAPh8WQgdQQyyvFdeOdxuiyk+zB5zJ5+YOwrZP4cJ0MT3Fs48pQxrZeyZHcn+klFherytILVfE4aYrneg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + peerDependencies: + esbuild: '>=0.10.1' + rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 + dependencies: + '@rollup/pluginutils': 5.0.2_rollup@3.10.0 + debug: 4.3.4 + es-module-lexer: 1.1.0 + esbuild: 0.17.4 + joycon: 3.1.1 + jsonc-parser: 3.2.0 + rollup: 3.10.0 + transitivePeerDependencies: + - supports-color + dev: true + /rollup-plugin-inject/3.0.2: resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. @@ -5736,6 +5780,11 @@ packages: engines: {node: '>=8'} dev: true + /slash/4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + /slice-ansi/3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} diff --git a/rollup.config.mjs b/rollup.config.mjs index e5c3b6388cb..9d0d8fe8c6b 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -1,8 +1,8 @@ // @ts-check -import { createRequire } from 'module' -import { fileURLToPath } from 'url' -import path from 'path' -import ts from 'rollup-plugin-typescript2' +import { createRequire } from 'node:module' +import { fileURLToPath } from 'node:url' +import path from 'node:path' +import { readdirSync } from 'node:fs' import replace from '@rollup/plugin-replace' import json from '@rollup/plugin-json' import chalk from 'chalk' @@ -10,6 +10,8 @@ import commonJS from '@rollup/plugin-commonjs' import polyfillNode from 'rollup-plugin-polyfill-node' import { nodeResolve } from '@rollup/plugin-node-resolve' import terser from '@rollup/plugin-terser' +import esbuild from 'rollup-plugin-esbuild' +import alias from '@rollup/plugin-alias' if (!process.env.TARGET) { throw new Error('TARGET package must be specified via --environment flag.') @@ -114,23 +116,37 @@ function createConfig(format, output, plugins = []) { output.name = packageOptions.name } - const shouldEmitDeclarations = - pkg.types && process.env.TYPES != null && !hasTSChecked + // package aliases + // TODO reuse between rollup and vitest + const resolveEntryForPkg = p => + path.resolve( + fileURLToPath(import.meta.url), + `../packages/${p}/src/index.ts` + ) + const dirs = readdirSync(new URL('./packages', import.meta.url)) + const entries = { + vue: resolveEntryForPkg('vue'), + 'vue/compiler-sfc': resolveEntryForPkg('compiler-sfc'), + 'vue/server-renderer': resolveEntryForPkg('server-renderer'), + '@vue/compat': resolveEntryForPkg('vue-compat') + } + for (const dir of dirs) { + const key = `@vue/${dir}` + if (dir !== 'vue' && !(key in entries)) { + entries[key] = resolveEntryForPkg(dir) + } + } + const aliasPlugin = alias({ + entries + }) - const tsPlugin = ts({ - check: process.env.NODE_ENV === 'production' && !hasTSChecked, + const tsPlugin = esbuild({ tsconfig: path.resolve(__dirname, 'tsconfig.json'), - cacheRoot: path.resolve(__dirname, 'node_modules/.rts2_cache'), - tsconfigOverride: { - compilerOptions: { - target: isServerRenderer || isNodeBuild ? 'es2019' : 'es2015', - sourceMap: output.sourcemap, - declaration: shouldEmitDeclarations, - declarationMap: shouldEmitDeclarations - }, - exclude: ['**/__tests__', 'test-dts'] - } + sourceMap: output.sourcemap, + minify: false, + target: isServerRenderer || isNodeBuild ? 'es2019' : 'es2015' }) + // we only need to check TS and generate declarations once for each build. // it also seems to run into weird issues when checking multiple times // during a single build. @@ -211,6 +227,7 @@ function createConfig(format, output, plugins = []) { json({ namedExports: false }), + aliasPlugin, tsPlugin, createReplacePlugin( isProductionBuild, @@ -239,7 +256,15 @@ function createConfig(format, output, plugins = []) { } } -function createReplacePlugin( +function createReplacePlugin(...args) { + return replace({ + // @ts-ignore + values: createReplacements(...args), + preventAssignment: true + }) +} + +function createReplacements( isProduction, isBundlerESMBuild, isBrowserESMBuild, @@ -256,9 +281,9 @@ function createReplacePlugin( ? // preserve to be handled by bundlers `(process.env.NODE_ENV !== 'production')` : // hard coded dev/prod builds - !isProduction, + String(!isProduction), // this is only used during Vue's internal tests - __TEST__: false, + __TEST__: `false`, // If the build is expected to run directly in the browser (global / esm builds) __BROWSER__: isBrowserBuild, __GLOBAL__: isGlobalBuild, @@ -282,11 +307,11 @@ function createReplacePlugin( __COMPAT__: isCompatBuild, // feature flags - __FEATURE_SUSPENSE__: true, - __FEATURE_OPTIONS_API__: isBundlerESMBuild ? `__VUE_OPTIONS_API__` : true, + __FEATURE_SUSPENSE__: `true`, + __FEATURE_OPTIONS_API__: isBundlerESMBuild ? `__VUE_OPTIONS_API__` : `true`, __FEATURE_PROD_DEVTOOLS__: isBundlerESMBuild ? `__VUE_PROD_DEVTOOLS__` - : false, + : `false`, ...(isProduction && isBrowserBuild ? { 'context.onError(': `/*#__PURE__*/ context.onError(`, @@ -297,17 +322,13 @@ function createReplacePlugin( : {}) } // allow inline overrides like - //__RUNTIME_COMPILE__=true yarn build runtime-core + //__RUNTIME_COMPILE__=true pnpm build runtime-core Object.keys(replacements).forEach(key => { if (key in process.env) { replacements[key] = process.env[key] } }) - return replace({ - // @ts-ignore - values: replacements, - preventAssignment: true - }) + return replacements } function createProductionConfig(format) { diff --git a/rollup.original.config.mjs b/rollup.original.config.mjs new file mode 100644 index 00000000000..e9a6e342096 --- /dev/null +++ b/rollup.original.config.mjs @@ -0,0 +1,379 @@ +// @ts-check +import { createRequire } from 'module' +import { fileURLToPath } from 'url' +import path from 'path' +import ts from 'rollup-plugin-typescript2' +import replace from '@rollup/plugin-replace' +import json from '@rollup/plugin-json' +import chalk from 'chalk' +import commonJS from '@rollup/plugin-commonjs' +import polyfillNode from 'rollup-plugin-polyfill-node' +import { nodeResolve } from '@rollup/plugin-node-resolve' +import terser from '@rollup/plugin-terser' + +if (!process.env.TARGET) { + throw new Error('TARGET package must be specified via --environment flag.') +} + +const require = createRequire(import.meta.url) +const __dirname = fileURLToPath(new URL('.', import.meta.url)) + +const masterVersion = require('./package.json').version +const consolidatePkg = require('@vue/consolidate/package.json') + +const packagesDir = path.resolve(__dirname, 'packages') +const packageDir = path.resolve(packagesDir, process.env.TARGET) + +const resolve = p => path.resolve(packageDir, p) +const pkg = require(resolve(`package.json`)) +const packageOptions = pkg.buildOptions || {} +const name = packageOptions.filename || path.basename(packageDir) + +// ensure TS checks only once for each build +let hasTSChecked = false + +const outputConfigs = { + 'esm-bundler': { + file: resolve(`dist/${name}.esm-bundler.js`), + format: `es` + }, + 'esm-browser': { + file: resolve(`dist/${name}.esm-browser.js`), + format: `es` + }, + cjs: { + file: resolve(`dist/${name}.cjs.js`), + format: `cjs` + }, + global: { + file: resolve(`dist/${name}.global.js`), + format: `iife` + }, + // runtime-only builds, for main "vue" package only + 'esm-bundler-runtime': { + file: resolve(`dist/${name}.runtime.esm-bundler.js`), + format: `es` + }, + 'esm-browser-runtime': { + file: resolve(`dist/${name}.runtime.esm-browser.js`), + format: 'es' + }, + 'global-runtime': { + file: resolve(`dist/${name}.runtime.global.js`), + format: 'iife' + } +} + +const defaultFormats = ['esm-bundler', 'cjs'] +const inlineFormats = process.env.FORMATS && process.env.FORMATS.split(',') +const packageFormats = inlineFormats || packageOptions.formats || defaultFormats +const packageConfigs = process.env.PROD_ONLY + ? [] + : packageFormats.map(format => createConfig(format, outputConfigs[format])) + +if (process.env.NODE_ENV === 'production') { + packageFormats.forEach(format => { + if (packageOptions.prod === false) { + return + } + if (format === 'cjs') { + packageConfigs.push(createProductionConfig(format)) + } + if (/^(global|esm-browser)(-runtime)?/.test(format)) { + packageConfigs.push(createMinifiedConfig(format)) + } + }) +} + +export default packageConfigs + +function createConfig(format, output, plugins = []) { + if (!output) { + console.log(chalk.yellow(`invalid format: "${format}"`)) + process.exit(1) + } + + const isProductionBuild = + process.env.__DEV__ === 'false' || /\.prod\.js$/.test(output.file) + const isBundlerESMBuild = /esm-bundler/.test(format) + const isBrowserESMBuild = /esm-browser/.test(format) + const isServerRenderer = name === 'server-renderer' + const isNodeBuild = format === 'cjs' + const isGlobalBuild = /global/.test(format) + const isCompatPackage = pkg.name === '@vue/compat' + const isCompatBuild = !!packageOptions.compat + + output.exports = isCompatPackage ? 'auto' : 'named' + output.esModule = true + output.sourcemap = !!process.env.SOURCE_MAP + output.externalLiveBindings = false + + if (isGlobalBuild) { + output.name = packageOptions.name + } + + const shouldEmitDeclarations = + pkg.types && process.env.TYPES != null && !hasTSChecked + + const tsPlugin = ts({ + check: process.env.NODE_ENV === 'production' && !hasTSChecked, + tsconfig: path.resolve(__dirname, 'tsconfig.json'), + cacheRoot: path.resolve(__dirname, 'node_modules/.rts2_cache'), + tsconfigOverride: { + compilerOptions: { + target: isServerRenderer || isNodeBuild ? 'es2019' : 'es2015', + sourceMap: output.sourcemap, + declaration: shouldEmitDeclarations, + declarationMap: shouldEmitDeclarations + }, + exclude: ['**/__tests__', 'test-dts'] + } + }) + // we only need to check TS and generate declarations once for each build. + // it also seems to run into weird issues when checking multiple times + // during a single build. + hasTSChecked = true + + let entryFile = /runtime$/.test(format) ? `src/runtime.ts` : `src/index.ts` + + // the compat build needs both default AND named exports. This will cause + // Rollup to complain for non-ESM targets, so we use separate entries for + // esm vs. non-esm builds. + if (isCompatPackage && (isBrowserESMBuild || isBundlerESMBuild)) { + entryFile = /runtime$/.test(format) + ? `src/esm-runtime.ts` + : `src/esm-index.ts` + } + + let external = [] + const treeShakenDeps = ['source-map', '@babel/parser', 'estree-walker'] + + if (isGlobalBuild || isBrowserESMBuild || isCompatPackage) { + if (!packageOptions.enableNonBrowserBranches) { + // normal browser builds - non-browser only imports are tree-shaken, + // they are only listed here to suppress warnings. + external = treeShakenDeps + } + } else { + // Node / esm-bundler builds. + // externalize all direct deps unless it's the compat build. + external = [ + ...Object.keys(pkg.dependencies || {}), + ...Object.keys(pkg.peerDependencies || {}), + // for @vue/compiler-sfc / server-renderer + ...['path', 'url', 'stream'], + // somehow these throw warnings for runtime-* package builds + ...treeShakenDeps + ] + } + + // we are bundling forked consolidate.js in compiler-sfc which dynamically + // requires a ton of template engines which should be ignored. + let cjsIgnores = [] + if (pkg.name === '@vue/compiler-sfc') { + cjsIgnores = [ + ...Object.keys(consolidatePkg.devDependencies), + 'vm', + 'crypto', + 'react-dom/server', + 'teacup/lib/express', + 'arc-templates/dist/es5', + 'then-pug', + 'then-jade' + ] + } + + const nodePlugins = + (format === 'cjs' && Object.keys(pkg.devDependencies || {}).length) || + packageOptions.enableNonBrowserBranches + ? [ + commonJS({ + sourceMap: false, + ignore: cjsIgnores + }), + ...(format === 'cjs' ? [] : [polyfillNode()]), + nodeResolve() + ] + : [] + + if (format === 'cjs') { + nodePlugins.push(cjsReExportsPatchPlugin()) + } + + return { + input: resolve(entryFile), + // Global and Browser ESM builds inlines everything so that they can be + // used alone. + external, + plugins: [ + json({ + namedExports: false + }), + tsPlugin, + createReplacePlugin( + isProductionBuild, + isBundlerESMBuild, + isBrowserESMBuild, + // isBrowserBuild? + (isGlobalBuild || isBrowserESMBuild || isBundlerESMBuild) && + !packageOptions.enableNonBrowserBranches, + isGlobalBuild, + isNodeBuild, + isCompatBuild, + isServerRenderer + ), + ...nodePlugins, + ...plugins + ], + output, + onwarn: (msg, warn) => { + if (!/Circular/.test(msg)) { + warn(msg) + } + }, + treeshake: { + moduleSideEffects: false + } + } +} + +function createReplacePlugin( + isProduction, + isBundlerESMBuild, + isBrowserESMBuild, + isBrowserBuild, + isGlobalBuild, + isNodeBuild, + isCompatBuild, + isServerRenderer +) { + const replacements = { + __COMMIT__: `"${process.env.COMMIT}"`, + __VERSION__: `"${masterVersion}"`, + __DEV__: isBundlerESMBuild + ? // preserve to be handled by bundlers + `(process.env.NODE_ENV !== 'production')` + : // hard coded dev/prod builds + !isProduction, + // this is only used during Vue's internal tests + __TEST__: false, + // If the build is expected to run directly in the browser (global / esm builds) + __BROWSER__: isBrowserBuild, + __GLOBAL__: isGlobalBuild, + __ESM_BUNDLER__: isBundlerESMBuild, + __ESM_BROWSER__: isBrowserESMBuild, + // is targeting Node (SSR)? + __NODE_JS__: isNodeBuild, + // need SSR-specific branches? + __SSR__: isNodeBuild || isBundlerESMBuild || isServerRenderer, + + // for compiler-sfc browser build inlined deps + ...(isBrowserESMBuild + ? { + 'process.env': '({})', + 'process.platform': '""', + 'process.stdout': 'null' + } + : {}), + + // 2.x compat build + __COMPAT__: isCompatBuild, + + // feature flags + __FEATURE_SUSPENSE__: true, + __FEATURE_OPTIONS_API__: isBundlerESMBuild ? `__VUE_OPTIONS_API__` : true, + __FEATURE_PROD_DEVTOOLS__: isBundlerESMBuild + ? `__VUE_PROD_DEVTOOLS__` + : false, + ...(isProduction && isBrowserBuild + ? { + 'context.onError(': `/*#__PURE__*/ context.onError(`, + 'emitError(': `/*#__PURE__*/ emitError(`, + 'createCompilerError(': `/*#__PURE__*/ createCompilerError(`, + 'createDOMCompilerError(': `/*#__PURE__*/ createDOMCompilerError(` + } + : {}) + } + // allow inline overrides like + //__RUNTIME_COMPILE__=true yarn build runtime-core + Object.keys(replacements).forEach(key => { + if (key in process.env) { + replacements[key] = process.env[key] + } + }) + return replace({ + // @ts-ignore + values: replacements, + preventAssignment: true + }) +} + +function createProductionConfig(format) { + return createConfig(format, { + file: resolve(`dist/${name}.${format}.prod.js`), + format: outputConfigs[format].format + }) +} + +function createMinifiedConfig(format) { + return createConfig( + format, + { + file: outputConfigs[format].file.replace(/\.js$/, '.prod.js'), + format: outputConfigs[format].format + }, + [ + terser({ + module: /^esm/.test(format), + compress: { + ecma: 2015, + pure_getters: true + }, + safari10: true + }) + ] + ) +} + +// temporary patch for https://github.com/nodejs/cjs-module-lexer/issues/79 +// +// When importing a cjs module from esm, Node.js uses cjs-module-lexer to +// detect * re-exports from other packages. However, the detection logic is +// fragile and breaks when Rollup generates different code for the re-exports. +// We were locked on an old version of Rollup because of this. +// +// The latest versions of Node ships an updated version of cjs-module-lexer that +// has fixed https://github.com/nodejs/cjs-module-lexer/issues/38, however we +// still need to support older versions of Node that does not have the latest +// version of cjs-module-lexer (Node < 14.18) +// +// At the same time, we want to upgrade to Rollup 3 so we are not forever locked +// on an old version of Rollup. +// +// What this patch does: +// 1. Rewrite the for...in loop to Object.keys() so cjs-module-lexer can find it +// The for...in loop is only used when output.externalLiveBindings is set to +// false, and we do want to set it to false to avoid perf costs during SSR. +// 2. Also remove exports.hasOwnProperty check, which breaks the detection in +// Node.js versions that +// +// TODO in the future, we should no longer rely on this if we inline all deps +// in the main `vue` package. +function cjsReExportsPatchPlugin() { + const matcher = + /for \(var k in (\w+)\) {(\s+if \(k !== 'default') && !exports.hasOwnProperty\(k\)(\) exports\[k\] = (?:\w+)\[k\];\s+)}/ + return { + name: 'patch-cjs-re-exports', + renderChunk(code, _, options) { + if (matcher.test(code)) { + return code.replace(matcher, (_, r1, r2, r3) => { + return `Object.keys(${r1}).forEach(function(k) {${r2}${r3}});` + }) + } else if (options.file.endsWith('packages/vue/dist/vue.cjs.js')) { + // make sure we don't accidentally miss the rewrite in case Rollup + // changes the output again. + throw new Error('cjs build re-exports rewrite failed.') + } + } + } +} diff --git a/tsconfig.json b/tsconfig.json index 4f0b12dfb02..29c7aee3fe7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,6 +13,7 @@ "noUnusedLocals": true, "experimentalDecorators": true, "resolveJsonModule": true, + "isolatedModules": true, "esModuleInterop": true, "removeComments": false, "jsx": "preserve", From f87f788e7c5ccc7de058368c26dc2a7beddee188 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 2 Feb 2023 16:26:12 +0800 Subject: [PATCH 002/999] chore: remove rpts2 --- package.json | 1 - pnpm-lock.yaml | 63 -------------------------------------------------- 2 files changed, 64 deletions(-) diff --git a/package.json b/package.json index 5b5cc49bc9a..d816699abe7 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,6 @@ "rollup-plugin-node-builtins": "^2.1.2", "rollup-plugin-node-globals": "^1.4.0", "rollup-plugin-polyfill-node": "^0.11.0", - "rollup-plugin-typescript2": "^0.34.1", "semver": "^7.3.2", "serve": "^12.0.0", "simple-git-hooks": "^2.8.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26d700396ab..4c8628776f2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,7 +44,6 @@ importers: rollup-plugin-node-builtins: ^2.1.2 rollup-plugin-node-globals: ^1.4.0 rollup-plugin-polyfill-node: ^0.11.0 - rollup-plugin-typescript2: ^0.34.1 semver: ^7.3.2 serve: ^12.0.0 simple-git-hooks: ^2.8.1 @@ -96,7 +95,6 @@ importers: rollup-plugin-node-builtins: 2.1.2 rollup-plugin-node-globals: 1.4.0 rollup-plugin-polyfill-node: 0.11.0_rollup@3.10.0 - rollup-plugin-typescript2: 0.34.1_ptqpi7h52bezadqasfefyop2ny semver: 7.3.5 serve: 12.0.1 simple-git-hooks: 2.8.1 @@ -1190,14 +1188,6 @@ packages: terser: 5.15.1 dev: true - /@rollup/pluginutils/4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - /@rollup/pluginutils/5.0.2_rollup@3.10.0: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} @@ -3164,15 +3154,6 @@ packages: to-regex-range: 5.0.1 dev: true - /find-cache-dir/3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - dev: true - /find-up/2.1.0: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} @@ -3217,15 +3198,6 @@ packages: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} dev: true - /fs-extra/10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - dependencies: - graceful-fs: 4.2.10 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true - /fs-extra/7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -4071,14 +4043,6 @@ packages: graceful-fs: 4.2.10 dev: true - /jsonfile/6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.0 - optionalDependencies: - graceful-fs: 4.2.10 - dev: true - /jsonparse/1.3.1: resolution: {integrity: sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=} engines: {'0': node >= 0.2.0} @@ -4959,13 +4923,6 @@ packages: engines: {node: '>=4'} dev: true - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: true - /pkg-types/1.0.1: resolution: {integrity: sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==} dependencies: @@ -5578,21 +5535,6 @@ packages: rollup: 3.10.0 dev: true - /rollup-plugin-typescript2/0.34.1_ptqpi7h52bezadqasfefyop2ny: - resolution: {integrity: sha512-P4cHLtGikESmqi1CA+tdMDUv8WbQV48mzPYt77TSTOPJpERyZ9TXdDgjSDix8Fkqce6soYz3+fa4lrC93IEkcw==} - peerDependencies: - rollup: '>=1.26.3' - typescript: '>=2.4.0' - dependencies: - '@rollup/pluginutils': 4.2.1 - find-cache-dir: 3.3.2 - fs-extra: 10.1.0 - rollup: 3.10.0 - semver: 7.3.8 - tslib: 2.4.0 - typescript: 4.8.2 - dev: true - /rollup-pluginutils/2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} dependencies: @@ -6337,11 +6279,6 @@ packages: engines: {node: '>= 4.0.0'} dev: true - /universalify/2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} - engines: {node: '>= 10.0.0'} - dev: true - /update-check/1.5.2: resolution: {integrity: sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==} dependencies: From 7bc7066952c9f9f0a211388340ac5b2996c7e5b8 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 2 Feb 2023 16:36:07 +0800 Subject: [PATCH 003/999] workflow: type check on commit --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index d816699abe7..6fd3d3ecc3c 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "size": "run-s size-global size-baseline", "size-global": "node scripts/build.mjs vue runtime-dom -f global -p", "size-baseline": "node scripts/build.mjs runtime-dom runtime-core reactivity shared -f esm-bundler && cd packages/size-check && vite build && node brotli", + "check": "tsc --incremental --noEmit", "lint": "eslint --cache --ext .ts packages/*/{src,__tests__}/**.ts", "format": "prettier --write --cache --parser typescript \"**/*.[tj]s?(x)\"", "format-check": "prettier --check --cache --parser typescript \"**/*.[tj]s?(x)\"", @@ -37,7 +38,7 @@ }, "types": "test-dts/index.d.ts", "simple-git-hooks": { - "pre-commit": "pnpm lint-staged", + "pre-commit": "pnpm lint-staged && pnpm check", "commit-msg": "node scripts/verifyCommit.mjs" }, "lint-staged": { From e22b5c510de9f6048ab7997f347e0e210f8d38cc Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 2 Feb 2023 22:13:53 +0800 Subject: [PATCH 004/999] chore: remove hanging slash from import --- packages/compiler-core/src/transforms/transformSlotOutlet.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/compiler-core/src/transforms/transformSlotOutlet.ts b/packages/compiler-core/src/transforms/transformSlotOutlet.ts index 409bfabb6ed..5fc0af5f7be 100644 --- a/packages/compiler-core/src/transforms/transformSlotOutlet.ts +++ b/packages/compiler-core/src/transforms/transformSlotOutlet.ts @@ -11,7 +11,7 @@ import { isSlotOutlet, isStaticArgOf, isStaticExp } from '../utils' import { buildProps, PropsExpression } from './transformElement' import { createCompilerError, ErrorCodes } from '../errors' import { RENDER_SLOT } from '../runtimeHelpers' -import { camelize } from '@vue/shared/' +import { camelize } from '@vue/shared' export const transformSlotOutlet: NodeTransform = (node, context) => { if (isSlotOutlet(node)) { From 40aa7d8040f2eb821b82267ceda060f734ada43a Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 05:00:06 +0800 Subject: [PATCH 005/999] build: refactor rollup config --- rollup.config.mjs | 329 ++++++++++++++++++++------------------------ scripts/aliases.mjs | 25 ++++ vitest.config.ts | 24 +--- 3 files changed, 179 insertions(+), 199 deletions(-) create mode 100644 scripts/aliases.mjs diff --git a/rollup.config.mjs b/rollup.config.mjs index 9d0d8fe8c6b..aec513cc3c5 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -12,6 +12,7 @@ import { nodeResolve } from '@rollup/plugin-node-resolve' import terser from '@rollup/plugin-terser' import esbuild from 'rollup-plugin-esbuild' import alias from '@rollup/plugin-alias' +import { entries } from './scripts/aliases.mjs' if (!process.env.TARGET) { throw new Error('TARGET package must be specified via --environment flag.') @@ -31,9 +32,6 @@ const pkg = require(resolve(`package.json`)) const packageOptions = pkg.buildOptions || {} const name = packageOptions.filename || path.basename(packageDir) -// ensure TS checks only once for each build -let hasTSChecked = false - const outputConfigs = { 'esm-bundler': { file: resolve(`dist/${name}.esm-bundler.js`), @@ -104,6 +102,9 @@ function createConfig(format, output, plugins = []) { const isGlobalBuild = /global/.test(format) const isCompatPackage = pkg.name === '@vue/compat' const isCompatBuild = !!packageOptions.compat + const isBrowserBuild = + (isGlobalBuild || isBrowserESMBuild || isBundlerESMBuild) && + !packageOptions.enableNonBrowserBranches output.exports = isCompatPackage ? 'auto' : 'named' if (isNodeBuild) { @@ -116,42 +117,6 @@ function createConfig(format, output, plugins = []) { output.name = packageOptions.name } - // package aliases - // TODO reuse between rollup and vitest - const resolveEntryForPkg = p => - path.resolve( - fileURLToPath(import.meta.url), - `../packages/${p}/src/index.ts` - ) - const dirs = readdirSync(new URL('./packages', import.meta.url)) - const entries = { - vue: resolveEntryForPkg('vue'), - 'vue/compiler-sfc': resolveEntryForPkg('compiler-sfc'), - 'vue/server-renderer': resolveEntryForPkg('server-renderer'), - '@vue/compat': resolveEntryForPkg('vue-compat') - } - for (const dir of dirs) { - const key = `@vue/${dir}` - if (dir !== 'vue' && !(key in entries)) { - entries[key] = resolveEntryForPkg(dir) - } - } - const aliasPlugin = alias({ - entries - }) - - const tsPlugin = esbuild({ - tsconfig: path.resolve(__dirname, 'tsconfig.json'), - sourceMap: output.sourcemap, - minify: false, - target: isServerRenderer || isNodeBuild ? 'es2019' : 'es2015' - }) - - // we only need to check TS and generate declarations once for each build. - // it also seems to run into weird issues when checking multiple times - // during a single build. - hasTSChecked = true - let entryFile = /runtime$/.test(format) ? `src/runtime.ts` : `src/index.ts` // the compat build needs both default AND named exports. This will cause @@ -163,85 +128,170 @@ function createConfig(format, output, plugins = []) { : `src/esm-index.ts` } - let external = [] - const treeShakenDeps = ['source-map', '@babel/parser', 'estree-walker'] + function resolveDefine() { + const replacements = { + __COMMIT__: `"${process.env.COMMIT}"`, + __VERSION__: `"${masterVersion}"`, + // this is only used during Vue's internal tests + __TEST__: `false`, + // If the build is expected to run directly in the browser (global / esm builds) + __BROWSER__: String(isBrowserBuild), + __GLOBAL__: String(isGlobalBuild), + __ESM_BUNDLER__: String(isBundlerESMBuild), + __ESM_BROWSER__: String(isBrowserESMBuild), + // is targeting Node (SSR)? + __NODE_JS__: String(isNodeBuild), + // need SSR-specific branches? + __SSR__: String(isNodeBuild || isBundlerESMBuild || isServerRenderer), + + // 2.x compat build + __COMPAT__: String(isCompatBuild), + + // feature flags + __FEATURE_SUSPENSE__: `true`, + __FEATURE_OPTIONS_API__: isBundlerESMBuild + ? `__VUE_OPTIONS_API__` + : `true`, + __FEATURE_PROD_DEVTOOLS__: isBundlerESMBuild + ? `__VUE_PROD_DEVTOOLS__` + : `false` + } - if (isGlobalBuild || isBrowserESMBuild || isCompatPackage) { - if (!packageOptions.enableNonBrowserBranches) { - // normal browser builds - non-browser only imports are tree-shaken, - // they are only listed here to suppress warnings. - external = treeShakenDeps + if (!isBundlerESMBuild) { + // hard coded dev/prod builds + // @ts-ignore + replacements.__DEV__ = String(!isProductionBuild) } - } else { - // Node / esm-bundler builds. - // externalize all direct deps unless it's the compat build. - external = [ - ...Object.keys(pkg.dependencies || {}), - ...Object.keys(pkg.peerDependencies || {}), - // for @vue/compiler-sfc / server-renderer - ...['path', 'url', 'stream'], - // somehow these throw warnings for runtime-* package builds - ...treeShakenDeps - ] + + // allow inline overrides like + //__RUNTIME_COMPILE__=true pnpm build runtime-core + Object.keys(replacements).forEach(key => { + if (key in process.env) { + replacements[key] = process.env[key] + } + }) + return replacements } - // we are bundling forked consolidate.js in compiler-sfc which dynamically - // requires a ton of template engines which should be ignored. - let cjsIgnores = [] - if (pkg.name === '@vue/compiler-sfc') { - cjsIgnores = [ - ...Object.keys(consolidatePkg.devDependencies), - 'vm', - 'crypto', - 'react-dom/server', - 'teacup/lib/express', - 'arc-templates/dist/es5', - 'then-pug', - 'then-jade' - ] + // esbuild define is a bit strict and only allows literal json or identifiers + // so we still need replace plugin in some cases + function resolveReplace() { + const replacements = {} + + if (isProductionBuild && isBrowserBuild) { + Object.assign(replacements, { + 'context.onError(': `/*#__PURE__*/ context.onError(`, + 'emitError(': `/*#__PURE__*/ emitError(`, + 'createCompilerError(': `/*#__PURE__*/ createCompilerError(`, + 'createDOMCompilerError(': `/*#__PURE__*/ createDOMCompilerError(` + }) + } + + if (isBundlerESMBuild) { + Object.assign(replacements, { + // preserve to be handled by bundlers + __DEV__: `(process.env.NODE_ENV !== 'production')` + }) + } + + // for compiler-sfc browser build inlined deps + if (isBrowserESMBuild) { + Object.assign(replacements, { + 'process.env': '({})', + 'process.platform': '""', + 'process.stdout': 'null' + }) + } + + if (Object.keys(replacements).length) { + // @ts-ignore + return [replace({ values: replacements, preventAssignment: true })] + } else { + return [] + } + } + + function resolveExternal() { + const treeShakenDeps = ['source-map', '@babel/parser', 'estree-walker'] + + if (isGlobalBuild || isBrowserESMBuild || isCompatPackage) { + if (!packageOptions.enableNonBrowserBranches) { + // normal browser builds - non-browser only imports are tree-shaken, + // they are only listed here to suppress warnings. + return treeShakenDeps + } + } else { + // Node / esm-bundler builds. + // externalize all direct deps unless it's the compat build. + return [ + ...Object.keys(pkg.dependencies || {}), + ...Object.keys(pkg.peerDependencies || {}), + // for @vue/compiler-sfc / server-renderer + ...['path', 'url', 'stream'], + // somehow these throw warnings for runtime-* package builds + ...treeShakenDeps + ] + } } - const nodePlugins = - (format === 'cjs' && Object.keys(pkg.devDependencies || {}).length) || - packageOptions.enableNonBrowserBranches - ? [ - commonJS({ - sourceMap: false, - ignore: cjsIgnores - }), - ...(format === 'cjs' ? [] : [polyfillNode()]), - nodeResolve() - ] - : [] - - if (format === 'cjs') { - nodePlugins.push(cjsReExportsPatchPlugin()) + function resolveNodePlugins() { + // we are bundling forked consolidate.js in compiler-sfc which dynamically + // requires a ton of template engines which should be ignored. + let cjsIgnores = [] + if (pkg.name === '@vue/compiler-sfc') { + cjsIgnores = [ + ...Object.keys(consolidatePkg.devDependencies), + 'vm', + 'crypto', + 'react-dom/server', + 'teacup/lib/express', + 'arc-templates/dist/es5', + 'then-pug', + 'then-jade' + ] + } + + const nodePlugins = + (format === 'cjs' && Object.keys(pkg.devDependencies || {}).length) || + packageOptions.enableNonBrowserBranches + ? [ + commonJS({ + sourceMap: false, + ignore: cjsIgnores + }), + ...(format === 'cjs' ? [] : [polyfillNode()]), + nodeResolve() + ] + : [] + + if (format === 'cjs') { + nodePlugins.push(cjsReExportsPatchPlugin()) + } + + return nodePlugins } return { input: resolve(entryFile), // Global and Browser ESM builds inlines everything so that they can be // used alone. - external, + external: resolveExternal(), plugins: [ json({ namedExports: false }), - aliasPlugin, - tsPlugin, - createReplacePlugin( - isProductionBuild, - isBundlerESMBuild, - isBrowserESMBuild, - // isBrowserBuild? - (isGlobalBuild || isBrowserESMBuild || isBundlerESMBuild) && - !packageOptions.enableNonBrowserBranches, - isGlobalBuild, - isNodeBuild, - isCompatBuild, - isServerRenderer - ), - ...nodePlugins, + alias({ + entries + }), + ...resolveReplace(), + esbuild({ + tsconfig: path.resolve(__dirname, 'tsconfig.json'), + sourceMap: output.sourcemap, + minify: false, + target: isServerRenderer || isNodeBuild ? 'es2019' : 'es2015', + define: resolveDefine() + }), + ...resolveNodePlugins(), ...plugins ], output, @@ -256,81 +306,6 @@ function createConfig(format, output, plugins = []) { } } -function createReplacePlugin(...args) { - return replace({ - // @ts-ignore - values: createReplacements(...args), - preventAssignment: true - }) -} - -function createReplacements( - isProduction, - isBundlerESMBuild, - isBrowserESMBuild, - isBrowserBuild, - isGlobalBuild, - isNodeBuild, - isCompatBuild, - isServerRenderer -) { - const replacements = { - __COMMIT__: `"${process.env.COMMIT}"`, - __VERSION__: `"${masterVersion}"`, - __DEV__: isBundlerESMBuild - ? // preserve to be handled by bundlers - `(process.env.NODE_ENV !== 'production')` - : // hard coded dev/prod builds - String(!isProduction), - // this is only used during Vue's internal tests - __TEST__: `false`, - // If the build is expected to run directly in the browser (global / esm builds) - __BROWSER__: isBrowserBuild, - __GLOBAL__: isGlobalBuild, - __ESM_BUNDLER__: isBundlerESMBuild, - __ESM_BROWSER__: isBrowserESMBuild, - // is targeting Node (SSR)? - __NODE_JS__: isNodeBuild, - // need SSR-specific branches? - __SSR__: isNodeBuild || isBundlerESMBuild || isServerRenderer, - - // for compiler-sfc browser build inlined deps - ...(isBrowserESMBuild - ? { - 'process.env': '({})', - 'process.platform': '""', - 'process.stdout': 'null' - } - : {}), - - // 2.x compat build - __COMPAT__: isCompatBuild, - - // feature flags - __FEATURE_SUSPENSE__: `true`, - __FEATURE_OPTIONS_API__: isBundlerESMBuild ? `__VUE_OPTIONS_API__` : `true`, - __FEATURE_PROD_DEVTOOLS__: isBundlerESMBuild - ? `__VUE_PROD_DEVTOOLS__` - : `false`, - ...(isProduction && isBrowserBuild - ? { - 'context.onError(': `/*#__PURE__*/ context.onError(`, - 'emitError(': `/*#__PURE__*/ emitError(`, - 'createCompilerError(': `/*#__PURE__*/ createCompilerError(`, - 'createDOMCompilerError(': `/*#__PURE__*/ createDOMCompilerError(` - } - : {}) - } - // allow inline overrides like - //__RUNTIME_COMPILE__=true pnpm build runtime-core - Object.keys(replacements).forEach(key => { - if (key in process.env) { - replacements[key] = process.env[key] - } - }) - return replacements -} - function createProductionConfig(format) { return createConfig(format, { file: resolve(`dist/${name}.${format}.prod.js`), diff --git a/scripts/aliases.mjs b/scripts/aliases.mjs new file mode 100644 index 00000000000..0d3c20d7e4b --- /dev/null +++ b/scripts/aliases.mjs @@ -0,0 +1,25 @@ +// @ts-check +// these aliases are shared between vitest and rollup +import { readdirSync } from 'node:fs' +import path from 'node:path' +import { fileURLToPath } from 'node:url' + +const resolveEntryForPkg = p => + path.resolve(fileURLToPath(import.meta.url), `../../packages/${p}/src/index.ts`) + +const dirs = readdirSync(new URL('../packages', import.meta.url)) + +const entries = { + vue: resolveEntryForPkg('vue'), + 'vue/compiler-sfc': resolveEntryForPkg('compiler-sfc'), + 'vue/server-renderer': resolveEntryForPkg('server-renderer'), + '@vue/compat': resolveEntryForPkg('vue-compat') +} +for (const dir of dirs) { + const key = `@vue/${dir}` + if (dir !== 'vue' && !(key in entries)) { + entries[key] = resolveEntryForPkg(dir) + } +} + +export { entries } diff --git a/vitest.config.ts b/vitest.config.ts index 9146ec353c9..863fd70f7e5 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,25 +1,5 @@ import { configDefaults, defineConfig, UserConfig } from 'vitest/config' -import path from 'node:path' -import { fileURLToPath } from 'node:url' -import { readdirSync } from 'node:fs' - -const resolve = p => - path.resolve(fileURLToPath(import.meta.url), `../packages/${p}/src/index.ts`) -const dirs = readdirSync(new URL('./packages', import.meta.url)) - -const alias = { - vue: resolve('vue'), - 'vue/compiler-sfc': resolve('compiler-sfc'), - 'vue/server-renderer': resolve('server-renderer'), - '@vue/compat': resolve('vue-compat') -} - -for (const dir of dirs) { - const key = `@vue/${dir}` - if (dir !== 'vue' && !(key in alias)) { - alias[key] = resolve(dir) - } -} +import { entries } from './scripts/aliases.mjs' export default defineConfig({ define: { @@ -38,7 +18,7 @@ export default defineConfig({ __COMPAT__: true }, resolve: { - alias + alias: entries }, test: { globals: true, From 53e3533b75adc32f979adde34bde3b581e48084b Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 05:47:40 +0800 Subject: [PATCH 006/999] chore: bump deps --- package.json | 4 +- packages/compiler-core/package.json | 2 +- packages/compiler-sfc/package.json | 4 +- packages/compiler-sfc/src/compileScript.ts | 10 +- packages/compiler-sfc/src/rewriteDefault.ts | 10 +- packages/reactivity-transform/package.json | 8 +- .../src/reactivityTransform.ts | 2 +- packages/reactivity/src/collectionHandlers.ts | 8 +- .../runtime-core/__tests__/apiOptions.spec.ts | 2 +- .../__tests__/webStream.spec.ts | 1 + packages/vue/__tests__/e2e/e2eUtils.ts | 8 +- pnpm-lock.yaml | 1861 ++++++++--------- rollup.config.mjs | 1 - rollup.original.config.mjs | 379 ---- tsconfig.json | 1 + 15 files changed, 937 insertions(+), 1364 deletions(-) delete mode 100644 rollup.original.config.mjs diff --git a/package.json b/package.json index 6fd3d3ecc3c..161f0322fe1 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "node": ">=16.11.0" }, "devDependencies": { - "@babel/types": "^7.12.0", + "@babel/types": "^7.20.7", "@esbuild-plugins/node-modules-polyfill": "^0.1.4", "@microsoft/api-extractor": "~7.20.0", "@rollup/plugin-alias": "^4.0.3", @@ -100,7 +100,7 @@ "terser": "^5.15.1", "todomvc-app-css": "^2.3.0", "tslib": "^2.4.0", - "typescript": "^4.8.0", + "typescript": "^4.9.0", "vite": "^4.0.4", "vitest": "^0.28.2", "vue": "workspace:*" diff --git a/packages/compiler-core/package.json b/packages/compiler-core/package.json index 3be51838050..a38e2679cab 100644 --- a/packages/compiler-core/package.json +++ b/packages/compiler-core/package.json @@ -33,7 +33,7 @@ "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-core#readme", "dependencies": { "@vue/shared": "3.2.47", - "@babel/parser": "^7.16.4", + "@babel/parser": "^7.20.15", "estree-walker": "^2.0.2", "source-map": "^0.6.1" }, diff --git a/packages/compiler-sfc/package.json b/packages/compiler-sfc/package.json index 308614a6c38..28b6b89f1ac 100644 --- a/packages/compiler-sfc/package.json +++ b/packages/compiler-sfc/package.json @@ -32,14 +32,14 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme", "dependencies": { - "@babel/parser": "^7.16.4", + "@babel/parser": "^7.20.15", "@vue/compiler-core": "3.2.47", "@vue/compiler-dom": "3.2.47", "@vue/compiler-ssr": "3.2.47", "@vue/reactivity-transform": "3.2.47", "@vue/shared": "3.2.47", "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", + "magic-string": "^0.27.0", "source-map": "^0.6.1", "postcss": "^8.1.10" }, diff --git a/packages/compiler-sfc/src/compileScript.ts b/packages/compiler-sfc/src/compileScript.ts index 322f89b0805..b7e4c0ea778 100644 --- a/packages/compiler-sfc/src/compileScript.ts +++ b/packages/compiler-sfc/src/compileScript.ts @@ -365,7 +365,7 @@ export function compileScript( if (node.trailingComments && node.trailingComments.length > 0) { const lastCommentNode = node.trailingComments[node.trailingComments.length - 1] - end = lastCommentNode.end + startOffset + end = lastCommentNode.end! + startOffset } // locate the end of whitespace between this statement and the next while (end <= source.length) { @@ -2026,14 +2026,18 @@ function extractEventNames( ) { const typeNode = eventName.typeAnnotation.typeAnnotation if (typeNode.type === 'TSLiteralType') { - if (typeNode.literal.type !== 'UnaryExpression') { + if ( + typeNode.literal.type !== 'UnaryExpression' && + typeNode.literal.type !== 'TemplateLiteral' + ) { emits.add(String(typeNode.literal.value)) } } else if (typeNode.type === 'TSUnionType') { for (const t of typeNode.types) { if ( t.type === 'TSLiteralType' && - t.literal.type !== 'UnaryExpression' + t.literal.type !== 'UnaryExpression' && + t.literal.type !== 'TemplateLiteral' ) { emits.add(String(t.literal.value)) } diff --git a/packages/compiler-sfc/src/rewriteDefault.ts b/packages/compiler-sfc/src/rewriteDefault.ts index b3f57a0bc4b..3efd8cefac2 100644 --- a/packages/compiler-sfc/src/rewriteDefault.ts +++ b/packages/compiler-sfc/src/rewriteDefault.ts @@ -58,7 +58,7 @@ export function rewriteDefault( ) { if (node.source) { if (specifier.local.name === 'default') { - const end = specifierEnd(input, specifier.local.end!, node.end) + const end = specifierEnd(input, specifier.local.end!, node.end!) s.prepend( `import { default as __VUE_DEFAULT__ } from '${node.source.value}'\n` ) @@ -66,7 +66,11 @@ export function rewriteDefault( s.append(`\nconst ${as} = __VUE_DEFAULT__`) continue } else { - const end = specifierEnd(input, specifier.exported.end!, node.end) + const end = specifierEnd( + input, + specifier.exported.end!, + node.end! + ) s.prepend( `import { ${input.slice( specifier.local.start!, @@ -78,7 +82,7 @@ export function rewriteDefault( continue } } - const end = specifierEnd(input, specifier.end!, node.end) + const end = specifierEnd(input, specifier.end!, node.end!) s.overwrite(specifier.start!, end, ``) s.append(`\nconst ${as} = ${specifier.local.name}`) } diff --git a/packages/reactivity-transform/package.json b/packages/reactivity-transform/package.json index 0697f4fa690..5c3e7694422 100644 --- a/packages/reactivity-transform/package.json +++ b/packages/reactivity-transform/package.json @@ -28,14 +28,14 @@ }, "homepage": "https://github.com/vuejs/core/tree/dev/packages/reactivity-transform#readme", "dependencies": { - "@babel/parser": "^7.16.4", + "@babel/parser": "^7.20.15", "@vue/compiler-core": "3.2.47", "@vue/shared": "3.2.47", "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" + "magic-string": "^0.27.0" }, "devDependencies": { - "@babel/core": "^7.16.0", - "@babel/types": "^7.16.0" + "@babel/core": "^7.20.12", + "@babel/types": "^7.20.7" } } diff --git a/packages/reactivity-transform/src/reactivityTransform.ts b/packages/reactivity-transform/src/reactivityTransform.ts index f1d5d8916fd..692426bf70b 100644 --- a/packages/reactivity-transform/src/reactivityTransform.ts +++ b/packages/reactivity-transform/src/reactivityTransform.ts @@ -395,7 +395,7 @@ export function transformAST( defaultValue = p.value.right } } else { - key = p.computed ? p.key : (p.key as Identifier).name + key = p.computed ? (p.key as Expression) : (p.key as Identifier).name if (p.value.type === 'Identifier') { // { foo: bar } nameId = p.value diff --git a/packages/reactivity/src/collectionHandlers.ts b/packages/reactivity/src/collectionHandlers.ts index 09365f96021..381bbad6c28 100644 --- a/packages/reactivity/src/collectionHandlers.ts +++ b/packages/reactivity/src/collectionHandlers.ts @@ -228,7 +228,7 @@ function createReadonlyMethod(type: TriggerOpTypes): Function { } function createInstrumentations() { - const mutableInstrumentations: Record = { + const mutableInstrumentations: Record = { get(this: MapTypes, key: unknown) { return get(this, key) }, @@ -243,7 +243,7 @@ function createInstrumentations() { forEach: createForEach(false, false) } - const shallowInstrumentations: Record = { + const shallowInstrumentations: Record = { get(this: MapTypes, key: unknown) { return get(this, key, false, true) }, @@ -258,7 +258,7 @@ function createInstrumentations() { forEach: createForEach(false, true) } - const readonlyInstrumentations: Record = { + const readonlyInstrumentations: Record = { get(this: MapTypes, key: unknown) { return get(this, key, true) }, @@ -275,7 +275,7 @@ function createInstrumentations() { forEach: createForEach(true, false) } - const shallowReadonlyInstrumentations: Record = { + const shallowReadonlyInstrumentations: Record = { get(this: MapTypes, key: unknown) { return get(this, key, true, true) }, diff --git a/packages/runtime-core/__tests__/apiOptions.spec.ts b/packages/runtime-core/__tests__/apiOptions.spec.ts index c143a9dcc5e..e658afa0701 100644 --- a/packages/runtime-core/__tests__/apiOptions.spec.ts +++ b/packages/runtime-core/__tests__/apiOptions.spec.ts @@ -58,7 +58,7 @@ describe('api: options', () => { bar(): number { return this.foo + 1 }, - baz: (vm): number => vm.bar + 1 + baz: (vm: any): number => vm.bar + 1 }, render() { return h( diff --git a/packages/server-renderer/__tests__/webStream.spec.ts b/packages/server-renderer/__tests__/webStream.spec.ts index 97588fe4e13..1b5c054c5ae 100644 --- a/packages/server-renderer/__tests__/webStream.spec.ts +++ b/packages/server-renderer/__tests__/webStream.spec.ts @@ -3,6 +3,7 @@ import { ReadableStream, TransformStream } from 'stream/web' import { pipeToWebWritable, renderToWebStream } from '../src' beforeEach(() => { + // @ts-ignore global.ReadableStream = ReadableStream }) diff --git a/packages/vue/__tests__/e2e/e2eUtils.ts b/packages/vue/__tests__/e2e/e2eUtils.ts index 426257f51c5..182cf021f17 100644 --- a/packages/vue/__tests__/e2e/e2eUtils.ts +++ b/packages/vue/__tests__/e2e/e2eUtils.ts @@ -1,4 +1,4 @@ -import puppeteer from 'puppeteer' +import puppeteer, { Browser, Page, ClickOptions } from 'puppeteer' export const E2E_TIMEOUT = 30 * 1000 @@ -25,8 +25,8 @@ export async function expectByPolling( } export function setupPuppeteer() { - let browser: puppeteer.Browser - let page: puppeteer.Page + let browser: Browser + let page: Page beforeAll(async () => { browser = await puppeteer.launch(puppeteerOptions) @@ -58,7 +58,7 @@ export function setupPuppeteer() { await browser.close() }) - async function click(selector: string, options?: puppeteer.ClickOptions) { + async function click(selector: string, options?: ClickOptions) { await page.click(selector, options) } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4c8628776f2..b65ba02501e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,7 +4,7 @@ importers: .: specifiers: - '@babel/types': ^7.12.0 + '@babel/types': ^7.20.7 '@esbuild-plugins/node-modules-polyfill': ^0.1.4 '@microsoft/api-extractor': ~7.20.0 '@rollup/plugin-alias': ^4.0.3 @@ -55,71 +55,71 @@ importers: vitest: ^0.28.2 vue: workspace:* devDependencies: - '@babel/types': 7.16.0 - '@esbuild-plugins/node-modules-polyfill': 0.1.4_esbuild@0.17.4 + '@babel/types': 7.20.7 + '@esbuild-plugins/node-modules-polyfill': 0.1.4_esbuild@0.17.5 '@microsoft/api-extractor': 7.20.1 - '@rollup/plugin-alias': 4.0.3_rollup@3.10.0 - '@rollup/plugin-commonjs': 23.0.2_rollup@3.10.0 - '@rollup/plugin-json': 5.0.1_rollup@3.10.0 - '@rollup/plugin-node-resolve': 15.0.1_rollup@3.10.0 - '@rollup/plugin-replace': 5.0.1_rollup@3.10.0 - '@rollup/plugin-terser': 0.1.0_rollup@3.10.0 + '@rollup/plugin-alias': 4.0.3_rollup@3.10.1 + '@rollup/plugin-commonjs': 23.0.7_rollup@3.10.1 + '@rollup/plugin-json': 5.0.2_rollup@3.10.1 + '@rollup/plugin-node-resolve': 15.0.1_rollup@3.10.1 + '@rollup/plugin-replace': 5.0.2_rollup@3.10.1 + '@rollup/plugin-terser': 0.1.0_rollup@3.10.1 '@types/hash-sum': 1.0.0 - '@types/node': 16.11.12 - '@typescript-eslint/parser': 5.23.0_td6yqss6ra3qoebludh4ctrhym - '@vitest/coverage-istanbul': 0.28.2_jsdom@21.1.0+terser@5.15.1 + '@types/node': 16.18.11 + '@typescript-eslint/parser': 5.50.0_jofidmxrjzhj7l6vknpw5ecvfe + '@vitest/coverage-istanbul': 0.28.3_jsdom@21.1.0+terser@5.16.2 '@vue/consolidate': 0.17.3 '@vue/reactivity': link:packages/reactivity '@vue/runtime-core': link:packages/runtime-core '@vue/runtime-dom': link:packages/runtime-dom - brotli: 1.3.2 + brotli: 1.3.3 chalk: 4.1.2 - conventional-changelog-cli: 2.1.1 - csstype: 3.0.10 + conventional-changelog-cli: 2.2.2 + csstype: 3.1.1 enquirer: 2.3.6 - esbuild: 0.17.4 + esbuild: 0.17.5 eslint: 7.32.0 - eslint-plugin-jest: 27.2.1_td6yqss6ra3qoebludh4ctrhym + eslint-plugin-jest: 27.2.1_jofidmxrjzhj7l6vknpw5ecvfe execa: 4.1.0 jsdom: 21.1.0 lint-staged: 10.5.4 lodash: 4.17.21 - marked: 4.0.10 - minimist: 1.2.5 + marked: 4.2.12 + minimist: 1.2.7 npm-run-all: 4.1.5 - prettier: 2.7.1 + prettier: 2.8.3 pug: 3.0.2 - puppeteer: 19.2.2 - rollup: 3.10.0 - rollup-plugin-esbuild: 5.0.0_ejjt5bxqy7rglzzuwkobwucgry + puppeteer: 19.6.3 + rollup: 3.10.1 + rollup-plugin-esbuild: 5.0.0_vnogblvxo6egyqdp3slxc3bipy rollup-plugin-node-builtins: 2.1.2 rollup-plugin-node-globals: 1.4.0 - rollup-plugin-polyfill-node: 0.11.0_rollup@3.10.0 - semver: 7.3.5 + rollup-plugin-polyfill-node: 0.11.0_rollup@3.10.1 + semver: 7.3.8 serve: 12.0.1 simple-git-hooks: 2.8.1 - terser: 5.15.1 - todomvc-app-css: 2.4.1 - tslib: 2.4.0 - typescript: 4.8.2 - vite: 4.0.4_suj7upvbbzn7525gsozjyvtnxy - vitest: 0.28.2_jsdom@21.1.0+terser@5.15.1 + terser: 5.16.2 + todomvc-app-css: 2.4.2 + tslib: 2.5.0 + typescript: 4.9.5 + vite: 4.1.1_ghge5pqdvzsmxto52quo4r2say + vitest: 0.28.3_jsdom@21.1.0+terser@5.16.2 vue: link:packages/vue packages/compiler-core: specifiers: - '@babel/parser': ^7.16.4 + '@babel/parser': ^7.20.15 '@babel/types': ^7.16.0 '@vue/shared': 3.2.47 estree-walker: ^2.0.2 source-map: ^0.6.1 dependencies: - '@babel/parser': 7.16.4 + '@babel/parser': 7.20.15 '@vue/shared': link:../shared estree-walker: 2.0.2 source-map: 0.6.1 devDependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.20.7 packages/compiler-dom: specifiers: @@ -131,7 +131,7 @@ importers: packages/compiler-sfc: specifiers: - '@babel/parser': ^7.16.4 + '@babel/parser': ^7.20.15 '@babel/types': ^7.16.0 '@types/estree': ^0.0.48 '@types/lru-cache': ^5.1.0 @@ -144,7 +144,7 @@ importers: estree-walker: ^2.0.2 hash-sum: ^2.0.0 lru-cache: ^5.1.1 - magic-string: ^0.25.7 + magic-string: ^0.27.0 merge-source-map: ^1.1.0 postcss: ^8.1.10 postcss-modules: ^4.0.0 @@ -153,28 +153,28 @@ importers: sass: ^1.26.9 source-map: ^0.6.1 dependencies: - '@babel/parser': 7.16.4 + '@babel/parser': 7.20.15 '@vue/compiler-core': link:../compiler-core '@vue/compiler-dom': link:../compiler-dom '@vue/compiler-ssr': link:../compiler-ssr '@vue/reactivity-transform': link:../reactivity-transform '@vue/shared': link:../shared estree-walker: 2.0.2 - magic-string: 0.25.7 - postcss: 8.4.4 + magic-string: 0.27.0 + postcss: 8.4.21 source-map: 0.6.1 devDependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.20.7 '@types/estree': 0.0.48 '@types/lru-cache': 5.1.1 '@vue/consolidate': 0.17.3 hash-sum: 2.0.0 lru-cache: 5.1.1 merge-source-map: 1.1.0 - postcss-modules: 4.2.2_postcss@8.4.4 - postcss-selector-parser: 6.0.7 + postcss-modules: 4.3.1_postcss@8.4.21 + postcss-selector-parser: 6.0.11 pug: 3.0.2 - sass: 1.45.0 + sass: 1.58.0 packages/compiler-ssr: specifiers: @@ -192,22 +192,22 @@ importers: packages/reactivity-transform: specifiers: - '@babel/core': ^7.16.0 - '@babel/parser': ^7.16.4 - '@babel/types': ^7.16.0 + '@babel/core': ^7.20.12 + '@babel/parser': ^7.20.15 + '@babel/types': ^7.20.7 '@vue/compiler-core': 3.2.47 '@vue/shared': 3.2.47 estree-walker: ^2.0.2 - magic-string: ^0.25.7 + magic-string: ^0.27.0 dependencies: - '@babel/parser': 7.16.4 + '@babel/parser': 7.20.15 '@vue/compiler-core': link:../compiler-core '@vue/shared': link:../shared estree-walker: 2.0.2 - magic-string: 0.25.7 + magic-string: 0.27.0 devDependencies: - '@babel/core': 7.16.0 - '@babel/types': 7.16.0 + '@babel/core': 7.20.12 + '@babel/types': 7.20.7 packages/runtime-core: specifiers: @@ -225,7 +225,7 @@ importers: dependencies: '@vue/runtime-core': link:../runtime-core '@vue/shared': link:../shared - csstype: 2.6.19 + csstype: 2.6.21 packages/runtime-test: specifiers: @@ -252,13 +252,13 @@ importers: vite: ^4.0.0 vue: 3.2.47 dependencies: - '@vue/repl': 1.3.0_vue@packages+vue + '@vue/repl': 1.3.2_vue@packages+vue file-saver: 2.0.5 - jszip: 3.7.1 + jszip: 3.10.1 vue: link:../vue devDependencies: - '@vitejs/plugin-vue': 4.0.0_doo4xoh6xruc6b46m5hj3hbaky - vite: 4.0.4 + '@vitejs/plugin-vue': 4.0.0_sxsgywzkxpehjtnp6ortjz2zwi + vite: 4.1.1 packages/shared: specifiers: {} @@ -294,23 +294,24 @@ importers: estree-walker: ^2.0.2 source-map: ^0.6.1 dependencies: - '@babel/parser': 7.16.4 + '@babel/parser': 7.20.15 estree-walker: 2.0.2 source-map: 0.6.1 packages: - /@babel/code-frame/7.12.11: - resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} + /@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} dependencies: - '@babel/highlight': 7.16.0 + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.17 dev: true - /@babel/code-frame/7.16.0: - resolution: {integrity: sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==} - engines: {node: '>=6.9.0'} + /@babel/code-frame/7.12.11: + resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} dependencies: - '@babel/highlight': 7.16.0 + '@babel/highlight': 7.18.6 dev: true /@babel/code-frame/7.18.6: @@ -320,176 +321,138 @@ packages: '@babel/highlight': 7.18.6 dev: true - /@babel/compat-data/7.16.4: - resolution: {integrity: sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==} + /@babel/compat-data/7.20.14: + resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.16.0: - resolution: {integrity: sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==} + /@babel/core/7.20.12: + resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==} engines: {node: '>=6.9.0'} dependencies: + '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.18.6 - '@babel/generator': 7.16.0 - '@babel/helper-compilation-targets': 7.16.3_@babel+core@7.16.0 - '@babel/helper-module-transforms': 7.16.0 - '@babel/helpers': 7.16.3 - '@babel/parser': 7.16.4 - '@babel/template': 7.16.0 - '@babel/traverse': 7.16.3 - '@babel/types': 7.16.0 - convert-source-map: 1.8.0 + '@babel/generator': 7.20.14 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helpers': 7.20.13 + '@babel/parser': 7.20.15 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 + convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 - json5: 2.2.0 + json5: 2.2.3 semver: 6.3.0 - source-map: 0.5.7 transitivePeerDependencies: - supports-color dev: true - /@babel/generator/7.16.0: - resolution: {integrity: sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==} + /@babel/generator/7.20.14: + resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.20.7 + '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 - source-map: 0.5.7 dev: true - /@babel/helper-compilation-targets/7.16.3_@babel+core@7.16.0: - resolution: {integrity: sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==} + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.16.4 - '@babel/core': 7.16.0 - '@babel/helper-validator-option': 7.14.5 - browserslist: 4.18.1 + '@babel/compat-data': 7.20.14 + '@babel/core': 7.20.12 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.5 + lru-cache: 5.1.1 semver: 6.3.0 dev: true - /@babel/helper-function-name/7.16.0: - resolution: {integrity: sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-get-function-arity': 7.16.0 - '@babel/template': 7.16.0 - '@babel/types': 7.16.0 - dev: true - - /@babel/helper-get-function-arity/7.16.0: - resolution: {integrity: sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==} + /@babel/helper-environment-visitor/7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.16.0 dev: true - /@babel/helper-hoist-variables/7.16.0: - resolution: {integrity: sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==} + /@babel/helper-function-name/7.19.0: + resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/template': 7.20.7 + '@babel/types': 7.20.7 dev: true - /@babel/helper-member-expression-to-functions/7.16.0: - resolution: {integrity: sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==} + /@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.20.7 dev: true - /@babel/helper-module-imports/7.16.0: - resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==} + /@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.20.7 dev: true - /@babel/helper-module-transforms/7.16.0: - resolution: {integrity: sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==} + /@babel/helper-module-transforms/7.20.11: + resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-module-imports': 7.16.0 - '@babel/helper-replace-supers': 7.16.0 - '@babel/helper-simple-access': 7.16.0 - '@babel/helper-split-export-declaration': 7.16.0 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.16.0 - '@babel/traverse': 7.16.3 - '@babel/types': 7.16.0 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-optimise-call-expression/7.16.0: - resolution: {integrity: sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.16.0 - dev: true - - /@babel/helper-replace-supers/7.16.0: - resolution: {integrity: sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==} + /@babel/helper-simple-access/7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-member-expression-to-functions': 7.16.0 - '@babel/helper-optimise-call-expression': 7.16.0 - '@babel/traverse': 7.16.3 - '@babel/types': 7.16.0 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.20.7 dev: true - /@babel/helper-simple-access/7.16.0: - resolution: {integrity: sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==} + /@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.20.7 dev: true - /@babel/helper-split-export-declaration/7.16.0: - resolution: {integrity: sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.16.0 - dev: true - - /@babel/helper-validator-identifier/7.15.7: - resolution: {integrity: sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==} + /@babel/helper-string-parser/7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier/7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-option/7.14.5: - resolution: {integrity: sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==} + /@babel/helper-validator-option/7.18.6: + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.16.3: - resolution: {integrity: sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==} + /@babel/helpers/7.20.13: + resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.16.0 - '@babel/traverse': 7.16.3 - '@babel/types': 7.16.0 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight/7.16.0: - resolution: {integrity: sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.15.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} @@ -499,52 +462,54 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser/7.16.4: - resolution: {integrity: sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==} + /@babel/parser/7.20.15: + resolution: {integrity: sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.20.7 - /@babel/template/7.16.0: - resolution: {integrity: sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==} + /@babel/template/7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/parser': 7.16.4 - '@babel/types': 7.16.0 + '@babel/parser': 7.20.15 + '@babel/types': 7.20.7 dev: true - /@babel/traverse/7.16.3: - resolution: {integrity: sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==} + /@babel/traverse/7.20.13: + resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.16.0 - '@babel/helper-function-name': 7.16.0 - '@babel/helper-hoist-variables': 7.16.0 - '@babel/helper-split-export-declaration': 7.16.0 - '@babel/parser': 7.16.4 - '@babel/types': 7.16.0 + '@babel/generator': 7.20.14 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.20.15 + '@babel/types': 7.20.7 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.16.0: - resolution: {integrity: sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==} + /@babel/types/7.20.7: + resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.15.7 + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 - /@esbuild-plugins/node-modules-polyfill/0.1.4_esbuild@0.17.4: + /@esbuild-plugins/node-modules-polyfill/0.1.4_esbuild@0.17.5: resolution: {integrity: sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==} peerDependencies: esbuild: '*' dependencies: - esbuild: 0.17.4 + esbuild: 0.17.5 escape-string-regexp: 4.0.0 rollup-plugin-node-polyfills: 0.2.1 dev: true @@ -558,8 +523,8 @@ packages: dev: true optional: true - /@esbuild/android-arm/0.17.4: - resolution: {integrity: sha512-R9GCe2xl2XDSc2XbQB63mFiFXHIVkOP+ltIxICKXqUPrFX97z6Z7vONCLQM1pSOLGqfLrGi3B7nbhxmFY/fomg==} + /@esbuild/android-arm/0.17.5: + resolution: {integrity: sha512-crmPUzgCmF+qZXfl1YkiFoUta2XAfixR1tEnr/gXIixE+WL8Z0BGqfydP5oox0EUOgQMMRgtATtakyAcClQVqQ==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -576,8 +541,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64/0.17.4: - resolution: {integrity: sha512-91VwDrl4EpxBCiG6h2LZZEkuNvVZYJkv2T9gyLG/mhGG1qrM7i5SwUcg/hlSPnL/4hDT0TFcF35/XMGSn0bemg==} + /@esbuild/android-arm64/0.17.5: + resolution: {integrity: sha512-KHWkDqYAMmKZjY4RAN1PR96q6UOtfkWlTS8uEwWxdLtkRt/0F/csUhXIrVfaSIFxnscIBMPynGfhsMwQDRIBQw==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -594,8 +559,8 @@ packages: dev: true optional: true - /@esbuild/android-x64/0.17.4: - resolution: {integrity: sha512-mGSqhEPL7029XL7QHNPxPs15JVa02hvZvysUcyMP9UXdGFwncl2WU0bqx+Ysgzd+WAbv8rfNa73QveOxAnAM2w==} + /@esbuild/android-x64/0.17.5: + resolution: {integrity: sha512-8fI/AnIdmWz/+1iza2WrCw8kwXK9wZp/yZY/iS8ioC+U37yJCeppi9EHY05ewJKN64ASoBIseufZROtcFnX5GA==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -612,8 +577,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64/0.17.4: - resolution: {integrity: sha512-tTyJRM9dHvlMPt1KrBFVB5OW1kXOsRNvAPtbzoKazd5RhD5/wKlXk1qR2MpaZRYwf4WDMadt0Pv0GwxB41CVow==} + /@esbuild/darwin-arm64/0.17.5: + resolution: {integrity: sha512-EAvaoyIySV6Iif3NQCglUNpnMfHSUgC5ugt2efl3+QDntucJe5spn0udNZjTgNi6tKVqSceOw9tQ32liNZc1Xw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -630,8 +595,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64/0.17.4: - resolution: {integrity: sha512-phQuC2Imrb3TjOJwLN8EO50nb2FHe8Ew0OwgZDH1SV6asIPGudnwTQtighDF2EAYlXChLoMJwqjAp4vAaACq6w==} + /@esbuild/darwin-x64/0.17.5: + resolution: {integrity: sha512-ha7QCJh1fuSwwCgoegfdaljowwWozwTDjBgjD3++WAy/qwee5uUi1gvOg2WENJC6EUyHBOkcd3YmLDYSZ2TPPA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -648,8 +613,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64/0.17.4: - resolution: {integrity: sha512-oH6JUZkocgmjzzYaP5juERLpJQSwazdjZrTPgLRmAU2bzJ688x0vfMB/WTv4r58RiecdHvXOPC46VtsMy/mepg==} + /@esbuild/freebsd-arm64/0.17.5: + resolution: {integrity: sha512-VbdXJkn2aI2pQ/wxNEjEcnEDwPpxt3CWWMFYmO7CcdFBoOsABRy2W8F3kjbF9F/pecEUDcI3b5i2w+By4VQFPg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -666,8 +631,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64/0.17.4: - resolution: {integrity: sha512-U4iWGn/9TrAfpAdfd56eO0pRxIgb0a8Wj9jClrhT8hvZnOnS4dfMPW7o4fn15D/KqoiVYHRm43jjBaTt3g/2KA==} + /@esbuild/freebsd-x64/0.17.5: + resolution: {integrity: sha512-olgGYND1/XnnWxwhjtY3/ryjOG/M4WfcA6XH8dBTH1cxMeBemMODXSFhkw71Kf4TeZFFTN25YOomaNh0vq2iXg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -684,8 +649,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm/0.17.4: - resolution: {integrity: sha512-S2s9xWTGMTa/fG5EyMGDeL0wrWVgOSQcNddJWgu6rG1NCSXJHs76ZP9AsxjB3f2nZow9fWOyApklIgiTGZKhiw==} + /@esbuild/linux-arm/0.17.5: + resolution: {integrity: sha512-YBdCyQwA3OQupi6W2/WO4FnI+NWFWe79cZEtlbqSESOHEg7a73htBIRiE6uHPQe7Yp5E4aALv+JxkRLGEUL7tw==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -702,8 +667,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64/0.17.4: - resolution: {integrity: sha512-UkGfQvYlwOaeYJzZG4cLV0hCASzQZnKNktRXUo3/BMZvdau40AOz9GzmGA063n1piq6VrFFh43apRDQx8hMP2w==} + /@esbuild/linux-arm64/0.17.5: + resolution: {integrity: sha512-8a0bqSwu3OlLCfu2FBbDNgQyBYdPJh1B9PvNX7jMaKGC9/KopgHs37t+pQqeMLzcyRqG6z55IGNQAMSlCpBuqg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -720,8 +685,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32/0.17.4: - resolution: {integrity: sha512-3lqFi4VFo/Vwvn77FZXeLd0ctolIJH/uXkH3yNgEk89Eh6D3XXAC9/iTPEzeEpsNE5IqGIsFa5Z0iPeOh25IyA==} + /@esbuild/linux-ia32/0.17.5: + resolution: {integrity: sha512-uCwm1r/+NdP7vndctgq3PoZrnmhmnecWAr114GWMRwg2QMFFX+kIWnp7IO220/JLgnXK/jP7VKAFBGmeOYBQYQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -738,8 +703,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.17.4: - resolution: {integrity: sha512-HqpWZkVslDHIwdQ9D+gk7NuAulgQvRxF9no54ut/M55KEb3mi7sQS3GwpPJzSyzzP0UkjQVN7/tbk88/CaX4EQ==} + /@esbuild/linux-loong64/0.17.5: + resolution: {integrity: sha512-3YxhSBl5Sb6TtBjJu+HP93poBruFzgXmf3PVfIe4xOXMj1XpxboYZyw3W8BhoX/uwxzZz4K1I99jTE/5cgDT1g==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -756,8 +721,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el/0.17.4: - resolution: {integrity: sha512-d/nMCKKh/SVDbqR9ju+b78vOr0tNXtfBjcp5vfHONCCOAL9ad8gN9dC/u+UnH939pz7wO+0u/x9y1MaZcb/lKA==} + /@esbuild/linux-mips64el/0.17.5: + resolution: {integrity: sha512-Hy5Z0YVWyYHdtQ5mfmfp8LdhVwGbwVuq8mHzLqrG16BaMgEmit2xKO+iDakHs+OetEx0EN/2mUzDdfdktI+Nmg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -774,8 +739,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64/0.17.4: - resolution: {integrity: sha512-lOD9p2dmjZcNiTU+sGe9Nn6G3aYw3k0HBJies1PU0j5IGfp6tdKOQ6mzfACRFCqXjnBuTqK7eTYpwx09O5LLfg==} + /@esbuild/linux-ppc64/0.17.5: + resolution: {integrity: sha512-5dbQvBLbU/Y3Q4ABc9gi23hww1mQcM7KZ9KBqabB7qhJswYMf8WrDDOSw3gdf3p+ffmijMd28mfVMvFucuECyg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -792,8 +757,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64/0.17.4: - resolution: {integrity: sha512-mTGnwWwVshAjGsd8rP+K6583cPDgxOunsqqldEYij7T5/ysluMHKqUIT4TJHfrDFadUwrghAL6QjER4FeqQXoA==} + /@esbuild/linux-riscv64/0.17.5: + resolution: {integrity: sha512-fp/KUB/ZPzEWGTEUgz9wIAKCqu7CjH1GqXUO2WJdik1UNBQ7Xzw7myIajpxztE4Csb9504ERiFMxZg5KZ6HlZQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -810,8 +775,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x/0.17.4: - resolution: {integrity: sha512-AQYuUGp50XM29/N/dehADxvc2bUqDcoqrVuijop1Wv72SyxT6dDB9wjUxuPZm2HwIM876UoNNBMVd+iX/UTKVQ==} + /@esbuild/linux-s390x/0.17.5: + resolution: {integrity: sha512-kRV3yw19YDqHTp8SfHXfObUFXlaiiw4o2lvT1XjsPZ++22GqZwSsYWJLjMi1Sl7j9qDlDUduWDze/nQx0d6Lzw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -828,8 +793,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64/0.17.4: - resolution: {integrity: sha512-+AsFBwKgQuhV2shfGgA9YloxLDVjXgUEWZum7glR5lLmV94IThu/u2JZGxTgjYby6kyXEx8lKOqP5rTEVBR0Rw==} + /@esbuild/linux-x64/0.17.5: + resolution: {integrity: sha512-vnxuhh9e4pbtABNLbT2ANW4uwQ/zvcHRCm1JxaYkzSehugoFd5iXyC4ci1nhXU13mxEwCnrnTIiiSGwa/uAF1g==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -846,8 +811,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64/0.17.4: - resolution: {integrity: sha512-zD1TKYX9553OiLS/qkXPMlWoELYkH/VkzRYNKEU+GwFiqkq0SuxsKnsCg5UCdxN3cqd+1KZ8SS3R+WG/Hxy2jQ==} + /@esbuild/netbsd-x64/0.17.5: + resolution: {integrity: sha512-cigBpdiSx/vPy7doUyImsQQBnBjV5f1M99ZUlaJckDAJjgXWl6y9W17FIfJTy8TxosEF6MXq+fpLsitMGts2nA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -864,8 +829,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64/0.17.4: - resolution: {integrity: sha512-PY1NjEsLRhPEFFg1AV0/4Or/gR+q2dOb9s5rXcPuCjyHRzbt8vnHJl3vYj+641TgWZzTFmSUnZbzs1zwTzjeqw==} + /@esbuild/openbsd-x64/0.17.5: + resolution: {integrity: sha512-VdqRqPVIjjZfkf40LrqOaVuhw9EQiAZ/GNCSM2UplDkaIzYVsSnycxcFfAnHdWI8Gyt6dO15KHikbpxwx+xHbw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -882,8 +847,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64/0.17.4: - resolution: {integrity: sha512-B3Z7s8QZQW9tKGleMRXvVmwwLPAUoDCHs4WZ2ElVMWiortLJFowU1NjAhXOKjDgC7o9ByeVcwyOlJ+F2r6ZgmQ==} + /@esbuild/sunos-x64/0.17.5: + resolution: {integrity: sha512-ItxPaJ3MBLtI4nK+mALLEoUs6amxsx+J1ibnfcYMkqaCqHST1AkF4aENpBehty3czqw64r/XqL+W9WqU6kc2Qw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -900,8 +865,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64/0.17.4: - resolution: {integrity: sha512-0HCu8R3mY/H5V7N6kdlsJkvrT591bO/oRZy8ztF1dhgNU5xD5tAh5bKByT1UjTGjp/VVBsl1PDQ3L18SfvtnBQ==} + /@esbuild/win32-arm64/0.17.5: + resolution: {integrity: sha512-4u2Q6qsJTYNFdS9zHoAi80spzf78C16m2wla4eJPh4kSbRv+BpXIfl6TmBSWupD8e47B1NrTfrOlEuco7mYQtg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -918,8 +883,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32/0.17.4: - resolution: {integrity: sha512-VUjhVDQycse1gLbe06pC/uaA0M+piQXJpdpNdhg8sPmeIZZqu5xPoGWVCmcsOO2gaM2cywuTYTHkXRozo3/Nkg==} + /@esbuild/win32-ia32/0.17.5: + resolution: {integrity: sha512-KYlm+Xu9TXsfTWAcocLuISRtqxKp/Y9ZBVg6CEEj0O5J9mn7YvBKzAszo2j1ndyzUPk+op+Tie2PJeN+BnXGqQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -936,8 +901,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64/0.17.4: - resolution: {integrity: sha512-0kLAjs+xN5OjhTt/aUA6t48SfENSCKgGPfExADYTOo/UCn0ivxos9/anUVeSfg+L+2O9xkFxvJXIJfG+Q4sYSg==} + /@esbuild/win32-x64/0.17.5: + resolution: {integrity: sha512-XgA9qWRqby7xdYXuF6KALsn37QGBMHsdhmnpjfZtYxKxbTOwfnDM6MYi2WuUku5poNaX2n9XGVr20zgT/2QwCw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -950,13 +915,13 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.3 + debug: 4.3.4 espree: 7.3.1 - globals: 13.12.0 + globals: 13.20.0 ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 3.14.1 - minimatch: 3.0.4 + minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color @@ -967,8 +932,8 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.3 - minimatch: 3.0.4 + debug: 4.3.4 + minimatch: 3.1.2 transitivePeerDependencies: - supports-color dev: true @@ -987,6 +952,14 @@ packages: engines: {node: '>=8'} dev: true + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + /@jridgewell/gen-mapping/0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} engines: {node: '>=6.0.0'} @@ -1015,7 +988,6 @@ packages: /@jridgewell/sourcemap-codec/1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true /@jridgewell/trace-mapping/0.3.17: resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} @@ -1045,7 +1017,7 @@ packages: colors: 1.2.5 lodash: 4.17.21 resolve: 1.17.0 - semver: 7.3.5 + semver: 7.3.8 source-map: 0.6.1 typescript: 4.5.5 dev: true @@ -1081,10 +1053,10 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.13.0 + fastq: 1.15.0 dev: true - /@rollup/plugin-alias/4.0.3_rollup@3.10.0: + /@rollup/plugin-alias/4.0.3_rollup@3.10.1: resolution: {integrity: sha512-ZuDWE1q4PQDhvm/zc5Prun8sBpLJy41DMptYrS6MhAy9s9kL/doN1613BWfEchGVfKxzliJ3BjbOPizXX38DbQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1093,12 +1065,12 @@ packages: rollup: optional: true dependencies: - rollup: 3.10.0 + rollup: 3.10.1 slash: 4.0.0 dev: true - /@rollup/plugin-commonjs/23.0.2_rollup@3.10.0: - resolution: {integrity: sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==} + /@rollup/plugin-commonjs/23.0.7_rollup@3.10.1: + resolution: {integrity: sha512-hsSD5Qzyuat/swzrExGG5l7EuIlPhwTsT7KwKbSCQzIcJWjRxiimi/0tyMYY2bByitNb3i1p+6JWEDGa0NvT0Q==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.68.0||^3.0.0 @@ -1106,17 +1078,17 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.0 + '@rollup/pluginutils': 5.0.2_rollup@3.10.1 commondir: 1.0.1 estree-walker: 2.0.2 - glob: 8.0.3 + glob: 8.1.0 is-reference: 1.2.1 - magic-string: 0.26.7 - rollup: 3.10.0 + magic-string: 0.27.0 + rollup: 3.10.1 dev: true - /@rollup/plugin-inject/5.0.2_rollup@3.10.0: - resolution: {integrity: sha512-zRthPC/sZ2OaQwPh2LvFn0A+3SyMAZR1Vqsp89mWkIuGXKswT8ty1JWj1pf7xdZvft4gHZaCuhdopuiCwjclWg==} + /@rollup/plugin-inject/5.0.3_rollup@3.10.1: + resolution: {integrity: sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0 @@ -1124,14 +1096,14 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.0 + '@rollup/pluginutils': 5.0.2_rollup@3.10.1 estree-walker: 2.0.2 - magic-string: 0.26.7 - rollup: 3.10.0 + magic-string: 0.27.0 + rollup: 3.10.1 dev: true - /@rollup/plugin-json/5.0.1_rollup@3.10.0: - resolution: {integrity: sha512-QCwhZZLvM8nRcTHyR1vOgyTMiAnjiNj1ebD/BMRvbO1oc/z14lZH6PfxXeegee2B6mky/u9fia4fxRM4TqrUaw==} + /@rollup/plugin-json/5.0.2_rollup@3.10.1: + resolution: {integrity: sha512-D1CoOT2wPvadWLhVcmpkDnesTzjhNIQRWLsc3fA49IFOP2Y84cFOOJ+nKGYedvXHKUsPeq07HR4hXpBBr+CHlA==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0 @@ -1139,11 +1111,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.0 - rollup: 3.10.0 + '@rollup/pluginutils': 5.0.2_rollup@3.10.1 + rollup: 3.10.1 dev: true - /@rollup/plugin-node-resolve/15.0.1_rollup@3.10.0: + /@rollup/plugin-node-resolve/15.0.1_rollup@3.10.1: resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1152,17 +1124,17 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.0 + '@rollup/pluginutils': 5.0.2_rollup@3.10.1 '@types/resolve': 1.20.2 - deepmerge: 4.2.2 - is-builtin-module: 3.2.0 + deepmerge: 4.3.0 + is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.1 - rollup: 3.10.0 + rollup: 3.10.1 dev: true - /@rollup/plugin-replace/5.0.1_rollup@3.10.0: - resolution: {integrity: sha512-Z3MfsJ4CK17BfGrZgvrcp/l6WXoKb0kokULO+zt/7bmcyayokDaQ2K3eDJcRLCTAlp5FPI4/gz9MHAsosz4Rag==} + /@rollup/plugin-replace/5.0.2_rollup@3.10.1: + resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0 @@ -1170,12 +1142,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.0 - magic-string: 0.26.7 - rollup: 3.10.0 + '@rollup/pluginutils': 5.0.2_rollup@3.10.1 + magic-string: 0.27.0 + rollup: 3.10.1 dev: true - /@rollup/plugin-terser/0.1.0_rollup@3.10.0: + /@rollup/plugin-terser/0.1.0_rollup@3.10.1: resolution: {integrity: sha512-N2KK+qUfHX2hBzVzM41UWGLrEmcjVC37spC8R3c9mt3oEDFKh3N2e12/lLp9aVSt86veR0TQiCNQXrm8C6aiUQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1184,11 +1156,11 @@ packages: rollup: optional: true dependencies: - rollup: 3.10.0 - terser: 5.15.1 + rollup: 3.10.1 + terser: 5.16.2 dev: true - /@rollup/pluginutils/5.0.2_rollup@3.10.0: + /@rollup/pluginutils/5.0.2_rollup@3.10.1: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1200,7 +1172,7 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.10.0 + rollup: 3.10.1 dev: true /@rushstack/node-core-library/3.45.1: @@ -1212,9 +1184,9 @@ packages: import-lazy: 4.0.0 jju: 1.4.0 resolve: 1.17.0 - semver: 7.3.5 + semver: 7.3.8 timsort: 0.3.0 - z-schema: 5.0.4 + z-schema: 5.0.5 dev: true /@rushstack/rig-package/0.3.8: @@ -1280,12 +1252,8 @@ packages: resolution: {integrity: sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ==} dev: true - /@types/node/16.11.12: - resolution: {integrity: sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==} - dev: true - - /@types/node/16.18.2: - resolution: {integrity: sha512-KIGQJyya+opDCFvDSZMNNS899ov5jlNdtN7PypgHWeb8e+5vWISdwTRo/ClsNVlmDihzOGqFyNBDamUs7TQQCA==} + /@types/node/16.18.11: + resolution: {integrity: sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==} dev: true /@types/normalize-package-data/2.4.1: @@ -1308,12 +1276,12 @@ packages: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} requiresBuild: true dependencies: - '@types/node': 16.18.2 + '@types/node': 16.18.11 dev: true optional: true - /@typescript-eslint/parser/5.23.0_td6yqss6ra3qoebludh4ctrhym: - resolution: {integrity: sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==} + /@typescript-eslint/parser/5.50.0_jofidmxrjzhj7l6vknpw5ecvfe: + resolution: {integrity: sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1322,65 +1290,31 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.23.0 - '@typescript-eslint/types': 5.23.0 - '@typescript-eslint/typescript-estree': 5.23.0_typescript@4.8.2 - debug: 4.3.3 + '@typescript-eslint/scope-manager': 5.50.0 + '@typescript-eslint/types': 5.50.0 + '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.5 + debug: 4.3.4 eslint: 7.32.0 - typescript: 4.8.2 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.23.0: - resolution: {integrity: sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==} + /@typescript-eslint/scope-manager/5.50.0: + resolution: {integrity: sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.23.0 - '@typescript-eslint/visitor-keys': 5.23.0 + '@typescript-eslint/types': 5.50.0 + '@typescript-eslint/visitor-keys': 5.50.0 dev: true - /@typescript-eslint/scope-manager/5.49.0: - resolution: {integrity: sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ==} + /@typescript-eslint/types/5.50.0: + resolution: {integrity: sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.49.0 - '@typescript-eslint/visitor-keys': 5.49.0 - dev: true - - /@typescript-eslint/types/5.23.0: - resolution: {integrity: sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/types/5.49.0: - resolution: {integrity: sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/typescript-estree/5.23.0_typescript@4.8.2: - resolution: {integrity: sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.23.0 - '@typescript-eslint/visitor-keys': 5.23.0 - debug: 4.3.3 - globby: 11.0.4 - is-glob: 4.0.3 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.8.2 - typescript: 4.8.2 - transitivePeerDependencies: - - supports-color dev: true - /@typescript-eslint/typescript-estree/5.49.0_typescript@4.8.2: - resolution: {integrity: sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA==} + /@typescript-eslint/typescript-estree/5.50.0_typescript@4.9.5: + resolution: {integrity: sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -1388,29 +1322,29 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.49.0 - '@typescript-eslint/visitor-keys': 5.49.0 + '@typescript-eslint/types': 5.50.0 + '@typescript-eslint/visitor-keys': 5.50.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.8 - tsutils: 3.21.0_typescript@4.8.2 - typescript: 4.8.2 + tsutils: 3.21.0_typescript@4.9.5 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.49.0_td6yqss6ra3qoebludh4ctrhym: - resolution: {integrity: sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==} + /@typescript-eslint/utils/5.50.0_jofidmxrjzhj7l6vknpw5ecvfe: + resolution: {integrity: sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.49.0 - '@typescript-eslint/types': 5.49.0 - '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.8.2 + '@typescript-eslint/scope-manager': 5.50.0 + '@typescript-eslint/types': 5.50.0 + '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.5 eslint: 7.32.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@7.32.0 @@ -1420,35 +1354,27 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.23.0: - resolution: {integrity: sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.23.0 - eslint-visitor-keys: 3.3.0 - dev: true - - /@typescript-eslint/visitor-keys/5.49.0: - resolution: {integrity: sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==} + /@typescript-eslint/visitor-keys/5.50.0: + resolution: {integrity: sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.49.0 + '@typescript-eslint/types': 5.50.0 eslint-visitor-keys: 3.3.0 dev: true - /@vitejs/plugin-vue/4.0.0_doo4xoh6xruc6b46m5hj3hbaky: + /@vitejs/plugin-vue/4.0.0_sxsgywzkxpehjtnp6ortjz2zwi: resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.0.4 + vite: 4.1.1 vue: link:packages/vue dev: true - /@vitest/coverage-istanbul/0.28.2_jsdom@21.1.0+terser@5.15.1: - resolution: {integrity: sha512-344PyKB4l7ji7Tz0skw6UNAhauG6Tue5+vcn2CiXzdF+pMfuQ4A22/6Fff5mApwmeu3aueYLe0DeJfx/kxpMUA==} + /@vitest/coverage-istanbul/0.28.3_jsdom@21.1.0+terser@5.16.2: + resolution: {integrity: sha512-KAeBeLyJmGRQV142k4vevzC+mW3MjmRYSSxzTICfZPGniJ9emGQSjtKhAQ/dWxW+MaiiOEPptU5u27vboI4dQw==} dependencies: istanbul-lib-coverage: 3.2.0 istanbul-lib-instrument: 5.2.1 @@ -1456,7 +1382,7 @@ packages: istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 test-exclude: 6.0.0 - vitest: 0.28.2_jsdom@21.1.0+terser@5.15.1 + vitest: 0.28.3_jsdom@21.1.0+terser@5.16.2 transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -1471,30 +1397,30 @@ packages: - terser dev: true - /@vitest/expect/0.28.2: - resolution: {integrity: sha512-syEAK7I24/aGR2lXma98WNnvMwAJ+fMx32yPcj8eLdCEWjZI3SH8ozMaKQMy65B/xZCZAl6MXmfjtJb2CpWPMg==} + /@vitest/expect/0.28.3: + resolution: {integrity: sha512-dnxllhfln88DOvpAK1fuI7/xHwRgTgR4wdxHldPaoTaBu6Rh9zK5b//v/cjTkhOfNP/AJ8evbNO8H7c3biwd1g==} dependencies: - '@vitest/spy': 0.28.2 - '@vitest/utils': 0.28.2 + '@vitest/spy': 0.28.3 + '@vitest/utils': 0.28.3 chai: 4.3.7 dev: true - /@vitest/runner/0.28.2: - resolution: {integrity: sha512-BJ9CtfPwWM8uc5p7Ty0OprwApyh8RIaSK7QeQPhwfDYA59AAE009OytqA3aX0yj1Qy5+k/mYFJS8RJZgsueSGA==} + /@vitest/runner/0.28.3: + resolution: {integrity: sha512-P0qYbATaemy1midOLkw7qf8jraJszCoEvjQOSlseiXZyEDaZTZ50J+lolz2hWiWv6RwDu1iNseL9XLsG0Jm2KQ==} dependencies: - '@vitest/utils': 0.28.2 + '@vitest/utils': 0.28.3 p-limit: 4.0.0 pathe: 1.1.0 dev: true - /@vitest/spy/0.28.2: - resolution: {integrity: sha512-KlLzTzi5E6tHcI12VT+brlY1Pdi7sUzLf9+YXgh80+CfLu9DqPZi38doBBAUhqEnW/emoLCMinPMMoJlNAQZXA==} + /@vitest/spy/0.28.3: + resolution: {integrity: sha512-jULA6suS6CCr9VZfr7/9x97pZ0hC55prnUNHNrg5/q16ARBY38RsjsfhuUXt6QOwvIN3BhSS0QqPzyh5Di8g6w==} dependencies: tinyspy: 1.0.2 dev: true - /@vitest/utils/0.28.2: - resolution: {integrity: sha512-wcVTNnVdr22IGxZHDgiXrxWYcXsNg0iX2iBuOH3tVs9eme6fXJ0wxjn0/gCpp0TofQSoUwo3tX8LNACFVseDuA==} + /@vitest/utils/0.28.3: + resolution: {integrity: sha512-YHiQEHQqXyIbhDqETOJUKx9/psybF7SFFVCNfOvap0FvyUqbzTSDCa3S5lL4C0CLXkwVZttz9xknDoyHMguFRQ==} dependencies: cli-truncate: 3.1.0 diff: 5.1.0 @@ -1508,8 +1434,8 @@ packages: engines: {node: '>= 0.12.0'} dev: true - /@vue/repl/1.3.0_vue@packages+vue: - resolution: {integrity: sha512-L2Jr9+M6z2+gW6i5ZuUXwCMfXtyHDSSyw4fViL0QezXLLOctqTw+o6sYUsgvErkreb9oI0kcZPpWkkW7lGeuiA==} + /@vue/repl/1.3.2_vue@packages+vue: + resolution: {integrity: sha512-5joGOuTFmjaugG3E1h/oP1EXSMcVXRUwLIoo8xvYQnqDrCT6g1SfsH1pfei5PpC5DUxMX1584CekZu6REgGYkQ==} peerDependencies: vue: ^3.2.13 dependencies: @@ -1538,18 +1464,18 @@ packages: xtend: 3.0.0 dev: true - /accepts/1.3.7: - resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} + /accepts/1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} dependencies: - mime-types: 2.1.34 - negotiator: 0.6.2 + mime-types: 2.1.35 + negotiator: 0.6.3 dev: true /acorn-globals/7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.8.1 + acorn: 8.8.2 acorn-walk: 8.2.0 dev: true @@ -1578,14 +1504,14 @@ packages: hasBin: true dev: true - /acorn/8.8.1: - resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} + /acorn/8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} hasBin: true dev: true /add-stream/1.0.0: - resolution: {integrity: sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=} + resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} dev: true /agent-base/6.0.2: @@ -1614,8 +1540,8 @@ packages: uri-js: 4.4.1 dev: true - /ajv/8.8.2: - resolution: {integrity: sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==} + /ajv/8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -1624,13 +1550,13 @@ packages: dev: true /ansi-align/2.0.0: - resolution: {integrity: sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=} + resolution: {integrity: sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA==} dependencies: string-width: 2.1.1 dev: true - /ansi-colors/4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + /ansi-colors/4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} dev: true @@ -1641,8 +1567,8 @@ packages: type-fest: 0.21.3 dev: true - /ansi-regex/3.0.0: - resolution: {integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=} + /ansi-regex/3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} engines: {node: '>=4'} dev: true @@ -1680,8 +1606,8 @@ packages: engines: {node: '>=12'} dev: true - /anymatch/3.1.2: - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + /anymatch/3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 @@ -1702,8 +1628,12 @@ packages: sprintf-js: 1.0.3 dev: true + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + /array-ify/1.0.0: - resolution: {integrity: sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=} + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true /array-union/2.1.0: @@ -1712,7 +1642,7 @@ packages: dev: true /arrify/1.0.1: - resolution: {integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=} + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} dev: true @@ -1746,11 +1676,16 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true + /available-typed-arrays/1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + /babel-walk/3.0.0-canary-5: resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.20.7 dev: true /balanced-match/1.0.2: @@ -1761,10 +1696,6 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true - /big.js/5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - dev: true - /binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -1829,8 +1760,8 @@ packages: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} dev: true - /brotli/1.3.2: - resolution: {integrity: sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y=} + /brotli/1.3.3: + resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} dependencies: base64-js: 1.5.1 dev: true @@ -1892,16 +1823,15 @@ packages: safe-buffer: 5.2.1 dev: true - /browserslist/4.18.1: - resolution: {integrity: sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==} + /browserslist/4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: caniuse-lite: 1.0.30001450 - electron-to-chromium: 1.4.16 - escalade: 3.1.1 - node-releases: 2.0.1 - picocolors: 1.0.0 + electron-to-chromium: 1.4.284 + node-releases: 2.0.9 + update-browserslist-db: 1.0.10_browserslist@4.21.5 dev: true /buffer-crc32/0.2.13: @@ -1933,7 +1863,7 @@ packages: dev: true /bytes/3.0.0: - resolution: {integrity: sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=} + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} dev: true @@ -1946,7 +1876,7 @@ packages: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.0 dev: true /callsites/3.1.0: @@ -1964,7 +1894,7 @@ packages: dev: true /camelcase/4.1.0: - resolution: {integrity: sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=} + resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==} engines: {node: '>=4'} dev: true @@ -2026,11 +1956,11 @@ packages: resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} dev: true - /chokidar/3.5.2: - resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==} + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} dependencies: - anymatch: 3.1.2 + anymatch: 3.1.3 braces: 3.0.2 glob-parent: 5.1.2 is-binary-path: 2.1.0 @@ -2058,7 +1988,7 @@ packages: dev: true /cli-boxes/1.0.0: - resolution: {integrity: sha1-T6kXw+WclKAEzWH47lCdplFocUM=} + resolution: {integrity: sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg==} engines: {node: '>=0.10.0'} dev: true @@ -2120,15 +2050,15 @@ packages: dev: true /color-name/1.1.3: - resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} dev: true /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /colorette/2.0.16: - resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==} + /colorette/2.0.19: + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} dev: true /colors/1.2.5: @@ -2152,6 +2082,13 @@ packages: engines: {node: '>= 6'} dev: true + /commander/9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + requiresBuild: true + dev: true + optional: true + /commondir/1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true @@ -2167,14 +2104,14 @@ packages: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} dependencies: - mime-db: 1.51.0 + mime-db: 1.52.0 dev: true /compression/1.7.3: resolution: {integrity: sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==} engines: {node: '>= 0.8.0'} dependencies: - accepts: 1.3.7 + accepts: 1.3.8 bytes: 3.0.0 compressible: 2.0.18 debug: 2.6.9 @@ -2202,12 +2139,12 @@ packages: /constantinople/4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} dependencies: - '@babel/parser': 7.16.4 - '@babel/types': 7.16.0 + '@babel/parser': 7.20.15 + '@babel/types': 7.20.7 dev: true /content-disposition/0.5.2: - resolution: {integrity: sha1-DPaLud318r55YcOoUXjLhdunjLQ=} + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} engines: {node: '>= 0.6'} dev: true @@ -2226,13 +2163,13 @@ packages: q: 1.5.1 dev: true - /conventional-changelog-cli/2.1.1: - resolution: {integrity: sha512-xMGQdKJ+4XFDDgfX5aK7UNFduvJMbvF5BB+g0OdVhA3rYdYyhctrIE2Al+WYdZeKTdg9YzMWF2iFPT8MupIwng==} + /conventional-changelog-cli/2.2.2: + resolution: {integrity: sha512-8grMV5Jo8S0kP3yoMeJxV2P5R6VJOqK72IiSV9t/4H5r/HiRqEBQ83bYGuz4Yzfdj4bjaAEhZN/FFbsFXr5bOA==} engines: {node: '>=10'} hasBin: true dependencies: add-stream: 1.0.0 - conventional-changelog: 3.1.24 + conventional-changelog: 3.1.25 lodash: 4.17.21 meow: 8.1.2 tempfile: 3.0.0 @@ -2245,8 +2182,8 @@ packages: q: 1.5.1 dev: true - /conventional-changelog-conventionalcommits/4.6.1: - resolution: {integrity: sha512-lzWJpPZhbM1R0PIzkwzGBCnAkH5RKJzJfFQZcl/D+2lsJxAwGnDKBqn/F4C1RD31GJNn8NuKWQzAZDAVXPp2Mw==} + /conventional-changelog-conventionalcommits/4.6.3: + resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==} engines: {node: '>=10'} dependencies: compare-func: 2.0.0 @@ -2259,11 +2196,11 @@ packages: engines: {node: '>=10'} dependencies: add-stream: 1.0.0 - conventional-changelog-writer: 5.0.0 - conventional-commits-parser: 3.2.3 + conventional-changelog-writer: 5.0.1 + conventional-commits-parser: 3.2.4 dateformat: 3.0.3 get-pkg-repo: 4.2.1 - git-raw-commits: 2.0.10 + git-raw-commits: 2.0.11 git-remote-origin-url: 2.0.0 git-semver-tags: 4.1.1 lodash: 4.17.21 @@ -2315,8 +2252,8 @@ packages: engines: {node: '>=10'} dev: true - /conventional-changelog-writer/5.0.0: - resolution: {integrity: sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g==} + /conventional-changelog-writer/5.0.1: + resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==} engines: {node: '>=10'} hasBin: true dependencies: @@ -2331,14 +2268,14 @@ packages: through2: 4.0.2 dev: true - /conventional-changelog/3.1.24: - resolution: {integrity: sha512-ed6k8PO00UVvhExYohroVPXcOJ/K1N0/drJHx/faTH37OIZthlecuLIRX/T6uOp682CAoVoFpu+sSEaeuH6Asg==} + /conventional-changelog/3.1.25: + resolution: {integrity: sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==} engines: {node: '>=10'} dependencies: conventional-changelog-angular: 5.0.13 conventional-changelog-atom: 2.0.8 conventional-changelog-codemirror: 2.0.8 - conventional-changelog-conventionalcommits: 4.6.1 + conventional-changelog-conventionalcommits: 4.6.3 conventional-changelog-core: 4.2.4 conventional-changelog-ember: 2.0.9 conventional-changelog-eslint: 3.0.9 @@ -2356,8 +2293,8 @@ packages: modify-values: 1.0.1 dev: true - /conventional-commits-parser/3.2.3: - resolution: {integrity: sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw==} + /conventional-commits-parser/3.2.4: + resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} engines: {node: '>=10'} hasBin: true dependencies: @@ -2369,17 +2306,15 @@ packages: through2: 4.0.2 dev: true - /convert-source-map/1.8.0: - resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} - dependencies: - safe-buffer: 5.1.2 + /convert-source-map/1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true /core-util-is/1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - /cosmiconfig/7.0.1: - resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} + /cosmiconfig/7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} dependencies: '@types/parse-json': 4.0.0 @@ -2389,6 +2324,16 @@ packages: yaml: 1.10.2 dev: true + /cosmiconfig/8.0.0: + resolution: {integrity: sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==} + engines: {node: '>=14'} + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + dev: true + /create-ecdh/4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} dependencies: @@ -2426,7 +2371,7 @@ packages: dev: true /cross-spawn/5.1.0: - resolution: {integrity: sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=} + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: lru-cache: 4.1.5 shebang-command: 1.2.0 @@ -2490,12 +2435,12 @@ packages: cssom: 0.3.8 dev: true - /csstype/2.6.19: - resolution: {integrity: sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==} + /csstype/2.6.21: + resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} dev: false - /csstype/3.0.10: - resolution: {integrity: sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==} + /csstype/3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} dev: true /dargs/7.0.0: @@ -2527,18 +2472,6 @@ packages: ms: 2.0.0 dev: true - /debug/4.3.3: - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - /debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -2551,8 +2484,8 @@ packages: ms: 2.1.2 dev: true - /decamelize-keys/1.1.0: - resolution: {integrity: sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=} + /decamelize-keys/1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} dependencies: decamelize: 1.2.0 @@ -2560,7 +2493,7 @@ packages: dev: true /decamelize/1.2.0: - resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} dev: true @@ -2569,7 +2502,7 @@ packages: dev: true /dedent/0.7.0: - resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=} + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: true /deep-eql/4.1.3: @@ -2588,8 +2521,8 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /deepmerge/4.2.2: - resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + /deepmerge/4.3.0: + resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==} engines: {node: '>=0.10.0'} dev: true @@ -2599,10 +2532,11 @@ packages: abstract-leveldown: 0.12.4 dev: true - /define-properties/1.1.3: - resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} + /define-properties/1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} engines: {node: '>= 0.4'} dependencies: + has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: true @@ -2618,8 +2552,8 @@ packages: minimalistic-assert: 1.0.1 dev: true - /devtools-protocol/0.0.1056733: - resolution: {integrity: sha512-CmTu6SQx2g3TbZzDCAV58+LTxVdKplS7xip0g5oDXpZ+isr0rv5dDP8ToyVRywzPHkCCPKgKgScEcwz4uPWDIA==} + /devtools-protocol/0.0.1082910: + resolution: {integrity: sha512-RqoZ2GmqaNxyx+99L/RemY5CkwG9D0WEfOKxekwCRXOGrDCep62ngezEJUVMq6rISYQ+085fJnWDQqGHlxVNww==} dev: true /diff/5.1.0: @@ -2671,8 +2605,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /electron-to-chromium/1.4.16: - resolution: {integrity: sha512-BQb7FgYwnu6haWLU63/CdVW+9xhmHls3RCQUFiV4lvw3wimEHTVcUk2hkuZo76QhR8nnDdfZE7evJIZqijwPdA==} + /electron-to-chromium/1.4.284: + resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} dev: true /elliptic/6.5.4: @@ -2695,11 +2629,6 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /emojis-list/3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - dev: true - /end-of-stream/1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: @@ -2710,7 +2639,7 @@ packages: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} dependencies: - ansi-colors: 4.1.1 + ansi-colors: 4.1.3 dev: true /entities/4.4.0: @@ -2731,41 +2660,63 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract/1.19.1: - resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} + /es-abstract/1.21.1: + resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} engines: {node: '>= 0.4'} dependencies: + available-typed-arrays: 1.0.5 call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 es-to-primitive: 1.2.1 function-bind: 1.1.1 - get-intrinsic: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 has: 1.0.3 - has-symbols: 1.0.2 - internal-slot: 1.0.3 - is-callable: 1.2.4 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.4 + is-array-buffer: 3.0.1 + is-callable: 1.2.7 is-negative-zero: 2.0.2 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.1 + is-shared-array-buffer: 1.0.2 is-string: 1.0.7 + is-typed-array: 1.1.10 is-weakref: 1.0.2 - object-inspect: 1.11.1 + object-inspect: 1.12.3 object-keys: 1.1.1 - object.assign: 4.1.2 - string.prototype.trimend: 1.0.4 - string.prototype.trimstart: 1.0.4 - unbox-primitive: 1.0.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 dev: true /es-module-lexer/1.1.0: resolution: {integrity: sha512-fJg+1tiyEeS8figV+fPcPpm8WqJEflG3yPU0NOm5xMvrNkuiy7HzX/Ljng4Y0hAoiw4/3hQTCFYw+ub8+a2pRA==} dev: true + /es-set-tostringtag/2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + /es-to-primitive/1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} dependencies: - is-callable: 1.2.4 + is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 dev: true @@ -2800,34 +2751,34 @@ packages: '@esbuild/win32-x64': 0.16.17 dev: true - /esbuild/0.17.4: - resolution: {integrity: sha512-zBn9MeCwT7W5F1a3lXClD61ip6vQM+H8Msb0w8zMT4ZKBpDg+rFAraNyWCDelB/2L6M3g6AXHPnsyvjMFnxtFw==} + /esbuild/0.17.5: + resolution: {integrity: sha512-Bu6WLCc9NMsNoMJUjGl3yBzTjVLXdysMltxQWiLAypP+/vQrf+3L1Xe8fCXzxaECus2cEJ9M7pk4yKatEwQMqQ==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.17.4 - '@esbuild/android-arm64': 0.17.4 - '@esbuild/android-x64': 0.17.4 - '@esbuild/darwin-arm64': 0.17.4 - '@esbuild/darwin-x64': 0.17.4 - '@esbuild/freebsd-arm64': 0.17.4 - '@esbuild/freebsd-x64': 0.17.4 - '@esbuild/linux-arm': 0.17.4 - '@esbuild/linux-arm64': 0.17.4 - '@esbuild/linux-ia32': 0.17.4 - '@esbuild/linux-loong64': 0.17.4 - '@esbuild/linux-mips64el': 0.17.4 - '@esbuild/linux-ppc64': 0.17.4 - '@esbuild/linux-riscv64': 0.17.4 - '@esbuild/linux-s390x': 0.17.4 - '@esbuild/linux-x64': 0.17.4 - '@esbuild/netbsd-x64': 0.17.4 - '@esbuild/openbsd-x64': 0.17.4 - '@esbuild/sunos-x64': 0.17.4 - '@esbuild/win32-arm64': 0.17.4 - '@esbuild/win32-ia32': 0.17.4 - '@esbuild/win32-x64': 0.17.4 + '@esbuild/android-arm': 0.17.5 + '@esbuild/android-arm64': 0.17.5 + '@esbuild/android-x64': 0.17.5 + '@esbuild/darwin-arm64': 0.17.5 + '@esbuild/darwin-x64': 0.17.5 + '@esbuild/freebsd-arm64': 0.17.5 + '@esbuild/freebsd-x64': 0.17.5 + '@esbuild/linux-arm': 0.17.5 + '@esbuild/linux-arm64': 0.17.5 + '@esbuild/linux-ia32': 0.17.5 + '@esbuild/linux-loong64': 0.17.5 + '@esbuild/linux-mips64el': 0.17.5 + '@esbuild/linux-ppc64': 0.17.5 + '@esbuild/linux-riscv64': 0.17.5 + '@esbuild/linux-s390x': 0.17.5 + '@esbuild/linux-x64': 0.17.5 + '@esbuild/netbsd-x64': 0.17.5 + '@esbuild/openbsd-x64': 0.17.5 + '@esbuild/sunos-x64': 0.17.5 + '@esbuild/win32-arm64': 0.17.5 + '@esbuild/win32-ia32': 0.17.5 + '@esbuild/win32-x64': 0.17.5 dev: true /escalade/3.1.1: @@ -2836,7 +2787,7 @@ packages: dev: true /escape-string-regexp/1.0.5: - resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} dev: true @@ -2858,7 +2809,7 @@ packages: source-map: 0.6.1 dev: true - /eslint-plugin-jest/27.2.1_td6yqss6ra3qoebludh4ctrhym: + /eslint-plugin-jest/27.2.1_jofidmxrjzhj7l6vknpw5ecvfe: resolution: {integrity: sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -2871,7 +2822,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/utils': 5.49.0_td6yqss6ra3qoebludh4ctrhym + '@typescript-eslint/utils': 5.50.0_jofidmxrjzhj7l6vknpw5ecvfe eslint: 7.32.0 transitivePeerDependencies: - supports-color @@ -2929,7 +2880,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.3 + debug: 4.3.4 doctrine: 3.0.0 enquirer: 2.3.6 escape-string-regexp: 4.0.0 @@ -2943,7 +2894,7 @@ packages: file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 5.1.2 - globals: 13.12.0 + globals: 13.20.0 ignore: 4.0.6 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -2952,15 +2903,15 @@ packages: json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 3.0.4 + minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.1 progress: 2.0.3 regexpp: 3.2.0 - semver: 7.3.5 + semver: 7.3.8 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 - table: 6.7.5 + table: 6.8.1 text-table: 0.2.0 v8-compile-cache: 2.3.0 transitivePeerDependencies: @@ -3030,7 +2981,7 @@ packages: dev: true /execa/0.7.0: - resolution: {integrity: sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=} + resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} engines: {node: '>=4'} dependencies: cross-spawn: 5.1.0 @@ -3038,7 +2989,7 @@ packages: is-stream: 1.1.0 npm-run-path: 2.0.2 p-finally: 1.0.0 - signal-exit: 3.0.6 + signal-exit: 3.0.7 strip-eof: 1.0.0 dev: true @@ -3051,7 +3002,7 @@ packages: is-stream: 1.1.0 npm-run-path: 2.0.2 p-finally: 1.0.0 - signal-exit: 3.0.6 + signal-exit: 3.0.7 strip-eof: 1.0.0 dev: true @@ -3066,7 +3017,7 @@ packages: merge-stream: 2.0.0 npm-run-path: 4.0.1 onetime: 5.1.2 - signal-exit: 3.0.6 + signal-exit: 3.0.7 strip-final-newline: 2.0.0 dev: true @@ -3096,18 +3047,7 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.4 - dev: true - - /fast-glob/3.2.7: - resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} - engines: {node: '>=8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.4 + micromatch: 4.0.5 dev: true /fast-json-stable-stringify/2.1.0: @@ -3115,7 +3055,7 @@ packages: dev: true /fast-levenshtein/2.0.6: - resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true /fast-url-parser/1.1.3: @@ -3124,8 +3064,8 @@ packages: punycode: 1.4.1 dev: true - /fastq/1.13.0: - resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + /fastq/1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 dev: true @@ -3173,12 +3113,18 @@ packages: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.4 + flatted: 3.2.7 rimraf: 3.0.2 dev: true - /flatted/3.2.4: - resolution: {integrity: sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==} + /flatted/3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /for-each/0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 dev: true /foreach/2.0.6: @@ -3191,7 +3137,7 @@ packages: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - mime-types: 2.1.34 + mime-types: 2.1.35 dev: true /fs-constants/1.0.0: @@ -3208,7 +3154,7 @@ packages: dev: true /fs.realpath/1.0.0: - resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true /fsevents/2.3.2: @@ -3223,8 +3169,22 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + functions-have-names: 1.2.3 + dev: true + /functional-red-black-tree/1.0.1: - resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: true + + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true /fwd-stream/1.0.4: @@ -3233,10 +3193,10 @@ packages: readable-stream: 1.0.34 dev: true - /generic-names/2.0.1: - resolution: {integrity: sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==} + /generic-names/4.0.0: + resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} dependencies: - loader-utils: 1.4.0 + loader-utils: 3.2.1 dev: true /gensync/1.0.0-beta.2: @@ -3253,12 +3213,12 @@ packages: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} dev: true - /get-intrinsic/1.1.1: - resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} + /get-intrinsic/1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} dependencies: function-bind: 1.1.1 has: 1.0.3 - has-symbols: 1.0.2 + has-symbols: 1.0.3 dev: true /get-own-enumerable-property-symbols/3.0.2: @@ -3271,7 +3231,7 @@ packages: hasBin: true dependencies: '@hutson/parse-repository-url': 3.0.2 - hosted-git-info: 4.0.2 + hosted-git-info: 4.1.0 through2: 2.0.5 yargs: 16.2.0 dev: true @@ -3300,11 +3260,11 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.0 dev: true - /git-raw-commits/2.0.10: - resolution: {integrity: sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==} + /git-raw-commits/2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} engines: {node: '>=10'} hasBin: true dependencies: @@ -3316,7 +3276,7 @@ packages: dev: true /git-remote-origin-url/2.0.0: - resolution: {integrity: sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=} + resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} engines: {node: '>=4'} dependencies: gitconfiglocal: 1.0.0 @@ -3333,7 +3293,7 @@ packages: dev: true /gitconfiglocal/1.0.0: - resolution: {integrity: sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=} + resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} dependencies: ini: 1.3.8 dev: true @@ -3356,14 +3316,14 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob/8.0.3: - resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==} + /glob/8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 5.1.0 + minimatch: 5.1.6 once: 1.4.0 dev: true @@ -3372,23 +3332,18 @@ packages: engines: {node: '>=4'} dev: true - /globals/13.12.0: - resolution: {integrity: sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==} + /globals/13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - /globby/11.0.4: - resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} - engines: {node: '>=10'} + /globalthis/1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.7 - ignore: 5.1.9 - merge2: 1.4.1 - slash: 3.0.0 + define-properties: 1.1.4 dev: true /globby/11.1.0: @@ -3403,6 +3358,12 @@ packages: slash: 3.0.0 dev: true + /gopd/1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true @@ -3412,7 +3373,7 @@ packages: engines: {node: '>=0.4.7'} hasBin: true dependencies: - minimist: 1.2.5 + minimist: 1.2.7 neo-async: 2.6.2 source-map: 0.6.1 wordwrap: 1.0.0 @@ -3425,12 +3386,12 @@ packages: engines: {node: '>=6'} dev: true - /has-bigints/1.0.1: - resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true /has-flag/3.0.0: - resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} dev: true @@ -3439,8 +3400,19 @@ packages: engines: {node: '>=8'} dev: true - /has-symbols/1.0.2: - resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /has-proto/1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} dev: true @@ -3448,7 +3420,7 @@ packages: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.2 + has-symbols: 1.0.3 dev: true /has/1.0.3: @@ -3490,8 +3462,8 @@ packages: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true - /hosted-git-info/4.0.2: - resolution: {integrity: sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==} + /hosted-git-info/4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 @@ -3542,16 +3514,16 @@ packages: dev: true /icss-replace-symbols/1.1.0: - resolution: {integrity: sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=} + resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} dev: true - /icss-utils/5.1.0_postcss@8.4.4: + /icss-utils/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.4 + postcss: 8.4.21 dev: true /idb-wrapper/1.7.2: @@ -3567,22 +3539,17 @@ packages: engines: {node: '>= 4'} dev: true - /ignore/5.1.9: - resolution: {integrity: sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==} - engines: {node: '>= 4'} - dev: true - /ignore/5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} dev: true /immediate/3.0.6: - resolution: {integrity: sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=} + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} dev: false - /immutable/4.0.0: - resolution: {integrity: sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==} + /immutable/4.2.3: + resolution: {integrity: sha512-IHpmvaOIX4VLJwPOuQr1NpeBr2ZG6vpIj3blsLVxXRWJscLioaJRStqC+NcBsLeCDsnGlPpXd5/WZmnE7MbsKA==} dev: true /import-fresh/3.3.0: @@ -3599,7 +3566,7 @@ packages: dev: true /imurmurhash/0.1.4: - resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} dev: true @@ -3613,7 +3580,7 @@ packages: dev: true /inflight/1.0.6: - resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -3626,23 +3593,31 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /internal-slot/1.0.3: - resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + /internal-slot/1.0.4: + resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.0 has: 1.0.3 side-channel: 1.0.4 dev: true + /is-array-buffer/3.0.1: + resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + dev: true + /is-arrayish/0.2.1: - resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true /is-bigint/1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: - has-bigints: 1.0.1 + has-bigints: 1.0.2 dev: true /is-binary-path/2.1.0: @@ -3660,32 +3635,20 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-builtin-module/3.2.0: - resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==} + /is-builtin-module/3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 dev: true - /is-callable/1.2.4: - resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} + /is-callable/1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} dev: true - /is-core-module/2.10.0: - resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} - dependencies: - has: 1.0.3 - dev: true - - /is-core-module/2.8.0: - resolution: {integrity: sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==} - dependencies: - has: 1.0.3 - dev: true - - /is-core-module/2.8.1: - resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: has: 1.0.3 dev: true @@ -3711,12 +3674,12 @@ packages: dev: true /is-extglob/2.1.1: - resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true /is-fullwidth-code-point/2.0.0: - resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=} + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} engines: {node: '>=4'} dev: true @@ -3746,8 +3709,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-number-object/1.0.6: - resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} + /is-number-object/1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 @@ -3759,7 +3722,7 @@ packages: dev: true /is-obj/1.0.1: - resolution: {integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8=} + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} engines: {node: '>=0.10.0'} dev: true @@ -3773,7 +3736,7 @@ packages: dev: true /is-plain-obj/1.1.0: - resolution: {integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4=} + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} dev: true @@ -3800,16 +3763,18 @@ packages: dev: true /is-regexp/1.0.0: - resolution: {integrity: sha1-/S2INUXEa6xaYz57mgnof6LLUGk=} + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} engines: {node: '>=0.10.0'} dev: true - /is-shared-array-buffer/1.0.1: - resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 dev: true /is-stream/1.1.0: - resolution: {integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=} + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} dev: true @@ -3829,16 +3794,27 @@ packages: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.2 + has-symbols: 1.0.3 dev: true /is-text-path/1.0.1: - resolution: {integrity: sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=} + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} engines: {node: '>=0.10.0'} dependencies: text-extensions: 1.9.0 dev: true + /is-typed-array/1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + /is-unicode-supported/0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -3866,14 +3842,14 @@ packages: dev: true /isarray/1.0.0: - resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} /isbuffer/0.0.0: resolution: {integrity: sha512-xU+NoHp+YtKQkaM2HsQchYn0sltxMxew0HavMfHbjnucBoTSGbw745tL+Z7QBANleWM1eEQMenEpi174mIeS4g==} dev: true /isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true /istanbul-lib-coverage/3.2.0: @@ -3885,8 +3861,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.16.0 - '@babel/parser': 7.16.4 + '@babel/core': 7.20.12 + '@babel/parser': 7.20.15 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.0 @@ -3947,6 +3923,13 @@ packages: esprima: 4.0.1 dev: true + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + /jsdom/21.1.0: resolution: {integrity: sha512-m0lzlP7qOtthD918nenK3hdItSd2I+V3W9IrBcB36sqDwG+KnUs66IF5GY7laGWUnlM9vTsD0W1QwSEBYWWcJg==} engines: {node: '>=14'} @@ -3957,7 +3940,7 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.8.1 + acorn: 8.8.2 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 @@ -4011,26 +3994,17 @@ packages: dev: true /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true /json-stringify-safe/5.0.1: - resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true - /json5/1.0.1: - resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} - hasBin: true - dependencies: - minimist: 1.2.5 - dev: true - - /json5/2.2.0: - resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==} + /json5/2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true - dependencies: - minimist: 1.2.5 dev: true /jsonc-parser/3.2.0: @@ -4044,24 +4018,24 @@ packages: dev: true /jsonparse/1.3.1: - resolution: {integrity: sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=} + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} dev: true /jstransformer/1.0.0: - resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==} + resolution: {integrity: sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=} dependencies: is-promise: 2.2.2 promise: 7.3.1 dev: true - /jszip/3.7.1: - resolution: {integrity: sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==} + /jszip/3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} dependencies: lie: 3.3.0 pako: 1.0.11 readable-stream: 2.3.7 - set-immediate-shim: 1.0.1 + setimmediate: 1.0.5 dev: false /kind-of/6.0.3: @@ -4178,14 +4152,14 @@ packages: chalk: 4.1.2 cli-truncate: 2.1.0 commander: 6.2.1 - cosmiconfig: 7.0.1 - debug: 4.3.3 + cosmiconfig: 7.1.0 + debug: 4.3.4 dedent: 0.7.0 enquirer: 2.3.6 execa: 4.1.0 - listr2: 3.13.5_enquirer@2.3.6 + listr2: 3.14.0_enquirer@2.3.6 log-symbols: 4.1.0 - micromatch: 4.0.4 + micromatch: 4.0.5 normalize-path: 3.0.0 please-upgrade-node: 3.2.0 string-argv: 0.3.1 @@ -4194,8 +4168,8 @@ packages: - supports-color dev: true - /listr2/3.13.5_enquirer@2.3.6: - resolution: {integrity: sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==} + /listr2/3.14.0_enquirer@2.3.6: + resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} engines: {node: '>=10.0.0'} peerDependencies: enquirer: '>= 2.3.0 < 3' @@ -4204,18 +4178,18 @@ packages: optional: true dependencies: cli-truncate: 2.1.0 - colorette: 2.0.16 + colorette: 2.0.19 enquirer: 2.3.6 log-update: 4.0.0 p-map: 4.0.0 rfdc: 1.3.0 - rxjs: 7.4.0 + rxjs: 7.8.0 through: 2.3.8 wrap-ansi: 7.0.0 dev: true /load-json-file/4.0.0: - resolution: {integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs=} + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} dependencies: graceful-fs: 4.2.10 @@ -4224,13 +4198,9 @@ packages: strip-bom: 3.0.0 dev: true - /loader-utils/1.4.0: - resolution: {integrity: sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==} - engines: {node: '>=4.0.0'} - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 1.0.1 + /loader-utils/3.2.1: + resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + engines: {node: '>= 12.13.0'} dev: true /local-pkg/0.4.3: @@ -4254,7 +4224,7 @@ packages: dev: true /lodash.camelcase/4.3.0: - resolution: {integrity: sha1-soqmKIorn8ZRA1x3EfZathkDMaY=} + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} dev: true /lodash.get/4.4.2: @@ -4266,7 +4236,7 @@ packages: dev: true /lodash.ismatch/4.4.0: - resolution: {integrity: sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=} + resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} dev: true /lodash.merge/4.6.2: @@ -4274,7 +4244,7 @@ packages: dev: true /lodash.truncate/4.4.2: - resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} dev: true /lodash/4.17.21: @@ -4335,17 +4305,17 @@ packages: vlq: 0.2.3 dev: true - /magic-string/0.25.7: - resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==} + /magic-string/0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: sourcemap-codec: 1.4.8 + dev: true - /magic-string/0.26.7: - resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} + /magic-string/0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} engines: {node: '>=12'} dependencies: - sourcemap-codec: 1.4.8 - dev: true + '@jridgewell/sourcemap-codec': 1.4.14 /make-dir/3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -4355,7 +4325,7 @@ packages: dev: true /map-obj/1.0.1: - resolution: {integrity: sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=} + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} dev: true @@ -4364,8 +4334,8 @@ packages: engines: {node: '>=8'} dev: true - /marked/4.0.10: - resolution: {integrity: sha512-+QvuFj0nGgO970fySghXGmuw+Fd0gD2x3+MqCWLIPf5oxdv1Ka6b2q+z9RP01P/IaKPMEramy+7cNy/Lw8c3hw==} + /marked/4.2.12: + resolution: {integrity: sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==} engines: {node: '>= 12'} hasBin: true dev: true @@ -4379,7 +4349,7 @@ packages: dev: true /memorystream/0.3.1: - resolution: {integrity: sha1-htcJCzDORV1j+64S3aUaR93K+bI=} + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} engines: {node: '>= 0.10.0'} dev: true @@ -4389,7 +4359,7 @@ packages: dependencies: '@types/minimist': 1.2.2 camelcase-keys: 6.2.2 - decamelize-keys: 1.1.0 + decamelize-keys: 1.1.1 hard-rejection: 2.1.0 minimist-options: 4.1.0 normalize-package-data: 3.0.3 @@ -4415,12 +4385,12 @@ packages: engines: {node: '>= 8'} dev: true - /micromatch/4.0.4: - resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: braces: 3.0.2 - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true /miller-rabin/4.0.1: @@ -4436,8 +4406,8 @@ packages: engines: {node: '>= 0.6'} dev: true - /mime-db/1.51.0: - resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==} + /mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} dev: true @@ -4448,11 +4418,11 @@ packages: mime-db: 1.33.0 dev: true - /mime-types/2.1.34: - resolution: {integrity: sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==} + /mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: - mime-db: 1.51.0 + mime-db: 1.52.0 dev: true /mimic-fn/2.1.0: @@ -4485,8 +4455,8 @@ packages: brace-expansion: 1.1.11 dev: true - /minimatch/5.1.0: - resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} + /minimatch/5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 @@ -4501,8 +4471,8 @@ packages: kind-of: 6.0.3 dev: true - /minimist/1.2.5: - resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} + /minimist/1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} dev: true /mkdirp-classic/0.5.3: @@ -4512,7 +4482,7 @@ packages: /mlly/1.1.0: resolution: {integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==} dependencies: - acorn: 8.8.1 + acorn: 8.8.2 pathe: 1.1.0 pkg-types: 1.0.1 ufo: 1.0.1 @@ -4535,23 +4505,17 @@ packages: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true - /nanoid/3.1.30: - resolution: {integrity: sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - /nanoid/3.3.4: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true /natural-compare/1.4.0: - resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /negotiator/0.6.2: - resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==} + /negotiator/0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} dev: true @@ -4575,8 +4539,8 @@ packages: whatwg-url: 5.0.0 dev: true - /node-releases/2.0.1: - resolution: {integrity: sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==} + /node-releases/2.0.9: + resolution: {integrity: sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==} dev: true /normalize-package-data/2.5.0: @@ -4592,9 +4556,9 @@ packages: resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} dependencies: - hosted-git-info: 4.0.2 - is-core-module: 2.8.0 - semver: 7.3.5 + hosted-git-info: 4.1.0 + is-core-module: 2.11.0 + semver: 7.3.8 validate-npm-package-license: 3.0.4 dev: true @@ -4612,15 +4576,15 @@ packages: chalk: 2.4.2 cross-spawn: 6.0.5 memorystream: 0.3.1 - minimatch: 3.0.4 + minimatch: 3.1.2 pidtree: 0.3.1 read-pkg: 3.0.0 - shell-quote: 1.7.3 - string.prototype.padend: 3.1.3 + shell-quote: 1.8.0 + string.prototype.padend: 3.1.4 dev: true /npm-run-path/2.0.2: - resolution: {integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=} + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} dependencies: path-key: 2.0.1 @@ -4642,8 +4606,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /object-inspect/1.11.1: - resolution: {integrity: sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==} + /object-inspect/1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: true /object-keys/0.2.0: @@ -4664,13 +4628,13 @@ packages: engines: {node: '>= 0.4'} dev: true - /object.assign/4.1.2: - resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} + /object.assign/4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - has-symbols: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 object-keys: 1.1.1 dev: true @@ -4684,7 +4648,7 @@ packages: dev: true /once/1.4.0: - resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: true @@ -4721,7 +4685,7 @@ packages: dev: true /p-finally/1.0.0: - resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=} + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} dev: true @@ -4799,7 +4763,7 @@ packages: dev: true /parse-json/4.0.0: - resolution: {integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=} + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} dependencies: error-ex: 1.3.2 @@ -4810,7 +4774,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.16.0 + '@babel/code-frame': 7.18.6 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -4838,11 +4802,11 @@ packages: dev: true /path-is-inside/1.0.2: - resolution: {integrity: sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=} + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} dev: true /path-key/2.0.1: - resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=} + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} engines: {node: '>=4'} dev: true @@ -4897,11 +4861,6 @@ packages: /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - /picomatch/2.3.0: - resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} - engines: {node: '>=8.6'} - dev: true - /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -4914,12 +4873,12 @@ packages: dev: true /pify/2.3.0: - resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} dev: true /pify/3.0.0: - resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} dev: true @@ -4937,65 +4896,65 @@ packages: semver-compare: 1.0.0 dev: true - /postcss-modules-extract-imports/3.0.0_postcss@8.4.4: + /postcss-modules-extract-imports/3.0.0_postcss@8.4.21: resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.4 + postcss: 8.4.21 dev: true - /postcss-modules-local-by-default/4.0.0_postcss@8.4.4: + /postcss-modules-local-by-default/4.0.0_postcss@8.4.21: resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.4 - postcss: 8.4.4 - postcss-selector-parser: 6.0.7 + icss-utils: 5.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 dev: true - /postcss-modules-scope/3.0.0_postcss@8.4.4: + /postcss-modules-scope/3.0.0_postcss@8.4.21: resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.4 - postcss-selector-parser: 6.0.7 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /postcss-modules-values/4.0.0_postcss@8.4.4: + /postcss-modules-values/4.0.0_postcss@8.4.21: resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.4 - postcss: 8.4.4 + icss-utils: 5.1.0_postcss@8.4.21 + postcss: 8.4.21 dev: true - /postcss-modules/4.2.2_postcss@8.4.4: - resolution: {integrity: sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg==} + /postcss-modules/4.3.1_postcss@8.4.21: + resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} peerDependencies: postcss: ^8.0.0 dependencies: - generic-names: 2.0.1 + generic-names: 4.0.0 icss-replace-symbols: 1.1.0 lodash.camelcase: 4.3.0 - postcss: 8.4.4 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.4 - postcss-modules-local-by-default: 4.0.0_postcss@8.4.4 - postcss-modules-scope: 3.0.0_postcss@8.4.4 - postcss-modules-values: 4.0.0_postcss@8.4.4 + postcss: 8.4.21 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.21 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.21 + postcss-modules-scope: 3.0.0_postcss@8.4.21 + postcss-modules-values: 4.0.0_postcss@8.4.21 string-hash: 1.1.3 dev: true - /postcss-selector-parser/6.0.7: - resolution: {integrity: sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA==} + /postcss-selector-parser/6.0.11: + resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -5013,15 +4972,6 @@ packages: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true - - /postcss/8.4.4: - resolution: {integrity: sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.1.30 - picocolors: 1.0.0 - source-map-js: 1.0.1 /prelude-ls/1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} @@ -5033,8 +4983,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier/2.7.1: - resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} + /prettier/2.8.3: + resolution: {integrity: sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==} engines: {node: '>=10.13.0'} hasBin: true dev: true @@ -5079,7 +5029,7 @@ packages: dev: true /pseudomap/1.0.2: - resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=} + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} dev: true /psl/1.9.0: @@ -5196,28 +5146,28 @@ packages: dev: true /punycode/1.4.1: - resolution: {integrity: sha1-wNWmOycYgArY4esPpSachN1BhF4=} + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} dev: true - /punycode/2.1.1: - resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + /punycode/2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} dev: true - /puppeteer-core/19.2.2: - resolution: {integrity: sha512-faojf+1pZ/tHXSr4x1q+9MVd9FrL3rpdbC0w7qN7MNClMoLuCvMbpR4vzcjoiJYgclt1n+SOPUOmHQViTw6frw==} + /puppeteer-core/19.6.3: + resolution: {integrity: sha512-8MbhioSlkDaHkmolpQf9Z7ui7jplFfOFTnN8d5kPsCazRRTNIH6/bVxPskn0v5Gh9oqOBlknw0eHH0/OBQAxpQ==} engines: {node: '>=14.1.0'} dependencies: cross-fetch: 3.1.5 debug: 4.3.4 - devtools-protocol: 0.0.1056733 + devtools-protocol: 0.0.1082910 extract-zip: 2.0.1 https-proxy-agent: 5.0.1 proxy-from-env: 1.1.0 rimraf: 3.0.2 tar-fs: 2.1.1 unbzip2-stream: 1.4.3 - ws: 8.10.0 + ws: 8.11.0 transitivePeerDependencies: - bufferutil - encoding @@ -5225,17 +5175,16 @@ packages: - utf-8-validate dev: true - /puppeteer/19.2.2: - resolution: {integrity: sha512-m1T5Mog5qu5+dMBptWYTn6pXRdnFbydbVUCthqwbfd8/kOiMlzZBR9ywjX79LpvI1Sj+/z8+FKeIsjnMul8ZYA==} + /puppeteer/19.6.3: + resolution: {integrity: sha512-K03xTtGDwS6cBXX/EoqoZxglCUKcX2SLIl92fMnGMRjYpPGXoAV2yKEh3QXmXzKqfZXd8TxjjFww+tEttWv8kw==} engines: {node: '>=14.1.0'} requiresBuild: true dependencies: - cosmiconfig: 7.0.1 - devtools-protocol: 0.0.1056733 + cosmiconfig: 8.0.0 https-proxy-agent: 5.0.1 progress: 2.0.3 proxy-from-env: 1.1.0 - puppeteer-core: 19.2.2 + puppeteer-core: 19.6.3 transitivePeerDependencies: - bufferutil - encoding @@ -5244,7 +5193,7 @@ packages: dev: true /q/1.5.1: - resolution: {integrity: sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=} + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} engines: {node: '>=0.6.0', teleport: '>=0.2.0'} dev: true @@ -5275,7 +5224,7 @@ packages: dev: true /range-parser/1.2.0: - resolution: {integrity: sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=} + resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} engines: {node: '>= 0.6'} dev: true @@ -5285,7 +5234,7 @@ packages: dependencies: deep-extend: 0.6.0 ini: 1.3.8 - minimist: 1.2.5 + minimist: 1.2.7 strip-json-comments: 2.0.1 dev: true @@ -5294,7 +5243,7 @@ packages: dev: true /read-pkg-up/3.0.0: - resolution: {integrity: sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=} + resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} engines: {node: '>=4'} dependencies: find-up: 2.1.0 @@ -5311,7 +5260,7 @@ packages: dev: true /read-pkg/3.0.0: - resolution: {integrity: sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=} + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} engines: {node: '>=4'} dependencies: load-json-file: 4.0.0 @@ -5371,7 +5320,7 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true /redent/3.0.0: @@ -5382,6 +5331,15 @@ packages: strip-indent: 3.0.0 dev: true + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + dev: true + /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} @@ -5395,14 +5353,14 @@ packages: dev: true /registry-url/3.1.0: - resolution: {integrity: sha1-PU74cPc93h138M+aOBQyRE4XSUI=} + resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} engines: {node: '>=0.10.0'} dependencies: rc: 1.2.8 dev: true /require-directory/2.1.1: - resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} dev: true @@ -5429,7 +5387,7 @@ packages: /resolve/1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: - is-core-module: 2.8.1 + is-core-module: 2.11.0 path-parse: 1.0.7 dev: true @@ -5437,7 +5395,7 @@ packages: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true dependencies: - is-core-module: 2.10.0 + is-core-module: 2.11.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -5447,7 +5405,7 @@ packages: engines: {node: '>=8'} dependencies: onetime: 5.1.2 - signal-exit: 3.0.6 + signal-exit: 3.0.7 dev: true /reusify/1.0.4: @@ -5473,20 +5431,20 @@ packages: inherits: 2.0.4 dev: true - /rollup-plugin-esbuild/5.0.0_ejjt5bxqy7rglzzuwkobwucgry: + /rollup-plugin-esbuild/5.0.0_vnogblvxo6egyqdp3slxc3bipy: resolution: {integrity: sha512-1cRIOHAPh8WQgdQQyyvFdeOdxuiyk+zB5zJ5+YOwrZP4cJ0MT3Fs48pQxrZeyZHcn+klFherytILVfE4aYrneg==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} peerDependencies: esbuild: '>=0.10.1' rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.0 + '@rollup/pluginutils': 5.0.2_rollup@3.10.1 debug: 4.3.4 es-module-lexer: 1.1.0 - esbuild: 0.17.4 + esbuild: 0.17.5 joycon: 3.1.1 jsonc-parser: 3.2.0 - rollup: 3.10.0 + rollup: 3.10.1 transitivePeerDependencies: - supports-color dev: true @@ -5496,7 +5454,7 @@ packages: deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. dependencies: estree-walker: 0.6.1 - magic-string: 0.25.7 + magic-string: 0.25.9 rollup-pluginutils: 2.8.2 dev: true @@ -5526,13 +5484,13 @@ packages: rollup-plugin-inject: 3.0.2 dev: true - /rollup-plugin-polyfill-node/0.11.0_rollup@3.10.0: + /rollup-plugin-polyfill-node/0.11.0_rollup@3.10.1: resolution: {integrity: sha512-5t+qhq4LAQKQBgbPOQJEoxxGzU5b+zLfvzpUAGy9u0MCMs8y+mrjUAv8+xrkWdxnwXQwJtjmCMnA9lCflsMzNw==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 dependencies: - '@rollup/plugin-inject': 5.0.2_rollup@3.10.0 - rollup: 3.10.0 + '@rollup/plugin-inject': 5.0.3_rollup@3.10.1 + rollup: 3.10.1 dev: true /rollup-pluginutils/2.8.2: @@ -5541,8 +5499,8 @@ packages: estree-walker: 0.6.1 dev: true - /rollup/3.10.0: - resolution: {integrity: sha512-JmRYz44NjC1MjVF2VKxc0M1a97vn+cDxeqWmnwyAF4FvpjK8YFdHpaqvQB+3IxCvX05vJxKZkoMDU8TShhmJVA==} + /rollup/3.10.1: + resolution: {integrity: sha512-3Er+yel3bZbZX1g2kjVM+FW+RUWDxbG87fcqFM5/9HbPCTpbVp6JOLn7jlxnNlbu7s/N/uDA4EV/91E2gWnxzw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -5555,10 +5513,10 @@ packages: queue-microtask: 1.2.3 dev: true - /rxjs/7.4.0: - resolution: {integrity: sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==} + /rxjs/7.8.0: + resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} dependencies: - tslib: 2.1.0 + tslib: 2.5.0 dev: true /safe-buffer/5.1.2: @@ -5568,18 +5526,26 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true + /safe-regex-test/1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-regex: 1.1.4 + dev: true + /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /sass/1.45.0: - resolution: {integrity: sha512-ONy5bjppoohtNkFJRqdz1gscXamMzN3wQy1YH9qO2FiNpgjLhpz/IPRGg0PpCjyz/pWfCOaNEaiEGCcjOFAjqw==} - engines: {node: '>=8.9.0'} + /sass/1.58.0: + resolution: {integrity: sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==} + engines: {node: '>=12.0.0'} hasBin: true dependencies: - chokidar: 3.5.2 - immutable: 4.0.0 - source-map-js: 1.0.1 + chokidar: 3.5.3 + immutable: 4.2.3 + source-map-js: 1.0.2 dev: true /saxes/6.0.0: @@ -5590,7 +5556,7 @@ packages: dev: true /semver-compare/1.0.0: - resolution: {integrity: sha1-De4hahyUGrN+nvsXiPavxf9VN/w=} + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} dev: true /semver/2.3.2: @@ -5608,14 +5574,6 @@ packages: hasBin: true dev: true - /semver/7.3.5: - resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - /semver/7.3.8: resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} engines: {node: '>=10'} @@ -5654,9 +5612,8 @@ packages: - supports-color dev: true - /set-immediate-shim/1.0.1: - resolution: {integrity: sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=} - engines: {node: '>=0.10.0'} + /setimmediate/1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} dev: false /sha.js/2.4.11: @@ -5668,7 +5625,7 @@ packages: dev: true /shebang-command/1.2.0: - resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=} + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 @@ -5682,7 +5639,7 @@ packages: dev: true /shebang-regex/1.0.0: - resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=} + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} engines: {node: '>=0.10.0'} dev: true @@ -5691,24 +5648,24 @@ packages: engines: {node: '>=8'} dev: true - /shell-quote/1.7.3: - resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} + /shell-quote/1.8.0: + resolution: {integrity: sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==} dev: true /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.1 - object-inspect: 1.11.1 + get-intrinsic: 1.2.0 + object-inspect: 1.12.3 dev: true /siginfo/2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} dev: true - /signal-exit/3.0.6: - resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==} + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true /simple-git-hooks/2.8.1: @@ -5753,14 +5710,9 @@ packages: is-fullwidth-code-point: 4.0.0 dev: true - /source-map-js/1.0.1: - resolution: {integrity: sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==} - engines: {node: '>=0.10.0'} - /source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: true /source-map-support/0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -5769,23 +5721,20 @@ packages: source-map: 0.6.1 dev: true - /source-map/0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - dev: true - /source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.11 + spdx-license-ids: 3.0.12 dev: true /spdx-exceptions/2.3.0: @@ -5796,11 +5745,11 @@ packages: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.11 + spdx-license-ids: 3.0.12 dev: true - /spdx-license-ids/3.0.11: - resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} + /spdx-license-ids/3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} dev: true /split/1.0.1: @@ -5816,15 +5765,15 @@ packages: dev: true /sprintf-js/1.0.3: - resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true /stackback/0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true - /std-env/3.3.1: - resolution: {integrity: sha512-3H20QlwQsSm2OvAxWIYhs+j01MzzqwMwGiiO1NQaJYZgJZFPuAbf95/DiKRBSTYIJ2FeGUc+B/6mPGcWP9dO3Q==} + /std-env/3.3.2: + resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==} dev: true /string-argv/0.3.1: @@ -5833,7 +5782,7 @@ packages: dev: true /string-hash/1.1.3: - resolution: {integrity: sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=} + resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} dev: true /string-range/1.2.2: @@ -5866,27 +5815,29 @@ packages: strip-ansi: 7.0.1 dev: true - /string.prototype.padend/3.1.3: - resolution: {integrity: sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==} + /string.prototype.padend/3.1.4: + resolution: {integrity: sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 + define-properties: 1.1.4 + es-abstract: 1.21.1 dev: true - /string.prototype.trimend/1.0.4: - resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} + /string.prototype.trimend/1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 + es-abstract: 1.21.1 dev: true - /string.prototype.trimstart/1.0.4: - resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} + /string.prototype.trimstart/1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 + es-abstract: 1.21.1 dev: true /string_decoder/0.10.31: @@ -5914,10 +5865,10 @@ packages: dev: true /strip-ansi/4.0.0: - resolution: {integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=} + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} engines: {node: '>=4'} dependencies: - ansi-regex: 3.0.0 + ansi-regex: 3.0.1 dev: true /strip-ansi/6.0.1: @@ -5935,12 +5886,12 @@ packages: dev: true /strip-bom/3.0.0: - resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} dev: true /strip-eof/1.0.0: - resolution: {integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=} + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} dev: true @@ -5969,7 +5920,7 @@ packages: /strip-literal/1.0.0: resolution: {integrity: sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ==} dependencies: - acorn: 8.8.1 + acorn: 8.8.2 dev: true /supports-color/5.5.0: @@ -5995,11 +5946,11 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /table/6.7.5: - resolution: {integrity: sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==} + /table/6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} engines: {node: '>=10.0.0'} dependencies: - ajv: 8.8.2 + ajv: 8.12.0 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 @@ -6040,19 +5991,19 @@ packages: dev: true /term-size/1.2.0: - resolution: {integrity: sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=} + resolution: {integrity: sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==} engines: {node: '>=4'} dependencies: execa: 0.7.0 dev: true - /terser/5.15.1: - resolution: {integrity: sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==} + /terser/5.16.2: + resolution: {integrity: sha512-JKuM+KvvWVqT7muHVyrwv7FVRPnmHDwF6XwoIxdbF5Witi0vu99RYpxDexpJndXt3jbZZmmWr2/mQa6HvSNdSg==} engines: {node: '>=10'} hasBin: true dependencies: '@jridgewell/source-map': 0.3.2 - acorn: 8.8.1 + acorn: 8.8.2 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -6072,11 +6023,11 @@ packages: dev: true /text-table/0.2.0: - resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true /through/2.3.8: - resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true /through2/2.0.5: @@ -6100,8 +6051,8 @@ packages: resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} dev: true - /tinypool/0.3.0: - resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} + /tinypool/0.3.1: + resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} engines: {node: '>=14.0.0'} dev: true @@ -6111,7 +6062,7 @@ packages: dev: true /to-fast-properties/2.0.0: - resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} /to-regex-range/5.0.1: @@ -6121,12 +6072,12 @@ packages: is-number: 7.0.0 dev: true - /todomvc-app-css/2.4.1: - resolution: {integrity: sha512-1mZYRG435VmqIw1WahBYhAJbyfH4HnRNI8EgF4ypK4R1RjwgBBvXd0N57ZwCa1lbHzYBraA6+dVyAg3GAPEACQ==} + /todomvc-app-css/2.4.2: + resolution: {integrity: sha512-ViAkQ7ed89rmhFIGRsT36njN+97z8+s3XsJnB8E2IKOq+/SLD/6PtSvmTtiwUcVk39qPcjAc/OyeDys4LoJUVg==} dev: true /token-stream/1.0.0: - resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} + resolution: {integrity: sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=} dev: true /tough-cookie/4.1.2: @@ -6134,7 +6085,7 @@ packages: engines: {node: '>=6'} dependencies: psl: 1.9.0 - punycode: 2.1.1 + punycode: 2.3.0 universalify: 0.2.0 url-parse: 1.5.10 dev: true @@ -6147,7 +6098,7 @@ packages: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} dependencies: - punycode: 2.1.1 + punycode: 2.3.0 dev: true /trim-newlines/3.0.1: @@ -6159,22 +6110,18 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib/2.1.0: - resolution: {integrity: sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==} - dev: true - - /tslib/2.4.0: - resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + /tslib/2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} dev: true - /tsutils/3.21.0_typescript@4.8.2: + /tsutils/3.21.0_typescript@4.9.5: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.8.2 + typescript: 4.9.5 dev: true /type-check/0.3.2: @@ -6221,6 +6168,14 @@ packages: engines: {node: '>=8'} dev: true + /typed-array-length/1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + dev: true + /typedarray-to-buffer/1.0.4: resolution: {integrity: sha512-vjMKrfSoUDN8/Vnqitw2FmstOfuJ73G6CrSEKnf11A6RmasVxHqfeBcnTb6RsL4pTMuV5Zsv9IiHRphMZyckUw==} dev: true @@ -6235,8 +6190,8 @@ packages: hasBin: true dev: true - /typescript/4.8.2: - resolution: {integrity: sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==} + /typescript/4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -6253,12 +6208,12 @@ packages: dev: true optional: true - /unbox-primitive/1.0.1: - resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - function-bind: 1.1.1 - has-bigints: 1.0.1 - has-symbols: 1.0.2 + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 dev: true @@ -6279,6 +6234,17 @@ packages: engines: {node: '>= 4.0.0'} dev: true + /update-browserslist-db/1.0.10_browserslist@4.21.5: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /update-check/1.5.2: resolution: {integrity: sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==} dependencies: @@ -6289,7 +6255,7 @@ packages: /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.1.1 + punycode: 2.3.0 dev: true /url-parse/1.5.10: @@ -6300,7 +6266,7 @@ packages: dev: true /util-deprecate/1.0.2: - resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} /uuid/3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} @@ -6319,18 +6285,18 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /validator/13.7.0: - resolution: {integrity: sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==} + /validator/13.9.0: + resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==} engines: {node: '>= 0.10'} dev: true /vary/1.1.2: - resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=} + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} dev: true - /vite-node/0.28.2_cuughdtwg7b3rwlnomrzdiszke: - resolution: {integrity: sha512-zyiJ3DLs9zXign4P2MD4PQk+7rdT+JkHukgmmS0KuImbCQ7WnCdea5imQVeT6OtUsBwsLztJxQODUsinVr91tg==} + /vite-node/0.28.3_ghge5pqdvzsmxto52quo4r2say: + resolution: {integrity: sha512-uJJAOkgVwdfCX8PUQhqLyDOpkBS5+j+FdbsXoPVPDlvVjRkb/W/mLYQPSL6J+t8R0UV8tJSe8c9VyxVQNsDSyg==} engines: {node: '>=v14.16.0'} hasBin: true dependencies: @@ -6341,7 +6307,7 @@ packages: picocolors: 1.0.0 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 4.0.4_cuughdtwg7b3rwlnomrzdiszke + vite: 4.1.1_ghge5pqdvzsmxto52quo4r2say transitivePeerDependencies: - '@types/node' - less @@ -6352,8 +6318,8 @@ packages: - terser dev: true - /vite/4.0.4: - resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} + /vite/4.1.1: + resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -6380,13 +6346,13 @@ packages: esbuild: 0.16.17 postcss: 8.4.21 resolve: 1.22.1 - rollup: 3.10.0 + rollup: 3.10.1 optionalDependencies: fsevents: 2.3.2 dev: true - /vite/4.0.4_cuughdtwg7b3rwlnomrzdiszke: - resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} + /vite/4.1.1_ghge5pqdvzsmxto52quo4r2say: + resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -6410,53 +6376,18 @@ packages: terser: optional: true dependencies: - '@types/node': 16.18.2 + '@types/node': 16.18.11 esbuild: 0.16.17 postcss: 8.4.21 resolve: 1.22.1 - rollup: 3.10.0 - terser: 5.15.1 + rollup: 3.10.1 + terser: 5.16.2 optionalDependencies: fsevents: 2.3.2 dev: true - /vite/4.0.4_suj7upvbbzn7525gsozjyvtnxy: - resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 16.11.12 - esbuild: 0.16.17 - postcss: 8.4.21 - resolve: 1.22.1 - rollup: 3.10.0 - terser: 5.15.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /vitest/0.28.2_jsdom@21.1.0+terser@5.15.1: - resolution: {integrity: sha512-HJBlRla4Mng0OiZ8aWunCecJ6BzLDA4yuzuxiBuBU2MXjGB6I4zT7QgIBL/UrwGKlNxLwaDC5P/4OpeuTlW8yQ==} + /vitest/0.28.3_jsdom@21.1.0+terser@5.16.2: + resolution: {integrity: sha512-N41VPNf3VGJlWQizGvl1P5MGyv3ZZA2Zvh+2V8L6tYBAAuqqDK4zExunT1Cdb6dGfZ4gr+IMrnG8d4Z6j9ctPw==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -6479,12 +6410,12 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 16.18.2 - '@vitest/expect': 0.28.2 - '@vitest/runner': 0.28.2 - '@vitest/spy': 0.28.2 - '@vitest/utils': 0.28.2 - acorn: 8.8.1 + '@types/node': 16.18.11 + '@vitest/expect': 0.28.3 + '@vitest/runner': 0.28.3 + '@vitest/spy': 0.28.3 + '@vitest/utils': 0.28.3 + acorn: 8.8.2 acorn-walk: 8.2.0 cac: 6.7.14 chai: 4.3.7 @@ -6494,13 +6425,13 @@ packages: pathe: 1.1.0 picocolors: 1.0.0 source-map: 0.6.1 - std-env: 3.3.1 + std-env: 3.3.2 strip-literal: 1.0.0 tinybench: 2.3.1 - tinypool: 0.3.0 + tinypool: 0.3.1 tinyspy: 1.0.2 - vite: 4.0.4_cuughdtwg7b3rwlnomrzdiszke - vite-node: 0.28.2_cuughdtwg7b3rwlnomrzdiszke + vite: 4.1.1_ghge5pqdvzsmxto52quo4r2say + vite-node: 0.28.3_ghge5pqdvzsmxto52quo4r2say why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -6568,11 +6499,23 @@ packages: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 - is-number-object: 1.0.6 + is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 dev: true + /which-typed-array/1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: true + /which/1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -6608,8 +6551,8 @@ packages: resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/parser': 7.16.4 - '@babel/types': 7.16.0 + '@babel/parser': 7.20.15 + '@babel/types': 7.20.7 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 dev: true @@ -6620,7 +6563,7 @@ packages: dev: true /wordwrap/1.0.0: - resolution: {integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=} + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true /wrap-ansi/6.2.0: @@ -6642,11 +6585,11 @@ packages: dev: true /wrappy/1.0.2: - resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /ws/8.10.0: - resolution: {integrity: sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==} + /ws/8.11.0: + resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -6716,7 +6659,7 @@ packages: dev: true /yallist/2.1.2: - resolution: {integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=} + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} dev: true /yallist/3.1.1: @@ -6762,14 +6705,14 @@ packages: engines: {node: '>=12.20'} dev: true - /z-schema/5.0.4: - resolution: {integrity: sha512-gm/lx3hDzJNcLwseIeQVm1UcwhWIKpSB4NqH89pTBtFns4k/HDHudsICtvG05Bvw/Mv3jMyk700y5dadueLHdA==} + /z-schema/5.0.5: + resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} engines: {node: '>=8.0.0'} hasBin: true dependencies: lodash.get: 4.4.2 lodash.isequal: 4.5.0 - validator: 13.7.0 + validator: 13.9.0 optionalDependencies: - commander: 2.20.3 + commander: 9.5.0 dev: true diff --git a/rollup.config.mjs b/rollup.config.mjs index aec513cc3c5..9cf55744ed4 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -2,7 +2,6 @@ import { createRequire } from 'node:module' import { fileURLToPath } from 'node:url' import path from 'node:path' -import { readdirSync } from 'node:fs' import replace from '@rollup/plugin-replace' import json from '@rollup/plugin-json' import chalk from 'chalk' diff --git a/rollup.original.config.mjs b/rollup.original.config.mjs deleted file mode 100644 index e9a6e342096..00000000000 --- a/rollup.original.config.mjs +++ /dev/null @@ -1,379 +0,0 @@ -// @ts-check -import { createRequire } from 'module' -import { fileURLToPath } from 'url' -import path from 'path' -import ts from 'rollup-plugin-typescript2' -import replace from '@rollup/plugin-replace' -import json from '@rollup/plugin-json' -import chalk from 'chalk' -import commonJS from '@rollup/plugin-commonjs' -import polyfillNode from 'rollup-plugin-polyfill-node' -import { nodeResolve } from '@rollup/plugin-node-resolve' -import terser from '@rollup/plugin-terser' - -if (!process.env.TARGET) { - throw new Error('TARGET package must be specified via --environment flag.') -} - -const require = createRequire(import.meta.url) -const __dirname = fileURLToPath(new URL('.', import.meta.url)) - -const masterVersion = require('./package.json').version -const consolidatePkg = require('@vue/consolidate/package.json') - -const packagesDir = path.resolve(__dirname, 'packages') -const packageDir = path.resolve(packagesDir, process.env.TARGET) - -const resolve = p => path.resolve(packageDir, p) -const pkg = require(resolve(`package.json`)) -const packageOptions = pkg.buildOptions || {} -const name = packageOptions.filename || path.basename(packageDir) - -// ensure TS checks only once for each build -let hasTSChecked = false - -const outputConfigs = { - 'esm-bundler': { - file: resolve(`dist/${name}.esm-bundler.js`), - format: `es` - }, - 'esm-browser': { - file: resolve(`dist/${name}.esm-browser.js`), - format: `es` - }, - cjs: { - file: resolve(`dist/${name}.cjs.js`), - format: `cjs` - }, - global: { - file: resolve(`dist/${name}.global.js`), - format: `iife` - }, - // runtime-only builds, for main "vue" package only - 'esm-bundler-runtime': { - file: resolve(`dist/${name}.runtime.esm-bundler.js`), - format: `es` - }, - 'esm-browser-runtime': { - file: resolve(`dist/${name}.runtime.esm-browser.js`), - format: 'es' - }, - 'global-runtime': { - file: resolve(`dist/${name}.runtime.global.js`), - format: 'iife' - } -} - -const defaultFormats = ['esm-bundler', 'cjs'] -const inlineFormats = process.env.FORMATS && process.env.FORMATS.split(',') -const packageFormats = inlineFormats || packageOptions.formats || defaultFormats -const packageConfigs = process.env.PROD_ONLY - ? [] - : packageFormats.map(format => createConfig(format, outputConfigs[format])) - -if (process.env.NODE_ENV === 'production') { - packageFormats.forEach(format => { - if (packageOptions.prod === false) { - return - } - if (format === 'cjs') { - packageConfigs.push(createProductionConfig(format)) - } - if (/^(global|esm-browser)(-runtime)?/.test(format)) { - packageConfigs.push(createMinifiedConfig(format)) - } - }) -} - -export default packageConfigs - -function createConfig(format, output, plugins = []) { - if (!output) { - console.log(chalk.yellow(`invalid format: "${format}"`)) - process.exit(1) - } - - const isProductionBuild = - process.env.__DEV__ === 'false' || /\.prod\.js$/.test(output.file) - const isBundlerESMBuild = /esm-bundler/.test(format) - const isBrowserESMBuild = /esm-browser/.test(format) - const isServerRenderer = name === 'server-renderer' - const isNodeBuild = format === 'cjs' - const isGlobalBuild = /global/.test(format) - const isCompatPackage = pkg.name === '@vue/compat' - const isCompatBuild = !!packageOptions.compat - - output.exports = isCompatPackage ? 'auto' : 'named' - output.esModule = true - output.sourcemap = !!process.env.SOURCE_MAP - output.externalLiveBindings = false - - if (isGlobalBuild) { - output.name = packageOptions.name - } - - const shouldEmitDeclarations = - pkg.types && process.env.TYPES != null && !hasTSChecked - - const tsPlugin = ts({ - check: process.env.NODE_ENV === 'production' && !hasTSChecked, - tsconfig: path.resolve(__dirname, 'tsconfig.json'), - cacheRoot: path.resolve(__dirname, 'node_modules/.rts2_cache'), - tsconfigOverride: { - compilerOptions: { - target: isServerRenderer || isNodeBuild ? 'es2019' : 'es2015', - sourceMap: output.sourcemap, - declaration: shouldEmitDeclarations, - declarationMap: shouldEmitDeclarations - }, - exclude: ['**/__tests__', 'test-dts'] - } - }) - // we only need to check TS and generate declarations once for each build. - // it also seems to run into weird issues when checking multiple times - // during a single build. - hasTSChecked = true - - let entryFile = /runtime$/.test(format) ? `src/runtime.ts` : `src/index.ts` - - // the compat build needs both default AND named exports. This will cause - // Rollup to complain for non-ESM targets, so we use separate entries for - // esm vs. non-esm builds. - if (isCompatPackage && (isBrowserESMBuild || isBundlerESMBuild)) { - entryFile = /runtime$/.test(format) - ? `src/esm-runtime.ts` - : `src/esm-index.ts` - } - - let external = [] - const treeShakenDeps = ['source-map', '@babel/parser', 'estree-walker'] - - if (isGlobalBuild || isBrowserESMBuild || isCompatPackage) { - if (!packageOptions.enableNonBrowserBranches) { - // normal browser builds - non-browser only imports are tree-shaken, - // they are only listed here to suppress warnings. - external = treeShakenDeps - } - } else { - // Node / esm-bundler builds. - // externalize all direct deps unless it's the compat build. - external = [ - ...Object.keys(pkg.dependencies || {}), - ...Object.keys(pkg.peerDependencies || {}), - // for @vue/compiler-sfc / server-renderer - ...['path', 'url', 'stream'], - // somehow these throw warnings for runtime-* package builds - ...treeShakenDeps - ] - } - - // we are bundling forked consolidate.js in compiler-sfc which dynamically - // requires a ton of template engines which should be ignored. - let cjsIgnores = [] - if (pkg.name === '@vue/compiler-sfc') { - cjsIgnores = [ - ...Object.keys(consolidatePkg.devDependencies), - 'vm', - 'crypto', - 'react-dom/server', - 'teacup/lib/express', - 'arc-templates/dist/es5', - 'then-pug', - 'then-jade' - ] - } - - const nodePlugins = - (format === 'cjs' && Object.keys(pkg.devDependencies || {}).length) || - packageOptions.enableNonBrowserBranches - ? [ - commonJS({ - sourceMap: false, - ignore: cjsIgnores - }), - ...(format === 'cjs' ? [] : [polyfillNode()]), - nodeResolve() - ] - : [] - - if (format === 'cjs') { - nodePlugins.push(cjsReExportsPatchPlugin()) - } - - return { - input: resolve(entryFile), - // Global and Browser ESM builds inlines everything so that they can be - // used alone. - external, - plugins: [ - json({ - namedExports: false - }), - tsPlugin, - createReplacePlugin( - isProductionBuild, - isBundlerESMBuild, - isBrowserESMBuild, - // isBrowserBuild? - (isGlobalBuild || isBrowserESMBuild || isBundlerESMBuild) && - !packageOptions.enableNonBrowserBranches, - isGlobalBuild, - isNodeBuild, - isCompatBuild, - isServerRenderer - ), - ...nodePlugins, - ...plugins - ], - output, - onwarn: (msg, warn) => { - if (!/Circular/.test(msg)) { - warn(msg) - } - }, - treeshake: { - moduleSideEffects: false - } - } -} - -function createReplacePlugin( - isProduction, - isBundlerESMBuild, - isBrowserESMBuild, - isBrowserBuild, - isGlobalBuild, - isNodeBuild, - isCompatBuild, - isServerRenderer -) { - const replacements = { - __COMMIT__: `"${process.env.COMMIT}"`, - __VERSION__: `"${masterVersion}"`, - __DEV__: isBundlerESMBuild - ? // preserve to be handled by bundlers - `(process.env.NODE_ENV !== 'production')` - : // hard coded dev/prod builds - !isProduction, - // this is only used during Vue's internal tests - __TEST__: false, - // If the build is expected to run directly in the browser (global / esm builds) - __BROWSER__: isBrowserBuild, - __GLOBAL__: isGlobalBuild, - __ESM_BUNDLER__: isBundlerESMBuild, - __ESM_BROWSER__: isBrowserESMBuild, - // is targeting Node (SSR)? - __NODE_JS__: isNodeBuild, - // need SSR-specific branches? - __SSR__: isNodeBuild || isBundlerESMBuild || isServerRenderer, - - // for compiler-sfc browser build inlined deps - ...(isBrowserESMBuild - ? { - 'process.env': '({})', - 'process.platform': '""', - 'process.stdout': 'null' - } - : {}), - - // 2.x compat build - __COMPAT__: isCompatBuild, - - // feature flags - __FEATURE_SUSPENSE__: true, - __FEATURE_OPTIONS_API__: isBundlerESMBuild ? `__VUE_OPTIONS_API__` : true, - __FEATURE_PROD_DEVTOOLS__: isBundlerESMBuild - ? `__VUE_PROD_DEVTOOLS__` - : false, - ...(isProduction && isBrowserBuild - ? { - 'context.onError(': `/*#__PURE__*/ context.onError(`, - 'emitError(': `/*#__PURE__*/ emitError(`, - 'createCompilerError(': `/*#__PURE__*/ createCompilerError(`, - 'createDOMCompilerError(': `/*#__PURE__*/ createDOMCompilerError(` - } - : {}) - } - // allow inline overrides like - //__RUNTIME_COMPILE__=true yarn build runtime-core - Object.keys(replacements).forEach(key => { - if (key in process.env) { - replacements[key] = process.env[key] - } - }) - return replace({ - // @ts-ignore - values: replacements, - preventAssignment: true - }) -} - -function createProductionConfig(format) { - return createConfig(format, { - file: resolve(`dist/${name}.${format}.prod.js`), - format: outputConfigs[format].format - }) -} - -function createMinifiedConfig(format) { - return createConfig( - format, - { - file: outputConfigs[format].file.replace(/\.js$/, '.prod.js'), - format: outputConfigs[format].format - }, - [ - terser({ - module: /^esm/.test(format), - compress: { - ecma: 2015, - pure_getters: true - }, - safari10: true - }) - ] - ) -} - -// temporary patch for https://github.com/nodejs/cjs-module-lexer/issues/79 -// -// When importing a cjs module from esm, Node.js uses cjs-module-lexer to -// detect * re-exports from other packages. However, the detection logic is -// fragile and breaks when Rollup generates different code for the re-exports. -// We were locked on an old version of Rollup because of this. -// -// The latest versions of Node ships an updated version of cjs-module-lexer that -// has fixed https://github.com/nodejs/cjs-module-lexer/issues/38, however we -// still need to support older versions of Node that does not have the latest -// version of cjs-module-lexer (Node < 14.18) -// -// At the same time, we want to upgrade to Rollup 3 so we are not forever locked -// on an old version of Rollup. -// -// What this patch does: -// 1. Rewrite the for...in loop to Object.keys() so cjs-module-lexer can find it -// The for...in loop is only used when output.externalLiveBindings is set to -// false, and we do want to set it to false to avoid perf costs during SSR. -// 2. Also remove exports.hasOwnProperty check, which breaks the detection in -// Node.js versions that -// -// TODO in the future, we should no longer rely on this if we inline all deps -// in the main `vue` package. -function cjsReExportsPatchPlugin() { - const matcher = - /for \(var k in (\w+)\) {(\s+if \(k !== 'default') && !exports.hasOwnProperty\(k\)(\) exports\[k\] = (?:\w+)\[k\];\s+)}/ - return { - name: 'patch-cjs-re-exports', - renderChunk(code, _, options) { - if (matcher.test(code)) { - return code.replace(matcher, (_, r1, r2, r3) => { - return `Object.keys(${r1}).forEach(function(k) {${r2}${r3}});` - }) - } else if (options.file.endsWith('packages/vue/dist/vue.cjs.js')) { - // make sure we don't accidentally miss the rewrite in case Rollup - // changes the output again. - throw new Error('cjs build re-exports rewrite failed.') - } - } - } -} diff --git a/tsconfig.json b/tsconfig.json index 29c7aee3fe7..36b360eba85 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,6 +14,7 @@ "experimentalDecorators": true, "resolveJsonModule": true, "isolatedModules": true, + "skipLibCheck": true, "esModuleInterop": true, "removeComments": false, "jsx": "preserve", From 6213b73cd2be40aa56583b5cdf687ca741bf41be Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 09:54:15 +0800 Subject: [PATCH 007/999] build: custom const enum processing --- .eslintrc.js | 10 +- package.json | 2 + packages/compiler-ssr/src/errors.ts | 13 +- packages/reactivity/src/effect.ts | 12 +- packages/reactivity/src/index.ts | 7 +- packages/runtime-core/src/apiCreateApp.ts | 4 +- packages/runtime-core/src/apiWatch.ts | 7 +- packages/runtime-core/src/componentProps.ts | 2 +- pnpm-lock.yaml | 6 +- rollup.config.mjs | 7 +- scripts/const-enum.mjs | 192 ++++++++++++++++++++ 11 files changed, 243 insertions(+), 19 deletions(-) create mode 100644 scripts/const-enum.mjs diff --git a/.eslintrc.js b/.eslintrc.js index c0282ebd817..fe5e1493e0d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -17,13 +17,15 @@ module.exports = { ], // most of the codebase are expected to be env agnostic 'no-restricted-globals': ['error', ...DOMGlobals, ...NodeGlobals], - // since we target ES2015 for baseline support, we need to forbid object - // rest spread usage in destructure as it compiles into a verbose helper. - // TS now compiles assignment spread into Object.assign() calls so that - // is allowed. + 'no-restricted-syntax': [ 'error', + // since we target ES2015 for baseline support, we need to forbid object + // rest spread usage in destructure as it compiles into a verbose helper. 'ObjectPattern > RestElement', + // tsc compiles assignment spread into Object.assign() calls, but esbuild + // still generates verbose helpers, so spread assignment is also prohiboted + 'ObjectExpression > SpreadElement', 'AwaitExpression' ] }, diff --git a/package.json b/package.json index 161f0322fe1..7aef6ced254 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "node": ">=16.11.0" }, "devDependencies": { + "@babel/parser": "^7.20.15", "@babel/types": "^7.20.7", "@esbuild-plugins/node-modules-polyfill": "^0.1.4", "@microsoft/api-extractor": "~7.20.0", @@ -83,6 +84,7 @@ "jsdom": "^21.1.0", "lint-staged": "^10.2.10", "lodash": "^4.17.15", + "magic-string": "^0.27.0", "marked": "^4.0.10", "minimist": "^1.2.0", "npm-run-all": "^4.1.5", diff --git a/packages/compiler-ssr/src/errors.ts b/packages/compiler-ssr/src/errors.ts index 755379fb675..67622c1beb9 100644 --- a/packages/compiler-ssr/src/errors.ts +++ b/packages/compiler-ssr/src/errors.ts @@ -17,11 +17,22 @@ export function createSSRCompilerError( } export const enum SSRErrorCodes { - X_SSR_UNSAFE_ATTR_NAME = DOMErrorCodes.__EXTEND_POINT__, + X_SSR_UNSAFE_ATTR_NAME = 62 /* DOMErrorCodes.__EXTEND_POINT__ */, X_SSR_NO_TELEPORT_TARGET, X_SSR_INVALID_AST_NODE } +if (__TEST__) { + // esbuild cannot infer const enum increments if first value is from another + // file, so we have to manually keep them in sync. this check ensures it + // errors out if there are collisions. + if (SSRErrorCodes.X_SSR_UNSAFE_ATTR_NAME < DOMErrorCodes.__EXTEND_POINT__) { + throw new Error( + 'SSRErrorCodes need to be updated to match extension point from core DOMErrorCodes.' + ) + } +} + export const SSRErrorMessages: { [code: number]: string } = { [SSRErrorCodes.X_SSR_UNSAFE_ATTR_NAME]: `Unsafe attribute name for SSR.`, [SSRErrorCodes.X_SSR_NO_TELEPORT_TARGET]: `Missing the 'to' prop on teleport element.`, diff --git a/packages/reactivity/src/effect.ts b/packages/reactivity/src/effect.ts index 5eb84bc48d7..130fc863f4f 100644 --- a/packages/reactivity/src/effect.ts +++ b/packages/reactivity/src/effect.ts @@ -248,10 +248,14 @@ export function trackEffects( dep.add(activeEffect!) activeEffect!.deps.push(dep) if (__DEV__ && activeEffect!.onTrack) { - activeEffect!.onTrack({ - effect: activeEffect!, - ...debuggerEventExtraInfo! - }) + activeEffect!.onTrack( + extend( + { + effect: activeEffect! + }, + debuggerEventExtraInfo! + ) + ) } } } diff --git a/packages/reactivity/src/index.ts b/packages/reactivity/src/index.ts index cbba32d3146..60707febef4 100644 --- a/packages/reactivity/src/index.ts +++ b/packages/reactivity/src/index.ts @@ -28,7 +28,7 @@ export { shallowReadonly, markRaw, toRaw, - ReactiveFlags, + ReactiveFlags /* @remove */, type Raw, type DeepReadonly, type ShallowReactive, @@ -66,4 +66,7 @@ export { getCurrentScope, onScopeDispose } from './effectScope' -export { TrackOpTypes, TriggerOpTypes } from './operations' +export { + TrackOpTypes /* @remove */, + TriggerOpTypes /* @remove */ +} from './operations' diff --git a/packages/runtime-core/src/apiCreateApp.ts b/packages/runtime-core/src/apiCreateApp.ts index c02597bed58..05c7ce31539 100644 --- a/packages/runtime-core/src/apiCreateApp.ts +++ b/packages/runtime-core/src/apiCreateApp.ts @@ -22,7 +22,7 @@ import { warn } from './warning' import { createVNode, cloneVNode, VNode } from './vnode' import { RootHydrateFunction } from './hydration' import { devtoolsInitApp, devtoolsUnmountApp } from './devtools' -import { isFunction, NO, isObject } from '@vue/shared' +import { isFunction, NO, isObject, extend } from '@vue/shared' import { version } from '.' import { installAppCompatProperties } from './compat/global' import { NormalizedPropsOptions } from './componentProps' @@ -193,7 +193,7 @@ export function createAppAPI( ): CreateAppFunction { return function createApp(rootComponent, rootProps = null) { if (!isFunction(rootComponent)) { - rootComponent = { ...rootComponent } + rootComponent = extend({}, rootComponent) } if (rootProps != null && !isObject(rootProps)) { diff --git a/packages/runtime-core/src/apiWatch.ts b/packages/runtime-core/src/apiWatch.ts index ac5778cd435..631299fdc57 100644 --- a/packages/runtime-core/src/apiWatch.ts +++ b/packages/runtime-core/src/apiWatch.ts @@ -22,7 +22,8 @@ import { remove, isMap, isSet, - isPlainObject + isPlainObject, + extend } from '@vue/shared' import { currentInstance, @@ -94,7 +95,7 @@ export function watchPostEffect( return doWatch( effect, null, - __DEV__ ? { ...options, flush: 'post' } : { flush: 'post' } + __DEV__ ? extend({}, options as any, { flush: 'post' }) : { flush: 'post' } ) } @@ -105,7 +106,7 @@ export function watchSyncEffect( return doWatch( effect, null, - __DEV__ ? { ...options, flush: 'sync' } : { flush: 'sync' } + __DEV__ ? extend({}, options as any, { flush: 'sync' }) : { flush: 'sync' } ) } diff --git a/packages/runtime-core/src/componentProps.ts b/packages/runtime-core/src/componentProps.ts index fa756fa32f2..db8bf73a9a1 100644 --- a/packages/runtime-core/src/componentProps.ts +++ b/packages/runtime-core/src/componentProps.ts @@ -522,7 +522,7 @@ export function normalizePropsOptions( if (validatePropName(normalizedKey)) { const opt = raw[key] const prop: NormalizedProp = (normalized[normalizedKey] = - isArray(opt) || isFunction(opt) ? { type: opt } : { ...opt }) + isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt)) if (prop) { const booleanIndex = getTypeIndex(Boolean, prop.type) const stringIndex = getTypeIndex(String, prop.type) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b65ba02501e..78a878323f7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,7 @@ importers: .: specifiers: + '@babel/parser': ^7.20.15 '@babel/types': ^7.20.7 '@esbuild-plugins/node-modules-polyfill': ^0.1.4 '@microsoft/api-extractor': ~7.20.0 @@ -33,6 +34,7 @@ importers: jsdom: ^21.1.0 lint-staged: ^10.2.10 lodash: ^4.17.15 + magic-string: ^0.27.0 marked: ^4.0.10 minimist: ^1.2.0 npm-run-all: ^4.1.5 @@ -50,11 +52,12 @@ importers: terser: ^5.15.1 todomvc-app-css: ^2.3.0 tslib: ^2.4.0 - typescript: ^4.8.0 + typescript: ^4.9.0 vite: ^4.0.4 vitest: ^0.28.2 vue: workspace:* devDependencies: + '@babel/parser': 7.20.15 '@babel/types': 7.20.7 '@esbuild-plugins/node-modules-polyfill': 0.1.4_esbuild@0.17.5 '@microsoft/api-extractor': 7.20.1 @@ -84,6 +87,7 @@ importers: jsdom: 21.1.0 lint-staged: 10.5.4 lodash: 4.17.21 + magic-string: 0.27.0 marked: 4.2.12 minimist: 1.2.7 npm-run-all: 4.1.5 diff --git a/rollup.config.mjs b/rollup.config.mjs index 9cf55744ed4..84b44478d21 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -12,6 +12,8 @@ import terser from '@rollup/plugin-terser' import esbuild from 'rollup-plugin-esbuild' import alias from '@rollup/plugin-alias' import { entries } from './scripts/aliases.mjs' +import { constEnum } from './scripts/const-enum.mjs' +import { writeFileSync } from 'node:fs' if (!process.env.TARGET) { throw new Error('TARGET package must be specified via --environment flag.') @@ -31,6 +33,8 @@ const pkg = require(resolve(`package.json`)) const packageOptions = pkg.buildOptions || {} const name = packageOptions.filename || path.basename(packageDir) +const [enumPlugin, enumDefines] = await constEnum() + const outputConfigs = { 'esm-bundler': { file: resolve(`dist/${name}.esm-bundler.js`), @@ -175,7 +179,7 @@ function createConfig(format, output, plugins = []) { // esbuild define is a bit strict and only allows literal json or identifiers // so we still need replace plugin in some cases function resolveReplace() { - const replacements = {} + const replacements = { ...enumDefines } if (isProductionBuild && isBrowserBuild) { Object.assign(replacements, { @@ -282,6 +286,7 @@ function createConfig(format, output, plugins = []) { alias({ entries }), + enumPlugin, ...resolveReplace(), esbuild({ tsconfig: path.resolve(__dirname, 'tsconfig.json'), diff --git a/scripts/const-enum.mjs b/scripts/const-enum.mjs new file mode 100644 index 00000000000..5942b795c03 --- /dev/null +++ b/scripts/const-enum.mjs @@ -0,0 +1,192 @@ +// @ts-check + +/** + * We use rollup-plugin-esbuild for faster builds, but esbuild in insolation + * mode compiles const enums into runtime enums, bloating bundle size. + * + * Here we pre-process all the const enums in the project and turn them into + * global replacements, and remove the original declarations and re-exports. + * + * This erases the const enums before the esbuild transform so that we can + * leverage esbuild's speed while retaining the DX and bundle size benefits + * of const enums. + * + * This file is expected to be executed with project root as cwd. + */ + +import execa from 'execa' +import { readFileSync } from 'node:fs' +import { parse } from '@babel/parser' +import path from 'node:path' +import MagicString from 'magic-string' + +function evaluate(exp) { + return new Function(`return ${exp}`)() +} + +/** + * @returns {Promise<[import('rollup').Plugin, Record]>} + */ +export async function constEnum() { + /** + * @type {{ ranges: Record, defines: Record }} + */ + const enumData = { + ranges: {}, + defines: {} + } + + const knowEnums = new Set() + + // 1. grep for files with exported const enum + const { stdout } = await execa('git', ['grep', `export const enum`]) + const files = [...new Set(stdout.split('\n').map(line => line.split(':')[0]))] + + // 2. parse matched files to collect enum info + for (const relativeFile of files) { + const file = path.resolve(process.cwd(), relativeFile) + const content = readFileSync(file, 'utf-8') + const ast = parse(content, { + plugins: ['typescript'], + sourceType: 'module' + }) + + for (const node of ast.program.body) { + if ( + node.type === 'ExportNamedDeclaration' && + node.declaration && + node.declaration.type === 'TSEnumDeclaration' + ) { + if (file in enumData.ranges) { + // @ts-ignore + enumData.ranges[file].push([node.start, node.end]) + } else { + // @ts-ignore + enumData.ranges[file] = [[node.start, node.end]] + } + + const decl = node.declaration + let lastInitialized + for (let i = 0; i < decl.members.length; i++) { + const e = decl.members[i] + const id = decl.id.name + knowEnums.add(id) + const key = e.id.type === 'Identifier' ? e.id.name : e.id.value + const fullKey = `${id}.${key}` + const init = e.initializer + if (init) { + let value + if ( + init.type === 'StringLiteral' || + init.type === 'NumericLiteral' + ) { + value = init.value + } + + // e.g. 1 << 2 + if (init.type === 'BinaryExpression') { + // @ts-ignore assume all operands are literals + const exp = `${init.left.value}${init.operator}${init.right.value}` + value = evaluate(exp) + } + + if (init.type === 'UnaryExpression') { + // @ts-ignore assume all operands are literals + const exp = `${init.operator}${init.argument.value}` + value = evaluate(exp) + } + + if (value === undefined) { + throw new Error( + `unhandled initializer type ${init.type} for ${fullKey} in ${file}` + ) + } + enumData.defines[fullKey] = JSON.stringify(value) + lastInitialized = value + } else { + if (lastInitialized === undefined) { + // first initialized + enumData.defines[fullKey] = `0` + lastInitialized = 0 + } else if (typeof lastInitialized === 'number') { + enumData.defines[fullKey] = String(++lastInitialized) + } else { + // should not happen + throw new Error(`wrong enum initialization sequence in ${file}`) + } + } + } + } + } + } + + // construct a regex for matching re-exports of known const enums + const reExportsRE = new RegExp( + `export {[^}]*?\\b(${[...knowEnums].join('|')})\\b[^]*?}` + ) + + // 3. during transform: + // 3.1 files w/ const enum declaration: remove delcaration + // 3.2 files using const enum: inject into esbuild define + /** + * @type {import('rollup').Plugin} + */ + const plugin = { + name: 'remove-const-enum', + transform(code, id) { + let s + + if (id in enumData.ranges) { + s = s || new MagicString(code) + for (const [start, end] of enumData.ranges[id]) { + s.remove(start, end) + } + } + + // check for const enum re-exports that must be removed + if (reExportsRE.test(code)) { + s = s || new MagicString(code) + const ast = parse(code, { + plugins: ['typescript'], + sourceType: 'module' + }) + for (const node of ast.program.body) { + if ( + node.type === 'ExportNamedDeclaration' && + node.exportKind !== 'type' && + node.source + ) { + for (let i = 0; i < node.specifiers.length; i++) { + const spec = node.specifiers[i] + if ( + spec.type === 'ExportSpecifier' && + spec.exportKind !== 'type' && + knowEnums.has(spec.local.name) + ) { + if (i === 0) { + // first + const next = node.specifiers[i + 1] + // @ts-ignore + s.remove(spec.start, next ? next.start : spec.end) + } else { + // locate the end of prev + // @ts-ignore + s.remove(node.specifiers[i - 1].end, spec.end) + } + } + } + } + } + } + + if (s) { + return { + code: s.toString(), + map: s.generateMap() + } + } + } + } + + return [plugin, enumData.defines] +} From e145fe3c2829197dd972666d45c7227ba38aca33 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 15:48:12 +0800 Subject: [PATCH 008/999] build: use rollup-plugin-dts for dts build --- .gitignore | 2 + package.json | 8 ++-- pnpm-lock.yaml | 98 +++++++++++++++++++++++++------------------ rollup.dts.config.mjs | 53 +++++++++++++++++++++++ scripts/aliases.mjs | 21 ++++++++-- tsconfig.build.json | 15 +++++++ tsconfig.json | 2 +- 7 files changed, 151 insertions(+), 48 deletions(-) create mode 100644 rollup.dts.config.mjs create mode 100644 tsconfig.build.json diff --git a/.gitignore b/.gitignore index 75c8139bd9b..810f8852690 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ TODOs.md *.log .idea .eslintcache +dts-build/packages +*.tsbuildinfo diff --git a/package.json b/package.json index 7aef6ced254..befa8188be9 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "scripts": { "dev": "node scripts/dev.mjs", "build": "node scripts/build.mjs", + "build-dts": "tsc -p tsconfig.build.json && rollup -c rollup.dts.config.mjs", "size": "run-s size-global size-baseline", "size-global": "node scripts/build.mjs vue runtime-dom -f global -p", "size-baseline": "node scripts/build.mjs runtime-dom runtime-core reactivity shared -f esm-bundler && cd packages/size-check && vite build && node brotli", @@ -15,8 +16,8 @@ "test": "vitest", "test-unit": "vitest -c vitest.unit.config.ts", "test-e2e": "node scripts/build.mjs vue -f global -d && vitest -c vitest.e2e.config.ts", - "test-dts": "node scripts/build.mjs shared reactivity runtime-core runtime-dom -dt -f esm-bundler && npm run test-dts-only", - "test-dts-only": "tsc -p ./test-dts/tsconfig.json && tsc -p ./test-dts/tsconfig.build.json", + "test-dts": "run-s build-dts test-dts-only", + "test-dts-only": "tsc -p ./test-dts/tsconfig.build.json", "test-coverage": "vitest -c vitest.unit.config.ts --coverage", "release": "node scripts/release.mjs", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", @@ -57,7 +58,7 @@ "@babel/parser": "^7.20.15", "@babel/types": "^7.20.7", "@esbuild-plugins/node-modules-polyfill": "^0.1.4", - "@microsoft/api-extractor": "~7.20.0", + "@microsoft/api-extractor": "~7.34.2", "@rollup/plugin-alias": "^4.0.3", "@rollup/plugin-commonjs": "^23.0.2", "@rollup/plugin-json": "^5.0.1", @@ -92,6 +93,7 @@ "pug": "^3.0.1", "puppeteer": "^19.2.2", "rollup": "~3.10.0", + "rollup-plugin-dts": "^5.1.1", "rollup-plugin-esbuild": "^5.0.0", "rollup-plugin-node-builtins": "^2.1.2", "rollup-plugin-node-globals": "^1.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 78a878323f7..f3adc1b9b1c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ importers: '@babel/parser': ^7.20.15 '@babel/types': ^7.20.7 '@esbuild-plugins/node-modules-polyfill': ^0.1.4 - '@microsoft/api-extractor': ~7.20.0 + '@microsoft/api-extractor': ~7.34.2 '@rollup/plugin-alias': ^4.0.3 '@rollup/plugin-commonjs': ^23.0.2 '@rollup/plugin-json': ^5.0.1 @@ -42,6 +42,7 @@ importers: pug: ^3.0.1 puppeteer: ^19.2.2 rollup: ~3.10.0 + rollup-plugin-dts: ^5.1.1 rollup-plugin-esbuild: ^5.0.0 rollup-plugin-node-builtins: ^2.1.2 rollup-plugin-node-globals: ^1.4.0 @@ -60,7 +61,7 @@ importers: '@babel/parser': 7.20.15 '@babel/types': 7.20.7 '@esbuild-plugins/node-modules-polyfill': 0.1.4_esbuild@0.17.5 - '@microsoft/api-extractor': 7.20.1 + '@microsoft/api-extractor': 7.34.2_@types+node@16.18.11 '@rollup/plugin-alias': 4.0.3_rollup@3.10.1 '@rollup/plugin-commonjs': 23.0.7_rollup@3.10.1 '@rollup/plugin-json': 5.0.2_rollup@3.10.1 @@ -95,6 +96,7 @@ importers: pug: 3.0.2 puppeteer: 19.6.3 rollup: 3.10.1 + rollup-plugin-dts: 5.1.1_3md6k4iljipbt7fzll35epzd3m rollup-plugin-esbuild: 5.0.0_vnogblvxo6egyqdp3slxc3bipy rollup-plugin-node-builtins: 2.1.2 rollup-plugin-node-globals: 1.4.0 @@ -1000,43 +1002,47 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@microsoft/api-extractor-model/7.16.0: - resolution: {integrity: sha512-0FOrbNIny8mzBrzQnSIkEjAXk0JMSnPmWYxt3ZDTPVg9S8xIPzB6lfgTg9+Mimu0RKCpGKBpd+v2WcR5vGzyUQ==} + /@microsoft/api-extractor-model/7.26.2_@types+node@16.18.11: + resolution: {integrity: sha512-V9tTHbYTNelTrNDXBzeDlszq29nQcjJdP6s27QJiATbqSRjEbKTeztlSVsCRHL2Wkkv5IN5jT4xkYjnFFPbK0A==} dependencies: - '@microsoft/tsdoc': 0.13.2 - '@microsoft/tsdoc-config': 0.15.2 - '@rushstack/node-core-library': 3.45.1 + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.55.0_@types+node@16.18.11 + transitivePeerDependencies: + - '@types/node' dev: true - /@microsoft/api-extractor/7.20.1: - resolution: {integrity: sha512-T7cqcK+JpvHGOj7cD2ZCCWS7Xgru1uOqZwrV/FSUdyKVs5fopZcbBSuetwD/akst3O7Ypryg3UOLP54S/vnVmA==} + /@microsoft/api-extractor/7.34.2_@types+node@16.18.11: + resolution: {integrity: sha512-oREyUU7p3JgjrqapJxEHe83gA1SXOWgaA4XCiY9PvsiLkgGHtn2ibTRgw9GCI/4kZzcb+OQv5waUDxsnQSKfwQ==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.16.0 - '@microsoft/tsdoc': 0.13.2 - '@microsoft/tsdoc-config': 0.15.2 - '@rushstack/node-core-library': 3.45.1 - '@rushstack/rig-package': 0.3.8 - '@rushstack/ts-command-line': 4.10.7 + '@microsoft/api-extractor-model': 7.26.2_@types+node@16.18.11 + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.55.0_@types+node@16.18.11 + '@rushstack/rig-package': 0.3.17 + '@rushstack/ts-command-line': 4.13.1 colors: 1.2.5 lodash: 4.17.21 - resolve: 1.17.0 + resolve: 1.22.1 semver: 7.3.8 source-map: 0.6.1 - typescript: 4.5.5 + typescript: 4.8.4 + transitivePeerDependencies: + - '@types/node' dev: true - /@microsoft/tsdoc-config/0.15.2: - resolution: {integrity: sha512-mK19b2wJHSdNf8znXSMYVShAHktVr/ib0Ck2FA3lsVBSEhSI/TfXT7DJQkAYgcztTuwazGcg58ZjYdk0hTCVrA==} + /@microsoft/tsdoc-config/0.16.2: + resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} dependencies: - '@microsoft/tsdoc': 0.13.2 + '@microsoft/tsdoc': 0.14.2 ajv: 6.12.6 jju: 1.4.0 resolve: 1.19.0 dev: true - /@microsoft/tsdoc/0.13.2: - resolution: {integrity: sha512-WrHvO8PDL8wd8T2+zBGKrMwVL5IyzR3ryWUsl0PXgEV0QHup4mTLi0QcATefGI6Gx9Anu7vthPyyyLpY0EpiQg==} + /@microsoft/tsdoc/0.14.2: + resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true /@nodelib/fs.scandir/2.1.5: @@ -1179,29 +1185,33 @@ packages: rollup: 3.10.1 dev: true - /@rushstack/node-core-library/3.45.1: - resolution: {integrity: sha512-BwdssTNe007DNjDBxJgInHg8ePytIPyT0La7ZZSQZF9+rSkT42AygXPGvbGsyFfEntjr4X37zZSJI7yGzL16cQ==} + /@rushstack/node-core-library/3.55.0_@types+node@16.18.11: + resolution: {integrity: sha512-6lSel8w3DeGaD/JCKw64wfezEBijlCQlMwBoYg9Ci5VPy+dZ+FpBkIBrY8mi3Ge4xNzr4gyTbQ5XEt0QP1Kv/w==} + peerDependencies: + '@types/node': ^14.18.36 + peerDependenciesMeta: + '@types/node': + optional: true dependencies: - '@types/node': 12.20.24 + '@types/node': 16.18.11 colors: 1.2.5 fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.17.0 + resolve: 1.22.1 semver: 7.3.8 - timsort: 0.3.0 z-schema: 5.0.5 dev: true - /@rushstack/rig-package/0.3.8: - resolution: {integrity: sha512-MDWg1xovea99PWloSiYMjFcCLsrdjFtYt6aOyHNs5ojn5mxrzR6U9F83hvbQjTWnKPMvZtr0vcek+4n+OQOp3Q==} + /@rushstack/rig-package/0.3.17: + resolution: {integrity: sha512-nxvAGeIMnHl1LlZSQmacgcRV4y1EYtgcDIrw6KkeVjudOMonlxO482PhDj3LVZEp6L7emSf6YSO2s5JkHlwfZA==} dependencies: resolve: 1.17.0 strip-json-comments: 3.1.1 dev: true - /@rushstack/ts-command-line/4.10.7: - resolution: {integrity: sha512-CjS+DfNXUSO5Ab2wD1GBGtUTnB02OglRWGqfaTcac9Jn45V5MeUOsq/wA8wEeS5Y/3TZ2P1k+IWdVDiuOFP9Og==} + /@rushstack/ts-command-line/4.13.1: + resolution: {integrity: sha512-UTQMRyy/jH1IS2U+6pyzyn9xQ2iMcoUKkTcZUzOP/aaMiKlWLwCTDiBVwhw/M1crDx6apF9CwyjuWO9r1SBdJQ==} dependencies: '@types/argparse': 1.0.38 argparse: 1.0.10 @@ -1252,10 +1262,6 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/node/12.20.24: - resolution: {integrity: sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ==} - dev: true - /@types/node/16.18.11: resolution: {integrity: sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==} dev: true @@ -5435,6 +5441,20 @@ packages: inherits: 2.0.4 dev: true + /rollup-plugin-dts/5.1.1_3md6k4iljipbt7fzll35epzd3m: + resolution: {integrity: sha512-zpgo52XmnLg8w4k3MScinFHZK1+ro6r7uVe34fJ0Ee8AM45FvgvTuvfWWaRgIpA4pQ1BHJuu2ospncZhkcJVeA==} + engines: {node: '>=v14'} + peerDependencies: + rollup: ^3.0.0 + typescript: ^4.1 + dependencies: + magic-string: 0.27.0 + rollup: 3.10.1 + typescript: 4.9.5 + optionalDependencies: + '@babel/code-frame': 7.18.6 + dev: true + /rollup-plugin-esbuild/5.0.0_vnogblvxo6egyqdp3slxc3bipy: resolution: {integrity: sha512-1cRIOHAPh8WQgdQQyyvFdeOdxuiyk+zB5zJ5+YOwrZP4cJ0MT3Fs48pQxrZeyZHcn+klFherytILVfE4aYrneg==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -6047,10 +6067,6 @@ packages: readable-stream: 3.6.0 dev: true - /timsort/0.3.0: - resolution: {integrity: sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==} - dev: true - /tinybench/2.3.1: resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} dev: true @@ -6188,8 +6204,8 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true - /typescript/4.5.5: - resolution: {integrity: sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==} + /typescript/4.8.4: + resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} engines: {node: '>=4.2.0'} hasBin: true dev: true diff --git a/rollup.dts.config.mjs b/rollup.dts.config.mjs new file mode 100644 index 00000000000..b245ed210d6 --- /dev/null +++ b/rollup.dts.config.mjs @@ -0,0 +1,53 @@ +// @ts-check +import { existsSync, readdirSync, readFileSync } from 'fs' +import dts from 'rollup-plugin-dts' + +if (!existsSync('temp/packages')) { + console.warn( + 'no temp dts files found. run `tsc -p tsconfig.build.json` first.' + ) + process.exit(1) +} + +export default readdirSync('temp/packages').map(pkg => { + return { + input: `./temp/packages/${pkg}/src/index.d.ts`, + output: { + file: `packages/${pkg}/dist/${pkg}.d.ts`, + format: 'es' + }, + plugins: [dts(), patchTypes(pkg)], + onwarn(warning, warn) { + // during dts rollup, everything is externalized by default + if ( + warning.code === 'UNRESOLVED_IMPORT' && + !warning.exporter.startsWith('.') + ) { + return + } + warn(warning) + } + } +}) + +/** + * @returns {import('rollup').Plugin} + */ +function patchTypes(pkg) { + return { + name: 'patch-types', + renderChunk(code) { + // 1. TODO remove entries marked with @private + // 2. append pkg specific types + const additionalTypeDir = `packages/${pkg}/types` + if (existsSync(additionalTypeDir)) { + code += + '\n' + + readdirSync(additionalTypeDir) + .map(file => readFileSync(`${additionalTypeDir}/${file}`, 'utf-8')) + .join('\n') + } + return code + } + } +} diff --git a/scripts/aliases.mjs b/scripts/aliases.mjs index 0d3c20d7e4b..4cbdf10b256 100644 --- a/scripts/aliases.mjs +++ b/scripts/aliases.mjs @@ -1,11 +1,14 @@ // @ts-check // these aliases are shared between vitest and rollup -import { readdirSync } from 'node:fs' +import { readdirSync, statSync } from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' const resolveEntryForPkg = p => - path.resolve(fileURLToPath(import.meta.url), `../../packages/${p}/src/index.ts`) + path.resolve( + fileURLToPath(import.meta.url), + `../../packages/${p}/src/index.ts` + ) const dirs = readdirSync(new URL('../packages', import.meta.url)) @@ -15,9 +18,21 @@ const entries = { 'vue/server-renderer': resolveEntryForPkg('server-renderer'), '@vue/compat': resolveEntryForPkg('vue-compat') } + +const nonSrcPackages = [ + 'sfc-playground', + 'size-check', + 'template-explorer' +] + for (const dir of dirs) { const key = `@vue/${dir}` - if (dir !== 'vue' && !(key in entries)) { + if ( + dir !== 'vue' && + !nonSrcPackages.includes(dir) && + !(key in entries) && + statSync(new URL(`../packages/${dir}`, import.meta.url)).isDirectory() + ) { entries[key] = resolveEntryForPkg(dir) } } diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 00000000000..8e93e992f6d --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,15 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "declaration": true, + "emitDeclarationOnly": true + }, + "exclude": [ + "packages/*/__tests__", + "packages/runtime-test", + "packages/template-explorer", + "packages/sfc-playground", + "packages/size-check", + "test-dts" + ] +} diff --git a/tsconfig.json b/tsconfig.json index 36b360eba85..2a3f429d8ad 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "baseUrl": ".", - "outDir": "dist", + "outDir": "temp", "sourceMap": false, "target": "es2016", "newLine": "LF", From eb0c1e70255a7f594781f84337cb4e39a79b5594 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 15:57:00 +0800 Subject: [PATCH 009/999] build: remove api-extractor --- api-extractor.json | 66 ------- package.json | 1 - packages/compiler-core/api-extractor.json | 7 - packages/compiler-dom/api-extractor.json | 7 - packages/compiler-sfc/api-extractor.json | 7 - packages/compiler-ssr/api-extractor.json | 7 - .../reactivity-transform/api-extractor.json | 7 - packages/reactivity/api-extractor.json | 7 - packages/reactivity/src/ref.ts | 4 - packages/runtime-core/api-extractor.json | 7 - packages/runtime-core/src/index.ts | 2 +- packages/runtime-core/types/refBail.d.ts | 14 -- packages/runtime-dom/api-extractor.json | 7 - packages/runtime-dom/src/index.ts | 1 - packages/runtime-dom/types/refBail.d.ts | 8 - packages/runtime-test/api-extractor.json | 7 - packages/server-renderer/api-extractor.json | 7 - packages/shared/api-extractor.json | 7 - packages/vue-compat/api-extractor.json | 7 - packages/vue/api-extractor.json | 7 - pnpm-lock.yaml | 168 ------------------ scripts/bootstrap.mjs | 107 ----------- scripts/build.mjs | 55 ------ scripts/release.mjs | 1 + 24 files changed, 2 insertions(+), 516 deletions(-) delete mode 100644 api-extractor.json delete mode 100644 packages/compiler-core/api-extractor.json delete mode 100644 packages/compiler-dom/api-extractor.json delete mode 100644 packages/compiler-sfc/api-extractor.json delete mode 100644 packages/compiler-ssr/api-extractor.json delete mode 100644 packages/reactivity-transform/api-extractor.json delete mode 100644 packages/reactivity/api-extractor.json delete mode 100644 packages/runtime-core/api-extractor.json delete mode 100644 packages/runtime-core/types/refBail.d.ts delete mode 100644 packages/runtime-dom/api-extractor.json delete mode 100644 packages/runtime-dom/types/refBail.d.ts delete mode 100644 packages/runtime-test/api-extractor.json delete mode 100644 packages/server-renderer/api-extractor.json delete mode 100644 packages/shared/api-extractor.json delete mode 100644 packages/vue-compat/api-extractor.json delete mode 100644 packages/vue/api-extractor.json delete mode 100644 scripts/bootstrap.mjs diff --git a/api-extractor.json b/api-extractor.json deleted file mode 100644 index bf3e80961a9..00000000000 --- a/api-extractor.json +++ /dev/null @@ -1,66 +0,0 @@ -// this the shared base config for all packages. -{ - "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "apiReport": { - "enabled": true, - "reportFolder": "/temp/" - }, - - "docModel": { - "enabled": true - }, - - "dtsRollup": { - "enabled": true - }, - - "tsdocMetadata": { - "enabled": false - }, - - "messages": { - "compilerMessageReporting": { - "default": { - "logLevel": "warning" - } - }, - - "extractorMessageReporting": { - "default": { - "logLevel": "warning", - "addToApiReportFile": true - }, - - "ae-missing-release-tag": { - "logLevel": "none" - } - }, - - "tsdocMessageReporting": { - "default": { - "logLevel": "warning" - }, - - "tsdoc-undefined-tag": { - "logLevel": "none" - }, - - "tsdoc-escape-greater-than": { - "logLevel": "none" - }, - - "tsdoc-malformed-inline-tag": { - "logLevel": "none" - }, - - "tsdoc-escape-right-brace": { - "logLevel": "none" - }, - - "tsdoc-unnecessary-backslash": { - "logLevel": "none" - } - } - } -} diff --git a/package.json b/package.json index befa8188be9..388e7719b4a 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,6 @@ "@babel/parser": "^7.20.15", "@babel/types": "^7.20.7", "@esbuild-plugins/node-modules-polyfill": "^0.1.4", - "@microsoft/api-extractor": "~7.34.2", "@rollup/plugin-alias": "^4.0.3", "@rollup/plugin-commonjs": "^23.0.2", "@rollup/plugin-json": "^5.0.1", diff --git a/packages/compiler-core/api-extractor.json b/packages/compiler-core/api-extractor.json deleted file mode 100644 index b677d51cd8d..00000000000 --- a/packages/compiler-core/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} diff --git a/packages/compiler-dom/api-extractor.json b/packages/compiler-dom/api-extractor.json deleted file mode 100644 index 5602b3a6fd2..00000000000 --- a/packages/compiler-dom/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} diff --git a/packages/compiler-sfc/api-extractor.json b/packages/compiler-sfc/api-extractor.json deleted file mode 100644 index 5602b3a6fd2..00000000000 --- a/packages/compiler-sfc/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} diff --git a/packages/compiler-ssr/api-extractor.json b/packages/compiler-ssr/api-extractor.json deleted file mode 100644 index 5602b3a6fd2..00000000000 --- a/packages/compiler-ssr/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} diff --git a/packages/reactivity-transform/api-extractor.json b/packages/reactivity-transform/api-extractor.json deleted file mode 100644 index a8982eb0941..00000000000 --- a/packages/reactivity-transform/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} \ No newline at end of file diff --git a/packages/reactivity/api-extractor.json b/packages/reactivity/api-extractor.json deleted file mode 100644 index b677d51cd8d..00000000000 --- a/packages/reactivity/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} diff --git a/packages/reactivity/src/ref.ts b/packages/reactivity/src/ref.ts index 124e2aaa869..9bb4ce29be5 100644 --- a/packages/reactivity/src/ref.ts +++ b/packages/reactivity/src/ref.ts @@ -277,10 +277,6 @@ type BaseTypes = string | number | boolean * } * } * ``` - * - * Note that api-extractor somehow refuses to include `declare module` - * augmentations in its generated d.ts, so we have to manually append them - * to the final generated d.ts in our build process. */ export interface RefUnwrapBailTypes {} diff --git a/packages/runtime-core/api-extractor.json b/packages/runtime-core/api-extractor.json deleted file mode 100644 index b677d51cd8d..00000000000 --- a/packages/runtime-core/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} diff --git a/packages/runtime-core/src/index.ts b/packages/runtime-core/src/index.ts index fd3415e3382..622f5ecc57e 100644 --- a/packages/runtime-core/src/index.ts +++ b/packages/runtime-core/src/index.ts @@ -136,7 +136,6 @@ import { VNode } from './vnode' import { ComponentInternalInstance } from './component' // Augment Ref unwrap bail types. -// Note: if updating this, also update `types/refBail.d.ts`. declare module '@vue/reactivity' { export interface RefUnwrapBailTypes { runtimeCoreBailTypes: @@ -148,6 +147,7 @@ declare module '@vue/reactivity' { } } } + export { TrackOpTypes, TriggerOpTypes } from '@vue/reactivity' export type { Ref, diff --git a/packages/runtime-core/types/refBail.d.ts b/packages/runtime-core/types/refBail.d.ts deleted file mode 100644 index c7ab63de14a..00000000000 --- a/packages/runtime-core/types/refBail.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -// Note: this file is auto concatenated to the end of the bundled d.ts during -// build. - -declare module '@vue/reactivity' { - export interface RefUnwrapBailTypes { - runtimeCoreBailTypes: - | VNode - | { - // directly bailing on ComponentPublicInstance results in recursion - // so we use this as a bail hint - $: ComponentInternalInstance - } - } -} diff --git a/packages/runtime-dom/api-extractor.json b/packages/runtime-dom/api-extractor.json deleted file mode 100644 index b677d51cd8d..00000000000 --- a/packages/runtime-dom/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} diff --git a/packages/runtime-dom/src/index.ts b/packages/runtime-dom/src/index.ts index a980f1dd684..19b2ce51abe 100644 --- a/packages/runtime-dom/src/index.ts +++ b/packages/runtime-dom/src/index.ts @@ -26,7 +26,6 @@ import { declare module '@vue/reactivity' { export interface RefUnwrapBailTypes { - // Note: if updating this, also update `types/refBail.d.ts`. runtimeDOMBailTypes: Node | Window } } diff --git a/packages/runtime-dom/types/refBail.d.ts b/packages/runtime-dom/types/refBail.d.ts deleted file mode 100644 index 549b0ec31b6..00000000000 --- a/packages/runtime-dom/types/refBail.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Note: this file is auto concatenated to the end of the bundled d.ts during -// build. - -declare module '@vue/reactivity' { - export interface RefUnwrapBailTypes { - runtimeDOMBailTypes: Node | Window - } -} diff --git a/packages/runtime-test/api-extractor.json b/packages/runtime-test/api-extractor.json deleted file mode 100644 index b677d51cd8d..00000000000 --- a/packages/runtime-test/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} diff --git a/packages/server-renderer/api-extractor.json b/packages/server-renderer/api-extractor.json deleted file mode 100644 index b677d51cd8d..00000000000 --- a/packages/server-renderer/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} diff --git a/packages/shared/api-extractor.json b/packages/shared/api-extractor.json deleted file mode 100644 index 5602b3a6fd2..00000000000 --- a/packages/shared/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} diff --git a/packages/vue-compat/api-extractor.json b/packages/vue-compat/api-extractor.json deleted file mode 100644 index 5602b3a6fd2..00000000000 --- a/packages/vue-compat/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} diff --git a/packages/vue/api-extractor.json b/packages/vue/api-extractor.json deleted file mode 100644 index b677d51cd8d..00000000000 --- a/packages/vue/api-extractor.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f3adc1b9b1c..03fac03dd6a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,6 @@ importers: '@babel/parser': ^7.20.15 '@babel/types': ^7.20.7 '@esbuild-plugins/node-modules-polyfill': ^0.1.4 - '@microsoft/api-extractor': ~7.34.2 '@rollup/plugin-alias': ^4.0.3 '@rollup/plugin-commonjs': ^23.0.2 '@rollup/plugin-json': ^5.0.1 @@ -61,7 +60,6 @@ importers: '@babel/parser': 7.20.15 '@babel/types': 7.20.7 '@esbuild-plugins/node-modules-polyfill': 0.1.4_esbuild@0.17.5 - '@microsoft/api-extractor': 7.34.2_@types+node@16.18.11 '@rollup/plugin-alias': 4.0.3_rollup@3.10.1 '@rollup/plugin-commonjs': 23.0.7_rollup@3.10.1 '@rollup/plugin-json': 5.0.2_rollup@3.10.1 @@ -1002,49 +1000,6 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@microsoft/api-extractor-model/7.26.2_@types+node@16.18.11: - resolution: {integrity: sha512-V9tTHbYTNelTrNDXBzeDlszq29nQcjJdP6s27QJiATbqSRjEbKTeztlSVsCRHL2Wkkv5IN5jT4xkYjnFFPbK0A==} - dependencies: - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.55.0_@types+node@16.18.11 - transitivePeerDependencies: - - '@types/node' - dev: true - - /@microsoft/api-extractor/7.34.2_@types+node@16.18.11: - resolution: {integrity: sha512-oREyUU7p3JgjrqapJxEHe83gA1SXOWgaA4XCiY9PvsiLkgGHtn2ibTRgw9GCI/4kZzcb+OQv5waUDxsnQSKfwQ==} - hasBin: true - dependencies: - '@microsoft/api-extractor-model': 7.26.2_@types+node@16.18.11 - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.55.0_@types+node@16.18.11 - '@rushstack/rig-package': 0.3.17 - '@rushstack/ts-command-line': 4.13.1 - colors: 1.2.5 - lodash: 4.17.21 - resolve: 1.22.1 - semver: 7.3.8 - source-map: 0.6.1 - typescript: 4.8.4 - transitivePeerDependencies: - - '@types/node' - dev: true - - /@microsoft/tsdoc-config/0.16.2: - resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} - dependencies: - '@microsoft/tsdoc': 0.14.2 - ajv: 6.12.6 - jju: 1.4.0 - resolve: 1.19.0 - dev: true - - /@microsoft/tsdoc/0.14.2: - resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} - dev: true - /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1185,49 +1140,11 @@ packages: rollup: 3.10.1 dev: true - /@rushstack/node-core-library/3.55.0_@types+node@16.18.11: - resolution: {integrity: sha512-6lSel8w3DeGaD/JCKw64wfezEBijlCQlMwBoYg9Ci5VPy+dZ+FpBkIBrY8mi3Ge4xNzr4gyTbQ5XEt0QP1Kv/w==} - peerDependencies: - '@types/node': ^14.18.36 - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@types/node': 16.18.11 - colors: 1.2.5 - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.1 - semver: 7.3.8 - z-schema: 5.0.5 - dev: true - - /@rushstack/rig-package/0.3.17: - resolution: {integrity: sha512-nxvAGeIMnHl1LlZSQmacgcRV4y1EYtgcDIrw6KkeVjudOMonlxO482PhDj3LVZEp6L7emSf6YSO2s5JkHlwfZA==} - dependencies: - resolve: 1.17.0 - strip-json-comments: 3.1.1 - dev: true - - /@rushstack/ts-command-line/4.13.1: - resolution: {integrity: sha512-UTQMRyy/jH1IS2U+6pyzyn9xQ2iMcoUKkTcZUzOP/aaMiKlWLwCTDiBVwhw/M1crDx6apF9CwyjuWO9r1SBdJQ==} - dependencies: - '@types/argparse': 1.0.38 - argparse: 1.0.10 - colors: 1.2.5 - string-argv: 0.3.1 - dev: true - /@tootallnate/once/2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} dev: true - /@types/argparse/1.0.38: - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - dev: true - /@types/chai-subset/1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: @@ -2071,11 +1988,6 @@ packages: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} dev: true - /colors/1.2.5: - resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} - engines: {node: '>=0.1.90'} - dev: true - /combined-stream/1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2092,13 +2004,6 @@ packages: engines: {node: '>= 6'} dev: true - /commander/9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - requiresBuild: true - dev: true - optional: true - /commondir/1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true @@ -3154,15 +3059,6 @@ packages: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} dev: true - /fs-extra/7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: 4.2.10 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: true - /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -3570,11 +3466,6 @@ packages: resolve-from: 4.0.0 dev: true - /import-lazy/4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - dev: true - /imurmurhash/0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -3908,10 +3799,6 @@ packages: istanbul-lib-report: 3.0.0 dev: true - /jju/1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - dev: true - /joycon/3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -4021,12 +3908,6 @@ packages: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true - /jsonfile/4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - optionalDependencies: - graceful-fs: 4.2.10 - dev: true - /jsonparse/1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} @@ -4237,14 +4118,6 @@ packages: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} dev: true - /lodash.get/4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - dev: true - - /lodash.isequal/4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - dev: true - /lodash.ismatch/4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} dev: true @@ -5388,19 +5261,6 @@ packages: engines: {node: '>=4'} dev: true - /resolve/1.17.0: - resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} - dependencies: - path-parse: 1.0.7 - dev: true - - /resolve/1.19.0: - resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} - dependencies: - is-core-module: 2.11.0 - path-parse: 1.0.7 - dev: true - /resolve/1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true @@ -6204,12 +6064,6 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true - /typescript/4.8.4: - resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} - engines: {node: '>=4.2.0'} - hasBin: true - dev: true - /typescript/4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} @@ -6244,11 +6098,6 @@ packages: through: 2.3.8 dev: true - /universalify/0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: true - /universalify/0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -6305,11 +6154,6 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /validator/13.9.0: - resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==} - engines: {node: '>= 0.10'} - dev: true - /vary/1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -6724,15 +6568,3 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} dev: true - - /z-schema/5.0.5: - resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} - engines: {node: '>=8.0.0'} - hasBin: true - dependencies: - lodash.get: 4.4.2 - lodash.isequal: 4.5.0 - validator: 13.9.0 - optionalDependencies: - commander: 9.5.0 - dev: true diff --git a/scripts/bootstrap.mjs b/scripts/bootstrap.mjs deleted file mode 100644 index 38133849be6..00000000000 --- a/scripts/bootstrap.mjs +++ /dev/null @@ -1,107 +0,0 @@ -// create package.json, README, etc. for packages that don't have them yet -// @ts-check -import minimist from 'minimist' -import fs from 'node:fs' -import path from 'node:path' -import { createRequire } from 'node:module' -import { fileURLToPath } from 'url' - -const args = minimist(process.argv.slice(2)) -const require = createRequire(import.meta.url) -const version = require('../package.json').version - -const packagesDir = path.resolve( - fileURLToPath(import.meta.url), - '../../packages' -) -const files = fs.readdirSync(packagesDir) - -files.forEach(shortName => { - if (!fs.statSync(path.join(packagesDir, shortName)).isDirectory()) { - return - } - - const name = shortName === `vue` ? shortName : `@vue/${shortName}` - const pkgPath = path.join(packagesDir, shortName, `package.json`) - const pkgExists = fs.existsSync(pkgPath) - if (pkgExists) { - const pkg = require(pkgPath) - if (pkg.private) { - return - } - } - - if (args.force || !pkgExists) { - const json = { - name, - version, - description: name, - main: 'index.js', - module: `dist/${shortName}.esm-bundler.js`, - files: [`index.js`, `dist`], - types: `dist/${shortName}.d.ts`, - repository: { - type: 'git', - url: 'git+https://github.com/vuejs/vue.git' - }, - keywords: ['vue'], - author: 'Evan You', - license: 'MIT', - bugs: { - url: 'https://github.com/vuejs/vue/issues' - }, - homepage: `https://github.com/vuejs/vue/tree/dev/packages/${shortName}#readme` - } - fs.writeFileSync(pkgPath, JSON.stringify(json, null, 2)) - } - - const readmePath = path.join(packagesDir, shortName, `README.md`) - if (args.force || !fs.existsSync(readmePath)) { - fs.writeFileSync(readmePath, `# ${name}`) - } - - const apiExtractorConfigPath = path.join( - packagesDir, - shortName, - `api-extractor.json` - ) - if (args.force || !fs.existsSync(apiExtractorConfigPath)) { - fs.writeFileSync( - apiExtractorConfigPath, - ` -{ - "extends": "../../api-extractor.json", - "mainEntryPointFilePath": "./dist/packages//src/index.d.ts", - "dtsRollup": { - "publicTrimmedFilePath": "./dist/.d.ts" - } -} -`.trim() - ) - } - - const srcDir = path.join(packagesDir, shortName, `src`) - const indexPath = path.join(packagesDir, shortName, `src/index.ts`) - if (args.force || !fs.existsSync(indexPath)) { - if (!fs.existsSync(srcDir)) { - fs.mkdirSync(srcDir) - } - fs.writeFileSync(indexPath, ``) - } - - const nodeIndexPath = path.join(packagesDir, shortName, 'index.js') - if (args.force || !fs.existsSync(nodeIndexPath)) { - fs.writeFileSync( - nodeIndexPath, - ` -'use strict' - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/${shortName}.cjs.prod.js') -} else { - module.exports = require('./dist/${shortName}.cjs.js') -} - `.trim() + '\n' - ) - } -}) diff --git a/scripts/build.mjs b/scripts/build.mjs index 77e50fb2f6b..1d4f4ab8523 100644 --- a/scripts/build.mjs +++ b/scripts/build.mjs @@ -29,7 +29,6 @@ import { createRequire } from 'node:module' import { targets as allTargets, fuzzyMatchTarget } from './utils.mjs' const require = createRequire(import.meta.url) -const __dirname = path.dirname(fileURLToPath(import.meta.url)) const args = minimist(process.argv.slice(2)) const targets = args._ const formats = args.formats || args.f @@ -37,20 +36,12 @@ const devOnly = args.devOnly || args.d const prodOnly = !devOnly && (args.prodOnly || args.p) const sourceMap = args.sourcemap || args.s const isRelease = args.release -const buildTypes = args.t || args.types || isRelease const buildAllMatching = args.all || args.a const commit = execa.sync('git', ['rev-parse', 'HEAD']).stdout.slice(0, 7) run() async function run() { - if (isRelease) { - // remove build cache for release builds to avoid outdated enum values - await fs.rm(path.resolve(__dirname, '../node_modules/.rts2_cache'), { - force: true, - recursive: true - }) - } if (!targets.length) { await buildAll(allTargets) checkAllSizes(allTargets) @@ -109,7 +100,6 @@ async function build(target) { `NODE_ENV:${env}`, `TARGET:${target}`, formats ? `FORMATS:${formats}` : ``, - buildTypes ? `TYPES:true` : ``, prodOnly ? `PROD_ONLY:true` : ``, sourceMap ? `SOURCE_MAP:true` : `` ] @@ -118,51 +108,6 @@ async function build(target) { ], { stdio: 'inherit' } ) - - if (buildTypes && pkg.types) { - console.log() - console.log( - chalk.bold(chalk.yellow(`Rolling up type definitions for ${target}...`)) - ) - - // build types - const { Extractor, ExtractorConfig } = require('@microsoft/api-extractor') - - const extractorConfigPath = path.resolve(pkgDir, `api-extractor.json`) - const extractorConfig = - ExtractorConfig.loadFileAndPrepare(extractorConfigPath) - const extractorResult = Extractor.invoke(extractorConfig, { - localBuild: true, - showVerboseMessages: true - }) - - if (extractorResult.succeeded) { - // concat additional d.ts to rolled-up dts - const typesDir = path.resolve(pkgDir, 'types') - if (existsSync(typesDir)) { - const dtsPath = path.resolve(pkgDir, pkg.types) - const existing = await fs.readFile(dtsPath, 'utf-8') - const typeFiles = await fs.readdir(typesDir) - const toAdd = await Promise.all( - typeFiles.map(file => { - return fs.readFile(path.resolve(typesDir, file), 'utf-8') - }) - ) - await fs.writeFile(dtsPath, existing + '\n' + toAdd.join('\n')) - } - console.log( - chalk.bold(chalk.green(`API Extractor completed successfully.`)) - ) - } else { - console.error( - `API Extractor completed with ${extractorResult.errorCount} errors` + - ` and ${extractorResult.warningCount} warnings` - ) - process.exitCode = 1 - } - - await fs.rm(`${pkgDir}/dist/packages`, { recursive: true }) - } } function checkAllSizes(targets) { diff --git a/scripts/release.mjs b/scripts/release.mjs index 40b7bd3b9b5..defad5f34bd 100644 --- a/scripts/release.mjs +++ b/scripts/release.mjs @@ -127,6 +127,7 @@ async function main() { step('\nBuilding all packages...') if (!skipBuild && !isDryRun) { await run('pnpm', ['run', 'build', '--release']) + await run('pnpm', ['run', 'build-dts']) // test generated dts files step('\nVerifying type declarations...') await run('pnpm', ['run', 'test-dts-only']) From 4e0ab97c70986957a18231946efb58193ebb40cc Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 16:26:56 +0800 Subject: [PATCH 010/999] build: fix handling of const enum that rely on previous values --- scripts/const-enum.mjs | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/scripts/const-enum.mjs b/scripts/const-enum.mjs index 5942b795c03..133b6da1803 100644 --- a/scripts/const-enum.mjs +++ b/scripts/const-enum.mjs @@ -85,8 +85,29 @@ export async function constEnum() { // e.g. 1 << 2 if (init.type === 'BinaryExpression') { - // @ts-ignore assume all operands are literals - const exp = `${init.left.value}${init.operator}${init.right.value}` + const resolveValue = node => { + if ( + node.type === 'NumericLiteral' || + node.type === 'StringLiteral' + ) { + return node.value + } else if (node.type === 'MemberExpression') { + const exp = content.slice(node.start, node.end) + if (!(exp in enumData.defines)) { + throw new Error( + `unhandled enum initialization expression ${exp} in ${file}` + ) + } + return enumData.defines[exp] + } else { + throw new Error( + `unhandled BinaryExpression operand type ${node.type} in ${file}` + ) + } + } + const exp = `${resolveValue(init.left)}${ + init.operator + }${resolveValue(init.right)}` value = evaluate(exp) } From d10a81eacb4852c9d499b0be9905e14f4437c28b Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 16:46:57 +0800 Subject: [PATCH 011/999] ci: try puppeteer fix --- package.json | 2 +- pnpm-lock.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 388e7719b4a..48b3a6da5dc 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "npm-run-all": "^4.1.5", "prettier": "^2.7.1", "pug": "^3.0.1", - "puppeteer": "^19.2.2", + "puppeteer": "^19.6.3", "rollup": "~3.10.0", "rollup-plugin-dts": "^5.1.1", "rollup-plugin-esbuild": "^5.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 03fac03dd6a..b9ee76003f4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,7 +39,7 @@ importers: npm-run-all: ^4.1.5 prettier: ^2.7.1 pug: ^3.0.1 - puppeteer: ^19.2.2 + puppeteer: ^19.6.3 rollup: ~3.10.0 rollup-plugin-dts: ^5.1.1 rollup-plugin-esbuild: ^5.0.0 From 1ddde63b40584b4f417d9cb38aef1f96423f2774 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 17:10:31 +0800 Subject: [PATCH 012/999] build: adjust dts test setup --- .eslintrc.js | 2 +- package.json | 9 ++------- packages/dts-test/README.md | 7 +++++++ .../dts-test}/appUse.test-d.ts | 0 .../dts-test}/compiler.test-d.ts | 0 .../dts-test}/component.test-d.ts | 0 .../componentTypeExtensions.test-d.tsx | 0 .../dts-test}/defineComponent.test-d.tsx | 0 .../dts-test}/defineCustomElement.test-d.ts | 0 .../dts-test}/functionalComponent.test-d.tsx | 0 {test-dts => packages/dts-test}/h.test-d.ts | 0 {test-dts => packages/dts-test}/index.d.ts | 2 +- .../dts-test}/inject.test-d.ts | 0 packages/dts-test/package.json | 10 ++++++++++ .../dts-test}/reactivity.test-d.ts | 0 .../dts-test}/reactivityMacros.test-d.ts | 10 ++++++++-- {test-dts => packages/dts-test}/ref.test-d.ts | 0 .../dts-test}/setupHelpers.test-d.ts | 0 .../dts-test/tsconfig.test.json | 0 .../dts-test}/tsx.test-d.tsx | 0 .../dts-test}/watch.test-d.ts | 0 packages/runtime-core/src/apiSetupHelpers.ts | 7 +++++-- pnpm-lock.yaml | 20 +++++++++++-------- scripts/aliases.mjs | 3 ++- test-dts/README.md | 13 ------------ test-dts/tsconfig.json | 8 -------- tsconfig.build.json | 2 +- tsconfig.json | 2 +- 28 files changed, 50 insertions(+), 45 deletions(-) create mode 100644 packages/dts-test/README.md rename {test-dts => packages/dts-test}/appUse.test-d.ts (100%) rename {test-dts => packages/dts-test}/compiler.test-d.ts (100%) rename {test-dts => packages/dts-test}/component.test-d.ts (100%) rename {test-dts => packages/dts-test}/componentTypeExtensions.test-d.tsx (100%) rename {test-dts => packages/dts-test}/defineComponent.test-d.tsx (100%) rename {test-dts => packages/dts-test}/defineCustomElement.test-d.ts (100%) rename {test-dts => packages/dts-test}/functionalComponent.test-d.tsx (100%) rename {test-dts => packages/dts-test}/h.test-d.ts (100%) rename {test-dts => packages/dts-test}/index.d.ts (94%) rename {test-dts => packages/dts-test}/inject.test-d.ts (100%) create mode 100644 packages/dts-test/package.json rename {test-dts => packages/dts-test}/reactivity.test-d.ts (100%) rename {test-dts => packages/dts-test}/reactivityMacros.test-d.ts (93%) rename {test-dts => packages/dts-test}/ref.test-d.ts (100%) rename {test-dts => packages/dts-test}/setupHelpers.test-d.ts (100%) rename test-dts/tsconfig.build.json => packages/dts-test/tsconfig.test.json (100%) rename {test-dts => packages/dts-test}/tsx.test-d.tsx (100%) rename {test-dts => packages/dts-test}/watch.test-d.ts (100%) delete mode 100644 test-dts/README.md delete mode 100644 test-dts/tsconfig.json diff --git a/.eslintrc.js b/.eslintrc.js index fe5e1493e0d..5d096dd3ab2 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -32,7 +32,7 @@ module.exports = { overrides: [ // tests, no restrictions (runs in Node / jest with jsdom) { - files: ['**/__tests__/**', 'test-dts/**'], + files: ['**/__tests__/**', 'packages/dts-test/**'], rules: { 'no-restricted-globals': 'off', 'no-restricted-syntax': 'off', diff --git a/package.json b/package.json index 48b3a6da5dc..9edd2c5c603 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "test-unit": "vitest -c vitest.unit.config.ts", "test-e2e": "node scripts/build.mjs vue -f global -d && vitest -c vitest.e2e.config.ts", "test-dts": "run-s build-dts test-dts-only", - "test-dts-only": "tsc -p ./test-dts/tsconfig.build.json", + "test-dts-only": "tsc -p ./packages/dts-test/tsconfig.test.json", "test-coverage": "vitest -c vitest.unit.config.ts --coverage", "release": "node scripts/release.mjs", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", @@ -37,7 +37,6 @@ "preinstall": "node ./scripts/preinstall.mjs", "postinstall": "simple-git-hooks" }, - "types": "test-dts/index.d.ts", "simple-git-hooks": { "pre-commit": "pnpm lint-staged && pnpm check", "commit-msg": "node scripts/verifyCommit.mjs" @@ -69,9 +68,6 @@ "@typescript-eslint/parser": "^5.23.0", "@vitest/coverage-istanbul": "^0.28.2", "@vue/consolidate": "0.17.3", - "@vue/reactivity": "workspace:*", - "@vue/runtime-core": "workspace:*", - "@vue/runtime-dom": "workspace:*", "brotli": "^1.3.2", "chalk": "^4.1.0", "conventional-changelog-cli": "^2.0.31", @@ -105,7 +101,6 @@ "tslib": "^2.4.0", "typescript": "^4.9.0", "vite": "^4.0.4", - "vitest": "^0.28.2", - "vue": "workspace:*" + "vitest": "^0.28.2" } } diff --git a/packages/dts-test/README.md b/packages/dts-test/README.md new file mode 100644 index 00000000000..692229fbcc0 --- /dev/null +++ b/packages/dts-test/README.md @@ -0,0 +1,7 @@ +# dts-test + +Tests Typescript types to ensure the types remain as expected. + +- This directory is included in the root `tsconfig.json`, where package imports are aliased to `src` directories, so in IDEs and the `pnpm check` script the types are validated against source code. + +- When runnong `tsc` with `packages/dts-test/tsconfig.test.json`, packages are resolved using using normal `node` resolution, so the types are validated against actual **built** types. This requires the types to be built first via `pnpm build-types`. diff --git a/test-dts/appUse.test-d.ts b/packages/dts-test/appUse.test-d.ts similarity index 100% rename from test-dts/appUse.test-d.ts rename to packages/dts-test/appUse.test-d.ts diff --git a/test-dts/compiler.test-d.ts b/packages/dts-test/compiler.test-d.ts similarity index 100% rename from test-dts/compiler.test-d.ts rename to packages/dts-test/compiler.test-d.ts diff --git a/test-dts/component.test-d.ts b/packages/dts-test/component.test-d.ts similarity index 100% rename from test-dts/component.test-d.ts rename to packages/dts-test/component.test-d.ts diff --git a/test-dts/componentTypeExtensions.test-d.tsx b/packages/dts-test/componentTypeExtensions.test-d.tsx similarity index 100% rename from test-dts/componentTypeExtensions.test-d.tsx rename to packages/dts-test/componentTypeExtensions.test-d.tsx diff --git a/test-dts/defineComponent.test-d.tsx b/packages/dts-test/defineComponent.test-d.tsx similarity index 100% rename from test-dts/defineComponent.test-d.tsx rename to packages/dts-test/defineComponent.test-d.tsx diff --git a/test-dts/defineCustomElement.test-d.ts b/packages/dts-test/defineCustomElement.test-d.ts similarity index 100% rename from test-dts/defineCustomElement.test-d.ts rename to packages/dts-test/defineCustomElement.test-d.ts diff --git a/test-dts/functionalComponent.test-d.tsx b/packages/dts-test/functionalComponent.test-d.tsx similarity index 100% rename from test-dts/functionalComponent.test-d.tsx rename to packages/dts-test/functionalComponent.test-d.tsx diff --git a/test-dts/h.test-d.ts b/packages/dts-test/h.test-d.ts similarity index 100% rename from test-dts/h.test-d.ts rename to packages/dts-test/h.test-d.ts diff --git a/test-dts/index.d.ts b/packages/dts-test/index.d.ts similarity index 94% rename from test-dts/index.d.ts rename to packages/dts-test/index.d.ts index 0662a6447e6..2945d492de8 100644 --- a/test-dts/index.d.ts +++ b/packages/dts-test/index.d.ts @@ -1,7 +1,7 @@ // This directory contains a number of d.ts assertions // use \@ts-expect-error where errors are expected. -export * from '@vue/runtime-dom' +export * from 'vue' export function describe(_name: string, _fn: () => void): void export function test(_name: string, _fn: () => any): void diff --git a/test-dts/inject.test-d.ts b/packages/dts-test/inject.test-d.ts similarity index 100% rename from test-dts/inject.test-d.ts rename to packages/dts-test/inject.test-d.ts diff --git a/packages/dts-test/package.json b/packages/dts-test/package.json new file mode 100644 index 00000000000..72f0e322acf --- /dev/null +++ b/packages/dts-test/package.json @@ -0,0 +1,10 @@ +{ + "name": "dts-test", + "private": true, + "dependencies": { + "vue": "workspace:*", + "@vue/runtime-core": "workspace:*", + "@vue/runtime-dom": "workspace:*", + "@vue/reactivity": "workspace:*" + } +} diff --git a/test-dts/reactivity.test-d.ts b/packages/dts-test/reactivity.test-d.ts similarity index 100% rename from test-dts/reactivity.test-d.ts rename to packages/dts-test/reactivity.test-d.ts diff --git a/test-dts/reactivityMacros.test-d.ts b/packages/dts-test/reactivityMacros.test-d.ts similarity index 93% rename from test-dts/reactivityMacros.test-d.ts rename to packages/dts-test/reactivityMacros.test-d.ts index 3bae078297e..6bc5f17cba8 100644 --- a/test-dts/reactivityMacros.test-d.ts +++ b/packages/dts-test/reactivityMacros.test-d.ts @@ -1,5 +1,11 @@ -import { WritableComputedRef } from '@vue/reactivity' -import { expectType, ref, computed, Ref, ComputedRef } from './index' +import { + expectType, + ref, + computed, + Ref, + ComputedRef, + WritableComputedRef +} from './index' import 'vue/macros-global' import { RefType, RefTypes } from 'vue/macros' diff --git a/test-dts/ref.test-d.ts b/packages/dts-test/ref.test-d.ts similarity index 100% rename from test-dts/ref.test-d.ts rename to packages/dts-test/ref.test-d.ts diff --git a/test-dts/setupHelpers.test-d.ts b/packages/dts-test/setupHelpers.test-d.ts similarity index 100% rename from test-dts/setupHelpers.test-d.ts rename to packages/dts-test/setupHelpers.test-d.ts diff --git a/test-dts/tsconfig.build.json b/packages/dts-test/tsconfig.test.json similarity index 100% rename from test-dts/tsconfig.build.json rename to packages/dts-test/tsconfig.test.json diff --git a/test-dts/tsx.test-d.tsx b/packages/dts-test/tsx.test-d.tsx similarity index 100% rename from test-dts/tsx.test-d.tsx rename to packages/dts-test/tsx.test-d.tsx diff --git a/test-dts/watch.test-d.ts b/packages/dts-test/watch.test-d.ts similarity index 100% rename from test-dts/watch.test-d.ts rename to packages/dts-test/watch.test-d.ts diff --git a/packages/runtime-core/src/apiSetupHelpers.ts b/packages/runtime-core/src/apiSetupHelpers.ts index 6f6097aa809..798b3a0c000 100644 --- a/packages/runtime-core/src/apiSetupHelpers.ts +++ b/packages/runtime-core/src/apiSetupHelpers.ts @@ -1,4 +1,3 @@ -import { ComponentPropsOptions } from '@vue/runtime-core' import { isArray, isPromise, isFunction } from '@vue/shared' import { getCurrentInstance, @@ -8,7 +7,11 @@ import { unsetCurrentInstance } from './component' import { EmitFn, EmitsOptions } from './componentEmits' -import { ComponentObjectPropsOptions, ExtractPropTypes } from './componentProps' +import { + ComponentPropsOptions, + ComponentObjectPropsOptions, + ExtractPropTypes +} from './componentProps' import { warn } from './warning' // dev only diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9ee76003f4..927376bffc9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,9 +18,6 @@ importers: '@typescript-eslint/parser': ^5.23.0 '@vitest/coverage-istanbul': ^0.28.2 '@vue/consolidate': 0.17.3 - '@vue/reactivity': workspace:* - '@vue/runtime-core': workspace:* - '@vue/runtime-dom': workspace:* brotli: ^1.3.2 chalk: ^4.1.0 conventional-changelog-cli: ^2.0.31 @@ -55,7 +52,6 @@ importers: typescript: ^4.9.0 vite: ^4.0.4 vitest: ^0.28.2 - vue: workspace:* devDependencies: '@babel/parser': 7.20.15 '@babel/types': 7.20.7 @@ -71,9 +67,6 @@ importers: '@typescript-eslint/parser': 5.50.0_jofidmxrjzhj7l6vknpw5ecvfe '@vitest/coverage-istanbul': 0.28.3_jsdom@21.1.0+terser@5.16.2 '@vue/consolidate': 0.17.3 - '@vue/reactivity': link:packages/reactivity - '@vue/runtime-core': link:packages/runtime-core - '@vue/runtime-dom': link:packages/runtime-dom brotli: 1.3.3 chalk: 4.1.2 conventional-changelog-cli: 2.2.2 @@ -108,7 +101,6 @@ importers: typescript: 4.9.5 vite: 4.1.1_ghge5pqdvzsmxto52quo4r2say vitest: 0.28.3_jsdom@21.1.0+terser@5.16.2 - vue: link:packages/vue packages/compiler-core: specifiers: @@ -188,6 +180,18 @@ importers: '@vue/compiler-dom': link:../compiler-dom '@vue/shared': link:../shared + packages/dts-test: + specifiers: + '@vue/reactivity': workspace:* + '@vue/runtime-core': workspace:* + '@vue/runtime-dom': workspace:* + vue: workspace:* + dependencies: + '@vue/reactivity': link:../reactivity + '@vue/runtime-core': link:../runtime-core + '@vue/runtime-dom': link:../runtime-dom + vue: link:../vue + packages/reactivity: specifiers: '@vue/shared': 3.2.47 diff --git a/scripts/aliases.mjs b/scripts/aliases.mjs index 4cbdf10b256..95e3016322c 100644 --- a/scripts/aliases.mjs +++ b/scripts/aliases.mjs @@ -22,7 +22,8 @@ const entries = { const nonSrcPackages = [ 'sfc-playground', 'size-check', - 'template-explorer' + 'template-explorer', + 'dts-test' ] for (const dir of dirs) { diff --git a/test-dts/README.md b/test-dts/README.md deleted file mode 100644 index 966374ba5c6..00000000000 --- a/test-dts/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Test-ts - -Tests Typescript types to ensure the types remain as expected. - -## Configuration - -### tsconfig.json - -Config used to test against the package source - -### tsconfig.build.json - -Replaces the `vue` and `@vue/*` dependencies with the built Typescript to ensure the published types are correct. diff --git a/test-dts/tsconfig.json b/test-dts/tsconfig.json deleted file mode 100644 index 433de219a8e..00000000000 --- a/test-dts/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "noEmit": true, - "declaration": true - }, - "exclude": ["../packages/*/__tests__", "../packages/template-explorer"] -} diff --git a/tsconfig.build.json b/tsconfig.build.json index 8e93e992f6d..8b7749b858b 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -10,6 +10,6 @@ "packages/template-explorer", "packages/sfc-playground", "packages/size-check", - "test-dts" + "packages/dts-test" ] } diff --git a/tsconfig.json b/tsconfig.json index 2a3f429d8ad..15e013c5fa0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -32,6 +32,6 @@ "packages/*/src", "packages/runtime-dom/types/jsx.d.ts", "packages/*/__tests__", - "test-dts" + "packages/dts-test" ] } From 40dab4d9dd9697224f95ba2a33e685ced32a60a2 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 17:22:01 +0800 Subject: [PATCH 013/999] build: fix size check --- package.json | 2 +- packages/size-check/package.json | 3 +++ packages/size-check/src/index.ts | 2 +- pnpm-lock.yaml | 5 ++++- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 9edd2c5c603..6f6ed7c96bc 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "build-dts": "tsc -p tsconfig.build.json && rollup -c rollup.dts.config.mjs", "size": "run-s size-global size-baseline", "size-global": "node scripts/build.mjs vue runtime-dom -f global -p", - "size-baseline": "node scripts/build.mjs runtime-dom runtime-core reactivity shared -f esm-bundler && cd packages/size-check && vite build && node brotli", + "size-baseline": "node scripts/build.mjs vue -f esm-bundler-runtime && node scripts/build.mjs runtime-dom runtime-core reactivity shared -f esm-bundler && cd packages/size-check && vite build && node brotli", "check": "tsc --incremental --noEmit", "lint": "eslint --cache --ext .ts packages/*/{src,__tests__}/**.ts", "format": "prettier --write --cache --parser typescript \"**/*.[tj]s?(x)\"", diff --git a/packages/size-check/package.json b/packages/size-check/package.json index ced4713f592..0973ec74be2 100644 --- a/packages/size-check/package.json +++ b/packages/size-check/package.json @@ -4,5 +4,8 @@ "private": true, "scripts": { "build": "vite build" + }, + "dependencies": { + "vue": "workspace:*" } } diff --git a/packages/size-check/src/index.ts b/packages/size-check/src/index.ts index 3c9d23c278a..ad3b68a5cc1 100644 --- a/packages/size-check/src/index.ts +++ b/packages/size-check/src/index.ts @@ -1,4 +1,4 @@ -import { h, createApp } from '@vue/runtime-dom' +import { h, createApp } from 'vue' // The bare minimum code required for rendering something to the screen createApp({ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 927376bffc9..7d7d157787c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -272,7 +272,10 @@ importers: specifiers: {} packages/size-check: - specifiers: {} + specifiers: + vue: workspace:* + dependencies: + vue: link:../vue packages/template-explorer: specifiers: From 7a0a6658c6f44c76f26c129e430a08da5977cc88 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 17:47:34 +0800 Subject: [PATCH 014/999] docs: update contributing guide --- .github/contributing.md | 73 +++++++++++++++++++++++++------------ packages/dts-test/README.md | 2 +- 2 files changed, 50 insertions(+), 25 deletions(-) diff --git a/.github/contributing.md b/.github/contributing.md index 0b386b84af8..e62f1263a02 100644 --- a/.github/contributing.md +++ b/.github/contributing.md @@ -30,7 +30,7 @@ Hi! I'm really excited that you are interested in contributing to Vue.js. Before - If you are resolving a special issue, add `(fix #xxxx[,#xxxx])` (#xxxx is the issue id) in your PR title for a better release log, e.g. `update entities encoding/decoding (fix #3899)`. - Provide a detailed description of the bug in the PR. Live demo preferred. - - Add appropriate test coverage if applicable. You can check the coverage of your code addition by running `npm test -- --coverage`. + - Add appropriate test coverage if applicable. You can check the coverage of your code addition by running `nr test-coverage`. - It's OK to have multiple small commits as you work on the PR - GitHub can automatically squash them before merging. @@ -70,9 +70,11 @@ $ pnpm i # install the dependencies of the project A high level overview of tools used: - [TypeScript](https://www.typescriptlang.org/) as the development language -- [Rollup](https://rollupjs.org) for bundling -- [Jest](https://jestjs.io/) for unit testing +- [Vite](https://vitejs.dev/) and [ESBuild](https://esbuild.github.io/) for development bundling +- [Rollup](https://rollupjs.org) for production bundling +- [Vitest](https://vitest.dev/) for unit testing - [Prettier](https://prettier.io/) for code formatting +- [ESLint](https://eslint.org/) for static error prevention (outside of types) ## Scripts @@ -80,6 +82,16 @@ A high level overview of tools used: The `run-s` and `run-p` commands found in some scripts are from [npm-run-all](https://github.com/mysticatea/npm-run-all) for orchestrating multiple scripts. `run-s` means "run in sequence" while `run-p` means "run in parallel". +- [`nr build`](#nr-build) +- [`nr build-dts`](#nr-build-dts) +- [`nr check`](#nr-check) +- [`nr dev`](#nr-dev) +- [`nr dev-sfc`](#nr-dev-sfc) +- [`nr dev-esm`](#nr-dev-esm) +- [`nr dev-compiler`](#nr-dev-compiler) +- [`nr test`](#nr-test) +- [`nr test-dts`](#nr-test-dts) + ### `nr build` The `build` script builds all public packages (packages without `private: true` in their `package.json`). @@ -94,6 +106,8 @@ nr build runtime-core nr build runtime --all ``` +Note that `nr build` uses `rollup-plugin-esbuild` for transpiling typescript and **does not perform type checking**. To run type check on the entire codebase, run `nr check`. + #### Build Formats By default, each package will be built in multiple distribution formats as specified in the `buildOptions.formats` field in its `package.json`. These can be overwritten via the `-f` flag. The following formats are supported: @@ -127,13 +141,11 @@ nr build runtime-core -f esm-browser,cjs Use the `--sourcemap` or `-s` flag to build with source maps. Note this will make the build much slower. -#### Build with Type Declarations +### `nr build-dts` -The `--types` or `-t` flag will generate type declarations during the build and in addition: +This command builds the type declarations for all packages. It first generates the raw `.d.ts` files in the `temp` directory, then uses [rollup-plugin-dts](https://github.com/Swatinem/rollup-plugin-dts) to roll the types into a single `.d.ts` file for each package. -- Roll the declarations into a single `.d.ts` file for each package; -- Generate an API report in `/temp/.api.md`. This report contains potential warnings emitted by [api-extractor](https://api-extractor.com/). -- Generate an API model json in `/temp/.api.json`. This file can be used to generate a Markdown version of the exported APIs. +### `nr check` ### `nr dev` @@ -142,7 +154,7 @@ The `dev` script bundles a target package (default: `vue`) in a specified format ```bash $ nr dev -> watching: packages/vue/dist/vue.global.js +> built: packages/vue/dist/vue.global.js ``` - **Important:** output of the `dev` script is for development and debugging only. While it has the same runtime behavior, the generated code should never be published to npm. @@ -169,23 +181,30 @@ The `dev-compiler` script builds, watches and serves the [Template Explorer](htt ### `nr test` -The `test` script simply calls the `jest` binary, so all [Jest CLI Options](https://jestjs.io/docs/en/cli) can be used. Some examples: +The `test` script simply calls the `vitest` binary, so all [Vitest CLI Options](https://vitest.dev/guide/cli.html#options) can be used. Some examples: ```bash -# run all tests +# run all tests in watch mode $ nr test +# run once and exit (equivalent to `vitest run`) +$ nr test run + # run all tests under the runtime-core package $ nr test runtime-core -# run tests in a specific file -$ nr test fileName +# run tests in files matching the pattern +$ nr test -# run a specific test in a specific file -$ nr test fileName -t 'test name' +# run a specific test in specific files +$ nr test -t 'test name' ``` -The default `test` script includes the `--runInBand` jest flag to improve test stability, especially for the CSS transition related tests. When you are testing specific test specs, you can also run `npx jest` with flags directly to speed up tests (jest runs them in parallel by default). +Tests that test against source code are grouped under `nr test-unit`, while tests that test against built files that run in real browsers are grouped under `nr test-e2e`. + +### `nr test-dts` + +Runs `nr build-dts` first, then verify the type tests in `packages/dts-test` are working correctly against the actual built type declarations. ## Project Structure @@ -209,14 +228,20 @@ This repository employs a [monorepo](https://en.wikipedia.org/wiki/Monorepo) set - `compiler-ssr`: Compiler that produces render functions optimized for server-side rendering. -- `template-explorer`: A development tool for debugging compiler output. You can run `nr dev template-explorer` and open its `index.html` to get a repl of template compilation based on current source code. - - A [live version](https://vue-next-template-explorer.netlify.com) of the template explorer is also available, which can be used for providing reproductions for compiler bugs. You can also pick the deployment for a specific commit from the [deploy logs](https://app.netlify.com/sites/vue-next-template-explorer/deploys). - - `shared`: Internal utilities shared across multiple packages (especially environment-agnostic utils used by both runtime and compiler packages). - `vue`: The public facing "full build" which includes both the runtime AND the compiler. +- Private utility packages: + + - `dts-test`: Contains type-only tests against generated dts files. + + - `sfc-playground`: The playground continuously deployed at https://sfc.vuejs.org. To run the playground locally, use [`nr dev-sfc`](#nr-dev-sfc). + + - `template-explorer`: A development tool for debugging compiler output, continuously deployed at https://template-explorer.vuejs.org/. To run it locally, run [`nr dev-compiler`](#nr-dev-compiler). + + - `size-check`: Used for checking built bundle sizes on CI. + ### Importing Packages The packages can import each other directly using their package names. Note that when importing a package, the name listed in its `package.json` should be used. Most of the time the `@vue/` prefix is needed: @@ -228,7 +253,7 @@ import { h } from '@vue/runtime-core' This is made possible via several configurations: - For TypeScript, `compilerOptions.paths` in `tsconfig.json` -- For Jest, `moduleNameMapper` in `jest.config.js` +- Vitest and Rollup share the sae set of aliases from `scripts/aliases.mjs` - For plain Node.js, they are linked using [PNPM Workspaces](https://pnpm.io/workspaces). ### Package Dependencies @@ -268,7 +293,7 @@ There are some rules to follow when importing across package boundaries: ## Contributing Tests -Unit tests are collocated with the code being tested in each package, inside directories named `__tests__`. Consult the [Jest docs](https://jestjs.io/docs/en/using-matchers) and existing test cases for how to write new test specs. Here are some additional guidelines: +Unit tests are collocated with the code being tested in each package, inside directories named `__tests__`. Consult the [Vitest docs](https://vitest.dev/api/) and existing test cases for how to write new test specs. Here are some additional guidelines: - Use the minimal API needed for a test case. For example, if a test can be written without involving the reactivity system or a component, it should be written so. This limits the test's exposure to changes in unrelated parts and makes it more stable. @@ -276,11 +301,11 @@ Unit tests are collocated with the code being tested in each package, inside dir - Only use platform-specific runtimes if the test is asserting platform-specific behavior. -Test coverage is continuously deployed at https://vue-next-coverage.netlify.app/. PRs that improve test coverage are welcome, but in general the test coverage should be used as a guidance for finding API use cases that are not covered by tests. We don't recommend adding tests that only improve coverage but not actually test a meaning use case. +Test coverage is continuously deployed at https://coverage.vuejs.org. PRs that improve test coverage are welcome, but in general the test coverage should be used as a guidance for finding API use cases that are not covered by tests. We don't recommend adding tests that only improve coverage but not actually test a meaning use case. ### Testing Type Definition Correctness -Type tests are located in the `test-dts` directory. To run the dts tests, run `nr test-dts`. Note that the type test requires all relevant `*.d.ts` files to be built first (and the script does it for you). Once the `d.ts` files are built and up-to-date, the tests can be re-run by simply running `nr test-dts`. +Type tests are located in the `packages/dts-test` directory. To run the dts tests, run `nr test-dts`. Note that the type test requires all relevant `*.d.ts` files to be built first (and the script does it for you). Once the `d.ts` files are built and up-to-date, the tests can be re-run by running `nr test-dts-only`. ## Financial Contribution diff --git a/packages/dts-test/README.md b/packages/dts-test/README.md index 692229fbcc0..2ac0b80ab81 100644 --- a/packages/dts-test/README.md +++ b/packages/dts-test/README.md @@ -4,4 +4,4 @@ Tests Typescript types to ensure the types remain as expected. - This directory is included in the root `tsconfig.json`, where package imports are aliased to `src` directories, so in IDEs and the `pnpm check` script the types are validated against source code. -- When runnong `tsc` with `packages/dts-test/tsconfig.test.json`, packages are resolved using using normal `node` resolution, so the types are validated against actual **built** types. This requires the types to be built first via `pnpm build-types`. +- When running `tsc` with `packages/dts-test/tsconfig.test.json`, packages are resolved using using normal `node` resolution, so the types are validated against actual **built** types. This requires the types to be built first via `pnpm build-types`. From 213908cbde400c86df49d5b0a3c46746156b5ec9 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 17:50:20 +0800 Subject: [PATCH 015/999] ci: avoid netlify oom --- vitest.config.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vitest.config.ts b/vitest.config.ts index 863fd70f7e5..a7fb2853c50 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -22,7 +22,8 @@ export default defineConfig({ }, test: { globals: true, - threads: false, + // if not using threads, Netlify goes OOM when generating coverage report + threads: process.env.NETLIFY ? true : false, setupFiles: 'scripts/setupVitest.ts', environmentMatchGlobs: [ ['packages/{vue,vue-compat,runtime-dom}/**', 'jsdom'] From 78a52ef3fedd9495bebcc9614f5755381d669d63 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 18:03:33 +0800 Subject: [PATCH 016/999] docs: document git hooks [ci skip] --- .github/contributing.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/contributing.md b/.github/contributing.md index e62f1263a02..5ffdea4acdc 100644 --- a/.github/contributing.md +++ b/.github/contributing.md @@ -76,6 +76,14 @@ A high level overview of tools used: - [Prettier](https://prettier.io/) for code formatting - [ESLint](https://eslint.org/) for static error prevention (outside of types) +## Git Hooks + +The project uses [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks) to enforce the following on each commit: + +- Type check the entire project +- Automatically format changed files using Prettier +- Verify commit message format (logic in `scripts/verifyCommit.mjs`) + ## Scripts **The examples below will be using the `nr` command from the [ni](https://github.com/antfu/ni) package.** You can also use plain `npm run`, but you will need to pass all additional arguments after the command after an extra `--`. For example, `nr build runtime --all` is equivalent to `npm run build -- runtime --all`. @@ -106,7 +114,7 @@ nr build runtime-core nr build runtime --all ``` -Note that `nr build` uses `rollup-plugin-esbuild` for transpiling typescript and **does not perform type checking**. To run type check on the entire codebase, run `nr check`. +Note that `nr build` uses `rollup-plugin-esbuild` for transpiling typescript and **does not perform type checking**. To run type check on the entire codebase, run `nr check`. Type checks are also automatically run on each commit. #### Build Formats From 20ea62da3c137e8282ec29710219adf1b92a299f Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 18:12:56 +0800 Subject: [PATCH 017/999] chore: use type: "module" --- .eslintrc.js => .eslintrc.cjs | 0 .github/contributing.md | 6 +- package.json | 31 +-- pnpm-lock.yaml | 240 ++++++++---------- rollup.config.mjs => rollup.config.js | 5 +- rollup.dts.config.mjs => rollup.dts.config.js | 0 scripts/{aliases.mjs => aliases.js} | 0 scripts/{build.mjs => build.js} | 5 +- scripts/{const-enum.mjs => const-enum.js} | 0 scripts/{dev.mjs => dev.js} | 0 scripts/{pre-dev-sfc.mjs => pre-dev-sfc.js} | 0 scripts/{preinstall.mjs => preinstall.js} | 0 scripts/{release.mjs => release.js} | 0 scripts/{utils.mjs => utils.js} | 0 scripts/{verifyCommit.mjs => verifyCommit.js} | 0 vitest.config.ts | 2 +- 16 files changed, 137 insertions(+), 152 deletions(-) rename .eslintrc.js => .eslintrc.cjs (100%) rename rollup.config.mjs => rollup.config.js (98%) rename rollup.dts.config.mjs => rollup.dts.config.js (100%) rename scripts/{aliases.mjs => aliases.js} (100%) rename scripts/{build.mjs => build.js} (97%) rename scripts/{const-enum.mjs => const-enum.js} (100%) rename scripts/{dev.mjs => dev.js} (100%) rename scripts/{pre-dev-sfc.mjs => pre-dev-sfc.js} (100%) rename scripts/{preinstall.mjs => preinstall.js} (100%) rename scripts/{release.mjs => release.js} (100%) rename scripts/{utils.mjs => utils.js} (100%) rename scripts/{verifyCommit.mjs => verifyCommit.js} (100%) diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 100% rename from .eslintrc.js rename to .eslintrc.cjs diff --git a/.github/contributing.md b/.github/contributing.md index 5ffdea4acdc..bb2a916c76a 100644 --- a/.github/contributing.md +++ b/.github/contributing.md @@ -82,7 +82,7 @@ The project uses [simple-git-hooks](https://github.com/toplenboren/simple-git-ho - Type check the entire project - Automatically format changed files using Prettier -- Verify commit message format (logic in `scripts/verifyCommit.mjs`) +- Verify commit message format (logic in `scripts/verifyCommit.js`) ## Scripts @@ -131,7 +131,7 @@ Additional formats that only apply to the main `vue` package: - **`esm-bundler-runtime`** - **`esm-browser-runtime`** -More details about each of these formats can be found in the [`vue` package README](https://github.com/vuejs/core/blob/main/packages/vue/README.md#which-dist-file-to-use) and the [Rollup config file](https://github.com/vuejs/core/blob/main/rollup.config.mjs). +More details about each of these formats can be found in the [`vue` package README](https://github.com/vuejs/core/blob/main/packages/vue/README.md#which-dist-file-to-use) and the [Rollup config file](https://github.com/vuejs/core/blob/main/rollup.config.js). For example, to build `runtime-core` with the global build only: @@ -261,7 +261,7 @@ import { h } from '@vue/runtime-core' This is made possible via several configurations: - For TypeScript, `compilerOptions.paths` in `tsconfig.json` -- Vitest and Rollup share the sae set of aliases from `scripts/aliases.mjs` +- Vitest and Rollup share the sae set of aliases from `scripts/aliases.js` - For plain Node.js, they are linked using [PNPM Workspaces](https://pnpm.io/workspaces). ### Package Dependencies diff --git a/package.json b/package.json index 6f6ed7c96bc..3f835e4620e 100644 --- a/package.json +++ b/package.json @@ -2,44 +2,45 @@ "private": true, "version": "3.2.47", "packageManager": "pnpm@7.1.0", + "type": "module", "scripts": { - "dev": "node scripts/dev.mjs", - "build": "node scripts/build.mjs", - "build-dts": "tsc -p tsconfig.build.json && rollup -c rollup.dts.config.mjs", + "dev": "node scripts/dev.js", + "build": "node scripts/build.js", + "build-dts": "tsc -p tsconfig.build.json && rollup -c rollup.dts.config.js", "size": "run-s size-global size-baseline", - "size-global": "node scripts/build.mjs vue runtime-dom -f global -p", - "size-baseline": "node scripts/build.mjs vue -f esm-bundler-runtime && node scripts/build.mjs runtime-dom runtime-core reactivity shared -f esm-bundler && cd packages/size-check && vite build && node brotli", + "size-global": "node scripts/build.js vue runtime-dom -f global -p", + "size-baseline": "node scripts/build.js vue -f esm-bundler-runtime && node scripts/build.js runtime-dom runtime-core reactivity shared -f esm-bundler && cd packages/size-check && vite build && node brotli", "check": "tsc --incremental --noEmit", "lint": "eslint --cache --ext .ts packages/*/{src,__tests__}/**.ts", "format": "prettier --write --cache --parser typescript \"**/*.[tj]s?(x)\"", "format-check": "prettier --check --cache --parser typescript \"**/*.[tj]s?(x)\"", "test": "vitest", "test-unit": "vitest -c vitest.unit.config.ts", - "test-e2e": "node scripts/build.mjs vue -f global -d && vitest -c vitest.e2e.config.ts", + "test-e2e": "node scripts/build.js vue -f global -d && vitest -c vitest.e2e.config.ts", "test-dts": "run-s build-dts test-dts-only", "test-dts-only": "tsc -p ./packages/dts-test/tsconfig.test.json", "test-coverage": "vitest -c vitest.unit.config.ts --coverage", - "release": "node scripts/release.mjs", + "release": "node scripts/release.js", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", - "dev-esm": "node scripts/dev.mjs -if esm-bundler-runtime", + "dev-esm": "node scripts/dev.js -if esm-bundler-runtime", "dev-compiler": "run-p \"dev template-explorer\" serve", "dev-sfc": "run-s dev-sfc-prepare dev-sfc-run", - "dev-sfc-prepare": "node scripts/pre-dev-sfc.mjs || npm run build-compiler-cjs", + "dev-sfc-prepare": "node scripts/pre-dev-sfc.js || npm run build-compiler-cjs", "dev-sfc-serve": "vite packages/sfc-playground --host", "dev-sfc-run": "run-p \"dev compiler-sfc -f esm-browser\" \"dev vue -if esm-bundler-runtime\" \"dev server-renderer -if esm-bundler\" dev-sfc-serve", "serve": "serve", "open": "open http://localhost:5000/packages/template-explorer/local.html", "build-sfc-playground": "run-s build-compiler-cjs build-runtime-esm build-ssr-esm build-sfc-playground-self", - "build-compiler-cjs": "node scripts/build.mjs compiler reactivity-transform shared -af cjs", - "build-runtime-esm": "node scripts/build.mjs runtime reactivity shared -af esm-bundler && node scripts/build.mjs vue -f esm-bundler-runtime && node scripts/build.mjs vue -f esm-browser-runtime", - "build-ssr-esm": "node scripts/build.mjs compiler-sfc server-renderer -f esm-browser", + "build-compiler-cjs": "node scripts/build.js compiler reactivity-transform shared -af cjs", + "build-runtime-esm": "node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler-runtime && node scripts/build.js vue -f esm-browser-runtime", + "build-ssr-esm": "node scripts/build.js compiler-sfc server-renderer -f esm-browser", "build-sfc-playground-self": "cd packages/sfc-playground && npm run build", - "preinstall": "node ./scripts/preinstall.mjs", + "preinstall": "node ./scripts/preinstall.js", "postinstall": "simple-git-hooks" }, "simple-git-hooks": { "pre-commit": "pnpm lint-staged && pnpm check", - "commit-msg": "node scripts/verifyCommit.mjs" + "commit-msg": "node scripts/verifyCommit.js" }, "lint-staged": { "*.{js,json}": [ @@ -74,7 +75,7 @@ "csstype": "^3.0.3", "enquirer": "^2.3.2", "esbuild": "^0.17.4", - "eslint": "^7.7.0", + "eslint": "^8.33.0", "eslint-plugin-jest": "^27.2.1", "execa": "^4.0.2", "jsdom": "^21.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7d7d157787c..f7b074d640d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,7 +24,7 @@ importers: csstype: ^3.0.3 enquirer: ^2.3.2 esbuild: ^0.17.4 - eslint: ^7.7.0 + eslint: ^8.33.0 eslint-plugin-jest: ^27.2.1 execa: ^4.0.2 jsdom: ^21.1.0 @@ -64,7 +64,7 @@ importers: '@rollup/plugin-terser': 0.1.0_rollup@3.10.1 '@types/hash-sum': 1.0.0 '@types/node': 16.18.11 - '@typescript-eslint/parser': 5.50.0_jofidmxrjzhj7l6vknpw5ecvfe + '@typescript-eslint/parser': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64 '@vitest/coverage-istanbul': 0.28.3_jsdom@21.1.0+terser@5.16.2 '@vue/consolidate': 0.17.3 brotli: 1.3.3 @@ -73,8 +73,8 @@ importers: csstype: 3.1.1 enquirer: 2.3.6 esbuild: 0.17.5 - eslint: 7.32.0 - eslint-plugin-jest: 27.2.1_jofidmxrjzhj7l6vknpw5ecvfe + eslint: 8.33.0 + eslint-plugin-jest: 27.2.1_4vsywjlpuriuw3tl5oq6zy5a64 execa: 4.1.0 jsdom: 21.1.0 lint-staged: 10.5.4 @@ -319,12 +319,6 @@ packages: '@jridgewell/trace-mapping': 0.3.17 dev: true - /@babel/code-frame/7.12.11: - resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} - dependencies: - '@babel/highlight': 7.18.6 - dev: true - /@babel/code-frame/7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} @@ -921,25 +915,25 @@ packages: dev: true optional: true - /@eslint/eslintrc/0.4.3: - resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} - engines: {node: ^10.12.0 || >=12.0.0} + /@eslint/eslintrc/1.4.1: + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 7.3.1 + espree: 9.4.1 globals: 13.20.0 - ignore: 4.0.6 + ignore: 5.2.4 import-fresh: 3.3.0 - js-yaml: 3.14.1 + js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color dev: true - /@humanwhocodes/config-array/0.5.0: - resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} + /@humanwhocodes/config-array/0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -949,6 +943,11 @@ packages: - supports-color dev: true + /@humanwhocodes/module-importer/1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + /@humanwhocodes/object-schema/1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true @@ -1214,7 +1213,7 @@ packages: dev: true optional: true - /@typescript-eslint/parser/5.50.0_jofidmxrjzhj7l6vknpw5ecvfe: + /@typescript-eslint/parser/5.50.0_4vsywjlpuriuw3tl5oq6zy5a64: resolution: {integrity: sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1228,7 +1227,7 @@ packages: '@typescript-eslint/types': 5.50.0 '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.5 debug: 4.3.4 - eslint: 7.32.0 + eslint: 8.33.0 typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -1268,7 +1267,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.50.0_jofidmxrjzhj7l6vknpw5ecvfe: + /@typescript-eslint/utils/5.50.0_4vsywjlpuriuw3tl5oq6zy5a64: resolution: {integrity: sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1279,9 +1278,9 @@ packages: '@typescript-eslint/scope-manager': 5.50.0 '@typescript-eslint/types': 5.50.0 '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.5 - eslint: 7.32.0 + eslint: 8.33.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@7.32.0 + eslint-utils: 3.0.0_eslint@8.33.0 semver: 7.3.8 transitivePeerDependencies: - supports-color @@ -1413,12 +1412,12 @@ packages: acorn-walk: 8.2.0 dev: true - /acorn-jsx/5.3.2_acorn@7.4.1: + /acorn-jsx/5.3.2_acorn@8.8.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 7.4.1 + acorn: 8.8.2 dev: true /acorn-walk/8.2.0: @@ -1474,15 +1473,6 @@ packages: uri-js: 4.4.1 dev: true - /ajv/8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true - /ansi-align/2.0.0: resolution: {integrity: sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA==} dependencies: @@ -1556,12 +1546,6 @@ packages: resolution: {integrity: sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==} dev: true - /argparse/1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: true - /argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true @@ -2731,7 +2715,7 @@ packages: source-map: 0.6.1 dev: true - /eslint-plugin-jest/27.2.1_jofidmxrjzhj7l6vknpw5ecvfe: + /eslint-plugin-jest/27.2.1_4vsywjlpuriuw3tl5oq6zy5a64: resolution: {integrity: sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -2744,8 +2728,8 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/utils': 5.50.0_jofidmxrjzhj7l6vknpw5ecvfe - eslint: 7.32.0 + '@typescript-eslint/utils': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64 + eslint: 8.33.0 transitivePeerDependencies: - supports-color - typescript @@ -2759,28 +2743,24 @@ packages: estraverse: 4.3.0 dev: true - /eslint-utils/2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} + /eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - eslint-visitor-keys: 1.3.0 + esrecurse: 4.3.0 + estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@7.32.0: + /eslint-utils/3.0.0_eslint@8.33.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 7.32.0 + eslint: 8.33.0 eslint-visitor-keys: 2.1.0 dev: true - /eslint-visitor-keys/1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - dev: true - /eslint-visitor-keys/2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} @@ -2791,62 +2771,61 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/7.32.0: - resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} - engines: {node: ^10.12.0 || >=12.0.0} + /eslint/8.33.0: + resolution: {integrity: sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@babel/code-frame': 7.12.11 - '@eslint/eslintrc': 0.4.3 - '@humanwhocodes/config-array': 0.5.0 + '@eslint/eslintrc': 1.4.1 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.4 doctrine: 3.0.0 - enquirer: 2.3.6 escape-string-regexp: 4.0.0 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - eslint-visitor-keys: 2.1.0 - espree: 7.3.1 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.33.0 + eslint-visitor-keys: 3.3.0 + espree: 9.4.1 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 5.1.2 + find-up: 5.0.0 + glob-parent: 6.0.2 globals: 13.20.0 - ignore: 4.0.6 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 - js-yaml: 3.14.1 + is-path-inside: 3.0.3 + js-sdsl: 4.3.0 + js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.1 - progress: 2.0.3 regexpp: 3.2.0 - semver: 7.3.8 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 - table: 6.8.1 text-table: 0.2.0 - v8-compile-cache: 2.3.0 transitivePeerDependencies: - supports-color dev: true - /espree/7.3.1: - resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} - engines: {node: ^10.12.0 || >=12.0.0} + /espree/9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.2_acorn@7.4.1 - eslint-visitor-keys: 1.3.0 + acorn: 8.8.2 + acorn-jsx: 5.3.2_acorn@8.8.2 + eslint-visitor-keys: 3.3.0 dev: true /esprima/4.0.1: @@ -3031,6 +3010,14 @@ packages: path-exists: 4.0.0 dev: true + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + /flat-cache/3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -3092,10 +3079,6 @@ packages: functions-have-names: 1.2.3 dev: true - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - dev: true - /functions-have-names/1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true @@ -3218,6 +3201,13 @@ packages: is-glob: 4.0.3 dev: true + /glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + /glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -3281,6 +3271,10 @@ packages: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true + /grapheme-splitter/1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + /handlebars/4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} engines: {node: '>=0.4.7'} @@ -3447,11 +3441,6 @@ packages: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true - /ignore/4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - dev: true - /ignore/5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} @@ -3643,6 +3632,11 @@ packages: resolution: {integrity: sha512-GkfZZlIZtpkFrqyAXPQSRBMsaHAw+CgoKe2HXAkjd/sfoI9+hS8PT4wg2rJxdQyUKr7N2vHJbg7/jQtE5l5vBQ==} dev: true + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + /is-plain-obj/1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} @@ -3811,6 +3805,10 @@ packages: engines: {node: '>=10'} dev: true + /js-sdsl/4.3.0: + resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} + dev: true + /js-stringify/1.0.2: resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} dev: true @@ -3819,14 +3817,6 @@ packages: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true - /js-yaml/3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: true - /js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -3893,10 +3883,6 @@ packages: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - /json-schema-traverse/1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true - /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true @@ -4121,6 +4107,13 @@ packages: p-locate: 4.1.0 dev: true + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + /lodash.camelcase/4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} dev: true @@ -4133,10 +4126,6 @@ packages: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lodash.truncate/4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - dev: true - /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true @@ -4593,6 +4582,13 @@ packages: p-try: 2.2.0 dev: true + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + /p-limit/4.0.0: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4614,6 +4610,13 @@ packages: p-limit: 2.3.0 dev: true + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + /p-map/4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} @@ -5254,11 +5257,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /require-from-string/2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true - /requires-port/1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: true @@ -5655,10 +5653,6 @@ packages: readable-stream: 3.6.0 dev: true - /sprintf-js/1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true - /stackback/0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true @@ -5837,17 +5831,6 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /table/6.8.1: - resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} - engines: {node: '>=10.0.0'} - dependencies: - ajv: 8.12.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - /tar-fs/2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} dependencies: @@ -6150,10 +6133,6 @@ packages: hasBin: true dev: true - /v8-compile-cache/2.3.0: - resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} - dev: true - /validate-npm-package-license/3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: @@ -6571,6 +6550,11 @@ packages: fd-slicer: 1.1.0 dev: true + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + /yocto-queue/1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} diff --git a/rollup.config.mjs b/rollup.config.js similarity index 98% rename from rollup.config.mjs rename to rollup.config.js index 84b44478d21..e674459c22f 100644 --- a/rollup.config.mjs +++ b/rollup.config.js @@ -11,9 +11,8 @@ import { nodeResolve } from '@rollup/plugin-node-resolve' import terser from '@rollup/plugin-terser' import esbuild from 'rollup-plugin-esbuild' import alias from '@rollup/plugin-alias' -import { entries } from './scripts/aliases.mjs' -import { constEnum } from './scripts/const-enum.mjs' -import { writeFileSync } from 'node:fs' +import { entries } from './scripts/aliases.js' +import { constEnum } from './scripts/const-enum.js' if (!process.env.TARGET) { throw new Error('TARGET package must be specified via --environment flag.') diff --git a/rollup.dts.config.mjs b/rollup.dts.config.js similarity index 100% rename from rollup.dts.config.mjs rename to rollup.dts.config.js diff --git a/scripts/aliases.mjs b/scripts/aliases.js similarity index 100% rename from scripts/aliases.mjs rename to scripts/aliases.js diff --git a/scripts/build.mjs b/scripts/build.js similarity index 97% rename from scripts/build.mjs rename to scripts/build.js index 1d4f4ab8523..0a014c9406b 100644 --- a/scripts/build.mjs +++ b/scripts/build.js @@ -26,7 +26,7 @@ import chalk from 'chalk' import execa from 'execa' import { cpus } from 'node:os' import { createRequire } from 'node:module' -import { targets as allTargets, fuzzyMatchTarget } from './utils.mjs' +import { targets as allTargets, fuzzyMatchTarget } from './utils.js' const require = createRequire(import.meta.url) const args = minimist(process.argv.slice(2)) @@ -138,7 +138,8 @@ function checkFileSize(filePath) { const gzipped = gzipSync(file) const gzippedSize = (gzipped.length / 1024).toFixed(2) + 'kb' const compressed = compress(file) - const compressedSize = (compressed?.length / 1024).toFixed(2) + 'kb' + // @ts-ignore + const compressedSize = (compressed.length / 1024).toFixed(2) + 'kb' console.log( `${chalk.gray( chalk.bold(path.basename(filePath)) diff --git a/scripts/const-enum.mjs b/scripts/const-enum.js similarity index 100% rename from scripts/const-enum.mjs rename to scripts/const-enum.js diff --git a/scripts/dev.mjs b/scripts/dev.js similarity index 100% rename from scripts/dev.mjs rename to scripts/dev.js diff --git a/scripts/pre-dev-sfc.mjs b/scripts/pre-dev-sfc.js similarity index 100% rename from scripts/pre-dev-sfc.mjs rename to scripts/pre-dev-sfc.js diff --git a/scripts/preinstall.mjs b/scripts/preinstall.js similarity index 100% rename from scripts/preinstall.mjs rename to scripts/preinstall.js diff --git a/scripts/release.mjs b/scripts/release.js similarity index 100% rename from scripts/release.mjs rename to scripts/release.js diff --git a/scripts/utils.mjs b/scripts/utils.js similarity index 100% rename from scripts/utils.mjs rename to scripts/utils.js diff --git a/scripts/verifyCommit.mjs b/scripts/verifyCommit.js similarity index 100% rename from scripts/verifyCommit.mjs rename to scripts/verifyCommit.js diff --git a/vitest.config.ts b/vitest.config.ts index a7fb2853c50..dbff2b0ed2f 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,5 +1,5 @@ import { configDefaults, defineConfig, UserConfig } from 'vitest/config' -import { entries } from './scripts/aliases.mjs' +import { entries } from './scripts/aliases.js' export default defineConfig({ define: { From 7694ab9f679beb8bee21cc934d261778f5e8fc91 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 18:18:20 +0800 Subject: [PATCH 018/999] chore: update packageManager field --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3f835e4620e..f4d80ab4e64 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "version": "3.2.47", - "packageManager": "pnpm@7.1.0", + "packageManager": "pnpm@7.26.0", "type": "module", "scripts": { "dev": "node scripts/dev.js", From a871fd0cc0239e0e65d087b50ed5a32a5bd50c4e Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 18:24:03 +0800 Subject: [PATCH 019/999] chore: use consistent ts-check comments in scripts --- scripts/build.js | 4 ++-- scripts/dev.js | 3 ++- scripts/pre-dev-sfc.js | 1 + scripts/preinstall.js | 1 + scripts/utils.js | 1 + scripts/verifyCommit.js | 5 ++--- 6 files changed, 9 insertions(+), 6 deletions(-) diff --git a/scripts/build.js b/scripts/build.js index 0a014c9406b..6951c396175 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -1,3 +1,5 @@ +// @ts-check + /* Produces production builds and stitches together d.ts files. @@ -14,11 +16,9 @@ nr build core --formats cjs ``` */ -// @ts-check import fs from 'node:fs/promises' import { existsSync, readFileSync } from 'node:fs' import path from 'node:path' -import { fileURLToPath } from 'node:url' import minimist from 'minimist' import { gzipSync } from 'node:zlib' import { compress } from 'brotli' diff --git a/scripts/dev.js b/scripts/dev.js index 596bea84f80..d3dc9311717 100644 --- a/scripts/dev.js +++ b/scripts/dev.js @@ -1,8 +1,9 @@ +// @ts-check + // Using esbuild for faster dev builds. // We are still using Rollup for production builds because it generates // smaller files w/ better tree-shaking. -// @ts-check import esbuild from 'esbuild' import { resolve, relative, dirname } from 'node:path' import { fileURLToPath } from 'node:url' diff --git a/scripts/pre-dev-sfc.js b/scripts/pre-dev-sfc.js index e1f30d54799..b9b3a534460 100644 --- a/scripts/pre-dev-sfc.js +++ b/scripts/pre-dev-sfc.js @@ -1,3 +1,4 @@ +// @ts-check import fs from 'node:fs' const packagesToCheck = [ diff --git a/scripts/preinstall.js b/scripts/preinstall.js index a1269cc0a7c..05823d5f5d0 100644 --- a/scripts/preinstall.js +++ b/scripts/preinstall.js @@ -1,3 +1,4 @@ +// @ts-check if (!/pnpm/.test(process.env.npm_execpath || '')) { console.warn( `\u001b[33mThis repository requires using pnpm as the package manager ` + diff --git a/scripts/utils.js b/scripts/utils.js index dcd03505be0..b58f25a1333 100644 --- a/scripts/utils.js +++ b/scripts/utils.js @@ -1,3 +1,4 @@ +// @ts-check import fs from 'node:fs' import chalk from 'chalk' import { createRequire } from 'node:module' diff --git a/scripts/verifyCommit.js b/scripts/verifyCommit.js index 81512ab920e..4c1a2828bb8 100644 --- a/scripts/verifyCommit.js +++ b/scripts/verifyCommit.js @@ -1,10 +1,9 @@ +// @ts-check import chalk from 'chalk' import { readFileSync } from 'fs' import path from 'path' -import { fileURLToPath } from 'url' -const dirname = path.dirname(fileURLToPath(import.meta.url), '..') -const msgPath = path.resolve(dirname, '../.git/COMMIT_EDITMSG') +const msgPath = path.resolve('.git/COMMIT_EDITMSG') const msg = readFileSync(msgPath, 'utf-8').trim() const commitRE = From b49b9eff20e7b77896d6a1cc811eb5e2e5fea8f4 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 18:29:17 +0800 Subject: [PATCH 020/999] build: stricter conditions for UnaryExpression in const enum plugin --- scripts/const-enum.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/scripts/const-enum.js b/scripts/const-enum.js index 133b6da1803..b4dbc1770b9 100644 --- a/scripts/const-enum.js +++ b/scripts/const-enum.js @@ -112,9 +112,17 @@ export async function constEnum() { } if (init.type === 'UnaryExpression') { - // @ts-ignore assume all operands are literals - const exp = `${init.operator}${init.argument.value}` - value = evaluate(exp) + if ( + init.argument.type === 'StringLiteral' || + init.argument.type === 'NumericLiteral' + ) { + const exp = `${init.operator}${init.argument.value}` + value = evaluate(exp) + } else { + throw new Error( + `unhandled UnaryExpression argument type ${init.argument.type} in ${file}` + ) + } } if (value === undefined) { From 1e0251a3771e4b4c9f5cd75b1c389d44706db195 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 21:41:33 +0800 Subject: [PATCH 021/999] test: more strict linking in dts tests --- packages/dts-test/appUse.test-d.ts | 2 +- packages/dts-test/compiler.test-d.ts | 4 +- packages/dts-test/component.test-d.ts | 14 +- .../componentTypeExtensions.test-d.tsx | 27 ++-- packages/dts-test/defineComponent.test-d.tsx | 139 +++++++++--------- .../dts-test/defineCustomElement.test-d.ts | 13 +- .../dts-test/functionalComponent.test-d.tsx | 32 ++-- packages/dts-test/h.test-d.ts | 54 ++++--- packages/dts-test/inject.test-d.ts | 3 +- packages/dts-test/package.json | 5 +- packages/dts-test/reactivity.test-d.ts | 17 +-- packages/dts-test/reactivityMacros.test-d.ts | 10 +- packages/dts-test/ref.test-d.ts | 7 +- packages/dts-test/setupHelpers.test-d.ts | 7 +- packages/dts-test/tsx.test-d.tsx | 23 +-- packages/dts-test/{index.d.ts => utils.d.ts} | 3 - packages/dts-test/watch.test-d.ts | 3 +- pnpm-lock.yaml | 6 - 18 files changed, 157 insertions(+), 212 deletions(-) rename packages/dts-test/{index.d.ts => utils.d.ts} (88%) diff --git a/packages/dts-test/appUse.test-d.ts b/packages/dts-test/appUse.test-d.ts index 526aa888a0b..c1bebcd53e3 100644 --- a/packages/dts-test/appUse.test-d.ts +++ b/packages/dts-test/appUse.test-d.ts @@ -1,4 +1,4 @@ -import { createApp, App, Plugin } from './index' +import { createApp, App, Plugin } from 'vue' const app = createApp({}) diff --git a/packages/dts-test/compiler.test-d.ts b/packages/dts-test/compiler.test-d.ts index 974b49492a4..c6282373983 100644 --- a/packages/dts-test/compiler.test-d.ts +++ b/packages/dts-test/compiler.test-d.ts @@ -1,5 +1,4 @@ import { - expectType, createBlock, VNode, Teleport, @@ -9,7 +8,8 @@ import { Fragment, Suspense, defineComponent -} from './index' +} from 'vue' +import { expectType } from './utils' expectType(createBlock(Teleport)) expectType(createBlock(Text)) diff --git a/packages/dts-test/component.test-d.ts b/packages/dts-test/component.test-d.ts index 5678c8e1ceb..5535419f198 100644 --- a/packages/dts-test/component.test-d.ts +++ b/packages/dts-test/component.test-d.ts @@ -1,20 +1,16 @@ import { - describe, Component, defineComponent, PropType, ref, Ref, - expectError, - expectType, ShallowUnwrapRef, FunctionalComponent, ComponentPublicInstance, toRefs, - IsAny, - SetupContext, - expectAssignable -} from './index' + SetupContext +} from 'vue' +import { describe, expectAssignable, expectType, IsAny } from './utils' declare function extractComponentOptions( obj: Component @@ -371,7 +367,7 @@ describe('array props', () => { const { props, rawBindings, setup } = extractComponentOptions(MyComponent) // @ts-expect-error props should be readonly - expectError((props.a = 1)) + props.a = 1 expectType(props.a) expectType(props.b) @@ -392,7 +388,7 @@ describe('array props', () => { const { props, rawBindings, setup } = extractComponentOptions(MyComponent) // @ts-expect-error props should be readonly - expectError((props.a = 1)) + props.a = 1 // TODO infer the correct keys // expectType(props.a) diff --git a/packages/dts-test/componentTypeExtensions.test-d.tsx b/packages/dts-test/componentTypeExtensions.test-d.tsx index e26c272c703..4b3c5d7d195 100644 --- a/packages/dts-test/componentTypeExtensions.test-d.tsx +++ b/packages/dts-test/componentTypeExtensions.test-d.tsx @@ -1,6 +1,7 @@ -import { defineComponent, expectError, expectType } from './index' +import { defineComponent } from 'vue' +import { expectType } from './utils' -declare module '@vue/runtime-core' { +declare module 'vue' { interface ComponentCustomOptions { test?(n: number): void } @@ -31,20 +32,16 @@ export const Custom = defineComponent({ methods: { aMethod() { - // @ts-expect-error - expectError(this.notExisting) this.counter++ this.state = 'running' - this.$.appContext.config.globalProperties.state = 'running' - expectError( - // @ts-expect-error - (this.$.appContext.config.globalProperties.state = 'not valid') - ) - // @ts-expect-error - expectError((this.state = 'not valid')) + this.notExisting + // @ts-expect-error + this.state = 'not valid' + // @ts-expect-error + this.$.appContext.config.globalProperties.state = 'not valid' } } }) @@ -57,10 +54,10 @@ expectType() // @ts-expect-error expectType() // @ts-expect-error -expectError() +; // @ts-expect-error -expectError() +; // @ts-expect-error -expectError() +; // @ts-expect-error -expectError() +; diff --git a/packages/dts-test/defineComponent.test-d.tsx b/packages/dts-test/defineComponent.test-d.tsx index 1ad6ee1f38f..0d2e35d7983 100644 --- a/packages/dts-test/defineComponent.test-d.tsx +++ b/packages/dts-test/defineComponent.test-d.tsx @@ -1,20 +1,16 @@ import { - describe, - test, Component, defineComponent, PropType, ref, reactive, createApp, - expectError, - expectType, ComponentPublicInstance, ComponentOptions, SetupContext, - IsUnion, h -} from './index' +} from 'vue' +import { describe, expectType, IsUnion } from './utils' describe('with object props', () => { interface ExpectedProps { @@ -178,7 +174,7 @@ describe('with object props', () => { expectType(props.lll) // @ts-expect-error props should be readonly - expectError((props.a = 1)) + props.a = 1 // setup context return { @@ -220,7 +216,7 @@ describe('with object props', () => { expectType(props.kkk) // @ts-expect-error props should be readonly - expectError((props.a = 1)) + props.a = 1 // should also expose declared props on `this` expectType(this.a) @@ -248,7 +244,7 @@ describe('with object props', () => { expectType(this.kkk) // @ts-expect-error props on `this` should be readonly - expectError((this.a = 1)) + this.a = 1 // assert setup context unwrapping expectType(this.c) @@ -305,18 +301,14 @@ describe('with object props', () => { ) // @ts-expect-error missing required props - expectError() + let c = + // @ts-expect-error wrong prop types + c = + // @ts-expect-error wrong prop types + c = - expectError( - // @ts-expect-error wrong prop types - - ) - expectError( - // @ts-expect-error wrong prop types - - ) // @ts-expect-error - expectError() + ; // `this` should be void inside of prop validators and prop default factories defineComponent({ @@ -353,17 +345,18 @@ describe('type inference w/ optional props declaration', () => { expectType() // @ts-expect-error - expectError() + ; // @ts-expect-error - expectError() + ; }) describe('type inference w/ direct setup function', () => { const MyComponent = defineComponent((_props: { msg: string }) => {}) expectType() // @ts-expect-error - expectError() - expectError() + ; + // @ts-expect-error + ; }) describe('type inference w/ array props declaration', () => { @@ -371,7 +364,7 @@ describe('type inference w/ array props declaration', () => { props: ['a', 'b'], setup(props) { // @ts-expect-error props should be readonly - expectError((props.a = 1)) + props.a = 1 expectType(props.a) expectType(props.b) return { @@ -382,7 +375,7 @@ describe('type inference w/ array props declaration', () => { expectType(this.$props.a) expectType(this.$props.b) // @ts-expect-error - expectError((this.$props.a = 1)) + this.$props.a = 1 expectType(this.a) expectType(this.b) expectType(this.c) @@ -390,7 +383,7 @@ describe('type inference w/ array props declaration', () => { }) expectType() // @ts-expect-error - expectError() + ; }) describe('type inference w/ options API', () => { @@ -609,17 +602,17 @@ describe('with mixins', () => { // props should be readonly // @ts-expect-error - expectError((this.aP1 = 'new')) + this.aP1 = 'new' // @ts-expect-error - expectError((this.z = 1)) + this.z = 1 // props on `this` should be readonly // @ts-expect-error - expectError((this.bP1 = 1)) + this.bP1 = 1 // string value can not assigned to number type value // @ts-expect-error - expectError((this.c = '1')) + this.c = '1' // setup context properties should be mutable this.d = 5 @@ -635,13 +628,13 @@ describe('with mixins', () => { // missing required props // @ts-expect-error - expectError() + ; // wrong prop types // @ts-expect-error - expectError() + ; // @ts-expect-error - expectError() + ; }) describe('with extends', () => { @@ -700,13 +693,13 @@ describe('with extends', () => { // missing required props // @ts-expect-error - expectError() + ; // wrong prop types // @ts-expect-error - expectError() + ; // @ts-expect-error - expectError() + ; }) describe('extends with mixins', () => { @@ -805,19 +798,19 @@ describe('extends with mixins', () => { // missing required props // @ts-expect-error - expectError() + ; // missing required props from mixin // @ts-expect-error - expectError() + ; // missing required props from extends // @ts-expect-error - expectError() + ; // wrong prop types // @ts-expect-error - expectError() + ; // @ts-expect-error - expectError() + ; // #3468 const CompWithD = defineComponent({ @@ -875,14 +868,14 @@ describe('compatibility w/ createApp', () => { }) describe('defineComponent', () => { - test('should accept components defined with defineComponent', () => { + describe('should accept components defined with defineComponent', () => { const comp = defineComponent({}) defineComponent({ components: { comp } }) }) - test('should accept class components with receiving constructor arguments', () => { + describe('should accept class components with receiving constructor arguments', () => { class Comp { static __vccOpts = {} constructor(_props: { foo: string }) {} @@ -915,29 +908,29 @@ describe('emits', () => { emit('click', 1) emit('input', 'foo') // @ts-expect-error - expectError(emit('nope')) + emit('nope') // @ts-expect-error - expectError(emit('click')) + emit('click') // @ts-expect-error - expectError(emit('click', 'foo')) + emit('click', 'foo') // @ts-expect-error - expectError(emit('input')) + emit('input') // @ts-expect-error - expectError(emit('input', 1)) + emit('input', 1) }, created() { this.$emit('click', 1) this.$emit('input', 'foo') // @ts-expect-error - expectError(this.$emit('nope')) + this.$emit('nope') // @ts-expect-error - expectError(this.$emit('click')) + this.$emit('click') // @ts-expect-error - expectError(this.$emit('click', 'foo')) + this.$emit('click', 'foo') // @ts-expect-error - expectError(this.$emit('input')) + this.$emit('input') // @ts-expect-error - expectError(this.$emit('input', 1)) + this.$emit('input', 1) }, mounted() { // #3599 @@ -947,15 +940,15 @@ describe('emits', () => { this.$emit('click', 1) this.$emit('input', 'foo') // @ts-expect-error - expectError(this.$emit('nope')) + this.$emit('nope') // @ts-expect-error - expectError(this.$emit('click')) + this.$emit('click') // @ts-expect-error - expectError(this.$emit('click', 'foo')) + this.$emit('click', 'foo') // @ts-expect-error - expectError(this.$emit('input')) + this.$emit('input') // @ts-expect-error - expectError(this.$emit('input', 1)) + this.$emit('input', 1) }) } }) @@ -970,14 +963,14 @@ describe('emits', () => { emit('foo', 123) emit('bar') // @ts-expect-error - expectError(emit('nope')) + emit('nope') }, created() { this.$emit('foo') this.$emit('foo', 123) this.$emit('bar') // @ts-expect-error - expectError(this.$emit('nope')) + this.$emit('nope') } }) @@ -990,9 +983,9 @@ describe('emits', () => { expectType<((n: number) => any) | undefined>(props.onClick) emit('click', 1) // @ts-expect-error - expectError(emit('click')) + emit('click') // @ts-expect-error - expectError(emit('click', 'foo')) + emit('click', 'foo') } }) @@ -1047,7 +1040,7 @@ describe('inject', () => { expectType(this.foo) expectType(this.bar) // @ts-expect-error - expectError((this.foobar = 1)) + this.foobar = 1 } }) @@ -1059,7 +1052,7 @@ describe('inject', () => { expectType(this.foo) expectType(this.bar) // @ts-expect-error - expectError((this.foobar = 1)) + this.foobar = 1 } }) @@ -1079,7 +1072,7 @@ describe('inject', () => { expectType(this.foo) expectType(this.bar) // @ts-expect-error - expectError((this.foobar = 1)) + this.foobar = 1 } }) @@ -1088,9 +1081,9 @@ describe('inject', () => { props: ['a', 'b'], created() { // @ts-expect-error - expectError((this.foo = 1)) + this.foo = 1 // @ts-expect-error - expectError((this.bar = 1)) + this.bar = 1 } }) }) @@ -1145,15 +1138,15 @@ describe('extract instance type', () => { expectType(compA.baseA) // @ts-expect-error - expectError((compA.a = true)) + compA.a = true // @ts-expect-error - expectError((compA.b = 'foo')) + compA.b = 'foo' // @ts-expect-error - expectError((compA.c = 1)) + compA.c = 1 // @ts-expect-error - expectError((compA.mA = 'foo')) + compA.mA = 'foo' // @ts-expect-error - expectError((compA.baseA = 1)) + compA.baseA = 1 }) describe('async setup', () => { @@ -1285,7 +1278,7 @@ import { AllowedComponentProps, ComponentCustomProps, ExtractPropTypes -} from './index' +} from 'vue' // code generated by tsc / vue-tsc, make sure this continues to work // so we don't accidentally change the args order of DefineComponent diff --git a/packages/dts-test/defineCustomElement.test-d.ts b/packages/dts-test/defineCustomElement.test-d.ts index 14a4b52a3b8..4e7cf228372 100644 --- a/packages/dts-test/defineCustomElement.test-d.ts +++ b/packages/dts-test/defineCustomElement.test-d.ts @@ -1,4 +1,5 @@ -import { defineCustomElement, expectType, expectError, describe } from './index' +import { defineCustomElement } from 'vue' +import { expectType, describe } from './utils' describe('inject', () => { // with object inject @@ -14,7 +15,7 @@ describe('inject', () => { expectType(this.foo) expectType(this.bar) // @ts-expect-error - expectError((this.foobar = 1)) + this.foobar = 1 } }) @@ -26,7 +27,7 @@ describe('inject', () => { expectType(this.foo) expectType(this.bar) // @ts-expect-error - expectError((this.foobar = 1)) + this.foobar = 1 } }) @@ -46,7 +47,7 @@ describe('inject', () => { expectType(this.foo) expectType(this.bar) // @ts-expect-error - expectError((this.foobar = 1)) + this.foobar = 1 } }) @@ -55,9 +56,9 @@ describe('inject', () => { props: ['a', 'b'], created() { // @ts-expect-error - expectError((this.foo = 1)) + this.foo = 1 // @ts-expect-error - expectError((this.bar = 1)) + this.bar = 1 } }) }) diff --git a/packages/dts-test/functionalComponent.test-d.tsx b/packages/dts-test/functionalComponent.test-d.tsx index fdcf346fb70..383debcb7fe 100644 --- a/packages/dts-test/functionalComponent.test-d.tsx +++ b/packages/dts-test/functionalComponent.test-d.tsx @@ -1,11 +1,5 @@ -import { - h, - Text, - FunctionalComponent, - expectError, - expectType, - Component -} from './index' +import { h, Text, FunctionalComponent, Component } from 'vue' +import { expectType } from './utils' // simple function signature const Foo = (props: { foo: number }) => h(Text, null, props.foo) @@ -15,11 +9,11 @@ expectType() expectType() expectType() // @ts-expect-error -expectError() +; // @ts-expect-error -expectError() +; // @ts-expect-error -expectError() +; // Explicit signature with props + emits const Bar: FunctionalComponent< @@ -30,11 +24,11 @@ const Bar: FunctionalComponent< emit('update', 123) // @ts-expect-error - expectError(emit('nope')) + emit('nope') // @ts-expect-error - expectError(emit('update')) + emit('update') // @ts-expect-error - expectError(emit('update', 'nope')) + emit('update', 'nope') } // assigning runtime options @@ -42,22 +36,22 @@ Bar.props = { foo: Number } // @ts-expect-error -expectError((Bar.props = { foo: String })) +Bar.props = { foo: String } Bar.emits = { update: value => value > 1 } // @ts-expect-error -expectError((Bar.emits = { baz: () => void 0 })) +Bar.emits = { baz: () => void 0 } // TSX expectType() // @ts-expect-error -expectError() +; // @ts-expect-error -expectError() +; // @ts-expect-error -expectError() +; const Baz: FunctionalComponent<{}, string[]> = (props, { emit }) => { expectType<{}>(props) diff --git a/packages/dts-test/h.test-d.ts b/packages/dts-test/h.test-d.ts index 6116fff74a9..92246f0f96b 100644 --- a/packages/dts-test/h.test-d.ts +++ b/packages/dts-test/h.test-d.ts @@ -1,5 +1,4 @@ import { - describe, h, defineComponent, ref, @@ -7,29 +6,28 @@ import { Teleport, Suspense, Component, - expectError, - expectAssignable, resolveComponent -} from './index' +} from 'vue' +import { describe, expectAssignable } from './utils' describe('h inference w/ element', () => { // key h('div', { key: 1 }) h('div', { key: 'foo' }) // @ts-expect-error - expectError(h('div', { key: [] })) + h('div', { key: [] }) // @ts-expect-error - expectError(h('div', { key: {} })) + h('div', { key: {} }) // ref h('div', { ref: 'foo' }) h('div', { ref: ref(null) }) h('div', { ref: _el => {} }) // @ts-expect-error - expectError(h('div', { ref: [] })) + h('div', { ref: [] }) // @ts-expect-error - expectError(h('div', { ref: {} })) + h('div', { ref: {} }) // @ts-expect-error - expectError(h('div', { ref: 123 })) + h('div', { ref: 123 }) // slots const slots = { default: () => {} } // RawSlots h('div', {}, slots) @@ -40,20 +38,20 @@ describe('h inference w/ Fragment', () => { h(Fragment, ['hello']) h(Fragment, { key: 123 }, ['hello']) // @ts-expect-error - expectError(h(Fragment, 'foo')) + h(Fragment, 'foo') // @ts-expect-error - expectError(h(Fragment, { key: 123 }, 'bar')) + h(Fragment, { key: 123 }, 'bar') }) describe('h inference w/ Teleport', () => { h(Teleport, { to: '#foo' }, 'hello') h(Teleport, { to: '#foo' }, { default() {} }) // @ts-expect-error - expectError(h(Teleport)) + h(Teleport) // @ts-expect-error - expectError(h(Teleport, {})) + h(Teleport, {}) // @ts-expect-error - expectError(h(Teleport, { to: '#foo' })) + h(Teleport, { to: '#foo' }) }) describe('h inference w/ Suspense', () => { @@ -64,7 +62,7 @@ describe('h inference w/ Suspense', () => { default: () => 'foo' }) // @ts-expect-error - expectError(h(Suspense, { onResolve: 1 })) + h(Suspense, { onResolve: 1 }) }) describe('h inference w/ functional component', () => { @@ -72,11 +70,11 @@ describe('h inference w/ functional component', () => { h(Func, { foo: 'hello' }) h(Func, { foo: 'hello', bar: 123 }) // @ts-expect-error - expectError(h(Func, { foo: 123 })) + h(Func, { foo: 123 }) // @ts-expect-error - expectError(h(Func, {})) + h(Func, {}) // @ts-expect-error - expectError(h(Func, { bar: 123 })) + h(Func, { bar: 123 }) }) describe('h support w/ plain object component', () => { @@ -106,11 +104,11 @@ describe('h inference w/ defineComponent', () => { // should allow extraneous props (attrs fallthrough) h(Foo, { bar: 1, foo: 'ok', class: 'extra' }) // @ts-expect-error should fail on missing required prop - expectError(h(Foo, {})) + h(Foo, {}) // @ts-expect-error - expectError(h(Foo, { foo: 'ok' })) + h(Foo, { foo: 'ok' }) // @ts-expect-error should fail on wrong type - expectError(h(Foo, { bar: 1, foo: 1 })) + h(Foo, { bar: 1, foo: 1 }) }) // describe('h inference w/ defineComponent + optional props', () => { @@ -123,11 +121,11 @@ describe('h inference w/ defineComponent', () => { // // should allow extraneous props (attrs fallthrough) // h(Foo, { bar: 1, foo: 'ok', class: 'extra' }) // // @ts-expect-error should fail on missing required prop -// expectError(h(Foo, {})) +// h(Foo, {}) // // @ts-expect-error -// expectError(h(Foo, { foo: 'ok' })) +// h(Foo, { foo: 'ok' }) // // @ts-expect-error should fail on wrong type -// expectError(h(Foo, { bar: 1, foo: 1 })) +// h(Foo, { bar: 1, foo: 1 }) // }) // describe('h inference w/ defineComponent + direct function', () => { @@ -138,11 +136,11 @@ describe('h inference w/ defineComponent', () => { // // should allow extraneous props (attrs fallthrough) // h(Foo, { bar: 1, foo: 'ok', class: 'extra' }) // // @ts-expect-error should fail on missing required prop -// expectError(h(Foo, {})) +// h(Foo, {}) // // @ts-expect-error -// expectError(h(Foo, { foo: 'ok' })) +// h(Foo, { foo: 'ok' }) // // @ts-expect-error should fail on wrong type -// expectError(h(Foo, { bar: 1, foo: 1 })) +// h(Foo, { bar: 1, foo: 1 }) // }) // #922 and #3218 @@ -223,7 +221,7 @@ describe('Boolean prop implicit false', () => { visible: true }) // @ts-expect-error - expectError(h(RequiredComponent, {})) + h(RequiredComponent, {}) }) // #2357 diff --git a/packages/dts-test/inject.test-d.ts b/packages/dts-test/inject.test-d.ts index 69e06f170af..c34485a61dc 100644 --- a/packages/dts-test/inject.test-d.ts +++ b/packages/dts-test/inject.test-d.ts @@ -1,4 +1,5 @@ -import { provide, inject, InjectionKey, expectType } from './index' +import { provide, inject, InjectionKey } from 'vue' +import { expectType } from './utils' const key: InjectionKey = Symbol() diff --git a/packages/dts-test/package.json b/packages/dts-test/package.json index 72f0e322acf..6894c323925 100644 --- a/packages/dts-test/package.json +++ b/packages/dts-test/package.json @@ -2,9 +2,6 @@ "name": "dts-test", "private": true, "dependencies": { - "vue": "workspace:*", - "@vue/runtime-core": "workspace:*", - "@vue/runtime-dom": "workspace:*", - "@vue/reactivity": "workspace:*" + "vue": "workspace:*" } } diff --git a/packages/dts-test/reactivity.test-d.ts b/packages/dts-test/reactivity.test-d.ts index 337f05e147e..4504f9e352d 100644 --- a/packages/dts-test/reactivity.test-d.ts +++ b/packages/dts-test/reactivity.test-d.ts @@ -1,21 +1,12 @@ -import { - ref, - readonly, - shallowReadonly, - describe, - expectError, - expectType, - Ref, - reactive, - markRaw -} from './index' +import { ref, readonly, shallowReadonly, Ref, reactive, markRaw } from 'vue' +import { describe, expectType } from './utils' describe('should support DeepReadonly', () => { const r = readonly({ obj: { k: 'v' } }) // @ts-expect-error - expectError((r.obj = {})) + r.obj = {} // @ts-expect-error - expectError((r.obj.k = 'x')) + r.obj.k = 'x' }) // #4180 diff --git a/packages/dts-test/reactivityMacros.test-d.ts b/packages/dts-test/reactivityMacros.test-d.ts index 6bc5f17cba8..9f9b5faed7d 100644 --- a/packages/dts-test/reactivityMacros.test-d.ts +++ b/packages/dts-test/reactivityMacros.test-d.ts @@ -1,13 +1,7 @@ -import { - expectType, - ref, - computed, - Ref, - ComputedRef, - WritableComputedRef -} from './index' +import { ref, computed, Ref, ComputedRef, WritableComputedRef } from 'vue' import 'vue/macros-global' import { RefType, RefTypes } from 'vue/macros' +import { expectType } from './utils' // wrapping refs diff --git a/packages/dts-test/ref.test-d.ts b/packages/dts-test/ref.test-d.ts index accaaeee8d7..dbf54de09c8 100644 --- a/packages/dts-test/ref.test-d.ts +++ b/packages/dts-test/ref.test-d.ts @@ -5,15 +5,14 @@ import { isRef, unref, reactive, - expectType, proxyRefs, toRef, toRefs, ToRefs, shallowReactive, - readonly, - describe -} from './index' + readonly +} from 'vue' +import { expectType, describe } from './utils' function plainType(arg: number | Ref) { // ref coercing diff --git a/packages/dts-test/setupHelpers.test-d.ts b/packages/dts-test/setupHelpers.test-d.ts index 4d79fc8f479..8ad085f9bce 100644 --- a/packages/dts-test/setupHelpers.test-d.ts +++ b/packages/dts-test/setupHelpers.test-d.ts @@ -1,13 +1,12 @@ import { - expectType, defineProps, defineEmits, useAttrs, useSlots, withDefaults, - Slots, - describe -} from './index' + Slots +} from 'vue' +import { describe, expectType } from './utils' describe('defineProps w/ type declaration', () => { // type declaration diff --git a/packages/dts-test/tsx.test-d.tsx b/packages/dts-test/tsx.test-d.tsx index ce1aec82043..8dba0a8068f 100644 --- a/packages/dts-test/tsx.test-d.tsx +++ b/packages/dts-test/tsx.test-d.tsx @@ -1,13 +1,6 @@ // TSX w/ defineComponent is tested in defineComponent.test-d.tsx -import { - KeepAlive, - Suspense, - Fragment, - Teleport, - expectError, - expectType, - VNode -} from './index' +import { KeepAlive, Suspense, Fragment, Teleport, VNode } from 'vue' +import { expectType } from './utils' expectType(
) expectType(
) @@ -15,7 +8,7 @@ expectType(
) expectType() // @ts-expect-error style css property validation -expectError(
) +;
// allow array styles and nested array styles expectType(
) @@ -24,7 +17,7 @@ expectType( ) // @ts-expect-error unknown prop -expectError(
) +;
// allow key/ref on arbitrary element expectType(
) @@ -47,15 +40,15 @@ expectType() expectType() // @ts-expect-error -expectError() +; // @ts-expect-error -expectError() +; // KeepAlive expectType() expectType() // @ts-expect-error -expectError() +; // Suspense expectType() @@ -64,4 +57,4 @@ expectType( {}} onFallback={() => {}} onPending={() => {}} /> ) // @ts-expect-error -expectError() +; diff --git a/packages/dts-test/index.d.ts b/packages/dts-test/utils.d.ts similarity index 88% rename from packages/dts-test/index.d.ts rename to packages/dts-test/utils.d.ts index 2945d492de8..012f9772954 100644 --- a/packages/dts-test/index.d.ts +++ b/packages/dts-test/utils.d.ts @@ -1,13 +1,10 @@ // This directory contains a number of d.ts assertions // use \@ts-expect-error where errors are expected. -export * from 'vue' - export function describe(_name: string, _fn: () => void): void export function test(_name: string, _fn: () => any): void export function expectType(value: T): void -export function expectError(value: T): void export function expectAssignable(value: T2): void export type IsUnion = ( diff --git a/packages/dts-test/watch.test-d.ts b/packages/dts-test/watch.test-d.ts index 2c16cabd9a4..9d727999bcc 100644 --- a/packages/dts-test/watch.test-d.ts +++ b/packages/dts-test/watch.test-d.ts @@ -1,4 +1,5 @@ -import { ref, computed, watch, expectType, defineComponent } from './index' +import { ref, computed, watch, defineComponent } from 'vue' +import { expectType } from './utils' const source = ref('foo') const source2 = computed(() => source.value) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f7b074d640d..849abe6e682 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -182,14 +182,8 @@ importers: packages/dts-test: specifiers: - '@vue/reactivity': workspace:* - '@vue/runtime-core': workspace:* - '@vue/runtime-dom': workspace:* vue: workspace:* dependencies: - '@vue/reactivity': link:../reactivity - '@vue/runtime-core': link:../runtime-core - '@vue/runtime-dom': link:../runtime-dom vue: link:../vue packages/reactivity: From 2774ba5f0fac3dc339c956ca7b11d2c8da054884 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Feb 2023 21:49:18 +0800 Subject: [PATCH 022/999] chore: use workspace vue dep for sfc-playground --- packages/sfc-playground/package.json | 2 +- pnpm-lock.yaml | 2 +- scripts/release.js | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/sfc-playground/package.json b/packages/sfc-playground/package.json index 7c65efdf685..3966382b8b9 100644 --- a/packages/sfc-playground/package.json +++ b/packages/sfc-playground/package.json @@ -12,7 +12,7 @@ "vite": "^4.0.0" }, "dependencies": { - "vue": "3.2.47", + "vue": "workspace:*", "@vue/repl": "^1.3.0", "file-saver": "^2.0.5", "jszip": "^3.6.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 849abe6e682..4d7820f2df4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -252,7 +252,7 @@ importers: file-saver: ^2.0.5 jszip: ^3.6.0 vite: ^4.0.0 - vue: 3.2.47 + vue: workspace:* dependencies: '@vue/repl': 1.3.2_vue@packages+vue file-saver: 2.0.5 diff --git a/scripts/release.js b/scripts/release.js index defad5f34bd..0db3628cd12 100644 --- a/scripts/release.js +++ b/scripts/release.js @@ -200,6 +200,9 @@ function updateDeps(pkg, depType, version) { const deps = pkg[depType] if (!deps) return Object.keys(deps).forEach(dep => { + if (deps[dep] === 'workspace:*') { + return + } if ( dep === 'vue' || (dep.startsWith('@vue') && packages.includes(dep.replace(/^@vue\//, ''))) From dbe7109c8f6417770129dc92313f05feac0c0edb Mon Sep 17 00:00:00 2001 From: Evan You Date: Sat, 4 Feb 2023 11:59:42 +0800 Subject: [PATCH 023/999] build: improve dts rollup output --- package.json | 1 + pnpm-lock.yaml | 2 + rollup.dts.config.js | 125 +++++++++++++++++++++++++++++++++++++++++- scripts/const-enum.js | 12 ++-- 4 files changed, 132 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index f4d80ab4e64..af043f73b5c 100644 --- a/package.json +++ b/package.json @@ -77,6 +77,7 @@ "esbuild": "^0.17.4", "eslint": "^8.33.0", "eslint-plugin-jest": "^27.2.1", + "estree-walker": "^2.0.2", "execa": "^4.0.2", "jsdom": "^21.1.0", "lint-staged": "^10.2.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d7820f2df4..f5c2bf38de4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,7 @@ importers: esbuild: ^0.17.4 eslint: ^8.33.0 eslint-plugin-jest: ^27.2.1 + estree-walker: ^2.0.2 execa: ^4.0.2 jsdom: ^21.1.0 lint-staged: ^10.2.10 @@ -75,6 +76,7 @@ importers: esbuild: 0.17.5 eslint: 8.33.0 eslint-plugin-jest: 27.2.1_4vsywjlpuriuw3tl5oq6zy5a64 + estree-walker: 2.0.2 execa: 4.1.0 jsdom: 21.1.0 lint-staged: 10.5.4 diff --git a/rollup.dts.config.js b/rollup.dts.config.js index b245ed210d6..63906c10d17 100644 --- a/rollup.dts.config.js +++ b/rollup.dts.config.js @@ -1,6 +1,9 @@ // @ts-check +import { parse } from '@babel/parser' import { existsSync, readdirSync, readFileSync } from 'fs' +import MagicString from 'magic-string' import dts from 'rollup-plugin-dts' +import { walk } from 'estree-walker' if (!existsSync('temp/packages')) { console.warn( @@ -31,14 +34,132 @@ export default readdirSync('temp/packages').map(pkg => { }) /** + * Patch the dts generated by rollup-plugin-dts + * 1. remove exports marked as @internal + * 2. Convert all types to inline exports + * and remove them from the big export {} declaration + * otherwise it gets weird in vitepress `defineComponent` call with + * "the inferred type cannot be named without a reference" + * 3. Append custom agumentations (jsx, macros) * @returns {import('rollup').Plugin} */ function patchTypes(pkg) { return { name: 'patch-types', renderChunk(code) { - // 1. TODO remove entries marked with @private - // 2. append pkg specific types + const s = new MagicString(code) + const ast = parse(code, { + plugins: ['typescript'], + sourceType: 'module' + }) + + /** + * @param {import('@babel/types').Node} node + * @returns {boolean} + */ + function removeInternal(node) { + if ( + node.leadingComments && + node.leadingComments.some(c => { + return c.type === 'CommentBlock' && /@internal\b/.test(c.value) + }) + ) { + /** @type {any} */ + const n = node + let id + if (n.id && n.id.type === 'Identifier') { + id = n.id.name + } else if (n.key && n.key.type === 'Identifier') { + id = n.key.name + } + if (id) { + s.overwrite( + // @ts-ignore + node.leadingComments[0].start, + node.end, + `/* removed internal: ${id} */` + ) + } else { + // @ts-ignore + s.remove(node.leadingComments[0].start, node.end) + } + return true + } + return false + } + + const shouldRemoveExport = new Set() + // pass 1: remove internals + add exports + for (const node of ast.program.body) { + if ( + (node.type === 'TSTypeAliasDeclaration' || + node.type === 'TSInterfaceDeclaration') && + !node.id.name.startsWith(`_`) + ) { + shouldRemoveExport.add(node.id.name) + if (!removeInternal(node)) { + // @ts-ignore + s.prependLeft(node.start, `export `) + // traverse further for internal properties + if (node.type === 'TSInterfaceDeclaration') { + node.body.body.forEach(removeInternal) + } else if (node.type === 'TSTypeAliasDeclaration') { + // @ts-ignore + walk(node.typeAnnotation, { + enter(node) { + // @ts-ignore + if (removeInternal(node)) this.skip() + } + }) + } + } + } else if (removeInternal(node)) { + if (node.type === 'VariableDeclaration') { + // declare const x + for (const decl of node.declarations) { + // @ts-ignore + shouldRemoveExport.add(decl.id.name) + } + } else if ( + node.type === 'TSDeclareFunction' || + node.type === 'TSEnumDeclaration' + ) { + // declare function + // @ts-ignore + shouldRemoveExport.add(node.id.name) + } else { + throw new Error( + `unhandled export type marked as @internal: ${node.type}` + ) + } + } + } + // pass 2: remove exports + for (const node of ast.program.body) { + if (node.type === 'ExportNamedDeclaration' && !node.source) { + for (let i = 0; i < node.specifiers.length; i++) { + const spec = node.specifiers[i] + if ( + spec.type === 'ExportSpecifier' && + shouldRemoveExport.has(spec.local.name) + ) { + const next = node.specifiers[i + 1] + if (next) { + // @ts-ignore + s.remove(spec.start, next.start) + } else { + // last one + const prev = node.specifiers[i - 1] + // @ts-ignore + s.remove(prev ? prev.end : spec.start, spec.end) + } + } + } + } + } + code = s.toString() + + // append pkg specific types const additionalTypeDir = `packages/${pkg}/types` if (existsSync(additionalTypeDir)) { code += diff --git a/scripts/const-enum.js b/scripts/const-enum.js index b4dbc1770b9..37924cc64b3 100644 --- a/scripts/const-enum.js +++ b/scripts/const-enum.js @@ -192,15 +192,15 @@ export async function constEnum() { spec.exportKind !== 'type' && knowEnums.has(spec.local.name) ) { - if (i === 0) { - // first - const next = node.specifiers[i + 1] + const next = node.specifiers[i + 1] + if (next) { // @ts-ignore - s.remove(spec.start, next ? next.start : spec.end) + s.remove(spec.start, next.start) } else { - // locate the end of prev + // last one + const prev = node.specifiers[i - 1] // @ts-ignore - s.remove(node.specifiers[i - 1].end, spec.end) + s.remove(prev ? prev.end : spec.start, spec.end) } } } From 85f4d8ccb95f100ca9926a156656b23f5358e625 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 5 Feb 2023 11:20:39 +0800 Subject: [PATCH 024/999] release: v3.3.0-alpha.1 --- CHANGELOG.md | 9 ++++ package.json | 2 +- packages/compiler-core/package.json | 4 +- packages/compiler-dom/package.json | 6 +-- packages/compiler-sfc/package.json | 12 ++--- packages/compiler-ssr/package.json | 6 +-- packages/dts-test/package.json | 3 +- packages/reactivity-transform/package.json | 6 +-- packages/reactivity/package.json | 4 +- packages/runtime-core/package.json | 6 +-- packages/runtime-dom/package.json | 6 +-- packages/runtime-test/package.json | 6 +-- packages/server-renderer/package.json | 8 ++-- packages/sfc-playground/package.json | 2 +- packages/shared/package.json | 2 +- packages/size-check/package.json | 2 +- packages/template-explorer/package.json | 2 +- packages/vue-compat/package.json | 4 +- packages/vue/package.json | 12 ++--- pnpm-lock.yaml | 52 +++++++++++----------- 20 files changed, 82 insertions(+), 72 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9171ded9e1..2e4df169366 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# [3.3.0-alpha.1](https://github.com/vuejs/core/compare/v3.2.47...v3.3.0-alpha.1) (2023-02-05) + + +### Bug Fixes + +* **build:** ensure BaseTransition functions can be tree-shaken ([3a6f5eb](https://github.com/vuejs/core/commit/3a6f5eb0f7d60dc87d17a69c66e88ae5688b11a5)) + + + ## [3.2.47](https://github.com/vuejs/core/compare/v3.2.46...v3.2.47) (2023-02-02) diff --git a/package.json b/package.json index af043f73b5c..ce81c1723d9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "3.2.47", + "version": "3.3.0-alpha.1", "packageManager": "pnpm@7.26.0", "type": "module", "scripts": { diff --git a/packages/compiler-core/package.json b/packages/compiler-core/package.json index a38e2679cab..9b57967e7c2 100644 --- a/packages/compiler-core/package.json +++ b/packages/compiler-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-core", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "@vue/compiler-core", "main": "index.js", "module": "dist/compiler-core.esm-bundler.js", @@ -32,7 +32,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-core#readme", "dependencies": { - "@vue/shared": "3.2.47", + "@vue/shared": "3.3.0-alpha.1", "@babel/parser": "^7.20.15", "estree-walker": "^2.0.2", "source-map": "^0.6.1" diff --git a/packages/compiler-dom/package.json b/packages/compiler-dom/package.json index c70364c8501..b60b2ea74a9 100644 --- a/packages/compiler-dom/package.json +++ b/packages/compiler-dom/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-dom", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "@vue/compiler-dom", "main": "index.js", "module": "dist/compiler-dom.esm-bundler.js", @@ -37,7 +37,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme", "dependencies": { - "@vue/shared": "3.2.47", - "@vue/compiler-core": "3.2.47" + "@vue/shared": "3.3.0-alpha.1", + "@vue/compiler-core": "3.3.0-alpha.1" } } diff --git a/packages/compiler-sfc/package.json b/packages/compiler-sfc/package.json index 28b6b89f1ac..699a1ab2140 100644 --- a/packages/compiler-sfc/package.json +++ b/packages/compiler-sfc/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-sfc", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "@vue/compiler-sfc", "main": "dist/compiler-sfc.cjs.js", "module": "dist/compiler-sfc.esm-browser.js", @@ -33,11 +33,11 @@ "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.2.47", - "@vue/compiler-dom": "3.2.47", - "@vue/compiler-ssr": "3.2.47", - "@vue/reactivity-transform": "3.2.47", - "@vue/shared": "3.2.47", + "@vue/compiler-core": "3.3.0-alpha.1", + "@vue/compiler-dom": "3.3.0-alpha.1", + "@vue/compiler-ssr": "3.3.0-alpha.1", + "@vue/reactivity-transform": "3.3.0-alpha.1", + "@vue/shared": "3.3.0-alpha.1", "estree-walker": "^2.0.2", "magic-string": "^0.27.0", "source-map": "^0.6.1", diff --git a/packages/compiler-ssr/package.json b/packages/compiler-ssr/package.json index 5707ff5c0bd..06618e26680 100644 --- a/packages/compiler-ssr/package.json +++ b/packages/compiler-ssr/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-ssr", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "@vue/compiler-ssr", "main": "dist/compiler-ssr.cjs.js", "types": "dist/compiler-ssr.d.ts", @@ -28,7 +28,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme", "dependencies": { - "@vue/shared": "3.2.47", - "@vue/compiler-dom": "3.2.47" + "@vue/shared": "3.3.0-alpha.1", + "@vue/compiler-dom": "3.3.0-alpha.1" } } diff --git a/packages/dts-test/package.json b/packages/dts-test/package.json index 6894c323925..d601cc87575 100644 --- a/packages/dts-test/package.json +++ b/packages/dts-test/package.json @@ -3,5 +3,6 @@ "private": true, "dependencies": { "vue": "workspace:*" - } + }, + "version": "3.3.0-alpha.1" } diff --git a/packages/reactivity-transform/package.json b/packages/reactivity-transform/package.json index 5c3e7694422..e90dfda71e7 100644 --- a/packages/reactivity-transform/package.json +++ b/packages/reactivity-transform/package.json @@ -1,6 +1,6 @@ { "name": "@vue/reactivity-transform", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "@vue/reactivity-transform", "main": "dist/reactivity-transform.cjs.js", "files": [ @@ -29,8 +29,8 @@ "homepage": "https://github.com/vuejs/core/tree/dev/packages/reactivity-transform#readme", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47", + "@vue/compiler-core": "3.3.0-alpha.1", + "@vue/shared": "3.3.0-alpha.1", "estree-walker": "^2.0.2", "magic-string": "^0.27.0" }, diff --git a/packages/reactivity/package.json b/packages/reactivity/package.json index c28b8395b93..4f66d6127e9 100644 --- a/packages/reactivity/package.json +++ b/packages/reactivity/package.json @@ -1,6 +1,6 @@ { "name": "@vue/reactivity", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "@vue/reactivity", "main": "index.js", "module": "dist/reactivity.esm-bundler.js", @@ -36,6 +36,6 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/reactivity#readme", "dependencies": { - "@vue/shared": "3.2.47" + "@vue/shared": "3.3.0-alpha.1" } } diff --git a/packages/runtime-core/package.json b/packages/runtime-core/package.json index f26c1230dd2..68be902297d 100644 --- a/packages/runtime-core/package.json +++ b/packages/runtime-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-core", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "@vue/runtime-core", "main": "index.js", "module": "dist/runtime-core.esm-bundler.js", @@ -32,7 +32,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme", "dependencies": { - "@vue/shared": "3.2.47", - "@vue/reactivity": "3.2.47" + "@vue/shared": "3.3.0-alpha.1", + "@vue/reactivity": "3.3.0-alpha.1" } } diff --git a/packages/runtime-dom/package.json b/packages/runtime-dom/package.json index 20b0fce7d94..633b135024d 100644 --- a/packages/runtime-dom/package.json +++ b/packages/runtime-dom/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-dom", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "@vue/runtime-dom", "main": "index.js", "module": "dist/runtime-dom.esm-bundler.js", @@ -35,8 +35,8 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme", "dependencies": { - "@vue/shared": "3.2.47", - "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.3.0-alpha.1", + "@vue/runtime-core": "3.3.0-alpha.1", "csstype": "^2.6.8" } } diff --git a/packages/runtime-test/package.json b/packages/runtime-test/package.json index ee11aa7c9d6..60704e093b8 100644 --- a/packages/runtime-test/package.json +++ b/packages/runtime-test/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-test", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "@vue/runtime-test", "private": true, "main": "index.js", @@ -25,7 +25,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-test#readme", "dependencies": { - "@vue/shared": "3.2.47", - "@vue/runtime-core": "3.2.47" + "@vue/shared": "3.3.0-alpha.1", + "@vue/runtime-core": "3.3.0-alpha.1" } } diff --git a/packages/server-renderer/package.json b/packages/server-renderer/package.json index 7cb862a2533..d2c70cbd5d5 100644 --- a/packages/server-renderer/package.json +++ b/packages/server-renderer/package.json @@ -1,6 +1,6 @@ { "name": "@vue/server-renderer", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "@vue/server-renderer", "main": "index.js", "module": "dist/server-renderer.esm-bundler.js", @@ -32,10 +32,10 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/server-renderer#readme", "peerDependencies": { - "vue": "3.2.47" + "vue": "3.3.0-alpha.1" }, "dependencies": { - "@vue/shared": "3.2.47", - "@vue/compiler-ssr": "3.2.47" + "@vue/shared": "3.3.0-alpha.1", + "@vue/compiler-ssr": "3.3.0-alpha.1" } } diff --git a/packages/sfc-playground/package.json b/packages/sfc-playground/package.json index 3966382b8b9..98e6a832a42 100644 --- a/packages/sfc-playground/package.json +++ b/packages/sfc-playground/package.json @@ -1,6 +1,6 @@ { "name": "@vue/sfc-playground", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "private": true, "scripts": { "dev": "vite", diff --git a/packages/shared/package.json b/packages/shared/package.json index 41e8a0487c6..cf582773dc8 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@vue/shared", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "internal utils shared across @vue packages", "main": "index.js", "module": "dist/shared.esm-bundler.js", diff --git a/packages/size-check/package.json b/packages/size-check/package.json index 0973ec74be2..825c37d6e3c 100644 --- a/packages/size-check/package.json +++ b/packages/size-check/package.json @@ -1,6 +1,6 @@ { "name": "@vue/size-check", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "private": true, "scripts": { "build": "vite build" diff --git a/packages/template-explorer/package.json b/packages/template-explorer/package.json index e0187425eb5..ea76f6e36a6 100644 --- a/packages/template-explorer/package.json +++ b/packages/template-explorer/package.json @@ -1,6 +1,6 @@ { "name": "@vue/template-explorer", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "private": true, "buildOptions": { "formats": [ diff --git a/packages/vue-compat/package.json b/packages/vue-compat/package.json index 5d45d07e01b..25f44ba4dfe 100644 --- a/packages/vue-compat/package.json +++ b/packages/vue-compat/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compat", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "Vue 3 compatibility build for Vue 2", "main": "index.js", "module": "dist/vue.runtime.esm-bundler.js", @@ -43,6 +43,6 @@ "source-map": "^0.6.1" }, "peerDependencies": { - "vue": "3.2.47" + "vue": "3.3.0-alpha.1" } } diff --git a/packages/vue/package.json b/packages/vue/package.json index 7b34a75405f..a6b79341ab9 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "vue", - "version": "3.2.47", + "version": "3.3.0-alpha.1", "description": "The progressive JavaScript framework for building modern web UI.", "main": "index.js", "module": "dist/vue.runtime.esm-bundler.js", @@ -68,10 +68,10 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/vue#readme", "dependencies": { - "@vue/shared": "3.2.47", - "@vue/compiler-dom": "3.2.47", - "@vue/runtime-dom": "3.2.47", - "@vue/compiler-sfc": "3.2.47", - "@vue/server-renderer": "3.2.47" + "@vue/shared": "3.3.0-alpha.1", + "@vue/compiler-dom": "3.3.0-alpha.1", + "@vue/runtime-dom": "3.3.0-alpha.1", + "@vue/compiler-sfc": "3.3.0-alpha.1", + "@vue/server-renderer": "3.3.0-alpha.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f5c2bf38de4..daae83e94a5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -108,7 +108,7 @@ importers: specifiers: '@babel/parser': ^7.20.15 '@babel/types': ^7.16.0 - '@vue/shared': 3.2.47 + '@vue/shared': 3.3.0-alpha.1 estree-walker: ^2.0.2 source-map: ^0.6.1 dependencies: @@ -121,8 +121,8 @@ importers: packages/compiler-dom: specifiers: - '@vue/compiler-core': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/compiler-core': 3.3.0-alpha.1 + '@vue/shared': 3.3.0-alpha.1 dependencies: '@vue/compiler-core': link:../compiler-core '@vue/shared': link:../shared @@ -133,12 +133,12 @@ importers: '@babel/types': ^7.16.0 '@types/estree': ^0.0.48 '@types/lru-cache': ^5.1.0 - '@vue/compiler-core': 3.2.47 - '@vue/compiler-dom': 3.2.47 - '@vue/compiler-ssr': 3.2.47 + '@vue/compiler-core': 3.3.0-alpha.1 + '@vue/compiler-dom': 3.3.0-alpha.1 + '@vue/compiler-ssr': 3.3.0-alpha.1 '@vue/consolidate': ^0.17.3 - '@vue/reactivity-transform': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/reactivity-transform': 3.3.0-alpha.1 + '@vue/shared': 3.3.0-alpha.1 estree-walker: ^2.0.2 hash-sum: ^2.0.0 lru-cache: ^5.1.1 @@ -176,8 +176,8 @@ importers: packages/compiler-ssr: specifiers: - '@vue/compiler-dom': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/compiler-dom': 3.3.0-alpha.1 + '@vue/shared': 3.3.0-alpha.1 dependencies: '@vue/compiler-dom': link:../compiler-dom '@vue/shared': link:../shared @@ -190,7 +190,7 @@ importers: packages/reactivity: specifiers: - '@vue/shared': 3.2.47 + '@vue/shared': 3.3.0-alpha.1 dependencies: '@vue/shared': link:../shared @@ -199,8 +199,8 @@ importers: '@babel/core': ^7.20.12 '@babel/parser': ^7.20.15 '@babel/types': ^7.20.7 - '@vue/compiler-core': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/compiler-core': 3.3.0-alpha.1 + '@vue/shared': 3.3.0-alpha.1 estree-walker: ^2.0.2 magic-string: ^0.27.0 dependencies: @@ -215,16 +215,16 @@ importers: packages/runtime-core: specifiers: - '@vue/reactivity': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/reactivity': 3.3.0-alpha.1 + '@vue/shared': 3.3.0-alpha.1 dependencies: '@vue/reactivity': link:../reactivity '@vue/shared': link:../shared packages/runtime-dom: specifiers: - '@vue/runtime-core': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/runtime-core': 3.3.0-alpha.1 + '@vue/shared': 3.3.0-alpha.1 csstype: ^2.6.8 dependencies: '@vue/runtime-core': link:../runtime-core @@ -233,16 +233,16 @@ importers: packages/runtime-test: specifiers: - '@vue/runtime-core': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/runtime-core': 3.3.0-alpha.1 + '@vue/shared': 3.3.0-alpha.1 dependencies: '@vue/runtime-core': link:../runtime-core '@vue/shared': link:../shared packages/server-renderer: specifiers: - '@vue/compiler-ssr': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/compiler-ssr': 3.3.0-alpha.1 + '@vue/shared': 3.3.0-alpha.1 dependencies: '@vue/compiler-ssr': link:../compiler-ssr '@vue/shared': link:../shared @@ -283,11 +283,11 @@ importers: packages/vue: specifiers: - '@vue/compiler-dom': 3.2.47 - '@vue/compiler-sfc': 3.2.47 - '@vue/runtime-dom': 3.2.47 - '@vue/server-renderer': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/compiler-dom': 3.3.0-alpha.1 + '@vue/compiler-sfc': 3.3.0-alpha.1 + '@vue/runtime-dom': 3.3.0-alpha.1 + '@vue/server-renderer': 3.3.0-alpha.1 + '@vue/shared': 3.3.0-alpha.1 dependencies: '@vue/compiler-dom': link:../compiler-dom '@vue/compiler-sfc': link:../compiler-sfc From 5851eaa9339364d41860a277a99f2352de2a3834 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 5 Feb 2023 13:26:01 +0800 Subject: [PATCH 025/999] fix(build): fix dev flag replacement in esm-bundler builds --- rollup.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rollup.config.js b/rollup.config.js index e674459c22f..f6ca48dd266 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -192,7 +192,7 @@ function createConfig(format, output, plugins = []) { if (isBundlerESMBuild) { Object.assign(replacements, { // preserve to be handled by bundlers - __DEV__: `(process.env.NODE_ENV !== 'production')` + __DEV__: `process.env.NODE_ENV !== 'production'` }) } From 2df8049aa42e2f9e84729565d6bdb17f6825ac16 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 5 Feb 2023 16:05:33 +0800 Subject: [PATCH 026/999] chore: avoid double-building types on release --- scripts/release.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/scripts/release.js b/scripts/release.js index 0db3628cd12..d0ad2432cbd 100644 --- a/scripts/release.js +++ b/scripts/release.js @@ -110,8 +110,7 @@ async function main() { if (!skipTests) { step('\nRunning tests...') if (!isDryRun) { - await run('pnpm', ['test']) - await run('pnpm', ['test-dts']) + await run('pnpm', ['test', 'run']) } else { console.log(`Skipped (dry run)`) } @@ -126,11 +125,9 @@ async function main() { // build all packages with types step('\nBuilding all packages...') if (!skipBuild && !isDryRun) { - await run('pnpm', ['run', 'build', '--release']) - await run('pnpm', ['run', 'build-dts']) - // test generated dts files - step('\nVerifying type declarations...') - await run('pnpm', ['run', 'test-dts-only']) + await run('pnpm', ['run', 'build']) + step('\nBuilding and testing types...') + await run('pnpm', ['test-dts']) } else { console.log(`(skipped)`) } From 37ec04b98429b8385046891ce157e4dd29c64f23 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 5 Feb 2023 16:23:54 +0800 Subject: [PATCH 027/999] release: v3.3.0-alpha.2 --- CHANGELOG.md | 9 ++++ package.json | 2 +- packages/compiler-core/package.json | 4 +- packages/compiler-dom/package.json | 6 +-- packages/compiler-sfc/package.json | 12 ++--- packages/compiler-ssr/package.json | 6 +-- packages/dts-test/package.json | 2 +- packages/reactivity-transform/package.json | 6 +-- packages/reactivity/package.json | 4 +- packages/runtime-core/package.json | 6 +-- packages/runtime-dom/package.json | 6 +-- packages/runtime-test/package.json | 6 +-- packages/server-renderer/package.json | 8 ++-- packages/sfc-playground/package.json | 2 +- packages/shared/package.json | 2 +- packages/size-check/package.json | 2 +- packages/template-explorer/package.json | 2 +- packages/vue-compat/package.json | 4 +- packages/vue/package.json | 12 ++--- pnpm-lock.yaml | 52 +++++++++++----------- 20 files changed, 81 insertions(+), 72 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e4df169366..a9b29d4f6e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# [3.3.0-alpha.2](https://github.com/vuejs/core/compare/v3.3.0-alpha.1...v3.3.0-alpha.2) (2023-02-05) + + +### Bug Fixes + +* **build:** fix dev flag replacement in esm-bundler builds ([5851eaa](https://github.com/vuejs/core/commit/5851eaa9339364d41860a277a99f2352de2a3834)) + + + # [3.3.0-alpha.1](https://github.com/vuejs/core/compare/v3.2.47...v3.3.0-alpha.1) (2023-02-05) diff --git a/package.json b/package.json index ce81c1723d9..e50c98c7ece 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "packageManager": "pnpm@7.26.0", "type": "module", "scripts": { diff --git a/packages/compiler-core/package.json b/packages/compiler-core/package.json index 9b57967e7c2..d4a8925dd92 100644 --- a/packages/compiler-core/package.json +++ b/packages/compiler-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-core", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "@vue/compiler-core", "main": "index.js", "module": "dist/compiler-core.esm-bundler.js", @@ -32,7 +32,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-core#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.1", + "@vue/shared": "3.3.0-alpha.2", "@babel/parser": "^7.20.15", "estree-walker": "^2.0.2", "source-map": "^0.6.1" diff --git a/packages/compiler-dom/package.json b/packages/compiler-dom/package.json index b60b2ea74a9..077d8e4de53 100644 --- a/packages/compiler-dom/package.json +++ b/packages/compiler-dom/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-dom", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "@vue/compiler-dom", "main": "index.js", "module": "dist/compiler-dom.esm-bundler.js", @@ -37,7 +37,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.1", - "@vue/compiler-core": "3.3.0-alpha.1" + "@vue/shared": "3.3.0-alpha.2", + "@vue/compiler-core": "3.3.0-alpha.2" } } diff --git a/packages/compiler-sfc/package.json b/packages/compiler-sfc/package.json index 699a1ab2140..982b14f5a01 100644 --- a/packages/compiler-sfc/package.json +++ b/packages/compiler-sfc/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-sfc", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "@vue/compiler-sfc", "main": "dist/compiler-sfc.cjs.js", "module": "dist/compiler-sfc.esm-browser.js", @@ -33,11 +33,11 @@ "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.0-alpha.1", - "@vue/compiler-dom": "3.3.0-alpha.1", - "@vue/compiler-ssr": "3.3.0-alpha.1", - "@vue/reactivity-transform": "3.3.0-alpha.1", - "@vue/shared": "3.3.0-alpha.1", + "@vue/compiler-core": "3.3.0-alpha.2", + "@vue/compiler-dom": "3.3.0-alpha.2", + "@vue/compiler-ssr": "3.3.0-alpha.2", + "@vue/reactivity-transform": "3.3.0-alpha.2", + "@vue/shared": "3.3.0-alpha.2", "estree-walker": "^2.0.2", "magic-string": "^0.27.0", "source-map": "^0.6.1", diff --git a/packages/compiler-ssr/package.json b/packages/compiler-ssr/package.json index 06618e26680..3b0cfe15169 100644 --- a/packages/compiler-ssr/package.json +++ b/packages/compiler-ssr/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-ssr", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "@vue/compiler-ssr", "main": "dist/compiler-ssr.cjs.js", "types": "dist/compiler-ssr.d.ts", @@ -28,7 +28,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.1", - "@vue/compiler-dom": "3.3.0-alpha.1" + "@vue/shared": "3.3.0-alpha.2", + "@vue/compiler-dom": "3.3.0-alpha.2" } } diff --git a/packages/dts-test/package.json b/packages/dts-test/package.json index d601cc87575..cdd577e2947 100644 --- a/packages/dts-test/package.json +++ b/packages/dts-test/package.json @@ -4,5 +4,5 @@ "dependencies": { "vue": "workspace:*" }, - "version": "3.3.0-alpha.1" + "version": "3.3.0-alpha.2" } diff --git a/packages/reactivity-transform/package.json b/packages/reactivity-transform/package.json index e90dfda71e7..7769689e71c 100644 --- a/packages/reactivity-transform/package.json +++ b/packages/reactivity-transform/package.json @@ -1,6 +1,6 @@ { "name": "@vue/reactivity-transform", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "@vue/reactivity-transform", "main": "dist/reactivity-transform.cjs.js", "files": [ @@ -29,8 +29,8 @@ "homepage": "https://github.com/vuejs/core/tree/dev/packages/reactivity-transform#readme", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.0-alpha.1", - "@vue/shared": "3.3.0-alpha.1", + "@vue/compiler-core": "3.3.0-alpha.2", + "@vue/shared": "3.3.0-alpha.2", "estree-walker": "^2.0.2", "magic-string": "^0.27.0" }, diff --git a/packages/reactivity/package.json b/packages/reactivity/package.json index 4f66d6127e9..e31a7ad0b90 100644 --- a/packages/reactivity/package.json +++ b/packages/reactivity/package.json @@ -1,6 +1,6 @@ { "name": "@vue/reactivity", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "@vue/reactivity", "main": "index.js", "module": "dist/reactivity.esm-bundler.js", @@ -36,6 +36,6 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/reactivity#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.1" + "@vue/shared": "3.3.0-alpha.2" } } diff --git a/packages/runtime-core/package.json b/packages/runtime-core/package.json index 68be902297d..76a14af34a2 100644 --- a/packages/runtime-core/package.json +++ b/packages/runtime-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-core", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "@vue/runtime-core", "main": "index.js", "module": "dist/runtime-core.esm-bundler.js", @@ -32,7 +32,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.1", - "@vue/reactivity": "3.3.0-alpha.1" + "@vue/shared": "3.3.0-alpha.2", + "@vue/reactivity": "3.3.0-alpha.2" } } diff --git a/packages/runtime-dom/package.json b/packages/runtime-dom/package.json index 633b135024d..5544343083e 100644 --- a/packages/runtime-dom/package.json +++ b/packages/runtime-dom/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-dom", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "@vue/runtime-dom", "main": "index.js", "module": "dist/runtime-dom.esm-bundler.js", @@ -35,8 +35,8 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.1", - "@vue/runtime-core": "3.3.0-alpha.1", + "@vue/shared": "3.3.0-alpha.2", + "@vue/runtime-core": "3.3.0-alpha.2", "csstype": "^2.6.8" } } diff --git a/packages/runtime-test/package.json b/packages/runtime-test/package.json index 60704e093b8..67048ce3ea3 100644 --- a/packages/runtime-test/package.json +++ b/packages/runtime-test/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-test", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "@vue/runtime-test", "private": true, "main": "index.js", @@ -25,7 +25,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-test#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.1", - "@vue/runtime-core": "3.3.0-alpha.1" + "@vue/shared": "3.3.0-alpha.2", + "@vue/runtime-core": "3.3.0-alpha.2" } } diff --git a/packages/server-renderer/package.json b/packages/server-renderer/package.json index d2c70cbd5d5..f5fff410efb 100644 --- a/packages/server-renderer/package.json +++ b/packages/server-renderer/package.json @@ -1,6 +1,6 @@ { "name": "@vue/server-renderer", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "@vue/server-renderer", "main": "index.js", "module": "dist/server-renderer.esm-bundler.js", @@ -32,10 +32,10 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/server-renderer#readme", "peerDependencies": { - "vue": "3.3.0-alpha.1" + "vue": "3.3.0-alpha.2" }, "dependencies": { - "@vue/shared": "3.3.0-alpha.1", - "@vue/compiler-ssr": "3.3.0-alpha.1" + "@vue/shared": "3.3.0-alpha.2", + "@vue/compiler-ssr": "3.3.0-alpha.2" } } diff --git a/packages/sfc-playground/package.json b/packages/sfc-playground/package.json index 98e6a832a42..8048601b7a4 100644 --- a/packages/sfc-playground/package.json +++ b/packages/sfc-playground/package.json @@ -1,6 +1,6 @@ { "name": "@vue/sfc-playground", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "private": true, "scripts": { "dev": "vite", diff --git a/packages/shared/package.json b/packages/shared/package.json index cf582773dc8..30882217ebf 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@vue/shared", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "internal utils shared across @vue packages", "main": "index.js", "module": "dist/shared.esm-bundler.js", diff --git a/packages/size-check/package.json b/packages/size-check/package.json index 825c37d6e3c..4e4bca5949d 100644 --- a/packages/size-check/package.json +++ b/packages/size-check/package.json @@ -1,6 +1,6 @@ { "name": "@vue/size-check", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "private": true, "scripts": { "build": "vite build" diff --git a/packages/template-explorer/package.json b/packages/template-explorer/package.json index ea76f6e36a6..d3331158648 100644 --- a/packages/template-explorer/package.json +++ b/packages/template-explorer/package.json @@ -1,6 +1,6 @@ { "name": "@vue/template-explorer", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "private": true, "buildOptions": { "formats": [ diff --git a/packages/vue-compat/package.json b/packages/vue-compat/package.json index 25f44ba4dfe..1d2518c86a3 100644 --- a/packages/vue-compat/package.json +++ b/packages/vue-compat/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compat", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "Vue 3 compatibility build for Vue 2", "main": "index.js", "module": "dist/vue.runtime.esm-bundler.js", @@ -43,6 +43,6 @@ "source-map": "^0.6.1" }, "peerDependencies": { - "vue": "3.3.0-alpha.1" + "vue": "3.3.0-alpha.2" } } diff --git a/packages/vue/package.json b/packages/vue/package.json index a6b79341ab9..3c6b0e3ff86 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "vue", - "version": "3.3.0-alpha.1", + "version": "3.3.0-alpha.2", "description": "The progressive JavaScript framework for building modern web UI.", "main": "index.js", "module": "dist/vue.runtime.esm-bundler.js", @@ -68,10 +68,10 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/vue#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.1", - "@vue/compiler-dom": "3.3.0-alpha.1", - "@vue/runtime-dom": "3.3.0-alpha.1", - "@vue/compiler-sfc": "3.3.0-alpha.1", - "@vue/server-renderer": "3.3.0-alpha.1" + "@vue/shared": "3.3.0-alpha.2", + "@vue/compiler-dom": "3.3.0-alpha.2", + "@vue/runtime-dom": "3.3.0-alpha.2", + "@vue/compiler-sfc": "3.3.0-alpha.2", + "@vue/server-renderer": "3.3.0-alpha.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index daae83e94a5..03a0e2d0c01 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -108,7 +108,7 @@ importers: specifiers: '@babel/parser': ^7.20.15 '@babel/types': ^7.16.0 - '@vue/shared': 3.3.0-alpha.1 + '@vue/shared': 3.3.0-alpha.2 estree-walker: ^2.0.2 source-map: ^0.6.1 dependencies: @@ -121,8 +121,8 @@ importers: packages/compiler-dom: specifiers: - '@vue/compiler-core': 3.3.0-alpha.1 - '@vue/shared': 3.3.0-alpha.1 + '@vue/compiler-core': 3.3.0-alpha.2 + '@vue/shared': 3.3.0-alpha.2 dependencies: '@vue/compiler-core': link:../compiler-core '@vue/shared': link:../shared @@ -133,12 +133,12 @@ importers: '@babel/types': ^7.16.0 '@types/estree': ^0.0.48 '@types/lru-cache': ^5.1.0 - '@vue/compiler-core': 3.3.0-alpha.1 - '@vue/compiler-dom': 3.3.0-alpha.1 - '@vue/compiler-ssr': 3.3.0-alpha.1 + '@vue/compiler-core': 3.3.0-alpha.2 + '@vue/compiler-dom': 3.3.0-alpha.2 + '@vue/compiler-ssr': 3.3.0-alpha.2 '@vue/consolidate': ^0.17.3 - '@vue/reactivity-transform': 3.3.0-alpha.1 - '@vue/shared': 3.3.0-alpha.1 + '@vue/reactivity-transform': 3.3.0-alpha.2 + '@vue/shared': 3.3.0-alpha.2 estree-walker: ^2.0.2 hash-sum: ^2.0.0 lru-cache: ^5.1.1 @@ -176,8 +176,8 @@ importers: packages/compiler-ssr: specifiers: - '@vue/compiler-dom': 3.3.0-alpha.1 - '@vue/shared': 3.3.0-alpha.1 + '@vue/compiler-dom': 3.3.0-alpha.2 + '@vue/shared': 3.3.0-alpha.2 dependencies: '@vue/compiler-dom': link:../compiler-dom '@vue/shared': link:../shared @@ -190,7 +190,7 @@ importers: packages/reactivity: specifiers: - '@vue/shared': 3.3.0-alpha.1 + '@vue/shared': 3.3.0-alpha.2 dependencies: '@vue/shared': link:../shared @@ -199,8 +199,8 @@ importers: '@babel/core': ^7.20.12 '@babel/parser': ^7.20.15 '@babel/types': ^7.20.7 - '@vue/compiler-core': 3.3.0-alpha.1 - '@vue/shared': 3.3.0-alpha.1 + '@vue/compiler-core': 3.3.0-alpha.2 + '@vue/shared': 3.3.0-alpha.2 estree-walker: ^2.0.2 magic-string: ^0.27.0 dependencies: @@ -215,16 +215,16 @@ importers: packages/runtime-core: specifiers: - '@vue/reactivity': 3.3.0-alpha.1 - '@vue/shared': 3.3.0-alpha.1 + '@vue/reactivity': 3.3.0-alpha.2 + '@vue/shared': 3.3.0-alpha.2 dependencies: '@vue/reactivity': link:../reactivity '@vue/shared': link:../shared packages/runtime-dom: specifiers: - '@vue/runtime-core': 3.3.0-alpha.1 - '@vue/shared': 3.3.0-alpha.1 + '@vue/runtime-core': 3.3.0-alpha.2 + '@vue/shared': 3.3.0-alpha.2 csstype: ^2.6.8 dependencies: '@vue/runtime-core': link:../runtime-core @@ -233,16 +233,16 @@ importers: packages/runtime-test: specifiers: - '@vue/runtime-core': 3.3.0-alpha.1 - '@vue/shared': 3.3.0-alpha.1 + '@vue/runtime-core': 3.3.0-alpha.2 + '@vue/shared': 3.3.0-alpha.2 dependencies: '@vue/runtime-core': link:../runtime-core '@vue/shared': link:../shared packages/server-renderer: specifiers: - '@vue/compiler-ssr': 3.3.0-alpha.1 - '@vue/shared': 3.3.0-alpha.1 + '@vue/compiler-ssr': 3.3.0-alpha.2 + '@vue/shared': 3.3.0-alpha.2 dependencies: '@vue/compiler-ssr': link:../compiler-ssr '@vue/shared': link:../shared @@ -283,11 +283,11 @@ importers: packages/vue: specifiers: - '@vue/compiler-dom': 3.3.0-alpha.1 - '@vue/compiler-sfc': 3.3.0-alpha.1 - '@vue/runtime-dom': 3.3.0-alpha.1 - '@vue/server-renderer': 3.3.0-alpha.1 - '@vue/shared': 3.3.0-alpha.1 + '@vue/compiler-dom': 3.3.0-alpha.2 + '@vue/compiler-sfc': 3.3.0-alpha.2 + '@vue/runtime-dom': 3.3.0-alpha.2 + '@vue/server-renderer': 3.3.0-alpha.2 + '@vue/shared': 3.3.0-alpha.2 dependencies: '@vue/compiler-dom': link:../compiler-dom '@vue/compiler-sfc': link:../compiler-sfc From 72b570917e1e6c9ca1073e26a8519bf43e05468b Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 6 Feb 2023 09:02:41 +0800 Subject: [PATCH 028/999] chore: catch unhandled export as just in case --- rollup.dts.config.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/rollup.dts.config.js b/rollup.dts.config.js index 63906c10d17..84a6138b44b 100644 --- a/rollup.dts.config.js +++ b/rollup.dts.config.js @@ -143,6 +143,17 @@ function patchTypes(pkg) { spec.type === 'ExportSpecifier' && shouldRemoveExport.has(spec.local.name) ) { + // @ts-ignore + const exported = spec.exported.name + if (exported !== spec.local.name) { + // this only happens if we have something like + // type Foo + // export { Foo as Bar } + // there are no such cases atm, so it is unhandled for now. + throw new Error( + `removed export ${exported} has different local name: ${spec.local.name}` + ) + } const next = node.specifiers[i + 1] if (next) { // @ts-ignore From 39cf4cd30bc47dd7afc8ccb559f1f361f45bfe5f Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 6 Feb 2023 09:35:08 +0800 Subject: [PATCH 029/999] build: reuse const enum data between concurrent rollup builds --- rollup.config.js | 2 +- scripts/build.js | 20 ++++++++++------ scripts/const-enum.js | 54 ++++++++++++++++++++++++++++++++----------- 3 files changed, 55 insertions(+), 21 deletions(-) diff --git a/rollup.config.js b/rollup.config.js index f6ca48dd266..34a5ac62a3d 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -32,7 +32,7 @@ const pkg = require(resolve(`package.json`)) const packageOptions = pkg.buildOptions || {} const name = packageOptions.filename || path.basename(packageDir) -const [enumPlugin, enumDefines] = await constEnum() +const [enumPlugin, enumDefines] = constEnum() const outputConfigs = { 'esm-bundler': { diff --git a/scripts/build.js b/scripts/build.js index 6951c396175..5272c49c388 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -17,7 +17,7 @@ nr build core --formats cjs */ import fs from 'node:fs/promises' -import { existsSync, readFileSync } from 'node:fs' +import { existsSync, readFileSync, rmSync } from 'node:fs' import path from 'node:path' import minimist from 'minimist' import { gzipSync } from 'node:zlib' @@ -27,6 +27,7 @@ import execa from 'execa' import { cpus } from 'node:os' import { createRequire } from 'node:module' import { targets as allTargets, fuzzyMatchTarget } from './utils.js' +import { scanEnums } from './const-enum.js' const require = createRequire(import.meta.url) const args = minimist(process.argv.slice(2)) @@ -42,12 +43,17 @@ const commit = execa.sync('git', ['rev-parse', 'HEAD']).stdout.slice(0, 7) run() async function run() { - if (!targets.length) { - await buildAll(allTargets) - checkAllSizes(allTargets) - } else { - await buildAll(fuzzyMatchTarget(targets, buildAllMatching)) - checkAllSizes(fuzzyMatchTarget(targets, buildAllMatching)) + const removeCache = scanEnums() + try { + if (!targets.length) { + await buildAll(allTargets) + checkAllSizes(allTargets) + } else { + await buildAll(fuzzyMatchTarget(targets, buildAllMatching)) + checkAllSizes(fuzzyMatchTarget(targets, buildAllMatching)) + } + } finally { + removeCache() } } diff --git a/scripts/const-enum.js b/scripts/const-enum.js index 37924cc64b3..7cac217b7b1 100644 --- a/scripts/const-enum.js +++ b/scripts/const-enum.js @@ -15,31 +15,37 @@ */ import execa from 'execa' -import { readFileSync } from 'node:fs' +import { + existsSync, + readFileSync, + rmSync, + writeFile, + writeFileSync +} from 'node:fs' import { parse } from '@babel/parser' import path from 'node:path' import MagicString from 'magic-string' +const ENUM_CACHE_PATH = 'temp/enum.json' + function evaluate(exp) { return new Function(`return ${exp}`)() } -/** - * @returns {Promise<[import('rollup').Plugin, Record]>} - */ -export async function constEnum() { +// this is called in the build script entry once +// so the data can be shared across concurrent Rollup processes +export function scanEnums() { /** - * @type {{ ranges: Record, defines: Record }} + * @type {{ ranges: Record, defines: Record, ids: string[] }} */ const enumData = { ranges: {}, - defines: {} + defines: {}, + ids: [] } - const knowEnums = new Set() - // 1. grep for files with exported const enum - const { stdout } = await execa('git', ['grep', `export const enum`]) + const { stdout } = execa.sync('git', ['grep', `export const enum`]) const files = [...new Set(stdout.split('\n').map(line => line.split(':')[0]))] // 2. parse matched files to collect enum info @@ -70,7 +76,9 @@ export async function constEnum() { for (let i = 0; i < decl.members.length; i++) { const e = decl.members[i] const id = decl.id.name - knowEnums.add(id) + if (!enumData.ids.includes(id)) { + enumData.ids.push(id) + } const key = e.id.type === 'Identifier' ? e.id.name : e.id.value const fullKey = `${id}.${key}` const init = e.initializer @@ -149,9 +157,29 @@ export async function constEnum() { } } + // 3. save cache + writeFileSync(ENUM_CACHE_PATH, JSON.stringify(enumData)) + + return () => { + rmSync(ENUM_CACHE_PATH, { force: true }) + } +} + +/** + * @returns {[import('rollup').Plugin, Record]} + */ +export function constEnum() { + if (!existsSync(ENUM_CACHE_PATH)) { + throw new Error('enum cache needs to be initialized before creating plugin') + } + /** + * @type {{ ranges: Record, defines: Record, ids: string[] }} + */ + const enumData = JSON.parse(readFileSync(ENUM_CACHE_PATH, 'utf-8')) + // construct a regex for matching re-exports of known const enums const reExportsRE = new RegExp( - `export {[^}]*?\\b(${[...knowEnums].join('|')})\\b[^]*?}` + `export {[^}]*?\\b(${enumData.ids.join('|')})\\b[^]*?}` ) // 3. during transform: @@ -190,7 +218,7 @@ export async function constEnum() { if ( spec.type === 'ExportSpecifier' && spec.exportKind !== 'type' && - knowEnums.has(spec.local.name) + enumData.ids.includes(spec.local.name) ) { const next = node.specifiers[i + 1] if (next) { From d1181ad692861c140e687372efbc67a1d65d642a Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 6 Feb 2023 09:44:12 +0800 Subject: [PATCH 030/999] fix(build): avoid const enum conflicts --- .../__tests__/rendererChildren.spec.ts | 10 ++++---- .../__tests__/rendererFragment.spec.ts | 12 +++++----- .../runtime-core/__tests__/vnodeHooks.spec.ts | 10 ++++---- .../__tests__/testRuntime.spec.ts | 8 +++---- packages/runtime-test/src/nodeOps.ts | 24 +++++++++---------- packages/runtime-test/src/serialize.ts | 6 ++--- scripts/const-enum.js | 12 +++++++--- 7 files changed, 44 insertions(+), 38 deletions(-) diff --git a/packages/runtime-core/__tests__/rendererChildren.spec.ts b/packages/runtime-core/__tests__/rendererChildren.spec.ts index a8edbe72c9b..747626ad531 100644 --- a/packages/runtime-core/__tests__/rendererChildren.spec.ts +++ b/packages/runtime-core/__tests__/rendererChildren.spec.ts @@ -3,7 +3,7 @@ import { h, render, nodeOps, - NodeTypes, + TestNodeTypes, TestElement, serialize, serializeInner @@ -487,7 +487,7 @@ describe('renderer: unkeyed children', () => { elm = root.children[0] as TestElement expect(elm.children[0]).toMatchObject({ - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text: 'text' }) @@ -495,7 +495,7 @@ describe('renderer: unkeyed children', () => { elm = root.children[0] as TestElement expect(elm.children[0]).toMatchObject({ - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text: 'text' }) }) @@ -505,7 +505,7 @@ describe('renderer: unkeyed children', () => { elm = root.children[0] as TestElement expect(elm.children[0]).toMatchObject({ - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text: 'text' }) @@ -513,7 +513,7 @@ describe('renderer: unkeyed children', () => { elm = root.children[0] as TestElement expect(elm.children[0]).toMatchObject({ - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text: 'text2' }) }) diff --git a/packages/runtime-core/__tests__/rendererFragment.spec.ts b/packages/runtime-core/__tests__/rendererFragment.spec.ts index 1de73ef632c..d0c9e5c79a7 100644 --- a/packages/runtime-core/__tests__/rendererFragment.spec.ts +++ b/packages/runtime-core/__tests__/rendererFragment.spec.ts @@ -3,7 +3,7 @@ import { createVNode, render, nodeOps, - NodeTypes, + TestNodeTypes, TestElement, Fragment, resetOps, @@ -32,23 +32,23 @@ describe('renderer: fragment', () => { expect(serializeInner(root)).toBe(`
one
two`) expect(root.children.length).toBe(4) expect(root.children[0]).toMatchObject({ - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text: '' }) expect(root.children[1]).toMatchObject({ - type: NodeTypes.ELEMENT, + type: TestNodeTypes.ELEMENT, tag: 'div' }) expect((root.children[1] as TestElement).children[0]).toMatchObject({ - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text: 'one' }) expect(root.children[2]).toMatchObject({ - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text: 'two' }) expect(root.children[3]).toMatchObject({ - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text: '' }) }) diff --git a/packages/runtime-core/__tests__/vnodeHooks.spec.ts b/packages/runtime-core/__tests__/vnodeHooks.spec.ts index 7b9b7318074..4d6f4522738 100644 --- a/packages/runtime-core/__tests__/vnodeHooks.spec.ts +++ b/packages/runtime-core/__tests__/vnodeHooks.spec.ts @@ -5,7 +5,7 @@ import { nodeOps, VNodeProps, TestElement, - NodeTypes, + TestNodeTypes, VNode } from '@vue/runtime-test' @@ -45,13 +45,13 @@ describe('renderer: vnode hooks', () => { onVnodeMounted: vi.fn(), onVnodeBeforeUpdate: vi.fn(vnode => { expect((vnode.el as TestElement).children[0]).toMatchObject({ - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text: 'foo' }) }), onVnodeUpdated: vi.fn(vnode => { expect((vnode.el as TestElement).children[0]).toMatchObject({ - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text: 'bar' }) }), @@ -70,13 +70,13 @@ describe('renderer: vnode hooks', () => { onVnodeMounted: vi.fn(), onVnodeBeforeUpdate: vi.fn(vnode => { expect(vnode.el as TestElement).toMatchObject({ - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text: 'foo' }) }), onVnodeUpdated: vi.fn(vnode => { expect(vnode.el as TestElement).toMatchObject({ - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text: 'bar' }) }), diff --git a/packages/runtime-test/__tests__/testRuntime.spec.ts b/packages/runtime-test/__tests__/testRuntime.spec.ts index 789ace25446..b148e72a48b 100644 --- a/packages/runtime-test/__tests__/testRuntime.spec.ts +++ b/packages/runtime-test/__tests__/testRuntime.spec.ts @@ -2,7 +2,7 @@ import { h, render, nodeOps, - NodeTypes, + TestNodeTypes, TestElement, TestText, ref, @@ -32,12 +32,12 @@ describe('test renderer', () => { expect(root.children.length).toBe(1) const el = root.children[0] as TestElement - expect(el.type).toBe(NodeTypes.ELEMENT) + expect(el.type).toBe(TestNodeTypes.ELEMENT) expect(el.props.id).toBe('test') expect(el.children.length).toBe(1) const text = el.children[0] as TestText - expect(text.type).toBe(NodeTypes.TEXT) + expect(text.type).toBe(TestNodeTypes.TEXT) expect(text.text).toBe('hello') }) @@ -68,7 +68,7 @@ describe('test renderer', () => { expect(ops[0]).toEqual({ type: NodeOpTypes.CREATE, - nodeType: NodeTypes.ELEMENT, + nodeType: TestNodeTypes.ELEMENT, tag: 'div', targetNode: root.children[0] }) diff --git a/packages/runtime-test/src/nodeOps.ts b/packages/runtime-test/src/nodeOps.ts index 94a793cc483..a3a8012f280 100644 --- a/packages/runtime-test/src/nodeOps.ts +++ b/packages/runtime-test/src/nodeOps.ts @@ -1,6 +1,6 @@ import { markRaw } from '@vue/reactivity' -export const enum NodeTypes { +export const enum TestNodeTypes { TEXT = 'text', ELEMENT = 'element', COMMENT = 'comment' @@ -17,7 +17,7 @@ export const enum NodeOpTypes { export interface TestElement { id: number - type: NodeTypes.ELEMENT + type: TestNodeTypes.ELEMENT parentNode: TestElement | null tag: string children: TestNode[] @@ -27,14 +27,14 @@ export interface TestElement { export interface TestText { id: number - type: NodeTypes.TEXT + type: TestNodeTypes.TEXT parentNode: TestElement | null text: string } export interface TestComment { id: number - type: NodeTypes.COMMENT + type: TestNodeTypes.COMMENT parentNode: TestElement | null text: string } @@ -43,7 +43,7 @@ export type TestNode = TestElement | TestText | TestComment export interface NodeOp { type: NodeOpTypes - nodeType?: NodeTypes + nodeType?: TestNodeTypes tag?: string text?: string targetNode?: TestNode @@ -74,7 +74,7 @@ export function dumpOps(): NodeOp[] { function createElement(tag: string): TestElement { const node: TestElement = { id: nodeId++, - type: NodeTypes.ELEMENT, + type: TestNodeTypes.ELEMENT, tag, children: [], props: {}, @@ -83,7 +83,7 @@ function createElement(tag: string): TestElement { } logNodeOp({ type: NodeOpTypes.CREATE, - nodeType: NodeTypes.ELEMENT, + nodeType: TestNodeTypes.ELEMENT, targetNode: node, tag }) @@ -95,13 +95,13 @@ function createElement(tag: string): TestElement { function createText(text: string): TestText { const node: TestText = { id: nodeId++, - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text, parentNode: null } logNodeOp({ type: NodeOpTypes.CREATE, - nodeType: NodeTypes.TEXT, + nodeType: TestNodeTypes.TEXT, targetNode: node, text }) @@ -113,13 +113,13 @@ function createText(text: string): TestText { function createComment(text: string): TestComment { const node: TestComment = { id: nodeId++, - type: NodeTypes.COMMENT, + type: TestNodeTypes.COMMENT, text, parentNode: null } logNodeOp({ type: NodeOpTypes.CREATE, - nodeType: NodeTypes.COMMENT, + nodeType: TestNodeTypes.COMMENT, targetNode: node, text }) @@ -203,7 +203,7 @@ function setElementText(el: TestElement, text: string) { el.children = [ { id: nodeId++, - type: NodeTypes.TEXT, + type: TestNodeTypes.TEXT, text, parentNode: el } diff --git a/packages/runtime-test/src/serialize.ts b/packages/runtime-test/src/serialize.ts index a1ee138b659..21cfb2e1a05 100644 --- a/packages/runtime-test/src/serialize.ts +++ b/packages/runtime-test/src/serialize.ts @@ -1,7 +1,7 @@ import { TestElement, TestNode, - NodeTypes, + TestNodeTypes, TestText, TestComment } from './nodeOps' @@ -12,7 +12,7 @@ export function serialize( indent: number = 0, depth: number = 0 ): string { - if (node.type === NodeTypes.ELEMENT) { + if (node.type === TestNodeTypes.ELEMENT) { return serializeElement(node, indent, depth) } else { return serializeText(node, indent, depth) @@ -64,6 +64,6 @@ function serializeText( const padding = indent ? ` `.repeat(indent).repeat(depth) : `` return ( padding + - (node.type === NodeTypes.COMMENT ? `` : node.text) + (node.type === TestNodeTypes.COMMENT ? `` : node.text) ) } diff --git a/scripts/const-enum.js b/scripts/const-enum.js index 7cac217b7b1..b4a602af689 100644 --- a/scripts/const-enum.js +++ b/scripts/const-enum.js @@ -81,6 +81,12 @@ export function scanEnums() { } const key = e.id.type === 'Identifier' ? e.id.name : e.id.value const fullKey = `${id}.${key}` + const saveValue = value => { + if (fullKey in enumData.defines) { + throw new Error(`name conflict for enum ${id} in ${file}`) + } + enumData.defines[fullKey] = JSON.stringify(value) + } const init = e.initializer if (init) { let value @@ -138,15 +144,15 @@ export function scanEnums() { `unhandled initializer type ${init.type} for ${fullKey} in ${file}` ) } - enumData.defines[fullKey] = JSON.stringify(value) + saveValue(value) lastInitialized = value } else { if (lastInitialized === undefined) { // first initialized - enumData.defines[fullKey] = `0` + saveValue(`0`) lastInitialized = 0 } else if (typeof lastInitialized === 'number') { - enumData.defines[fullKey] = String(++lastInitialized) + saveValue(String(++lastInitialized)) } else { // should not happen throw new Error(`wrong enum initialization sequence in ${file}`) From 5d4883ca77eec3dc5259f4b28e2d8099a5467555 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 6 Feb 2023 09:47:46 +0800 Subject: [PATCH 031/999] build: fix const enum when cache dir does not exist --- scripts/const-enum.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/const-enum.js b/scripts/const-enum.js index b4a602af689..5063f8b943c 100644 --- a/scripts/const-enum.js +++ b/scripts/const-enum.js @@ -17,9 +17,9 @@ import execa from 'execa' import { existsSync, + mkdirSync, readFileSync, rmSync, - writeFile, writeFileSync } from 'node:fs' import { parse } from '@babel/parser' @@ -164,6 +164,7 @@ export function scanEnums() { } // 3. save cache + if (!existsSync('temp')) mkdirSync('temp') writeFileSync(ENUM_CACHE_PATH, JSON.stringify(enumData)) return () => { From 097f6beca24154bf705f8c7af0d756b4666dbd13 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 6 Feb 2023 10:27:25 +0800 Subject: [PATCH 032/999] release: v3.3.0-alpha.3 --- CHANGELOG.md | 9 ++++ package.json | 2 +- packages/compiler-core/package.json | 4 +- packages/compiler-dom/package.json | 6 +-- packages/compiler-sfc/package.json | 12 ++--- packages/compiler-ssr/package.json | 6 +-- packages/dts-test/package.json | 2 +- packages/reactivity-transform/package.json | 6 +-- packages/reactivity/package.json | 4 +- packages/runtime-core/package.json | 6 +-- packages/runtime-dom/package.json | 6 +-- packages/runtime-test/package.json | 6 +-- packages/server-renderer/package.json | 8 ++-- packages/sfc-playground/package.json | 2 +- packages/shared/package.json | 2 +- packages/size-check/package.json | 2 +- packages/template-explorer/package.json | 2 +- packages/vue-compat/package.json | 4 +- packages/vue/package.json | 12 ++--- pnpm-lock.yaml | 52 +++++++++++----------- 20 files changed, 81 insertions(+), 72 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9b29d4f6e5..4452370fef0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# [3.3.0-alpha.3](https://github.com/vuejs/core/compare/v3.3.0-alpha.2...v3.3.0-alpha.3) (2023-02-06) + + +### Bug Fixes + +* **build:** avoid const enum conflicts ([d1181ad](https://github.com/vuejs/core/commit/d1181ad692861c140e687372efbc67a1d65d642a)) + + + # [3.3.0-alpha.2](https://github.com/vuejs/core/compare/v3.3.0-alpha.1...v3.3.0-alpha.2) (2023-02-05) diff --git a/package.json b/package.json index e50c98c7ece..e8e8da641cb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "packageManager": "pnpm@7.26.0", "type": "module", "scripts": { diff --git a/packages/compiler-core/package.json b/packages/compiler-core/package.json index d4a8925dd92..a41184889a1 100644 --- a/packages/compiler-core/package.json +++ b/packages/compiler-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-core", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "@vue/compiler-core", "main": "index.js", "module": "dist/compiler-core.esm-bundler.js", @@ -32,7 +32,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-core#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.2", + "@vue/shared": "3.3.0-alpha.3", "@babel/parser": "^7.20.15", "estree-walker": "^2.0.2", "source-map": "^0.6.1" diff --git a/packages/compiler-dom/package.json b/packages/compiler-dom/package.json index 077d8e4de53..a47bdd3e495 100644 --- a/packages/compiler-dom/package.json +++ b/packages/compiler-dom/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-dom", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "@vue/compiler-dom", "main": "index.js", "module": "dist/compiler-dom.esm-bundler.js", @@ -37,7 +37,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.2", - "@vue/compiler-core": "3.3.0-alpha.2" + "@vue/shared": "3.3.0-alpha.3", + "@vue/compiler-core": "3.3.0-alpha.3" } } diff --git a/packages/compiler-sfc/package.json b/packages/compiler-sfc/package.json index 982b14f5a01..68784bf2c76 100644 --- a/packages/compiler-sfc/package.json +++ b/packages/compiler-sfc/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-sfc", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "@vue/compiler-sfc", "main": "dist/compiler-sfc.cjs.js", "module": "dist/compiler-sfc.esm-browser.js", @@ -33,11 +33,11 @@ "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.0-alpha.2", - "@vue/compiler-dom": "3.3.0-alpha.2", - "@vue/compiler-ssr": "3.3.0-alpha.2", - "@vue/reactivity-transform": "3.3.0-alpha.2", - "@vue/shared": "3.3.0-alpha.2", + "@vue/compiler-core": "3.3.0-alpha.3", + "@vue/compiler-dom": "3.3.0-alpha.3", + "@vue/compiler-ssr": "3.3.0-alpha.3", + "@vue/reactivity-transform": "3.3.0-alpha.3", + "@vue/shared": "3.3.0-alpha.3", "estree-walker": "^2.0.2", "magic-string": "^0.27.0", "source-map": "^0.6.1", diff --git a/packages/compiler-ssr/package.json b/packages/compiler-ssr/package.json index 3b0cfe15169..093dba76917 100644 --- a/packages/compiler-ssr/package.json +++ b/packages/compiler-ssr/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-ssr", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "@vue/compiler-ssr", "main": "dist/compiler-ssr.cjs.js", "types": "dist/compiler-ssr.d.ts", @@ -28,7 +28,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.2", - "@vue/compiler-dom": "3.3.0-alpha.2" + "@vue/shared": "3.3.0-alpha.3", + "@vue/compiler-dom": "3.3.0-alpha.3" } } diff --git a/packages/dts-test/package.json b/packages/dts-test/package.json index cdd577e2947..d5ec9e049ce 100644 --- a/packages/dts-test/package.json +++ b/packages/dts-test/package.json @@ -4,5 +4,5 @@ "dependencies": { "vue": "workspace:*" }, - "version": "3.3.0-alpha.2" + "version": "3.3.0-alpha.3" } diff --git a/packages/reactivity-transform/package.json b/packages/reactivity-transform/package.json index 7769689e71c..49c817036a8 100644 --- a/packages/reactivity-transform/package.json +++ b/packages/reactivity-transform/package.json @@ -1,6 +1,6 @@ { "name": "@vue/reactivity-transform", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "@vue/reactivity-transform", "main": "dist/reactivity-transform.cjs.js", "files": [ @@ -29,8 +29,8 @@ "homepage": "https://github.com/vuejs/core/tree/dev/packages/reactivity-transform#readme", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.0-alpha.2", - "@vue/shared": "3.3.0-alpha.2", + "@vue/compiler-core": "3.3.0-alpha.3", + "@vue/shared": "3.3.0-alpha.3", "estree-walker": "^2.0.2", "magic-string": "^0.27.0" }, diff --git a/packages/reactivity/package.json b/packages/reactivity/package.json index e31a7ad0b90..de83626ba45 100644 --- a/packages/reactivity/package.json +++ b/packages/reactivity/package.json @@ -1,6 +1,6 @@ { "name": "@vue/reactivity", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "@vue/reactivity", "main": "index.js", "module": "dist/reactivity.esm-bundler.js", @@ -36,6 +36,6 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/reactivity#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.2" + "@vue/shared": "3.3.0-alpha.3" } } diff --git a/packages/runtime-core/package.json b/packages/runtime-core/package.json index 76a14af34a2..940374ad864 100644 --- a/packages/runtime-core/package.json +++ b/packages/runtime-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-core", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "@vue/runtime-core", "main": "index.js", "module": "dist/runtime-core.esm-bundler.js", @@ -32,7 +32,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.2", - "@vue/reactivity": "3.3.0-alpha.2" + "@vue/shared": "3.3.0-alpha.3", + "@vue/reactivity": "3.3.0-alpha.3" } } diff --git a/packages/runtime-dom/package.json b/packages/runtime-dom/package.json index 5544343083e..d74f6d8411d 100644 --- a/packages/runtime-dom/package.json +++ b/packages/runtime-dom/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-dom", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "@vue/runtime-dom", "main": "index.js", "module": "dist/runtime-dom.esm-bundler.js", @@ -35,8 +35,8 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.2", - "@vue/runtime-core": "3.3.0-alpha.2", + "@vue/shared": "3.3.0-alpha.3", + "@vue/runtime-core": "3.3.0-alpha.3", "csstype": "^2.6.8" } } diff --git a/packages/runtime-test/package.json b/packages/runtime-test/package.json index 67048ce3ea3..485459611e1 100644 --- a/packages/runtime-test/package.json +++ b/packages/runtime-test/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-test", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "@vue/runtime-test", "private": true, "main": "index.js", @@ -25,7 +25,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-test#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.2", - "@vue/runtime-core": "3.3.0-alpha.2" + "@vue/shared": "3.3.0-alpha.3", + "@vue/runtime-core": "3.3.0-alpha.3" } } diff --git a/packages/server-renderer/package.json b/packages/server-renderer/package.json index f5fff410efb..8c3e709888e 100644 --- a/packages/server-renderer/package.json +++ b/packages/server-renderer/package.json @@ -1,6 +1,6 @@ { "name": "@vue/server-renderer", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "@vue/server-renderer", "main": "index.js", "module": "dist/server-renderer.esm-bundler.js", @@ -32,10 +32,10 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/server-renderer#readme", "peerDependencies": { - "vue": "3.3.0-alpha.2" + "vue": "3.3.0-alpha.3" }, "dependencies": { - "@vue/shared": "3.3.0-alpha.2", - "@vue/compiler-ssr": "3.3.0-alpha.2" + "@vue/shared": "3.3.0-alpha.3", + "@vue/compiler-ssr": "3.3.0-alpha.3" } } diff --git a/packages/sfc-playground/package.json b/packages/sfc-playground/package.json index 8048601b7a4..d9da56c7a3a 100644 --- a/packages/sfc-playground/package.json +++ b/packages/sfc-playground/package.json @@ -1,6 +1,6 @@ { "name": "@vue/sfc-playground", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "private": true, "scripts": { "dev": "vite", diff --git a/packages/shared/package.json b/packages/shared/package.json index 30882217ebf..1c7d13aec0a 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@vue/shared", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "internal utils shared across @vue packages", "main": "index.js", "module": "dist/shared.esm-bundler.js", diff --git a/packages/size-check/package.json b/packages/size-check/package.json index 4e4bca5949d..c79af975e84 100644 --- a/packages/size-check/package.json +++ b/packages/size-check/package.json @@ -1,6 +1,6 @@ { "name": "@vue/size-check", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "private": true, "scripts": { "build": "vite build" diff --git a/packages/template-explorer/package.json b/packages/template-explorer/package.json index d3331158648..45a46c013f9 100644 --- a/packages/template-explorer/package.json +++ b/packages/template-explorer/package.json @@ -1,6 +1,6 @@ { "name": "@vue/template-explorer", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "private": true, "buildOptions": { "formats": [ diff --git a/packages/vue-compat/package.json b/packages/vue-compat/package.json index 1d2518c86a3..80a795a5356 100644 --- a/packages/vue-compat/package.json +++ b/packages/vue-compat/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compat", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "Vue 3 compatibility build for Vue 2", "main": "index.js", "module": "dist/vue.runtime.esm-bundler.js", @@ -43,6 +43,6 @@ "source-map": "^0.6.1" }, "peerDependencies": { - "vue": "3.3.0-alpha.2" + "vue": "3.3.0-alpha.3" } } diff --git a/packages/vue/package.json b/packages/vue/package.json index 3c6b0e3ff86..bfab5de733b 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "vue", - "version": "3.3.0-alpha.2", + "version": "3.3.0-alpha.3", "description": "The progressive JavaScript framework for building modern web UI.", "main": "index.js", "module": "dist/vue.runtime.esm-bundler.js", @@ -68,10 +68,10 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/vue#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.2", - "@vue/compiler-dom": "3.3.0-alpha.2", - "@vue/runtime-dom": "3.3.0-alpha.2", - "@vue/compiler-sfc": "3.3.0-alpha.2", - "@vue/server-renderer": "3.3.0-alpha.2" + "@vue/shared": "3.3.0-alpha.3", + "@vue/compiler-dom": "3.3.0-alpha.3", + "@vue/runtime-dom": "3.3.0-alpha.3", + "@vue/compiler-sfc": "3.3.0-alpha.3", + "@vue/server-renderer": "3.3.0-alpha.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 03a0e2d0c01..2552482c905 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -108,7 +108,7 @@ importers: specifiers: '@babel/parser': ^7.20.15 '@babel/types': ^7.16.0 - '@vue/shared': 3.3.0-alpha.2 + '@vue/shared': 3.3.0-alpha.3 estree-walker: ^2.0.2 source-map: ^0.6.1 dependencies: @@ -121,8 +121,8 @@ importers: packages/compiler-dom: specifiers: - '@vue/compiler-core': 3.3.0-alpha.2 - '@vue/shared': 3.3.0-alpha.2 + '@vue/compiler-core': 3.3.0-alpha.3 + '@vue/shared': 3.3.0-alpha.3 dependencies: '@vue/compiler-core': link:../compiler-core '@vue/shared': link:../shared @@ -133,12 +133,12 @@ importers: '@babel/types': ^7.16.0 '@types/estree': ^0.0.48 '@types/lru-cache': ^5.1.0 - '@vue/compiler-core': 3.3.0-alpha.2 - '@vue/compiler-dom': 3.3.0-alpha.2 - '@vue/compiler-ssr': 3.3.0-alpha.2 + '@vue/compiler-core': 3.3.0-alpha.3 + '@vue/compiler-dom': 3.3.0-alpha.3 + '@vue/compiler-ssr': 3.3.0-alpha.3 '@vue/consolidate': ^0.17.3 - '@vue/reactivity-transform': 3.3.0-alpha.2 - '@vue/shared': 3.3.0-alpha.2 + '@vue/reactivity-transform': 3.3.0-alpha.3 + '@vue/shared': 3.3.0-alpha.3 estree-walker: ^2.0.2 hash-sum: ^2.0.0 lru-cache: ^5.1.1 @@ -176,8 +176,8 @@ importers: packages/compiler-ssr: specifiers: - '@vue/compiler-dom': 3.3.0-alpha.2 - '@vue/shared': 3.3.0-alpha.2 + '@vue/compiler-dom': 3.3.0-alpha.3 + '@vue/shared': 3.3.0-alpha.3 dependencies: '@vue/compiler-dom': link:../compiler-dom '@vue/shared': link:../shared @@ -190,7 +190,7 @@ importers: packages/reactivity: specifiers: - '@vue/shared': 3.3.0-alpha.2 + '@vue/shared': 3.3.0-alpha.3 dependencies: '@vue/shared': link:../shared @@ -199,8 +199,8 @@ importers: '@babel/core': ^7.20.12 '@babel/parser': ^7.20.15 '@babel/types': ^7.20.7 - '@vue/compiler-core': 3.3.0-alpha.2 - '@vue/shared': 3.3.0-alpha.2 + '@vue/compiler-core': 3.3.0-alpha.3 + '@vue/shared': 3.3.0-alpha.3 estree-walker: ^2.0.2 magic-string: ^0.27.0 dependencies: @@ -215,16 +215,16 @@ importers: packages/runtime-core: specifiers: - '@vue/reactivity': 3.3.0-alpha.2 - '@vue/shared': 3.3.0-alpha.2 + '@vue/reactivity': 3.3.0-alpha.3 + '@vue/shared': 3.3.0-alpha.3 dependencies: '@vue/reactivity': link:../reactivity '@vue/shared': link:../shared packages/runtime-dom: specifiers: - '@vue/runtime-core': 3.3.0-alpha.2 - '@vue/shared': 3.3.0-alpha.2 + '@vue/runtime-core': 3.3.0-alpha.3 + '@vue/shared': 3.3.0-alpha.3 csstype: ^2.6.8 dependencies: '@vue/runtime-core': link:../runtime-core @@ -233,16 +233,16 @@ importers: packages/runtime-test: specifiers: - '@vue/runtime-core': 3.3.0-alpha.2 - '@vue/shared': 3.3.0-alpha.2 + '@vue/runtime-core': 3.3.0-alpha.3 + '@vue/shared': 3.3.0-alpha.3 dependencies: '@vue/runtime-core': link:../runtime-core '@vue/shared': link:../shared packages/server-renderer: specifiers: - '@vue/compiler-ssr': 3.3.0-alpha.2 - '@vue/shared': 3.3.0-alpha.2 + '@vue/compiler-ssr': 3.3.0-alpha.3 + '@vue/shared': 3.3.0-alpha.3 dependencies: '@vue/compiler-ssr': link:../compiler-ssr '@vue/shared': link:../shared @@ -283,11 +283,11 @@ importers: packages/vue: specifiers: - '@vue/compiler-dom': 3.3.0-alpha.2 - '@vue/compiler-sfc': 3.3.0-alpha.2 - '@vue/runtime-dom': 3.3.0-alpha.2 - '@vue/server-renderer': 3.3.0-alpha.2 - '@vue/shared': 3.3.0-alpha.2 + '@vue/compiler-dom': 3.3.0-alpha.3 + '@vue/compiler-sfc': 3.3.0-alpha.3 + '@vue/runtime-dom': 3.3.0-alpha.3 + '@vue/server-renderer': 3.3.0-alpha.3 + '@vue/shared': 3.3.0-alpha.3 dependencies: '@vue/compiler-dom': link:../compiler-dom '@vue/compiler-sfc': link:../compiler-sfc From 92bb189ca7ecae221ebf5411da87c715780d2de3 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 6 Feb 2023 14:03:15 +0800 Subject: [PATCH 033/999] fix(build): fix const enum w/ number values --- scripts/const-enum.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/const-enum.js b/scripts/const-enum.js index 5063f8b943c..8feb5f9f750 100644 --- a/scripts/const-enum.js +++ b/scripts/const-enum.js @@ -149,10 +149,9 @@ export function scanEnums() { } else { if (lastInitialized === undefined) { // first initialized - saveValue(`0`) - lastInitialized = 0 + saveValue((lastInitialized = 0)) } else if (typeof lastInitialized === 'number') { - saveValue(String(++lastInitialized)) + saveValue(++lastInitialized) } else { // should not happen throw new Error(`wrong enum initialization sequence in ${file}`) From 78b86150b801e7eb4ebf1cdff977e791dc0438f0 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 6 Feb 2023 14:10:56 +0800 Subject: [PATCH 034/999] release: v3.3.0-alpha.4 --- CHANGELOG.md | 9 ++++ package.json | 2 +- packages/compiler-core/package.json | 4 +- packages/compiler-dom/package.json | 6 +-- packages/compiler-sfc/package.json | 12 ++--- packages/compiler-ssr/package.json | 6 +-- packages/dts-test/package.json | 2 +- packages/reactivity-transform/package.json | 6 +-- packages/reactivity/package.json | 4 +- packages/runtime-core/package.json | 6 +-- packages/runtime-dom/package.json | 6 +-- packages/runtime-test/package.json | 6 +-- packages/server-renderer/package.json | 8 ++-- packages/sfc-playground/package.json | 2 +- packages/shared/package.json | 2 +- packages/size-check/package.json | 2 +- packages/template-explorer/package.json | 2 +- packages/vue-compat/package.json | 4 +- packages/vue/package.json | 12 ++--- pnpm-lock.yaml | 52 +++++++++++----------- 20 files changed, 81 insertions(+), 72 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4452370fef0..d153f4c6023 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# [3.3.0-alpha.4](https://github.com/vuejs/core/compare/v3.3.0-alpha.3...v3.3.0-alpha.4) (2023-02-06) + + +### Bug Fixes + +* **build:** fix const enum w/ number values ([92bb189](https://github.com/vuejs/core/commit/92bb189ca7ecae221ebf5411da87c715780d2de3)) + + + # [3.3.0-alpha.3](https://github.com/vuejs/core/compare/v3.3.0-alpha.2...v3.3.0-alpha.3) (2023-02-06) diff --git a/package.json b/package.json index e8e8da641cb..2ae1a3816e4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "packageManager": "pnpm@7.26.0", "type": "module", "scripts": { diff --git a/packages/compiler-core/package.json b/packages/compiler-core/package.json index a41184889a1..bfe2f9a69fc 100644 --- a/packages/compiler-core/package.json +++ b/packages/compiler-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-core", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "@vue/compiler-core", "main": "index.js", "module": "dist/compiler-core.esm-bundler.js", @@ -32,7 +32,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-core#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.3", + "@vue/shared": "3.3.0-alpha.4", "@babel/parser": "^7.20.15", "estree-walker": "^2.0.2", "source-map": "^0.6.1" diff --git a/packages/compiler-dom/package.json b/packages/compiler-dom/package.json index a47bdd3e495..c1037193a1b 100644 --- a/packages/compiler-dom/package.json +++ b/packages/compiler-dom/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-dom", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "@vue/compiler-dom", "main": "index.js", "module": "dist/compiler-dom.esm-bundler.js", @@ -37,7 +37,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.3", - "@vue/compiler-core": "3.3.0-alpha.3" + "@vue/shared": "3.3.0-alpha.4", + "@vue/compiler-core": "3.3.0-alpha.4" } } diff --git a/packages/compiler-sfc/package.json b/packages/compiler-sfc/package.json index 68784bf2c76..02e1078a492 100644 --- a/packages/compiler-sfc/package.json +++ b/packages/compiler-sfc/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-sfc", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "@vue/compiler-sfc", "main": "dist/compiler-sfc.cjs.js", "module": "dist/compiler-sfc.esm-browser.js", @@ -33,11 +33,11 @@ "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.0-alpha.3", - "@vue/compiler-dom": "3.3.0-alpha.3", - "@vue/compiler-ssr": "3.3.0-alpha.3", - "@vue/reactivity-transform": "3.3.0-alpha.3", - "@vue/shared": "3.3.0-alpha.3", + "@vue/compiler-core": "3.3.0-alpha.4", + "@vue/compiler-dom": "3.3.0-alpha.4", + "@vue/compiler-ssr": "3.3.0-alpha.4", + "@vue/reactivity-transform": "3.3.0-alpha.4", + "@vue/shared": "3.3.0-alpha.4", "estree-walker": "^2.0.2", "magic-string": "^0.27.0", "source-map": "^0.6.1", diff --git a/packages/compiler-ssr/package.json b/packages/compiler-ssr/package.json index 093dba76917..dcc73066b96 100644 --- a/packages/compiler-ssr/package.json +++ b/packages/compiler-ssr/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-ssr", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "@vue/compiler-ssr", "main": "dist/compiler-ssr.cjs.js", "types": "dist/compiler-ssr.d.ts", @@ -28,7 +28,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.3", - "@vue/compiler-dom": "3.3.0-alpha.3" + "@vue/shared": "3.3.0-alpha.4", + "@vue/compiler-dom": "3.3.0-alpha.4" } } diff --git a/packages/dts-test/package.json b/packages/dts-test/package.json index d5ec9e049ce..c501cca51e8 100644 --- a/packages/dts-test/package.json +++ b/packages/dts-test/package.json @@ -4,5 +4,5 @@ "dependencies": { "vue": "workspace:*" }, - "version": "3.3.0-alpha.3" + "version": "3.3.0-alpha.4" } diff --git a/packages/reactivity-transform/package.json b/packages/reactivity-transform/package.json index 49c817036a8..fea92b9f374 100644 --- a/packages/reactivity-transform/package.json +++ b/packages/reactivity-transform/package.json @@ -1,6 +1,6 @@ { "name": "@vue/reactivity-transform", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "@vue/reactivity-transform", "main": "dist/reactivity-transform.cjs.js", "files": [ @@ -29,8 +29,8 @@ "homepage": "https://github.com/vuejs/core/tree/dev/packages/reactivity-transform#readme", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.0-alpha.3", - "@vue/shared": "3.3.0-alpha.3", + "@vue/compiler-core": "3.3.0-alpha.4", + "@vue/shared": "3.3.0-alpha.4", "estree-walker": "^2.0.2", "magic-string": "^0.27.0" }, diff --git a/packages/reactivity/package.json b/packages/reactivity/package.json index de83626ba45..e7bc43cc37f 100644 --- a/packages/reactivity/package.json +++ b/packages/reactivity/package.json @@ -1,6 +1,6 @@ { "name": "@vue/reactivity", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "@vue/reactivity", "main": "index.js", "module": "dist/reactivity.esm-bundler.js", @@ -36,6 +36,6 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/reactivity#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.3" + "@vue/shared": "3.3.0-alpha.4" } } diff --git a/packages/runtime-core/package.json b/packages/runtime-core/package.json index 940374ad864..ce3b15740be 100644 --- a/packages/runtime-core/package.json +++ b/packages/runtime-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-core", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "@vue/runtime-core", "main": "index.js", "module": "dist/runtime-core.esm-bundler.js", @@ -32,7 +32,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.3", - "@vue/reactivity": "3.3.0-alpha.3" + "@vue/shared": "3.3.0-alpha.4", + "@vue/reactivity": "3.3.0-alpha.4" } } diff --git a/packages/runtime-dom/package.json b/packages/runtime-dom/package.json index d74f6d8411d..4ac0ac701a1 100644 --- a/packages/runtime-dom/package.json +++ b/packages/runtime-dom/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-dom", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "@vue/runtime-dom", "main": "index.js", "module": "dist/runtime-dom.esm-bundler.js", @@ -35,8 +35,8 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.3", - "@vue/runtime-core": "3.3.0-alpha.3", + "@vue/shared": "3.3.0-alpha.4", + "@vue/runtime-core": "3.3.0-alpha.4", "csstype": "^2.6.8" } } diff --git a/packages/runtime-test/package.json b/packages/runtime-test/package.json index 485459611e1..af139ad188a 100644 --- a/packages/runtime-test/package.json +++ b/packages/runtime-test/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-test", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "@vue/runtime-test", "private": true, "main": "index.js", @@ -25,7 +25,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-test#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.3", - "@vue/runtime-core": "3.3.0-alpha.3" + "@vue/shared": "3.3.0-alpha.4", + "@vue/runtime-core": "3.3.0-alpha.4" } } diff --git a/packages/server-renderer/package.json b/packages/server-renderer/package.json index 8c3e709888e..630fa61a2f1 100644 --- a/packages/server-renderer/package.json +++ b/packages/server-renderer/package.json @@ -1,6 +1,6 @@ { "name": "@vue/server-renderer", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "@vue/server-renderer", "main": "index.js", "module": "dist/server-renderer.esm-bundler.js", @@ -32,10 +32,10 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/server-renderer#readme", "peerDependencies": { - "vue": "3.3.0-alpha.3" + "vue": "3.3.0-alpha.4" }, "dependencies": { - "@vue/shared": "3.3.0-alpha.3", - "@vue/compiler-ssr": "3.3.0-alpha.3" + "@vue/shared": "3.3.0-alpha.4", + "@vue/compiler-ssr": "3.3.0-alpha.4" } } diff --git a/packages/sfc-playground/package.json b/packages/sfc-playground/package.json index d9da56c7a3a..e185593be60 100644 --- a/packages/sfc-playground/package.json +++ b/packages/sfc-playground/package.json @@ -1,6 +1,6 @@ { "name": "@vue/sfc-playground", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "private": true, "scripts": { "dev": "vite", diff --git a/packages/shared/package.json b/packages/shared/package.json index 1c7d13aec0a..f9d507300a6 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@vue/shared", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "internal utils shared across @vue packages", "main": "index.js", "module": "dist/shared.esm-bundler.js", diff --git a/packages/size-check/package.json b/packages/size-check/package.json index c79af975e84..8ca1f27c675 100644 --- a/packages/size-check/package.json +++ b/packages/size-check/package.json @@ -1,6 +1,6 @@ { "name": "@vue/size-check", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "private": true, "scripts": { "build": "vite build" diff --git a/packages/template-explorer/package.json b/packages/template-explorer/package.json index 45a46c013f9..db489489ad4 100644 --- a/packages/template-explorer/package.json +++ b/packages/template-explorer/package.json @@ -1,6 +1,6 @@ { "name": "@vue/template-explorer", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "private": true, "buildOptions": { "formats": [ diff --git a/packages/vue-compat/package.json b/packages/vue-compat/package.json index 80a795a5356..cae61e08aaf 100644 --- a/packages/vue-compat/package.json +++ b/packages/vue-compat/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compat", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "Vue 3 compatibility build for Vue 2", "main": "index.js", "module": "dist/vue.runtime.esm-bundler.js", @@ -43,6 +43,6 @@ "source-map": "^0.6.1" }, "peerDependencies": { - "vue": "3.3.0-alpha.3" + "vue": "3.3.0-alpha.4" } } diff --git a/packages/vue/package.json b/packages/vue/package.json index bfab5de733b..449fed7989a 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "vue", - "version": "3.3.0-alpha.3", + "version": "3.3.0-alpha.4", "description": "The progressive JavaScript framework for building modern web UI.", "main": "index.js", "module": "dist/vue.runtime.esm-bundler.js", @@ -68,10 +68,10 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/vue#readme", "dependencies": { - "@vue/shared": "3.3.0-alpha.3", - "@vue/compiler-dom": "3.3.0-alpha.3", - "@vue/runtime-dom": "3.3.0-alpha.3", - "@vue/compiler-sfc": "3.3.0-alpha.3", - "@vue/server-renderer": "3.3.0-alpha.3" + "@vue/shared": "3.3.0-alpha.4", + "@vue/compiler-dom": "3.3.0-alpha.4", + "@vue/runtime-dom": "3.3.0-alpha.4", + "@vue/compiler-sfc": "3.3.0-alpha.4", + "@vue/server-renderer": "3.3.0-alpha.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2552482c905..cf7e281cda6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -108,7 +108,7 @@ importers: specifiers: '@babel/parser': ^7.20.15 '@babel/types': ^7.16.0 - '@vue/shared': 3.3.0-alpha.3 + '@vue/shared': 3.3.0-alpha.4 estree-walker: ^2.0.2 source-map: ^0.6.1 dependencies: @@ -121,8 +121,8 @@ importers: packages/compiler-dom: specifiers: - '@vue/compiler-core': 3.3.0-alpha.3 - '@vue/shared': 3.3.0-alpha.3 + '@vue/compiler-core': 3.3.0-alpha.4 + '@vue/shared': 3.3.0-alpha.4 dependencies: '@vue/compiler-core': link:../compiler-core '@vue/shared': link:../shared @@ -133,12 +133,12 @@ importers: '@babel/types': ^7.16.0 '@types/estree': ^0.0.48 '@types/lru-cache': ^5.1.0 - '@vue/compiler-core': 3.3.0-alpha.3 - '@vue/compiler-dom': 3.3.0-alpha.3 - '@vue/compiler-ssr': 3.3.0-alpha.3 + '@vue/compiler-core': 3.3.0-alpha.4 + '@vue/compiler-dom': 3.3.0-alpha.4 + '@vue/compiler-ssr': 3.3.0-alpha.4 '@vue/consolidate': ^0.17.3 - '@vue/reactivity-transform': 3.3.0-alpha.3 - '@vue/shared': 3.3.0-alpha.3 + '@vue/reactivity-transform': 3.3.0-alpha.4 + '@vue/shared': 3.3.0-alpha.4 estree-walker: ^2.0.2 hash-sum: ^2.0.0 lru-cache: ^5.1.1 @@ -176,8 +176,8 @@ importers: packages/compiler-ssr: specifiers: - '@vue/compiler-dom': 3.3.0-alpha.3 - '@vue/shared': 3.3.0-alpha.3 + '@vue/compiler-dom': 3.3.0-alpha.4 + '@vue/shared': 3.3.0-alpha.4 dependencies: '@vue/compiler-dom': link:../compiler-dom '@vue/shared': link:../shared @@ -190,7 +190,7 @@ importers: packages/reactivity: specifiers: - '@vue/shared': 3.3.0-alpha.3 + '@vue/shared': 3.3.0-alpha.4 dependencies: '@vue/shared': link:../shared @@ -199,8 +199,8 @@ importers: '@babel/core': ^7.20.12 '@babel/parser': ^7.20.15 '@babel/types': ^7.20.7 - '@vue/compiler-core': 3.3.0-alpha.3 - '@vue/shared': 3.3.0-alpha.3 + '@vue/compiler-core': 3.3.0-alpha.4 + '@vue/shared': 3.3.0-alpha.4 estree-walker: ^2.0.2 magic-string: ^0.27.0 dependencies: @@ -215,16 +215,16 @@ importers: packages/runtime-core: specifiers: - '@vue/reactivity': 3.3.0-alpha.3 - '@vue/shared': 3.3.0-alpha.3 + '@vue/reactivity': 3.3.0-alpha.4 + '@vue/shared': 3.3.0-alpha.4 dependencies: '@vue/reactivity': link:../reactivity '@vue/shared': link:../shared packages/runtime-dom: specifiers: - '@vue/runtime-core': 3.3.0-alpha.3 - '@vue/shared': 3.3.0-alpha.3 + '@vue/runtime-core': 3.3.0-alpha.4 + '@vue/shared': 3.3.0-alpha.4 csstype: ^2.6.8 dependencies: '@vue/runtime-core': link:../runtime-core @@ -233,16 +233,16 @@ importers: packages/runtime-test: specifiers: - '@vue/runtime-core': 3.3.0-alpha.3 - '@vue/shared': 3.3.0-alpha.3 + '@vue/runtime-core': 3.3.0-alpha.4 + '@vue/shared': 3.3.0-alpha.4 dependencies: '@vue/runtime-core': link:../runtime-core '@vue/shared': link:../shared packages/server-renderer: specifiers: - '@vue/compiler-ssr': 3.3.0-alpha.3 - '@vue/shared': 3.3.0-alpha.3 + '@vue/compiler-ssr': 3.3.0-alpha.4 + '@vue/shared': 3.3.0-alpha.4 dependencies: '@vue/compiler-ssr': link:../compiler-ssr '@vue/shared': link:../shared @@ -283,11 +283,11 @@ importers: packages/vue: specifiers: - '@vue/compiler-dom': 3.3.0-alpha.3 - '@vue/compiler-sfc': 3.3.0-alpha.3 - '@vue/runtime-dom': 3.3.0-alpha.3 - '@vue/server-renderer': 3.3.0-alpha.3 - '@vue/shared': 3.3.0-alpha.3 + '@vue/compiler-dom': 3.3.0-alpha.4 + '@vue/compiler-sfc': 3.3.0-alpha.4 + '@vue/runtime-dom': 3.3.0-alpha.4 + '@vue/server-renderer': 3.3.0-alpha.4 + '@vue/shared': 3.3.0-alpha.4 dependencies: '@vue/compiler-dom': link:../compiler-dom '@vue/compiler-sfc': link:../compiler-sfc From 1d09540798bdb22ce6d1579688e041c8b8c3f730 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Fri, 10 Feb 2023 19:02:41 +0800 Subject: [PATCH 035/999] ci: add a ecosystem-ci-trigger workflow (#7618) --- .github/workflows/ecosystem-ci-trigger.yml | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 .github/workflows/ecosystem-ci-trigger.yml diff --git a/.github/workflows/ecosystem-ci-trigger.yml b/.github/workflows/ecosystem-ci-trigger.yml new file mode 100644 index 00000000000..bd3a2749431 --- /dev/null +++ b/.github/workflows/ecosystem-ci-trigger.yml @@ -0,0 +1,85 @@ +name: ecosystem-ci trigger + +on: + issue_comment: + types: [created] + +jobs: + trigger: + runs-on: ubuntu-latest + if: github.repository == 'vuejs/core' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/ecosystem-ci run') + steps: + - uses: actions/github-script@v6 + with: + script: | + const user = context.payload.sender.login + console.log(`Validate user: ${user}`) + + let isVuejsMember = false + try { + const { status } = await github.rest.orgs.checkMembershipForUser({ + org: 'vuejs', + username: user + }); + + isVuejsMember = (status === 204) + } catch (e) {} + + if (isVuejsMember) { + console.log('Allowed') + await github.rest.reactions.createForIssueComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: context.payload.comment.id, + content: '+1', + }) + } else { + console.log('Not allowed') + await github.rest.reactions.createForIssueComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: context.payload.comment.id, + content: '-1', + }) + throw new Error('not allowed') + } + - uses: actions/github-script@v6 + id: get-pr-data + with: + script: | + console.log(`Get PR info: ${context.repo.owner}/${context.repo.repo}#${context.issue.number}`) + const { data: pr } = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.issue.number + }) + return { + num: context.issue.number, + branchName: pr.head.ref, + repo: pr.head.repo.full_name + } + - uses: actions/github-script@v6 + id: trigger + env: + COMMENT: ${{ github.event.comment.body }} + with: + github-token: ${{ secrets.ECOSYSTEM_CI_ACCESS_TOKEN }} + result-encoding: string + script: | + const comment = process.env.COMMENT.trim() + const prData = ${{ steps.get-pr-data.outputs.result }} + + const suite = comment.replace(/^\/ecosystem-ci run/, '').trim() + + await github.rest.actions.createWorkflowDispatch({ + owner: context.repo.owner, + repo: 'ecosystem-ci', + workflow_id: 'ecosystem-ci-from-pr.yml', + ref: 'main', + inputs: { + prNumber: '' + prData.num, + branchName: prData.branchName, + repo: prData.repo, + suite: suite === '' ? '-' : suite + } + }) From a0e7dc334356e9e6ffaa547d29e55b34b9b8a04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=B6=E8=BF=9C=E6=96=B9?= Date: Sun, 12 Feb 2023 00:55:21 +0800 Subject: [PATCH 036/999] chore: fix typo (#7680) --- packages/reactivity-transform/src/reactivityTransform.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/reactivity-transform/src/reactivityTransform.ts b/packages/reactivity-transform/src/reactivityTransform.ts index 692426bf70b..4223df527fc 100644 --- a/packages/reactivity-transform/src/reactivityTransform.ts +++ b/packages/reactivity-transform/src/reactivityTransform.ts @@ -719,7 +719,7 @@ export function transformAST( while (i--) { const char = s.original.charAt(i) if (char === '\n') { - // only insert semi if it's actually the fisrt thign after + // only insert semi if it's actually the first thing after // newline s.prependRight(node.start! + offset, ';') break From 34ad609bd75b5644e7c54d84b163297c51652ab6 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 21 Feb 2023 17:42:06 +0800 Subject: [PATCH 037/999] refactor(runtime-core): use Symbol.for for runtime Symbols --- packages/runtime-core/src/helpers/resolveAssets.ts | 2 +- packages/runtime-core/src/helpers/useSsrContext.ts | 2 +- packages/runtime-core/src/vnode.ts | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/runtime-core/src/helpers/resolveAssets.ts b/packages/runtime-core/src/helpers/resolveAssets.ts index 214c4f446b3..3aedcee47ee 100644 --- a/packages/runtime-core/src/helpers/resolveAssets.ts +++ b/packages/runtime-core/src/helpers/resolveAssets.ts @@ -26,7 +26,7 @@ export function resolveComponent( return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name } -export const NULL_DYNAMIC_COMPONENT = Symbol() +export const NULL_DYNAMIC_COMPONENT = Symbol.for('v-ndc') /** * @private diff --git a/packages/runtime-core/src/helpers/useSsrContext.ts b/packages/runtime-core/src/helpers/useSsrContext.ts index e48a69a40da..501a18e3bb5 100644 --- a/packages/runtime-core/src/helpers/useSsrContext.ts +++ b/packages/runtime-core/src/helpers/useSsrContext.ts @@ -1,7 +1,7 @@ import { inject } from '../apiInject' import { warn } from '../warning' -export const ssrContextKey = Symbol(__DEV__ ? `ssrContext` : ``) +export const ssrContextKey = Symbol.for('v-scx') export const useSSRContext = >() => { if (!__GLOBAL__) { diff --git a/packages/runtime-core/src/vnode.ts b/packages/runtime-core/src/vnode.ts index 83eedc4ccef..bed2b4f1eee 100644 --- a/packages/runtime-core/src/vnode.ts +++ b/packages/runtime-core/src/vnode.ts @@ -46,15 +46,15 @@ import { defineLegacyVNodeProperties } from './compat/renderFn' import { callWithAsyncErrorHandling, ErrorCodes } from './errorHandling' import { ComponentPublicInstance } from './componentPublicInstance' -export const Fragment = Symbol(__DEV__ ? 'Fragment' : undefined) as any as { +export const Fragment = Symbol.for('v-fgt') as any as { __isFragment: true new (): { $props: VNodeProps } } -export const Text = Symbol(__DEV__ ? 'Text' : undefined) -export const Comment = Symbol(__DEV__ ? 'Comment' : undefined) -export const Static = Symbol(__DEV__ ? 'Static' : undefined) +export const Text = Symbol.for('v-txt') +export const Comment = Symbol.for('v-cmt') +export const Static = Symbol.for('v-stc') export type VNodeTypes = | string From f597dc69e7b3a87ad0173d72df7831cd898df6b1 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 21 Feb 2023 20:44:00 +0800 Subject: [PATCH 038/999] chore: bump vitest + use threads --- package.json | 2 +- pnpm-lock.yaml | 115 ++++++++++++++++++++++++++++++++++++++++++++++- vitest.config.ts | 2 - 3 files changed, 114 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 2ae1a3816e4..0e2377e7329 100644 --- a/package.json +++ b/package.json @@ -103,6 +103,6 @@ "tslib": "^2.4.0", "typescript": "^4.9.0", "vite": "^4.0.4", - "vitest": "^0.28.2" + "vitest": "^0.28.5" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf7e281cda6..3f5ba686656 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,7 +52,7 @@ importers: tslib: ^2.4.0 typescript: ^4.9.0 vite: ^4.0.4 - vitest: ^0.28.2 + vitest: ^0.28.5 devDependencies: '@babel/parser': 7.20.15 '@babel/types': 7.20.7 @@ -102,7 +102,7 @@ importers: tslib: 2.5.0 typescript: 4.9.5 vite: 4.1.1_ghge5pqdvzsmxto52quo4r2say - vitest: 0.28.3_jsdom@21.1.0+terser@5.16.2 + vitest: 0.28.5_jsdom@21.1.0+terser@5.16.2 packages/compiler-core: specifiers: @@ -1334,6 +1334,14 @@ packages: chai: 4.3.7 dev: true + /@vitest/expect/0.28.5: + resolution: {integrity: sha512-gqTZwoUTwepwGIatnw4UKpQfnoyV0Z9Czn9+Lo2/jLIt4/AXLTn+oVZxlQ7Ng8bzcNkR+3DqLJ08kNr8jRmdNQ==} + dependencies: + '@vitest/spy': 0.28.5 + '@vitest/utils': 0.28.5 + chai: 4.3.7 + dev: true + /@vitest/runner/0.28.3: resolution: {integrity: sha512-P0qYbATaemy1midOLkw7qf8jraJszCoEvjQOSlseiXZyEDaZTZ50J+lolz2hWiWv6RwDu1iNseL9XLsG0Jm2KQ==} dependencies: @@ -1342,12 +1350,26 @@ packages: pathe: 1.1.0 dev: true + /@vitest/runner/0.28.5: + resolution: {integrity: sha512-NKkHtLB+FGjpp5KmneQjTcPLWPTDfB7ie+MmF1PnUBf/tGe2OjGxWyB62ySYZ25EYp9krR5Bw0YPLS/VWh1QiA==} + dependencies: + '@vitest/utils': 0.28.5 + p-limit: 4.0.0 + pathe: 1.1.0 + dev: true + /@vitest/spy/0.28.3: resolution: {integrity: sha512-jULA6suS6CCr9VZfr7/9x97pZ0hC55prnUNHNrg5/q16ARBY38RsjsfhuUXt6QOwvIN3BhSS0QqPzyh5Di8g6w==} dependencies: tinyspy: 1.0.2 dev: true + /@vitest/spy/0.28.5: + resolution: {integrity: sha512-7if6rsHQr9zbmvxN7h+gGh2L9eIIErgf8nSKYDlg07HHimCxp4H6I/X/DPXktVPPLQfiZ1Cw2cbDIx9fSqDjGw==} + dependencies: + tinyspy: 1.0.2 + dev: true + /@vitest/utils/0.28.3: resolution: {integrity: sha512-YHiQEHQqXyIbhDqETOJUKx9/psybF7SFFVCNfOvap0FvyUqbzTSDCa3S5lL4C0CLXkwVZttz9xknDoyHMguFRQ==} dependencies: @@ -1358,6 +1380,16 @@ packages: pretty-format: 27.5.1 dev: true + /@vitest/utils/0.28.5: + resolution: {integrity: sha512-UyZdYwdULlOa4LTUSwZ+Paz7nBHGTT72jKwdFSV4IjHF1xsokp+CabMdhjvVhYwkLfO88ylJT46YMilnkSARZA==} + dependencies: + cli-truncate: 3.1.0 + diff: 5.1.0 + loupe: 2.3.6 + picocolors: 1.0.0 + pretty-format: 27.5.1 + dev: true + /@vue/consolidate/0.17.3: resolution: {integrity: sha512-nl0SWcTMzaaTnJ5G6V8VlMDA1CVVrNnaQKF1aBZU3kXtjgU9jtHMsEAsgjoRUx+T0EVJk9TgbmxGhK3pOk22zw==} engines: {node: '>= 0.12.0'} @@ -6164,6 +6196,29 @@ packages: - terser dev: true + /vite-node/0.28.5_ghge5pqdvzsmxto52quo4r2say: + resolution: {integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==} + engines: {node: '>=v14.16.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + mlly: 1.1.0 + pathe: 1.1.0 + picocolors: 1.0.0 + source-map: 0.6.1 + source-map-support: 0.5.21 + vite: 4.1.1_ghge5pqdvzsmxto52quo4r2say + transitivePeerDependencies: + - '@types/node' + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vite/4.1.1: resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -6288,6 +6343,62 @@ packages: - terser dev: true + /vitest/0.28.5_jsdom@21.1.0+terser@5.16.2: + resolution: {integrity: sha512-pyCQ+wcAOX7mKMcBNkzDwEHRGqQvHUl0XnoHR+3Pb1hytAHISgSxv9h0gUiSiYtISXUU3rMrKiKzFYDrI6ZIHA==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.4 + '@types/chai-subset': 1.3.3 + '@types/node': 16.18.11 + '@vitest/expect': 0.28.5 + '@vitest/runner': 0.28.5 + '@vitest/spy': 0.28.5 + '@vitest/utils': 0.28.5 + acorn: 8.8.2 + acorn-walk: 8.2.0 + cac: 6.7.14 + chai: 4.3.7 + debug: 4.3.4 + jsdom: 21.1.0 + local-pkg: 0.4.3 + pathe: 1.1.0 + picocolors: 1.0.0 + source-map: 0.6.1 + std-env: 3.3.2 + strip-literal: 1.0.0 + tinybench: 2.3.1 + tinypool: 0.3.1 + tinyspy: 1.0.2 + vite: 4.1.1_ghge5pqdvzsmxto52quo4r2say + vite-node: 0.28.5_ghge5pqdvzsmxto52quo4r2say + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vlq/0.2.3: resolution: {integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==} dev: true diff --git a/vitest.config.ts b/vitest.config.ts index dbff2b0ed2f..2eab2be1865 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -22,8 +22,6 @@ export default defineConfig({ }, test: { globals: true, - // if not using threads, Netlify goes OOM when generating coverage report - threads: process.env.NETLIFY ? true : false, setupFiles: 'scripts/setupVitest.ts', environmentMatchGlobs: [ ['packages/{vue,vue-compat,runtime-dom}/**', 'jsdom'] From 8d2d5bf48a24dab44e5b03cb8fa0c5faa4b696e3 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 21 Feb 2023 21:59:41 +0800 Subject: [PATCH 039/999] fix(runtime-core): support `getCurrentInstance` across mutiple builds of Vue --- packages/runtime-core/src/component.ts | 66 ++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/packages/runtime-core/src/component.ts b/packages/runtime-core/src/component.ts index 768a47d9b6c..c75c185035e 100644 --- a/packages/runtime-core/src/component.ts +++ b/packages/runtime-core/src/component.ts @@ -56,7 +56,8 @@ import { makeMap, isPromise, ShapeFlags, - extend + extend, + getGlobalThis } from '@vue/shared' import { SuspenseBoundary } from './components/Suspense' import { CompilerOptions } from '@vue/compiler-core' @@ -565,14 +566,73 @@ export let currentInstance: ComponentInternalInstance | null = null export const getCurrentInstance: () => ComponentInternalInstance | null = () => currentInstance || currentRenderingInstance +type GlobalInstanceSetter = (( + instance: ComponentInternalInstance | null +) => void) & { version?: string } + +let globalCurrentInstanceSetters: GlobalInstanceSetter[] +let internalSetCurrentInstance: GlobalInstanceSetter +let hasWarnedDuplicatedVue = false + +/** + * The following makes getCurrentInstance() usage across multiple copies of Vue + * work. Some cases of how this can happen are summarized in #7590. In principle + * the duplication should be avoided, but in practice there are often cases + * where the user is unable to resolve on their own, especially in complicated + * SSR setups. + * + * Note this fix is technically incomplete, as we still rely on other singletons + * for effectScope and global reactive dependency maps. However, it does make + * some of the most common cases work. It also warns if the duplication is + * found during browser execution. + */ +if (__SSR__) { + const settersKey = '__VUE_INSTANCE_SETTERS__' + if (!(globalCurrentInstanceSetters = getGlobalThis()[settersKey])) { + globalCurrentInstanceSetters = getGlobalThis()[settersKey] = [] + } + globalCurrentInstanceSetters.push(i => (currentInstance = i)) + + if (__DEV__) { + globalCurrentInstanceSetters[ + globalCurrentInstanceSetters.length - 1 + ].version = __VERSION__ + } + + internalSetCurrentInstance = instance => { + if (globalCurrentInstanceSetters.length > 1) { + // eslint-disable-next-line no-restricted-globals + if (__DEV__ && !hasWarnedDuplicatedVue && typeof window !== 'undefined') { + warn( + `Mixed usage of duplicated Vue runtimes detected: ${globalCurrentInstanceSetters + .map(fn => fn.version) + .join(', ')}.\n` + + `This likely means there are multiple versions of Vue ` + + `duplicated in your dependency tree, and could lead to errors. ` + + `To avoid this warning, ensure that the all imports of Vue are resolving to ` + + `the same location on disk.` + ) + hasWarnedDuplicatedVue = true + } + globalCurrentInstanceSetters.forEach(s => s(instance)) + } else { + globalCurrentInstanceSetters[0](instance) + } + } +} else { + internalSetCurrentInstance = i => { + currentInstance = i + } +} + export const setCurrentInstance = (instance: ComponentInternalInstance) => { - currentInstance = instance + internalSetCurrentInstance(instance) instance.scope.on() } export const unsetCurrentInstance = () => { currentInstance && currentInstance.scope.off() - currentInstance = null + internalSetCurrentInstance(null) } const isBuiltInTag = /*#__PURE__*/ makeMap('slot,component') From c02d8d097df6b154121a0d1ef4013066c806d0c4 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 21 Feb 2023 22:43:45 +0800 Subject: [PATCH 040/999] chore: remove warnings due to potential false-positives --- packages/runtime-core/src/component.ts | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/packages/runtime-core/src/component.ts b/packages/runtime-core/src/component.ts index c75c185035e..3e184d352cf 100644 --- a/packages/runtime-core/src/component.ts +++ b/packages/runtime-core/src/component.ts @@ -570,9 +570,9 @@ type GlobalInstanceSetter = (( instance: ComponentInternalInstance | null ) => void) & { version?: string } -let globalCurrentInstanceSetters: GlobalInstanceSetter[] let internalSetCurrentInstance: GlobalInstanceSetter -let hasWarnedDuplicatedVue = false +let globalCurrentInstanceSetters: GlobalInstanceSetter[] +let settersKey = '__VUE_INSTANCE_SETTERS__' /** * The following makes getCurrentInstance() usage across multiple copies of Vue @@ -587,33 +587,12 @@ let hasWarnedDuplicatedVue = false * found during browser execution. */ if (__SSR__) { - const settersKey = '__VUE_INSTANCE_SETTERS__' if (!(globalCurrentInstanceSetters = getGlobalThis()[settersKey])) { globalCurrentInstanceSetters = getGlobalThis()[settersKey] = [] } globalCurrentInstanceSetters.push(i => (currentInstance = i)) - - if (__DEV__) { - globalCurrentInstanceSetters[ - globalCurrentInstanceSetters.length - 1 - ].version = __VERSION__ - } - internalSetCurrentInstance = instance => { if (globalCurrentInstanceSetters.length > 1) { - // eslint-disable-next-line no-restricted-globals - if (__DEV__ && !hasWarnedDuplicatedVue && typeof window !== 'undefined') { - warn( - `Mixed usage of duplicated Vue runtimes detected: ${globalCurrentInstanceSetters - .map(fn => fn.version) - .join(', ')}.\n` + - `This likely means there are multiple versions of Vue ` + - `duplicated in your dependency tree, and could lead to errors. ` + - `To avoid this warning, ensure that the all imports of Vue are resolving to ` + - `the same location on disk.` - ) - hasWarnedDuplicatedVue = true - } globalCurrentInstanceSetters.forEach(s => s(instance)) } else { globalCurrentInstanceSetters[0](instance) From 98f1934811d8c8774cd01d18fa36ea3ec68a0a54 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 21 Feb 2023 22:46:43 +0800 Subject: [PATCH 041/999] ci: only disable threads for gh --- vitest.config.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vitest.config.ts b/vitest.config.ts index 2eab2be1865..e5d5f59345f 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -22,6 +22,8 @@ export default defineConfig({ }, test: { globals: true, + // disable threads on GH actions to speed it up + threads: !process.env.GITHUB_ACTIONS, setupFiles: 'scripts/setupVitest.ts', environmentMatchGlobs: [ ['packages/{vue,vue-compat,runtime-dom}/**', 'jsdom'] From 29852dfa9c0810f7f3c3f39cca144258c3b385ba Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Fri, 17 Mar 2023 15:37:29 +0800 Subject: [PATCH 042/999] ci: release canary versions every week (#7860) * build: support `--canary` flag for canary releases Also adds `--skip-git` and `--skip-prompts` flags as they would be useful in ecosystem-ci * ci: add a workflow to do canary releases every Monday * build: allow manually releasing patch canary versions * chore: don't bother updating the README As far as I know, only Knighly modifies the README for nightly builds: Nuxt, React, and TypeScript all keep the README as-is for edge releases. So I think we can avoid the complexity here. * refactor: checkCIStatus -> getCIResult * chore: keep the canary major in sync with the repo major * fix: fix version rewriting * fix: `@vue/compat` is also a core package The directory name format of `@vue/compat` is different from other core packages, so it needs to be handled separately. Missing it didn't cause any problems because the `isCorePackage` function is only used to test dependency names, and `@vue/compat` isn't used as a dependency anywhere. But it's good to fix it anyway. --- .github/workflows/canary.yml | 30 +++++ scripts/release.js | 211 +++++++++++++++++++++++++---------- 2 files changed, 181 insertions(+), 60 deletions(-) create mode 100644 .github/workflows/canary.yml diff --git a/.github/workflows/canary.yml b/.github/workflows/canary.yml new file mode 100644 index 00000000000..80f28b9987a --- /dev/null +++ b/.github/workflows/canary.yml @@ -0,0 +1,30 @@ +name: canary release +on: + # Runs every Monday at 1 AM UTC (9:00 AM in Singapore) + schedule: + - cron: 0 1 * * MON + workflow_dispatch: + +jobs: + canary: + # prevents this action from running on forks + if: github.repository == 'vuejs/core' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Install pnpm + uses: pnpm/action-setup@v2 + + - name: Set node version to 18 + uses: actions/setup-node@v3 + with: + node-version: 18 + registry-url: 'https://registry.npmjs.org' + cache: 'pnpm' + + - run: pnpm install + + - run: pnpm release --canary + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/scripts/release.js b/scripts/release.js index d0ad2432cbd..38982919d64 100644 --- a/scripts/release.js +++ b/scripts/release.js @@ -17,10 +17,41 @@ const preId = args.preid || semver.prerelease(currentVersion)?.[0] const isDryRun = args.dry let skipTests = args.skipTests const skipBuild = args.skipBuild +const isCanary = args.canary +const skipPrompts = args.skipPrompts || args.canary +const skipGit = args.skipGit || args.canary + const packages = fs .readdirSync(path.resolve(__dirname, '../packages')) .filter(p => !p.endsWith('.ts') && !p.startsWith('.')) +const isCorePackage = pkgName => { + if (!pkgName) return + + if (pkgName === 'vue' || pkgName === '@vue/compat') { + return true + } + + return ( + pkgName.startsWith('@vue') && + packages.includes(pkgName.replace(/^@vue\//, '')) + ) +} + +const renamePackageToCanary = pkgName => { + if (pkgName === 'vue') { + return '@vue/canary' + } + + if (isCorePackage(pkgName)) { + return `${pkgName}-canary` + } + + return pkgName +} + +const keepThePackageName = pkgName => pkgName + const skippedPackages = [] const versionIncrements = [ @@ -42,6 +73,40 @@ const step = msg => console.log(chalk.cyan(msg)) async function main() { let targetVersion = args._[0] + if (isCanary) { + // The canary version string format is `3.yyyyMMdd.0`. + // Use UTC date so that it's consistent across CI and maintainers' machines + const date = new Date() + const yyyy = date.getUTCFullYear() + const MM = (date.getUTCMonth() + 1).toString().padStart(2, '0') + const dd = date.getUTCDate().toString().padStart(2, '0') + + const major = semver.major(currentVersion) + const minor = `${yyyy}${MM}${dd}` + const patch = 0 + let canaryVersion = `${major}.${minor}.${patch}` + + // check the registry to avoid version collision + // in case we need to publish more than one canary versions in a day + try { + const pkgName = renamePackageToCanary('vue') + const { stdout } = await run( + 'pnpm', + ['view', `${pkgName}@~${canaryVersion}`, 'version', '--json'], + { stdio: 'pipe' } + ) + const versions = JSON.parse(stdout) + const latestSameDayPatch = /** @type {string} */ ( + semver.maxSatisfying(versions, `~${canaryVersion}`) + ) + canaryVersion = /** @type {string} */ ( + semver.inc(latestSameDayPatch, 'patch') + ) + } catch (e) {} + + targetVersion = canaryVersion + } + if (!targetVersion) { // no explicit version, offer suggestions // @ts-ignore @@ -70,40 +135,39 @@ async function main() { throw new Error(`invalid target version: ${targetVersion}`) } - // @ts-ignore - const { yes: confirmRelease } = await prompt({ - type: 'confirm', - name: 'yes', - message: `Releasing v${targetVersion}. Confirm?` - }) - - if (!confirmRelease) { - return - } - - step('Checking CI status for HEAD...') - let isCIPassed = true - try { - const { stdout: sha } = await execa('git', ['rev-parse', 'HEAD']) - const res = await fetch( - `https://api.github.com/repos/vuejs/core/actions/runs?head_sha=${sha}` + - `&status=success&exclude_pull_requests=true` + if (skipPrompts) { + step( + isCanary + ? `Releasing canary version v${targetVersion}...` + : `Releasing v${targetVersion}...` ) - const data = await res.json() - isCIPassed = data.workflow_runs.length > 0 - } catch (e) { - isCIPassed = false - } - - if (isCIPassed) { + } else { // @ts-ignore - const { yes: promptSkipTests } = await prompt({ + const { yes: confirmRelease } = await prompt({ type: 'confirm', name: 'yes', - message: `CI for this commit passed. Skip local tests?` + message: `Releasing v${targetVersion}. Confirm?` }) - if (promptSkipTests) { - skipTests = true + + if (!confirmRelease) { + return + } + } + + if (!skipTests) { + step('Checking CI status for HEAD...') + let isCIPassed = await getCIResult() + skipTests ||= isCIPassed + + if (isCIPassed && !skipPrompts) { + // @ts-ignore + const { yes: promptSkipTests } = await prompt({ + type: 'confirm', + name: 'yes', + message: `CI for this commit passed. Skip local tests?` + }) + + skipTests = promptSkipTests } } @@ -120,7 +184,10 @@ async function main() { // update all package versions and inter-dependencies step('\nUpdating cross dependencies...') - updateVersions(targetVersion) + updateVersions( + targetVersion, + isCanary ? renamePackageToCanary : keepThePackageName + ) // build all packages with types step('\nBuilding all packages...') @@ -137,29 +204,36 @@ async function main() { await run(`pnpm`, ['run', 'changelog']) // update pnpm-lock.yaml - step('\nUpdating lockfile...') - await run(`pnpm`, ['install', '--prefer-offline']) - - const { stdout } = await run('git', ['diff'], { stdio: 'pipe' }) - if (stdout) { - step('\nCommitting changes...') - await runIfNotDry('git', ['add', '-A']) - await runIfNotDry('git', ['commit', '-m', `release: v${targetVersion}`]) - } else { - console.log('No changes to commit.') + // skipped during canary release because the package names changed and installing with `workspace:*` would fail + if (!isCanary) { + step('\nUpdating lockfile...') + await run(`pnpm`, ['install', '--prefer-offline']) + } + + if (!skipGit) { + const { stdout } = await run('git', ['diff'], { stdio: 'pipe' }) + if (stdout) { + step('\nCommitting changes...') + await runIfNotDry('git', ['add', '-A']) + await runIfNotDry('git', ['commit', '-m', `release: v${targetVersion}`]) + } else { + console.log('No changes to commit.') + } } // publish packages step('\nPublishing packages...') for (const pkg of packages) { - await publishPackage(pkg, targetVersion, runIfNotDry) + await publishPackage(pkg, targetVersion) } // push to GitHub - step('\nPushing to GitHub...') - await runIfNotDry('git', ['tag', `v${targetVersion}`]) - await runIfNotDry('git', ['push', 'origin', `refs/tags/v${targetVersion}`]) - await runIfNotDry('git', ['push']) + if (!skipGit) { + step('\nPushing to GitHub...') + await runIfNotDry('git', ['tag', `v${targetVersion}`]) + await runIfNotDry('git', ['push', 'origin', `refs/tags/v${targetVersion}`]) + await runIfNotDry('git', ['push']) + } if (isDryRun) { console.log(`\nDry run finished - run git diff to see package changes.`) @@ -177,42 +251,58 @@ async function main() { console.log() } -function updateVersions(version) { +async function getCIResult() { + try { + const { stdout: sha } = await execa('git', ['rev-parse', 'HEAD']) + const res = await fetch( + `https://api.github.com/repos/vuejs/core/actions/runs?head_sha=${sha}` + + `&status=success&exclude_pull_requests=true` + ) + const data = await res.json() + return data.workflow_runs.length > 0 + } catch (e) { + return false + } +} + +function updateVersions(version, getNewPackageName = keepThePackageName) { // 1. update root package.json - updatePackage(path.resolve(__dirname, '..'), version) + updatePackage(path.resolve(__dirname, '..'), version, getNewPackageName) // 2. update all packages - packages.forEach(p => updatePackage(getPkgRoot(p), version)) + packages.forEach(p => + updatePackage(getPkgRoot(p), version, getNewPackageName) + ) } -function updatePackage(pkgRoot, version) { +function updatePackage(pkgRoot, version, getNewPackageName) { const pkgPath = path.resolve(pkgRoot, 'package.json') const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8')) + pkg.name = getNewPackageName(pkg.name) pkg.version = version - updateDeps(pkg, 'dependencies', version) - updateDeps(pkg, 'peerDependencies', version) + updateDeps(pkg, 'dependencies', version, getNewPackageName) + updateDeps(pkg, 'peerDependencies', version, getNewPackageName) fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n') } -function updateDeps(pkg, depType, version) { +function updateDeps(pkg, depType, version, getNewPackageName) { const deps = pkg[depType] if (!deps) return Object.keys(deps).forEach(dep => { if (deps[dep] === 'workspace:*') { return } - if ( - dep === 'vue' || - (dep.startsWith('@vue') && packages.includes(dep.replace(/^@vue\//, ''))) - ) { + if (isCorePackage(dep)) { + const newName = getNewPackageName(dep) + const newVersion = newName === dep ? version : `npm:${newName}@${version}` console.log( - chalk.yellow(`${pkg.name} -> ${depType} -> ${dep}@${version}`) + chalk.yellow(`${pkg.name} -> ${depType} -> ${dep}@${newVersion}`) ) - deps[dep] = version + deps[dep] = newVersion } }) } -async function publishPackage(pkgName, version, runIfNotDry) { +async function publishPackage(pkgName, version) { if (skippedPackages.includes(pkgName)) { return } @@ -246,7 +336,8 @@ async function publishPackage(pkgName, version, runIfNotDry) { version, ...(releaseTag ? ['--tag', releaseTag] : []), '--access', - 'public' + 'public', + ...(skipGit ? ['--no-commit-hooks', '--no-git-tag-version'] : []) ], { cwd: pkgRoot, From 650f5c26f464505d9e865bdb0eafb24350859528 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Fri, 17 Mar 2023 16:47:48 +0800 Subject: [PATCH 043/999] build: fix canary bundling issues (#7907) 1. correct the rollup config after the package name changed 2. fix the same-day patch version bump of canary releases --- rollup.config.js | 8 ++++++-- scripts/release.js | 11 +++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/rollup.config.js b/rollup.config.js index 34a5ac62a3d..7645a0221ed 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -102,7 +102,8 @@ function createConfig(format, output, plugins = []) { const isServerRenderer = name === 'server-renderer' const isNodeBuild = format === 'cjs' const isGlobalBuild = /global/.test(format) - const isCompatPackage = pkg.name === '@vue/compat' + const isCompatPackage = + pkg.name === '@vue/compat' || pkg.name === '@vue/compat-canary' const isCompatBuild = !!packageOptions.compat const isBrowserBuild = (isGlobalBuild || isBrowserESMBuild || isBundlerESMBuild) && @@ -240,7 +241,10 @@ function createConfig(format, output, plugins = []) { // we are bundling forked consolidate.js in compiler-sfc which dynamically // requires a ton of template engines which should be ignored. let cjsIgnores = [] - if (pkg.name === '@vue/compiler-sfc') { + if ( + pkg.name === '@vue/compiler-sfc' || + pkg.name === '@vue/compiler-sfc-canary' + ) { cjsIgnores = [ ...Object.keys(consolidatePkg.devDependencies), 'vm', diff --git a/scripts/release.js b/scripts/release.js index 38982919d64..55e01251e9d 100644 --- a/scripts/release.js +++ b/scripts/release.js @@ -95,14 +95,21 @@ async function main() { ['view', `${pkgName}@~${canaryVersion}`, 'version', '--json'], { stdio: 'pipe' } ) - const versions = JSON.parse(stdout) + let versions = JSON.parse(stdout) + versions = Array.isArray(versions) ? versions : [versions] const latestSameDayPatch = /** @type {string} */ ( semver.maxSatisfying(versions, `~${canaryVersion}`) ) canaryVersion = /** @type {string} */ ( semver.inc(latestSameDayPatch, 'patch') ) - } catch (e) {} + } catch (e) { + if (/E404/.test(e.message)) { + // the first patch version on that day + } else { + throw e + } + } targetVersion = canaryVersion } From aac163110facbf7374cf335c3d01cd4c5dd26c8d Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 23 Mar 2023 16:30:42 +0800 Subject: [PATCH 044/999] refactor: remove circular dependencies in compiler --- packages/compiler-core/src/ast.ts | 27 ++- packages/compiler-core/src/codegen.ts | 6 +- .../src/compat/transformFilter.ts | 11 +- packages/compiler-core/src/transform.ts | 7 +- .../src/transforms/hoistStatic.ts | 6 +- packages/compiler-core/src/transforms/vFor.ts | 6 +- packages/compiler-core/src/transforms/vIf.ts | 8 +- .../compiler-core/src/transforms/vMemo.ts | 5 +- packages/compiler-core/src/utils.ts | 27 +-- packages/shared/src/general.ts | 183 +++++++++++++++++ packages/shared/src/index.ts | 187 +----------------- packages/shared/src/looseEqual.ts | 2 +- packages/shared/src/normalizeProp.ts | 2 +- packages/shared/src/toDisplayString.ts | 2 +- 14 files changed, 240 insertions(+), 239 deletions(-) create mode 100644 packages/shared/src/general.ts diff --git a/packages/compiler-core/src/ast.ts b/packages/compiler-core/src/ast.ts index 457a9057633..515083c336a 100644 --- a/packages/compiler-core/src/ast.ts +++ b/packages/compiler-core/src/ast.ts @@ -7,11 +7,14 @@ import { OPEN_BLOCK, FRAGMENT, WITH_DIRECTIVES, - WITH_MEMO + WITH_MEMO, + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_BLOCK, + CREATE_ELEMENT_BLOCK } from './runtimeHelpers' import { PropsExpression } from './transforms/transformElement' import { ImportItem, TransformContext } from './transform' -import { getVNodeBlockHelper, getVNodeHelper } from './utils' // Vue template is a platform-agnostic superset of HTML (syntax only). // More namespaces like SVG and MathML are declared by platform specific @@ -810,3 +813,23 @@ export function createReturnStatement( loc: locStub } } + +export function getVNodeHelper(ssr: boolean, isComponent: boolean) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE +} + +export function getVNodeBlockHelper(ssr: boolean, isComponent: boolean) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK +} + +export function convertToBlock( + node: VNodeCall, + { helper, removeHelper, inSSR }: TransformContext +) { + if (!node.isBlock) { + node.isBlock = true + removeHelper(getVNodeHelper(inSSR, node.isComponent)) + helper(OPEN_BLOCK) + helper(getVNodeBlockHelper(inSSR, node.isComponent)) + } +} diff --git a/packages/compiler-core/src/codegen.ts b/packages/compiler-core/src/codegen.ts index dce58737735..e8da0a4cb41 100644 --- a/packages/compiler-core/src/codegen.ts +++ b/packages/compiler-core/src/codegen.ts @@ -24,14 +24,14 @@ import { AssignmentExpression, ReturnStatement, VNodeCall, - SequenceExpression + SequenceExpression, + getVNodeBlockHelper, + getVNodeHelper } from './ast' import { SourceMapGenerator, RawSourceMap } from 'source-map' import { advancePositionWithMutation, assert, - getVNodeBlockHelper, - getVNodeHelper, isSimpleIdentifier, toValidAssetId } from './utils' diff --git a/packages/compiler-core/src/compat/transformFilter.ts b/packages/compiler-core/src/compat/transformFilter.ts index 8eaa81eb3f1..77331db4d80 100644 --- a/packages/compiler-core/src/compat/transformFilter.ts +++ b/packages/compiler-core/src/compat/transformFilter.ts @@ -1,19 +1,18 @@ import { RESOLVE_FILTER } from '../runtimeHelpers' import { + ExpressionNode, AttributeNode, DirectiveNode, - NodeTransform, NodeTypes, - SimpleExpressionNode, - toValidAssetId, - TransformContext -} from '@vue/compiler-core' + SimpleExpressionNode +} from '../ast' import { CompilerDeprecationTypes, isCompatEnabled, warnDeprecation } from './compatConfig' -import { ExpressionNode } from '../ast' +import { NodeTransform, TransformContext } from '../transform' +import { toValidAssetId } from '../utils' const validDivisionCharRE = /[\w).+\-_$\]]/ diff --git a/packages/compiler-core/src/transform.ts b/packages/compiler-core/src/transform.ts index 3cb3e6bf01f..4d9e8c6ed49 100644 --- a/packages/compiler-core/src/transform.ts +++ b/packages/compiler-core/src/transform.ts @@ -17,7 +17,8 @@ import { TemplateLiteral, createVNodeCall, ConstantTypes, - ArrayExpression + ArrayExpression, + convertToBlock } from './ast' import { isString, @@ -36,7 +37,7 @@ import { helperNameMap, CREATE_COMMENT } from './runtimeHelpers' -import { isVSlot, makeBlock } from './utils' +import { isVSlot } from './utils' import { hoistStatic, isSingleElementRoot } from './transforms/hoistStatic' import { CompilerCompatOptions } from './compat/compatConfig' @@ -348,7 +349,7 @@ function createRootCodegen(root: RootNode, context: TransformContext) { // SimpleExpressionNode const codegenNode = child.codegenNode if (codegenNode.type === NodeTypes.VNODE_CALL) { - makeBlock(codegenNode, context) + convertToBlock(codegenNode, context) } root.codegenNode = codegenNode } else { diff --git a/packages/compiler-core/src/transforms/hoistStatic.ts b/packages/compiler-core/src/transforms/hoistStatic.ts index b2b7f871c0a..5526163c6f9 100644 --- a/packages/compiler-core/src/transforms/hoistStatic.ts +++ b/packages/compiler-core/src/transforms/hoistStatic.ts @@ -12,11 +12,13 @@ import { ParentNode, JSChildNode, CallExpression, - createArrayExpression + createArrayExpression, + getVNodeBlockHelper, + getVNodeHelper } from '../ast' import { TransformContext } from '../transform' import { PatchFlags, isString, isSymbol, isArray } from '@vue/shared' -import { getVNodeBlockHelper, getVNodeHelper, isSlotOutlet } from '../utils' +import { isSlotOutlet } from '../utils' import { OPEN_BLOCK, GUARD_REACTIVE_PROPS, diff --git a/packages/compiler-core/src/transforms/vFor.ts b/packages/compiler-core/src/transforms/vFor.ts index e72c64c1a58..a44532c0d58 100644 --- a/packages/compiler-core/src/transforms/vFor.ts +++ b/packages/compiler-core/src/transforms/vFor.ts @@ -26,7 +26,9 @@ import { ForIteratorExpression, ConstantTypes, createBlockStatement, - createCompoundExpression + createCompoundExpression, + getVNodeBlockHelper, + getVNodeHelper } from '../ast' import { createCompilerError, ErrorCodes } from '../errors' import { @@ -35,8 +37,6 @@ import { isTemplateNode, isSlotOutlet, injectProp, - getVNodeBlockHelper, - getVNodeHelper, findDir } from '../utils' import { diff --git a/packages/compiler-core/src/transforms/vIf.ts b/packages/compiler-core/src/transforms/vIf.ts index 636d9dff673..4e1673561c5 100644 --- a/packages/compiler-core/src/transforms/vIf.ts +++ b/packages/compiler-core/src/transforms/vIf.ts @@ -23,7 +23,8 @@ import { locStub, CacheExpression, ConstantTypes, - MemoExpression + MemoExpression, + convertToBlock } from '../ast' import { createCompilerError, ErrorCodes } from '../errors' import { processExpression } from './transformExpression' @@ -34,10 +35,9 @@ import { findDir, findProp, isBuiltInType, - makeBlock + getMemoedVNodeCall } from '../utils' import { PatchFlags, PatchFlagNames } from '@vue/shared' -import { getMemoedVNodeCall } from '..' export const transformIf = createStructuralDirectiveTransform( /^(if|else|else-if)$/, @@ -301,7 +301,7 @@ function createChildrenCodegenNode( const vnodeCall = getMemoedVNodeCall(ret) // Change createVNode to createBlock. if (vnodeCall.type === NodeTypes.VNODE_CALL) { - makeBlock(vnodeCall, context) + convertToBlock(vnodeCall, context) } // inject branch key injectProp(vnodeCall, keyProperty, context) diff --git a/packages/compiler-core/src/transforms/vMemo.ts b/packages/compiler-core/src/transforms/vMemo.ts index 4e150875d98..c14f6ceb860 100644 --- a/packages/compiler-core/src/transforms/vMemo.ts +++ b/packages/compiler-core/src/transforms/vMemo.ts @@ -1,6 +1,7 @@ import { NodeTransform } from '../transform' -import { findDir, makeBlock } from '../utils' +import { findDir } from '../utils' import { + convertToBlock, createCallExpression, createFunctionExpression, ElementTypes, @@ -26,7 +27,7 @@ export const transformMemo: NodeTransform = (node, context) => { if (codegenNode && codegenNode.type === NodeTypes.VNODE_CALL) { // non-component sub tree should be turned into a block if (node.tagType !== ElementTypes.COMPONENT) { - makeBlock(codegenNode, context) + convertToBlock(codegenNode, context) } node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ dir.exp!, diff --git a/packages/compiler-core/src/utils.ts b/packages/compiler-core/src/utils.ts index 6a6b03a2ead..bd2882b09e2 100644 --- a/packages/compiler-core/src/utils.ts +++ b/packages/compiler-core/src/utils.ts @@ -35,12 +35,7 @@ import { TO_HANDLERS, NORMALIZE_PROPS, GUARD_REACTIVE_PROPS, - CREATE_BLOCK, - CREATE_ELEMENT_BLOCK, - CREATE_VNODE, - CREATE_ELEMENT_VNODE, - WITH_MEMO, - OPEN_BLOCK + WITH_MEMO } from './runtimeHelpers' import { isString, isObject, hyphenate, extend, NOOP } from '@vue/shared' import { PropsExpression } from './transforms/transformElement' @@ -331,14 +326,6 @@ export function isSlotOutlet( return node.type === NodeTypes.ELEMENT && node.tagType === ElementTypes.SLOT } -export function getVNodeHelper(ssr: boolean, isComponent: boolean) { - return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE -} - -export function getVNodeBlockHelper(ssr: boolean, isComponent: boolean) { - return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK -} - const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]) function getUnnormalizedProps( @@ -532,15 +519,3 @@ export function getMemoedVNodeCall(node: BlockCodegenNode | MemoExpression) { return node } } - -export function makeBlock( - node: VNodeCall, - { helper, removeHelper, inSSR }: TransformContext -) { - if (!node.isBlock) { - node.isBlock = true - removeHelper(getVNodeHelper(inSSR, node.isComponent)) - helper(OPEN_BLOCK) - helper(getVNodeBlockHelper(inSSR, node.isComponent)) - } -} diff --git a/packages/shared/src/general.ts b/packages/shared/src/general.ts new file mode 100644 index 00000000000..6efaf52524f --- /dev/null +++ b/packages/shared/src/general.ts @@ -0,0 +1,183 @@ +import { makeMap } from './makeMap' + +export const EMPTY_OBJ: { readonly [key: string]: any } = __DEV__ + ? Object.freeze({}) + : {} +export const EMPTY_ARR = __DEV__ ? Object.freeze([]) : [] + +export const NOOP = () => {} + +/** + * Always return false. + */ +export const NO = () => false + +const onRE = /^on[^a-z]/ +export const isOn = (key: string) => onRE.test(key) + +export const isModelListener = (key: string) => key.startsWith('onUpdate:') + +export const extend = Object.assign + +export const remove = (arr: T[], el: T) => { + const i = arr.indexOf(el) + if (i > -1) { + arr.splice(i, 1) + } +} + +const hasOwnProperty = Object.prototype.hasOwnProperty +export const hasOwn = ( + val: object, + key: string | symbol +): key is keyof typeof val => hasOwnProperty.call(val, key) + +export const isArray = Array.isArray +export const isMap = (val: unknown): val is Map => + toTypeString(val) === '[object Map]' +export const isSet = (val: unknown): val is Set => + toTypeString(val) === '[object Set]' + +export const isDate = (val: unknown): val is Date => + toTypeString(val) === '[object Date]' +export const isRegExp = (val: unknown): val is RegExp => + toTypeString(val) === '[object RegExp]' +export const isFunction = (val: unknown): val is Function => + typeof val === 'function' +export const isString = (val: unknown): val is string => typeof val === 'string' +export const isSymbol = (val: unknown): val is symbol => typeof val === 'symbol' +export const isObject = (val: unknown): val is Record => + val !== null && typeof val === 'object' + +export const isPromise = (val: unknown): val is Promise => { + return isObject(val) && isFunction(val.then) && isFunction(val.catch) +} + +export const objectToString = Object.prototype.toString +export const toTypeString = (value: unknown): string => + objectToString.call(value) + +export const toRawType = (value: unknown): string => { + // extract "RawType" from strings like "[object RawType]" + return toTypeString(value).slice(8, -1) +} + +export const isPlainObject = (val: unknown): val is object => + toTypeString(val) === '[object Object]' + +export const isIntegerKey = (key: unknown) => + isString(key) && + key !== 'NaN' && + key[0] !== '-' && + '' + parseInt(key, 10) === key + +export const isReservedProp = /*#__PURE__*/ makeMap( + // the leading comma is intentional so empty string "" is also included + ',key,ref,ref_for,ref_key,' + + 'onVnodeBeforeMount,onVnodeMounted,' + + 'onVnodeBeforeUpdate,onVnodeUpdated,' + + 'onVnodeBeforeUnmount,onVnodeUnmounted' +) + +export const isBuiltInDirective = /*#__PURE__*/ makeMap( + 'bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo' +) + +const cacheStringFunction = string>(fn: T): T => { + const cache: Record = Object.create(null) + return ((str: string) => { + const hit = cache[str] + return hit || (cache[str] = fn(str)) + }) as T +} + +const camelizeRE = /-(\w)/g +/** + * @private + */ +export const camelize = cacheStringFunction((str: string): string => { + return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : '')) +}) + +const hyphenateRE = /\B([A-Z])/g +/** + * @private + */ +export const hyphenate = cacheStringFunction((str: string) => + str.replace(hyphenateRE, '-$1').toLowerCase() +) + +/** + * @private + */ +export const capitalize = cacheStringFunction( + (str: string) => str.charAt(0).toUpperCase() + str.slice(1) +) + +/** + * @private + */ +export const toHandlerKey = cacheStringFunction((str: string) => + str ? `on${capitalize(str)}` : `` +) + +// compare whether a value has changed, accounting for NaN. +export const hasChanged = (value: any, oldValue: any): boolean => + !Object.is(value, oldValue) + +export const invokeArrayFns = (fns: Function[], arg?: any) => { + for (let i = 0; i < fns.length; i++) { + fns[i](arg) + } +} + +export const def = (obj: object, key: string | symbol, value: any) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + value + }) +} + +/** + * "123-foo" will be parsed to 123 + * This is used for the .number modifier in v-model + */ +export const looseToNumber = (val: any): any => { + const n = parseFloat(val) + return isNaN(n) ? val : n +} + +/** + * Only conerces number-like strings + * "123-foo" will be returned as-is + */ +export const toNumber = (val: any): any => { + const n = isString(val) ? Number(val) : NaN + return isNaN(n) ? val : n +} + +let _globalThis: any +export const getGlobalThis = (): any => { + return ( + _globalThis || + (_globalThis = + typeof globalThis !== 'undefined' + ? globalThis + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : typeof global !== 'undefined' + ? global + : {}) + ) +} + +const identRE = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/ + +export function genPropsAccessExp(name: string) { + return identRE.test(name) + ? `__props.${name}` + : `__props[${JSON.stringify(name)}]` +} diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index e3fcd86627b..2e7292f0eac 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -1,6 +1,5 @@ -import { makeMap } from './makeMap' - -export { makeMap } +export { makeMap } from './makeMap' +export * from './general' export * from './patchFlags' export * from './shapeFlags' export * from './slotFlags' @@ -13,185 +12,3 @@ export * from './escapeHtml' export * from './looseEqual' export * from './toDisplayString' export * from './typeUtils' - -export const EMPTY_OBJ: { readonly [key: string]: any } = __DEV__ - ? Object.freeze({}) - : {} -export const EMPTY_ARR = __DEV__ ? Object.freeze([]) : [] - -export const NOOP = () => {} - -/** - * Always return false. - */ -export const NO = () => false - -const onRE = /^on[^a-z]/ -export const isOn = (key: string) => onRE.test(key) - -export const isModelListener = (key: string) => key.startsWith('onUpdate:') - -export const extend = Object.assign - -export const remove = (arr: T[], el: T) => { - const i = arr.indexOf(el) - if (i > -1) { - arr.splice(i, 1) - } -} - -const hasOwnProperty = Object.prototype.hasOwnProperty -export const hasOwn = ( - val: object, - key: string | symbol -): key is keyof typeof val => hasOwnProperty.call(val, key) - -export const isArray = Array.isArray -export const isMap = (val: unknown): val is Map => - toTypeString(val) === '[object Map]' -export const isSet = (val: unknown): val is Set => - toTypeString(val) === '[object Set]' - -export const isDate = (val: unknown): val is Date => - toTypeString(val) === '[object Date]' -export const isRegExp = (val: unknown): val is RegExp => - toTypeString(val) === '[object RegExp]' -export const isFunction = (val: unknown): val is Function => - typeof val === 'function' -export const isString = (val: unknown): val is string => typeof val === 'string' -export const isSymbol = (val: unknown): val is symbol => typeof val === 'symbol' -export const isObject = (val: unknown): val is Record => - val !== null && typeof val === 'object' - -export const isPromise = (val: unknown): val is Promise => { - return isObject(val) && isFunction(val.then) && isFunction(val.catch) -} - -export const objectToString = Object.prototype.toString -export const toTypeString = (value: unknown): string => - objectToString.call(value) - -export const toRawType = (value: unknown): string => { - // extract "RawType" from strings like "[object RawType]" - return toTypeString(value).slice(8, -1) -} - -export const isPlainObject = (val: unknown): val is object => - toTypeString(val) === '[object Object]' - -export const isIntegerKey = (key: unknown) => - isString(key) && - key !== 'NaN' && - key[0] !== '-' && - '' + parseInt(key, 10) === key - -export const isReservedProp = /*#__PURE__*/ makeMap( - // the leading comma is intentional so empty string "" is also included - ',key,ref,ref_for,ref_key,' + - 'onVnodeBeforeMount,onVnodeMounted,' + - 'onVnodeBeforeUpdate,onVnodeUpdated,' + - 'onVnodeBeforeUnmount,onVnodeUnmounted' -) - -export const isBuiltInDirective = /*#__PURE__*/ makeMap( - 'bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo' -) - -const cacheStringFunction = string>(fn: T): T => { - const cache: Record = Object.create(null) - return ((str: string) => { - const hit = cache[str] - return hit || (cache[str] = fn(str)) - }) as T -} - -const camelizeRE = /-(\w)/g -/** - * @private - */ -export const camelize = cacheStringFunction((str: string): string => { - return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : '')) -}) - -const hyphenateRE = /\B([A-Z])/g -/** - * @private - */ -export const hyphenate = cacheStringFunction((str: string) => - str.replace(hyphenateRE, '-$1').toLowerCase() -) - -/** - * @private - */ -export const capitalize = cacheStringFunction( - (str: string) => str.charAt(0).toUpperCase() + str.slice(1) -) - -/** - * @private - */ -export const toHandlerKey = cacheStringFunction((str: string) => - str ? `on${capitalize(str)}` : `` -) - -// compare whether a value has changed, accounting for NaN. -export const hasChanged = (value: any, oldValue: any): boolean => - !Object.is(value, oldValue) - -export const invokeArrayFns = (fns: Function[], arg?: any) => { - for (let i = 0; i < fns.length; i++) { - fns[i](arg) - } -} - -export const def = (obj: object, key: string | symbol, value: any) => { - Object.defineProperty(obj, key, { - configurable: true, - enumerable: false, - value - }) -} - -/** - * "123-foo" will be parsed to 123 - * This is used for the .number modifier in v-model - */ -export const looseToNumber = (val: any): any => { - const n = parseFloat(val) - return isNaN(n) ? val : n -} - -/** - * Only conerces number-like strings - * "123-foo" will be returned as-is - */ -export const toNumber = (val: any): any => { - const n = isString(val) ? Number(val) : NaN - return isNaN(n) ? val : n -} - -let _globalThis: any -export const getGlobalThis = (): any => { - return ( - _globalThis || - (_globalThis = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}) - ) -} - -const identRE = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/ - -export function genPropsAccessExp(name: string) { - return identRE.test(name) - ? `__props.${name}` - : `__props[${JSON.stringify(name)}]` -} diff --git a/packages/shared/src/looseEqual.ts b/packages/shared/src/looseEqual.ts index 387150535c7..db869922fc1 100644 --- a/packages/shared/src/looseEqual.ts +++ b/packages/shared/src/looseEqual.ts @@ -1,4 +1,4 @@ -import { isArray, isDate, isObject, isSymbol } from './' +import { isArray, isDate, isObject, isSymbol } from './general' function looseCompareArrays(a: any[], b: any[]) { if (a.length !== b.length) return false diff --git a/packages/shared/src/normalizeProp.ts b/packages/shared/src/normalizeProp.ts index b6f822670fe..e6ef62a5c80 100644 --- a/packages/shared/src/normalizeProp.ts +++ b/packages/shared/src/normalizeProp.ts @@ -1,4 +1,4 @@ -import { isArray, isString, isObject, hyphenate } from './' +import { isArray, isString, isObject, hyphenate } from './general' export type NormalizedStyle = Record diff --git a/packages/shared/src/toDisplayString.ts b/packages/shared/src/toDisplayString.ts index efe3b7cc0e8..7f5818d9491 100644 --- a/packages/shared/src/toDisplayString.ts +++ b/packages/shared/src/toDisplayString.ts @@ -7,7 +7,7 @@ import { isSet, objectToString, isString -} from './index' +} from './general' /** * For converting {{ interpolation }} values to displayed strings. From 0587c70e9faa3278f648bab76ea03f4ca80f9233 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 23 Mar 2023 16:33:10 +0800 Subject: [PATCH 045/999] build: bump rollup, remove cjs re-exports hack --- package.json | 2 +- pnpm-lock.yaml | 88 ++++++++++++++++++++++++------------------------ rollup.config.js | 47 -------------------------- 3 files changed, 45 insertions(+), 92 deletions(-) diff --git a/package.json b/package.json index 0e2377e7329..7a241011828 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "prettier": "^2.7.1", "pug": "^3.0.1", "puppeteer": "^19.6.3", - "rollup": "~3.10.0", + "rollup": "^3.20.0", "rollup-plugin-dts": "^5.1.1", "rollup-plugin-esbuild": "^5.0.0", "rollup-plugin-node-builtins": "^2.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f5ba686656..e9030bd62a5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,7 +38,7 @@ importers: prettier: ^2.7.1 pug: ^3.0.1 puppeteer: ^19.6.3 - rollup: ~3.10.0 + rollup: ^3.20.0 rollup-plugin-dts: ^5.1.1 rollup-plugin-esbuild: ^5.0.0 rollup-plugin-node-builtins: ^2.1.2 @@ -57,12 +57,12 @@ importers: '@babel/parser': 7.20.15 '@babel/types': 7.20.7 '@esbuild-plugins/node-modules-polyfill': 0.1.4_esbuild@0.17.5 - '@rollup/plugin-alias': 4.0.3_rollup@3.10.1 - '@rollup/plugin-commonjs': 23.0.7_rollup@3.10.1 - '@rollup/plugin-json': 5.0.2_rollup@3.10.1 - '@rollup/plugin-node-resolve': 15.0.1_rollup@3.10.1 - '@rollup/plugin-replace': 5.0.2_rollup@3.10.1 - '@rollup/plugin-terser': 0.1.0_rollup@3.10.1 + '@rollup/plugin-alias': 4.0.3_rollup@3.20.0 + '@rollup/plugin-commonjs': 23.0.7_rollup@3.20.0 + '@rollup/plugin-json': 5.0.2_rollup@3.20.0 + '@rollup/plugin-node-resolve': 15.0.1_rollup@3.20.0 + '@rollup/plugin-replace': 5.0.2_rollup@3.20.0 + '@rollup/plugin-terser': 0.1.0_rollup@3.20.0 '@types/hash-sum': 1.0.0 '@types/node': 16.18.11 '@typescript-eslint/parser': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64 @@ -88,12 +88,12 @@ importers: prettier: 2.8.3 pug: 3.0.2 puppeteer: 19.6.3 - rollup: 3.10.1 - rollup-plugin-dts: 5.1.1_3md6k4iljipbt7fzll35epzd3m - rollup-plugin-esbuild: 5.0.0_vnogblvxo6egyqdp3slxc3bipy + rollup: 3.20.0 + rollup-plugin-dts: 5.1.1_pn5zetjg24cqcolt42iry5qj6a + rollup-plugin-esbuild: 5.0.0_iczynsknn7ny3sc5doji76wu6a rollup-plugin-node-builtins: 2.1.2 rollup-plugin-node-globals: 1.4.0 - rollup-plugin-polyfill-node: 0.11.0_rollup@3.10.1 + rollup-plugin-polyfill-node: 0.11.0_rollup@3.20.0 semver: 7.3.8 serve: 12.0.1 simple-git-hooks: 2.8.1 @@ -1023,7 +1023,7 @@ packages: fastq: 1.15.0 dev: true - /@rollup/plugin-alias/4.0.3_rollup@3.10.1: + /@rollup/plugin-alias/4.0.3_rollup@3.20.0: resolution: {integrity: sha512-ZuDWE1q4PQDhvm/zc5Prun8sBpLJy41DMptYrS6MhAy9s9kL/doN1613BWfEchGVfKxzliJ3BjbOPizXX38DbQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1032,11 +1032,11 @@ packages: rollup: optional: true dependencies: - rollup: 3.10.1 + rollup: 3.20.0 slash: 4.0.0 dev: true - /@rollup/plugin-commonjs/23.0.7_rollup@3.10.1: + /@rollup/plugin-commonjs/23.0.7_rollup@3.20.0: resolution: {integrity: sha512-hsSD5Qzyuat/swzrExGG5l7EuIlPhwTsT7KwKbSCQzIcJWjRxiimi/0tyMYY2bByitNb3i1p+6JWEDGa0NvT0Q==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1045,16 +1045,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.1 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.27.0 - rollup: 3.10.1 + rollup: 3.20.0 dev: true - /@rollup/plugin-inject/5.0.3_rollup@3.10.1: + /@rollup/plugin-inject/5.0.3_rollup@3.20.0: resolution: {integrity: sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1063,13 +1063,13 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.1 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 estree-walker: 2.0.2 magic-string: 0.27.0 - rollup: 3.10.1 + rollup: 3.20.0 dev: true - /@rollup/plugin-json/5.0.2_rollup@3.10.1: + /@rollup/plugin-json/5.0.2_rollup@3.20.0: resolution: {integrity: sha512-D1CoOT2wPvadWLhVcmpkDnesTzjhNIQRWLsc3fA49IFOP2Y84cFOOJ+nKGYedvXHKUsPeq07HR4hXpBBr+CHlA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1078,11 +1078,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.1 - rollup: 3.10.1 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 + rollup: 3.20.0 dev: true - /@rollup/plugin-node-resolve/15.0.1_rollup@3.10.1: + /@rollup/plugin-node-resolve/15.0.1_rollup@3.20.0: resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1091,16 +1091,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.1 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 '@types/resolve': 1.20.2 deepmerge: 4.3.0 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.1 - rollup: 3.10.1 + rollup: 3.20.0 dev: true - /@rollup/plugin-replace/5.0.2_rollup@3.10.1: + /@rollup/plugin-replace/5.0.2_rollup@3.20.0: resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1109,12 +1109,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.1 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 magic-string: 0.27.0 - rollup: 3.10.1 + rollup: 3.20.0 dev: true - /@rollup/plugin-terser/0.1.0_rollup@3.10.1: + /@rollup/plugin-terser/0.1.0_rollup@3.20.0: resolution: {integrity: sha512-N2KK+qUfHX2hBzVzM41UWGLrEmcjVC37spC8R3c9mt3oEDFKh3N2e12/lLp9aVSt86veR0TQiCNQXrm8C6aiUQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1123,11 +1123,11 @@ packages: rollup: optional: true dependencies: - rollup: 3.10.1 + rollup: 3.20.0 terser: 5.16.2 dev: true - /@rollup/pluginutils/5.0.2_rollup@3.10.1: + /@rollup/pluginutils/5.0.2_rollup@3.20.0: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1139,7 +1139,7 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.10.1 + rollup: 3.20.0 dev: true /@tootallnate/once/2.0.0: @@ -5334,7 +5334,7 @@ packages: inherits: 2.0.4 dev: true - /rollup-plugin-dts/5.1.1_3md6k4iljipbt7fzll35epzd3m: + /rollup-plugin-dts/5.1.1_pn5zetjg24cqcolt42iry5qj6a: resolution: {integrity: sha512-zpgo52XmnLg8w4k3MScinFHZK1+ro6r7uVe34fJ0Ee8AM45FvgvTuvfWWaRgIpA4pQ1BHJuu2ospncZhkcJVeA==} engines: {node: '>=v14'} peerDependencies: @@ -5342,26 +5342,26 @@ packages: typescript: ^4.1 dependencies: magic-string: 0.27.0 - rollup: 3.10.1 + rollup: 3.20.0 typescript: 4.9.5 optionalDependencies: '@babel/code-frame': 7.18.6 dev: true - /rollup-plugin-esbuild/5.0.0_vnogblvxo6egyqdp3slxc3bipy: + /rollup-plugin-esbuild/5.0.0_iczynsknn7ny3sc5doji76wu6a: resolution: {integrity: sha512-1cRIOHAPh8WQgdQQyyvFdeOdxuiyk+zB5zJ5+YOwrZP4cJ0MT3Fs48pQxrZeyZHcn+klFherytILVfE4aYrneg==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} peerDependencies: esbuild: '>=0.10.1' rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.1 + '@rollup/pluginutils': 5.0.2_rollup@3.20.0 debug: 4.3.4 es-module-lexer: 1.1.0 esbuild: 0.17.5 joycon: 3.1.1 jsonc-parser: 3.2.0 - rollup: 3.10.1 + rollup: 3.20.0 transitivePeerDependencies: - supports-color dev: true @@ -5401,13 +5401,13 @@ packages: rollup-plugin-inject: 3.0.2 dev: true - /rollup-plugin-polyfill-node/0.11.0_rollup@3.10.1: + /rollup-plugin-polyfill-node/0.11.0_rollup@3.20.0: resolution: {integrity: sha512-5t+qhq4LAQKQBgbPOQJEoxxGzU5b+zLfvzpUAGy9u0MCMs8y+mrjUAv8+xrkWdxnwXQwJtjmCMnA9lCflsMzNw==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 dependencies: - '@rollup/plugin-inject': 5.0.3_rollup@3.10.1 - rollup: 3.10.1 + '@rollup/plugin-inject': 5.0.3_rollup@3.20.0 + rollup: 3.20.0 dev: true /rollup-pluginutils/2.8.2: @@ -5416,8 +5416,8 @@ packages: estree-walker: 0.6.1 dev: true - /rollup/3.10.1: - resolution: {integrity: sha512-3Er+yel3bZbZX1g2kjVM+FW+RUWDxbG87fcqFM5/9HbPCTpbVp6JOLn7jlxnNlbu7s/N/uDA4EV/91E2gWnxzw==} + /rollup/3.20.0: + resolution: {integrity: sha512-YsIfrk80NqUDrxrjWPXUa7PWvAfegZEXHuPsEZg58fGCdjL1I9C1i/NaG+L+27kxxwkrG/QEDEQc8s/ynXWWGQ==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -6247,7 +6247,7 @@ packages: esbuild: 0.16.17 postcss: 8.4.21 resolve: 1.22.1 - rollup: 3.10.1 + rollup: 3.20.0 optionalDependencies: fsevents: 2.3.2 dev: true @@ -6281,7 +6281,7 @@ packages: esbuild: 0.16.17 postcss: 8.4.21 resolve: 1.22.1 - rollup: 3.10.1 + rollup: 3.20.0 terser: 5.16.2 optionalDependencies: fsevents: 2.3.2 diff --git a/rollup.config.js b/rollup.config.js index 7645a0221ed..21ee72b4ea3 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -270,10 +270,6 @@ function createConfig(format, output, plugins = []) { ] : [] - if (format === 'cjs') { - nodePlugins.push(cjsReExportsPatchPlugin()) - } - return nodePlugins } @@ -339,46 +335,3 @@ function createMinifiedConfig(format) { ] ) } - -// temporary patch for https://github.com/nodejs/cjs-module-lexer/issues/79 -// -// When importing a cjs module from esm, Node.js uses cjs-module-lexer to -// detect * re-exports from other packages. However, the detection logic is -// fragile and breaks when Rollup generates different code for the re-exports. -// We were locked on an old version of Rollup because of this. -// -// The latest versions of Node ships an updated version of cjs-module-lexer that -// has fixed https://github.com/nodejs/cjs-module-lexer/issues/38, however we -// still need to support older versions of Node that does not have the latest -// version of cjs-module-lexer (Node < 14.18) -// -// At the same time, we want to upgrade to Rollup 3 so we are not forever locked -// on an old version of Rollup. -// -// What this patch does: -// 1. Rewrite the for...in loop to Object.keys() so cjs-module-lexer can find it -// The for...in loop is only used when output.externalLiveBindings is set to -// false, and we do want to set it to false to avoid perf costs during SSR. -// 2. Also remove exports.hasOwnProperty check, which breaks the detection in -// Node.js versions that -// -// TODO in the future, we should no longer rely on this if we inline all deps -// in the main `vue` package. -function cjsReExportsPatchPlugin() { - const matcher = - /for \(var k in (\w+)\) {(\s+if \(k !== 'default') && !exports.hasOwnProperty\(k\)(\) exports\[k\] = (?:\w+)\[k\];\s+)}/ - return { - name: 'patch-cjs-re-exports', - renderChunk(code, _, options) { - if (matcher.test(code)) { - return code.replace(matcher, (_, r1, r2, r3) => { - return `Object.keys(${r1}).forEach(function(k) {${r2}${r3}});` - }) - } else if (options.file.endsWith('packages/vue/dist/vue.cjs.js')) { - // make sure we don't accidentally miss the rewrite in case Rollup - // changes the output again. - throw new Error('cjs build re-exports rewrite failed.') - } - } - } -} From e60ebd07a4eaf2fd27ca63cb1bd7fdf88ecc84b2 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 23 Mar 2023 16:36:33 +0800 Subject: [PATCH 046/999] chore: bump vite & vitest --- package.json | 6 +- .../__snapshots__/codegen.spec.ts.snap | 2 +- .../__snapshots__/compile.spec.ts.snap | 2 +- .../__snapshots__/parse.spec.ts.snap | 2 +- .../__snapshots__/scopeId.spec.ts.snap | 2 +- .../__snapshots__/hoistStatic.spec.ts.snap | 2 +- .../transformExpressions.spec.ts.snap | 2 +- .../__snapshots__/transformText.spec.ts.snap | 2 +- .../__snapshots__/vFor.spec.ts.snap | 2 +- .../transforms/__snapshots__/vIf.spec.ts.snap | 2 +- .../__snapshots__/vMemo.spec.ts.snap | 2 +- .../__snapshots__/vModel.spec.ts.snap | 2 +- .../__snapshots__/vOnce.spec.ts.snap | 2 +- .../__snapshots__/vSlot.spec.ts.snap | 2 +- .../__snapshots__/index.spec.ts.snap | 2 +- .../__snapshots__/Transition.spec.ts.snap | 2 +- .../stringifyStatic.spec.ts.snap | 2 +- .../__snapshots__/vModel.spec.ts.snap | 2 +- .../__snapshots__/vShow.spec.ts.snap | 2 +- .../__snapshots__/compileScript.spec.ts.snap | 2 +- .../compileScriptPropsTransform.spec.ts.snap | 2 +- .../compileScriptRefTransform.spec.ts.snap | 2 +- .../compileTemplate.spec.ts.snap | 2 +- .../__snapshots__/cssVars.spec.ts.snap | 2 +- .../templateTransformAssetUrl.spec.ts.snap | 2 +- .../templateTransformSrcset.spec.ts.snap | 2 +- .../reactivityTransform.spec.ts.snap | 2 +- packages/sfc-playground/package.json | 4 +- .../src/download/template/package.json | 6 +- .../__snapshots__/codeframe.spec.ts.snap | 2 +- pnpm-lock.yaml | 450 +++--------------- 31 files changed, 88 insertions(+), 432 deletions(-) diff --git a/package.json b/package.json index 7a241011828..eb5defe0d52 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@types/hash-sum": "^1.0.0", "@types/node": "^16.4.7", "@typescript-eslint/parser": "^5.23.0", - "@vitest/coverage-istanbul": "^0.28.2", + "@vitest/coverage-istanbul": "^0.29.7", "@vue/consolidate": "0.17.3", "brotli": "^1.3.2", "chalk": "^4.1.0", @@ -102,7 +102,7 @@ "todomvc-app-css": "^2.3.0", "tslib": "^2.4.0", "typescript": "^4.9.0", - "vite": "^4.0.4", - "vitest": "^0.28.5" + "vite": "^4.2.0", + "vitest": "^0.29.7" } } diff --git a/packages/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap b/packages/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap index a2871d8669b..032d17e2646 100644 --- a/packages/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap +++ b/packages/compiler-core/__tests__/__snapshots__/codegen.spec.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1 +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`compiler: codegen > ArrayExpression 1`] = ` " diff --git a/packages/compiler-core/__tests__/__snapshots__/compile.spec.ts.snap b/packages/compiler-core/__tests__/__snapshots__/compile.spec.ts.snap index 1054453c53c..e8b2efba79e 100644 --- a/packages/compiler-core/__tests__/__snapshots__/compile.spec.ts.snap +++ b/packages/compiler-core/__tests__/__snapshots__/compile.spec.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1 +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`compiler: integration tests > function mode 1`] = ` "const _Vue = Vue diff --git a/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap b/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap index 81a6a8f1973..e4728a46104 100644 --- a/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap +++ b/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1 +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`compiler: parse > Errors > ABRUPT_CLOSING_OF_EMPTY_COMMENT > 1`] = ` { diff --git a/packages/compiler-core/__tests__/__snapshots__/scopeId.spec.ts.snap b/packages/compiler-core/__tests__/__snapshots__/scopeId.spec.ts.snap index b6a38484f59..b8cbf4a8773 100644 --- a/packages/compiler-core/__tests__/__snapshots__/scopeId.spec.ts.snap +++ b/packages/compiler-core/__tests__/__snapshots__/scopeId.spec.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1 +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`scopeId compiler support > should push scopeId for hoisted nodes 1`] = ` "import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \\"vue\\" diff --git a/packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap b/packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap index b972085a00f..e67694a9bf9 100644 --- a/packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap +++ b/packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1 +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`compiler: hoistStatic transform > hoist element with static key 1`] = ` "const _Vue = Vue diff --git a/packages/compiler-core/__tests__/transforms/__snapshots__/transformExpressions.spec.ts.snap b/packages/compiler-core/__tests__/transforms/__snapshots__/transformExpressions.spec.ts.snap index d12354ac7f0..c72e0229832 100644 --- a/packages/compiler-core/__tests__/transforms/__snapshots__/transformExpressions.spec.ts.snap +++ b/packages/compiler-core/__tests__/transforms/__snapshots__/transformExpressions.spec.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1 +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`compiler: expression transform > bindingMetadata > inline mode 1`] = ` "(_ctx, _cache) => { diff --git a/packages/compiler-core/__tests__/transforms/__snapshots__/transformText.spec.ts.snap b/packages/compiler-core/__tests__/transforms/__snapshots__/transformText.spec.ts.snap index a4ceae08a10..8e716acb83e 100644 --- a/packages/compiler-core/__tests__/transforms/__snapshots__/transformText.spec.ts.snap +++ b/packages/compiler-core/__tests__/transforms/__snapshots__/transformText.spec.ts.snap @@ -1,4 +1,4 @@ -// Vitest Snapshot v1 +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`compiler: transform text >