@everystack/auth 0.4.10 → 0.4.11

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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to `@everystack/auth` are documented here.
4
4
 
5
5
  Format based on [Keep a Changelog](https://keepachangelog.com/).
6
6
 
7
+ ## [0.4.11] - 2026-11-04
8
+
9
+ ### BREAKING CHANGES
10
+
11
+ - softDelete is removed; lifecycle is the one soft delete
12
+
7
13
  ## [0.4.10] - 2026-10-30
8
14
 
9
15
  ### Added
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everystack/auth",
3
- "version": "0.4.10",
3
+ "version": "0.4.11",
4
4
  "description": "JWT authentication handlers, password hashing, and React auth context",
5
5
  "license": "AGPL-3.0-only",
6
6
  "author": "Scalable Technology, Inc. <licensing@scalable.technology>",
@@ -108,7 +108,7 @@
108
108
  },
109
109
  "dependencies": {
110
110
  "bcryptjs": "3.0.3",
111
- "@everystack/model": "0.4.25"
111
+ "@everystack/model": "0.4.27"
112
112
  },
113
113
  "peerDependencies": {
114
114
  "@everystack/api": ">=0.1.0",
@@ -137,8 +137,8 @@
137
137
  "postgres": "3.4.9",
138
138
  "ts-jest": "29.4.9",
139
139
  "typescript": "5.9.3",
140
- "@everystack/api": "0.4.13",
141
- "@everystack/server": "0.4.40"
140
+ "@everystack/server": "0.4.43",
141
+ "@everystack/api": "0.4.14"
142
142
  },
143
143
  "scripts": {
144
144
  "test": "jest",
@@ -51,19 +51,6 @@ export const User = defineModel('users', {
51
51
  updatedAt: field.timestamptz().defaultNow().notNull(),
52
52
  },
53
53
  constraints: [index('instanceId')],
54
- // `deletedAt` on a user means a soft delete: the row stays, because auth rows are referenced
55
- // by half the schema and destroying one breaks those references rather than cleaning them up.
56
- // Every reader in this package already assumes that shape — the sign-in path and the auth
57
- // SQL functions gate on `deleted_at IS NULL` rather than on the row's absence.
58
- //
59
- // Declared rather than defaulted because the admin `manage` ability below grants DELETE
60
- // ("all actions"), which is the axis that matters here. It is INERT in both directions today,
61
- // which is what makes it safe to add to a published package: no public read, so the compiled
62
- // contract is unchanged (no fingerprint movement for any consumer); and `private: true` keeps
63
- // this model out of the generic data API, so none of the handler's soft-delete behaviour
64
- // applies either. It states the intent that the readers already depend on, and it stops the
65
- // model from silently acquiring the opposite one.
66
- softDelete: true,
67
54
  abilities: [
68
55
  can('manage', { role: 'admin' }),
69
56
  // Self-read, column-scoped: id/email/role of your own row, never the hash.