diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 2d23c66ed6..bb0bf6aa23 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -78,11 +78,11 @@ jobs: - name: Build test assets working-directory: spec/dummy - run: yarn build:test + run: yarn run build:test - name: Run Playwright tests working-directory: spec/dummy - run: yarn test:e2e + run: yarn run test:e2e - uses: actions/upload-artifact@v4 if: always() diff --git a/.github/workflows/pro-test-package-and-gem.yml b/.github/workflows/pro-test-package-and-gem.yml index e7832e9180..9c9edd4cf7 100644 --- a/.github/workflows/pro-test-package-and-gem.yml +++ b/.github/workflows/pro-test-package-and-gem.yml @@ -218,29 +218,14 @@ jobs: path: react_on_rails_pro/node_modules key: v4-pro-package-node-modules-cache-${{ hashFiles('react_on_rails_pro/yarn.lock') }} - - name: Remove old webpack bundles - run: | - rm -rf spec/dummy/public/webpack - rm -rf spec/dummy/ssr-generated - - - id: get-sha - run: echo "sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT" - - - name: Restore test webpack bundles from cache - uses: actions/cache@v4 - with: - path: | - react_on_rails_pro/spec/dummy/public/webpack/test - react_on_rails_pro/spec/dummy/ssr-generated - key: v4-pro-dummy-app-webpack-bundle-${{ steps.get-sha.outputs.sha }} - - name: Install Node modules with Yarn for Pro package + working-directory: packages/react-on-rails-pro-node-renderer run: | sudo yarn global add yalc yarn install --frozen-lockfile --no-progress --no-emoji - name: Run JS unit tests for Pro package - run: yarn run nps test.ci + run: yarn workspace react-on-rails-pro-node-renderer run ci env: JEST_JUNIT_OUTPUT_DIR: ./jest JEST_JUNIT_ADD_FILE_ATTRIBUTE: "true" @@ -250,10 +235,10 @@ jobs: if: always() with: name: pro-jest-results - path: react_on_rails_pro/jest + path: packages/react-on-rails-pro-node-renderer/jest # RSpec tests for Pro package - rspec-package-specs: + rspec-gem-specs: needs: detect-changes if: | !( diff --git a/.prettierignore b/.prettierignore index d236d6b53c..3eaf38a92a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,6 +2,7 @@ node_modules/ package.json # Exclude pro package (has its own formatting) react_on_rails_pro/ +packages/react-on-rails-pro-node-renderer/tests/fixtures/projects tmp/ coverage/ **/app/assets/webpack/ diff --git a/knip.ts b/knip.ts index b61c2a7f8d..8fdaf8fa40 100644 --- a/knip.ts +++ b/knip.ts @@ -39,17 +39,6 @@ const config: KnipConfig = { // SWC transpiler dependencies used in dummy apps '@swc/core', 'swc-loader', - // Test dependencies used by child workspaces (packages/react-on-rails, packages/react-on-rails-pro) - '@testing-library/dom', - '@testing-library/jest-dom', - '@testing-library/react', - '@types/react-dom', - 'create-react-class', - 'jest-fetch-mock', - 'prop-types', - 'react', - 'react-dom', - 'redux', ], }, @@ -70,8 +59,7 @@ const config: KnipConfig = { entry: [ 'src/ReactOnRailsProNodeRenderer.ts!', 'src/default-node-renderer.ts!', - 'src/master.ts!', - 'src/worker.ts!', + 'src/integrations/*.ts!', ], project: ['src/**/*.[jt]s{x,}!', 'tests/**/*.[jt]s{x,}', '!lib/**'], ignore: [ @@ -84,11 +72,9 @@ const config: KnipConfig = { 'tests/httpRequestUtils.ts', ], ignoreDependencies: [ - // These are runtime dependencies needed for the package to work - // even though they may not be directly imported in the source - 'react-on-rails-pro', - // Dev dependencies used only in tests + // Optional dependencies used in integrations '@honeybadger-io/js', + '@sentry/*', ], }, @@ -125,11 +111,6 @@ const config: KnipConfig = { 'src/RSCRoute.tsx:RSCRouteProps', 'src/streamServerRenderedReactComponent.ts:StreamingTrackers', ], - ignoreDependencies: [ - // Test dependencies used only in tests - '@types/mock-fs', - 'mock-fs', - ], }, 'spec/dummy': { entry: [ @@ -192,18 +173,10 @@ const config: KnipConfig = { // Dependencies not detected in production mode (runtime injected or dynamic imports) '@babel/runtime', 'mini-css-extract-plugin', - 'css-loader', - 'sass', - 'sass-loader', - // Dependencies used dynamically by React on Rails - 'create-react-class', - 'react-helmet', - '@types/react-helmet', - 'react-redux', - 'react-router-dom', ], }, }, + ignoreExportsUsedInFile: true, }; export default config; diff --git a/package-scripts.yml b/package-scripts.yml index a174d37c26..152de95bca 100644 --- a/package-scripts.yml +++ b/package-scripts.yml @@ -1,4 +1,22 @@ scripts: + test: + default: + description: Run all JS tests + script: jest + ci: + description: Run all JS tests in CI mode + # https://circleci.com/docs/collect-test-data/#jest + script: jest --ci --runInBand --reporters=default --reporters=jest-junit + debug: + description: Debug all JS tests + script: ndb jest --runInBand + check: + description: Run all checks + script: nps lint && nps format.listDifferent && nps test && nps check-typescript + check-typescript: + description: Check for TypeScript errors + script: nps "build --noEmit" && tsc --project ../packages/react-on-rails-pro-node-renderer/tests + lint: description: Run all linters (eslint, tsc) script: nps eslint @@ -25,10 +43,10 @@ scripts: # 3. Check if the project is built now; # 4. If it failed, print an error message (still follow https://docs.npmjs.com/cli/v8/using-npm/scripts#best-practices). script: > - [ -f lib/ReactOnRails.full.js ] || + [ -f lib/ReactOnRails.full.js ] || [ -f lib/ReactOnRailsProNodeRenderer.js ] || (npm run build >/dev/null 2>&1 || true) && - [ -f lib/ReactOnRails.full.js ] || - { echo 'Building react-on-rails seems to have failed!'; } + [ -f lib/ReactOnRails.full.js ] || [ -f lib/ReactOnRailsProNodeRenderer.js ] || + { echo 'Building this package seems to have failed!'; } format: default: diff --git a/package.json b/package.json index 5375875a5e..9fc5b3cdbe 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@babel/preset-react": "^7.26.3", "@babel/preset-typescript": "^7.27.1", "@eslint/compat": "^1.2.7", + "@jest/globals": "^29.7.0", "@swc/core": "^1.15.0", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", @@ -66,10 +67,10 @@ "scripts": { "test": "yarn workspaces run test", "clean": "yarn workspaces run clean", - "start": "nps", + "start": "yarn run nps", "build": "yarn workspace react-on-rails run build && yarn workspace react-on-rails-pro run build && yarn workspace react-on-rails-pro-node-renderer run build", "build-watch": "yarn workspaces run build-watch", - "lint": "nps eslint", + "lint": "yarn run nps eslint", "lint:scss": "stylelint \"spec/dummy/app/assets/stylesheets/**/*.scss\" \"spec/dummy/client/**/*.scss\"", "check": "yarn run lint && yarn workspaces run check", "type-check": "yarn workspaces run type-check", diff --git a/packages/react-on-rails-pro-node-renderer/package.json b/packages/react-on-rails-pro-node-renderer/package.json index 4ca57441e7..e605037189 100644 --- a/packages/react-on-rails-pro-node-renderer/package.json +++ b/packages/react-on-rails-pro-node-renderer/package.json @@ -3,33 +3,24 @@ "version": "16.2.0-beta.11", "protocolVersion": "2.0.0", "description": "React on Rails Pro Node Renderer for server-side rendering", - "type": "module", - "main": "lib/ReactOnRailsProNodeRenderer.js", - "scripts": { - "build": "yarn run clean && tsc --project src", - "build-watch": "yarn run clean && tsc --project src --watch", - "clean": "rm -rf ./lib", - "test": "jest tests", - "type-check": "tsc --project src --noEmit --noErrorTruncation", - "prepack": "yarn run build", - "prepare": "yarn run build", - "prepublishOnly": "yarn run build", - "yalc:publish": "yalc publish", - "yalc": "yalc" + "directories": { + "doc": "docs" }, - "repository": { - "type": "git", - "url": "git+https://github.com/shakacode/react_on_rails.git" + "exports": { + ".": { + "types": "./lib/ReactOnRailsProNodeRenderer.d.ts", + "default": "./lib/ReactOnRailsProNodeRenderer.js" + }, + "./integrations/*": { + "types": "./lib/integrations/*.d.ts", + "default": "./lib/integrations/*.js" + }, + "./package.json": "./package.json" + }, + "resolutions": { + "sentry-testkit/body-parser": "npm:empty-npm-package@1.0.0", + "sentry-testkit/express": "npm:empty-npm-package@1.0.0" }, - "keywords": [ - "react", - "react-on-rails", - "node-renderer", - "server-side-rendering", - "ssr" - ], - "author": "justin.gordon@gmail.com", - "license": "UNLICENSED", "dependencies": { "@fastify/formbody": "^7.4.0 || ^8.0.2", "@fastify/multipart": "^8.3.1 || ^9.0.3", @@ -37,35 +28,36 @@ "fs-extra": "^11.2.0", "jsonwebtoken": "^9.0.2", "lockfile": "^1.0.4", - "pino": "^9.0.0", - "pino-pretty": "^13.0.0", - "react-on-rails": "16.2.0-beta.11", - "react-on-rails-pro": "16.2.0-beta.11" + "pino": "^9.0.0" }, "devDependencies": { + "@babel/core": "^7.26.10", + "@babel/eslint-parser": "^7.27.0", + "@babel/preset-react": "^7.26.3", "@honeybadger-io/js": "^6.10.1", - "@jest/globals": "^29.7.0", "@sentry/node": "^7.120.0", - "@sentry/types": "^7.120.0", - "@tsconfig/node14": "^14.1.2", "@types/fs-extra": "^11.0.4", + "@types/jest": "^29.5.12", "@types/jsonwebtoken": "^9.0.10", "@types/lockfile": "^1.0.4", - "@types/node": "^20.0.0", "@types/touch": "^3.1.5", + "babel-jest": "^29.7.0", "form-auto-content": "^3.2.1", "form-data": "^4.0.1", + "jsdom": "^16.5.0", "node-html-parser": "^7.0.1", + "nps": "^5.9.12", + "pino-pretty": "^13.0.0", + "react-on-rails": "./packages/react-on-rails", "redis": "^5.0.1", "sentry-testkit": "^5.0.6", - "touch": "^3.1.0" + "touch": "^3.1.0", + "typescript": "^5.4.3" }, "peerDependencies": { "@honeybadger-io/js": ">=4.0.0", "@sentry/node": ">=5.0.0 <9.0.0", - "@sentry/tracing": ">=5.0.0", - "react": ">= 16", - "react-dom": ">= 16" + "@sentry/tracing": ">=5.0.0" }, "peerDependenciesMeta": { "@honeybadger-io/js": { @@ -78,12 +70,60 @@ "optional": true } }, - "files": [ - "lib/**/*.js", - "lib/**/*.d.ts" + "scripts": { + "build": "yarn run clean && yarn run tsc --project src/tsconfig.json", + "build-watch": "yarn run clean && yarn run tsc --watch --project src/tsconfig.json", + "clean": "rm -rf ./lib", + "ci": "jest --ci --runInBand --reporters=default --reporters=jest-junit", + "developing": "nps node-renderer.debug", + "test": "jest tests", + "type-check": "yarn run tsc --noEmit --noErrorTruncation --project src/tsconfig.json", + "prepack": "nps build.prepack", + "prepare": "nps build.prepack", + "prepublishOnly": "yarn run build", + "yalc:publish": "yalc publish", + "yalc": "yalc" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/shakacode/react_on_rails.git" + }, + "keywords": [ + "react", + "webpack", + "JavaScript", + "Ruby", + "on", + "Rails" ], + "author": "justin@shakacode.com", + "license": "UNLICENSED", "bugs": { "url": "https://github.com/shakacode/react_on_rails/issues" }, - "homepage": "https://github.com/shakacode/react_on_rails#readme" + "homepage": "https://github.com/shakacode/react_on_rails/tree/master/packages/react-on-rails-pro-node-renderer#readme", + "jest": { + "clearMocks": true, + "moduleNameMapper": { + "^(\\.{1,2}/.*)\\.js$": "$1" + }, + "resetModules": true, + "resetMocks": true, + "roots": [ + "." + ], + "setupFiles": [ + "./tests/helper.ts" + ], + "testEnvironment": "node", + "transform": { + "^.+\\.[jt]sx?$": "babel-jest" + } + }, + "husky": { + "hooks": { + "pre-commit": "yalc check" + } + }, + "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/react_on_rails_pro/script/preinstall.js b/packages/react-on-rails-pro-node-renderer/script/preinstall.js similarity index 100% rename from react_on_rails_pro/script/preinstall.js rename to packages/react-on-rails-pro-node-renderer/script/preinstall.js diff --git a/packages/react-on-rails-pro-node-renderer/src/ReactOnRailsProNodeRenderer.ts b/packages/react-on-rails-pro-node-renderer/src/ReactOnRailsProNodeRenderer.ts index 2b5dbf34e1..08d109b409 100644 --- a/packages/react-on-rails-pro-node-renderer/src/ReactOnRailsProNodeRenderer.ts +++ b/packages/react-on-rails-pro-node-renderer/src/ReactOnRailsProNodeRenderer.ts @@ -1,5 +1,5 @@ import cluster from 'cluster'; -import fastifyPackageJson from 'fastify/package.json' with { type: 'json' }; +import fastifyPackageJson from 'fastify/package.json'; import { Config, buildConfig } from './shared/configBuilder.js'; const { version: fastifyVersion } = fastifyPackageJson; diff --git a/packages/react-on-rails-pro-node-renderer/src/integrations/api.ts b/packages/react-on-rails-pro-node-renderer/src/integrations/api.ts index 7ae579dbb0..8bb6954542 100644 --- a/packages/react-on-rails-pro-node-renderer/src/integrations/api.ts +++ b/packages/react-on-rails-pro-node-renderer/src/integrations/api.ts @@ -30,6 +30,9 @@ export { addNotifier, error, message, + Notifier, + ErrorNotifier, + MessageNotifier, } from '../shared/errorReporter.js'; export { setupTracing, diff --git a/packages/react-on-rails-pro-node-renderer/src/shared/licenseValidator.ts b/packages/react-on-rails-pro-node-renderer/src/shared/licenseValidator.ts index e0f6d49c21..54e6e2098f 100644 --- a/packages/react-on-rails-pro-node-renderer/src/shared/licenseValidator.ts +++ b/packages/react-on-rails-pro-node-renderer/src/shared/licenseValidator.ts @@ -230,6 +230,7 @@ export function getValidatedLicenseData(): LicenseData { * Checks if the current license is an evaluation/free license. * * @returns true if plan is not "paid" + * @public TODO: Remove this line when this function is actually used */ export function isEvaluation(): boolean { const data = getValidatedLicenseData(); @@ -241,6 +242,7 @@ export function isEvaluation(): boolean { * Returns remaining grace period days if license is expired but in grace period. * * @returns Number of days remaining, or undefined if not in grace period + * @public TODO: Remove this line when this function is actually used */ export function getGraceDaysRemaining(): number | undefined { // Ensure license is validated and cached @@ -252,6 +254,7 @@ export function getGraceDaysRemaining(): number | undefined { /** * Resets all cached validation state (primarily for testing). + * @public TODO: Remove this line when this function is actually used */ export function reset(): void { cachedLicenseData = undefined; diff --git a/packages/react-on-rails-pro-node-renderer/src/shared/packageJson.ts b/packages/react-on-rails-pro-node-renderer/src/shared/packageJson.ts index fc043f48f6..89c559afa6 100644 --- a/packages/react-on-rails-pro-node-renderer/src/shared/packageJson.ts +++ b/packages/react-on-rails-pro-node-renderer/src/shared/packageJson.ts @@ -1,3 +1,3 @@ -import packageJson from '../../package.json' with { type: 'json' }; +import packageJson from '../../package.json'; export default packageJson; diff --git a/packages/react-on-rails-pro-node-renderer/src/worker/vm.ts b/packages/react-on-rails-pro-node-renderer/src/worker/vm.ts index f82182bc2d..b8834e97a7 100644 --- a/packages/react-on-rails-pro-node-renderer/src/worker/vm.ts +++ b/packages/react-on-rails-pro-node-renderer/src/worker/vm.ts @@ -347,12 +347,16 @@ export async function buildVM(filePath: string) { return vmCreationPromise; } +/** @internal Used in tests */ export function resetVM() { // Clear all VM contexts vmContexts.clear(); } // Optional: Add a method to remove a specific VM if needed +/** + * @public TODO: Remove the line below when this function is actually used + */ export function removeVM(bundlePath: string) { vmContexts.delete(bundlePath); } diff --git a/packages/react-on-rails-pro-node-renderer/tests/concurrentHtmlStreaming.test.ts b/packages/react-on-rails-pro-node-renderer/tests/concurrentHtmlStreaming.test.ts index e3dc5a3500..17abd00884 100644 --- a/packages/react-on-rails-pro-node-renderer/tests/concurrentHtmlStreaming.test.ts +++ b/packages/react-on-rails-pro-node-renderer/tests/concurrentHtmlStreaming.test.ts @@ -2,8 +2,8 @@ import { randomUUID } from 'crypto'; import { createClient } from 'redis'; import parser from 'node-html-parser'; -// @ts-expect-error TODO: fix later -import { RSCPayloadChunk } from 'react-on-rails'; +// eslint-disable-next-line import/no-relative-packages +import { RSCPayloadChunk } from '../../react-on-rails/lib/types'; import buildApp from '../src/worker'; import config from './testingNodeRendererConfigs'; import { makeRequest } from './httpRequestUtils'; diff --git a/packages/react-on-rails-pro-node-renderer/tests/worker.test.ts b/packages/react-on-rails-pro-node-renderer/tests/worker.test.ts index cce0c66b08..a8e2fb1699 100644 --- a/packages/react-on-rails-pro-node-renderer/tests/worker.test.ts +++ b/packages/react-on-rails-pro-node-renderer/tests/worker.test.ts @@ -2,7 +2,8 @@ import formAutoContent from 'form-auto-content'; import fs from 'fs'; import querystring from 'querystring'; import { createReadStream } from 'fs-extra'; -import packageJson from 'react-on-rails-workspace/package.json'; +// eslint-disable-next-line import/no-relative-packages +import packageJson from '../../../package.json'; import worker, { disableHttp2 } from '../src/worker'; import { BUNDLE_TIMESTAMP, diff --git a/packages/react-on-rails-pro-node-renderer/tsconfig.json b/packages/react-on-rails-pro-node-renderer/tsconfig.json deleted file mode 100644 index cea8ab7f64..0000000000 --- a/packages/react-on-rails-pro-node-renderer/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src", - "composite": true - }, - "include": ["src/**/*"], - "exclude": ["node_modules", "lib", "tests"] -} diff --git a/packages/react-on-rails-pro/package.json b/packages/react-on-rails-pro/package.json index 841a97f35e..bec817b306 100644 --- a/packages/react-on-rails-pro/package.json +++ b/packages/react-on-rails-pro/package.json @@ -56,7 +56,7 @@ "./ServerComponentFetchError": "./lib/ServerComponentFetchError.js" }, "dependencies": { - "react-on-rails": "16.2.0-beta.11" + "react-on-rails": "./packages/react-on-rails" }, "peerDependencies": { "react": ">= 16", diff --git a/packages/react-on-rails-pro/yarn.lock b/packages/react-on-rails-pro/yarn.lock deleted file mode 100644 index dec509b9c9..0000000000 --- a/packages/react-on-rails-pro/yarn.lock +++ /dev/null @@ -1,8 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -react-on-rails@^16.1.0: - version "16.1.1" - resolved "https://registry.yarnpkg.com/react-on-rails/-/react-on-rails-16.1.1.tgz#bf5e752c44381252204482342ae5722d9f45f715" - integrity sha512-Ntw/4HSB/p9QJ1V2kc0aETzK0W0Vy0suSh0Ugs3Ctfso2ovIT2YUegJJyPtFzX9jUZSR6Q/tkmkgNgzASkO0pw== diff --git a/react_on_rails_pro/.prettierignore b/react_on_rails_pro/.prettierignore index 27b98793f5..7ceb1ad738 100644 --- a/react_on_rails_pro/.prettierignore +++ b/react_on_rails_pro/.prettierignore @@ -1,6 +1,5 @@ node_modules **/node_modules/** -../packages/react-on-rails-pro-node-renderer/tests/fixtures/projects **/tmp **/public **/package.json diff --git a/react_on_rails_pro/package-scripts.yml b/react_on_rails_pro/package-scripts.yml index 705ee5196c..50d7f4c54a 100644 --- a/react_on_rails_pro/package-scripts.yml +++ b/react_on_rails_pro/package-scripts.yml @@ -1,21 +1,4 @@ scripts: - test: - default: - description: Run all JS tests - script: jest - ci: - description: Run all JS tests in CI mode - # https://circleci.com/docs/collect-test-data/#jest - script: jest --ci --runInBand --reporters=default --reporters=jest-junit - debug: - description: Debug all JS tests - script: ndb jest --runInBand - check: - description: Run all checks - script: nps lint && nps format.listDifferent && nps test && nps check-typescript - check-typescript: - description: Check for TypeScript errors - script: nps "build --noEmit" && tsc --project ../packages/react-on-rails-pro-node-renderer/tests && cd spec/dummy && yarn run tsc -p ./tsconfig.json --noEmit fix: description: Run all code fixes before committing script: nps eslint.fix && nps format diff --git a/react_on_rails_pro/package.json b/react_on_rails_pro/package.json deleted file mode 100644 index 4d21b99696..0000000000 --- a/react_on_rails_pro/package.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "name": "react-on-rails-pro-dummy-placeholder", - "version": "16.2.0-beta.11", - "description": "Placeholder package.json for react_on_rails_pro dummy app - actual Pro package is at packages/react-on-rails-pro", - "private": true, - "directories": { - "doc": "docs" - }, - "resolutions": { - "sentry-testkit/body-parser": "npm:empty-npm-package@1.0.0", - "sentry-testkit/express": "npm:empty-npm-package@1.0.0" - }, - "dependencies": { - "@fastify/formbody": "^7.4.0 || ^8.0.2", - "@fastify/multipart": "^8.3.1 || ^9.0.3", - "fastify": "^4.29.0 || ^5.2.1", - "fs-extra": "^11.2.0", - "jsonwebtoken": "^9.0.2", - "lockfile": "^1.0.4" - }, - "devDependencies": { - "@babel/core": "^7.26.10", - "@babel/eslint-parser": "^7.27.0", - "@babel/plugin-syntax-import-attributes": "^7.27.1", - "@babel/preset-env": "^7.26.9", - "@babel/preset-react": "^7.26.3", - "@babel/preset-typescript": "^7.27.0", - "@eslint/compat": "^1.2.8", - "@honeybadger-io/js": "^6.10.1", - "@sentry/node": "^7.120.0", - "@tsconfig/node14": "^14.1.2", - "@types/fs-extra": "^11.0.4", - "@types/jest": "^29.5.12", - "@types/jsonwebtoken": "^9.0.10", - "@types/lockfile": "^1.0.4", - "@types/touch": "^3.1.5", - "babel-jest": "^29.7.0", - "concurrently": "^9.1.0", - "eslint": "^9.24.0", - "eslint-config-prettier": "^10.1.1", - "eslint-config-shakacode": "^19.0.0", - "eslint-import-resolver-alias": "^1.1.2", - "eslint-import-resolver-typescript": "^4.3.2", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-jest": "^28.11.0", - "eslint-plugin-jsx-a11y": "^6.10.2", - "eslint-plugin-prettier": "^5.2.6", - "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^5.2.0", - "form-auto-content": "^3.2.1", - "form-data": "^4.0.1", - "globals": "^16.0.0", - "husky": "^4.3.6", - "jest": "^29.7.0", - "jest-junit": "^16.0.0", - "jsdom": "^16.5.0", - "ndb": "^1.1.5", - "node-html-parser": "^7.0.1", - "nps": "^5.9.12", - "pino-pretty": "^13.0.0", - "prettier": "^3.2.5", - "react-on-rails": "link:.yalc/react-on-rails", - "redis": "^5.0.1", - "sentry-testkit": "^5.0.6", - "touch": "^3.1.0", - "typescript": "^5.4.3", - "typescript-eslint": "^8.29.1", - "yalc": "^1.0.0-pre.53" - }, - "peerDependencies": { - "@honeybadger-io/js": ">=4.0.0", - "@sentry/node": ">=5.0.0 <9.0.0", - "@sentry/tracing": ">=5.0.0" - }, - "peerDependenciesMeta": { - "@honeybadger-io/js": { - "optional": true - }, - "@sentry/node": { - "optional": true - }, - "@sentry/tracing": { - "optional": true - } - }, - "scripts": { - "preinstall": "node ./script/preinstall.js", - "postinstall": "test -f post-yarn-install.local && ./post-yarn-install.local || true", - "link-source": "cd ../packages/react-on-rails && yarn && yalc publish", - "test": "nps test", - "prepack": "nps build.prepack", - "prepare": "nps build.prepack", - "prepublishOnly": "nps build", - "start": "nps", - "developing": "nps node-renderer.debug", - "eslint": "eslint .", - "check": "nps lint && nps format && nps test" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/shakacode/react_on_rails.git" - }, - "keywords": [ - "react", - "webpack", - "JavaScript", - "Ruby", - "on", - "Rails" - ], - "author": "justin@shakacode.com", - "license": "UNLICENSED", - "bugs": { - "url": "https://github.com/shakacode/react_on_rails/issues" - }, - "homepage": "https://github.com/shakacode/react_on_rails/tree/master/react_on_rails_pro#readme", - "jest": { - "clearMocks": true, - "collectCoverageFrom": [ - "../packages/react-on-rails-pro-node-renderer/tests/**/*.{js,jsx,ts,tsx}" - ], - "coverageReporters": [ - "lcov" - ], - "moduleNameMapper": { - "^(\\.{1,2}/.*)\\.js$": "$1" - }, - "resetModules": true, - "resetMocks": true, - "roots": [ - "../packages/react-on-rails-pro-node-renderer" - ], - "setupFiles": [ - "../packages/react-on-rails-pro-node-renderer/tests/helper.ts" - ], - "testEnvironment": "node", - "transform": { - "^.+\\.[jt]sx?$": "babel-jest" - } - }, - "husky": { - "hooks": { - "pre-commit": "yalc check" - } - }, - "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" -} diff --git a/script/ci-changes-detector b/script/ci-changes-detector index e575d6d20d..cbf5b1dd3d 100755 --- a/script/ci-changes-detector +++ b/script/ci-changes-detector @@ -240,15 +240,15 @@ if [ "$GENERATORS_CHANGED" = true ]; then RUN_GENERATORS=true fi -if [ "$PRO_LINT_CONFIG_CHANGED" = true ] || [ "$PRO_RUBY_CHANGED" = true ] || [ "$PRO_JS_CHANGED" = true ] || [ "$PRO_DUMMY_CHANGED" = true ]; then +if [ "$PRO_LINT_CONFIG_CHANGED" = true ] || [ "$PRO_RUBY_CHANGED" = true ] || [ "$PRO_JS_CHANGED" = true ] || [ "$PRO_DUMMY_CHANGED" = true ] || [ "$RUBY_CHANGED" = true ]; then RUN_PRO_LINT=true fi -if [ "$PRO_RUBY_CHANGED" = true ] || [ "$PRO_RSPEC_CHANGED" = true ] || [ "$PRO_JS_CHANGED" = true ]; then +if [ "$PRO_RUBY_CHANGED" = true ] || [ "$PRO_RSPEC_CHANGED" = true ] || [ "$PRO_JS_CHANGED" = true ] || [ "$RUBY_CHANGED" = true ]; then RUN_PRO_TESTS=true fi -if [ "$PRO_DUMMY_CHANGED" = true ] || [ "$PRO_RUBY_CHANGED" = true ] || [ "$PRO_JS_CHANGED" = true ]; then +if [ "$PRO_DUMMY_CHANGED" = true ] || [ "$PRO_RUBY_CHANGED" = true ] || [ "$PRO_JS_CHANGED" = true ] || [ "$RUBY_CHANGED" = true ]; then RUN_PRO_DUMMY_TESTS=true fi diff --git a/yarn.lock b/yarn.lock index 8c1df4210b..532ca8c1c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -61,6 +61,11 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== +"@babel/compat-data@^7.27.2": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.5.tgz#a8a4962e1567121ac0b3b487f52107443b455c7f" + integrity sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA== + "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.12": version "7.23.7" resolved "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz" @@ -82,6 +87,27 @@ json5 "^2.2.3" semver "^6.3.1" +"@babel/core@^7.26.10": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.5.tgz#4c81b35e51e1b734f510c99b07dfbc7bbbb48f7e" + integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.5" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-module-transforms" "^7.28.3" + "@babel/helpers" "^7.28.4" + "@babel/parser" "^7.28.5" + "@babel/template" "^7.27.2" + "@babel/traverse" "^7.28.5" + "@babel/types" "^7.28.5" + "@jridgewell/remapping" "^2.3.5" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/eslint-parser@^7.26.10": version "7.26.10" resolved "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.26.10.tgz" @@ -91,6 +117,15 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.1" +"@babel/eslint-parser@^7.27.0": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.28.5.tgz#0b8883a4a1c2cbed7b3cd9d7765d80e8f480b9ae" + integrity sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.1" + "@babel/generator@^7.23.6", "@babel/generator@^7.28.3", "@babel/generator@^7.7.2": version "7.28.3" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz" @@ -102,6 +137,17 @@ "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" +"@babel/generator@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.5.tgz#712722d5e50f44d07bc7ac9fe84438742dd61298" + integrity sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ== + dependencies: + "@babel/parser" "^7.28.5" + "@babel/types" "^7.28.5" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + "@babel/helper-annotate-as-pure@^7.22.5", "@babel/helper-annotate-as-pure@^7.25.9", "@babel/helper-annotate-as-pure@^7.27.3": version "7.27.3" resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz" @@ -127,6 +173,17 @@ lru-cache "^5.1.1" semver "^6.3.1" +"@babel/helper-compilation-targets@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.27.1": version "7.28.3" resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz" @@ -201,7 +258,7 @@ "@babel/traverse" "^7.27.1" "@babel/types" "^7.27.1" -"@babel/helper-module-transforms@^7.23.3", "@babel/helper-module-transforms@^7.27.1": +"@babel/helper-module-transforms@^7.23.3", "@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.28.3": version "7.28.3" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz" integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== @@ -265,6 +322,11 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz" integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== +"@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + "@babel/helper-validator-option@^7.23.5", "@babel/helper-validator-option@^7.25.9", "@babel/helper-validator-option@^7.27.1": version "7.27.1" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz" @@ -288,6 +350,14 @@ "@babel/traverse" "^7.23.7" "@babel/types" "^7.23.6" +"@babel/helpers@^7.28.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.4.tgz#fe07274742e95bdf7cf1443593eeb8926ab63827" + integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== + dependencies: + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.4" + "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.6", "@babel/parser@^7.27.2", "@babel/parser@^7.28.3", "@babel/parser@^7.28.4": version "7.28.4" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz" @@ -295,6 +365,13 @@ dependencies: "@babel/types" "^7.28.4" +"@babel/parser@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.5.tgz#0b0225ee90362f030efd644e8034c99468893b08" + integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== + dependencies: + "@babel/types" "^7.28.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz" @@ -1055,6 +1132,19 @@ "@babel/types" "^7.28.4" debug "^4.3.1" +"@babel/traverse@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.5.tgz#450cab9135d21a7a2ca9d2d35aa05c20e68c360b" + integrity sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.5" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.28.5" + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.5" + debug "^4.3.1" + "@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.25.9", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.28.4" resolved "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz" @@ -1063,6 +1153,14 @@ "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" +"@babel/types@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b" + integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" @@ -1519,7 +1617,7 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.12": +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": version "0.3.13" resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz" integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== @@ -1527,6 +1625,14 @@ "@jridgewell/sourcemap-codec" "^1.5.0" "@jridgewell/trace-mapping" "^0.3.24" +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" @@ -1698,7 +1804,7 @@ "@sentry/types" "7.120.4" "@sentry/utils" "7.120.4" -"@sentry/types@7.120.4", "@sentry/types@^7.120.0": +"@sentry/types@7.120.4": version "7.120.4" resolved "https://registry.npmjs.org/@sentry/types/-/types-7.120.4.tgz#8fab8dceeec4bda079fc6e8e380b982f766de354" integrity sha512-cUq2hSSe6/qrU6oZsEP4InMI5VVdD86aypE+ENrQ6eZEVLTCYm1w6XhW1NvIu3UuWh7gZec4a9J7AFpYxki88Q== @@ -1858,6 +1964,11 @@ dependencies: "@babel/runtime" "^7.12.5" +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + "@tootallnate/once@2": version "2.0.0" resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" @@ -1989,7 +2100,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.14": +"@types/jest@^29.5.12", "@types/jest@^29.5.14": version "29.5.14" resolved "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz" integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ== @@ -2060,13 +2171,6 @@ dependencies: undici-types "~6.19.2" -"@types/node@^20.0.0": - version "20.19.25" - resolved "https://registry.npmjs.org/@types/node/-/node-20.19.25.tgz#467da94a2fd966b57cc39c357247d68047611190" - integrity sha512-ZsJzA5thDQMSQO788d7IocwwQbI8B5OPzmqNvpf3NY/+MHDAS759Wo0gd2WQeXYt5AAAQjzcrTVC6SKCuYgoCQ== - dependencies: - undici-types "~6.21.0" - "@types/prop-types@*": version "15.7.14" resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz" @@ -2250,7 +2354,7 @@ "@typescript-eslint/types" "8.35.0" eslint-visitor-keys "^4.2.1" -abab@^2.0.6: +abab@^2.0.3, abab@^2.0.5, abab@^2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== @@ -2268,6 +2372,14 @@ accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + acorn-globals@^7.0.0: version "7.0.1" resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz" @@ -2288,16 +2400,31 @@ acorn-loose@^8.3.0: dependencies: acorn "^8.14.0" +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + acorn-walk@^8.0.2: version "8.3.1" resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz" integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + acorn@^8.1.0, acorn@^8.14.0, acorn@^8.8.1: version "8.14.1" resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz" integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== +acorn@^8.2.4: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== + agent-base@6: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" @@ -2673,6 +2800,11 @@ balanced-match@^2.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== +baseline-browser-mapping@^2.8.25: + version "2.8.29" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.29.tgz#d8800b71399c783cb1bf2068c2bcc3b6cfd7892c" + integrity sha512-sXdt2elaVnhpDNRDz+1BDx1JQoJRuNk7oVlAlbGiFkLikHCAQiccexF/9e91zVi6RCgqspl04aP+6Cnl9zRLrA== + body-parser@1.20.3, body-parser@^1.20.1: version "1.20.3" resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" @@ -2718,6 +2850,11 @@ braces@^3.0.3: dependencies: fill-range "^7.1.1" +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + browserslist@^4.22.2: version "4.22.2" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz" @@ -2728,6 +2865,17 @@ browserslist@^4.22.2: node-releases "^2.0.14" update-browserslist-db "^1.0.13" +browserslist@^4.24.0: + version "4.28.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.0.tgz#9cefece0a386a17a3cd3d22ebf67b9deca1b5929" + integrity sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ== + dependencies: + baseline-browser-mapping "^2.8.25" + caniuse-lite "^1.0.30001754" + electron-to-chromium "^1.5.249" + node-releases "^2.0.27" + update-browserslist-db "^1.1.4" + bs-logger@^0.2.6: version "0.2.6" resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" @@ -2814,6 +2962,11 @@ caniuse-lite@^1.0.30001565: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz" integrity sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg== +caniuse-lite@^1.0.30001754: + version "1.0.30001756" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001756.tgz#fe80104631102f88e58cad8aa203a2c3e5ec9ebd" + integrity sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A== + chalk@^2.0.1: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" @@ -3128,6 +3281,11 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + cssom@^0.5.0: version "0.5.0" resolved "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz" @@ -3162,6 +3320,15 @@ damerau-levenshtein@^1.0.8: resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + data-urls@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz" @@ -3245,6 +3412,11 @@ decamelize@^1.2.0: resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decimal.js@^10.2.1: + version "10.6.0" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.6.0.tgz#e649a43e3ab953a72192ff5983865e509f37ed9a" + integrity sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg== + decimal.js@^10.4.2, decimal.js@^10.4.3: version "10.5.0" resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz" @@ -3358,6 +3530,13 @@ domelementtype@^2.3.0: resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + domexception@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz" @@ -3428,6 +3607,11 @@ electron-to-chromium@^1.4.601: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.626.tgz" integrity sha512-f7/be56VjRRQk+Ric6PmIrEtPcIqsn3tElyAu9Sh6egha2VLJ82qwkcOdcnT06W+Pb6RUulV1ckzrGbKzVcTHg== +electron-to-chromium@^1.5.249: + version "1.5.258" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.258.tgz#094b0280928b1bf967b202e4be5b335aa4754b69" + integrity sha512-rHUggNV5jKQ0sSdWwlaRDkFc3/rRJIVnOSe9yR4zrR07m3ZxhP4N27Hlg8VeJGGYgFTxK5NqDmWI4DSH72vIJg== + emittery@^0.13.1: version "0.13.1" resolved "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz" @@ -3627,6 +3811,11 @@ escalade@^3.1.1: resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -4257,6 +4446,17 @@ form-auto-content@^3.2.1: fast-querystring "^1.0.0" form-data "^4.0.0" +form-data@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.4.tgz#938273171d3f999286a4557528ce022dc2c98df1" + integrity sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" + mime-types "^2.1.35" + form-data@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" @@ -4546,6 +4746,13 @@ hookified@^1.12.0, hookified@^1.12.1: resolved "https://registry.yarnpkg.com/hookified/-/hookified-1.12.1.tgz#b0de0116ca346fd6c4e55db901f52d5cd728ef00" integrity sha512-xnKGl+iMIlhrZmGHB729MqlmPoWBznctSQTYCpFKqNsCgimJQmithcW0xSQMMFzYnV2iKUh25alswn6epgxS0Q== +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + html-encoding-sniffer@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz" @@ -4574,6 +4781,15 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + http-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz" @@ -4583,7 +4799,7 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" -https-proxy-agent@^5.0.1: +https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== @@ -5401,6 +5617,39 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +jsdom@^16.5.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + jsdom@^20.0.0: version "20.0.3" resolved "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz" @@ -5782,7 +6031,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash@^4.17.21, lodash@^4.17.4: +lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -5933,7 +6182,7 @@ mime-types@^2.1.12: dependencies: mime-db "1.43.0" -mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.35, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -6065,6 +6314,11 @@ node-releases@^2.0.14: resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +node-releases@^2.0.27: + version "2.0.27" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" + integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== + normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" @@ -6077,7 +6331,7 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -nps@^5.9.3: +nps@^5.9.12, nps@^5.9.3: version "5.10.0" resolved "https://registry.npmjs.org/nps/-/nps-5.10.0.tgz" integrity sha512-tye+0hoKq3pB6NhykoPcOzwn4nEvwVvh1kJEDc+21gYordNdaBlkPv8ZlrZkuEWLUeujvS8VQ56KO9QGoPKkEA== @@ -6102,6 +6356,11 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" +nwsapi@^2.2.0: + version "2.2.22" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.22.tgz#109f9530cda6c156d6a713cdf5939e9f0de98b9d" + integrity sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ== + nwsapi@^2.2.2, nwsapi@^2.2.4: version "2.2.16" resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz" @@ -6334,16 +6593,16 @@ parse5-htmlparser2-tree-adapter@^6.0.0: dependencies: parse5 "^6.0.1" +parse5@6.0.1, parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parse5@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz" integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== -parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - parse5@^7.0.0, parse5@^7.1.1, parse5@^7.1.2: version "7.2.1" resolved "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz" @@ -6745,6 +7004,9 @@ react-on-rails-rsc@19.0.2: neo-async "^2.6.1" webpack-sources "^3.2.0" +react-on-rails@./packages/react-on-rails: + version "16.2.0-beta.11" + react@^19.0.0: version "19.0.0" resolved "https://registry.npmjs.org/react/-/react-19.0.0.tgz" @@ -6998,6 +7260,13 @@ safe-stable-stringify@^2.3.1: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + saxes@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz" @@ -7661,6 +7930,16 @@ touch@^3.1.0: resolved "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz#097a23d7b161476435e5c1344a95c0f75b4a5694" integrity sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA== +tough-cookie@^4.0.0: + version "4.1.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" + integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + tough-cookie@^4.1.2: version "4.1.3" resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz" @@ -7671,6 +7950,13 @@ tough-cookie@^4.1.2: universalify "^0.2.0" url-parse "^1.5.3" +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + tr46@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz" @@ -7821,6 +8107,11 @@ typescript@5.6.1-rc: resolved "https://registry.npmjs.org/typescript/-/typescript-5.6.1-rc.tgz" integrity sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ== +typescript@^5.4.3: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== + typescript@^5.8.3: version "5.8.3" resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz" @@ -7841,11 +8132,6 @@ undici-types@~6.19.2: resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz" integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" @@ -7897,6 +8183,14 @@ update-browserslist-db@^1.0.13: escalade "^3.1.1" picocolors "^1.0.0" +update-browserslist-db@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz#7802aa2ae91477f255b86e0e46dbc787a206ad4a" + integrity sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" @@ -7941,6 +8235,20 @@ vary@~1.1.2: resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + w3c-xmlserializer@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz" @@ -7967,6 +8275,16 @@ webidl-conversions@^3.0.0: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + webidl-conversions@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz" @@ -7977,6 +8295,13 @@ webpack-sources@^3.2.0: resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + whatwg-encoding@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz" @@ -7984,6 +8309,11 @@ whatwg-encoding@^2.0.0: dependencies: iconv-lite "0.6.3" +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + whatwg-mimetype@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz" @@ -8013,6 +8343,15 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz" @@ -8129,11 +8468,21 @@ write-file-atomic@^5.0.1: imurmurhash "^0.1.4" signal-exit "^4.0.1" +ws@^7.4.6: + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + ws@^8.11.0, ws@^8.13.0: version "8.18.0" resolved "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz" integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + xml-name-validator@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz"