@cavuno/board 1.28.0 → 1.28.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.
package/dist/index.d.mts CHANGED
@@ -203,7 +203,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
203
203
  * constant because the package is platform-neutral and cannot read
204
204
  * package.json at runtime.
205
205
  */
206
- declare const SDK_VERSION = "1.28.0";
206
+ declare const SDK_VERSION = "1.28.1";
207
207
 
208
208
  type SavedJob = Schemas['SavedJob'];
209
209
  type SavedJobsListQuery = {
package/dist/index.d.ts CHANGED
@@ -203,7 +203,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
203
203
  * constant because the package is platform-neutral and cannot read
204
204
  * package.json at runtime.
205
205
  */
206
- declare const SDK_VERSION = "1.28.0";
206
+ declare const SDK_VERSION = "1.28.1";
207
207
 
208
208
  type SavedJob = Schemas['SavedJob'];
209
209
  type SavedJobsListQuery = {
package/dist/index.js CHANGED
@@ -179,7 +179,7 @@ var BoardApiError = class extends Error {
179
179
  }
180
180
  };
181
181
  function isBoardApiError(e) {
182
- return e instanceof Error && e.name === "BoardApiError";
182
+ return e instanceof Error && e.name === "BoardApiError" && typeof e.status === "number" && typeof e.code === "string";
183
183
  }
184
184
  function isNotFound(e) {
185
185
  return isBoardApiError(e) && e.status === 404;
@@ -221,6 +221,16 @@ function toSearchParams(query) {
221
221
  return params;
222
222
  }
223
223
 
224
+ // src/scope.ts
225
+ function scopeToken(board) {
226
+ let hash = 5381;
227
+ for (let i = 0; i < board.length; i++) {
228
+ hash = (hash << 5) + hash + board.charCodeAt(i) >>> 0;
229
+ }
230
+ const sanitized = board.replace(/[^a-zA-Z0-9_-]/g, "_");
231
+ return `${sanitized}-${hash.toString(36)}`;
232
+ }
233
+
224
234
  // src/storage.ts
225
235
  var ACCESS_TOKEN_KEY = "cavuno_board_access_token";
226
236
  var REFRESH_TOKEN_KEY = "cavuno_board_refresh_token";
@@ -240,9 +250,6 @@ function memoryStorage() {
240
250
  }
241
251
  };
242
252
  }
243
- function scopeToken(board) {
244
- return board.replace(/[^a-zA-Z0-9_-]/g, "_");
245
- }
246
253
  function browserStorage(mode, scope) {
247
254
  if (!isBrowser()) {
248
255
  throw new Error(
@@ -303,7 +310,7 @@ async function clearSession(storage) {
303
310
  }
304
311
 
305
312
  // src/version.ts
306
- var SDK_VERSION = "1.28.0";
313
+ var SDK_VERSION = "1.28.1";
307
314
 
308
315
  // src/client.ts
309
316
  function isRawBody(body) {
package/dist/index.mjs CHANGED
@@ -134,7 +134,7 @@ var BoardApiError = class extends Error {
134
134
  }
135
135
  };
136
136
  function isBoardApiError(e) {
137
- return e instanceof Error && e.name === "BoardApiError";
137
+ return e instanceof Error && e.name === "BoardApiError" && typeof e.status === "number" && typeof e.code === "string";
138
138
  }
139
139
  function isNotFound(e) {
140
140
  return isBoardApiError(e) && e.status === 404;
@@ -176,6 +176,16 @@ function toSearchParams(query) {
176
176
  return params;
177
177
  }
178
178
 
179
+ // src/scope.ts
180
+ function scopeToken(board) {
181
+ let hash = 5381;
182
+ for (let i = 0; i < board.length; i++) {
183
+ hash = (hash << 5) + hash + board.charCodeAt(i) >>> 0;
184
+ }
185
+ const sanitized = board.replace(/[^a-zA-Z0-9_-]/g, "_");
186
+ return `${sanitized}-${hash.toString(36)}`;
187
+ }
188
+
179
189
  // src/storage.ts
180
190
  var ACCESS_TOKEN_KEY = "cavuno_board_access_token";
181
191
  var REFRESH_TOKEN_KEY = "cavuno_board_refresh_token";
@@ -195,9 +205,6 @@ function memoryStorage() {
195
205
  }
196
206
  };
197
207
  }
198
- function scopeToken(board) {
199
- return board.replace(/[^a-zA-Z0-9_-]/g, "_");
200
- }
201
208
  function browserStorage(mode, scope) {
202
209
  if (!isBrowser()) {
203
210
  throw new Error(
@@ -258,7 +265,7 @@ async function clearSession(storage) {
258
265
  }
259
266
 
260
267
  // src/version.ts
261
- var SDK_VERSION = "1.28.0";
268
+ var SDK_VERSION = "1.28.1";
262
269
 
263
270
  // src/client.ts
264
271
  function isRawBody(body) {
package/dist/server.js CHANGED
@@ -37,6 +37,16 @@ __export(server_exports, {
37
37
  });
38
38
  module.exports = __toCommonJS(server_exports);
39
39
 
40
+ // src/scope.ts
41
+ function scopeToken(board) {
42
+ let hash = 5381;
43
+ for (let i = 0; i < board.length; i++) {
44
+ hash = (hash << 5) + hash + board.charCodeAt(i) >>> 0;
45
+ }
46
+ const sanitized = board.replace(/[^a-zA-Z0-9_-]/g, "_");
47
+ return `${sanitized}-${hash.toString(36)}`;
48
+ }
49
+
40
50
  // src/server/cookie.ts
41
51
  var COOKIE_ATTRIBUTES = "Path=/; HttpOnly; Secure; SameSite=Lax";
42
52
  function buildCookie(name, value, maxAgeSeconds) {
@@ -57,14 +67,11 @@ function readCookie(header, name) {
57
67
  return null;
58
68
  }
59
69
  }
60
- function cookieScope(board) {
61
- return board.replace(/[^a-zA-Z0-9_-]/g, "_");
62
- }
63
70
 
64
71
  // src/server/session.ts
65
72
  var SESSION_COOKIE_NAME = "__Host-cavuno_board_session";
66
73
  function sessionCookieName(board) {
67
- return board ? `${SESSION_COOKIE_NAME}_${cookieScope(board)}` : SESSION_COOKIE_NAME;
74
+ return board ? `${SESSION_COOKIE_NAME}_${scopeToken(board)}` : SESSION_COOKIE_NAME;
68
75
  }
69
76
  var COOKIE_MAX_AGE_SECONDS = 30 * 24 * 60 * 60;
70
77
  var EXPIRY_WINDOW_MS = 5 * 60 * 1e3;
@@ -104,7 +111,7 @@ function isExpiringSoon(session, now, windowMs = EXPIRY_WINDOW_MS) {
104
111
  // src/server/board-access.ts
105
112
  var BOARD_ACCESS_COOKIE_NAME = "__Host-cavuno_board_access";
106
113
  function grantCookieName(board) {
107
- return board ? `${BOARD_ACCESS_COOKIE_NAME}_${cookieScope(board)}` : BOARD_ACCESS_COOKIE_NAME;
114
+ return board ? `${BOARD_ACCESS_COOKIE_NAME}_${scopeToken(board)}` : BOARD_ACCESS_COOKIE_NAME;
108
115
  }
109
116
  var COOKIE_MAX_AGE_SECONDS2 = 24 * 60 * 60;
110
117
  function serializeGrantCookie(token, options) {
@@ -149,7 +156,7 @@ function currentPathFromReferer(referer) {
149
156
 
150
157
  // src/errors.ts
151
158
  function isBoardApiError(e) {
152
- return e instanceof Error && e.name === "BoardApiError";
159
+ return e instanceof Error && e.name === "BoardApiError" && typeof e.status === "number" && typeof e.code === "string";
153
160
  }
154
161
  function isUnauthorized(e) {
155
162
  return isBoardApiError(e) && e.status === 401;
package/dist/server.mjs CHANGED
@@ -1,3 +1,13 @@
1
+ // src/scope.ts
2
+ function scopeToken(board) {
3
+ let hash = 5381;
4
+ for (let i = 0; i < board.length; i++) {
5
+ hash = (hash << 5) + hash + board.charCodeAt(i) >>> 0;
6
+ }
7
+ const sanitized = board.replace(/[^a-zA-Z0-9_-]/g, "_");
8
+ return `${sanitized}-${hash.toString(36)}`;
9
+ }
10
+
1
11
  // src/server/cookie.ts
2
12
  var COOKIE_ATTRIBUTES = "Path=/; HttpOnly; Secure; SameSite=Lax";
3
13
  function buildCookie(name, value, maxAgeSeconds) {
@@ -18,14 +28,11 @@ function readCookie(header, name) {
18
28
  return null;
19
29
  }
20
30
  }
21
- function cookieScope(board) {
22
- return board.replace(/[^a-zA-Z0-9_-]/g, "_");
23
- }
24
31
 
25
32
  // src/server/session.ts
26
33
  var SESSION_COOKIE_NAME = "__Host-cavuno_board_session";
27
34
  function sessionCookieName(board) {
28
- return board ? `${SESSION_COOKIE_NAME}_${cookieScope(board)}` : SESSION_COOKIE_NAME;
35
+ return board ? `${SESSION_COOKIE_NAME}_${scopeToken(board)}` : SESSION_COOKIE_NAME;
29
36
  }
30
37
  var COOKIE_MAX_AGE_SECONDS = 30 * 24 * 60 * 60;
31
38
  var EXPIRY_WINDOW_MS = 5 * 60 * 1e3;
@@ -65,7 +72,7 @@ function isExpiringSoon(session, now, windowMs = EXPIRY_WINDOW_MS) {
65
72
  // src/server/board-access.ts
66
73
  var BOARD_ACCESS_COOKIE_NAME = "__Host-cavuno_board_access";
67
74
  function grantCookieName(board) {
68
- return board ? `${BOARD_ACCESS_COOKIE_NAME}_${cookieScope(board)}` : BOARD_ACCESS_COOKIE_NAME;
75
+ return board ? `${BOARD_ACCESS_COOKIE_NAME}_${scopeToken(board)}` : BOARD_ACCESS_COOKIE_NAME;
69
76
  }
70
77
  var COOKIE_MAX_AGE_SECONDS2 = 24 * 60 * 60;
71
78
  function serializeGrantCookie(token, options) {
@@ -110,7 +117,7 @@ function currentPathFromReferer(referer) {
110
117
 
111
118
  // src/errors.ts
112
119
  function isBoardApiError(e) {
113
- return e instanceof Error && e.name === "BoardApiError";
120
+ return e instanceof Error && e.name === "BoardApiError" && typeof e.status === "number" && typeof e.code === "string";
114
121
  }
115
122
  function isUnauthorized(e) {
116
123
  return isBoardApiError(e) && e.status === 401;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cavuno/board",
3
- "version": "1.28.0",
3
+ "version": "1.28.1",
4
4
  "description": "Typed isomorphic client for the Cavuno Board API",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.28.0",
2
+ "version": "1.28.1",
3
3
  "skills": [
4
4
  {
5
5
  "name": "cavuno-board-account",