nestjs-web-repl 0.0.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +54 -0
  2. package/package.json +18 -1
package/README.md CHANGED
@@ -348,6 +348,60 @@ intent and do not, and cannot, technically enforce anything, nor do they bind
348
348
  GitHub's own hosting. Using an AI coding assistant to help you *work with* this
349
349
  library is entirely fine and expected.
350
350
 
351
+ ## Releasing
352
+
353
+ Releases are **fully automated**. Merging a PR to `main` with releasable
354
+ [Conventional Commits](https://www.conventionalcommits.org/) triggers
355
+ `.github/workflows/release.yml`, which runs the full test suite and then
356
+ [semantic-release](https://semantic-release.gitbook.io/):
357
+
358
+ | Commit type | Version bump |
359
+ | ---------------------- | ----------------- |
360
+ | `fix:` | patch (x.y.**z**) |
361
+ | `feat:` | minor (x.**y**.0) |
362
+ | `feat!:` / `BREAKING CHANGE:` in body | major (**x**.0.0) |
363
+ | `docs:` `chore:` `test:` `ci:` `refactor:` | no release |
364
+
365
+ It computes the next version, updates `CHANGELOG.md`, publishes to npm
366
+ (**tokenless via OIDC trusted publishing, with provenance attached
367
+ automatically**), tags the commit, cuts a GitHub Release, and commits the
368
+ version/changelog bump back to `main` as `chore(release): x.y.z [skip ci]`.
369
+ Do not bump `version` in `package.json` by hand.
370
+
371
+ ### One-time bootstrap (maintainer, once)
372
+
373
+ npm's OIDC trusted publishing cannot perform a package's *first* publish, so a
374
+ maintainer does this once:
375
+
376
+ 1. **Create the package on npm with a placeholder:**
377
+ ```bash
378
+ npm login
379
+ npm version 0.0.0 --no-git-tag-version # temp, do not commit
380
+ npm publish --access public
381
+ git checkout -- package.json # restore working version
382
+ ```
383
+ Do **not** create a git tag for `0.0.0`; with no tags semantic-release's
384
+ first automated release is `1.0.0`.
385
+ 2. **Register the Trusted Publisher** at
386
+ `https://www.npmjs.com/package/nestjs-web-repl/access` → *Trusted Publishers*
387
+ → GitHub Actions: owner `p-dim-popov`, repository `nestjs-web-repl`, workflow
388
+ `release.yml` (leave environment blank). After this, no token is needed.
389
+ 3. (Optional, after `1.0.0` ships) `npm deprecate nestjs-web-repl@0.0.0 "placeholder"`.
390
+
391
+ ### Verifying the first real release
392
+
393
+ After the bootstrap, the next merge to `main` containing a `feat:`/`fix:` commit
394
+ should produce `1.0.0`. Confirm:
395
+
396
+ - `npm view nestjs-web-repl version` → `1.0.0`
397
+ - the npm package page shows a provenance / "Published via GitHub Actions" badge
398
+ - a `v1.0.0` git tag and a matching GitHub Release with generated notes exist
399
+ - `CHANGELOG.md` and a `chore(release): 1.0.0` commit are on `main`
400
+ - the `release.yml` run is green
401
+
402
+ If the publish step fails with an auth error, the Trusted Publisher registration
403
+ (step 2) is missing or its repo/workflow fields don't match exactly.
404
+
351
405
  ## Contributing
352
406
 
353
407
  Contributions are welcome — see [`CONTRIBUTING.md`](./CONTRIBUTING.md). AI-
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nestjs-web-repl",
3
- "version": "0.0.0",
3
+ "version": "1.0.0",
4
4
  "description": "Expose a live NestJS REPL over the network (HTTP + SSE + Monaco UI).",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -8,6 +8,20 @@
8
8
  "files": [
9
9
  "dist"
10
10
  ],
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/p-dim-popov/nestjs-web-repl.git"
14
+ },
15
+ "bugs": {
16
+ "url": "https://github.com/p-dim-popov/nestjs-web-repl/issues"
17
+ },
18
+ "homepage": "https://github.com/p-dim-popov/nestjs-web-repl#readme",
19
+ "publishConfig": {
20
+ "access": "public"
21
+ },
22
+ "engines": {
23
+ "node": ">=20"
24
+ },
11
25
  "scripts": {
12
26
  "build": "tsc -p tsconfig.build.json",
13
27
  "test": "vitest run --passWithNoTests",
@@ -24,11 +38,14 @@
24
38
  "@nestjs/core": "^11",
25
39
  "@nestjs/platform-express": "^11",
26
40
  "@nestjs/testing": "^11",
41
+ "@semantic-release/changelog": "^6.0.3",
42
+ "@semantic-release/git": "^10.0.1",
27
43
  "@swc/core": "^1.15.43",
28
44
  "@types/node": "^20",
29
45
  "@types/supertest": "^6",
30
46
  "reflect-metadata": "^0.2",
31
47
  "rxjs": "^7",
48
+ "semantic-release": "^25.0.8",
32
49
  "supertest": "^7",
33
50
  "ts-node": "^10.9.2",
34
51
  "typescript": "^5",