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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 pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy