release prep 1.0.0: changelog dated and filled, drop stale URLs, add consumer smoke script
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:
parent
3d576386a0
commit
d748e2fa22
4 changed files with 40 additions and 19 deletions
17
CHANGELOG.md
17
CHANGELOG.md
|
|
@ -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
|
||||
|
|
|
|||
11
package.json
11
package.json
|
|
@ -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"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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
25
scripts/consumer-smoke.sh
Executable 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"
|
||||
Loading…
Add table
Add a link
Reference in a new issue