From 3be58c7d831f357e52475d07c529c2d7618141a5 Mon Sep 17 00:00:00 2001 From: Alexandre Stahmer <47224540+astahmer@users.noreply.github.com> Date: Wed, 24 Jan 2024 01:40:40 +0100 Subject: [PATCH] chore: add config changes in related hooks (#2078) --- packages/config/src/diff-config.ts | 12 +-- packages/node/src/builder.ts | 2 +- packages/node/src/codegen.ts | 2 +- packages/node/src/generate.ts | 2 +- packages/types/package.json | 1 + packages/types/src/artifact.ts | 7 ++ packages/types/src/hooks.ts | 7 +- packages/types/src/index.ts | 2 +- pnpm-lock.yaml | 130 ++++++++++------------------- 9 files changed, 64 insertions(+), 101 deletions(-) diff --git a/packages/config/src/diff-config.ts b/packages/config/src/diff-config.ts index 5c068237d..3b333c034 100644 --- a/packages/config/src/diff-config.ts +++ b/packages/config/src/diff-config.ts @@ -1,17 +1,13 @@ import { dashCase } from '@pandacss/shared' -import type { ArtifactId, Config } from '@pandacss/types' -import microdiff, { type Difference } from 'microdiff' +import type { ArtifactId, Config, DiffConfigResult } from '@pandacss/types' +import microdiff from 'microdiff' import { artifactMatchers } from './config-deps' -export interface DiffConfigResult { - hasConfigChanged: boolean - artifacts: Set - diffs: Difference[] -} - type ConfigOrFn = Config | (() => Config) const runIfFn = (fn: ConfigOrFn): Config => (typeof fn === 'function' ? fn() : fn) +export { type DiffConfigResult } + /** * Diff the two config objects and return the list of affected properties */ diff --git a/packages/node/src/builder.ts b/packages/node/src/builder.ts index 24d3116b4..b0de44524 100644 --- a/packages/node/src/builder.ts +++ b/packages/node/src/builder.ts @@ -70,7 +70,7 @@ export class Builder { // config change if (this.affecteds.hasConfigChanged) { logger.debug('builder', '⚙️ Config changed, reloading') - await ctx.hooks['config:change']?.({ config: ctx.config }) + await ctx.hooks['config:change']?.({ config: ctx.config, changes: this.affecteds }) return } diff --git a/packages/node/src/codegen.ts b/packages/node/src/codegen.ts index 9c9408566..9d72ff8b9 100644 --- a/packages/node/src/codegen.ts +++ b/packages/node/src/codegen.ts @@ -15,7 +15,7 @@ export async function codegen(ctx: PandaContext, ids?: ArtifactId[]) { const promises = ctx.getArtifacts(ids).map((artifact) => limit(() => ctx.output.write(artifact))) await Promise.allSettled(promises) - await ctx.hooks['codegen:done']?.() + await ctx.hooks['codegen:done']?.({ changed: ids }) return { box: createBox({ diff --git a/packages/node/src/generate.ts b/packages/node/src/generate.ts index dac1a61da..41094bc25 100644 --- a/packages/node/src/generate.ts +++ b/packages/node/src/generate.ts @@ -46,7 +46,7 @@ export async function generate(config: Config, configPath?: string) { } logger.info('config:change', 'Config changed, restarting...') - await ctx.hooks['config:change']?.({ config: ctx.config }) + await ctx.hooks['config:change']?.({ config: ctx.config, changes: affecteds }) return build(ctx, Array.from(affecteds.artifacts)) }) diff --git a/packages/types/package.json b/packages/types/package.json index c771d6a54..de4c8c4e1 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -33,6 +33,7 @@ "devDependencies": { "@pandacss/extractor": "workspace:*", "csstype": "3.1.3", + "microdiff": "^1.3.2", "ncp": "^2.0.0", "pkg-types": "1.0.3" } diff --git a/packages/types/src/artifact.ts b/packages/types/src/artifact.ts index b899e2b6b..1a0b81ee5 100644 --- a/packages/types/src/artifact.ts +++ b/packages/types/src/artifact.ts @@ -1,3 +1,4 @@ +import { type Difference } from 'microdiff' import type { Nullable } from './shared' export interface ArtifactContent { @@ -49,3 +50,9 @@ export interface ArtifactFilters { ids?: ArtifactId[] affecteds?: AffectedArtifacts } + +export interface DiffConfigResult { + hasConfigChanged: boolean + artifacts: Set + diffs: Difference[] +} diff --git a/packages/types/src/hooks.ts b/packages/types/src/hooks.ts index 9fe7ffa28..30de6d7f8 100644 --- a/packages/types/src/hooks.ts +++ b/packages/types/src/hooks.ts @@ -1,5 +1,6 @@ -import type { HooksApiInterface } from './hooks-api' +import type { ArtifactId, DiffConfigResult } from './artifact' import type { LoadConfigResult, UserConfig } from './config' +import type { HooksApiInterface } from './hooks-api' import type { ParserResultInterface } from './parser' type MaybeAsyncReturn = Promise | T @@ -17,7 +18,7 @@ export interface PandaHooks { /** * Called when the config file or one of its dependencies (imports) has changed. */ - 'config:change': (args: { config: UserConfig }) => MaybeAsyncReturn + 'config:change': (args: { config: UserConfig; changes: DiffConfigResult }) => MaybeAsyncReturn /** * Called after reading the file content but before parsing it. * You can use this hook to transform the file content to a tsx-friendly syntax so that Panda's parser can parse it. @@ -32,7 +33,7 @@ export interface PandaHooks { /** * Called after the codegen is completed */ - 'codegen:done': () => MaybeAsyncReturn + 'codegen:done': (args: { changed: ArtifactId[] | undefined }) => MaybeAsyncReturn /** * Called right before adding the design-system CSS (global, static, preflight, tokens, keyframes) to the final CSS * Called right before writing/injecting the final CSS (styles.css) that contains the design-system CSS and the parser CSS diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index 2adf98ab6..5da133065 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -1,10 +1,10 @@ -export type * from './hooks-api' export type * from './analyze-report' export type * from './artifact' export type * from './composition' export type * from './conditions' export type * from './config' export type * from './hooks' +export type * from './hooks-api' export type * from './parser' export type * from './parts' export type * from './pattern' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e64d0f5e0..752fabcfb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -697,6 +697,9 @@ importers: csstype: specifier: 3.1.3 version: 3.1.3 + microdiff: + specifier: ^1.3.2 + version: 1.3.2 ncp: specifier: ^2.0.0 version: 2.0.0 @@ -6234,16 +6237,6 @@ packages: requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@7.32.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 7.32.0 - eslint-visitor-keys: 3.4.3 - dev: false - /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -11422,7 +11415,7 @@ packages: resolution: {integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==} dev: false - /@typescript-eslint/eslint-plugin@5.61.0(@typescript-eslint/parser@5.61.0)(eslint@7.32.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -11434,12 +11427,12 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 5.61.0(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/parser': 5.61.0(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 5.61.0 - '@typescript-eslint/type-utils': 5.61.0(eslint@7.32.0)(typescript@5.3.3) - '@typescript-eslint/utils': 5.61.0(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 5.61.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.61.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 7.32.0 + eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 @@ -11509,7 +11502,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@5.61.0(eslint@7.32.0)(typescript@5.3.3): + /@typescript-eslint/parser@5.61.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -11523,7 +11516,7 @@ packages: '@typescript-eslint/types': 5.61.0 '@typescript-eslint/typescript-estree': 5.61.0(typescript@5.3.3) debug: 4.3.4 - eslint: 7.32.0 + eslint: 8.56.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -11592,7 +11585,7 @@ packages: '@typescript-eslint/visitor-keys': 6.7.4 dev: true - /@typescript-eslint/type-utils@5.61.0(eslint@7.32.0)(typescript@5.3.3): + /@typescript-eslint/type-utils@5.61.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -11603,9 +11596,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.61.0(typescript@5.3.3) - '@typescript-eslint/utils': 5.61.0(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.61.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 7.32.0 + eslint: 8.56.0 tsutils: 3.21.0(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -11728,19 +11721,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.61.0(eslint@7.32.0)(typescript@5.3.3): + /@typescript-eslint/utils@5.61.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@7.32.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.61.0 '@typescript-eslint/types': 5.61.0 '@typescript-eslint/typescript-estree': 5.61.0(typescript@5.3.3) - eslint: 7.32.0 + eslint: 8.56.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -14148,7 +14141,7 @@ packages: '@babel/core': 7.23.5 dev: true - /babel-eslint@10.1.0(eslint@7.32.0): + /babel-eslint@10.1.0(eslint@8.56.0): resolution: {integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==} engines: {node: '>=6'} deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. @@ -14159,7 +14152,7 @@ packages: '@babel/parser': 7.23.5 '@babel/traverse': 7.23.5 '@babel/types': 7.23.5 - eslint: 7.32.0 + eslint: 8.56.0 eslint-visitor-keys: 1.3.0 resolve: 1.22.8 transitivePeerDependencies: @@ -17532,16 +17525,16 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.61.0(@typescript-eslint/parser@5.61.0)(eslint@7.32.0)(typescript@5.3.3) - '@typescript-eslint/parser': 5.61.0(eslint@7.32.0)(typescript@5.3.3) - babel-eslint: 10.1.0(eslint@7.32.0) + '@typescript-eslint/eslint-plugin': 5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 5.61.0(eslint@8.56.0)(typescript@5.3.3) + babel-eslint: 10.1.0(eslint@8.56.0) confusing-browser-globals: 1.0.11 eslint: 7.32.0 - eslint-plugin-flowtype: 5.10.0(eslint@7.32.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.61.0)(eslint@7.32.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@7.32.0) - eslint-plugin-react: 7.32.2(eslint@7.32.0) - eslint-plugin-react-hooks: 4.6.0(eslint@7.32.0) + eslint-plugin-flowtype: 5.10.0(eslint@8.56.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.61.0)(eslint@8.56.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.56.0) + eslint-plugin-react: 7.32.2(eslint@8.56.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) typescript: 5.3.3 dev: false @@ -17609,7 +17602,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.9)(eslint@7.32.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -17630,9 +17623,9 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.61.0(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/parser': 5.61.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 7.32.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color @@ -17725,18 +17718,18 @@ packages: transitivePeerDependencies: - supports-color - /eslint-plugin-flowtype@5.10.0(eslint@7.32.0): + /eslint-plugin-flowtype@5.10.0(eslint@8.56.0): resolution: {integrity: sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: eslint: ^7.1.0 dependencies: - eslint: 7.32.0 + eslint: 8.56.0 lodash: 4.17.21 string-natural-compare: 3.0.1 dev: false - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.61.0)(eslint@7.32.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.61.0)(eslint@8.56.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -17746,15 +17739,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.61.0(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/parser': 5.61.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 7.32.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.9)(eslint@7.32.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) has: 1.0.3 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -17838,31 +17831,6 @@ packages: - eslint-import-resolver-webpack - supports-color - /eslint-plugin-jsx-a11y@6.7.1(eslint@7.32.0): - resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - '@babel/runtime': 7.23.2 - aria-query: 5.3.0 - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - ast-types-flow: 0.0.7 - axe-core: 4.7.2 - axobject-query: 3.2.1 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 7.32.0 - has: 1.0.3 - jsx-ast-utils: 3.3.4 - language-tags: 1.0.5 - minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.7 - semver: 6.3.1 - dev: false - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.54.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} @@ -17922,15 +17890,6 @@ packages: jsx-ast-utils: 3.3.4 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@7.32.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 7.32.0 - dev: false - /eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} @@ -17956,7 +17915,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-plugin-react@7.32.2(eslint@7.32.0): + /eslint-plugin-react@7.32.2(eslint@8.56.0): resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: @@ -17966,7 +17925,7 @@ packages: array.prototype.flatmap: 1.3.2 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 7.32.0 + eslint: 8.56.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.4 minimatch: 3.1.2 @@ -19384,8 +19343,8 @@ packages: '@parcel/core': 2.8.3 '@pmmmwh/react-refresh-webpack-plugin': 0.5.10(react-refresh@0.14.0)(webpack@5.87.0) '@types/http-proxy': 1.17.11 - '@typescript-eslint/eslint-plugin': 5.61.0(@typescript-eslint/parser@5.61.0)(eslint@7.32.0)(typescript@5.3.3) - '@typescript-eslint/parser': 5.61.0(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 5.61.0(eslint@8.56.0)(typescript@5.3.3) '@vercel/webpack-asset-relocator-loader': 1.7.3 acorn-loose: 8.3.0 acorn-walk: 8.2.0 @@ -19424,11 +19383,11 @@ packages: error-stack-parser: 2.1.4 eslint: 7.32.0 eslint-config-react-app: 6.0.0(@typescript-eslint/eslint-plugin@5.61.0)(@typescript-eslint/parser@5.61.0)(babel-eslint@10.1.0)(eslint-plugin-flowtype@5.10.0)(eslint-plugin-import@2.27.5)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.32.2)(eslint@7.32.0)(typescript@5.3.3) - eslint-plugin-flowtype: 5.10.0(eslint@7.32.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.61.0)(eslint@7.32.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@7.32.0) - eslint-plugin-react: 7.32.2(eslint@7.32.0) - eslint-plugin-react-hooks: 4.6.0(eslint@7.32.0) + eslint-plugin-flowtype: 5.10.0(eslint@8.56.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.61.0)(eslint@8.56.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.56.0) + eslint-plugin-react: 7.32.2(eslint@8.56.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) eslint-webpack-plugin: 2.7.0(eslint@7.32.0)(webpack@5.87.0) event-source-polyfill: 1.0.31 execa: 5.1.1 @@ -22835,7 +22794,6 @@ packages: /microdiff@1.3.2: resolution: {integrity: sha512-pKy60S2febliZIbwdfEQKTtL5bLNxOyiRRmD400gueYl9XcHyNGxzHSlJWn9IMHwYXT0yohPYL08+bGozVk8cQ==} - dev: false /micromark-core-commonmark@1.1.0: resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==}