diff --git a/packages/web-playground/package.json b/packages/web-playground/package.json index 74321e4..ada2d4a 100644 --- a/packages/web-playground/package.json +++ b/packages/web-playground/package.json @@ -13,12 +13,12 @@ "dependencies": { "@cloakcode/protocol": "workspace:*", "@cloakcode/web": "workspace:*", - "react": "^18.3.1", - "react-dom": "^18.3.1" + "react": "^19.2.7", + "react-dom": "^19.2.7" }, "devDependencies": { - "@types/react": "^18.3.12", - "@types/react-dom": "^18.3.1", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.0", "typescript": "^5.6.0", "vite": "8.1.4" diff --git a/packages/web/package.json b/packages/web/package.json index 61d5456..610c05e 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -18,8 +18,8 @@ }, "dependencies": { "qrcode-generator": "^2.0.4", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19.2.7", + "react-dom": "^19.2.7", "react-markdown": "^10.1.0", "remark-gfm": "^4.0.0" }, @@ -27,8 +27,8 @@ "@cloakcode/protocol": "workspace:*", "@testing-library/dom": "^10.4.1", "@testing-library/react": "^16.3.2", - "@types/react": "^18.3.12", - "@types/react-dom": "^18.3.1", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.0", "jsdom": "29.1.1", "typescript": "^5.6.0", diff --git a/packages/web/src/App.tsx b/packages/web/src/App.tsx index 9a1b4ae..07697b7 100644 --- a/packages/web/src/App.tsx +++ b/packages/web/src/App.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from "react"; +import { useEffect, useState, type JSX } from "react"; import type { SessionSummary } from "@cloakcode/protocol"; import { bridgeUrl, fetchSessions } from "./bridge"; import { onEnrolmentRequired, onNeedsAuth } from "./auth"; diff --git a/packages/web/src/AuthPrompt.tsx b/packages/web/src/AuthPrompt.tsx index ae0075d..5d606c3 100644 --- a/packages/web/src/AuthPrompt.tsx +++ b/packages/web/src/AuthPrompt.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { useState, type JSX } from "react"; import { submitAuthCode } from "./auth"; /** diff --git a/packages/web/src/EnrolView.tsx b/packages/web/src/EnrolView.tsx index 2b5013f..f215f51 100644 --- a/packages/web/src/EnrolView.tsx +++ b/packages/web/src/EnrolView.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from "react"; +import { useEffect, useState, type JSX } from "react"; import { beginEnrolment, submitAuthCode, type EnrolProvisioning } from "./auth"; import { qrSvg } from "./qr"; diff --git a/packages/web/src/Markdown.tsx b/packages/web/src/Markdown.tsx index c184100..7178a0b 100644 --- a/packages/web/src/Markdown.tsx +++ b/packages/web/src/Markdown.tsx @@ -1,4 +1,4 @@ -import { memo } from "react"; +import { memo, type JSX } from "react"; import ReactMarkdown, { type Components } from "react-markdown"; import remarkGfm from "remark-gfm"; diff --git a/packages/web/src/SessionView.tsx b/packages/web/src/SessionView.tsx index eccfbf2..6269a3b 100644 --- a/packages/web/src/SessionView.tsx +++ b/packages/web/src/SessionView.tsx @@ -1,4 +1,12 @@ -import { memo, useEffect, useMemo, useReducer, useRef, useState } from "react"; +import { + memo, + useEffect, + useMemo, + useReducer, + useRef, + useState, + type JSX, +} from "react"; import type { Decision, PendingBlocker, diff --git a/packages/web/src/SettingsMenu.tsx b/packages/web/src/SettingsMenu.tsx index 9415dda..7e01d3c 100644 --- a/packages/web/src/SettingsMenu.tsx +++ b/packages/web/src/SettingsMenu.tsx @@ -1,4 +1,4 @@ -import { useEffect, useRef, useState, type ReactNode } from "react"; +import { useEffect, useRef, useState, type JSX, type ReactNode } from "react"; /** * A single on/off setting: label (+ optional sub-text) on the left, a switch on diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 40a121b..981bf00 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -131,14 +131,14 @@ importers: specifier: ^2.0.4 version: 2.0.4 react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.7 + version: 19.2.7 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.2.7 + version: 19.2.7(react@19.2.7) react-markdown: specifier: ^10.1.0 - version: 10.1.0(@types/react@18.3.31)(react@18.3.1) + version: 10.1.0(@types/react@19.2.17)(react@19.2.7) remark-gfm: specifier: ^4.0.0 version: 4.0.1 @@ -151,13 +151,13 @@ importers: version: 10.4.1 '@testing-library/react': specifier: ^16.3.2 - version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@types/react': - specifier: ^18.3.12 - version: 18.3.31 + specifier: ^19.2.17 + version: 19.2.17 '@types/react-dom': - specifier: ^18.3.1 - version: 18.3.7(@types/react@18.3.31) + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.17) '@vitejs/plugin-react': specifier: ^6.0.0 version: 6.0.3(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) @@ -183,18 +183,18 @@ importers: specifier: workspace:* version: link:../web react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.2.7 + version: 19.2.7 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.2.7 + version: 19.2.7(react@19.2.7) devDependencies: '@types/react': - specifier: ^18.3.12 - version: 18.3.31 + specifier: ^19.2.17 + version: 19.2.17 '@types/react-dom': - specifier: ^18.3.1 - version: 18.3.7(@types/react@18.3.31) + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.17) '@vitejs/plugin-react': specifier: ^6.0.0 version: 6.0.3(vite@8.1.4(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)) @@ -887,16 +887,13 @@ packages: '@types/normalize-package-data@2.4.4': resolution: {integrity: sha1-VuLMJsOXwDj6sOOpF6EtXFkJ6QE=} - '@types/prop-types@15.7.15': - resolution: {integrity: sha1-5uWobWAr6spxzlFj+t9fldcJMcc=} - - '@types/react-dom@18.3.7': - resolution: {integrity: sha1-uJ3fLNg7T+r8xOLqQa/fuVoNGU8=} + '@types/react-dom@19.2.3': + resolution: {integrity: sha1-weMF0VpSo+UI1U3Kdw0gLLY6vyw=} peerDependencies: - '@types/react': ^18.0.0 + '@types/react': ^19.2.0 - '@types/react@18.3.31': - resolution: {integrity: sha1-teleKP/M6rjZgvM/LrB24XZTwqQ=} + '@types/react@19.2.17': + resolution: {integrity: sha1-3MrDZbqg8XNOwnD/S1HIlGXo3H8=} '@types/sarif@2.1.7': resolution: {integrity: sha1-2rTRa6dWjphGxFSodk8zxdmOVSQ=} @@ -1133,8 +1130,8 @@ packages: resolution: {integrity: sha1-9kGhlrM1aQsQcL8AtudZP+wZC/c=} engines: {node: '>=12'} - ast-v8-to-istanbul@1.0.4: - resolution: {integrity: sha1-mzw4vcrbsX8NqMqyyj2vjN9eCvI=} + ast-v8-to-istanbul@1.0.5: + resolution: {integrity: sha1-cIuutvXIeSJtESo0H/qCHEOIHS0=} astral-regex@2.0.0: resolution: {integrity: sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=} @@ -1919,10 +1916,6 @@ packages: longest-streak@3.1.0: resolution: {integrity: sha1-YvpnzZWHQqFXSvnzmGY2QQLZDNQ=} - loose-envify@1.4.0: - resolution: {integrity: sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=} - hasBin: true - lru-cache@10.4.3: resolution: {integrity: sha1-QQ/IoXtw5ZgBPfJXwkRrfzOD8Rk=} @@ -2289,10 +2282,10 @@ packages: rc-config-loader@4.1.4: resolution: {integrity: sha1-bMeQQqwZPr7Z8IL8unuCPZ3BQ8w=} - react-dom@18.3.1: - resolution: {integrity: sha1-wiZdeVEbV9R5s90/36UVNklMXLQ=} + react-dom@19.2.7: + resolution: {integrity: sha1-BFDcmundv/du8ZZAHNi4x/tGbMw=} peerDependencies: - react: ^18.3.1 + react: ^19.2.7 react-is@17.0.2: resolution: {integrity: sha1-5pHUqOnHiTZWVVOas3J2Kw77VPA=} @@ -2303,8 +2296,8 @@ packages: '@types/react': '>=18' react: '>=18' - react@18.3.1: - resolution: {integrity: sha1-SauJIAnFOTNiW9FrJTP8dUyrKJE=} + react@19.2.7: + resolution: {integrity: sha1-H0ehv8BvjsiFdSxvSvFDaan4Jgs=} engines: {node: '>=0.10.0'} read-pkg@9.0.1: @@ -2361,8 +2354,8 @@ packages: resolution: {integrity: sha1-/ltKR2jfTxSiAbG6amXB89mYjMU=} engines: {node: '>=v12.22.7'} - scheduler@0.23.2: - resolution: {integrity: sha1-QUumSjsoKJLpRM8hCOzAeNEVzcM=} + scheduler@0.27.0: + resolution: {integrity: sha1-DE74LWfR5cHjWej8dtOofwRf5b0=} secretlint@10.2.2: resolution: {integrity: sha1-wM+ZcVOivvC2U4dNyHAw2qajUUA=} @@ -3406,15 +3399,15 @@ snapshots: picocolors: 1.1.1 pretty-format: 27.5.1 - '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@babel/runtime': 7.29.7 '@testing-library/dom': 10.4.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: - '@types/react': 18.3.31 - '@types/react-dom': 18.3.7(@types/react@18.3.31) + '@types/react': 19.2.17 + '@types/react-dom': 19.2.3(@types/react@19.2.17) '@textlint/ast-node-types@15.7.1': {} @@ -3489,15 +3482,12 @@ snapshots: '@types/normalize-package-data@2.4.4': {} - '@types/prop-types@15.7.15': {} - - '@types/react-dom@18.3.7(@types/react@18.3.31)': + '@types/react-dom@19.2.3(@types/react@19.2.17)': dependencies: - '@types/react': 18.3.31 + '@types/react': 19.2.17 - '@types/react@18.3.31': + '@types/react@19.2.17': dependencies: - '@types/prop-types': 15.7.15 csstype: 3.2.3 '@types/sarif@2.1.7': {} @@ -3622,7 +3612,7 @@ snapshots: dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.1.10 - ast-v8-to-istanbul: 1.0.4 + ast-v8-to-istanbul: 1.0.5 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-reports: 3.2.0 @@ -3790,7 +3780,7 @@ snapshots: assertion-error@2.0.1: {} - ast-v8-to-istanbul@1.0.4: + ast-v8-to-istanbul@1.0.5: dependencies: '@jridgewell/trace-mapping': 0.3.31 estree-walker: 3.0.3 @@ -4603,10 +4593,6 @@ snapshots: longest-streak@3.1.0: {} - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - lru-cache@10.4.3: {} lru-cache@11.5.2: {} @@ -5178,24 +5164,23 @@ snapshots: transitivePeerDependencies: - supports-color - react-dom@18.3.1(react@18.3.1): + react-dom@19.2.7(react@19.2.7): dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 + react: 19.2.7 + scheduler: 0.27.0 react-is@17.0.2: {} - react-markdown@10.1.0(@types/react@18.3.31)(react@18.3.1): + react-markdown@10.1.0(@types/react@19.2.17)(react@19.2.7): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@types/react': 18.3.31 + '@types/react': 19.2.17 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 mdast-util-to-hast: 13.2.1 - react: 18.3.1 + react: 19.2.7 remark-parse: 11.0.0 remark-rehype: 11.1.2 unified: 11.0.5 @@ -5204,9 +5189,7 @@ snapshots: transitivePeerDependencies: - supports-color - react@18.3.1: - dependencies: - loose-envify: 1.4.0 + react@19.2.7: {} read-pkg@9.0.1: dependencies: @@ -5295,9 +5278,7 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 + scheduler@0.27.0: {} secretlint@10.2.2: dependencies: