From 5988e930573de43d4ece4bb39e718e032618c42e Mon Sep 17 00:00:00 2001 From: PJ Date: Fri, 17 Apr 2026 23:45:32 +0700 Subject: [PATCH] chore(spec-api): scaffold @uatu/spec package metadata TypeScript 5.6 with strict mode, bundler module resolution. Tests run via node --test --experimental-strip-types so we don't need vitest or a build step. Adds node_modules to .gitignore. --- .gitignore | 3 +++ pkg/spec-api/package-lock.json | 47 ++++++++++++++++++++++++++++++++++ pkg/spec-api/package.json | 17 ++++++++++++ pkg/spec-api/tsconfig.json | 19 ++++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 pkg/spec-api/package-lock.json create mode 100644 pkg/spec-api/package.json create mode 100644 pkg/spec-api/tsconfig.json diff --git a/.gitignore b/.gitignore index 1f854d8..cd7169c 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,6 @@ local.properties # Uatu runs /runs/ + +# Node +node_modules/ diff --git a/pkg/spec-api/package-lock.json b/pkg/spec-api/package-lock.json new file mode 100644 index 0000000..12be727 --- /dev/null +++ b/pkg/spec-api/package-lock.json @@ -0,0 +1,47 @@ +{ + "name": "@uatu/spec", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@uatu/spec", + "version": "0.0.1", + "devDependencies": { + "@types/node": "^22.7.5", + "typescript": "^5.6.3" + } + }, + "node_modules/@types/node": { + "version": "22.19.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz", + "integrity": "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/pkg/spec-api/package.json b/pkg/spec-api/package.json new file mode 100644 index 0000000..cbeccb0 --- /dev/null +++ b/pkg/spec-api/package.json @@ -0,0 +1,17 @@ +{ + "name": "@uatu/spec", + "version": "0.0.1", + "description": "TypeScript spec API for Uatu (vendored locally; not published to npm in v0.1).", + "private": true, + "type": "module", + "main": "src/index.ts", + "types": "src/index.ts", + "scripts": { + "check": "tsc --noEmit", + "test": "node --test --experimental-strip-types test/*.test.ts" + }, + "devDependencies": { + "@types/node": "^22.7.5", + "typescript": "^5.6.3" + } +} diff --git a/pkg/spec-api/tsconfig.json b/pkg/spec-api/tsconfig.json new file mode 100644 index 0000000..296b6f2 --- /dev/null +++ b/pkg/spec-api/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ESNext", + "moduleResolution": "bundler", + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "esModuleInterop": true, + "skipLibCheck": true, + "lib": ["ES2020"], + "types": ["node"], + "noEmit": true, + "allowImportingTsExtensions": true + }, + "include": ["src/**/*.ts", "test/**/*.ts"] +}