release prep 1.0.0: changelog dated and filled, drop stale URLs, add consumer smoke script
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: sonnet
Assistant-Process: 299063@bnt-lap001
Assistant-Session: 53eb1e1c-c13a-4277-9ce2-3702960d93f7
This commit is contained in:
tegwick 2026-10-03 00:18:02 +02:00
parent 3d576386a0
commit d748e2fa22
4 changed files with 40 additions and 19 deletions

View file

@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.0.0] - 2025-12-16
## [1.0.0] - 2026-10-03
### Added
- Initial public release of TestDrive-JSUI as standalone npm package
@ -53,11 +53,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- All 24 original JavaScript files consolidated
- Single source of truth in `/capabilities/testdrive-jsui/js/`
- Legacy files cleaned up from main application
- TypeScript declarations (`types/index.d.ts`)
- `exports` map: `import` (ESM), `require` (CJS), `browser`, `./style.css`
### Fixed
- CommonJS bundle is now emitted as `dist/testdrive-jsui.cjs`; `import` and `require` previously failed in Node under `"type": "module"`
- Bundled builds no longer throw `ControlBase is not defined` on load
- `js/core/debug-system.js` loads as a classic `<script>` (stray ES `export` removed)
- Accepted section edits now refresh the page even when no document controls are present
- Lockfile is in sync with `package.json` (`npm ci` works)
### Changed
- Package metadata no longer carries repository/homepage/bugs URLs until a public home is established
## [Unreleased]
Nothing yet.
---
[1.0.0]: https://github.com/markitect/testdrive-jsui/releases/tag/v1.0.0

View file

@ -43,11 +43,8 @@
"lint": "eslint js/**/*.js src/**/*.js",
"lint:fix": "eslint js/**/*.js src/**/*.js --fix",
"clean": "rm -rf dist/ coverage/ .nyc_output/ node_modules/.cache/",
"size": "npm run build:prod && du -h dist/*"
},
"repository": {
"type": "git",
"url": "git+https://github.com/markitect/testdrive-jsui.git"
"size": "npm run build:prod && du -h dist/*",
"test:consumer": "bash scripts/consumer-smoke.sh"
},
"keywords": [
"markdown",
@ -65,10 +62,6 @@
],
"author": "MarkiTect Team <team@markitect.dev>",
"license": "MIT",
"bugs": {
"url": "https://github.com/markitect/testdrive-jsui/issues"
},
"homepage": "https://github.com/markitect/testdrive-jsui#readme",
"peerDependencies": {
"marked": "^11.0.0 || ^12.0.0 || ^13.0.0"
},

View file

@ -47,12 +47,6 @@ testing = [
"pytest-timeout>=2.1.0",
]
[project.urls]
Homepage = "https://github.com/markitect/testdrive-jsui"
Documentation = "https://docs.markitect.com/capabilities/testdrive-jsui"
Repository = "https://github.com/markitect/testdrive-jsui"
Issues = "https://github.com/markitect/testdrive-jsui/issues"
[tool.setuptools.packages.find]
where = ["src"]

25
scripts/consumer-smoke.sh Executable file
View file

@ -0,0 +1,25 @@
#!/usr/bin/env bash
# Pack the package, install the tarball into an empty project, and check the
# published entry points (ESM import, CJS require, CSS) load. Guards the
# exports map and bundle globals, which Jest (source-only) cannot see.
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT
cd "$ROOT" && npm run build:prod >/dev/null
TARBALL="$(npm pack --pack-destination "$TMP" 2>/dev/null | tail -1)"
cd "$TMP" && npm init -y >/dev/null
npm i --no-audit --no-fund marked@13 jsdom "./$TARBALL" >/dev/null 2>&1
SETUP="const {JSDOM}=require('jsdom');const d=new JSDOM('<!doctype html><body></body>',{url:'http://localhost/'});
globalThis.window=globalThis;globalThis.document=d.window.document;globalThis.location=d.window.location;
globalThis.localStorage=d.window.localStorage;globalThis.navigator=d.window.navigator;"
# The library is browser-only; unhandled indexedDB rejections after load are expected, so check markers, not exit codes.
check() { # check <marker> <label> <node args...>
local marker="$1" label="$2"; shift 2
local out; out="$(node "$@" 2>&1 || true)"
grep -q "^$marker" <<<"$out" || { echo "FAIL: $label"; exit 1; }
}
check 'CJS ok' "CJS require" -e "$SETUP const m=require('testdrive-jsui');console.log('CJS ok',typeof m)"
check 'ESM ok' "ESM import" -e "$SETUP import('testdrive-jsui').then(m=>console.log('ESM ok',typeof m.default))"
check 'CSS ok' "style.css" -e "console.log('CSS ok',require.resolve('testdrive-jsui/style.css'))"
echo "consumer smoke: ESM, CJS, CSS ok"