@drawnagency/primitives 0.1.64 → 0.1.65

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.
@@ -5,4 +5,16 @@
5
5
  export declare class LastOwnerError extends Error {
6
6
  constructor(message?: string);
7
7
  }
8
+ /**
9
+ * Thrown when an authenticated operation cannot proceed because the underlying
10
+ * Supabase session is missing, expired, or its refresh token is stale/used.
11
+ * This is distinct from a never-authenticated request: the caller passed the
12
+ * middleware gate (e.g. via a still-valid app session cookie) but the Supabase
13
+ * session needed for the operation is dead. API routes should translate this to
14
+ * HTTP 401 so the UI prompts the user to request a fresh link, rather than
15
+ * surfacing an opaque 500.
16
+ */
17
+ export declare class SessionExpiredError extends Error {
18
+ constructor(message?: string);
19
+ }
8
20
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/auth/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,SAAiC;CAIrD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/auth/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,SAAiC;CAIrD;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,SAAyD;CAI7E"}
@@ -3,5 +3,5 @@ export type { UiCapabilities } from "./capabilities";
3
3
  export { deriveUiCapabilities } from "./capabilities";
4
4
  export { requireSessionSecret, isSameOriginRequest, safeNextPath } from "./security";
5
5
  export { signSessionToken, verifySessionToken, signAudienceToken, verifyAudienceToken, setSessionCookie, SESSION_COOKIE, AUDIENCE_COOKIE, SESSION_MAX_AGE_SECONDS, AUDIENCE_MAX_AGE_SECONDS } from "./cookies";
6
- export { LastOwnerError } from "./errors";
6
+ export { LastOwnerError, SessionExpiredError } from "./errors";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC/M,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC/M,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC"}
@@ -4,13 +4,14 @@ import {
4
4
  LastOwnerError,
5
5
  SESSION_COOKIE,
6
6
  SESSION_MAX_AGE_SECONDS,
7
+ SessionExpiredError,
7
8
  deriveUiCapabilities,
8
9
  setSessionCookie,
9
10
  signAudienceToken,
10
11
  signSessionToken,
11
12
  verifyAudienceToken,
12
13
  verifySessionToken
13
- } from "../chunk-UNWNT52N.js";
14
+ } from "../chunk-EM5DFHDZ.js";
14
15
  import {
15
16
  isSameOriginRequest,
16
17
  requireSessionSecret,
@@ -24,6 +25,7 @@ export {
24
25
  LastOwnerError,
25
26
  SESSION_COOKIE,
26
27
  SESSION_MAX_AGE_SECONDS,
28
+ SessionExpiredError,
27
29
  deriveUiCapabilities,
28
30
  isSameOriginRequest,
29
31
  requireSessionSecret,
@@ -74,6 +74,12 @@ var LastOwnerError = class extends Error {
74
74
  this.name = "LastOwnerError";
75
75
  }
76
76
  };
77
+ var SessionExpiredError = class extends Error {
78
+ constructor(message = "Your session has expired. Please request a new link.") {
79
+ super(message);
80
+ this.name = "SessionExpiredError";
81
+ }
82
+ };
77
83
 
78
84
  export {
79
85
  deriveUiCapabilities,
@@ -86,5 +92,6 @@ export {
86
92
  signAudienceToken,
87
93
  verifyAudienceToken,
88
94
  setSessionCookie,
89
- LastOwnerError
95
+ LastOwnerError,
96
+ SessionExpiredError
90
97
  };
package/dist/index.js CHANGED
@@ -20,13 +20,14 @@ import {
20
20
  LastOwnerError,
21
21
  SESSION_COOKIE,
22
22
  SESSION_MAX_AGE_SECONDS,
23
+ SessionExpiredError,
23
24
  deriveUiCapabilities,
24
25
  setSessionCookie,
25
26
  signAudienceToken,
26
27
  signSessionToken,
27
28
  verifyAudienceToken,
28
29
  verifySessionToken
29
- } from "./chunk-UNWNT52N.js";
30
+ } from "./chunk-EM5DFHDZ.js";
30
31
  import {
31
32
  AudienceColorSchema,
32
33
  AudienceNameSchema,
@@ -157,6 +158,7 @@ export {
157
158
  SESSION_COOKIE,
158
159
  SESSION_MAX_AGE_SECONDS,
159
160
  SectionMetaSchema,
161
+ SessionExpiredError,
160
162
  SessionSchema,
161
163
  SingleMediaReferenceSchema,
162
164
  SiteConfigSchema,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drawnagency/primitives",
3
- "version": "0.1.64",
3
+ "version": "0.1.65",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
@@ -8,3 +8,19 @@ export class LastOwnerError extends Error {
8
8
  this.name = "LastOwnerError";
9
9
  }
10
10
  }
11
+
12
+ /**
13
+ * Thrown when an authenticated operation cannot proceed because the underlying
14
+ * Supabase session is missing, expired, or its refresh token is stale/used.
15
+ * This is distinct from a never-authenticated request: the caller passed the
16
+ * middleware gate (e.g. via a still-valid app session cookie) but the Supabase
17
+ * session needed for the operation is dead. API routes should translate this to
18
+ * HTTP 401 so the UI prompts the user to request a fresh link, rather than
19
+ * surfacing an opaque 500.
20
+ */
21
+ export class SessionExpiredError extends Error {
22
+ constructor(message = "Your session has expired. Please request a new link.") {
23
+ super(message);
24
+ this.name = "SessionExpiredError";
25
+ }
26
+ }
package/src/auth/index.ts CHANGED
@@ -17,4 +17,4 @@ export { deriveUiCapabilities } from "./capabilities";
17
17
 
18
18
  export { requireSessionSecret, isSameOriginRequest, safeNextPath } from "./security";
19
19
  export { signSessionToken, verifySessionToken, signAudienceToken, verifyAudienceToken, setSessionCookie, SESSION_COOKIE, AUDIENCE_COOKIE, SESSION_MAX_AGE_SECONDS, AUDIENCE_MAX_AGE_SECONDS } from "./cookies";
20
- export { LastOwnerError } from "./errors";
20
+ export { LastOwnerError, SessionExpiredError } from "./errors";