port ujsx from Deno-only to cross-platform (Node/Bun/Deno)
Add npm project configuration (package.json, tsconfig.json, tsup, vitest) matching the taskgraph_ts conventions. All source imports changed from .ts to .js extensions for Node16 module resolution. Tests migrated from Deno.test to vitest. Fixed strict type errors (noUncheckedIndexedAccess). Preserved deno.json with sloppy-imports for dual Deno/Node compatibility. Subpath exports: schema, h, reactive, context, events, pointer, host, transform, jsx-runtime — plus barrel export at root. Build: ESM + CJS dual output via tsup. 22 tests passing.
This commit is contained in:
149
package.json
Normal file
149
package.json
Normal file
@@ -0,0 +1,149 @@
|
||||
{
|
||||
"name": "@alkdev/ujsx",
|
||||
"version": "0.1.0",
|
||||
"description": "Universal JSX — runtime-agnostic reactive tree primitives with TypeBox schemas",
|
||||
"type": "module",
|
||||
"main": "./dist/mod.cjs",
|
||||
"module": "./dist/mod.js",
|
||||
"types": "./dist/mod.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"import": {
|
||||
"types": "./dist/mod.d.ts",
|
||||
"default": "./dist/mod.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/mod.d.cts",
|
||||
"default": "./dist/mod.cjs"
|
||||
}
|
||||
},
|
||||
"./schema": {
|
||||
"import": {
|
||||
"types": "./dist/core/schema.d.ts",
|
||||
"default": "./dist/core/schema.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/core/schema.d.cts",
|
||||
"default": "./dist/core/schema.cjs"
|
||||
}
|
||||
},
|
||||
"./h": {
|
||||
"import": {
|
||||
"types": "./dist/core/h.d.ts",
|
||||
"default": "./dist/core/h.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/core/h.d.cts",
|
||||
"default": "./dist/core/h.cjs"
|
||||
}
|
||||
},
|
||||
"./reactive": {
|
||||
"import": {
|
||||
"types": "./dist/core/reactive.d.ts",
|
||||
"default": "./dist/core/reactive.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/core/reactive.d.cts",
|
||||
"default": "./dist/core/reactive.cjs"
|
||||
}
|
||||
},
|
||||
"./context": {
|
||||
"import": {
|
||||
"types": "./dist/core/context.d.ts",
|
||||
"default": "./dist/core/context.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/core/context.d.cts",
|
||||
"default": "./dist/core/context.cjs"
|
||||
}
|
||||
},
|
||||
"./events": {
|
||||
"import": {
|
||||
"types": "./dist/core/events.d.ts",
|
||||
"default": "./dist/core/events.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/core/events.d.cts",
|
||||
"default": "./dist/core/events.cjs"
|
||||
}
|
||||
},
|
||||
"./pointer": {
|
||||
"import": {
|
||||
"types": "./dist/core/pointer.d.ts",
|
||||
"default": "./dist/core/pointer.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/core/pointer.d.cts",
|
||||
"default": "./dist/core/pointer.cjs"
|
||||
}
|
||||
},
|
||||
"./host": {
|
||||
"import": {
|
||||
"types": "./dist/host/config.d.ts",
|
||||
"default": "./dist/host/config.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/host/config.d.cts",
|
||||
"default": "./dist/host/config.cjs"
|
||||
}
|
||||
},
|
||||
"./transform": {
|
||||
"import": {
|
||||
"types": "./dist/transform/registry.d.ts",
|
||||
"default": "./dist/transform/registry.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/transform/registry.d.cts",
|
||||
"default": "./dist/transform/registry.cjs"
|
||||
}
|
||||
},
|
||||
"./jsx-runtime": {
|
||||
"import": {
|
||||
"types": "./dist/core/jsx-runtime.d.ts",
|
||||
"default": "./dist/core/jsx-runtime.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/core/jsx-runtime.d.cts",
|
||||
"default": "./dist/core/jsx-runtime.cjs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "tsup",
|
||||
"build:tsc": "tsc",
|
||||
"test": "vitest run",
|
||||
"test:watch": "vitest",
|
||||
"test:coverage": "vitest run --coverage",
|
||||
"lint": "tsc --noEmit",
|
||||
"prepublishOnly": "npm run build"
|
||||
},
|
||||
"keywords": [
|
||||
"ujsx",
|
||||
"jsx",
|
||||
"reactive",
|
||||
"signals",
|
||||
"typebox",
|
||||
"universal-jsx"
|
||||
],
|
||||
"license": "MIT OR Apache-2.0",
|
||||
"dependencies": {
|
||||
"@alkdev/typebox": "^0.34.49",
|
||||
"@preact/signals-core": "^1.14.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.0.0",
|
||||
"@vitest/coverage-v8": "^3.2.4",
|
||||
"tsup": "^8.5.1",
|
||||
"typescript": "^5.7.0",
|
||||
"vitest": "^3.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user