diff --git a/.circleci/config.yml b/.circleci/config.yml index a67026ad4205..0334cb181d89 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -71,6 +71,7 @@ jobs: - run: name: Add examples/* to yarn workspace command: | + npm pkg delete workspaces[6] npm pkg delete workspaces[5] npm pkg delete workspaces[4] npm pkg delete workspaces[3] diff --git a/.cursor/rules/benchmarking.mdc b/.cursor/rules/benchmarking.mdc index 6ecfa7b2a3a8..1f69b835ac6e 100644 --- a/.cursor/rules/benchmarking.mdc +++ b/.cursor/rules/benchmarking.mdc @@ -12,12 +12,12 @@ When working on performance investigations or changes that might impact **core, ## React benchmark (`@examples/benchmark-react`) -When working on **`packages/react`** or comparing data-client to other React data libraries (TanStack Query, SWR, baseline), use **`@examples/benchmark-react`**. +When working on **`packages/react`** or comparing data-client to other React data libraries (TanStack Query, SWR), use **`@examples/benchmark-react`**. - **Where it lives**: `examples/benchmark-react/` - **How to run**: From repo root: `yarn build:benchmark-react`, then `yarn workspace example-benchmark-react preview &` and in another terminal `cd examples/benchmark-react && yarn bench` -- **What it measures**: Browser-based init/update duration, ref-stability counts, sorted-view (Query memoization), optional memory (heap delta), startup metrics (FCP/TBT), and React Profiler commit times. Compares data-client, TanStack Query, SWR, and a plain React baseline. -- **CI**: `.github/workflows/benchmark-react.yml` runs on changes to `packages/react/src/**`, `packages/core/src/**`, `packages/endpoint/src/schemas/**`, `packages/normalizr/src/**`, or `examples/benchmark-react/**` and reports via `rhysd/github-action-benchmark` (customSmallerIsBetter). CI runs **data-client only** (hot-path scenarios) to track regressions; competitor libraries (TanStack Query, SWR, baseline) are for local comparison only. +- **What it measures**: Browser-based init/update duration, ref-stability counts, sorted-view (Query memoization), optional memory (heap delta), startup metrics (FCP/TBT), and React Profiler commit times. Compares data-client, TanStack Query, and SWR. +- **CI**: `.github/workflows/benchmark-react.yml` runs on changes to `packages/react/src/**`, `packages/core/src/**`, `packages/endpoint/src/schemas/**`, `packages/normalizr/src/**`, or `examples/benchmark-react/**` and reports via `rhysd/github-action-benchmark` (customSmallerIsBetter). CI runs **data-client only** (hot-path scenarios) to track regressions; competitor libraries (TanStack Query, SWR) are for local comparison only. - **Report viewer**: Open `examples/benchmark-react/bench/report-viewer.html` in a browser and paste `react-bench-output.json` to view a comparison table and charts. Toggle "React commit" and "Trace" filters. Use "Load history" for time-series. See `@examples/benchmark-react/README.md` for methodology, adding a new library, and interpreting results. diff --git a/.github/workflows/benchmark-react.yml b/.github/workflows/benchmark-react.yml index 0940bcc3aed7..ee9f6eaaabca 100644 --- a/.github/workflows/benchmark-react.yml +++ b/.github/workflows/benchmark-react.yml @@ -43,9 +43,7 @@ jobs: node-version: '24' cache: 'yarn' - name: Install packages - run: | - corepack enable - yarn install --immutable + run: ./scripts/ci-install.sh examples/benchmark-react - name: Install Playwright (Chromium + system deps) run: npx playwright install chromium --with-deps - name: Build packages @@ -57,18 +55,11 @@ jobs: cd examples/benchmark-react && yarn bench | tee react-bench-output.json # PR comments on changes - - name: Download previous benchmark data (PR) - if: ${{ github.event_name == 'pull_request' }} - uses: actions/cache@v5 - with: - path: ./cache - key: ${{ runner.os }}-benchmark-react-pr-${{ github.run_number }} - restore-keys: | - ${{ runner.os }}-benchmark-react - name: Store benchmark result (PR) if: ${{ github.event_name == 'pull_request' }} uses: rhysd/github-action-benchmark@v1 with: + name: 'Benchmark React' tool: 'customSmallerIsBetter' output-file-path: examples/benchmark-react/react-bench-output.json github-token: "${{ secrets.GITHUB_TOKEN }}" @@ -82,16 +73,11 @@ jobs: auto-push: false # master reports to history - - name: Download previous benchmark data (main) - if: ${{ github.event_name == 'push' }} - uses: actions/cache@v5 - with: - path: ./cache - key: ${{ runner.os }}-benchmark-react - name: Store benchmark result (main) if: ${{ github.event_name == 'push' }} uses: rhysd/github-action-benchmark@v1 with: + name: 'Benchmark React' tool: 'customSmallerIsBetter' output-file-path: examples/benchmark-react/react-bench-output.json github-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 344bfd6921fe..9c5990545390 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -41,24 +41,13 @@ jobs: node-version: '24' cache: 'yarn' - name: Install packages - run: | - corepack enable - yarn install --immutable + run: ./scripts/ci-install.sh examples/benchmark - name: Build packages run: yarn build:benchmark - name: Run benchmark run: yarn workspace example-benchmark start | tee output.txt - # PR comments on changes - - name: Download previous benchmark data (PR) - if: ${{ github.event_name == 'pull_request' }} - uses: actions/cache@v5 - with: - path: ./cache - key: ${{ runner.os }}-benchmark-pr-${{ github.run_number }} - restore-keys: | - ${{ runner.os }}-benchmark - name: Store benchmark result (PR) if: ${{ github.event_name == 'pull_request' }} uses: rhysd/github-action-benchmark@v1 @@ -67,22 +56,14 @@ jobs: output-file-path: output.txt github-token: "${{ secrets.GITHUB_TOKEN }}" gh-pages-branch: 'gh-pages-bench' - # Show alert with commit comment on detecting possible performance regression alert-threshold: '150%' comment-always: true fail-on-alert: false alert-comment-cc-users: '@ntucker' - # we only want to compare against master, so do not save for PR save-data-file: false auto-push: false # master reports to history - - name: Download previous benchmark data (main) - if: ${{ github.event_name == 'push' }} - uses: actions/cache@v5 - with: - path: ./cache - key: ${{ runner.os }}-benchmark - name: Store benchmark result (main) if: ${{ github.event_name == 'push' }} uses: rhysd/github-action-benchmark@v1 diff --git a/.github/workflows/beta-release.yml b/.github/workflows/beta-release.yml index 5cd086543138..ecd1cccc0f46 100644 --- a/.github/workflows/beta-release.yml +++ b/.github/workflows/beta-release.yml @@ -31,9 +31,7 @@ jobs: cache: 'yarn' registry-url: 'https://registry.npmjs.org' - name: Install packages - run: | - corepack enable - yarn install --immutable + run: ./scripts/ci-install.sh - name: Create Beta Release Pull Request or Publish to npm id: changesets diff --git a/.github/workflows/bundle_size.yml b/.github/workflows/bundle_size.yml index 27192a85a95f..31331ca84ba6 100644 --- a/.github/workflows/bundle_size.yml +++ b/.github/workflows/bundle_size.yml @@ -36,17 +36,12 @@ jobs: node-version: '24' cache: 'yarn' - name: Install packages - env: - YARN_ENABLE_IMMUTABLE_INSTALLS: true - run: | - # npm pkg delete workspaces[5] - # npm pkg delete workspaces[4] - # npm pkg delete workspaces[3] - # npm pkg delete workspaces[1] - corepack enable + run: ./scripts/ci-install.sh examples/test-bundlesize - name: compressed-size-action uses: preactjs/compressed-size-action@v2 continue-on-error: true + env: + YARN_ENABLE_IMMUTABLE_INSTALLS: false with: repo-token: "${{ secrets.GITHUB_TOKEN }}" build-script: "ci:build:bundlesize" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 16eabb44fe89..3762df45a5b6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,9 +24,7 @@ jobs: cache: 'yarn' registry-url: 'https://registry.npmjs.org' - name: Install packages - run: | - corepack enable - yarn install --immutable + run: ./scripts/ci-install.sh - name: Create Release Pull Request or Publish to npm id: changesets diff --git a/AGENTS.md b/AGENTS.md index 4c7cca3fda45..a90478f10d33 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -27,6 +27,8 @@ Monorepo for `@data-client` npm packages. - **CircleCI** (`.circleci/config.yml`) — PR validation: lint, typecheck, unit tests (React 17/18/native/latest), Node matrix, ESM type checks (TS 4.0–5.3+), browser build. - **GitHub Actions** (`.github/workflows/`) — release (`changesets`), bundle size PR comments, benchmark regression detection. +Changing root `package.json` `workspaces` requires updating `.circleci/config.yml` (`setup` job) and `.github/workflows/` install steps. + ## Changesets Any user-facing change in `packages/*` requires a changeset. Core packages are version-linked (bumping one bumps all). See skill "changeset" for full workflow. diff --git a/examples/benchmark-react/README.md b/examples/benchmark-react/README.md index b8ce66acd76d..432135ab0516 100644 --- a/examples/benchmark-react/README.md +++ b/examples/benchmark-react/README.md @@ -1,6 +1,6 @@ # React Rendering Benchmark -Browser-based benchmark comparing `@data-client/react`, TanStack Query, SWR, and a plain React baseline on mount/update scenarios. Built with Webpack via `@anansi/webpack-config`. Results are reported to CI via `rhysd/github-action-benchmark`. +Browser-based benchmark comparing `@data-client/react`, TanStack Query, and SWR on mount/update scenarios. Built with Webpack via `@anansi/webpack-config`. Results are reported to CI via `rhysd/github-action-benchmark`. ## Comparison to Node benchmarks @@ -52,13 +52,13 @@ The repo has two benchmark suites: These are approximate values to help calibrate expectations. Exact numbers vary by machine and CPU throttling. -| Scenario | data-client | tanstack-query | swr | baseline | -|---|---|---|---|---| -| `getlist-100` | ~similar | ~similar | ~similar | ~similar | -| `update-shared-user-500-mounted` | Low (one store write propagates) | Higher (list refetch) | Higher (list refetch) | Higher (list refetch) | -| `ref-stability-issue-changed` (100 mounted) | ~1 changed | ~100 changed (list refetch) | ~100 changed (list refetch) | ~100 changed (list refetch) | -| `ref-stability-user-changed` (100 mounted) | ~5 changed | ~100 changed (list refetch) | ~100 changed (list refetch) | ~100 changed (list refetch) | -| `sorted-view-update-entity` | Fast (Query memoization skips re-sort) | Re-sorts on every issue change | Re-sorts on every issue change | Re-sorts on every issue change | +| Scenario | data-client | tanstack-query | swr | +|---|---|---|---| +| `getlist-100` | ~similar | ~similar | ~similar | +| `update-shared-user-500-mounted` | Low (one store write propagates) | Higher (list refetch) | Higher (list refetch) | +| `ref-stability-issue-changed` (100 mounted) | ~1 changed | ~100 changed (list refetch) | ~100 changed (list refetch) | +| `ref-stability-user-changed` (100 mounted) | ~5 changed | ~100 changed (list refetch) | ~100 changed (list refetch) | +| `sorted-view-update-entity` | Fast (Query memoization skips re-sort) | Re-sorts on every issue change | Re-sorts on every issue change | ## Expected variance diff --git a/examples/benchmark-react/bench/scenarios.ts b/examples/benchmark-react/bench/scenarios.ts index fc7d0bda1ca4..54b4f91de266 100644 --- a/examples/benchmark-react/bench/scenarios.ts +++ b/examples/benchmark-react/bench/scenarios.ts @@ -172,12 +172,7 @@ const BASE_SCENARIOS: BaseScenario[] = [ }, ]; -export const LIBRARIES = [ - 'data-client', - 'tanstack-query', - 'swr', - 'baseline', -] as const; +export const LIBRARIES = ['data-client', 'tanstack-query', 'swr'] as const; export const SCENARIOS: Scenario[] = LIBRARIES.flatMap(lib => BASE_SCENARIOS.filter( diff --git a/examples/benchmark-react/bench/validate.ts b/examples/benchmark-react/bench/validate.ts index 15a69b8cb504..708379dc49fc 100644 --- a/examples/benchmark-react/bench/validate.ts +++ b/examples/benchmark-react/bench/validate.ts @@ -9,7 +9,7 @@ * Usage: * npx tsx bench/validate.ts # all libraries * npx tsx bench/validate.ts --lib data-client # one library - * npx tsx bench/validate.ts --lib swr,baseline # multiple + * npx tsx bench/validate.ts --lib swr,tanstack-query # multiple */ import { chromium } from 'playwright'; import type { Page } from 'playwright'; diff --git a/examples/benchmark-react/package.json b/examples/benchmark-react/package.json index 64a4eab378aa..c5fd46a9dc16 100644 --- a/examples/benchmark-react/package.json +++ b/examples/benchmark-react/package.json @@ -32,9 +32,9 @@ "swr": "2.3.6" }, "devDependencies": { - "@anansi/babel-preset": "6.2.23", + "@anansi/babel-preset": "6.2.25", "@anansi/browserslist-config": "^1.4.3", - "@anansi/webpack-config": "21.1.14", + "@anansi/webpack-config": "21.1.16", "@babel/core": "^7.22.15", "@playwright/test": "1.58.2", "@types/node": "24.11.0", @@ -44,7 +44,7 @@ "serve": "14.2.6", "tsx": "4.19.2", "typescript": "6.0.1-rc", - "webpack": "5.105.3", + "webpack": "5.105.4", "webpack-cli": "6.0.1" }, "browserslist": "extends @anansi/browserslist-config" diff --git a/examples/benchmark-react/src/baseline/index.tsx b/examples/benchmark-react/src/baseline/index.tsx deleted file mode 100644 index 1a33fac37974..000000000000 --- a/examples/benchmark-react/src/baseline/index.tsx +++ /dev/null @@ -1,267 +0,0 @@ -import { - moveItemIsReady, - renderBenchApp, - useBenchState, -} from '@shared/benchHarness'; -import { - DOUBLE_LIST_STYLE, - ISSUE_HEIGHT, - IssueRow, - IssuesRow, - LIST_STYLE, - PlainIssueList, -} from '@shared/components'; -import { - FIXTURE_USERS, - FIXTURE_USERS_BY_LOGIN, - FIXTURE_ISSUES_BY_NUMBER, - sortByTitle, -} from '@shared/data'; -import { setCurrentIssues } from '@shared/refStability'; -import { UserResource, IssueResource } from '@shared/resources'; -import type { Issue } from '@shared/types'; -import React, { - useCallback, - useContext, - useEffect, - useMemo, - useState, -} from 'react'; -import { List } from 'react-window'; - -const IssuesContext = React.createContext<{ - issues: Issue[]; - setIssues: React.Dispatch>; -}>(null as any); - -function SortedListView() { - const { issues, setIssues } = useContext(IssuesContext); - useEffect(() => { - IssueResource.getList().then(setIssues); - }, [setIssues]); - const sorted = useMemo(() => sortByTitle(issues), [issues]); - if (!sorted.length) return null; - return ( -
- -
- ); -} - -function ListView() { - const { issues } = useContext(IssuesContext); - if (!issues.length) return null; - setCurrentIssues(issues); - return ( - - ); -} - -const DoubleListContext = React.createContext<{ - openIssues: Issue[]; - closedIssues: Issue[]; - setOpenIssues: React.Dispatch>; - setClosedIssues: React.Dispatch>; -}>(null as any); - -function DoubleListView() { - const { openIssues, closedIssues } = useContext(DoubleListContext); - return ( -
- {openIssues.length > 0 && ( -
- {openIssues.length} - -
- )} - {closedIssues.length > 0 && ( -
- {closedIssues.length} - -
- )} -
- ); -} - -function DetailView({ number }: { number: number }) { - const [issue, setIssue] = useState(null); - useEffect(() => { - IssueResource.get({ number }).then(setIssue); - }, [number]); - if (!issue) return null; - return ( -
- -
- ); -} - -function BenchmarkHarness() { - const [issues, setIssues] = useState([]); - const [openIssues, setOpenIssues] = useState([]); - const [closedIssues, setClosedIssues] = useState([]); - const { - listViewCount, - showSortedView, - showDoubleList, - doubleListCount, - detailIssueNumber, - containerRef, - measureUpdate, - unmountAll: unmountBase, - registerAPI, - } = useBenchState(); - - useEffect(() => { - if (listViewCount != null) { - IssueResource.getList({ count: listViewCount }).then(setIssues); - } - }, [listViewCount]); - - useEffect(() => { - if (showDoubleList && doubleListCount != null) { - IssueResource.getList({ state: 'open', count: doubleListCount }).then( - setOpenIssues, - ); - IssueResource.getList({ state: 'closed', count: doubleListCount }).then( - setClosedIssues, - ); - } - }, [showDoubleList, doubleListCount]); - - const unmountAll = useCallback(() => { - unmountBase(); - setIssues([]); - setOpenIssues([]); - setClosedIssues([]); - }, [unmountBase]); - - const refetchActiveList = useCallback(() => { - if (doubleListCount != null) { - return Promise.all([ - IssueResource.getList({ - state: 'open', - count: doubleListCount, - }).then(setOpenIssues), - IssueResource.getList({ - state: 'closed', - count: doubleListCount, - }).then(setClosedIssues), - ]); - } - return IssueResource.getList({ count: listViewCount! }).then(setIssues); - }, [listViewCount, doubleListCount]); - - const updateEntity = useCallback( - (number: number) => { - const issue = FIXTURE_ISSUES_BY_NUMBER.get(number); - if (!issue) return; - measureUpdate(() => - IssueResource.update( - { number }, - { title: `${issue.title} (updated)` }, - ).then(refetchActiveList), - ); - }, - [measureUpdate, refetchActiveList], - ); - - const updateUser = useCallback( - (login: string) => { - const user = FIXTURE_USERS_BY_LOGIN.get(login); - if (!user) return; - measureUpdate(() => - UserResource.update({ login }, { name: `${user.name} (updated)` }).then( - refetchActiveList, - ), - ); - }, - [measureUpdate, refetchActiveList], - ); - - const unshiftItem = useCallback(() => { - const user = FIXTURE_USERS[0]; - measureUpdate(() => - IssueResource.create({ title: 'New Issue', user }).then( - refetchActiveList, - ), - ); - }, [measureUpdate, refetchActiveList]); - - const deleteEntity = useCallback( - (number: number) => { - measureUpdate(() => - IssueResource.delete({ number }).then(refetchActiveList), - ); - }, - [measureUpdate, refetchActiveList], - ); - - const moveItem = useCallback( - (number: number) => { - measureUpdate( - () => - IssueResource.update({ number }, { state: 'closed' }).then(() => - Promise.all([ - IssueResource.getList({ - state: 'open', - count: doubleListCount!, - }).then(setOpenIssues), - IssueResource.getList({ - state: 'closed', - count: doubleListCount!, - }).then(setClosedIssues), - ]), - ), - () => moveItemIsReady(containerRef, number), - ); - }, - [measureUpdate, doubleListCount, containerRef], - ); - - registerAPI({ - updateEntity, - updateUser, - unmountAll, - unshiftItem, - deleteEntity, - moveItem, - }); - - return ( - - -
- {listViewCount != null && } - {showSortedView && } - {showDoubleList && doubleListCount != null && } - {detailIssueNumber != null && ( - - )} -
-
-
- ); -} - -renderBenchApp(BenchmarkHarness); diff --git a/examples/benchmark-react/webpack.config.cjs b/examples/benchmark-react/webpack.config.cjs index 91e5f676a9d5..ffa8f5868793 100644 --- a/examples/benchmark-react/webpack.config.cjs +++ b/examples/benchmark-react/webpack.config.cjs @@ -2,7 +2,7 @@ const { makeConfig } = require('@anansi/webpack-config'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const path = require('path'); -const LIBRARIES = ['data-client', 'tanstack-query', 'swr', 'baseline']; +const LIBRARIES = ['data-client', 'tanstack-query', 'swr']; const entries = {}; for (const lib of LIBRARIES) { diff --git a/examples/benchmark/package.json b/examples/benchmark/package.json index a0635c7a2ef8..5358fcdafcfe 100644 --- a/examples/benchmark/package.json +++ b/examples/benchmark/package.json @@ -25,7 +25,7 @@ "react": "19.2.3" }, "devDependencies": { - "@anansi/webpack-config": "21.1.15", + "@anansi/webpack-config": "21.1.16", "@babel/core": "7.29.0", "@babel/node": "7.29.0", "@types/babel__core": "^7", diff --git a/examples/coin-app/package.json b/examples/coin-app/package.json index daaede227306..d2a063de7d80 100644 --- a/examples/coin-app/package.json +++ b/examples/coin-app/package.json @@ -24,9 +24,9 @@ "anansi" ], "devDependencies": { - "@anansi/babel-preset": "6.2.24", + "@anansi/babel-preset": "6.2.25", "@anansi/browserslist-config": "1.7.4", - "@anansi/webpack-config": "21.1.15", + "@anansi/webpack-config": "21.1.16", "@babel/core": "7.29.0", "@linaria/core": "*", "@linaria/react": "*", @@ -43,11 +43,11 @@ "@anansi/cli": "3.1.103", "@anansi/core": "0.22.8", "@anansi/router": "0.10.22", - "@babel/runtime-corejs3": "7.29.0", + "@babel/runtime-corejs3": "7.29.2", "@data-client/img": "0.15.0", "@data-client/react": "0.15.7", "@data-client/rest": "0.15.7", - "core-js": "3.48.0", + "core-js": "3.49.0", "d3": "7.9.0", "history": "*", "react": "19.2.3", diff --git a/examples/github-app/package-lock.json b/examples/github-app/package-lock.json index 373d1e73d6ab..0cb341c5bba7 100644 --- a/examples/github-app/package-lock.json +++ b/examples/github-app/package-lock.json @@ -32,10 +32,10 @@ "uuid": "^13.0.0" }, "devDependencies": { - "@anansi/babel-preset": "6.2.24", + "@anansi/babel-preset": "6.2.25", "@anansi/browserslist-config": "1.7.4", "@anansi/cli": "3.1.103", - "@anansi/webpack-config": "21.1.15", + "@anansi/webpack-config": "21.1.16", "@babel/core": "7.29.0", "@linaria/core": "6.3.0", "@linaria/react": "6.3.0", @@ -55,9 +55,9 @@ } }, "node_modules/@anansi/babel-preset": { - "version": "6.2.24", - "resolved": "https://registry.npmjs.org/@anansi/babel-preset/-/babel-preset-6.2.24.tgz", - "integrity": "sha512-s68SlDGZ9x1tzG7Bb7answVJWHQ1THe6up33tzAjThMn1QJaev9IGLo3Zj4Za8bzY1Jr+3IgcSHX7S+Ba9zrCA==", + "version": "6.2.25", + "resolved": "https://registry.npmjs.org/@anansi/babel-preset/-/babel-preset-6.2.25.tgz", + "integrity": "sha512-HOiONesK2sVOFqbKqG5yuOdmIPbfYSvvskS9lPaRrsjK0DtDAtISYJ2/BVrVyo8xKEGkLDDVbT4GeSPLoj/PQA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -71,11 +71,11 @@ "@babel/plugin-transform-react-inline-elements": "^7.27.1", "@babel/plugin-transform-runtime": "^7.29.0", "@babel/plugin-transform-typescript": "^7.28.6", - "@babel/preset-env": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@babel/preset-react": "^7.28.5", "babel-plugin-macros": "^3.1.0", - "babel-plugin-module-resolver": "^5.0.2", - "babel-plugin-polyfill-corejs3": "^0.14.1", + "babel-plugin-module-resolver": "^5.0.3", + "babel-plugin-polyfill-corejs3": "^0.14.2", "babel-plugin-react-compiler": "1.0.0", "babel-plugin-root-import": "^6.6.0", "babel-plugin-transform-import-meta": "^2.3.3", @@ -303,9 +303,9 @@ } }, "node_modules/@anansi/webpack-config": { - "version": "21.1.15", - "resolved": "https://registry.npmjs.org/@anansi/webpack-config/-/webpack-config-21.1.15.tgz", - "integrity": "sha512-YUTPT+DDsQMqlptNJ9y7cvErbm0hmN6P4ixYMy/JXOTiSKOyr9FSBDm7bl78mqTxTwBnxwvA613gEecsSxOy8A==", + "version": "21.1.16", + "resolved": "https://registry.npmjs.org/@anansi/webpack-config/-/webpack-config-21.1.16.tgz", + "integrity": "sha512-bEcDAgVhDTqVszmKn+eqXFVPYxRW6HUHv+xD2N8vNxoHfe66XZDG3jJzoNcUVGp2X/NiVeRWvan5mmxJ6ci1Hg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -318,7 +318,7 @@ "@wyw-in-js/webpack-loader": "^1.0.6", "assert": "^2.1.0", "autoprefixer": "^10.4.27", - "babel-loader": "^10.1.0", + "babel-loader": "^10.1.1", "browserify-zlib": "^0.2.0", "buffer": "^6.0.3", "circular-dependency-plugin": "^5.2.2", @@ -717,9 +717,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.7.tgz", - "integrity": "sha512-6Fqi8MtQ/PweQ9xvux65emkLQ83uB+qAVtfHkC9UodyHMIZdxNI01HjLCLUtybElp2KY2XNE0nOgyP1E1vXw9w==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", "dev": true, "license": "MIT", "dependencies": { @@ -2256,9 +2256,9 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.0.tgz", - "integrity": "sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", "dev": true, "license": "MIT", "dependencies": { @@ -9733,9 +9733,9 @@ } }, "node_modules/babel-plugin-module-resolver": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.2.tgz", - "integrity": "sha512-9KtaCazHee2xc0ibfqsDeamwDps6FZNo5S0Q81dUqEuFzVwPhcT4J5jOqIVvgCA3Q/wO9hKYxN/Ds3tIsp5ygg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.3.tgz", + "integrity": "sha512-h8h6H71ZvdLJZxZrYkaeR30BojTaV7O9GfqacY14SNj5CNB8ocL9tydNzTC0JrnNN7vY3eJhwCmkDj7tuEUaqQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9772,13 +9772,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.1.tgz", - "integrity": "sha512-ENp89vM9Pw4kv/koBb5N2f9bDZsR0hpf3BdPMOg/pkS3pwO4dzNnQZVXtBbeyAadgm865DmQG2jMMLqmZXvuCw==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.7", + "@babel/helper-define-polyfill-provider": "^0.6.8", "core-js-compat": "^3.48.0" }, "peerDependencies": { diff --git a/examples/github-app/package.json b/examples/github-app/package.json index d977edfa5d32..15ebb171b0b0 100644 --- a/examples/github-app/package.json +++ b/examples/github-app/package.json @@ -31,9 +31,9 @@ "license": "Apache-2.0", "devDependencies": { "@anansi/cli": "3.1.103", - "@anansi/babel-preset": "6.2.24", + "@anansi/babel-preset": "6.2.25", "@anansi/browserslist-config": "1.7.4", - "@anansi/webpack-config": "21.1.15", + "@anansi/webpack-config": "21.1.16", "@babel/core": "7.29.0", "@linaria/core": "6.3.0", "@linaria/react": "6.3.0", diff --git a/examples/nextjs/package-lock.json b/examples/nextjs/package-lock.json index 7627f9d0baac..fdc7bc44b6f6 100644 --- a/examples/nextjs/package-lock.json +++ b/examples/nextjs/package-lock.json @@ -19,7 +19,7 @@ "@types/react-dom": "19.2.3", "clsx": "^2.1.1", "core-js": "^3.40.0", - "next": "~15.4.10", + "next": "~15.5.0", "react": "19.2.3", "react-dom": "19.2.3", "tar-fs": "^3.1.2", @@ -31,9 +31,9 @@ } }, "node_modules/@anansi/babel-preset": { - "version": "6.2.24", - "resolved": "https://registry.npmjs.org/@anansi/babel-preset/-/babel-preset-6.2.24.tgz", - "integrity": "sha512-s68SlDGZ9x1tzG7Bb7answVJWHQ1THe6up33tzAjThMn1QJaev9IGLo3Zj4Za8bzY1Jr+3IgcSHX7S+Ba9zrCA==", + "version": "6.2.25", + "resolved": "https://registry.npmjs.org/@anansi/babel-preset/-/babel-preset-6.2.25.tgz", + "integrity": "sha512-HOiONesK2sVOFqbKqG5yuOdmIPbfYSvvskS9lPaRrsjK0DtDAtISYJ2/BVrVyo8xKEGkLDDVbT4GeSPLoj/PQA==", "license": "BSD-3-Clause", "dependencies": { "@anansi/ts-utils": "^0.3.9", @@ -46,11 +46,11 @@ "@babel/plugin-transform-react-inline-elements": "^7.27.1", "@babel/plugin-transform-runtime": "^7.29.0", "@babel/plugin-transform-typescript": "^7.28.6", - "@babel/preset-env": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@babel/preset-react": "^7.28.5", "babel-plugin-macros": "^3.1.0", - "babel-plugin-module-resolver": "^5.0.2", - "babel-plugin-polyfill-corejs3": "^0.14.1", + "babel-plugin-module-resolver": "^5.0.3", + "babel-plugin-polyfill-corejs3": "^0.14.2", "babel-plugin-react-compiler": "1.0.0", "babel-plugin-root-import": "^6.6.0", "babel-plugin-transform-import-meta": "^2.3.3", @@ -109,12 +109,12 @@ } }, "node_modules/@anansi/babel-preset/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.1.tgz", - "integrity": "sha512-ENp89vM9Pw4kv/koBb5N2f9bDZsR0hpf3BdPMOg/pkS3pwO4dzNnQZVXtBbeyAadgm865DmQG2jMMLqmZXvuCw==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.7", + "@babel/helper-define-polyfill-provider": "^0.6.8", "core-js-compat": "^3.48.0" }, "peerDependencies": { @@ -287,9 +287,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.7.tgz", - "integrity": "sha512-6Fqi8MtQ/PweQ9xvux65emkLQ83uB+qAVtfHkC9UodyHMIZdxNI01HjLCLUtybElp2KY2XNE0nOgyP1E1vXw9w==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.28.6", @@ -1707,9 +1707,9 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.0.tgz", - "integrity": "sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", "license": "MIT", "dependencies": { "@babel/compat-data": "^7.29.0", @@ -2503,15 +2503,15 @@ } }, "node_modules/@next/env": { - "version": "15.4.11", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.4.11.tgz", - "integrity": "sha512-mIYp/091eYfPFezKX7ZPTWqrmSXq+ih6+LcUyKvLmeLQGhlPtot33kuEOd4U+xAA7sFfj21+OtCpIZx0g5SpvQ==", + "version": "15.5.14", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.14.tgz", + "integrity": "sha512-aXeirLYuASxEgi4X4WhfXsShCFxWDfNn/8ZeC5YXAS2BB4A8FJi1kwwGL6nvMVboE7fZCzmJPNdMvVHc8JpaiA==", "license": "MIT" }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.4.8.tgz", - "integrity": "sha512-Pf6zXp7yyQEn7sqMxur6+kYcywx5up1J849psyET7/8pG2gQTVMjU3NzgIt8SeEP5to3If/SaWmaA6H6ysBr1A==", + "version": "15.5.14", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.14.tgz", + "integrity": "sha512-Y9K6SPzobnZvrRDPO2s0grgzC+Egf0CqfbdvYmQVaztV890zicw8Z8+4Vqw8oPck8r1TjUHxVh8299Cg4TrxXg==", "cpu": [ "arm64" ], @@ -2525,9 +2525,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.4.8.tgz", - "integrity": "sha512-xla6AOfz68a6kq3gRQccWEvFC/VRGJmA/QuSLENSO7CZX5WIEkSz7r1FdXUjtGCQ1c2M+ndUAH7opdfLK1PQbw==", + "version": "15.5.14", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.14.tgz", + "integrity": "sha512-aNnkSMjSFRTOmkd7qoNI2/rETQm/vKD6c/Ac9BZGa9CtoOzy3c2njgz7LvebQJ8iPxdeTuGnAjagyis8a9ifBw==", "cpu": [ "x64" ], @@ -2541,9 +2541,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.4.8.tgz", - "integrity": "sha512-y3fmp+1Px/SJD+5ntve5QLZnGLycsxsVPkTzAc3zUiXYSOlTPqT8ynfmt6tt4fSo1tAhDPmryXpYKEAcoAPDJw==", + "version": "15.5.14", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.14.tgz", + "integrity": "sha512-tjlpia+yStPRS//6sdmlVwuO1Rioern4u2onafa5n+h2hCS9MAvMXqpVbSrjgiEOoCs0nJy7oPOmWgtRRNSM5Q==", "cpu": [ "arm64" ], @@ -2557,9 +2557,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.4.8.tgz", - "integrity": "sha512-DX/L8VHzrr1CfwaVjBQr3GWCqNNFgyWJbeQ10Lx/phzbQo3JNAxUok1DZ8JHRGcL6PgMRgj6HylnLNndxn4Z6A==", + "version": "15.5.14", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.14.tgz", + "integrity": "sha512-8B8cngBaLadl5lbDRdxGCP1Lef8ipD6KlxS3v0ElDAGil6lafrAM3B258p1KJOglInCVFUjk751IXMr2ixeQOQ==", "cpu": [ "arm64" ], @@ -2573,9 +2573,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.4.8.tgz", - "integrity": "sha512-9fLAAXKAL3xEIFdKdzG5rUSvSiZTLLTCc6JKq1z04DR4zY7DbAPcRvNm3K1inVhTiQCs19ZRAgUerHiVKMZZIA==", + "version": "15.5.14", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.14.tgz", + "integrity": "sha512-bAS6tIAg8u4Gn3Nz7fCPpSoKAexEt2d5vn1mzokcqdqyov6ZJ6gu6GdF9l8ORFrBuRHgv3go/RfzYz5BkZ6YSQ==", "cpu": [ "x64" ], @@ -2589,9 +2589,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.4.8.tgz", - "integrity": "sha512-s45V7nfb5g7dbS7JK6XZDcapicVrMMvX2uYgOHP16QuKH/JA285oy6HcxlKqwUNaFY/UC6EvQ8QZUOo19cBKSA==", + "version": "15.5.14", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.14.tgz", + "integrity": "sha512-mMxv/FcrT7Gfaq4tsR22l17oKWXZmH/lVqcvjX0kfp5I0lKodHYLICKPoX1KRnnE+ci6oIUdriUhuA3rBCDiSw==", "cpu": [ "x64" ], @@ -2605,9 +2605,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.4.8.tgz", - "integrity": "sha512-KjgeQyOAq7t/HzAJcWPGA8X+4WY03uSCZ2Ekk98S9OgCFsb6lfBE3dbUzUuEQAN2THbwYgFfxX2yFTCMm8Kehw==", + "version": "15.5.14", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.14.tgz", + "integrity": "sha512-OTmiBlYThppnvnsqx0rBqjDRemlmIeZ8/o4zI7veaXoeO1PVHoyj2lfTfXTiiGjCyRDhA10y4h6ZvZvBiynr2g==", "cpu": [ "arm64" ], @@ -2621,9 +2621,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.4.8.tgz", - "integrity": "sha512-Exsmf/+42fWVnLMaZHzshukTBxZrSwuuLKFvqhGHJ+mC1AokqieLY/XzAl3jc/CqhXLqLY3RRjkKJ9YnLPcRWg==", + "version": "15.5.14", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.14.tgz", + "integrity": "sha512-+W7eFf3RS7m4G6tppVTOSyP9Y6FsJXfOuKzav1qKniiFm3KFByQfPEcouHdjlZmysl4zJGuGLQ/M9XyVeyeNEg==", "cpu": [ "x64" ], @@ -2711,9 +2711,10 @@ } }, "node_modules/babel-plugin-module-resolver": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.2.tgz", - "integrity": "sha512-9KtaCazHee2xc0ibfqsDeamwDps6FZNo5S0Q81dUqEuFzVwPhcT4J5jOqIVvgCA3Q/wO9hKYxN/Ds3tIsp5ygg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.3.tgz", + "integrity": "sha512-h8h6H71ZvdLJZxZrYkaeR30BojTaV7O9GfqacY14SNj5CNB8ocL9tydNzTC0JrnNN7vY3eJhwCmkDj7tuEUaqQ==", + "license": "MIT", "dependencies": { "find-babel-config": "^2.1.1", "glob": "^9.3.3", @@ -3336,12 +3337,12 @@ } }, "node_modules/next": { - "version": "15.4.11", - "resolved": "https://registry.npmjs.org/next/-/next-15.4.11.tgz", - "integrity": "sha512-IJRyXal45mIsshZI5XJne/intjusslUP1F+FHVBIyMGEqbYtIq1Irdx5vdWBBg58smviPDycmDeV6txsfkv1RQ==", + "version": "15.5.14", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.14.tgz", + "integrity": "sha512-M6S+4JyRjmKic2Ssm7jHUPkE6YUJ6lv4507jprsSZLulubz0ihO2E+S4zmQK3JZ2ov81JrugukKU4Tz0ivgqqQ==", "license": "MIT", "dependencies": { - "@next/env": "15.4.11", + "@next/env": "15.5.14", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", @@ -3354,14 +3355,14 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.4.8", - "@next/swc-darwin-x64": "15.4.8", - "@next/swc-linux-arm64-gnu": "15.4.8", - "@next/swc-linux-arm64-musl": "15.4.8", - "@next/swc-linux-x64-gnu": "15.4.8", - "@next/swc-linux-x64-musl": "15.4.8", - "@next/swc-win32-arm64-msvc": "15.4.8", - "@next/swc-win32-x64-msvc": "15.4.8", + "@next/swc-darwin-arm64": "15.5.14", + "@next/swc-darwin-x64": "15.5.14", + "@next/swc-linux-arm64-gnu": "15.5.14", + "@next/swc-linux-arm64-musl": "15.5.14", + "@next/swc-linux-x64-gnu": "15.5.14", + "@next/swc-linux-x64-musl": "15.5.14", + "@next/swc-win32-arm64-msvc": "15.5.14", + "@next/swc-win32-x64-msvc": "15.5.14", "sharp": "^0.34.3" }, "peerDependencies": { diff --git a/examples/nextjs/package.json b/examples/nextjs/package.json index b4b941613e1b..5618f0882edd 100644 --- a/examples/nextjs/package.json +++ b/examples/nextjs/package.json @@ -27,7 +27,7 @@ "@types/react-dom": "19.2.3", "clsx": "^2.1.1", "core-js": "^3.40.0", - "next": "~15.4.10", + "next": "~15.5.0", "react": "19.2.3", "react-dom": "19.2.3", "tar-fs": "^3.1.2", diff --git a/examples/test-bundlesize/package.json b/examples/test-bundlesize/package.json index 131e539239d0..04ecc2df1f96 100644 --- a/examples/test-bundlesize/package.json +++ b/examples/test-bundlesize/package.json @@ -25,9 +25,9 @@ "anansi" ], "devDependencies": { - "@anansi/babel-preset": "6.2.24", + "@anansi/babel-preset": "6.2.25", "@anansi/browserslist-config": "^1.4.3", - "@anansi/webpack-config": "21.1.15", + "@anansi/webpack-config": "21.1.16", "@babel/core": "^7.22.15", "@types/react": "*", "@types/react-dom": "*", diff --git a/examples/todo-app/package-lock.json b/examples/todo-app/package-lock.json index b5d6fe93d481..231821444219 100644 --- a/examples/todo-app/package-lock.json +++ b/examples/todo-app/package-lock.json @@ -19,9 +19,9 @@ "uuid": "^13.0.0" }, "devDependencies": { - "@anansi/babel-preset": "6.2.24", + "@anansi/babel-preset": "6.2.25", "@anansi/browserslist-config": "1.7.4", - "@anansi/webpack-config": "21.1.15", + "@anansi/webpack-config": "21.1.16", "@babel/core": "7.29.0", "@linaria/core": "6.3.0", "@linaria/react": "6.3.0", @@ -39,9 +39,9 @@ } }, "node_modules/@anansi/babel-preset": { - "version": "6.2.24", - "resolved": "https://registry.npmjs.org/@anansi/babel-preset/-/babel-preset-6.2.24.tgz", - "integrity": "sha512-s68SlDGZ9x1tzG7Bb7answVJWHQ1THe6up33tzAjThMn1QJaev9IGLo3Zj4Za8bzY1Jr+3IgcSHX7S+Ba9zrCA==", + "version": "6.2.25", + "resolved": "https://registry.npmjs.org/@anansi/babel-preset/-/babel-preset-6.2.25.tgz", + "integrity": "sha512-HOiONesK2sVOFqbKqG5yuOdmIPbfYSvvskS9lPaRrsjK0DtDAtISYJ2/BVrVyo8xKEGkLDDVbT4GeSPLoj/PQA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -55,11 +55,11 @@ "@babel/plugin-transform-react-inline-elements": "^7.27.1", "@babel/plugin-transform-runtime": "^7.29.0", "@babel/plugin-transform-typescript": "^7.28.6", - "@babel/preset-env": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@babel/preset-react": "^7.28.5", "babel-plugin-macros": "^3.1.0", - "babel-plugin-module-resolver": "^5.0.2", - "babel-plugin-polyfill-corejs3": "^0.14.1", + "babel-plugin-module-resolver": "^5.0.3", + "babel-plugin-polyfill-corejs3": "^0.14.2", "babel-plugin-react-compiler": "1.0.0", "babel-plugin-root-import": "^6.6.0", "babel-plugin-transform-import-meta": "^2.3.3", @@ -118,13 +118,13 @@ } }, "node_modules/@anansi/babel-preset/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.1.tgz", - "integrity": "sha512-ENp89vM9Pw4kv/koBb5N2f9bDZsR0hpf3BdPMOg/pkS3pwO4dzNnQZVXtBbeyAadgm865DmQG2jMMLqmZXvuCw==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.7", + "@babel/helper-define-polyfill-provider": "^0.6.8", "core-js-compat": "^3.48.0" }, "peerDependencies": { @@ -160,9 +160,9 @@ } }, "node_modules/@anansi/webpack-config": { - "version": "21.1.15", - "resolved": "https://registry.npmjs.org/@anansi/webpack-config/-/webpack-config-21.1.15.tgz", - "integrity": "sha512-YUTPT+DDsQMqlptNJ9y7cvErbm0hmN6P4ixYMy/JXOTiSKOyr9FSBDm7bl78mqTxTwBnxwvA613gEecsSxOy8A==", + "version": "21.1.16", + "resolved": "https://registry.npmjs.org/@anansi/webpack-config/-/webpack-config-21.1.16.tgz", + "integrity": "sha512-bEcDAgVhDTqVszmKn+eqXFVPYxRW6HUHv+xD2N8vNxoHfe66XZDG3jJzoNcUVGp2X/NiVeRWvan5mmxJ6ci1Hg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -175,7 +175,7 @@ "@wyw-in-js/webpack-loader": "^1.0.6", "assert": "^2.1.0", "autoprefixer": "^10.4.27", - "babel-loader": "^10.1.0", + "babel-loader": "^10.1.1", "browserify-zlib": "^0.2.0", "buffer": "^6.0.3", "circular-dependency-plugin": "^5.2.2", @@ -496,9 +496,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.7.tgz", - "integrity": "sha512-6Fqi8MtQ/PweQ9xvux65emkLQ83uB+qAVtfHkC9UodyHMIZdxNI01HjLCLUtybElp2KY2XNE0nOgyP1E1vXw9w==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", "dev": true, "license": "MIT", "dependencies": { @@ -2036,9 +2036,9 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.0.tgz", - "integrity": "sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", "dev": true, "license": "MIT", "dependencies": { @@ -6062,10 +6062,11 @@ } }, "node_modules/babel-plugin-module-resolver": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.2.tgz", - "integrity": "sha512-9KtaCazHee2xc0ibfqsDeamwDps6FZNo5S0Q81dUqEuFzVwPhcT4J5jOqIVvgCA3Q/wO9hKYxN/Ds3tIsp5ygg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.3.tgz", + "integrity": "sha512-h8h6H71ZvdLJZxZrYkaeR30BojTaV7O9GfqacY14SNj5CNB8ocL9tydNzTC0JrnNN7vY3eJhwCmkDj7tuEUaqQ==", "dev": true, + "license": "MIT", "dependencies": { "find-babel-config": "^2.1.1", "glob": "^9.3.3", diff --git a/examples/todo-app/package.json b/examples/todo-app/package.json index 1a81af437fc1..dfcef3bdbf68 100644 --- a/examples/todo-app/package.json +++ b/examples/todo-app/package.json @@ -28,9 +28,9 @@ "private": true, "license": "Apache-2.0", "devDependencies": { - "@anansi/babel-preset": "6.2.24", + "@anansi/babel-preset": "6.2.25", "@anansi/browserslist-config": "1.7.4", - "@anansi/webpack-config": "21.1.15", + "@anansi/webpack-config": "21.1.16", "@babel/core": "7.29.0", "@linaria/core": "6.3.0", "@linaria/react": "6.3.0", diff --git a/scripts/ci-install.sh b/scripts/ci-install.sh new file mode 100755 index 000000000000..9880ddb18764 --- /dev/null +++ b/scripts/ci-install.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# Installs only the workspaces needed for a CI job, then restores +# package.json and yarn.lock so later steps never see a dirty tree. +# +# Usage: scripts/ci-install.sh [extra-workspace ...] +# Always includes packages/* and scripts/rollup-plugins. +# Pass additional workspace paths as arguments. +# +# Examples: +# scripts/ci-install.sh # release / beta-release +# scripts/ci-install.sh examples/benchmark # node benchmark +set -euo pipefail + +WORKSPACES='["packages/*","scripts/rollup-plugins"' +for ws in "$@"; do + WORKSPACES+=',"'"$ws"'"' +done +WORKSPACES+=']' + +node -e " + const f = 'package.json'; + const p = JSON.parse(require('fs').readFileSync(f, 'utf8')); + p.workspaces = $WORKSPACES; + require('fs').writeFileSync(f, JSON.stringify(p, null, 2) + '\n'); +" +corepack enable +YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install + +git checkout -- package.json yarn.lock diff --git a/website/package.json b/website/package.json index eb4778b415ba..18dcbdd91041 100644 --- a/website/package.json +++ b/website/package.json @@ -32,7 +32,7 @@ }, "dependencies": { "@anansi/browserslist-config": "1.7.4", - "@anansi/webpack-config": "21.1.15", + "@anansi/webpack-config": "21.1.16", "@data-client/endpoint": "workspace:*", "@data-client/graphql": "workspace:*", "@data-client/react": "workspace:*", diff --git a/website/src/components/Playground/editor-types/@data-client/endpoint.d.ts b/website/src/components/Playground/editor-types/@data-client/endpoint.d.ts index a01341a40b9e..9dde0bb92766 100644 --- a/website/src/components/Playground/editor-types/@data-client/endpoint.d.ts +++ b/website/src/components/Playground/editor-types/@data-client/endpoint.d.ts @@ -706,6 +706,11 @@ interface CollectionInterface(merge: (existing: any, incoming: any) => any, createCollectionFilter?: (...args: P) => (collectionKey: Record) => boolean): Collection; + /** Constructs a custom move schema for this collection + * + * @see https://dataclient.io/rest/api/Collection#moveWith + */ + moveWith

(merge: (existing: any, incoming: any) => any): Collection; readonly cacheWith: object; readonly schema: S; readonly key: string; @@ -1135,6 +1140,12 @@ declare class Values implements SchemaClass { ): undefined; } +/** Collection merge that places incoming items at the start. + * + * @see https://dataclient.io/rest/api/Collection#moveWith + */ +declare const unshift: (existing: any, incoming: any) => any; + declare let CollectionRoot: CollectionConstructor; /** @@ -1183,8 +1194,9 @@ type schema_d_UnionResult = UnionResult; declare const schema_d_UnionRoot: typeof UnionRoot; type schema_d_Values = Values; declare const schema_d_Values: typeof Values; +declare const schema_d_unshift: typeof unshift; declare namespace schema_d { - export { schema_d_All as All, Array$1 as Array, schema_d_Collection as Collection, type schema_d_CollectionArrayAdder as CollectionArrayAdder, type schema_d_CollectionArrayOrValuesAdder as CollectionArrayOrValuesAdder, type schema_d_CollectionConstructor as CollectionConstructor, type schema_d_CollectionFromSchema as CollectionFromSchema, type schema_d_CollectionInterface as CollectionInterface, schema_d_CollectionRoot as CollectionRoot, type schema_d_DefaultArgs as DefaultArgs, EntityMixin as Entity, type schema_d_EntityInterface as EntityInterface, type schema_d_EntityMap as EntityMap, schema_d_EntityMixin as EntityMixin, schema_d_Invalidate as Invalidate, type schema_d_MergeFunction as MergeFunction, Object$1 as Object, schema_d_Query as Query, type schema_d_SchemaAttributeFunction as SchemaAttributeFunction, type schema_d_SchemaClass as SchemaClass, type schema_d_SchemaFunction as SchemaFunction, type schema_d_StrategyFunction as StrategyFunction, schema_d_Union as Union, type schema_d_UnionConstructor as UnionConstructor, type schema_d_UnionInstance as UnionInstance, type schema_d_UnionResult as UnionResult, schema_d_UnionRoot as UnionRoot, schema_d_Values as Values }; + export { schema_d_All as All, Array$1 as Array, schema_d_Collection as Collection, type schema_d_CollectionArrayAdder as CollectionArrayAdder, type schema_d_CollectionArrayOrValuesAdder as CollectionArrayOrValuesAdder, type schema_d_CollectionConstructor as CollectionConstructor, type schema_d_CollectionFromSchema as CollectionFromSchema, type schema_d_CollectionInterface as CollectionInterface, schema_d_CollectionRoot as CollectionRoot, type schema_d_DefaultArgs as DefaultArgs, EntityMixin as Entity, type schema_d_EntityInterface as EntityInterface, type schema_d_EntityMap as EntityMap, schema_d_EntityMixin as EntityMixin, schema_d_Invalidate as Invalidate, type schema_d_MergeFunction as MergeFunction, Object$1 as Object, schema_d_Query as Query, type schema_d_SchemaAttributeFunction as SchemaAttributeFunction, type schema_d_SchemaClass as SchemaClass, type schema_d_SchemaFunction as SchemaFunction, type schema_d_StrategyFunction as StrategyFunction, schema_d_Union as Union, type schema_d_UnionConstructor as UnionConstructor, type schema_d_UnionInstance as UnionInstance, type schema_d_UnionResult as UnionResult, schema_d_UnionRoot as UnionRoot, schema_d_Values as Values, schema_d_unshift as unshift }; } declare const Entity_base: IEntityClass { @@ -1235,4 +1247,4 @@ declare function validateRequired(processedEntity: any, requiredDefaults: Record /** https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-4.html#the-noinfer-utility-type */ type NI = NoInfer; -export { type AbstractInstanceType, All, Array$1 as Array, type CheckLoop, Collection, type DefaultArgs, type Denormalize, type DenormalizeNullable, type DenormalizeNullableObject, type DenormalizeObject, Endpoint, type EndpointExtendOptions, type EndpointExtraOptions, type EndpointInstance, type EndpointInstanceInterface, type EndpointInterface, type EndpointOptions, type EndpointParam, type EndpointToFunction, type EntitiesInterface, type EntitiesPath, Entity, type EntityFields, type EntityInterface, type EntityMap, EntityMixin, type EntityPath, type EntityTable, type ErrorTypes, type ExpiryStatusInterface, ExtendableEndpoint, type FetchFunction, type GetEntity, type GetIndex, type IEntityClass, type IEntityInstance, type INormalizeDelegate, type IQueryDelegate, type IndexPath, Invalidate, type KeyofEndpointInstance, type Mergeable, type MutateEndpoint, type NI, type NetworkError, type Normalize, type NormalizeNullable, type NormalizeObject, type NormalizedEntity, type NormalizedIndex, type NormalizedNullableObject, Object$1 as Object, type ObjectArgs, type PolymorphicInterface, Query, type Queryable, type ReadEndpoint, type RecordClass, type ResolveType, type Schema, type SchemaArgs, type SchemaClass, type SchemaSimple, type Serializable, type SnapshotInterface, Union, type UnknownError, Values, type Visit, schema_d as schema, validateRequired }; +export { type AbstractInstanceType, All, Array$1 as Array, type CheckLoop, Collection, type DefaultArgs, type Denormalize, type DenormalizeNullable, type DenormalizeNullableObject, type DenormalizeObject, Endpoint, type EndpointExtendOptions, type EndpointExtraOptions, type EndpointInstance, type EndpointInstanceInterface, type EndpointInterface, type EndpointOptions, type EndpointParam, type EndpointToFunction, type EntitiesInterface, type EntitiesPath, Entity, type EntityFields, type EntityInterface, type EntityMap, EntityMixin, type EntityPath, type EntityTable, type ErrorTypes, type ExpiryStatusInterface, ExtendableEndpoint, type FetchFunction, type GetEntity, type GetIndex, type IEntityClass, type IEntityInstance, type INormalizeDelegate, type IQueryDelegate, type IndexPath, Invalidate, type KeyofEndpointInstance, type Mergeable, type MutateEndpoint, type NI, type NetworkError, type Normalize, type NormalizeNullable, type NormalizeObject, type NormalizedEntity, type NormalizedIndex, type NormalizedNullableObject, Object$1 as Object, type ObjectArgs, type PolymorphicInterface, Query, type Queryable, type ReadEndpoint, type RecordClass, type ResolveType, type Schema, type SchemaArgs, type SchemaClass, type SchemaSimple, type Serializable, type SnapshotInterface, Union, type UnknownError, Values, type Visit, schema_d as schema, unshift, validateRequired }; diff --git a/website/src/components/Playground/editor-types/@data-client/graphql.d.ts b/website/src/components/Playground/editor-types/@data-client/graphql.d.ts index 328c3967a8f8..b84e2869e564 100644 --- a/website/src/components/Playground/editor-types/@data-client/graphql.d.ts +++ b/website/src/components/Playground/editor-types/@data-client/graphql.d.ts @@ -706,6 +706,11 @@ interface CollectionInterface(merge: (existing: any, incoming: any) => any, createCollectionFilter?: (...args: P) => (collectionKey: Record) => boolean): Collection; + /** Constructs a custom move schema for this collection + * + * @see https://dataclient.io/rest/api/Collection#moveWith + */ + moveWith

(merge: (existing: any, incoming: any) => any): Collection; readonly cacheWith: object; readonly schema: S; readonly key: string; @@ -1135,6 +1140,12 @@ declare class Values implements SchemaClass { ): undefined; } +/** Collection merge that places incoming items at the start. + * + * @see https://dataclient.io/rest/api/Collection#moveWith + */ +declare const unshift: (existing: any, incoming: any) => any; + declare let CollectionRoot: CollectionConstructor; /** @@ -1183,8 +1194,9 @@ type schema_d_UnionResult = UnionResult; declare const schema_d_UnionRoot: typeof UnionRoot; type schema_d_Values = Values; declare const schema_d_Values: typeof Values; +declare const schema_d_unshift: typeof unshift; declare namespace schema_d { - export { schema_d_All as All, Array$1 as Array, schema_d_Collection as Collection, type schema_d_CollectionArrayAdder as CollectionArrayAdder, type schema_d_CollectionArrayOrValuesAdder as CollectionArrayOrValuesAdder, type schema_d_CollectionConstructor as CollectionConstructor, type schema_d_CollectionFromSchema as CollectionFromSchema, type schema_d_CollectionInterface as CollectionInterface, schema_d_CollectionRoot as CollectionRoot, type schema_d_DefaultArgs as DefaultArgs, EntityMixin as Entity, type schema_d_EntityInterface as EntityInterface, type schema_d_EntityMap as EntityMap, schema_d_EntityMixin as EntityMixin, schema_d_Invalidate as Invalidate, type schema_d_MergeFunction as MergeFunction, Object$1 as Object, schema_d_Query as Query, type schema_d_SchemaAttributeFunction as SchemaAttributeFunction, type schema_d_SchemaClass as SchemaClass, type schema_d_SchemaFunction as SchemaFunction, type schema_d_StrategyFunction as StrategyFunction, schema_d_Union as Union, type schema_d_UnionConstructor as UnionConstructor, type schema_d_UnionInstance as UnionInstance, type schema_d_UnionResult as UnionResult, schema_d_UnionRoot as UnionRoot, schema_d_Values as Values }; + export { schema_d_All as All, Array$1 as Array, schema_d_Collection as Collection, type schema_d_CollectionArrayAdder as CollectionArrayAdder, type schema_d_CollectionArrayOrValuesAdder as CollectionArrayOrValuesAdder, type schema_d_CollectionConstructor as CollectionConstructor, type schema_d_CollectionFromSchema as CollectionFromSchema, type schema_d_CollectionInterface as CollectionInterface, schema_d_CollectionRoot as CollectionRoot, type schema_d_DefaultArgs as DefaultArgs, EntityMixin as Entity, type schema_d_EntityInterface as EntityInterface, type schema_d_EntityMap as EntityMap, schema_d_EntityMixin as EntityMixin, schema_d_Invalidate as Invalidate, type schema_d_MergeFunction as MergeFunction, Object$1 as Object, schema_d_Query as Query, type schema_d_SchemaAttributeFunction as SchemaAttributeFunction, type schema_d_SchemaClass as SchemaClass, type schema_d_SchemaFunction as SchemaFunction, type schema_d_StrategyFunction as StrategyFunction, schema_d_Union as Union, type schema_d_UnionConstructor as UnionConstructor, type schema_d_UnionInstance as UnionInstance, type schema_d_UnionResult as UnionResult, schema_d_UnionRoot as UnionRoot, schema_d_Values as Values, schema_d_unshift as unshift }; } declare const Entity_base: IEntityClass { @@ -1276,4 +1288,4 @@ interface GQLError { path: (string | number)[]; } -export { type AbstractInstanceType, All, Array$1 as Array, type CheckLoop, Collection, type DefaultArgs, type Denormalize, type DenormalizeNullable, type DenormalizeNullableObject, type DenormalizeObject, Endpoint, type EndpointExtendOptions, type EndpointExtraOptions, type EndpointInstance, type EndpointInstanceInterface, type EndpointInterface, type EndpointOptions, type EndpointParam, type EndpointToFunction, type EntitiesInterface, type EntitiesPath, Entity, type EntityFields, type EntityInterface, type EntityMap, EntityMixin, type EntityPath, type EntityTable, type ErrorTypes, type ExpiryStatusInterface, ExtendableEndpoint, type FetchFunction, GQLEndpoint, GQLEntity, type GQLError, GQLNetworkError, type GQLOptions, type GetEntity, type GetIndex, type IEntityClass, type IEntityInstance, type INormalizeDelegate, type IQueryDelegate, type IndexPath, Invalidate, type KeyofEndpointInstance, type Mergeable, type MutateEndpoint, type NI, type NetworkError, type Normalize, type NormalizeNullable, type NormalizeObject, type NormalizedEntity, type NormalizedIndex, type NormalizedNullableObject, Object$1 as Object, type ObjectArgs, type PolymorphicInterface, Query, type Queryable, type ReadEndpoint, type RecordClass, type ResolveType, type Schema, type SchemaArgs, type SchemaClass, type SchemaSimple, type Serializable, type SnapshotInterface, Union, type UnknownError, Values, type Visit, schema_d as schema, validateRequired }; +export { type AbstractInstanceType, All, Array$1 as Array, type CheckLoop, Collection, type DefaultArgs, type Denormalize, type DenormalizeNullable, type DenormalizeNullableObject, type DenormalizeObject, Endpoint, type EndpointExtendOptions, type EndpointExtraOptions, type EndpointInstance, type EndpointInstanceInterface, type EndpointInterface, type EndpointOptions, type EndpointParam, type EndpointToFunction, type EntitiesInterface, type EntitiesPath, Entity, type EntityFields, type EntityInterface, type EntityMap, EntityMixin, type EntityPath, type EntityTable, type ErrorTypes, type ExpiryStatusInterface, ExtendableEndpoint, type FetchFunction, GQLEndpoint, GQLEntity, type GQLError, GQLNetworkError, type GQLOptions, type GetEntity, type GetIndex, type IEntityClass, type IEntityInstance, type INormalizeDelegate, type IQueryDelegate, type IndexPath, Invalidate, type KeyofEndpointInstance, type Mergeable, type MutateEndpoint, type NI, type NetworkError, type Normalize, type NormalizeNullable, type NormalizeObject, type NormalizedEntity, type NormalizedIndex, type NormalizedNullableObject, Object$1 as Object, type ObjectArgs, type PolymorphicInterface, Query, type Queryable, type ReadEndpoint, type RecordClass, type ResolveType, type Schema, type SchemaArgs, type SchemaClass, type SchemaSimple, type Serializable, type SnapshotInterface, Union, type UnknownError, Values, type Visit, schema_d as schema, unshift, validateRequired }; diff --git a/website/src/components/Playground/editor-types/@data-client/rest.d.ts b/website/src/components/Playground/editor-types/@data-client/rest.d.ts index 42e05b0dbac1..b5c172ec1633 100644 --- a/website/src/components/Playground/editor-types/@data-client/rest.d.ts +++ b/website/src/components/Playground/editor-types/@data-client/rest.d.ts @@ -704,6 +704,11 @@ interface CollectionInterface(merge: (existing: any, incoming: any) => any, createCollectionFilter?: (...args: P) => (collectionKey: Record) => boolean): Collection; + /** Constructs a custom move schema for this collection + * + * @see https://dataclient.io/rest/api/Collection#moveWith + */ + moveWith

(merge: (existing: any, incoming: any) => any): Collection; readonly cacheWith: object; readonly schema: S; readonly key: string; @@ -1133,6 +1138,12 @@ declare class Values implements SchemaClass { ): undefined; } +/** Collection merge that places incoming items at the start. + * + * @see https://dataclient.io/rest/api/Collection#moveWith + */ +declare const unshift: (existing: any, incoming: any) => any; + declare let CollectionRoot: CollectionConstructor; /** @@ -1181,8 +1192,9 @@ type schema_d_UnionResult = UnionResult; declare const schema_d_UnionRoot: typeof UnionRoot; type schema_d_Values = Values; declare const schema_d_Values: typeof Values; +declare const schema_d_unshift: typeof unshift; declare namespace schema_d { - export { schema_d_All as All, Array$1 as Array, schema_d_Collection as Collection, type schema_d_CollectionArrayAdder as CollectionArrayAdder, type schema_d_CollectionArrayOrValuesAdder as CollectionArrayOrValuesAdder, type schema_d_CollectionConstructor as CollectionConstructor, type schema_d_CollectionFromSchema as CollectionFromSchema, type schema_d_CollectionInterface as CollectionInterface, schema_d_CollectionRoot as CollectionRoot, type schema_d_DefaultArgs as DefaultArgs, EntityMixin as Entity, type schema_d_EntityInterface as EntityInterface, type schema_d_EntityMap as EntityMap, schema_d_EntityMixin as EntityMixin, schema_d_Invalidate as Invalidate, type schema_d_MergeFunction as MergeFunction, Object$1 as Object, schema_d_Query as Query, type schema_d_SchemaAttributeFunction as SchemaAttributeFunction, type schema_d_SchemaClass as SchemaClass, type schema_d_SchemaFunction as SchemaFunction, type schema_d_StrategyFunction as StrategyFunction, schema_d_Union as Union, type schema_d_UnionConstructor as UnionConstructor, type schema_d_UnionInstance as UnionInstance, type schema_d_UnionResult as UnionResult, schema_d_UnionRoot as UnionRoot, schema_d_Values as Values }; + export { schema_d_All as All, Array$1 as Array, schema_d_Collection as Collection, type schema_d_CollectionArrayAdder as CollectionArrayAdder, type schema_d_CollectionArrayOrValuesAdder as CollectionArrayOrValuesAdder, type schema_d_CollectionConstructor as CollectionConstructor, type schema_d_CollectionFromSchema as CollectionFromSchema, type schema_d_CollectionInterface as CollectionInterface, schema_d_CollectionRoot as CollectionRoot, type schema_d_DefaultArgs as DefaultArgs, EntityMixin as Entity, type schema_d_EntityInterface as EntityInterface, type schema_d_EntityMap as EntityMap, schema_d_EntityMixin as EntityMixin, schema_d_Invalidate as Invalidate, type schema_d_MergeFunction as MergeFunction, Object$1 as Object, schema_d_Query as Query, type schema_d_SchemaAttributeFunction as SchemaAttributeFunction, type schema_d_SchemaClass as SchemaClass, type schema_d_SchemaFunction as SchemaFunction, type schema_d_StrategyFunction as StrategyFunction, schema_d_Union as Union, type schema_d_UnionConstructor as UnionConstructor, type schema_d_UnionInstance as UnionInstance, type schema_d_UnionResult as UnionResult, schema_d_UnionRoot as UnionRoot, schema_d_Values as Values, schema_d_unshift as unshift }; } declare const Entity_base: IEntityClass { @@ -1924,4 +1936,4 @@ declare class NetworkError extends Error { }; } -export { type AbstractInstanceType, type AddEndpoint, All, Array$1 as Array, type CheckLoop, Collection, type CustomResource, type DefaultArgs, type Defaults, type Denormalize, type DenormalizeNullable, type DenormalizeNullableObject, type DenormalizeObject, Endpoint, type EndpointExtendOptions, type EndpointExtraOptions, type EndpointInstance, type EndpointInstanceInterface, type EndpointInterface, type EndpointOptions, type EndpointParam, type EndpointToFunction, type EntitiesInterface, type EntitiesPath, Entity, type EntityFields, type EntityInterface, type EntityMap, EntityMixin, type EntityPath, type EntityTable, type ErrorTypes, type ExpiryStatusInterface, ExtendableEndpoint, type ExtendedResource, type FetchFunction, type FetchGet, type FetchMutate, type FromFallBack, type GetEndpoint, type GetEntity, type GetIndex, type HookResource, type HookableEndpointInterface, type IEntityClass, type IEntityInstance, type INormalizeDelegate, type IQueryDelegate, type RestEndpoint$1 as IRestEndpoint, type IndexPath, Invalidate, type KeyofEndpointInstance, type KeyofRestEndpoint, type KeysToArgs, type Mergeable, type MethodToSide, type MoveEndpoint, type MutateEndpoint, type NI, NetworkError, type Normalize, type NormalizeNullable, type NormalizeObject, type NormalizedEntity, type NormalizedIndex, type NormalizedNullableObject, Object$1 as Object, type ObjectArgs, type OptionsToFunction, type PaginationEndpoint, type PaginationFieldEndpoint, type ParamFetchNoBody, type ParamFetchWithBody, type ParamToArgs, type PartialRestGenerics, type PathArgs, type PathArgsAndSearch, type PathKeys, type PolymorphicInterface, Query, type Queryable, type ReadEndpoint, type RecordClass, type RemoveEndpoint, type ResolveType, type Resource, type ResourceEndpointExtensions, type ResourceExtension, type ResourceGenerics, type ResourceInterface, type ResourceOptions, RestEndpoint, type RestEndpointConstructor, type RestEndpointConstructorOptions, type RestEndpointExtendOptions, type RestEndpointOptions, type RestExtendedEndpoint, type RestFetch, type RestGenerics, type RestInstance, type RestInstanceBase, type RestType, type RestTypeNoBody, type RestTypeWithBody, type Schema, type SchemaArgs, type SchemaClass, type SchemaSimple, type Serializable, type ShortenPath, type SnapshotInterface, Union, type UnknownError, Values, type Visit, resource as createResource, getUrlBase, getUrlTokens, hookifyResource, resource, schema_d as schema, validateRequired }; +export { type AbstractInstanceType, type AddEndpoint, All, Array$1 as Array, type CheckLoop, Collection, type CustomResource, type DefaultArgs, type Defaults, type Denormalize, type DenormalizeNullable, type DenormalizeNullableObject, type DenormalizeObject, Endpoint, type EndpointExtendOptions, type EndpointExtraOptions, type EndpointInstance, type EndpointInstanceInterface, type EndpointInterface, type EndpointOptions, type EndpointParam, type EndpointToFunction, type EntitiesInterface, type EntitiesPath, Entity, type EntityFields, type EntityInterface, type EntityMap, EntityMixin, type EntityPath, type EntityTable, type ErrorTypes, type ExpiryStatusInterface, ExtendableEndpoint, type ExtendedResource, type FetchFunction, type FetchGet, type FetchMutate, type FromFallBack, type GetEndpoint, type GetEntity, type GetIndex, type HookResource, type HookableEndpointInterface, type IEntityClass, type IEntityInstance, type INormalizeDelegate, type IQueryDelegate, type RestEndpoint$1 as IRestEndpoint, type IndexPath, Invalidate, type KeyofEndpointInstance, type KeyofRestEndpoint, type KeysToArgs, type Mergeable, type MethodToSide, type MoveEndpoint, type MutateEndpoint, type NI, NetworkError, type Normalize, type NormalizeNullable, type NormalizeObject, type NormalizedEntity, type NormalizedIndex, type NormalizedNullableObject, Object$1 as Object, type ObjectArgs, type OptionsToFunction, type PaginationEndpoint, type PaginationFieldEndpoint, type ParamFetchNoBody, type ParamFetchWithBody, type ParamToArgs, type PartialRestGenerics, type PathArgs, type PathArgsAndSearch, type PathKeys, type PolymorphicInterface, Query, type Queryable, type ReadEndpoint, type RecordClass, type RemoveEndpoint, type ResolveType, type Resource, type ResourceEndpointExtensions, type ResourceExtension, type ResourceGenerics, type ResourceInterface, type ResourceOptions, RestEndpoint, type RestEndpointConstructor, type RestEndpointConstructorOptions, type RestEndpointExtendOptions, type RestEndpointOptions, type RestExtendedEndpoint, type RestFetch, type RestGenerics, type RestInstance, type RestInstanceBase, type RestType, type RestTypeNoBody, type RestTypeWithBody, type Schema, type SchemaArgs, type SchemaClass, type SchemaSimple, type Serializable, type ShortenPath, type SnapshotInterface, Union, type UnknownError, Values, type Visit, resource as createResource, getUrlBase, getUrlTokens, hookifyResource, resource, schema_d as schema, unshift, validateRequired }; diff --git a/website/src/components/Playground/editor-types/globals.d.ts b/website/src/components/Playground/editor-types/globals.d.ts index a338038e8e41..e76eca2b0ae4 100644 --- a/website/src/components/Playground/editor-types/globals.d.ts +++ b/website/src/components/Playground/editor-types/globals.d.ts @@ -708,6 +708,11 @@ interface CollectionInterface(merge: (existing: any, incoming: any) => any, createCollectionFilter?: (...args: P) => (collectionKey: Record) => boolean): Collection; + /** Constructs a custom move schema for this collection + * + * @see https://dataclient.io/rest/api/Collection#moveWith + */ + moveWith

(merge: (existing: any, incoming: any) => any): Collection; readonly cacheWith: object; readonly schema: S; readonly key: string; @@ -1137,6 +1142,12 @@ declare class Values implements SchemaClass { ): undefined; } +/** Collection merge that places incoming items at the start. + * + * @see https://dataclient.io/rest/api/Collection#moveWith + */ +declare const unshift: (existing: any, incoming: any) => any; + declare let CollectionRoot: CollectionConstructor; /** @@ -1185,8 +1196,9 @@ type schema_d_UnionResult = UnionResult; declare const schema_d_UnionRoot: typeof UnionRoot; type schema_d_Values = Values; declare const schema_d_Values: typeof Values; +declare const schema_d_unshift: typeof unshift; declare namespace schema_d { - export { schema_d_All as All, Array$1 as Array, schema_d_Collection as Collection, type schema_d_CollectionArrayAdder as CollectionArrayAdder, type schema_d_CollectionArrayOrValuesAdder as CollectionArrayOrValuesAdder, type schema_d_CollectionConstructor as CollectionConstructor, type schema_d_CollectionFromSchema as CollectionFromSchema, type schema_d_CollectionInterface as CollectionInterface, schema_d_CollectionRoot as CollectionRoot, type schema_d_DefaultArgs as DefaultArgs, EntityMixin as Entity, type schema_d_EntityInterface as EntityInterface, type schema_d_EntityMap as EntityMap, schema_d_EntityMixin as EntityMixin, schema_d_Invalidate as Invalidate, type schema_d_MergeFunction as MergeFunction, Object$1 as Object, schema_d_Query as Query, type schema_d_SchemaAttributeFunction as SchemaAttributeFunction, type schema_d_SchemaClass as SchemaClass, type schema_d_SchemaFunction as SchemaFunction, type schema_d_StrategyFunction as StrategyFunction, schema_d_Union as Union, type schema_d_UnionConstructor as UnionConstructor, type schema_d_UnionInstance as UnionInstance, type schema_d_UnionResult as UnionResult, schema_d_UnionRoot as UnionRoot, schema_d_Values as Values }; + export { schema_d_All as All, Array$1 as Array, schema_d_Collection as Collection, type schema_d_CollectionArrayAdder as CollectionArrayAdder, type schema_d_CollectionArrayOrValuesAdder as CollectionArrayOrValuesAdder, type schema_d_CollectionConstructor as CollectionConstructor, type schema_d_CollectionFromSchema as CollectionFromSchema, type schema_d_CollectionInterface as CollectionInterface, schema_d_CollectionRoot as CollectionRoot, type schema_d_DefaultArgs as DefaultArgs, EntityMixin as Entity, type schema_d_EntityInterface as EntityInterface, type schema_d_EntityMap as EntityMap, schema_d_EntityMixin as EntityMixin, schema_d_Invalidate as Invalidate, type schema_d_MergeFunction as MergeFunction, Object$1 as Object, schema_d_Query as Query, type schema_d_SchemaAttributeFunction as SchemaAttributeFunction, type schema_d_SchemaClass as SchemaClass, type schema_d_SchemaFunction as SchemaFunction, type schema_d_StrategyFunction as StrategyFunction, schema_d_Union as Union, type schema_d_UnionConstructor as UnionConstructor, type schema_d_UnionInstance as UnionInstance, type schema_d_UnionResult as UnionResult, schema_d_UnionRoot as UnionRoot, schema_d_Values as Values, schema_d_unshift as unshift }; } declare const Entity_base: IEntityClass { @@ -2111,4 +2123,4 @@ declare function useController(): Controller; declare function useLive>(endpoint: E, ...args: readonly [...Parameters]): E['schema'] extends undefined | null ? ResolveType$1 : Denormalize$1; declare function useLive>(endpoint: E, ...args: readonly [...Parameters] | readonly [null]): E['schema'] extends undefined | null ? ResolveType$1 | undefined : DenormalizeNullable$1; -export { type AbstractInstanceType, type AddEndpoint, All, Array$1 as Array, _default as AsyncBoundary, type CheckLoop, Collection, type CustomResource, DataProvider, type DefaultArgs, type Defaults, type Denormalize, type DenormalizeNullable, type DenormalizeNullableObject, type DenormalizeObject, Endpoint, type EndpointExtendOptions, type EndpointExtraOptions, type EndpointInstance, type EndpointInstanceInterface, type EndpointInterface, type EndpointOptions, type EndpointParam, type EndpointToFunction, type EntitiesInterface, type EntitiesPath, Entity, type EntityFields, type EntityInterface, type EntityMap, EntityMixin, type EntityPath, type EntityTable, type ErrorTypes$1 as ErrorTypes, type ExpiryStatusInterface, ExtendableEndpoint, type ExtendedResource, type FetchFunction, type FetchGet, type FetchMutate, type FromFallBack, type GetEndpoint, type GetEntity, type GetIndex, type HookResource, type HookableEndpointInterface, type IEntityClass, type IEntityInstance, type INormalizeDelegate, type IQueryDelegate, type RestEndpoint$1 as IRestEndpoint, type IndexPath, Invalidate, type KeyofEndpointInstance, type KeyofRestEndpoint, type KeysToArgs, type Mergeable, type MethodToSide, type MoveEndpoint, type MutateEndpoint, type NI, NetworkError, ErrorBoundary as NetworkErrorBoundary, type Normalize, type NormalizeNullable, type NormalizeObject, type NormalizedEntity, type NormalizedIndex, type NormalizedNullableObject, Object$1 as Object, type ObjectArgs, type OptionsToFunction, type PaginationEndpoint, type PaginationFieldEndpoint, type ParamFetchNoBody, type ParamFetchWithBody, type ParamToArgs, type PartialRestGenerics, type PathArgs, type PathArgsAndSearch, type PathKeys, type PolymorphicInterface, Query, type Queryable, type ReadEndpoint, type RecordClass, type RemoveEndpoint, type ResolveType, type Resource, type ResourceEndpointExtensions, type ResourceExtension, type ResourceGenerics, type ResourceInterface, type ResourceOptions, RestEndpoint, type RestEndpointConstructor, type RestEndpointConstructorOptions, type RestEndpointExtendOptions, type RestEndpointOptions, type RestExtendedEndpoint, type RestFetch, type RestGenerics, type RestInstance, type RestInstanceBase, type RestType, type RestTypeNoBody, type RestTypeWithBody, type Schema, type SchemaArgs, type SchemaClass, type SchemaSimple, type Serializable, type ShortenPath, type SnapshotInterface, Union, type UnknownError, Values, type Visit, resource as createResource, getUrlBase, getUrlTokens, hookifyResource, resource, schema_d as schema, useCache, useController, useDLE, useError, useFetch, useLive, useQuery, useSubscription, useSuspense, validateRequired }; +export { type AbstractInstanceType, type AddEndpoint, All, Array$1 as Array, _default as AsyncBoundary, type CheckLoop, Collection, type CustomResource, DataProvider, type DefaultArgs, type Defaults, type Denormalize, type DenormalizeNullable, type DenormalizeNullableObject, type DenormalizeObject, Endpoint, type EndpointExtendOptions, type EndpointExtraOptions, type EndpointInstance, type EndpointInstanceInterface, type EndpointInterface, type EndpointOptions, type EndpointParam, type EndpointToFunction, type EntitiesInterface, type EntitiesPath, Entity, type EntityFields, type EntityInterface, type EntityMap, EntityMixin, type EntityPath, type EntityTable, type ErrorTypes$1 as ErrorTypes, type ExpiryStatusInterface, ExtendableEndpoint, type ExtendedResource, type FetchFunction, type FetchGet, type FetchMutate, type FromFallBack, type GetEndpoint, type GetEntity, type GetIndex, type HookResource, type HookableEndpointInterface, type IEntityClass, type IEntityInstance, type INormalizeDelegate, type IQueryDelegate, type RestEndpoint$1 as IRestEndpoint, type IndexPath, Invalidate, type KeyofEndpointInstance, type KeyofRestEndpoint, type KeysToArgs, type Mergeable, type MethodToSide, type MoveEndpoint, type MutateEndpoint, type NI, NetworkError, ErrorBoundary as NetworkErrorBoundary, type Normalize, type NormalizeNullable, type NormalizeObject, type NormalizedEntity, type NormalizedIndex, type NormalizedNullableObject, Object$1 as Object, type ObjectArgs, type OptionsToFunction, type PaginationEndpoint, type PaginationFieldEndpoint, type ParamFetchNoBody, type ParamFetchWithBody, type ParamToArgs, type PartialRestGenerics, type PathArgs, type PathArgsAndSearch, type PathKeys, type PolymorphicInterface, Query, type Queryable, type ReadEndpoint, type RecordClass, type RemoveEndpoint, type ResolveType, type Resource, type ResourceEndpointExtensions, type ResourceExtension, type ResourceGenerics, type ResourceInterface, type ResourceOptions, RestEndpoint, type RestEndpointConstructor, type RestEndpointConstructorOptions, type RestEndpointExtendOptions, type RestEndpointOptions, type RestExtendedEndpoint, type RestFetch, type RestGenerics, type RestInstance, type RestInstanceBase, type RestType, type RestTypeNoBody, type RestTypeWithBody, type Schema, type SchemaArgs, type SchemaClass, type SchemaSimple, type Serializable, type ShortenPath, type SnapshotInterface, Union, type UnknownError, Values, type Visit, resource as createResource, getUrlBase, getUrlTokens, hookifyResource, resource, schema_d as schema, unshift, useCache, useController, useDLE, useError, useFetch, useLive, useQuery, useSubscription, useSuspense, validateRequired }; diff --git a/website/src/components/Playground/editor-types/qs.d.ts b/website/src/components/Playground/editor-types/qs.d.ts index b993ed432437..506aae88191c 100644 --- a/website/src/components/Playground/editor-types/qs.d.ts +++ b/website/src/components/Playground/editor-types/qs.d.ts @@ -58,6 +58,7 @@ declare namespace QueryString { allowEmptyArrays?: boolean | undefined; duplicates?: "combine" | "first" | "last" | undefined; strictDepth?: boolean | undefined; + strictMerge?: boolean | undefined; throwOnLimitExceeded?: boolean | undefined; } diff --git a/yarn.lock b/yarn.lock index 8ce5b5774989..f1c2b270396d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -263,9 +263,9 @@ __metadata: languageName: node linkType: hard -"@anansi/babel-preset@npm:6.2.23": - version: 6.2.23 - resolution: "@anansi/babel-preset@npm:6.2.23" +"@anansi/babel-preset@npm:6.2.25, @anansi/babel-preset@npm:^6.2.19": + version: 6.2.25 + resolution: "@anansi/babel-preset@npm:6.2.25" dependencies: "@anansi/ts-utils": "npm:^0.3.9" "@babel/plugin-proposal-decorators": "npm:^7.29.0" @@ -277,11 +277,11 @@ __metadata: "@babel/plugin-transform-react-inline-elements": "npm:^7.27.1" "@babel/plugin-transform-runtime": "npm:^7.29.0" "@babel/plugin-transform-typescript": "npm:^7.28.6" - "@babel/preset-env": "npm:^7.29.0" + "@babel/preset-env": "npm:^7.29.2" "@babel/preset-react": "npm:^7.28.5" babel-plugin-macros: "npm:^3.1.0" - babel-plugin-module-resolver: "npm:^5.0.2" - babel-plugin-polyfill-corejs3: "npm:^0.14.0" + babel-plugin-module-resolver: "npm:^5.0.3" + babel-plugin-polyfill-corejs3: "npm:^0.14.2" babel-plugin-react-compiler: "npm:1.0.0" babel-plugin-root-import: "npm:^6.6.0" babel-plugin-transform-import-meta: "npm:^2.3.3" @@ -322,70 +322,7 @@ __metadata: optional: true typescript: optional: true - checksum: 10c0/b7d67ac3f7a13895d4cf9518ced7bd13b12284d2119b7f3e026d148480c6450fe59ea1d7cbf4e683e0bbfa5eb1d1c2be91e3973a8b47222e109549ef27f2a4f1 - languageName: node - linkType: hard - -"@anansi/babel-preset@npm:6.2.24, @anansi/babel-preset@npm:^6.2.19": - version: 6.2.24 - resolution: "@anansi/babel-preset@npm:6.2.24" - dependencies: - "@anansi/ts-utils": "npm:^0.3.9" - "@babel/plugin-proposal-decorators": "npm:^7.29.0" - "@babel/plugin-proposal-export-default-from": "npm:^7.27.1" - "@babel/plugin-proposal-record-and-tuple": "npm:^7.27.1" - "@babel/plugin-syntax-function-bind": "npm:^7.28.6" - "@babel/plugin-transform-object-assign": "npm:^7.27.1" - "@babel/plugin-transform-react-constant-elements": "npm:^7.27.1" - "@babel/plugin-transform-react-inline-elements": "npm:^7.27.1" - "@babel/plugin-transform-runtime": "npm:^7.29.0" - "@babel/plugin-transform-typescript": "npm:^7.28.6" - "@babel/preset-env": "npm:^7.29.0" - "@babel/preset-react": "npm:^7.28.5" - babel-plugin-macros: "npm:^3.1.0" - babel-plugin-module-resolver: "npm:^5.0.2" - babel-plugin-polyfill-corejs3: "npm:^0.14.1" - babel-plugin-react-compiler: "npm:1.0.0" - babel-plugin-root-import: "npm:^6.6.0" - babel-plugin-transform-import-meta: "npm:^2.3.3" - babel-plugin-transform-react-remove-prop-types: "npm:^0.4.24" - core-js-compat: "npm:^3.40.0" - glob-to-regexp: "npm:^0.4.1" - path: "npm:^0.12.7" - peerDependencies: - "@babel/core": ^7.12.0 - "@babel/runtime": ^7.7.0 - "@babel/runtime-corejs2": ^7.10.0 - "@babel/runtime-corejs3": ^7.10.0 - babel-minify: ^0.5.1 - core-js: "*" - core-js-pure: "*" - lodash: "*" - ramda: "*" - react-refresh: "*" - typescript: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - "@babel/runtime": - optional: true - "@babel/runtime-corejs2": - optional: true - "@babel/runtime-corejs3": - optional: true - babel-minify: - optional: true - core-js: - optional: true - core-js-pure: - optional: true - lodash: - optional: true - ramda: - optional: true - react-refresh: - optional: true - typescript: - optional: true - checksum: 10c0/3a42dbcb1ee1d09e41bd63596696c017ae18fa89f0bd981636ba09a6b83f56154573362700f52be1a74f5be9d325efebdead66b284efd6c5488d5da9c83fc3ab + checksum: 10c0/6d5b96442d355a1970528b2f2e8905cfcc2772ac45cb42dad1bf8d2cb431968c56c592f1c4dd6c9c090693bc39098e0d5d36d209205570dbfcfd0ab581097986 languageName: node linkType: hard @@ -586,116 +523,9 @@ __metadata: languageName: node linkType: hard -"@anansi/webpack-config@npm:21.1.14": - version: 21.1.14 - resolution: "@anansi/webpack-config@npm:21.1.14" - dependencies: - "@babel/runtime-corejs3": "npm:^7.26.0" - "@pmmmwh/react-refresh-webpack-plugin": "npm:^0.6.2" - "@svgr/webpack": "npm:^8.1.0" - "@types/sass-loader": "npm:^8.0.10" - "@types/webpack-bundle-analyzer": "npm:^4.7.0" - "@vue/preload-webpack-plugin": "npm:^2.0.0" - "@wyw-in-js/webpack-loader": "npm:^1.0.6" - assert: "npm:^2.1.0" - autoprefixer: "npm:^10.4.27" - babel-loader: "npm:^10.0.0" - browserify-zlib: "npm:^0.2.0" - buffer: "npm:^6.0.3" - circular-dependency-plugin: "npm:^5.2.2" - clean-webpack-plugin: "npm:^4.0.0" - console-browserify: "npm:^1.2.0" - constants-browserify: "npm:^1.0.0" - core-js-pure: "npm:^3.40.0" - crypto-browserify: "npm:^3.12.1" - css-loader: "npm:^7.1.4" - css-minimizer-webpack-plugin: "npm:^7.0.4" - domain-browser: "npm:^5.7.0" - duplicate-package-checker-webpack-plugin: "npm:^3.0.0" - events: "npm:^3.3.0" - file-loader: "npm:^6.2.0" - html-loader: "npm:^5.1.0" - html-webpack-plugin: "npm:^5.6.6" - https-browserify: "npm:^1.0.0" - is-wsl: "npm:^2.2.0" - mini-css-extract-plugin: "npm:^2.10.0" - mkdirp: "npm:^3.0.1" - os-browserify: "npm:^0.3.0" - path: "npm:^0.12.7" - path-browserify: "npm:^1.0.1" - postcss: "npm:^8.5.6" - postcss-loader: "npm:^8.2.1" - postcss-preset-env: "npm:^10.6.1" - process: "npm:^0.11.10" - querystring-es3: "npm:^0.2.1" - ramda: "npm:^0.32.0" - react-dev-utils: "npm:^12.0.1" - react-error-overlay: "npm:6.0.9" - readable-stream: "npm:^4.7.0" - sass-loader: "npm:^16.0.7" - sass-resources-loader: "npm:^2.2.5" - semver: "npm:^7.7.4" - stream-browserify: "npm:^3.0.0" - stream-http: "npm:^3.2.0" - string_decoder: "npm:^1.3.0" - strip-ansi: "npm:^6.0.1" - svgo: "npm:^4.0.0" - svgo-loader: "npm:^4.0.0" - terser-webpack-plugin: "npm:^5.3.16" - timers-browserify: "npm:^2.0.12" - tsconfig-paths-webpack-plugin: "npm:^4.2.0" - tty-browserify: "npm:^0.0.1" - url: "npm:^0.11.4" - util: "npm:^0.12.5" - vm-browserify: "npm:^1.1.2" - webpack-bundle-analyzer: "npm:^5.2.0" - webpack-node-externals: "npm:^3.0.0" - webpack-remove-empty-scripts: "npm:^1.1.1" - webpack-stats-plugin: "npm:^1.1.3" - worker-loader: "npm:^3.0.8" - peerDependencies: - "@babel/core": ^6 || ^7 || ^8 - "@hot-loader/react-dom": ^16.0.0 || ^17.0.0 - "@storybook/react": ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - "@types/react": "*" - react: "*" - react-refresh: "*" - sass: ^1.3.0 - sass-embedded: ^1.70.0 - svgo: ^3.0.0 || ^4.0.0 - webpack: ^5.61.0 - webpack-cli: ^4.1.0 || ^5.0.0 || ^6.0.0 - webpack-dev-server: ^4.8.0 || ^5.0.0 - peerDependenciesMeta: - "@babel/core": - optional: true - "@hot-loader/react-dom": - optional: true - "@storybook/react": - optional: true - "@types/react": - optional: true - react: - optional: true - react-refresh: - optional: true - sass: - optional: true - sass-embedded: - optional: true - svgo: - optional: true - webpack-cli: - optional: true - webpack-dev-server: - optional: true - checksum: 10c0/594ee7ee5697c080cd495fc3a61396feca7d8f2a4198ea2e71de44c95be1741da5bdd15d4813b9d67d06224b38f424bdeb909df2b3bd555c1a0224113afb3fcf - languageName: node - linkType: hard - -"@anansi/webpack-config@npm:21.1.15": - version: 21.1.15 - resolution: "@anansi/webpack-config@npm:21.1.15" +"@anansi/webpack-config@npm:21.1.16": + version: 21.1.16 + resolution: "@anansi/webpack-config@npm:21.1.16" dependencies: "@babel/runtime-corejs3": "npm:^7.26.0" "@pmmmwh/react-refresh-webpack-plugin": "npm:^0.6.2" @@ -706,7 +536,7 @@ __metadata: "@wyw-in-js/webpack-loader": "npm:^1.0.6" assert: "npm:^2.1.0" autoprefixer: "npm:^10.4.27" - babel-loader: "npm:^10.1.0" + babel-loader: "npm:^10.1.1" browserify-zlib: "npm:^0.2.0" buffer: "npm:^6.0.3" circular-dependency-plugin: "npm:^5.2.2" @@ -796,7 +626,7 @@ __metadata: optional: true webpack-dev-server: optional: true - checksum: 10c0/266cbf6d750f11d56ff041a8bb5b36104ba151f4c521b8b30aa3add50e7b376d59ba5db0a889abc0bae2f10f96b9871b5a591b0e83084ad9871019ba3b1ff646 + checksum: 10c0/4fb3512851d5b32c999990b06924149be7458d109f2d2996c80b65e0f2a0383f5eed830c5c84e25b2fc0e82753b43d73c14af68d4bc5e0258f74258323ad232b languageName: node linkType: hard @@ -999,9 +829,9 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.6.5, @babel/helper-define-polyfill-provider@npm:^0.6.6, @babel/helper-define-polyfill-provider@npm:^0.6.7": - version: 0.6.7 - resolution: "@babel/helper-define-polyfill-provider@npm:0.6.7" +"@babel/helper-define-polyfill-provider@npm:^0.6.5, @babel/helper-define-polyfill-provider@npm:^0.6.6, @babel/helper-define-polyfill-provider@npm:^0.6.8": + version: 0.6.8 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.8" dependencies: "@babel/helper-compilation-targets": "npm:^7.28.6" "@babel/helper-plugin-utils": "npm:^7.28.6" @@ -1010,7 +840,7 @@ __metadata: resolve: "npm:^1.22.11" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/1c812c59051998910b7b88fc6c314b628998cf0df02a460e5c141c2cde6fb6e6bb41a97b1ad3c038ccda5517fbe14bc1b4cca21f7333225b11c416a1169055f3 + checksum: 10c0/306a169f2cb285f368578219ef18ea9702860d3d02d64334f8d45ea38648be0b9e1edad8c8f732fa34bb4206ccbb9883c395570fd57ab7bbcf293bc5964c5b3a languageName: node linkType: hard @@ -2275,9 +2105,9 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.20.2, @babel/preset-env@npm:^7.22.15, @babel/preset-env@npm:^7.25.9, @babel/preset-env@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/preset-env@npm:7.29.0" +"@babel/preset-env@npm:^7.20.2, @babel/preset-env@npm:^7.22.15, @babel/preset-env@npm:^7.25.9, @babel/preset-env@npm:^7.29.2": + version: 7.29.2 + resolution: "@babel/preset-env@npm:7.29.2" dependencies: "@babel/compat-data": "npm:^7.29.0" "@babel/helper-compilation-targets": "npm:^7.28.6" @@ -2351,7 +2181,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/08737e333a538703ba20e9e93b5bfbc01abbb9d3b2519b5b62ad05d3b6b92d79445b1dac91229b8cfcfb0b681b22b7c6fa88d7c1cc15df1690a23b21287f55b6 + checksum: 10c0/d49cb005f2dbc3f2293ab6d80ee8f1380e6215af5518fe26b087c8961c1ea8ebaa554dfce589abe1fbebac25ad7c2515d943dec3859ea2d4981a3f8f4711c580 languageName: node linkType: hard @@ -2427,12 +2257,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime-corejs3@npm:7.29.0, @babel/runtime-corejs3@npm:^7.25.9, @babel/runtime-corejs3@npm:^7.26.0, @babel/runtime-corejs3@npm:^7.26.7": - version: 7.29.0 - resolution: "@babel/runtime-corejs3@npm:7.29.0" +"@babel/runtime-corejs3@npm:7.29.2, @babel/runtime-corejs3@npm:^7.25.9, @babel/runtime-corejs3@npm:^7.26.0, @babel/runtime-corejs3@npm:^7.26.7": + version: 7.29.2 + resolution: "@babel/runtime-corejs3@npm:7.29.2" dependencies: core-js-pure: "npm:^3.48.0" - checksum: 10c0/7f1197fa3a50836a6ce1ca3b51df69b65421f790d3f877f2cba8e6c3c238e358da9eafa083fd100cc7a2c4c57db7e27c6bf36b8ea8dd4caa29bfa363adbbaa81 + checksum: 10c0/24a9de8b592cf67fbe62c36c002a0da8c0456079a0543646a40e2b1b0838e7712f5ff49e9551624395ccd67a409c63e7c638b23e3bebbfdf54e373b1c707ebff languageName: node linkType: hard @@ -10197,19 +10027,7 @@ __metadata: languageName: node linkType: hard -"babel-loader@npm:^10.0.0": - version: 10.0.0 - resolution: "babel-loader@npm:10.0.0" - dependencies: - find-up: "npm:^5.0.0" - peerDependencies: - "@babel/core": ^7.12.0 - webpack: ">=5.61.0" - checksum: 10c0/882dfacde3ee24b432ad57e468832cd0821e2a410f6c5b75ff945f069a8956592b28c6c357df5bb03db73d2741ec3db5febb106ac0bb3591c3d4288f2cf4df0e - languageName: node - linkType: hard - -"babel-loader@npm:^10.1.0": +"babel-loader@npm:^10.1.1": version: 10.1.1 resolution: "babel-loader@npm:10.1.1" dependencies: @@ -10319,7 +10137,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-module-resolver@npm:5.0.2, babel-plugin-module-resolver@npm:^5.0.2": +"babel-plugin-module-resolver@npm:5.0.2": version: 5.0.2 resolution: "babel-plugin-module-resolver@npm:5.0.2" dependencies: @@ -10332,6 +10150,19 @@ __metadata: languageName: node linkType: hard +"babel-plugin-module-resolver@npm:^5.0.3": + version: 5.0.3 + resolution: "babel-plugin-module-resolver@npm:5.0.3" + dependencies: + find-babel-config: "npm:^2.1.1" + glob: "npm:^9.3.3" + pkg-up: "npm:^3.1.0" + reselect: "npm:^4.1.7" + resolve: "npm:^1.22.8" + checksum: 10c0/aa8940ae1eaa7dadbf63b12387ed63ab34a19bf6614ac76e16e4d44af80ae36c4741d307a91f864320c0ad33037b34466854bb9d8de6c1e73936b1af1b6d36a6 + languageName: node + linkType: hard + "babel-plugin-polyfill-corejs2@npm:^0.4.14, babel-plugin-polyfill-corejs2@npm:^0.4.15": version: 0.4.15 resolution: "babel-plugin-polyfill-corejs2@npm:0.4.15" @@ -10357,15 +10188,15 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.14.0, babel-plugin-polyfill-corejs3@npm:^0.14.1": - version: 0.14.1 - resolution: "babel-plugin-polyfill-corejs3@npm:0.14.1" +"babel-plugin-polyfill-corejs3@npm:^0.14.0, babel-plugin-polyfill-corejs3@npm:^0.14.2": + version: 0.14.2 + resolution: "babel-plugin-polyfill-corejs3@npm:0.14.2" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.6.7" + "@babel/helper-define-polyfill-provider": "npm:^0.6.8" core-js-compat: "npm:^3.48.0" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/c1fa84e5febbdc785b8ed396fe70581e3358e7c50f58c62999e9ce75c6a71d0848d62691cb07b4e58a23eec77c84091df58ac5354126ca244e15f5fd47362497 + checksum: 10c0/32f70442f142d0f5607f4b57c121c573b106e09da8659c0f03108a85bf1d09ba5bdc89595a82b34ff76c19f1faf3d1c831b56166f03babf69c024f36da77c3bf languageName: node linkType: hard @@ -11649,14 +11480,14 @@ __metadata: version: 0.0.0-use.local resolution: "coinbase-lite@workspace:examples/coin-app" dependencies: - "@anansi/babel-preset": "npm:6.2.24" + "@anansi/babel-preset": "npm:6.2.25" "@anansi/browserslist-config": "npm:1.7.4" "@anansi/cli": "npm:3.1.103" "@anansi/core": "npm:0.22.8" "@anansi/router": "npm:0.10.22" - "@anansi/webpack-config": "npm:21.1.15" + "@anansi/webpack-config": "npm:21.1.16" "@babel/core": "npm:7.29.0" - "@babel/runtime-corejs3": "npm:7.29.0" + "@babel/runtime-corejs3": "npm:7.29.2" "@data-client/img": "npm:0.15.0" "@data-client/react": "npm:0.15.7" "@data-client/rest": "npm:0.15.7" @@ -11666,7 +11497,7 @@ __metadata: "@types/d3": "npm:^7" "@types/react": "npm:*" "@types/react-dom": "npm:*" - core-js: "npm:3.48.0" + core-js: "npm:3.49.0" d3: "npm:7.9.0" history: "npm:*" react: "npm:19.2.3" @@ -12107,10 +11938,10 @@ __metadata: languageName: node linkType: hard -"core-js@npm:3.48.0, core-js@npm:^3.31.1, core-js@npm:^3.40.0, core-js@npm:^3.48.0": - version: 3.48.0 - resolution: "core-js@npm:3.48.0" - checksum: 10c0/6c3115900dd7cce9fab74c07cb262b3517fc250d02e8fd2ff34f80bda5f43a28482a909dbc4491dc6e1ddd9807f57a7df4c3eeecd1f202b7d9c8bfe25f9d680c +"core-js@npm:3.49.0, core-js@npm:^3.31.1, core-js@npm:^3.40.0, core-js@npm:^3.48.0": + version: 3.49.0 + resolution: "core-js@npm:3.49.0" + checksum: 10c0/2e42edb47eda38fd5368380131623c8aa5d4a6b42164125b17744bdc08fa5ebbbdd06b4b4aa6ca3663470a560b0f2fba48e18f142dfe264b0039df85bc625694 languageName: node linkType: hard @@ -13902,7 +13733,7 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.19.0, enhanced-resolve@npm:^5.20.0, enhanced-resolve@npm:^5.7.0": +"enhanced-resolve@npm:^5.20.0, enhanced-resolve@npm:^5.7.0": version: 5.20.0 resolution: "enhanced-resolve@npm:5.20.0" dependencies: @@ -14809,9 +14640,9 @@ __metadata: version: 0.0.0-use.local resolution: "example-benchmark-react@workspace:examples/benchmark-react" dependencies: - "@anansi/babel-preset": "npm:6.2.23" + "@anansi/babel-preset": "npm:6.2.25" "@anansi/browserslist-config": "npm:^1.4.3" - "@anansi/webpack-config": "npm:21.1.14" + "@anansi/webpack-config": "npm:21.1.16" "@babel/core": "npm:^7.22.15" "@data-client/core": "workspace:*" "@data-client/endpoint": "workspace:*" @@ -14830,7 +14661,7 @@ __metadata: swr: "npm:2.3.6" tsx: "npm:4.19.2" typescript: "npm:6.0.1-rc" - webpack: "npm:5.105.3" + webpack: "npm:5.105.4" webpack-cli: "npm:6.0.1" languageName: unknown linkType: soft @@ -14839,7 +14670,7 @@ __metadata: version: 0.0.0-use.local resolution: "example-benchmark@workspace:examples/benchmark" dependencies: - "@anansi/webpack-config": "npm:21.1.15" + "@anansi/webpack-config": "npm:21.1.16" "@babel/core": "npm:7.29.0" "@babel/node": "npm:7.29.0" "@data-client/core": "workspace:*" @@ -15415,9 +15246,9 @@ __metadata: linkType: hard "flatted@npm:^3.2.9": - version: 3.3.1 - resolution: "flatted@npm:3.3.1" - checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf + version: 3.4.2 + resolution: "flatted@npm:3.4.2" + checksum: 10c0/a65b67aae7172d6cdf63691be7de6c5cd5adbdfdfe2e9da1a09b617c9512ed794037741ee53d93114276bff3f93cd3b0d97d54f9b316e1e4885dde6e9ffdf7ed languageName: node linkType: hard @@ -15837,16 +15668,7 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.10.1": - version: 4.10.1 - resolution: "get-tsconfig@npm:4.10.1" - dependencies: - resolve-pkg-maps: "npm:^1.0.0" - checksum: 10c0/7f8e3dabc6a49b747920a800fb88e1952fef871cdf51b79e98db48275a5de6cdaf499c55ee67df5fa6fe7ce65f0063e26de0f2e53049b408c585aa74d39ffa21 - languageName: node - linkType: hard - -"get-tsconfig@npm:^4.7.5": +"get-tsconfig@npm:^4.10.1, get-tsconfig@npm:^4.7.5": version: 4.13.6 resolution: "get-tsconfig@npm:4.13.6" dependencies: @@ -21006,18 +20828,6 @@ __metadata: languageName: node linkType: hard -"mini-css-extract-plugin@npm:^2.10.0": - version: 2.10.0 - resolution: "mini-css-extract-plugin@npm:2.10.0" - dependencies: - schema-utils: "npm:^4.0.0" - tapable: "npm:^2.2.1" - peerDependencies: - webpack: ^5.0.0 - checksum: 10c0/5fb0654471f4fb695629d96324d327d4d3a05069a95b83770d070e8f48a07d5b5f8da61adabdd56e3119cf6b17eef058c4ba6ab4cd31a7b2af48624621fe0520 - languageName: node - linkType: hard - "mini-css-extract-plugin@npm:^2.10.1, mini-css-extract-plugin@npm:^2.9.2": version: 2.10.1 resolution: "mini-css-extract-plugin@npm:2.10.1" @@ -24364,17 +24174,6 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.5.6": - version: 8.5.6 - resolution: "postcss@npm:8.5.6" - dependencies: - nanoid: "npm:^3.3.11" - picocolors: "npm:^1.1.1" - source-map-js: "npm:^1.2.1" - checksum: 10c0/5127cc7c91ed7a133a1b7318012d8bfa112da9ef092dddf369ae699a1f10ebbd89b1b9f25f3228795b84585c72aabd5ced5fc11f2ba467eedf7b081a66fad024 - languageName: node - linkType: hard - "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -24838,7 +24637,7 @@ __metadata: resolution: "rdc-website@workspace:website" dependencies: "@anansi/browserslist-config": "npm:1.7.4" - "@anansi/webpack-config": "npm:21.1.15" + "@anansi/webpack-config": "npm:21.1.16" "@data-client/endpoint": "workspace:*" "@data-client/graphql": "workspace:*" "@data-client/react": "workspace:*" @@ -28000,7 +27799,7 @@ __metadata: languageName: node linkType: hard -"svgo@npm:^4.0.0, svgo@npm:^4.0.1": +"svgo@npm:^4.0.1": version: 4.0.1 resolution: "svgo@npm:4.0.1" dependencies: @@ -28126,28 +27925,6 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.3.16": - version: 5.3.16 - resolution: "terser-webpack-plugin@npm:5.3.16" - dependencies: - "@jridgewell/trace-mapping": "npm:^0.3.25" - jest-worker: "npm:^27.4.5" - schema-utils: "npm:^4.3.0" - serialize-javascript: "npm:^6.0.2" - terser: "npm:^5.31.1" - peerDependencies: - webpack: ^5.1.0 - peerDependenciesMeta: - "@swc/core": - optional: true - esbuild: - optional: true - uglify-js: - optional: true - checksum: 10c0/39e37c5b3015c1a5354a3633f77235677bfa06eac2608ce26d258b1d1a74070a99910319a6f2f2c437eb61dc321f66434febe01d78e73fa96b4d4393b813f4cf - languageName: node - linkType: hard - "terser-webpack-plugin@npm:^5.3.17, terser-webpack-plugin@npm:^5.3.9, terser-webpack-plugin@npm:^5.4.0": version: 5.4.0 resolution: "terser-webpack-plugin@npm:5.4.0" @@ -28187,9 +27964,9 @@ __metadata: version: 0.0.0-use.local resolution: "test-bundlesize@workspace:examples/test-bundlesize" dependencies: - "@anansi/babel-preset": "npm:6.2.24" + "@anansi/babel-preset": "npm:6.2.25" "@anansi/browserslist-config": "npm:^1.4.3" - "@anansi/webpack-config": "npm:21.1.15" + "@anansi/webpack-config": "npm:21.1.16" "@babel/core": "npm:^7.22.15" "@babel/runtime-corejs3": "npm:^7.26.7" "@data-client/img": "workspace:*" @@ -29950,44 +29727,6 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5.105.3": - version: 5.105.3 - resolution: "webpack@npm:5.105.3" - dependencies: - "@types/eslint-scope": "npm:^3.7.7" - "@types/estree": "npm:^1.0.8" - "@types/json-schema": "npm:^7.0.15" - "@webassemblyjs/ast": "npm:^1.14.1" - "@webassemblyjs/wasm-edit": "npm:^1.14.1" - "@webassemblyjs/wasm-parser": "npm:^1.14.1" - acorn: "npm:^8.16.0" - acorn-import-phases: "npm:^1.0.3" - browserslist: "npm:^4.28.1" - chrome-trace-event: "npm:^1.0.2" - enhanced-resolve: "npm:^5.19.0" - es-module-lexer: "npm:^2.0.0" - eslint-scope: "npm:5.1.1" - events: "npm:^3.2.0" - glob-to-regexp: "npm:^0.4.1" - graceful-fs: "npm:^4.2.11" - json-parse-even-better-errors: "npm:^2.3.1" - loader-runner: "npm:^4.3.1" - mime-types: "npm:^2.1.27" - neo-async: "npm:^2.6.2" - schema-utils: "npm:^4.3.3" - tapable: "npm:^2.3.0" - terser-webpack-plugin: "npm:^5.3.16" - watchpack: "npm:^2.5.1" - webpack-sources: "npm:^3.3.4" - peerDependenciesMeta: - webpack-cli: - optional: true - bin: - webpack: bin/webpack.js - checksum: 10c0/a9a9a3a369d14f24348bd932feb07eef74a9fe194ad16704dc4f125b6055fe51a5ef1c6fdb3aa398c6f180f59aa14cb1b360695d8ea862a5ed130103ebd255e0 - languageName: node - linkType: hard - "webpackbar@npm:^6.0.1": version: 6.0.1 resolution: "webpackbar@npm:6.0.1"