diff --git a/.github/workflows/preview-release.yml b/.github/workflows/preview-release.yml new file mode 100644 index 0000000000..0721b053b0 --- /dev/null +++ b/.github/workflows/preview-release.yml @@ -0,0 +1,63 @@ +name: Preview Release +on: + pull_request: + push: + branches: + - main + - canary +permissions: + contents: read + pull-requests: write +concurrency: ${{ github.workflow }}-${{ github.ref }} +jobs: + release: + runs-on: buildjet-4vcpu-ubuntu-2204 + permissions: + contents: write + pull-requests: write + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + - name: pnpm setup + uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda + - name: pnpm Cache + id: pnpm-cache + uses: buildjet/cache@3e70d19e31d6a8030aeddf6ed8dbe601f94d09f4 + with: + path: | + ~/.pnpm-store + node_modules + */*/node_modules + key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm- + - name: Install packages + if: steps.pnpm-cache.outputs.cache-hit != 'true' + run: pnpm install --frozen-lockfile + - name: turborepo Cache + uses: rharkor/caching-for-turbo@a1c4079258ae08389be75b57d4d7a70f23c1c66d + with: + cache-prefix: ${{ runner.os }}-turbo- + provider: github + - name: Run Build + run: pnpm build + env: + SPAM_ASSASSIN_HOST: ${{ secrets.SPAM_ASSASSIN_HOST }} + SPAM_ASSASSIN_PORT: ${{ secrets.SPAM_ASSASSIN_PORT }} + # Add step to find changed package directories within ./packages + - name: Find changed packages + id: changed_packages + uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c + with: + files: packages/** + dir_names: true + dir_names_max_depth: 2 + - name: Publish changed packages to pkg.pr.new + if: steps.changed_packages.outputs.all_changed_and_modified_files != '' + run: pnpm dlx pkg-pr-new publish ${{ steps.changed_packages.outputs.all_changed_and_modified_files }} diff --git a/package.json b/package.json index 1e6a07a681..0ff3928aa9 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "@types/react": "19.0.1", "@types/react-dom": "19.0.1", "happy-dom": "17.4.4", + "pkg-pr-new": "0.0.43", "tsconfig": "workspace:*", "tsup": "8.4.0", "turbo": "2.5.0", diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index 5e76e542b5..85fba344b7 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -1,5 +1,12 @@ # @react-email/components +## 0.0.39 + +### Patch Changes + +- Updated dependencies [0a7b555] + - @react-email/text@0.1.4 + ## 0.0.38 ### Patch Changes diff --git a/packages/components/package.json b/packages/components/package.json index 44b217e7b5..ae720cf1b4 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@react-email/components", - "version": "0.0.38", + "version": "0.0.39", "description": "A collection of all components React Email.", "sideEffects": false, "main": "./dist/index.js", @@ -59,7 +59,7 @@ "@react-email/row": "workspace:0.0.12", "@react-email/section": "workspace:0.0.16", "@react-email/tailwind": "workspace:1.0.5", - "@react-email/text": "workspace:0.1.3" + "@react-email/text": "workspace:0.1.4" }, "peerDependencies": { "react": "^18.0 || ^19.0 || ^19.0.0-rc" diff --git a/packages/react-email/CHANGELOG.md b/packages/react-email/CHANGELOG.md index f8dc3d7fe9..cf8f8f5678 100644 --- a/packages/react-email/CHANGELOG.md +++ b/packages/react-email/CHANGELOG.md @@ -1,5 +1,11 @@ # react-email +## 4.0.12 + +### Patch Changes + +- aa518a3: Add an explicit error when running Node <= 17 + ## 4.0.11 ### Patch Changes diff --git a/packages/react-email/package.json b/packages/react-email/package.json index 7997cd4af5..11cb8db258 100644 --- a/packages/react-email/package.json +++ b/packages/react-email/package.json @@ -1,6 +1,6 @@ { "name": "react-email", - "version": "4.0.11", + "version": "4.0.12", "description": "A live preview of your emails right in your browser.", "bin": { "email": "./dist/cli/index.mjs" diff --git a/packages/react-email/src/cli/utils/preview/start-dev-server.ts b/packages/react-email/src/cli/utils/preview/start-dev-server.ts index 46d9eff6ee..41e420aa04 100644 --- a/packages/react-email/src/cli/utils/preview/start-dev-server.ts +++ b/packages/react-email/src/cli/utils/preview/start-dev-server.ts @@ -42,6 +42,14 @@ export const startDevServer = async ( staticBaseDirRelativePath: string, port: number, ): Promise => { + const [majorNodeVersion] = process.versions.node.split('.'); + if (majorNodeVersion && Number.parseInt(majorNodeVersion) < 18) { + console.error( + ` ${logSymbols.error} Node ${majorNodeVersion} is not supported. Please upgrade to Node 18 or higher.`, + ); + process.exit(1); + } + devServer = http.createServer((req, res) => { if (!req.url) { res.end(404); @@ -103,10 +111,10 @@ export const startDevServer = async ( }); devServer.on('error', (e: NodeJS.ErrnoException) => { - console.error( - ` ${logSymbols.error} preview server error: `, - JSON.stringify(e), - ); + spinner.stopAndPersist({ + symbol: logSymbols.error, + text: `Preview Server had an error: ${e}`, + }); process.exit(1); }); @@ -131,6 +139,7 @@ export const startDevServer = async ( process.cwd(), ), }; + const app = next({ // passing in env here does not get the environment variables there dev: isDev, @@ -147,7 +156,15 @@ export const startDevServer = async ( let isNextReady = false; const nextReadyPromise = app.prepare(); - await nextReadyPromise; + try { + await nextReadyPromise; + } catch (exception) { + spinner.stopAndPersist({ + symbol: logSymbols.error, + text: ` Preview Server had an error: ${exception}`, + }); + process.exit(1); + } isNextReady = true; const nextHandleRequest: @@ -176,7 +193,7 @@ const makeExitHandler = ) => (_codeOrSignal: number | NodeJS.Signals) => { if (typeof devServer !== 'undefined') { - console.log('\nshutting down dev server'); + console.log('\n shutting down dev server'); devServer.close(); devServer = undefined; } diff --git a/packages/text/CHANGELOG.md b/packages/text/CHANGELOG.md index 8aea0ff2dd..0a7d066b7c 100644 --- a/packages/text/CHANGELOG.md +++ b/packages/text/CHANGELOG.md @@ -1,5 +1,11 @@ # @react-email/text +## 0.1.4 + +### Patch Changes + +- 0a7b555: fix numerical margin values being overwritten by 0 + ## 0.1.3 ### Patch Changes diff --git a/packages/text/package.json b/packages/text/package.json index a3525f826f..2adf067f5f 100644 --- a/packages/text/package.json +++ b/packages/text/package.json @@ -1,6 +1,6 @@ { "name": "@react-email/text", - "version": "0.1.3", + "version": "0.1.4", "description": "A block of text separated by blank spaces", "sideEffects": false, "main": "./dist/index.js", diff --git a/packages/text/src/__snapshots__/text.spec.tsx.snap b/packages/text/src/__snapshots__/text.spec.tsx.snap index c786e77b5a..399a1f6b32 100644 --- a/packages/text/src/__snapshots__/text.spec.tsx.snap +++ b/packages/text/src/__snapshots__/text.spec.tsx.snap @@ -1,3 +1,9 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +exports[` component > gives priority to the user's style 1`] = `"

"`; + +exports[` component > passes style and other props correctly 1`] = `"

Test

"`; + +exports[` component > renders children correctly 1`] = `"

Test message

"`; + exports[` component > renders correctly 1`] = `"

Lorem ipsum

"`; diff --git a/packages/text/src/text.spec.tsx b/packages/text/src/text.spec.tsx index c97ad7b388..06c6437a47 100644 --- a/packages/text/src/text.spec.tsx +++ b/packages/text/src/text.spec.tsx @@ -5,24 +5,19 @@ describe(' component', () => { it('renders children correctly', async () => { const testMessage = 'Test message'; const html = await render({testMessage}); - expect(html).toContain(testMessage); + expect(html).toMatchSnapshot(); }); it("gives priority to the user's style", async () => { const style = { marginTop: '0px' }; const html = await render(); - expect(html).toContain('margin-top:0px'); + expect(html).toMatchSnapshot(); }); it('passes style and other props correctly', async () => { const style = { fontSize: '16px' }; - const html = await render( - - Test - , - ); - expect(html).toContain('font-size:16px'); - expect(html).toContain('data-testid="text-test"'); + const html = await render(Test); + expect(html).toMatchSnapshot(); }); it('renders correctly', async () => { diff --git a/packages/text/src/utils/compute-margins.spec.ts b/packages/text/src/utils/compute-margins.spec.ts index f8583871cc..1ccd58a66f 100644 --- a/packages/text/src/utils/compute-margins.spec.ts +++ b/packages/text/src/utils/compute-margins.spec.ts @@ -1,6 +1,29 @@ import { computeMargins } from './compute-margins'; describe('parseMargins()', () => { + it('should work with numeric and text margins', () => { + expect(computeMargins({ margin: 24 })).toEqual({ + marginTop: 24, + marginRight: 24, + marginBottom: 24, + marginLeft: 24, + }); + + expect(computeMargins({ margin: '24px' })).toEqual({ + marginTop: '24px', + marginRight: '24px', + marginBottom: '24px', + marginLeft: '24px', + }); + + expect(computeMargins({ margin: '24px', marginTop: 10 })).toEqual({ + marginTop: 10, + marginRight: '24px', + marginBottom: '24px', + marginLeft: '24px', + }); + }); + it('should compute the margins according to the order of styles', () => { expect( computeMargins({ diff --git a/packages/text/src/utils/compute-margins.ts b/packages/text/src/utils/compute-margins.ts index 6377e1bccb..34c20fee39 100644 --- a/packages/text/src/utils/compute-margins.ts +++ b/packages/text/src/utils/compute-margins.ts @@ -17,7 +17,12 @@ interface MarginResult { function parseMarginValue(value: MarginType): MarginResult { if (typeof value === 'number') - return { marginTop: 0, marginBottom: 0, marginLeft: 0, marginRight: 0 }; + return { + marginTop: value, + marginBottom: value, + marginLeft: value, + marginRight: value, + }; if (typeof value === 'string') { const values = value.toString().trim().split(/\s+/); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec5c103a2b..16ef4b351d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,6 +32,9 @@ importers: happy-dom: specifier: 17.4.4 version: 17.4.4 + pkg-pr-new: + specifier: 0.0.43 + version: 0.0.43 tsconfig: specifier: workspace:* version: link:packages/tsconfig @@ -408,7 +411,7 @@ importers: specifier: workspace:1.0.5 version: link:../tailwind '@react-email/text': - specifier: workspace:0.1.3 + specifier: workspace:0.1.4 version: link:../text react: specifier: ^19.0.0 @@ -2023,6 +2026,10 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jsdevtools/ez-spawn@3.0.4': + resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} + engines: {node: '>=10'} + '@jsep-plugin/assignment@1.3.0': resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} engines: {node: '>= 10.16.0'} @@ -2241,6 +2248,62 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@octokit/action@6.1.0': + resolution: {integrity: sha512-lo+nHx8kAV86bxvOVOI3vFjX3gXPd/L7guAUbvs3pUvnR2KC+R7yjBkA1uACt4gYhs4LcWP3AXSGQzsbeN2XXw==} + engines: {node: '>= 18'} + + '@octokit/auth-action@4.1.0': + resolution: {integrity: sha512-m+3t7K46IYyMk7Bl6/lF4Rv09GqDZjYmNg8IWycJ2Fa3YE3DE7vQcV6G2hUPmR9NDqenefNJwVtlisMjzymPiQ==} + engines: {node: '>= 18'} + + '@octokit/auth-token@4.0.0': + resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + engines: {node: '>= 18'} + + '@octokit/core@5.2.1': + resolution: {integrity: sha512-dKYCMuPO1bmrpuogcjQ8z7ICCH3FP6WmxpwC03yjzGfZhj9fTJg6+bS1+UAplekbN2C+M61UNllGOOoAfGCrdQ==} + engines: {node: '>= 18'} + + '@octokit/endpoint@9.0.6': + resolution: {integrity: sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==} + engines: {node: '>= 18'} + + '@octokit/graphql@7.1.1': + resolution: {integrity: sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==} + engines: {node: '>= 18'} + + '@octokit/openapi-types@20.0.0': + resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} + + '@octokit/openapi-types@24.2.0': + resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==} + + '@octokit/plugin-paginate-rest@9.2.2': + resolution: {integrity: sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + + '@octokit/plugin-rest-endpoint-methods@10.4.1': + resolution: {integrity: sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + + '@octokit/request-error@5.1.1': + resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==} + engines: {node: '>= 18'} + + '@octokit/request@8.4.1': + resolution: {integrity: sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==} + engines: {node: '>= 18'} + + '@octokit/types@12.6.0': + resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} + + '@octokit/types@13.10.0': + resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} + '@openapi-contrib/openapi-schema-to-json-schema@3.2.0': resolution: {integrity: sha512-Gj6C0JwCr8arj0sYuslWXUBSP/KnUlEGnPW4qxlXvAl543oaNQgMgIgkQUA6vs5BCCvwTEiL8m/wdWzfl4UvSw==} @@ -4043,6 +4106,9 @@ packages: resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} + before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + better-opn@3.0.2: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} @@ -4133,6 +4199,9 @@ packages: resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} engines: {node: '>= 0.4'} + call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -4454,6 +4523,10 @@ packages: decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + decode-uri-component@0.4.1: + resolution: {integrity: sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==} + engines: {node: '>=14.16'} + decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -4504,6 +4577,9 @@ packages: resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} engines: {node: '>= 0.6.0'} + deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -4901,6 +4977,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + filter-obj@5.1.0: + resolution: {integrity: sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==} + engines: {node: '>=14.16'} + finalhandler@1.3.1: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} @@ -5584,6 +5664,10 @@ packages: isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + isbinaryfile@5.0.4: + resolution: {integrity: sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==} + engines: {node: '>= 18.0.0'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -6475,6 +6559,9 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -6511,6 +6598,13 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} + pkg-pr-new@0.0.43: + resolution: {integrity: sha512-BxadQyJbbt7BtInyg82I73ztPOftPmDF1ttpTiJ1FpCp4p3zt5sXvDLm3V1GA8ukxa8MSvsI1+BJmsR54FLBpg==} + hasBin: true + + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} @@ -6688,6 +6782,14 @@ packages: quansync@0.2.10: resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} + query-registry@3.0.1: + resolution: {integrity: sha512-M9RxRITi2mHMVPU5zysNjctUT8bAPx6ltEXo/ir9+qmiM47Y7f0Ir3+OxUO5OjYAWdicBQRew7RtHtqUXydqlg==} + engines: {node: '>=20'} + + query-string@9.1.1: + resolution: {integrity: sha512-MWkCOVIcJP9QSKU52Ngow6bsAWAPlPK2MludXvcrS2bGZSl+T1qX9MZvRIkqUIkGLJquMJHWfsT6eRqUpp4aWg==} + engines: {node: '>=18'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -6695,6 +6797,10 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} + quick-lru@7.0.1: + resolution: {integrity: sha512-kLjThirJMkWKutUKbZ8ViqFc09tDQhlbQo2MNuVeLWbRauqYP96Sm6nzlQ24F0HFjUNZ4i9+AgldJ9H6DZXi7g==} + engines: {node: '>=18'} + randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -7200,6 +7306,10 @@ packages: spawndamnit@3.0.1: resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + split-on-first@3.0.0: + resolution: {integrity: sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==} + engines: {node: '>=12'} + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -7577,6 +7687,10 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -7648,6 +7762,10 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici@6.21.2: + resolution: {integrity: sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==} + engines: {node: '>=18.17'} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -7699,6 +7817,9 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -7723,6 +7844,10 @@ packages: urijs@1.19.11: resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==} + url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} @@ -7763,6 +7888,10 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -8076,6 +8205,10 @@ packages: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} + zod-package-json@1.1.0: + resolution: {integrity: sha512-RvEsa3W/NCqEBMtnoE09GRVelA3IqRcKaijEiM6CEGsD19qLurf0HjrYMHwOqImOszlLL0ja63DPJeeU4pm7oQ==} + engines: {node: '>=20'} + zod-to-json-schema@3.24.1: resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} peerDependencies: @@ -9137,6 +9270,13 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jsdevtools/ez-spawn@3.0.4': + dependencies: + call-me-maybe: 1.0.2 + cross-spawn: 7.0.6 + string-argv: 0.3.2 + type-detect: 4.1.0 + '@jsep-plugin/assignment@1.3.0(jsep@1.4.0)': dependencies: jsep: 1.4.0 @@ -9543,6 +9683,78 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@octokit/action@6.1.0': + dependencies: + '@octokit/auth-action': 4.1.0 + '@octokit/core': 5.2.1 + '@octokit/plugin-paginate-rest': 9.2.2(@octokit/core@5.2.1) + '@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.2.1) + '@octokit/types': 12.6.0 + undici: 6.21.2 + + '@octokit/auth-action@4.1.0': + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/types': 13.10.0 + + '@octokit/auth-token@4.0.0': {} + + '@octokit/core@5.2.1': + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.1.1 + '@octokit/request': 8.4.1 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.10.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 + + '@octokit/endpoint@9.0.6': + dependencies: + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 + + '@octokit/graphql@7.1.1': + dependencies: + '@octokit/request': 8.4.1 + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 + + '@octokit/openapi-types@20.0.0': {} + + '@octokit/openapi-types@24.2.0': {} + + '@octokit/plugin-paginate-rest@9.2.2(@octokit/core@5.2.1)': + dependencies: + '@octokit/core': 5.2.1 + '@octokit/types': 12.6.0 + + '@octokit/plugin-rest-endpoint-methods@10.4.1(@octokit/core@5.2.1)': + dependencies: + '@octokit/core': 5.2.1 + '@octokit/types': 12.6.0 + + '@octokit/request-error@5.1.1': + dependencies: + '@octokit/types': 13.10.0 + deprecation: 2.3.1 + once: 1.4.0 + + '@octokit/request@8.4.1': + dependencies: + '@octokit/endpoint': 9.0.6 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 + + '@octokit/types@12.6.0': + dependencies: + '@octokit/openapi-types': 20.0.0 + + '@octokit/types@13.10.0': + dependencies: + '@octokit/openapi-types': 24.2.0 + '@openapi-contrib/openapi-schema-to-json-schema@3.2.0': dependencies: fast-deep-equal: 3.1.3 @@ -11418,6 +11630,8 @@ snapshots: basic-ftp@5.0.5: {} + before-after-hook@2.2.3: {} + better-opn@3.0.2: dependencies: open: 8.4.2 @@ -11535,6 +11749,8 @@ snapshots: call-bind-apply-helpers: 1.0.1 get-intrinsic: 1.2.6 + call-me-maybe@1.0.2: {} + callsites@3.1.0: {} camelcase-css@2.0.1: {} @@ -11820,6 +12036,8 @@ snapshots: dependencies: character-entities: 2.0.2 + decode-uri-component@0.4.1: {} + decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 @@ -11862,6 +12080,8 @@ snapshots: dependency-graph@0.11.0: {} + deprecation@2.3.1: {} + dequal@2.0.3: {} destroy@1.2.0: {} @@ -12460,6 +12680,8 @@ snapshots: dependencies: to-regex-range: 5.0.1 + filter-obj@5.1.0: {} + finalhandler@1.3.1: dependencies: debug: 2.6.9 @@ -13266,6 +13488,8 @@ snapshots: isarray@2.0.5: {} + isbinaryfile@5.0.4: {} + isexe@2.0.0: {} jackspeak@2.3.6: @@ -14455,6 +14679,8 @@ snapshots: path-type@4.0.0: {} + pathe@1.1.2: {} + pathe@2.0.3: {} pathval@2.0.0: {} @@ -14475,6 +14701,22 @@ snapshots: pirates@4.0.6: {} + pkg-pr-new@0.0.43: + dependencies: + '@jsdevtools/ez-spawn': 3.0.4 + '@octokit/action': 6.1.0 + ignore: 5.3.2 + isbinaryfile: 5.0.4 + pkg-types: 1.2.1 + query-registry: 3.0.1 + tinyglobby: 0.2.13 + + pkg-types@1.2.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 1.1.2 + pkg-types@1.3.1: dependencies: confbox: 0.1.8 @@ -14661,10 +14903,27 @@ snapshots: quansync@0.2.10: {} + query-registry@3.0.1: + dependencies: + query-string: 9.1.1 + quick-lru: 7.0.1 + url-join: 5.0.0 + validate-npm-package-name: 5.0.1 + zod: 3.24.3 + zod-package-json: 1.1.0 + + query-string@9.1.1: + dependencies: + decode-uri-component: 0.4.1 + filter-obj: 5.1.0 + split-on-first: 3.0.0 + queue-microtask@1.2.3: {} quick-lru@5.1.1: {} + quick-lru@7.0.1: {} + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -15471,6 +15730,8 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 + split-on-first@3.0.0: {} + sprintf-js@1.0.3: {} sprintf-js@1.1.3: {} @@ -15956,6 +16217,8 @@ snapshots: dependencies: prelude-ls: 1.2.1 + type-detect@4.1.0: {} + type-fest@0.20.2: {} type-fest@0.21.3: {} @@ -16037,6 +16300,8 @@ snapshots: undici-types@6.21.0: {} + undici@6.21.2: {} + unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -16122,6 +16387,8 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + universal-user-agent@6.0.1: {} + universalify@0.1.2: {} universalify@2.0.1: {} @@ -16140,6 +16407,8 @@ snapshots: urijs@1.19.11: {} + url-join@5.0.0: {} + urlpattern-polyfill@10.0.0: {} use-callback-ref@1.3.3(@types/react@19.0.1)(react@19.0.0): @@ -16167,6 +16436,8 @@ snapshots: utils-merge@1.0.1: {} + validate-npm-package-name@5.0.1: {} + vary@1.1.2: {} vaul@1.1.2(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): @@ -16583,6 +16854,10 @@ snapshots: yoctocolors@2.1.1: {} + zod-package-json@1.1.0: + dependencies: + zod: 3.24.3 + zod-to-json-schema@3.24.1(zod@3.24.3): dependencies: zod: 3.24.3