From bdea164efdcb8c4fc9622769a166329065f1b55a Mon Sep 17 00:00:00 2001 From: Archmonger <16909269+Archmonger@users.noreply.github.com> Date: Sat, 14 Jun 2025 22:50:44 -0700 Subject: [PATCH 1/3] Sync Preact build config with `reactpy-django` --- .prettierrc | 4 +++ src/js/README.md | 3 -- src/js/packages/@reactpy/app/tsconfig.json | 6 ++-- src/js/packages/@reactpy/client/bun.lockb | Bin 5001 -> 5001 bytes src/js/packages/@reactpy/client/package.json | 2 +- src/js/packages/@reactpy/client/src/client.ts | 2 +- .../@reactpy/client/src/components.tsx | 28 +++++++----------- src/js/packages/@reactpy/client/src/mount.tsx | 7 ++--- src/js/packages/@reactpy/client/src/types.ts | 2 +- src/js/packages/@reactpy/client/src/vdom.tsx | 16 ++++------ .../packages/@reactpy/client/src/websocket.ts | 2 +- src/js/packages/@reactpy/client/tsconfig.json | 6 ++-- src/js/packages/event-to-object/tsconfig.json | 6 ++-- src/js/tsconfig.json | 23 +++++++++----- src/reactpy/executors/utils.py | 4 +-- tests/test_asgi/test_utils.py | 2 +- 16 files changed, 54 insertions(+), 59 deletions(-) create mode 100644 .prettierrc delete mode 100644 src/js/README.md diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 000000000..32ad81f35 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "proseWrap": "never", + "trailingComma": "all" +} diff --git a/src/js/README.md b/src/js/README.md deleted file mode 100644 index e99df49c0..000000000 --- a/src/js/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# ReactPy Client - -An ES6 Javascript client for ReactPy diff --git a/src/js/packages/@reactpy/app/tsconfig.json b/src/js/packages/@reactpy/app/tsconfig.json index fb7013663..e7c43004b 100644 --- a/src/js/packages/@reactpy/app/tsconfig.json +++ b/src/js/packages/@reactpy/app/tsconfig.json @@ -1,10 +1,10 @@ { - "extends": "../../../tsconfig.json", "compilerOptions": { + "composite": true, "outDir": "dist", - "rootDir": "src", - "composite": true + "rootDir": "src" }, + "extends": "../../../tsconfig.json", "include": ["src"], "references": [ { diff --git a/src/js/packages/@reactpy/client/bun.lockb b/src/js/packages/@reactpy/client/bun.lockb index 35e6ef1c57158ecb8aeb68e2ee78f2933b6e6d6e..a75db272d8602b09cfe3026e8daa4a82ed4eaaa9 100644 GIT binary patch delta 170 zcmV;b09F5qCy6JJE+C@Aq-P9Xih{yCxJ?4h<-X8CjvzJA<0BP{Gq(u`_Rq0SMgavH z00009lR*I|v%mqZ13yV9#rF3n7jEVxtyjoX4JR>O=I!Z1AQKj<8V@ZuUgLDq?lX$_ zl~h5klV1`avt$q@13VN#NdN!< delta 192 zcmV;x06+hUCy6JJE+AK@b&og|kLoBQYC8v1E2=H;FRZLu5D}hkNXZsTBuueRMgavG z00004lR*I|v%mqZ13!$nSq;CC`iEp3pNyq%{Zp3?4?3p@=knM{he?qV?pIahvb)MT zRn0nkN5%5#ZnE#0A1la~V$oF}xo?jO!n3Re!UhC$a$_!&ZVWQBqztbC12rx*lU5F| u5prWLX>N0LVQg$Jb7gIIWpa}l4<`Zu0JA?20|5gyE;N&05+Ac<5G4bDQb?u% diff --git a/src/js/packages/@reactpy/client/package.json b/src/js/packages/@reactpy/client/package.json index 95e545eb4..73d48a457 100644 --- a/src/js/packages/@reactpy/client/package.json +++ b/src/js/packages/@reactpy/client/package.json @@ -18,7 +18,7 @@ "main": "dist/index.js", "dependencies": { "json-pointer": "^0.6.2", - "preact": "^10.25.4" + "preact": "^10.26.9" }, "devDependencies": { "@types/json-pointer": "^1.0.34", diff --git a/src/js/packages/@reactpy/client/src/client.ts b/src/js/packages/@reactpy/client/src/client.ts index ea4e1aed5..8d9333094 100644 --- a/src/js/packages/@reactpy/client/src/client.ts +++ b/src/js/packages/@reactpy/client/src/client.ts @@ -1,5 +1,5 @@ import logger from "./logger"; -import { +import type { ReactPyClientInterface, ReactPyModule, GenericReactPyClientProps, diff --git a/src/js/packages/@reactpy/client/src/components.tsx b/src/js/packages/@reactpy/client/src/components.tsx index 42f303198..df6d0014f 100644 --- a/src/js/packages/@reactpy/client/src/components.tsx +++ b/src/js/packages/@reactpy/client/src/components.tsx @@ -1,16 +1,8 @@ import { set as setJsonPointer } from "json-pointer"; -import React, { - ChangeEvent, - createContext, - createElement, - Fragment, - MutableRefObject, - useContext, - useEffect, - useRef, - useState, -} from "preact/compat"; -import { +import type { ChangeEvent, MutableRefObject } from "preact/compat"; +import { createContext, createElement, Fragment } from "preact"; +import { useContext, useEffect, useRef, useState } from "preact/hooks"; +import type { ImportSourceBinding, ReactPyComponent, ReactPyVdom, @@ -67,7 +59,7 @@ export function Element({ model }: { model: ReactPyVdom }): JSX.Element | null { } function StandardElement({ model }: { model: ReactPyVdom }) { - const client = React.useContext(ClientContext); + const client = useContext(ClientContext); // Use createElement here to avoid warning about variable numbers of children not // having keys. Warning about this must now be the responsibility of the client // providing the models instead of the client rendering them. @@ -83,10 +75,10 @@ function StandardElement({ model }: { model: ReactPyVdom }) { function UserInputElement({ model }: { model: ReactPyVdom }): JSX.Element { const client = useContext(ClientContext); const props = createAttributes(model, client); - const [value, setValue] = React.useState(props.value); + const [value, setValue] = useState(props.value); // honor changes to value from the client via props - React.useEffect(() => setValue(props.value), [props.value]); + useEffect(() => setValue(props.value), [props.value]); const givenOnChange = props.onChange; if (typeof givenOnChange === "function") { @@ -116,7 +108,7 @@ function UserInputElement({ model }: { model: ReactPyVdom }): JSX.Element { function ScriptElement({ model }: { model: ReactPyVdom }) { const ref = useRef(null); - React.useEffect(() => { + useEffect(() => { // Don't run if the parent element is missing if (!ref.current) { return; @@ -181,10 +173,10 @@ function useImportSource(model: ReactPyVdom): MutableRefObject { const vdomImportSource = model.importSource; const vdomImportSourceJsonString = JSON.stringify(vdomImportSource); const mountPoint = useRef(null); - const client = React.useContext(ClientContext); + const client = useContext(ClientContext); const [binding, setBinding] = useState(null); - React.useEffect(() => { + useEffect(() => { let unmounted = false; if (vdomImportSource) { diff --git a/src/js/packages/@reactpy/client/src/mount.tsx b/src/js/packages/@reactpy/client/src/mount.tsx index 55ba4245e..281f8291e 100644 --- a/src/js/packages/@reactpy/client/src/mount.tsx +++ b/src/js/packages/@reactpy/client/src/mount.tsx @@ -1,7 +1,7 @@ -import { default as React, default as ReactDOM } from "preact/compat"; +import { render } from "preact"; import { ReactPyClient } from "./client"; import { Layout } from "./components"; -import { MountProps } from "./types"; +import type { MountProps } from "./types"; export function mountReactPy(props: MountProps) { // WebSocket route for component rendering @@ -36,6 +36,5 @@ export function mountReactPy(props: MountProps) { }); // Start rendering the component - // eslint-disable-next-line react/no-deprecated - ReactDOM.render(, props.mountElement); + render(, props.mountElement); } diff --git a/src/js/packages/@reactpy/client/src/types.ts b/src/js/packages/@reactpy/client/src/types.ts index 148a3486c..49232e532 100644 --- a/src/js/packages/@reactpy/client/src/types.ts +++ b/src/js/packages/@reactpy/client/src/types.ts @@ -1,4 +1,4 @@ -import { ComponentType } from "react"; +import type { ComponentType } from "preact"; // #### CONNECTION TYPES #### diff --git a/src/js/packages/@reactpy/client/src/vdom.tsx b/src/js/packages/@reactpy/client/src/vdom.tsx index 4bd882ff4..f54111de7 100644 --- a/src/js/packages/@reactpy/client/src/vdom.tsx +++ b/src/js/packages/@reactpy/client/src/vdom.tsx @@ -1,7 +1,6 @@ -import React from "react"; -import { ReactPyClientInterface } from "./types"; +import type { ReactPyClientInterface } from "./types"; import serializeEvent from "event-to-object"; -import { +import type { ReactPyVdom, ReactPyVdomImportSource, ReactPyVdomEventHandler, @@ -112,7 +111,7 @@ function getComponentFromModule( /* Gets the component with the provided name from the provided module. Built specifically to work on inifinitely deep nested components. - For example, component "My.Nested.Component" is accessed from + For example, component "My.Nested.Component" is accessed from ModuleA like so: ModuleA["My"]["Nested"]["Component"]. */ const componentParts: string[] = componentName.split("."); @@ -206,17 +205,14 @@ function createEventHandler( ): [string, () => void] { const eventHandler = function (...args: any[]) { const data = Array.from(args).map((value) => { - if (!(typeof value === "object" && value.nativeEvent)) { - return value; - } - const event = value as React.SyntheticEvent; + const event = value as Event; if (preventDefault) { event.preventDefault(); } if (stopPropagation) { event.stopPropagation(); } - return serializeEvent(event.nativeEvent); + return serializeEvent(event); }); client.sendMessage({ type: "layout-event", data, target }); }; @@ -228,7 +224,7 @@ function createInlineJavaScript( name: string, inlineJavaScript: string, ): [string, () => void] { - /* Function that will execute the string-like InlineJavaScript + /* Function that will execute the string-like InlineJavaScript via eval in the most appropriate way */ const wrappedExecutable = function (...args: any[]) { function handleExecution(...args: any[]) { diff --git a/src/js/packages/@reactpy/client/src/websocket.ts b/src/js/packages/@reactpy/client/src/websocket.ts index ba3fdc09f..4c72620f0 100644 --- a/src/js/packages/@reactpy/client/src/websocket.ts +++ b/src/js/packages/@reactpy/client/src/websocket.ts @@ -1,4 +1,4 @@ -import { CreateReconnectingWebSocketProps } from "./types"; +import type { CreateReconnectingWebSocketProps } from "./types"; import log from "./logger"; export function createReconnectingWebSocket( diff --git a/src/js/packages/@reactpy/client/tsconfig.json b/src/js/packages/@reactpy/client/tsconfig.json index 032152ae8..b6bb436d0 100644 --- a/src/js/packages/@reactpy/client/tsconfig.json +++ b/src/js/packages/@reactpy/client/tsconfig.json @@ -1,10 +1,10 @@ { - "extends": "../../../tsconfig.json", "compilerOptions": { + "composite": true, "outDir": "dist", - "rootDir": "src", - "composite": true + "rootDir": "src" }, + "extends": "../../../tsconfig.json", "include": ["src"], "references": [ { diff --git a/src/js/packages/event-to-object/tsconfig.json b/src/js/packages/event-to-object/tsconfig.json index 9b0e0b6a5..4fec695a9 100644 --- a/src/js/packages/event-to-object/tsconfig.json +++ b/src/js/packages/event-to-object/tsconfig.json @@ -1,9 +1,9 @@ { - "extends": "../../tsconfig.json", "compilerOptions": { + "composite": true, "outDir": "dist", - "rootDir": "src", - "composite": true + "rootDir": "src" }, + "extends": "../../tsconfig.json", "include": ["src"] } diff --git a/src/js/tsconfig.json b/src/js/tsconfig.json index 9e7fe5f74..aa44c2023 100644 --- a/src/js/tsconfig.json +++ b/src/js/tsconfig.json @@ -1,22 +1,31 @@ { "compilerOptions": { - "allowJs": false, + "allowJs": true, "allowSyntheticDefaultImports": true, "declaration": true, "declarationMap": true, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "isolatedModules": true, - "jsx": "react", - "lib": ["DOM", "DOM.Iterable", "esnext"], - "module": "esnext", - "moduleResolution": "node", + "jsx": "react-jsx", + "jsxImportSource": "preact", + "lib": ["ESNext", "DOM", "DOM.Iterable"], + "module": "Preserve", + "moduleDetection": "force", + "moduleResolution": "bundler", "noEmitOnError": true, "noUnusedLocals": true, + "paths": { + "react": ["./node_modules/preact/compat/"], + "react-dom": ["./node_modules/preact/compat/"], + "react-dom/*": ["./node_modules/preact/compat/*"], + "react/jsx-runtime": ["./node_modules/preact/jsx-runtime"] + }, "resolveJsonModule": true, - "skipLibCheck": false, + "skipLibCheck": true, "sourceMap": true, "strict": true, - "target": "esnext" + "target": "ESNext", + "verbatimModuleSyntax": true } } diff --git a/src/reactpy/executors/utils.py b/src/reactpy/executors/utils.py index e0008df9a..b68d56627 100644 --- a/src/reactpy/executors/utils.py +++ b/src/reactpy/executors/utils.py @@ -43,9 +43,7 @@ def vdom_head_to_html(head: VdomDict) -> str: if isinstance(head, dict) and head.get("tagName") == "head": return reactpy_to_string(head) - raise ValueError( - "Invalid head element! Element must be either `html.head` or a string." - ) + raise ValueError("Head element must be constructed with `html.head`.") def process_settings(settings: ReactPyConfig) -> None: diff --git a/tests/test_asgi/test_utils.py b/tests/test_asgi/test_utils.py index f0ffc5a73..7b65b2d80 100644 --- a/tests/test_asgi/test_utils.py +++ b/tests/test_asgi/test_utils.py @@ -5,7 +5,7 @@ def test_invalid_vdom_head(): - with pytest.raises(ValueError, match="Invalid head element!*"): + with pytest.raises(ValueError): utils.vdom_head_to_html({"tagName": "invalid"}) From 8e92bae3d9fa5335dbc5ed54e396cb1b45a9d85a Mon Sep 17 00:00:00 2001 From: Archmonger <16909269+Archmonger@users.noreply.github.com> Date: Sun, 15 Jun 2025 00:02:18 -0700 Subject: [PATCH 2/3] fix JS tests --- src/js/bun.lockb | Bin 105515 -> 130638 bytes src/js/eslint.config.mjs | 43 ++---------------- src/js/package.json | 18 ++++---- src/js/packages/@reactpy/app/bun.lockb | Bin 26230 -> 26650 bytes .../packages/@reactpy/app/eslint.config.mjs | 42 ----------------- src/js/packages/@reactpy/app/package.json | 10 ++-- src/js/packages/@reactpy/client/bun.lockb | Bin 5001 -> 3169 bytes src/js/packages/@reactpy/client/package.json | 36 +++++++-------- .../@reactpy/client/src/components.tsx | 2 +- src/js/packages/event-to-object/bun.lockb | Bin 17949 -> 17949 bytes src/js/packages/event-to-object/package.json | 36 +++++++-------- src/js/packages/event-to-object/src/index.ts | 1 + 12 files changed, 57 insertions(+), 131 deletions(-) delete mode 100644 src/js/packages/@reactpy/app/eslint.config.mjs diff --git a/src/js/bun.lockb b/src/js/bun.lockb index ff28eeb7f85e566069e72330dfeb61f50556011a..f7556b64c8daedd21b636883e016728b9bd3323c 100644 GIT binary patch delta 41568 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 YV<<^ZG~Lf^{-SCk3P{!ZcWnOu0WWi|ng9R* diff --git a/src/js/eslint.config.mjs b/src/js/eslint.config.mjs index 7509afebe..12494f73d 100644 --- a/src/js/eslint.config.mjs +++ b/src/js/eslint.config.mjs @@ -1,58 +1,25 @@ -import react from "eslint-plugin-react"; -import typescriptEslint from "@typescript-eslint/eslint-plugin"; +import { default as eslint } from "@eslint/js"; import globals from "globals"; -import tsParser from "@typescript-eslint/parser"; -import path from "node:path"; -import { fileURLToPath } from "node:url"; -import js from "@eslint/js"; -import { FlatCompat } from "@eslint/eslintrc"; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); -const compat = new FlatCompat({ - baseDirectory: __dirname, - recommendedConfig: js.configs.recommended, - allConfig: js.configs.all, -}); +import tseslint from "typescript-eslint"; export default [ - ...compat.extends( - "eslint:recommended", - "plugin:react/recommended", - "plugin:@typescript-eslint/recommended", - ), - { - ignores: ["**/node_modules/", "**/dist/"], - }, + eslint.configs.recommended, + ...tseslint.configs.recommended, + { ignores: ["**/node_modules/", "**/dist/"] }, { - plugins: { - react, - "@typescript-eslint": typescriptEslint, - }, - languageOptions: { globals: { ...globals.browser, ...globals.node, }, - - parser: tsParser, ecmaVersion: "latest", sourceType: "module", }, - - settings: { - react: { - version: "detect", - }, - }, - rules: { "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/no-empty-function": "off", - "react/prop-types": "off", }, }, ]; diff --git a/src/js/package.json b/src/js/package.json index 26962b2c6..3989e4f4d 100644 --- a/src/js/package.json +++ b/src/js/package.json @@ -1,17 +1,19 @@ { "devDependencies": { - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "^9.18.0", - "@typescript-eslint/eslint-plugin": "^8.21.0", - "@typescript-eslint/parser": "^8.21.0", + "@eslint/js": "^9.29.0", + "bun-types": "^1.2.16", "eslint": "^9.18.0", - "eslint-plugin-react": "^7.37.4", + "eslint-config-preact": "^1.5.0", "globals": "^15.14.0", - "prettier": "^3.4.2" + "prettier": "^3.4.2", + "typescript-eslint": "^8.34.0" + }, + "eslintConfig": { + "extends": "preact" }, "license": "MIT", "scripts": { - "lint": "prettier --check . && eslint", - "format": "prettier --write . && eslint --fix" + "format": "prettier --write . && eslint --fix", + "lint": "prettier --check . && eslint" } } diff --git a/src/js/packages/@reactpy/app/bun.lockb b/src/js/packages/@reactpy/app/bun.lockb index bd09c30d60ad03ffc5377a84c0cafdda0a5ca59e..5c921795bdedc7f04b09b656a943cde321df8552 100644 GIT binary patch delta 3218 zcmZ8j4Nz3q6@K@@!t%2$%YyKB1w@49cVR*P1bIRPS(Zi6*jG>#5UM2d6Tm2mQH+gE z>KJ8CYNd%)Ow&{&nGrOtH9AH|tBI!CnY65?Q%PbPjoRw8R%2rN-QBm)dS}l6x%a+v z@44rld*|6NF0$>`Ify1);yIyR~U~uOKXjN)P$?z>v&L1LKh!-trZMDbQ?F>2shFkXuz+ zqtZf^CaN?HG#q}9d_44PP$T3qm7W0&gM3J(dsVt!rRzO(Lw`FM100vA)S=Qs&`{`8 zRcco0s?L_Co|S@d7@-8fu0?!2qRq zLca+U0-SQ_t>b78b=G z>D(50k}){^&w#Ich${V1pv#(K7D$qx%;r!Xa0d+n|B_sOvUr}6$-g+@5mw2>E*cv5 z%VSm=^yh9a;Qb_NW$|;7>b1q1qezJ#(5|2&UyUF*sX<$)Sqkn+H#aiD`T2Qu^%LB? z6P)NT2n*aZo&;xibGyLRxVc*s+-$8NRJ(OsCOFpwXTeEVQ*=-f3!wTS*%xA!+gXpB z@^FhMxVOPox~+F6xI$!;TgP4^DMV&RsV+ngh{XMt;~;!!NR!7J$Q2^n_d&<+^`pWy zjpnh#=IRIg{dOFfze!kk^U}{&{O9)LR{-DtyMl4dFU5Q#4f*G>cpB8pd}UxFDO47( z=%_xlSQm%%DB^d3$y$ojrc$UzD>j5sy(X6~h6K=HsLYm-3-}O823hkh@~o7i4TY?j z1`RUXL@wZyB!$V$Np)dzz*c1198WaZ`2xAZWYH&#OvYj+Q=L&}t7#B;m|R9#^En=K zJ~f0E2FySr&%!i;#`Sq@DGi3pY%jUO<$%A#QsTD6`R8eqkkt-Iv{BBai@E?Up zzCI5h;)-yLrcG&N?gPo;XF|i$VVV^c_LzEfSX#qqowYJ+2 z+NnDFD9k_NEq%ladV;n4qUWrlYvtIFf?h5hs%i z(pVDWNOrJPdLTRWY@vm-V{OMn}d!9LF48Cm)KJ}A=B{$?h zCw?@(M{8>7|Lv88DyOn3q_X}-?By>$em`lp=2cgD#^#mFjvlromK&D$;cH9i$wxrzvzF(r}uC<rRP z(i0@vaNUqzusK*6owJS7_N)Wqm^fOTy;(#B^wpr|2)<;?eK@)&w}Xw!`Q5?PnB5%q z&oZ7-s5E%5d;}KJALh=Cc=Wwza1~M&VGDu}8On^Md?7yY7Cl-}bq(PORmXj*0DQ~^ z@Y((92CvNhMnk0#KsJE?JZ%8}9Ou%&JY#V&IJ|bD0FV#J19&~T4mC+A1k46-n+(Xe17UR6 z(wFnBHhg6N-P)@imV2-K{o0iRuY5UFZ$9y*FwU_=_Ddl>b zoRQ!|FMjWvzkSl~ZG%>=HVD_AJv2UP8S|kSM^w(&xFVFz{u_;Kjkx9GmPrS1XLZ)U z=I7;KwV#}{gwfLu$?WaKO8s2x5BfiEoU|9xZikfP?c7GM%!<%{njbc4_x5&+{{3>_ zGs-l>d7FA{Edi$wQHoY#6Z0i`t zJ=(09*6f*rxAQVZBp5cvFFemJ1u*3amxAdy7I0sv`!ciHX-aTrdoGq;q=9OQU8Ai| zY3f5{4{wi7e%rX9=`T%pMV>%5D^gIer>oUbVzizU7s&nJG>K*se<)qXe*7j#xyRBtwdt19ZnpQ3B?QZK>K^-*~+F6qs+Kdu{ zs?q=B{G9V_ZO9|8G(E2DQWtx11$|bN6*Z@;uV;C8TUT$!^3Lv7-WPjBN~>KrdbRcq b9i3ZfazDX?^|5rSHkuCCn@86z`^N9T{Ga>X delta 2957 zcmai0du)@}6~EWmi4C!1lLvOxO_eZ5;?N{9aL{xNA74s1Sz!ANgn zM0ez=XTv>P*>x>r+0dU==x;%@Adf3_RG|@twkxy=G!uSR3M~Z9fNWOiqj`)ignTPW zhe!URD9$PLb%nkPYJuYch5kUH5l}PqT?*Z#(4M}nosn&f&0re_*nQZU*rf|pOz2g1 zZ7?Rse+_*a8%Cf=WN@gzn@vL@R;nHkcF#RT~)j8C+oz*}o zCYpj?oTLt`MyQed&h=Bh{6iA%? zHH;8vc>uCF`*$HP0zC~`=v$3PepoTOWW@i$%%y#&)=w^-pSAa%|9p1rjHZLf+*&uM z0-auSn9&Jy6?N$J`YYIzh(uFbHxr7-Zv6itydS`AI7 zG#aWjjJYvNM-wU4{M!^x6>d@Bzfn9@(&Wyg5`ClY4zBncV7`UeLBmnN@Z+gV#H6u`4ikn;93*ha=qYY7SwY+m83~ph#~6L*K2Wpp@he` zX1SBI+(U593F~^?K$4?b?h|lL39Dm)%0*O;zfEzY#P5*9BpF(8pX+cC^KgFUG-)5d_Gu#BX3d0ypq*wE$6wj1!kB%(K@ETHnb;5ExrCM_Y zKsL8bR=1I!cL%sc=OLYgyREJhgYUzFLvZTMxSdlQ5v*VQ*m5x zMgc{(kHnVvE^1HPZ0K$nZotX)ZW z)@HdBtw<%t0jL*-F4;0O2e4>;nkj20$&K22c&C5~0IG!HLQzP2W&h- zTLQLR^*cM*Y~RpH3u1F#2k2)3Tc!G4-h1Ik!RnVLe=}!Szud7`_S`t~)rHUJEa&Jt zBCB8e!Uq4+1&vk5=j^x0(rn|8sI=K;R~v;$xaf%&zhsx^yb86{(QK_$JBxFvtuL*+ z+53k%2etQDS$6PYLwWQ+bCz~G*=);IdzFi;zsL{hp39oEkJ1ztFisEQrFJ^Te@B*w zEPb!cd7Y*5psiBvjMo2oV7KYczVFZ3)mGz3$&DAE^*fqyFV!x$3;E)s=Yth|nkIra z{xw|)+H%!4Wc010A6mb6sZ7t?J+*MIV2P_!uFV_DfqyVmk(BuX`en$*qcqcEL>Ui>_T$9FWNOO!WI!D?X&pwAk!w z7t{HE&8ba>>4OQkl`iDfyJkAvVogq+tF|OXyHY=1HRdxa(eOkPi_%;+k-pWd`OHl9 zAotDGj~R3%wb}mPLPnBqjcPOW*5SA{_fLB?$_#jbhgwCFGj>Ix$r2Ra9vSTH>2XE6 zd%xQ~Kx1u18oY$lZJwN$!QhRLyiim59^Ywtq;E@(ztK%i8@*Q1^hLS`!u^B3{-GpO f-qknIO$RnUNB`WCOE)|6V&+Z1GR6uzAEf*blax;Jd`^0d0 zqil8v2SV~QFfoZF*e%i4F-O}{N8e)q;7{FOkf85#cZ{{zyjlPfvGCrhyN zPQJ_Wf3pLZIwRKxXxJTLpPa^HC(ZEhKLmgr3-ZVZs5}S9!#+xJ#3gY>y4LaJbsYx7+ai)3}dd9%Wn5@j_s{)IXwK21A@WxJI zXJU*q&@AEQ|pASAwnp delta 1759 zcmb7E4^We382`R+gZ+iE1qFiyLmb)mu`$QSe@IQJpia_}!ixXa!LbG=ps@*YB4&c0 zsHKNqaOg!8Fe*4vH2cRTBo?yj&VzLnM(QER$t7FQyY0iB-PQHnz2Eb_&+mDE@ALlq zP5SSXG?Gt#aH*|`uWP9JBCaou7@j(RCHdVD)sI<-@ zGn(-Fv+Y;?caBQMeqq8rp&6IYy)*xe@9oO3pC8fJ>|go%ndpUbKChB$YMRKz^QdS% z5r2=WgzryOKb|NI1jaaE^njUI&=^g#5=xGl3SH)*4|-9J2{* z;L!om#w@zo{6^i-g+Cf^kIqzlnmBg9aqgR=sVj4)4-CE8%}Uy9Njb2J!_5c~&vg{1 zxBBKB%j#gA^^EU*bnsGh`1D6JB1-1rZ#W}fAy% z-!c-m-xf}s9<8eQ?WBOznOh4b1CfDg*E!P{g_eLLM)kpr!2Tt2F|tAA^_BI=+|6I! zlJ)Q-vWMM>=@WJkzkJAgF+Ar&Z(*g*96Z@pJehH$rTNf{^`CWFTm2-1GkxSM0|Te) zhSqp|`^mgvT-bJ_i;ys7i#_ITjIw$CJvUysDO(Vy!SUNn`cz#(E+8sWO)5dksBw0hkrphP)5pmPth8j&azx-dB`GH( zF^m>9TCf0-lM3|iXxXDBjlkDH6d5g?oms~%UfG9PjxkZB7tkdk{Q)xxs1(k6s*xiX z3*davO5fI~F5?y6wk}u7tcd!VqYX+zT3Qz2&}8?2S$=7WS;1xC3|Jv$$rQ zN1;p^+B`Bc3MD4HCoU&B5;RJ(yr{~Bm*s6Q$lp<1U~u*IhEl!EQ4MA128R733RDkL rWD2zP3aXkH68bP7BrbEy&~B0%RM%s!QvlfYCsUFN=iddfVbNvOifpV z4oX_;AKK*3yeK^dj@d>phG<{AvG@;pvyBya8IuVwGqX4^lL7%av&=D%1Qca$c4cxd hMR;^&a&BR4Q*?4^ZfBEhHYu~1Hg^I6II|Er4GkBtNv;3@ delta 181 zcmV;m080Ozi~*gD0gx^rqzHCI39^@xWJ2ec^BWzm$V%AV@}t6rP`QZxEHep+u}*dc z0SA)-1}n4h1zit7^Me&iGXxy}g+UYY-j)5aHC6nBNP8ajv((GjX}J_{)*Do+UE;E5 zNjv?ySpR`tJ2ExcAad66oZ^T-dh0ZQvyBya83c23V=j{gFEg_|FOLENH?zz!j|35N jV=ifKb97;BY%X(UZFXgHlW#UDvz0b_0s%L(5IGGEAwEsk diff --git a/src/js/packages/event-to-object/package.json b/src/js/packages/event-to-object/package.json index 2f3852120..6d2af6dde 100644 --- a/src/js/packages/event-to-object/package.json +++ b/src/js/packages/event-to-object/package.json @@ -1,34 +1,34 @@ { - "name": "event-to-object", - "version": "0.1.2", - "description": "Converts a JavaScript events to JSON serializable objects.", "author": "Ryan Morshead", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/reactive-python/reactpy" - }, - "keywords": [ - "event", - "json", - "object", - "convert" - ], - "type": "module", - "main": "dist/index.js", "dependencies": { "json-pointer": "^0.6.2" }, + "description": "Converts a JavaScript events to JSON serializable objects.", "devDependencies": { "happy-dom": "^8.9.0", "lodash": "^4.17.21", "tsm": "^2.3.0", - "typescript": "^5.7.3", + "typescript": "^5.8.3", "uvu": "^0.5.6" }, + "keywords": [ + "event", + "json", + "object", + "convert" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "event-to-object", + "repository": { + "type": "git", + "url": "https://github.com/reactive-python/reactpy" + }, "scripts": { "build": "tsc -b", "checkTypes": "tsc --noEmit", "test": "uvu -r tsm tests" - } + }, + "type": "module", + "version": "0.1.2" } diff --git a/src/js/packages/event-to-object/src/index.ts b/src/js/packages/event-to-object/src/index.ts index 8790add04..3f263af4d 100644 --- a/src/js/packages/event-to-object/src/index.ts +++ b/src/js/packages/event-to-object/src/index.ts @@ -11,6 +11,7 @@ export default function convert( ? P : never; }[keyof e.EventToObjectMap] + | e.EventObject | null { return event.type in eventConverters ? eventConverters[event.type](event) From 1e7d5d21622b37eccf1f690ab1e7f65931511fea Mon Sep 17 00:00:00 2001 From: Archmonger <16909269+Archmonger@users.noreply.github.com> Date: Sun, 15 Jun 2025 00:19:40 -0700 Subject: [PATCH 3/3] remove incompatile plugin --- src/js/bun.lockb | Bin 130638 -> 58956 bytes src/js/package.json | 4 ---- 2 files changed, 4 deletions(-) diff --git a/src/js/bun.lockb b/src/js/bun.lockb index f7556b64c8daedd21b636883e016728b9bd3323c..d668a44031eac5fbd9e34cb983ae613c37d97763 100644 GIT binary patch delta 7976 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