From f10fc3592fd2f960721c82adc30e772b1812e360 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Sun, 29 Sep 2024 19:22:11 +0900 Subject: [PATCH] chore(react-image): remove package (#1280) --- .github/ISSUE_TEMPLATE/bug.yml | 1 - .github/ISSUE_TEMPLATE/feature_request.yml | 1 - .github/labeler.yml | 2 - codecov.yml | 4 - .../src/pages/docs/_meta.en.json | 6 - .../src/pages/docs/_meta.ko.json | 6 - .../src/pages/docs/changelogs.en.mdx | 4 - .../src/pages/docs/changelogs.ko.mdx | 4 - .../docs/react-image/SuspenseImage.en.mdx | 20 -- .../docs/react-image/SuspenseImage.ko.mdx | 20 -- .../src/pages/docs/react-image/_meta.en.json | 8 - .../src/pages/docs/react-image/_meta.ko.json | 8 - .../docs/react-image/installation.en.mdx | 9 - .../docs/react-image/installation.ko.mdx | 9 - examples/visualization/package.json | 1 - examples/visualization/src/app/layout.tsx | 8 - .../app/react-image/SuspenseImage/page.tsx | 18 -- packages/react-image/CHANGELOG.md | 255 ------------------ packages/react-image/README.ko.md | 13 - packages/react-image/README.md | 13 - packages/react-image/eslint.config.mjs | 15 -- packages/react-image/package.json | 68 ----- packages/react-image/src/Load.spec.tsx | 12 - packages/react-image/src/Load.tsx | 104 ------- .../react-image/src/SuspenseImage.spec.tsx | 19 -- packages/react-image/src/SuspenseImage.tsx | 14 - packages/react-image/src/index.ts | 1 - packages/react-image/tsconfig.json | 7 - packages/react-image/tsup.config.ts | 4 - packages/react-image/vitest.config.ts | 21 -- packages/react-image/vitest.setup.ts | 7 - packages/react/CHANGELOG.md | 2 +- pnpm-lock.yaml | 69 +++-- 33 files changed, 45 insertions(+), 708 deletions(-) delete mode 100644 docs/suspensive.org/src/pages/docs/react-image/SuspenseImage.en.mdx delete mode 100644 docs/suspensive.org/src/pages/docs/react-image/SuspenseImage.ko.mdx delete mode 100644 docs/suspensive.org/src/pages/docs/react-image/_meta.en.json delete mode 100644 docs/suspensive.org/src/pages/docs/react-image/_meta.ko.json delete mode 100644 docs/suspensive.org/src/pages/docs/react-image/installation.en.mdx delete mode 100644 docs/suspensive.org/src/pages/docs/react-image/installation.ko.mdx delete mode 100644 examples/visualization/src/app/react-image/SuspenseImage/page.tsx delete mode 100644 packages/react-image/CHANGELOG.md delete mode 100644 packages/react-image/README.ko.md delete mode 100644 packages/react-image/README.md delete mode 100644 packages/react-image/eslint.config.mjs delete mode 100644 packages/react-image/package.json delete mode 100644 packages/react-image/src/Load.spec.tsx delete mode 100644 packages/react-image/src/Load.tsx delete mode 100644 packages/react-image/src/SuspenseImage.spec.tsx delete mode 100644 packages/react-image/src/SuspenseImage.tsx delete mode 100644 packages/react-image/src/index.ts delete mode 100644 packages/react-image/tsconfig.json delete mode 100644 packages/react-image/tsup.config.ts delete mode 100644 packages/react-image/vitest.config.ts delete mode 100644 packages/react-image/vitest.setup.ts diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 24092f509..19c1fd778 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -19,7 +19,6 @@ body: - "@suspensive/react-query-next-experimental" - "@suspensive/react-query-next-experimental-4" - "@suspensive/jotai" - - "@suspensive/react-image" - etc validations: required: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 2412c08ef..d721c5058 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -19,7 +19,6 @@ body: - "@suspensive/react-query-next-experimental" - "@suspensive/react-query-next-experimental-4" - "@suspensive/jotai" - - "@suspensive/react-image" - etc validations: required: true diff --git a/.github/labeler.yml b/.github/labeler.yml index cc46d8266..fcd5f2fca 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -18,8 +18,6 @@ - "packages/react-query-next-experimental-4/**/*" "@suspensive/jotai": - "packages/jotai/**/*" -"@suspensive/react-image": - - "packages/react-image/**/*" "suspensive.org": - "docs/suspensive.org/**/*" "examples": diff --git a/codecov.yml b/codecov.yml index 621c00078..d6a525547 100644 --- a/codecov.yml +++ b/codecov.yml @@ -60,7 +60,3 @@ component_management: name: '@suspensive/jotai' paths: - packages/jotai/** - - component_id: react-image - name: '@suspensive/react-image' - paths: - - packages/react-image/** diff --git a/docs/suspensive.org/src/pages/docs/_meta.en.json b/docs/suspensive.org/src/pages/docs/_meta.en.json index 49e7cd5ba..62119e7dc 100644 --- a/docs/suspensive.org/src/pages/docs/_meta.en.json +++ b/docs/suspensive.org/src/pages/docs/_meta.en.json @@ -6,12 +6,6 @@ "react": "@suspensive/react", "react-query": "@suspensive/react-query", "jotai": "@suspensive/jotai", - "react-image": { - "title": "@suspensive/react-image", - "theme": { - "collapsed": true - } - }, "--- More": { "type": "separator", "title": "More" diff --git a/docs/suspensive.org/src/pages/docs/_meta.ko.json b/docs/suspensive.org/src/pages/docs/_meta.ko.json index a6cf975c8..23bb29654 100644 --- a/docs/suspensive.org/src/pages/docs/_meta.ko.json +++ b/docs/suspensive.org/src/pages/docs/_meta.ko.json @@ -6,12 +6,6 @@ "react": "@suspensive/react", "react-query": "@suspensive/react-query", "jotai": "@suspensive/jotai", - "react-image": { - "title": "@suspensive/react-image", - "theme": { - "collapsed": true - } - }, "--- More": { "type": "separator", "title": "더보기" diff --git a/docs/suspensive.org/src/pages/docs/changelogs.en.mdx b/docs/suspensive.org/src/pages/docs/changelogs.en.mdx index 2faa7367b..8795390e0 100644 --- a/docs/suspensive.org/src/pages/docs/changelogs.en.mdx +++ b/docs/suspensive.org/src/pages/docs/changelogs.en.mdx @@ -8,9 +8,5 @@ import { Cards, Card } from 'nextra/components' title="@suspensive/react-query" href="/toss/suspensive/blob/main/packages/react-query/CHANGELOG.md" /> - diff --git a/docs/suspensive.org/src/pages/docs/changelogs.ko.mdx b/docs/suspensive.org/src/pages/docs/changelogs.ko.mdx index 2faa7367b..8795390e0 100644 --- a/docs/suspensive.org/src/pages/docs/changelogs.ko.mdx +++ b/docs/suspensive.org/src/pages/docs/changelogs.ko.mdx @@ -8,9 +8,5 @@ import { Cards, Card } from 'nextra/components' title="@suspensive/react-query" href="/toss/suspensive/blob/main/packages/react-query/CHANGELOG.md" /> - diff --git a/docs/suspensive.org/src/pages/docs/react-image/SuspenseImage.en.mdx b/docs/suspensive.org/src/pages/docs/react-image/SuspenseImage.en.mdx deleted file mode 100644 index 7b3b90ee0..000000000 --- a/docs/suspensive.org/src/pages/docs/react-image/SuspenseImage.en.mdx +++ /dev/null @@ -1,20 +0,0 @@ -import { Callout } from '@/components' - -# SuspenseImage - - - -`` is experimental feature, this interfaces could be changed. - - - -```tsx /SuspenseImage/ -import { SuspenseImage } from '@suspensive/react-image' -import { Suspense } from '@suspensive/react' - -const Example = () => ( - - - -) -``` diff --git a/docs/suspensive.org/src/pages/docs/react-image/SuspenseImage.ko.mdx b/docs/suspensive.org/src/pages/docs/react-image/SuspenseImage.ko.mdx deleted file mode 100644 index 43345a525..000000000 --- a/docs/suspensive.org/src/pages/docs/react-image/SuspenseImage.ko.mdx +++ /dev/null @@ -1,20 +0,0 @@ -import { Callout } from '@/components' - -# SuspenseImage - - - -``는 실험 기능이므로 이 인터페이스는 변경될 수 있습니다. - - - -```tsx /SuspenseImage/ -import { SuspenseImage } from '@suspensive/react-image' -import { Suspense } from '@suspensive/react' - -const Example = () => ( - - - -) -``` diff --git a/docs/suspensive.org/src/pages/docs/react-image/_meta.en.json b/docs/suspensive.org/src/pages/docs/react-image/_meta.en.json deleted file mode 100644 index 3273c5064..000000000 --- a/docs/suspensive.org/src/pages/docs/react-image/_meta.en.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "installation": { "title": "Installation" }, - "--- API Reference": { - "type": "separator", - "title": "API Reference" - }, - "SuspenseImage": { "title": "" } -} diff --git a/docs/suspensive.org/src/pages/docs/react-image/_meta.ko.json b/docs/suspensive.org/src/pages/docs/react-image/_meta.ko.json deleted file mode 100644 index 3833da391..000000000 --- a/docs/suspensive.org/src/pages/docs/react-image/_meta.ko.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "installation": { "title": "설치하기" }, - "--- API Reference": { - "type": "separator", - "title": "API 문서" - }, - "SuspenseImage": { "title": "" } -} diff --git a/docs/suspensive.org/src/pages/docs/react-image/installation.en.mdx b/docs/suspensive.org/src/pages/docs/react-image/installation.en.mdx deleted file mode 100644 index 26204e294..000000000 --- a/docs/suspensive.org/src/pages/docs/react-image/installation.en.mdx +++ /dev/null @@ -1,9 +0,0 @@ -# Installation - -@suspensive/react-image package lives in npm. To install the latest stable version, run the following command. - -[![npm version](https://img.shields.io/npm/v/@suspensive/react-image?color=000&labelColor=000&logo=npm&label=)](https://www.npmjs.com/package/@suspensive/react-image) - -```shell npm2yarn -npm install @suspensive/react-image -``` diff --git a/docs/suspensive.org/src/pages/docs/react-image/installation.ko.mdx b/docs/suspensive.org/src/pages/docs/react-image/installation.ko.mdx deleted file mode 100644 index 9fcac7778..000000000 --- a/docs/suspensive.org/src/pages/docs/react-image/installation.ko.mdx +++ /dev/null @@ -1,9 +0,0 @@ -# 설치하기 - -@suspensive/react-image는 npm에 있습니다. 최신 안정버전을 설치하기 위해 아래 커맨드를 실행하세요. - -[![npm version](https://img.shields.io/npm/v/@suspensive/react-image?color=000&labelColor=000&logo=npm&label=)](https://www.npmjs.com/package/@suspensive/react-image) - -```shell npm2yarn -npm install @suspensive/react-image -``` diff --git a/examples/visualization/package.json b/examples/visualization/package.json index baeb13a82..ba4f4b3bc 100644 --- a/examples/visualization/package.json +++ b/examples/visualization/package.json @@ -14,7 +14,6 @@ "dependencies": { "@suspensive/react": "workspace:*", "@suspensive/react-dom": "workspace:*", - "@suspensive/react-image": "workspace:*", "@suspensive/react-query": "workspace:*", "@tanstack/react-query": "catalog:react-query4", "@tanstack/react-query-devtools": "catalog:react-query4", diff --git a/examples/visualization/src/app/layout.tsx b/examples/visualization/src/app/layout.tsx index f07ba9b00..2ce8bfa4f 100644 --- a/examples/visualization/src/app/layout.tsx +++ b/examples/visualization/src/app/layout.tsx @@ -73,14 +73,6 @@ export default function RootLayout({ children }: { children: React.ReactNode }) -
  • -
    - @suspensive/react-image -
  • - {``} -
  • -
    -
  • {children}
    diff --git a/examples/visualization/src/app/react-image/SuspenseImage/page.tsx b/examples/visualization/src/app/react-image/SuspenseImage/page.tsx deleted file mode 100644 index e8611a1a7..000000000 --- a/examples/visualization/src/app/react-image/SuspenseImage/page.tsx +++ /dev/null @@ -1,18 +0,0 @@ -'use client' - -import { wrap } from '@suspensive/react' -import { SuspenseImage } from '@suspensive/react-image' - -export default wrap - .ErrorBoundary({ fallback: () =>
    error
    }) - .Suspense({ clientOnly: true, fallback: 'loading...' }) - .on(function Page() { - return ( -
    - - - - -
    - ) - }) diff --git a/packages/react-image/CHANGELOG.md b/packages/react-image/CHANGELOG.md deleted file mode 100644 index ad646d889..000000000 --- a/packages/react-image/CHANGELOG.md +++ /dev/null @@ -1,255 +0,0 @@ -# @suspensive/react-image - -## 0.0.37 - -### Patch Changes - -- [#1272](https://github.com/toss/suspensive/pull/1272) [`89f5b5c`](https://github.com/toss/suspensive/commit/89f5b5c4d9b16bcbed77ef3e17bb1f34babe2921) Thanks [@love1ace](https://github.com/love1ace)! - docs(\*): update description of package.json - -- Updated dependencies [[`89f5b5c`](https://github.com/toss/suspensive/commit/89f5b5c4d9b16bcbed77ef3e17bb1f34babe2921)]: - - @suspensive/utils@2.17.1 - -## 0.0.36 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.17.0 - -## 0.0.35 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.16.1 - -## 0.0.34 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.16.0 - -## 0.0.33 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.15.0 - -## 0.0.32 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.14.2 - -## 0.0.31 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.14.1 - -## 0.0.30 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.14.0 - -## 0.0.29 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.13.1 - -## 0.0.28 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.13.0 - -## 0.0.27 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.12.3 - -## 0.0.26 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.12.2 - -## 0.0.25 - -### Patch Changes - -- [#1180](https://github.com/toss/suspensive/pull/1180) [`f79b96c`](https://github.com/toss/suspensive/commit/f79b96c728e15ebe819445cf5d1c2e33e6c96ef4) Thanks [@manudeli](https://github.com/manudeli)! - fix(\*): remove unnecessary devDeps(react-dom, @types/react-dom) - -- Updated dependencies []: - - @suspensive/utils@2.12.1 - -## 0.0.24 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.12.0 - -## 0.0.23 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.11.0 - -## 0.0.22 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.10.0 - -## 0.0.21 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.9.4 - -## 0.0.20 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.9.3 - -## 0.0.19 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.9.2 - -## 0.0.18 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.9.1 - -## 0.0.17 - -### Patch Changes - -- Updated dependencies []: - - @suspensive/utils@2.9.0 - -## 0.0.16 - -### Patch Changes - -- Updated dependencies [[`2326b13`](https://github.com/toss/suspensive/commit/2326b1341f167454a889953fb0bbf58449e1ca98)]: - - @suspensive/utils@2.8.1 - -## 0.0.15 - -### Patch Changes - -- [#999](https://github.com/toss/suspensive/pull/999) [`8862c2a`](https://github.com/toss/suspensive/commit/8862c2a4ec46b2b1e4a924e4fde46802a5fc66ba) Thanks [@saul-atomrigs](https://github.com/saul-atomrigs)! - test(react-image): add test code for `` - -## 0.0.14 - -### Patch Changes - -- [#987](https://github.com/toss/suspensive/pull/987) [`1bc423d`](https://github.com/toss/suspensive/commit/1bc423d7fd4536366983482a3723d86dc5139c58) Thanks [@saul-atomrigs](https://github.com/saul-atomrigs)! - fix(react-image): update error message - -## 0.0.13 - -### Patch Changes - -- [#912](https://github.com/toss/suspensive/pull/912) [`0c86892`](https://github.com/toss/suspensive/commit/0c868927ec30dc0699fd3c8753cab7ee6848f6c2) Thanks [@manudeli](https://github.com/manudeli)! - chore(\*): suspensive with toss - -## 0.0.12 - -### Patch Changes - -- [#631](https://github.com/toss/suspensive/pull/631) [`837ed18`](https://github.com/toss/suspensive/commit/837ed184f3257d895400669b290be470871ce46a) Thanks [@manudeli](https://github.com/manudeli)! - feat(\*): remove target react v16, v17 - -## 0.0.11 - -### Patch Changes - -- [#876](https://github.com/toss/suspensive/pull/876) [`52d5380`](https://github.com/toss/suspensive/commit/52d5380f3fbfc30a1c2bd048aab07e612e1791df) Thanks [@manudeli](https://github.com/manudeli)! - chore(\*): last versioning before v2 - -## 0.0.10-beta.0 - -### Patch Changes - -- 837ed18: feat(\*): remove target react v16, v17 - -## 0.0.10 - -### Patch Changes - -- a6d279e: fix(\*): add use-sync-external-store - -## 0.0.9 - -### Patch Changes - -- 794e07f: fix(react-image): throw Error on error during image loading - -## 0.0.8 - -### Patch Changes - -- 9bced99: fix(tsup): remove treeshaking, minification - -## 0.0.7 - -### Patch Changes - -- 05a3534: refactor(react-image): rename Image -> SuspenseImage - -## 0.0.6 - -### Patch Changes - -- 3782ae8: ci(eslint): add plugin:@typescript-eslint/strict-type-checked - -## 0.0.5 - -### Patch Changes - -- 416a85c: fix: treeshake and minify to reduce bundle size - -## 0.0.4 - -### Patch Changes - -- 4a3e7eb: fix(tsup): add splitting to reduce bundle size dramatically - -## 0.0.3 - -### Patch Changes - -- b69d651: fix(tsup): add supported browsers - -## 0.0.2 - -### Patch Changes - -- 88c1585: refactor(react, react-await, react-image): replace createElement by jsx - -## 0.0.1 - -### Patch Changes - -- cd225ab: feat(react-image): initialize @suspensive/react-image diff --git a/packages/react-image/README.ko.md b/packages/react-image/README.ko.md deleted file mode 100644 index c3b0f67d5..000000000 --- a/packages/react-image/README.ko.md +++ /dev/null @@ -1,13 +0,0 @@ -# 라이브러리 소개 - -[![npm version](https://img.shields.io/npm/v/@suspensive/react-image?color=000&labelColor=000&logo=npm&label=)](https://www.npmjs.com/package/@suspensive/react-image) -[![npm](https://img.shields.io/npm/dm/@suspensive/react-image?color=000&labelColor=000)](https://www.npmjs.com/package/@suspensive/react-image) -[![npm bundle size](https://img.shields.io/bundlephobia/minzip/@suspensive/react-image?color=000&labelColor=000)](https://www.npmjs.com/package/@suspensive/react-image) - -## 설치하기 - -@suspensive/react-image 는 npm에 있습니다. 최신 안정버전을 설치하기 위해 아래 커맨드를 실행하세요 - -```shell npm2yarn -npm install @suspensive/react-image -``` diff --git a/packages/react-image/README.md b/packages/react-image/README.md deleted file mode 100644 index d4709c216..000000000 --- a/packages/react-image/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Introduction - -[![npm version](https://img.shields.io/npm/v/@suspensive/react-image?color=000&labelColor=000&logo=npm&label=)](https://www.npmjs.com/package/@suspensive/react-image) -[![npm](https://img.shields.io/npm/dm/@suspensive/react-image?color=000&labelColor=000)](https://www.npmjs.com/package/@suspensive/react-image) -[![npm bundle size](https://img.shields.io/bundlephobia/minzip/@suspensive/react-image?color=000&labelColor=000)](https://www.npmjs.com/package/@suspensive/react-image) - -## Installation - -@suspensive/react-image lives in npm. To install the latest stable version, run the following command - -```shell npm2yarn -npm install @suspensive/react-image -``` diff --git a/packages/react-image/eslint.config.mjs b/packages/react-image/eslint.config.mjs deleted file mode 100644 index 0daa8aa5b..000000000 --- a/packages/react-image/eslint.config.mjs +++ /dev/null @@ -1,15 +0,0 @@ -import path from 'path' -import { fileURLToPath } from 'url' -import { suspensiveReactTypeScriptConfig } from '@suspensive/eslint-config' - -export default [ - ...suspensiveReactTypeScriptConfig, - { - languageOptions: { - parserOptions: { - tsconfigRootDir: path.dirname(fileURLToPath(import.meta.url)), - project: './tsconfig.json', - }, - }, - }, -] diff --git a/packages/react-image/package.json b/packages/react-image/package.json deleted file mode 100644 index cc4d0f79c..000000000 --- a/packages/react-image/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "@suspensive/react-image", - "version": "0.0.37", - "description": "Integrates with React Suspense for image loading and management", - "keywords": [ - "suspensive", - "react", - "react-image" - ], - "homepage": "https://suspensive.org", - "bugs": "https://github.com/toss/suspensive/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/toss/suspensive.git", - "directory": "packages/react-image" - }, - "license": "MIT", - "author": "Jonghyeon Ko ", - "sideEffects": false, - "type": "module", - "exports": { - ".": { - "import": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } - }, - "./package.json": "./package.json" - }, - "main": "dist/index.cjs", - "module": "dist/index.js", - "types": "dist/index.d.ts", - "files": [ - "dist", - "src" - ], - "scripts": { - "build": "tsup", - "ci:attw": "attw --pack", - "ci:eslint": "eslint \"**/*.{js,jsx,cjs,mjs,ts,tsx,cts,mts}\"", - "ci:publint": "publint --strict", - "ci:test": "vitest run --coverage --typecheck", - "ci:type": "tsc --noEmit", - "clean": "rimraf ./dist && rimraf ./coverage", - "prepack": "pnpm build", - "test:ui": "vitest --ui --coverage --typecheck" - }, - "dependencies": { - "@suspensive/utils": "workspace:*" - }, - "devDependencies": { - "@suspensive/eslint-config": "workspace:*", - "@suspensive/tsconfig": "workspace:*", - "@suspensive/tsup": "workspace:*", - "@types/react": "catalog:react18", - "react": "catalog:react18" - }, - "peerDependencies": { - "react": "^18" - }, - "publishConfig": { - "access": "public" - } -} diff --git a/packages/react-image/src/Load.spec.tsx b/packages/react-image/src/Load.spec.tsx deleted file mode 100644 index 3b8277845..000000000 --- a/packages/react-image/src/Load.spec.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { load } from './Load' - -describe('load', () => { - it('should load image by src', async () => { - const loadedImage = await load('https://placehold.co/200x100') - expect(loadedImage.src).toBe('https://placehold.co/200x100') - }) - it('should throw error if image fails to load', async () => { - const invalidSrc = 'https://invalid-url' - await expect(load(invalidSrc)).rejects.toThrow('image error occurred during loading') - }) -}) diff --git a/packages/react-image/src/Load.tsx b/packages/react-image/src/Load.tsx deleted file mode 100644 index 19fcc39bb..000000000 --- a/packages/react-image/src/Load.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import { type FunctionComponent, useSyncExternalStore } from 'react' - -/** - * Loads an image from the given source URL. - * @param src - The source URL of the image to load. - * @returns A Promise that resolves to the loaded image. - * @throws Will reject the promise if the image fails to load. - */ -export const load = (src: HTMLImageElement['src']) => - new Promise((resolve, reject) => { - const image = new Image() - image.onload = () => resolve(image) - image.onerror = () => reject(new Error('image error occurred during loading')) - image.src = src - }) - -type LoadSrc = Parameters[0] - -type LoadState = { - src: TLoadSrc - promise?: Promise - error?: unknown -} - -type Notify = (...args: unknown[]) => unknown -class LoadClient { - private loadCache = new Map>() - private notifiesMap = new Map() - - attach(src: LoadSrc, notify: Notify) { - const notifies = this.notifiesMap.get(src) - this.notifiesMap.set(src, [...(notifies ?? []), notify]) - - return { - detach: () => this.detach(src, notify), - } - } - - detach(src: LoadSrc, notify: Notify) { - const notifies = this.notifiesMap.get(src) - if (notifies) { - this.notifiesMap.set( - src, - notifies.filter((item) => item !== notify) - ) - } - } - - load(src: TLoadSrc) { - const loadState = this.loadCache.get(src) - - if (loadState?.error) { - // eslint-disable-next-line @typescript-eslint/only-throw-error - throw loadState.error - } - if (loadState?.src) { - return loadState as LoadState - } - if (loadState?.promise) { - // eslint-disable-next-line @typescript-eslint/only-throw-error - throw loadState.promise - } - - const newLoadState: LoadState = { - src, - promise: load(src) - .then((image) => (newLoadState.src = image.src as TLoadSrc)) - .catch(() => (newLoadState.error = `${src}: load error`)), - } - - this.loadCache.set(src, newLoadState) - // eslint-disable-next-line @typescript-eslint/only-throw-error - throw newLoadState.promise - } - - private notify(src: LoadSrc) { - const notifies = this.notifiesMap.get(src) - if (notifies) { - for (const notify of notifies) { - notify() - } - } - } -} - -const loadClient = new LoadClient() - -type UseLoadOptions = { - src: TLoadSrc -} -export const useLoad = (options: UseLoadOptions) => - useSyncExternalStore( - (onStoreChange) => loadClient.attach(options.src, onStoreChange).detach, - () => loadClient.load(options.src), - () => loadClient.load(options.src) - ) - -type LoadProps = { - src: TLoadSrc - children: FunctionComponent> -} -export const Load = ({ src, children: Children }: LoadProps) => ( - -) diff --git a/packages/react-image/src/SuspenseImage.spec.tsx b/packages/react-image/src/SuspenseImage.spec.tsx deleted file mode 100644 index e941e0346..000000000 --- a/packages/react-image/src/SuspenseImage.spec.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { render, screen } from '@testing-library/react' -import { SuspenseImage } from './SuspenseImage' - -describe('', () => { - it('renders an image with the loaded src', async () => { - const src = 'https://placehold.co/200x100' - render() - expect(await screen.findByAltText('Test Image')).toHaveAttribute('src', src) - expect(await screen.findByRole('img')).toHaveAttribute('src', src) - }) - - it('throws an error if src is not a string', () => { - console.error = vi.fn() - expect(() => { - // @ts-expect-error: non-string src value for testing purposes - render() - }).toThrow(' of @suspensive/react-image requires string src') - }) -}) diff --git a/packages/react-image/src/SuspenseImage.tsx b/packages/react-image/src/SuspenseImage.tsx deleted file mode 100644 index 191eec26e..000000000 --- a/packages/react-image/src/SuspenseImage.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { type ComponentProps, forwardRef } from 'react' -import { useLoad } from './Load' - -type SuspenseImageProps = ComponentProps<'img'> -export const SuspenseImage = forwardRef(function SuspenseImage( - { src, ...props }, - ref -) { - if (typeof src !== 'string') { - throw new Error(' of @suspensive/react-image requires string src') - } - const loaded = useLoad({ src }) - return -}) diff --git a/packages/react-image/src/index.ts b/packages/react-image/src/index.ts deleted file mode 100644 index 687c3a2e4..000000000 --- a/packages/react-image/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { SuspenseImage } from './SuspenseImage' diff --git a/packages/react-image/tsconfig.json b/packages/react-image/tsconfig.json deleted file mode 100644 index 2176a2e69..000000000 --- a/packages/react-image/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "@suspensive/tsconfig/react-library.json", - "include": [".", "eslint.config.mjs"], - "compilerOptions": { - "types": ["@testing-library/jest-dom/vitest", "vitest/globals"] - } -} diff --git a/packages/react-image/tsup.config.ts b/packages/react-image/tsup.config.ts deleted file mode 100644 index 9560a461a..000000000 --- a/packages/react-image/tsup.config.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { options } from '@suspensive/tsup' -import { defineConfig } from 'tsup' - -export default defineConfig(options) diff --git a/packages/react-image/vitest.config.ts b/packages/react-image/vitest.config.ts deleted file mode 100644 index c33c81bdd..000000000 --- a/packages/react-image/vitest.config.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { defineConfig } from 'vitest/config' -import packageJson from './package.json' - -export default defineConfig({ - test: { - name: packageJson.name, - dir: './src', - environment: 'jsdom', - globals: true, - setupFiles: './vitest.setup.ts', - coverage: { - provider: 'istanbul', - }, - browser: { - enabled: true, - headless: true, - provider: 'playwright', - name: 'chromium', - }, - }, -}) diff --git a/packages/react-image/vitest.setup.ts b/packages/react-image/vitest.setup.ts deleted file mode 100644 index e87ca3f0a..000000000 --- a/packages/react-image/vitest.setup.ts +++ /dev/null @@ -1,7 +0,0 @@ -import '@testing-library/jest-dom/vitest' -import { cleanup } from '@testing-library/react' -import { afterEach } from 'vitest' - -afterEach(() => { - cleanup() -}) diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 4ebf9f7b5..f6f2a5c49 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -482,7 +482,7 @@ ### Patch Changes -- 88c1585: refactor(react, react-await, react-image): replace createElement by jsx +- 88c1585: refactor(react, react-await): replace createElement by jsx ## 1.20.5 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6bdb65d45..6bb6cc851 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -474,9 +474,6 @@ importers: '@suspensive/react-dom': specifier: workspace:* version: link:../../packages/react-dom - '@suspensive/react-image': - specifier: workspace:* - version: link:../../packages/react-image '@suspensive/react-query': specifier: workspace:* version: link:../../packages/react-query @@ -642,28 +639,6 @@ importers: specifier: catalog:react18 version: 18.3.1(react@18.3.1) - packages/react-image: - dependencies: - '@suspensive/utils': - specifier: workspace:* - version: link:../utils - devDependencies: - '@suspensive/eslint-config': - specifier: workspace:* - version: link:../../configs/eslint-config - '@suspensive/tsconfig': - specifier: workspace:* - version: link:../../configs/tsconfig - '@suspensive/tsup': - specifier: workspace:* - version: link:../../configs/tsup - '@types/react': - specifier: catalog:react18 - version: 18.3.5 - react: - specifier: catalog:react18 - version: 18.3.1 - packages/react-native: dependencies: '@suspensive/utils': @@ -2615,72 +2590,84 @@ packages: engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.0.2': resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.0.2': resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.0.2': resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.0.2': resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.0.2': resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-linux-arm64@0.33.4': resolution: {integrity: sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==} engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-linux-arm@0.33.4': resolution: {integrity: sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==} engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-linux-s390x@0.33.4': resolution: {integrity: sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==} engines: {glibc: '>=2.31', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-linux-x64@0.33.4': resolution: {integrity: sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==} engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-linuxmusl-arm64@0.33.4': resolution: {integrity: sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==} engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-x64@0.33.4': resolution: {integrity: sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==} engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-wasm32@0.33.4': resolution: {integrity: sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==} @@ -2909,36 +2896,42 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@napi-rs/simple-git-linux-arm64-musl@0.1.17': resolution: {integrity: sha512-PRdVIEvgdIuJhDvdneO3X7XfZwujU7MOyymwK3kR1RMJPlbwzxdQBA86am/jEkBP7d8Cx8RbREzJ6y/2hAHKOQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@napi-rs/simple-git-linux-powerpc64le-gnu@0.1.17': resolution: {integrity: sha512-afbfsJMpQjtdLP3BRGj/hKpRqymxw2Lt+dmyoRej0zKxZnuPrws3Fi85RyYsT/6Tq0hSUAMeh5UtxGAOH3q8gA==} engines: {node: '>= 10'} cpu: [powerpc64le] os: [linux] + libc: [glibc] '@napi-rs/simple-git-linux-s390x-gnu@0.1.17': resolution: {integrity: sha512-qTgRIUsU+b7RMls+Ji4xlDYq0rsUuNBpzVgb991UPnzrhFWFFkCtyk6I6tJqMtRfg7Vgn1stCghFEQiHmpqkew==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] + libc: [glibc] '@napi-rs/simple-git-linux-x64-gnu@0.1.17': resolution: {integrity: sha512-xHlyUDJhjPUCR07JGrvMfLg5XSRVDsxgpo6B6zYQOSMcVgM7fjvyWNMBe508r4eD5YZKZyBPfSJUc5Ls9ToJNQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@napi-rs/simple-git-linux-x64-musl@0.1.17': resolution: {integrity: sha512-eaTr+WPeiuEegduE3O7VzHhHftGXmX1pzzILoOTbbdmeEuH1BHnGAr35XTu+1lUHUqE2JHef3d3PgBHeh844hA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@napi-rs/simple-git-win32-arm64-msvc@0.1.17': resolution: {integrity: sha512-v1F72stOCjapCd0Ha928m8X8i/IPhPQIXbYEGX0MEmaaAzbAJ3PTSSFpb0rFLShXaDFA2Wuw/jzlkPLESPdKVQ==} @@ -2979,24 +2972,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-musl@14.2.5': resolution: {integrity: sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-x64-gnu@14.2.5': resolution: {integrity: sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-musl@14.2.5': resolution: {integrity: sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-win32-arm64-msvc@14.2.5': resolution: {integrity: sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==} @@ -3225,91 +3222,109 @@ packages: resolution: {integrity: sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-gnueabihf@4.21.2': resolution: {integrity: sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.19.0': resolution: {integrity: sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm-musleabihf@4.21.2': resolution: {integrity: sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.19.0': resolution: {integrity: sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-gnu@4.21.2': resolution: {integrity: sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.19.0': resolution: {integrity: sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-musl@4.21.2': resolution: {integrity: sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-powerpc64le-gnu@4.19.0': resolution: {integrity: sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': resolution: {integrity: sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.19.0': resolution: {integrity: sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.21.2': resolution: {integrity: sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.19.0': resolution: {integrity: sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.21.2': resolution: {integrity: sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.19.0': resolution: {integrity: sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.21.2': resolution: {integrity: sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.19.0': resolution: {integrity: sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-linux-x64-musl@4.21.2': resolution: {integrity: sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.19.0': resolution: {integrity: sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==} @@ -7579,24 +7594,28 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-musl@1.19.0: resolution: {integrity: sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-x64-gnu@1.19.0: resolution: {integrity: sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-musl@1.19.0: resolution: {integrity: sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-win32-x64-msvc@1.19.0: resolution: {integrity: sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==}