@luckystack/server 0.5.0 → 0.5.1

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/CHANGELOG.md +56 -56
  2. package/package.json +10 -10
package/CHANGELOG.md CHANGED
@@ -1,56 +1,56 @@
1
- # Changelog
2
-
3
- All notable changes to `@luckystack/server` are documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [Unreleased]
9
-
10
- ## [0.5.0] - 2026-07-11
11
-
12
- ### Added
13
-
14
- - `OVERLAY_ORDER` exported (consumed by the consumer's `bundleServer.mjs` at
15
- build time — kills the hardcoded-copy drift that silently dropped overlay
16
- slots from prod bundles). New `cron` overlay slot + `@luckystack/cron` in
17
- `OPTIONAL_PACKAGES` (boot auto-wiring).
18
- - `/readyz` database check is pluggable (core `registerDbHealthCheck`):
19
- registered probe → built-in Prisma ping (when Prisma is present) →
20
- `'skipped'` for deliberately DB-less projects. Response gains the
21
- tri-state `checks.database`; `checks.prisma` kept for compatibility.
22
-
23
- ### Changed
24
-
25
- - Overlay files that fail to import abort boot with an actionable error
26
- naming the file (was: raw ERR_MODULE_NOT_FOUND).
27
- - Dev SIGINT/SIGTERM dispatches `preServerStop` (2s cap) before exiting so
28
- subscribers (e.g. the cron leader lease) release cleanly.
29
- - `@prisma/client` peer dependency is now optional (ADR 0020).
30
-
31
- ## [0.1.5]
32
-
33
- ### Changed
34
-
35
- - **OAuth post-login redirect no longer reads the `DNS` env var.** `authCallbackRoute`
36
- now redirects to `projectConfig.app.publicUrl` (the public origin where users
37
- browse) after a callback, instead of `process.env.DNS || app.publicUrl`. The
38
- callback is handled on the backend origin but must send the browser back to the
39
- public origin. Set `app.publicUrl` in your `config.ts` (the scaffold does this).
40
-
41
- ### Fixed
42
-
43
- - **CSRF no longer blocks credentials login/register when a session cookie already
44
- exists.** `POST /auth/api/credentials` is the session bootstrap, so requiring a
45
- pre-existing session's CSRF token to authenticate is circular and broke
46
- legitimate same-site re-login/register (403 `auth.csrfMismatch`). That endpoint
47
- is now exempt from CSRF enforcement. This removes no real protection: the session
48
- cookie is `SameSite=Strict`, so a cross-site POST never carries it and the guard
49
- wouldn't have fired anyway. All other `/auth/api/*`, `/api/*`, and `/sync/*`
50
- state-changing routes remain protected.
51
-
52
- ## [0.1.0]
53
-
54
- ### Added
55
-
56
- - Initial public release as part of the LuckyStack package split.
1
+ # Changelog
2
+
3
+ All notable changes to `@luckystack/server` are documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.5.0] - 2026-07-11
11
+
12
+ ### Added
13
+
14
+ - `OVERLAY_ORDER` exported (consumed by the consumer's `bundleServer.mjs` at
15
+ build time — kills the hardcoded-copy drift that silently dropped overlay
16
+ slots from prod bundles). New `cron` overlay slot + `@luckystack/cron` in
17
+ `OPTIONAL_PACKAGES` (boot auto-wiring).
18
+ - `/readyz` database check is pluggable (core `registerDbHealthCheck`):
19
+ registered probe → built-in Prisma ping (when Prisma is present) →
20
+ `'skipped'` for deliberately DB-less projects. Response gains the
21
+ tri-state `checks.database`; `checks.prisma` kept for compatibility.
22
+
23
+ ### Changed
24
+
25
+ - Overlay files that fail to import abort boot with an actionable error
26
+ naming the file (was: raw ERR_MODULE_NOT_FOUND).
27
+ - Dev SIGINT/SIGTERM dispatches `preServerStop` (2s cap) before exiting so
28
+ subscribers (e.g. the cron leader lease) release cleanly.
29
+ - `@prisma/client` peer dependency is now optional (ADR 0020).
30
+
31
+ ## [0.1.5]
32
+
33
+ ### Changed
34
+
35
+ - **OAuth post-login redirect no longer reads the `DNS` env var.** `authCallbackRoute`
36
+ now redirects to `projectConfig.app.publicUrl` (the public origin where users
37
+ browse) after a callback, instead of `process.env.DNS || app.publicUrl`. The
38
+ callback is handled on the backend origin but must send the browser back to the
39
+ public origin. Set `app.publicUrl` in your `config.ts` (the scaffold does this).
40
+
41
+ ### Fixed
42
+
43
+ - **CSRF no longer blocks credentials login/register when a session cookie already
44
+ exists.** `POST /auth/api/credentials` is the session bootstrap, so requiring a
45
+ pre-existing session's CSRF token to authenticate is circular and broke
46
+ legitimate same-site re-login/register (403 `auth.csrfMismatch`). That endpoint
47
+ is now exempt from CSRF enforcement. This removes no real protection: the session
48
+ cookie is `SameSite=Strict`, so a cross-site POST never carries it and the guard
49
+ wouldn't have fired anyway. All other `/auth/api/*`, `/api/*`, and `/sync/*`
50
+ state-changing routes remain protected.
51
+
52
+ ## [0.1.0]
53
+
54
+ ### Added
55
+
56
+ - Initial public release as part of the LuckyStack package split.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luckystack/server",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -57,19 +57,19 @@
57
57
  "test": "vitest run"
58
58
  },
59
59
  "dependencies": {
60
- "@luckystack/api": "^0.5.0",
61
- "@luckystack/core": "^0.5.0"
60
+ "@luckystack/api": "^0.5.1",
61
+ "@luckystack/core": "^0.5.1"
62
62
  },
63
63
  "peerDependencies": {
64
64
  "@prisma/client": "^6.19.0",
65
65
  "socket.io": "^4.8.0",
66
- "@luckystack/devkit": "^0.5.0",
67
- "@luckystack/docs-ui": "^0.5.0",
68
- "@luckystack/email": "^0.5.0",
69
- "@luckystack/error-tracking": "^0.5.0",
70
- "@luckystack/login": "^0.5.0",
71
- "@luckystack/presence": "^0.5.0",
72
- "@luckystack/sync": "^0.5.0"
66
+ "@luckystack/devkit": "^0.5.1",
67
+ "@luckystack/docs-ui": "^0.5.1",
68
+ "@luckystack/email": "^0.5.1",
69
+ "@luckystack/error-tracking": "^0.5.1",
70
+ "@luckystack/login": "^0.5.1",
71
+ "@luckystack/presence": "^0.5.1",
72
+ "@luckystack/sync": "^0.5.1"
73
73
  },
74
74
  "peerDependenciesMeta": {
75
75
  "@prisma/client": {