release 1.0.1: publish as @coulomb/testdrive-jsui to the coulomb Forgejo npm registry
Scoped name, publishConfig.registry, secret-free .npmrc (token from NPM_AUTH_TOKEN env), changelog (1.0.0 tagged but never published), install docs without public-CDN claims, consumer smoke uses the package name. 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
d748e2fa22
commit
71a2a1e52c
7 changed files with 34 additions and 19 deletions
5
.npmrc
Normal file
5
.npmrc
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
# Scope -> coulomb Forgejo npm registry. The token is read from the environment
|
||||||
|
# (NPM_AUTH_TOKEN, injected by `secrets-engine exec --catalog <lane> --` or
|
||||||
|
# `warden access`); never write a token into this file.
|
||||||
|
@coulomb:registry=https://forgejo.coulomb.social/api/packages/coulomb/npm/
|
||||||
|
//forgejo.coulomb.social/api/packages/coulomb/npm/:_authToken=${NPM_AUTH_TOKEN}
|
||||||
|
|
@ -198,22 +198,19 @@ String html = adapter.generateHtml(markdown, "edit", config);
|
||||||
|
|
||||||
## 📦 Distribution Models
|
## 📦 Distribution Models
|
||||||
|
|
||||||
### Model 1: CDN (Simplest)
|
### Model 1: Self-hosted file (simplest)
|
||||||
|
|
||||||
```html
|
Copy `dist/testdrive-jsui.min.js` and `dist/testdrive-jsui.css` from the package (or a release build) next to your page and load them with `<script>` / `<link>`. Public CDNs (jsDelivr, unpkg) only mirror npmjs.org and do not serve the coulomb Forgejo registry.
|
||||||
<!-- Use directly from CDN -->
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/testdrive-jsui@1.0.0/dist/testdrive-jsui.min.js"></script>
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/testdrive-jsui@1.0.0/dist/testdrive-jsui.min.css">
|
|
||||||
```
|
|
||||||
|
|
||||||
### Model 2: npm Package
|
### Model 2: npm package (coulomb Forgejo registry)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install testdrive-jsui
|
# .npmrc: @coulomb:registry=https://forgejo.coulomb.social/api/packages/coulomb/npm/
|
||||||
|
npm install @coulomb/testdrive-jsui marked
|
||||||
```
|
```
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
import TestDriveJSUI from 'testdrive-jsui';
|
import TestDriveJSUI from '@coulomb/testdrive-jsui';
|
||||||
```
|
```
|
||||||
|
|
||||||
### Model 3: With Language Adapter
|
### Model 3: With Language Adapter
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,14 @@ 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/),
|
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).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [1.0.0] - 2026-10-03
|
## [1.0.1] - 2026-10-03
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Package is now `@coulomb/testdrive-jsui`, published to the coulomb Forgejo npm registry (`publishConfig.registry`); install with the `@coulomb:registry` scope mapping in `.npmrc`
|
||||||
|
- `1.0.0` was tagged (`v1.0.0`) but never published under any name; `1.0.1` is the first published version. Code is identical apart from the name, registry and version
|
||||||
|
- Public CDNs (jsDelivr, unpkg) mirror npmjs.org only and do not serve this registry
|
||||||
|
|
||||||
|
## [1.0.0] - 2026-10-03 (tagged, not published)
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Initial public release of TestDrive-JSUI as standalone npm package
|
- Initial public release of TestDrive-JSUI as standalone npm package
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
> **Superseded for the destination (2026-10-03):** the package is published to the coulomb Forgejo npm registry as `@coulomb/testdrive-jsui`, not to npmjs.org; the CDN and npm-badge steps below do not apply. See CHANGELOG.md 1.0.1. Kept for history.
|
||||||
|
|
||||||
# TestDrive-JSUI npm Publication Workplan
|
# TestDrive-JSUI npm Publication Workplan
|
||||||
|
|
||||||
**Goal**: Bundle and publish testdrive-jsui as a production-ready npm package
|
**Goal**: Bundle and publish testdrive-jsui as a production-ready npm package
|
||||||
|
|
|
||||||
8
package-lock.json
generated
8
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "testdrive-jsui",
|
"name": "@coulomb/testdrive-jsui",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "testdrive-jsui",
|
"name": "@coulomb/testdrive-jsui",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"jsdom": "^23.0.0"
|
"jsdom": "^23.0.0"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "testdrive-jsui",
|
"name": "@coulomb/testdrive-jsui",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"description": "JavaScript-first markdown editor library with interactive UI",
|
"description": "JavaScript-first markdown editor library with interactive UI",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "dist/testdrive-jsui.cjs",
|
"main": "dist/testdrive-jsui.cjs",
|
||||||
|
|
@ -190,5 +190,8 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"publishConfig": {
|
||||||
|
"registry": "https://forgejo.coulomb.social/api/packages/coulomb/npm/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ trap 'rm -rf "$TMP"' EXIT
|
||||||
cd "$ROOT" && npm run build:prod >/dev/null
|
cd "$ROOT" && npm run build:prod >/dev/null
|
||||||
TARBALL="$(npm pack --pack-destination "$TMP" 2>/dev/null | tail -1)"
|
TARBALL="$(npm pack --pack-destination "$TMP" 2>/dev/null | tail -1)"
|
||||||
cd "$TMP" && npm init -y >/dev/null
|
cd "$TMP" && npm init -y >/dev/null
|
||||||
|
PKG="$(node -p "require('$ROOT/package.json').name")"
|
||||||
npm i --no-audit --no-fund marked@13 jsdom "./$TARBALL" >/dev/null 2>&1
|
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/'});
|
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.window=globalThis;globalThis.document=d.window.document;globalThis.location=d.window.location;
|
||||||
|
|
@ -19,7 +20,7 @@ check() { # check <marker> <label> <node args...>
|
||||||
local out; out="$(node "$@" 2>&1 || true)"
|
local out; out="$(node "$@" 2>&1 || true)"
|
||||||
grep -q "^$marker" <<<"$out" || { echo "FAIL: $label"; exit 1; }
|
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 'CJS ok' "CJS require" -e "$SETUP const m=require('$PKG');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 'ESM ok' "ESM import" -e "$SETUP import('$PKG').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'))"
|
check 'CSS ok' "style.css" -e "console.log('CSS ok',require.resolve('$PKG/style.css'))"
|
||||||
echo "consumer smoke: ESM, CJS, CSS ok"
|
echo "consumer smoke: ESM, CJS, CSS ok"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue