genjutsu-db 0.1.0 → 0.3.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.
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # genjutsu-db
2
2
 
3
+ ![Sharingan_triple](https://github.com/user-attachments/assets/51599bd6-ec15-4046-aebf-6e7c1e3e603d)
4
+
3
5
  A TypeScript-first Google Sheets database library with zero runtime dependencies.
4
6
 
5
7
  Use Google Sheets as a structured database with typed models, full CRUD, relations, migrations, and formatting — all from the browser or server with just `fetch`.
@@ -12,6 +14,7 @@ Use Google Sheets as a structured database with typed models, full CRUD, relatio
12
14
  - **Migrations** — Versioned schema changes tracked in a `_genjutsu_migrations` sheet
13
15
  - **Formatting** — Header styles, number formats, alignment rules
14
16
  - **Token provider** — Supports static tokens or async refresh functions with automatic 401 retry
17
+ - **Raw range access** — `db.raw.readRange()`, `writeRange()`, `clearRange()` for non-model sheets
15
18
  - **Write mutex** — Serializes concurrent writes to prevent interleaved API calls
16
19
  - **Read-only mode** — Use `apiKey` for public sheets (writes are blocked at the client level)
17
20
  - **Zero dependencies** — Pure `fetch`-based, works in any JS runtime (browser, Node, Bun, Deno)
@@ -271,6 +274,36 @@ const sheetId = extractSpreadsheetId("https://docs.google.com/spreadsheets/d/abc
271
274
  const { spreadsheetId, spreadsheetUrl } = await createSpreadsheet("Title", token);
272
275
  ```
273
276
 
277
+ ### Raw Range Access
278
+
279
+ For sheets that don't fit a model (data blobs, summary tabs, etc.), use `db.raw` to read, write, and clear arbitrary ranges. Raw writes participate in the write mutex, so they're safe to use alongside model operations.
280
+
281
+ ```typescript
282
+ // Read raw cell values
283
+ const rows = await db.raw.readRange("Summary!A1:D10");
284
+ // rows: unknown[][] — e.g. [["Total", 1500], ["Average", 375]]
285
+
286
+ // Read with unformatted values (numbers instead of formatted strings)
287
+ const unformatted = await db.raw.readRange("Summary!A1:D10", "UNFORMATTED_VALUE");
288
+
289
+ // Write raw values (overwrites the range)
290
+ await db.raw.writeRange("Summary!A1:B2", [
291
+ ["Total Expenses", 1500],
292
+ ["Total Income", 3200],
293
+ ]);
294
+
295
+ // Clear a range
296
+ await db.raw.clearRange("Summary!A1:D10");
297
+ ```
298
+
299
+ | Method | Returns | Description |
300
+ |--------|---------|-------------|
301
+ | `readRange(range, valueRenderOption?)` | `Promise<unknown[][]>` | Read cell values from a range |
302
+ | `writeRange(range, values)` | `Promise<void>` | Overwrite a range with values |
303
+ | `clearRange(range)` | `Promise<void>` | Clear all values in a range |
304
+
305
+ > `readRange` works on both read-write and read-only clients. `writeRange` and `clearRange` throw `PERMISSION_ERROR` on read-only (`apiKey`) clients.
306
+
274
307
  ### Raw Schemas
275
308
 
276
309
  For full control, skip `defineModel()` and provide a raw `SheetSchema<T>`:
@@ -334,7 +367,7 @@ GOOGLE_TOKEN="your-token" SHEET_ID="spreadsheet-id" bun run demo.ts
334
367
 
335
368
  ```bash
336
369
  bun install # Install dependencies
337
- bun test # Run tests (264 tests)
370
+ bun test # Run tests (277 tests)
338
371
  bun test --coverage # Coverage report (99.7% lines, 100% functions)
339
372
  bun run build # TypeScript build to dist/
340
373
  bun run lint # Type check
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EAOf,MAAM,SAAS,CAAC;AAiBjB,wBAAgB,YAAY,CAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAC1C,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAoa5C"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EAOf,MAAM,SAAS,CAAC;AAiBjB,wBAAgB,YAAY,CAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAC1C,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAub5C"}
package/dist/client.js CHANGED
@@ -365,6 +365,19 @@ export function createClient(config) {
365
365
  await runMigrations(ctx, _migrations);
366
366
  },
367
367
  extractSpreadsheetId,
368
+ raw: {
369
+ readRange(range, valueRenderOption) {
370
+ return getSheetValues(ctx, range, valueRenderOption);
371
+ },
372
+ writeRange(range, values) {
373
+ assertWritable();
374
+ return withWriteLock(() => updateSheet(ctx, range, values, false));
375
+ },
376
+ clearRange(range) {
377
+ assertWritable();
378
+ return withWriteLock(() => clearRange(ctx, range));
379
+ },
380
+ },
368
381
  };
369
382
  }
370
383
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Low-level HTTP transport for Google Drive v3 REST API.
3
+ * Provides folder and spreadsheet management with appProperties-based identification.
4
+ */
5
+ import type { DriveContext } from "./types";
6
+ export declare const DRIVE_API = "https://www.googleapis.com/drive/v3/files";
7
+ export declare function findAppFolder(ctx: DriveContext, appId: string): Promise<{
8
+ id: string;
9
+ name: string;
10
+ } | null>;
11
+ export declare function createAppFolder(ctx: DriveContext, appId: string, folderName: string): Promise<{
12
+ id: string;
13
+ name: string;
14
+ }>;
15
+ export declare function listSpreadsheetsInFolder(ctx: DriveContext, folderId: string): Promise<Array<{
16
+ id: string;
17
+ name: string;
18
+ }>>;
19
+ export declare function createSpreadsheetInFolder(ctx: DriveContext, folderId: string, title: string, appId: string): Promise<{
20
+ id: string;
21
+ name: string;
22
+ }>;
23
+ //# sourceMappingURL=drive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../src/drive.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,SAAS,8CAA8C,CAAC;AAMrE,wBAAsB,aAAa,CACjC,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CA0B9C;AAMD,wBAAsB,eAAe,CACnC,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA6BvC;AAMD,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CA0B9C;AAMD,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA8BvC"}
package/dist/drive.js ADDED
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Low-level HTTP transport for Google Drive v3 REST API.
3
+ * Provides folder and spreadsheet management with appProperties-based identification.
4
+ */
5
+ import { fetchWithErrorHandling, buildAuthHeaders, } from "./http";
6
+ import { driveError } from "./errors";
7
+ export const DRIVE_API = "https://www.googleapis.com/drive/v3/files";
8
+ // ---------------------------------------------------------------------------
9
+ // Find App Folder
10
+ // ---------------------------------------------------------------------------
11
+ export async function findAppFolder(ctx, appId) {
12
+ const q = [
13
+ "mimeType='application/vnd.google-apps.folder'",
14
+ "trashed=false",
15
+ `appProperties has { key='genjutsuApp' and value='${appId}' }`,
16
+ ].join(" and ");
17
+ const params = new URLSearchParams({
18
+ q,
19
+ fields: "files(id,name,modifiedTime)",
20
+ orderBy: "modifiedTime desc",
21
+ pageSize: "10",
22
+ supportsAllDrives: "true",
23
+ includeItemsFromAllDrives: "true",
24
+ });
25
+ const url = `${DRIVE_API}?${params.toString()}`;
26
+ const headers = await buildAuthHeaders(ctx);
27
+ const res = await fetchWithErrorHandling(url, { headers }, ctx);
28
+ const data = (await res.json());
29
+ const folder = data.files?.find((f) => f.id && f.name);
30
+ if (!folder?.id || !folder.name)
31
+ return null;
32
+ return { id: folder.id, name: folder.name };
33
+ }
34
+ // ---------------------------------------------------------------------------
35
+ // Create App Folder
36
+ // ---------------------------------------------------------------------------
37
+ export async function createAppFolder(ctx, appId, folderName) {
38
+ const url = `${DRIVE_API}?supportsAllDrives=true`;
39
+ const headers = {
40
+ ...(await buildAuthHeaders(ctx)),
41
+ "Content-Type": "application/json",
42
+ };
43
+ const res = await fetchWithErrorHandling(url, {
44
+ method: "POST",
45
+ headers,
46
+ body: JSON.stringify({
47
+ name: folderName,
48
+ mimeType: "application/vnd.google-apps.folder",
49
+ appProperties: {
50
+ genjutsuApp: appId,
51
+ genjutsuType: "appFolder",
52
+ },
53
+ }),
54
+ }, ctx);
55
+ const data = (await res.json());
56
+ if (!data.id || !data.name) {
57
+ throw driveError("Failed to create workspace folder: missing id or name in response");
58
+ }
59
+ return { id: data.id, name: data.name };
60
+ }
61
+ // ---------------------------------------------------------------------------
62
+ // List Spreadsheets in Folder
63
+ // ---------------------------------------------------------------------------
64
+ export async function listSpreadsheetsInFolder(ctx, folderId) {
65
+ const q = [
66
+ `'${folderId}' in parents`,
67
+ "mimeType='application/vnd.google-apps.spreadsheet'",
68
+ "trashed=false",
69
+ ].join(" and ");
70
+ const params = new URLSearchParams({
71
+ q,
72
+ fields: "files(id,name,modifiedTime)",
73
+ orderBy: "modifiedTime desc",
74
+ pageSize: "100",
75
+ supportsAllDrives: "true",
76
+ includeItemsFromAllDrives: "true",
77
+ });
78
+ const url = `${DRIVE_API}?${params.toString()}`;
79
+ const headers = await buildAuthHeaders(ctx);
80
+ const res = await fetchWithErrorHandling(url, { headers }, ctx);
81
+ const data = (await res.json());
82
+ return (data.files ?? [])
83
+ .filter((f) => Boolean(f.id && f.name))
84
+ .map((f) => ({ id: f.id, name: f.name }));
85
+ }
86
+ // ---------------------------------------------------------------------------
87
+ // Create Spreadsheet in Folder
88
+ // ---------------------------------------------------------------------------
89
+ export async function createSpreadsheetInFolder(ctx, folderId, title, appId) {
90
+ const url = `${DRIVE_API}?supportsAllDrives=true`;
91
+ const headers = {
92
+ ...(await buildAuthHeaders(ctx)),
93
+ "Content-Type": "application/json",
94
+ };
95
+ const res = await fetchWithErrorHandling(url, {
96
+ method: "POST",
97
+ headers,
98
+ body: JSON.stringify({
99
+ name: title,
100
+ mimeType: "application/vnd.google-apps.spreadsheet",
101
+ parents: [folderId],
102
+ appProperties: {
103
+ genjutsuApp: appId,
104
+ genjutsuType: "spreadsheet",
105
+ },
106
+ }),
107
+ }, ctx);
108
+ const data = (await res.json());
109
+ if (!data.id || !data.name) {
110
+ throw driveError("Failed to create workspace spreadsheet: missing id or name in response");
111
+ }
112
+ return { id: data.id, name: data.name };
113
+ }
114
+ //# sourceMappingURL=drive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drive.js","sourceRoot":"","sources":["../src/drive.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,MAAM,CAAC,MAAM,SAAS,GAAG,2CAA2C,CAAC;AAErE,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAiB,EACjB,KAAa;IAEb,MAAM,CAAC,GAAG;QACR,+CAA+C;QAC/C,eAAe;QACf,oDAAoD,KAAK,KAAK;KAC/D,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,CAAC;QACD,MAAM,EAAE,6BAA6B;QACrC,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,IAAI;QACd,iBAAiB,EAAE,MAAM;QACzB,yBAAyB,EAAE,MAAM;KAClC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAE7B,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAiB,EACjB,KAAa,EACb,UAAkB;IAElB,MAAM,GAAG,GAAG,GAAG,SAAS,yBAAyB,CAAC;IAClD,MAAM,OAAO,GAA2B;QACtC,GAAG,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAChC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,sBAAsB,CACtC,GAAG,EACH;QACE,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,oCAAoC;YAC9C,aAAa,EAAE;gBACb,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,WAAW;aAC1B;SACF,CAAC;KACH,EACD,GAAG,CACJ,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmC,CAAC;IAClE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,UAAU,CAAC,mEAAmE,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,8EAA8E;AAC9E,8BAA8B;AAC9B,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,GAAiB,EACjB,QAAgB;IAEhB,MAAM,CAAC,GAAG;QACR,IAAI,QAAQ,cAAc;QAC1B,oDAAoD;QACpD,eAAe;KAChB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,CAAC;QACD,MAAM,EAAE,6BAA6B;QACrC,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,KAAK;QACf,iBAAiB,EAAE,MAAM;QACzB,yBAAyB,EAAE,MAAM;KAClC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAE7B,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;SACtB,MAAM,CAAC,CAAC,CAAC,EAAqC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;SACzE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAAiB,EACjB,QAAgB,EAChB,KAAa,EACb,KAAa;IAEb,MAAM,GAAG,GAAG,GAAG,SAAS,yBAAyB,CAAC;IAClD,MAAM,OAAO,GAA2B;QACtC,GAAG,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAChC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,sBAAsB,CACtC,GAAG,EACH;QACE,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,yCAAyC;YACnD,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,aAAa,EAAE;gBACb,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,aAAa;aAC5B;SACF,CAAC;KACH,EACD,GAAG,CACJ,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmC,CAAC;IAClE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,UAAU,CAAC,wEAAwE,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Typed error handling for the genjutsu-db library.
3
3
  */
4
- export type GenjutsuErrorKind = "AUTH_ERROR" | "PERMISSION_ERROR" | "RATE_LIMIT" | "NETWORK_ERROR" | "VALIDATION_ERROR" | "SCHEMA_ERROR" | "MIGRATION_ERROR" | "API_ERROR";
4
+ export type GenjutsuErrorKind = "AUTH_ERROR" | "PERMISSION_ERROR" | "RATE_LIMIT" | "NETWORK_ERROR" | "VALIDATION_ERROR" | "SCHEMA_ERROR" | "MIGRATION_ERROR" | "API_ERROR" | "DRIVE_ERROR";
5
5
  export interface ValidationIssue {
6
6
  field: string;
7
7
  message: string;
@@ -35,4 +35,5 @@ export declare function validationError(message: string, issues: ValidationIssue
35
35
  export declare function schemaError(message: string, cause?: unknown): GenjutsuError;
36
36
  export declare function migrationError(message: string, version: number, name: string, cause?: unknown): GenjutsuError;
37
37
  export declare function apiError(message: string, cause?: unknown): GenjutsuError;
38
+ export declare function driveError(message: string, cause?: unknown): GenjutsuError;
38
39
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,kBAAkB,GAClB,YAAY,GACZ,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,iBAAiB,GACjB,WAAW,CAAC;AAEhB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;gBAG9B,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;QACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;CAWJ;AAED,4CAA4C;AAC5C,eAAO,MAAM,aAAa,sBAAgB,CAAC;AAE3C,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAElE;AAED,8CAA8C;AAC9C,eAAO,MAAM,eAAe,wBAAkB,CAAC;AAE/C,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAEzE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAE/E;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,OAAO,GACd,aAAa,CAEf;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAE5E;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,eAAe,EAAE,GACxB,aAAa,CAIf;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAE3E;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,OAAO,GACd,aAAa,CAMf;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAExE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,kBAAkB,GAClB,YAAY,GACZ,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,iBAAiB,GACjB,WAAW,GACX,aAAa,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;gBAG9B,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;QACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;CAWJ;AAED,4CAA4C;AAC5C,eAAO,MAAM,aAAa,sBAAgB,CAAC;AAE3C,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAElE;AAED,8CAA8C;AAC9C,eAAO,MAAM,eAAe,wBAAkB,CAAC;AAE/C,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAEzE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAE/E;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,OAAO,GACd,aAAa,CAEf;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAE5E;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,eAAe,EAAE,GACxB,aAAa,CAIf;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAE3E;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,OAAO,GACd,aAAa,CAMf;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAExE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAE1E"}
package/dist/errors.js CHANGED
@@ -56,4 +56,7 @@ export function migrationError(message, version, name, cause) {
56
56
  export function apiError(message, cause) {
57
57
  return new GenjutsuError("API_ERROR", message, { cause });
58
58
  }
59
+ export function driveError(message, cause) {
60
+ return new GenjutsuError("DRIVE_ERROR", message, { cause });
61
+ }
59
62
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,CAAoB;IACxB,KAAK,CAAW;IAChB,YAAY,CAAU;IACtB,gBAAgB,CAAqB;IACrC,gBAAgB,CAAU;IAC1B,aAAa,CAAU;IAEhC,YACE,IAAuB,EACvB,OAAe,EACf,OAMC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,aAAa,CAAC;IAC9C,CAAC;CACF;AAED,4CAA4C;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAE3C,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,YAAY,aAAa,CAAC;AACtC,CAAC;AAED,8CAA8C;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,KAAe;IACxD,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,KAAe;IAC9D,OAAO,IAAI,aAAa,CAAC,kBAAkB,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,YAAqB,EACrB,KAAe;IAEf,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,KAAe;IAC3D,OAAO,IAAI,aAAa,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,MAAyB;IAEzB,OAAO,IAAI,aAAa,CAAC,kBAAkB,EAAE,OAAO,EAAE;QACpD,gBAAgB,EAAE,MAAM;KACzB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,KAAe;IAC1D,OAAO,IAAI,aAAa,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,OAAe,EACf,IAAY,EACZ,KAAe;IAEf,OAAO,IAAI,aAAa,CAAC,iBAAiB,EAAE,OAAO,EAAE;QACnD,KAAK;QACL,gBAAgB,EAAE,OAAO;QACzB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,KAAe;IACvD,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,CAAoB;IACxB,KAAK,CAAW;IAChB,YAAY,CAAU;IACtB,gBAAgB,CAAqB;IACrC,gBAAgB,CAAU;IAC1B,aAAa,CAAU;IAEhC,YACE,IAAuB,EACvB,OAAe,EACf,OAMC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,aAAa,CAAC;IAC9C,CAAC;CACF;AAED,4CAA4C;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAE3C,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,YAAY,aAAa,CAAC;AACtC,CAAC;AAED,8CAA8C;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,KAAe;IACxD,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,KAAe;IAC9D,OAAO,IAAI,aAAa,CAAC,kBAAkB,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,YAAqB,EACrB,KAAe;IAEf,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,KAAe;IAC3D,OAAO,IAAI,aAAa,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,MAAyB;IAEzB,OAAO,IAAI,aAAa,CAAC,kBAAkB,EAAE,OAAO,EAAE;QACpD,gBAAgB,EAAE,MAAM;KACzB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,KAAe;IAC1D,OAAO,IAAI,aAAa,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,OAAe,EACf,IAAY,EACZ,KAAe;IAEf,OAAO,IAAI,aAAa,CAAC,iBAAiB,EAAE,OAAO,EAAE;QACnD,KAAK;QACL,gBAAgB,EAAE,OAAO;QACzB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,KAAe;IACvD,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,KAAe;IACzD,OAAO,IAAI,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9D,CAAC"}
package/dist/http.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Shared HTTP infrastructure for Google API transports (Sheets v4, Drive v3).
3
+ * Provides auth resolution, 401 retry, and structured error wrapping.
4
+ */
5
+ export interface HttpContext {
6
+ auth?: string | (() => Promise<string>);
7
+ apiKey?: string;
8
+ }
9
+ export declare function resolveToken(auth: string | (() => Promise<string>)): Promise<string>;
10
+ export declare function buildAuthHeaders(ctx: HttpContext): Promise<Record<string, string>>;
11
+ export declare function appendParams(url: string, extra: string): string;
12
+ export declare function parseRetryAfterMs(res: Response): number | undefined;
13
+ export declare function wrapHttpError(status: number, body: string, cause?: unknown): never;
14
+ export declare function fetchWithErrorHandling(url: string, init: RequestInit, ctx: HttpContext, retryOn401?: boolean): Promise<Response>;
15
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAMjC;AAMD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/D;AAMD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAKnE;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,OAAO,GACd,KAAK,CAWP;AAMD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,WAAW,EAChB,UAAU,UAAO,GAChB,OAAO,CAAC,QAAQ,CAAC,CAwDnB"}
package/dist/http.js ADDED
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Shared HTTP infrastructure for Google API transports (Sheets v4, Drive v3).
3
+ * Provides auth resolution, 401 retry, and structured error wrapping.
4
+ */
5
+ import { authError, permissionError, rateLimitError, networkError, apiError, } from "./errors";
6
+ // ---------------------------------------------------------------------------
7
+ // Auth Helpers
8
+ // ---------------------------------------------------------------------------
9
+ export async function resolveToken(auth) {
10
+ return typeof auth === "function" ? auth() : auth;
11
+ }
12
+ export async function buildAuthHeaders(ctx) {
13
+ if (ctx.auth) {
14
+ const token = await resolveToken(ctx.auth);
15
+ return { Authorization: `Bearer ${token}` };
16
+ }
17
+ return {};
18
+ }
19
+ // ---------------------------------------------------------------------------
20
+ // URL Helpers
21
+ // ---------------------------------------------------------------------------
22
+ export function appendParams(url, extra) {
23
+ if (!extra)
24
+ return url;
25
+ return url.includes("?") ? `${url}&${extra}` : `${url}?${extra}`;
26
+ }
27
+ // ---------------------------------------------------------------------------
28
+ // Error Helpers
29
+ // ---------------------------------------------------------------------------
30
+ export function parseRetryAfterMs(res) {
31
+ const header = res.headers.get("Retry-After");
32
+ if (!header)
33
+ return undefined;
34
+ const seconds = parseInt(header, 10);
35
+ return Number.isNaN(seconds) ? undefined : seconds * 1000;
36
+ }
37
+ export function wrapHttpError(status, body, cause) {
38
+ if (status === 401) {
39
+ throw authError(`Authentication failed: ${status} ${body}`, cause);
40
+ }
41
+ if (status === 403) {
42
+ throw permissionError(`Permission denied: ${status} ${body}`, cause);
43
+ }
44
+ if (status === 429) {
45
+ throw rateLimitError(`Rate limited: ${status} ${body}`, undefined, cause);
46
+ }
47
+ throw apiError(`Sheets API error: ${status} ${body}`, cause);
48
+ }
49
+ // ---------------------------------------------------------------------------
50
+ // Fetch with Error Handling + 401 Retry
51
+ // ---------------------------------------------------------------------------
52
+ export async function fetchWithErrorHandling(url, init, ctx, retryOn401 = true) {
53
+ let res;
54
+ try {
55
+ res = await fetch(url, init);
56
+ }
57
+ catch (err) {
58
+ throw networkError(`Network request failed: ${err instanceof Error ? err.message : String(err)}`, err);
59
+ }
60
+ // 401 retry: if auth is a function, call it again for a fresh token and retry once
61
+ if (res.status === 401 && retryOn401 && typeof ctx.auth === "function") {
62
+ const freshToken = await ctx.auth();
63
+ const retryInit = {
64
+ ...init,
65
+ headers: {
66
+ ...init.headers,
67
+ Authorization: `Bearer ${freshToken}`,
68
+ },
69
+ };
70
+ let retryRes;
71
+ try {
72
+ retryRes = await fetch(url, retryInit);
73
+ }
74
+ catch (err) {
75
+ throw networkError(`Network request failed on retry: ${err instanceof Error ? err.message : String(err)}`, err);
76
+ }
77
+ if (!retryRes.ok) {
78
+ const body = await retryRes.text();
79
+ if (retryRes.status === 429) {
80
+ throw rateLimitError(`Rate limited: ${retryRes.status} ${body}`, parseRetryAfterMs(retryRes), retryRes);
81
+ }
82
+ wrapHttpError(retryRes.status, body, retryRes);
83
+ }
84
+ return retryRes;
85
+ }
86
+ if (!res.ok) {
87
+ const body = await res.text();
88
+ if (res.status === 429) {
89
+ throw rateLimitError(`Rate limited: ${res.status} ${body}`, parseRetryAfterMs(res), res);
90
+ }
91
+ wrapHttpError(res.status, body, res);
92
+ }
93
+ return res;
94
+ }
95
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,9 +4,13 @@
4
4
  */
5
5
  export { createClient } from "./client";
6
6
  export { extractSpreadsheetId, createSpreadsheet } from "./transport";
7
- export { GenjutsuError, SheetsDbError, isGenjutsuError, isSheetsDbError, authError, permissionError, rateLimitError, networkError, validationError, schemaError, migrationError, apiError, } from "./errors";
7
+ export type { HttpContext } from "./http";
8
+ export { findAppFolder, createAppFolder, listSpreadsheetsInFolder, createSpreadsheetInFolder, } from "./drive";
9
+ export { resolveWorkspace } from "./workspace";
10
+ export { createManagedClient } from "./managed";
11
+ export { GenjutsuError, SheetsDbError, isGenjutsuError, isSheetsDbError, authError, permissionError, rateLimitError, networkError, validationError, schemaError, migrationError, apiError, driveError, } from "./errors";
8
12
  export type { GenjutsuErrorKind, ValidationIssue } from "./errors";
9
- export type { SheetSchema, InferEntity, FormattingRule, HeaderFormat, FieldDefinition, RelationDefinition, Repository, ClientConfig, GenjutsuClient, FindOptions, ReadOptions, WriteOptions, Migration, MigrationContext, } from "./types";
13
+ export type { SheetSchema, InferEntity, FormattingRule, HeaderFormat, FieldDefinition, RelationDefinition, Repository, ClientConfig, GenjutsuClient, RawRangeApi, FindOptions, ReadOptions, WriteOptions, Migration, MigrationContext, DriveContext, WorkspaceConfig, ResolvedWorkspace, ManagedClientConfig, } from "./types";
10
14
  export { defineModel, field } from "./model";
11
15
  export type { FieldDef } from "./model";
12
16
  export { generateId, isValidDate, normalizeDate, looksLikeIsoDate, parseAmount, hasIdColumn, findMissingHeaders, } from "./utils";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,SAAS,EACT,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACd,QAAQ,GACT,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGnE,YAAY,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC7C,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,OAAO,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGtE,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG1C,OAAO,EACL,aAAa,EACb,eAAe,EACf,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,SAAS,EACT,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACd,QAAQ,EACR,UAAU,GACX,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGnE,YAAY,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC7C,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,OAAO,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -6,8 +6,12 @@
6
6
  export { createClient } from "./client";
7
7
  // Transport
8
8
  export { extractSpreadsheetId, createSpreadsheet } from "./transport";
9
+ // Drive workspace
10
+ export { findAppFolder, createAppFolder, listSpreadsheetsInFolder, createSpreadsheetInFolder, } from "./drive";
11
+ export { resolveWorkspace } from "./workspace";
12
+ export { createManagedClient } from "./managed";
9
13
  // Error types
10
- export { GenjutsuError, SheetsDbError, isGenjutsuError, isSheetsDbError, authError, permissionError, rateLimitError, networkError, validationError, schemaError, migrationError, apiError, } from "./errors";
14
+ export { GenjutsuError, SheetsDbError, isGenjutsuError, isSheetsDbError, authError, permissionError, rateLimitError, networkError, validationError, schemaError, migrationError, apiError, driveError, } from "./errors";
11
15
  // Model definition
12
16
  export { defineModel, field } from "./model";
13
17
  // Utilities
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,YAAY;AACZ,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEtE,cAAc;AACd,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,SAAS,EACT,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACd,QAAQ,GACT,MAAM,UAAU,CAAC;AAqBlB,mBAAmB;AACnB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAG7C,YAAY;AACZ,OAAO,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,YAAY;AACZ,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKtE,kBAAkB;AAClB,OAAO,EACL,aAAa,EACb,eAAe,EACf,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,cAAc;AACd,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,SAAS,EACT,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACd,QAAQ,EACR,UAAU,GACX,MAAM,UAAU,CAAC;AA0BlB,mBAAmB;AACnB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAG7C,YAAY;AACZ,OAAO,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Convenience factory that combines workspace resolution with client creation.
3
+ */
4
+ import type { SheetSchema, GenjutsuClient, ManagedClientConfig, ResolvedWorkspace } from "./types";
5
+ export declare function createManagedClient<S extends Record<string, SheetSchema<any>>>(config: ManagedClientConfig<S>): Promise<{
6
+ client: GenjutsuClient<S>;
7
+ workspace: ResolvedWorkspace;
8
+ }>;
9
+ //# sourceMappingURL=managed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed.d.ts","sourceRoot":"","sources":["../src/managed.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,wBAAsB,mBAAmB,CACvC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAE1C,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAetE"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Convenience factory that combines workspace resolution with client creation.
3
+ */
4
+ import { resolveWorkspace } from "./workspace";
5
+ import { createClient } from "./client";
6
+ export async function createManagedClient(config) {
7
+ const workspace = await resolveWorkspace({
8
+ appId: config.appId,
9
+ folderName: config.folderName,
10
+ defaultSpreadsheetName: config.defaultSpreadsheetName,
11
+ auth: config.auth,
12
+ });
13
+ const client = createClient({
14
+ spreadsheetId: workspace.spreadsheetId,
15
+ auth: config.auth,
16
+ schemas: config.schemas,
17
+ });
18
+ return { client, workspace };
19
+ }
20
+ //# sourceMappingURL=managed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed.js","sourceRoot":"","sources":["../src/managed.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAQxC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAGvC,MAA8B;IAE9B,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;QACvC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;QACrD,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC"}
@@ -2,10 +2,9 @@
2
2
  * Low-level HTTP transport for Google Sheets v4 REST API.
3
3
  * Supports token provider pattern, 401 retry, 403→PERMISSION_ERROR, apiKey for public sheets.
4
4
  */
5
+ import { type HttpContext } from "./http";
5
6
  export declare const SHEETS_API = "https://sheets.googleapis.com/v4/spreadsheets";
6
- export interface TransportContext {
7
- auth?: string | (() => Promise<string>);
8
- apiKey?: string;
7
+ export interface TransportContext extends HttpContext {
9
8
  spreadsheetId: string;
10
9
  }
11
10
  export declare function extractSpreadsheetId(urlOrId: string): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,eAAO,MAAM,UAAU,kDAAkD,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAMD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMnE;AA6GD,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,EACb,iBAAiB,GAAE,iBAAiB,GAAG,mBAAuC,GAC7E,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAUtB;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,MAAM,EAAE,EAChB,iBAAiB,GAAE,iBAAiB,GAAG,mBAAuC,GAC7E,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAmBnC;AAMD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,EAAE,EACnB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAOf;AAMD,wBAAsB,UAAU,CAC9B,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAA;CAAE,EAAE,GAC7C,OAAO,CAAC,IAAI,CAAC,CAgBf;AAMD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAAC,CAc3D;AAMD,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAWf;AAMD,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GACrC,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB5D"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,QAAQ,CAAC;AAGhB,eAAO,MAAM,UAAU,kDAAkD,CAAC;AAE1E,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMnE;AAaD,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,EACb,iBAAiB,GAAE,iBAAiB,GAAG,mBAAuC,GAC7E,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAUtB;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,MAAM,EAAE,EAChB,iBAAiB,GAAE,iBAAiB,GAAG,mBAAuC,GAC7E,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAmBnC;AAMD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,EAAE,EACnB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAOf;AAMD,wBAAsB,UAAU,CAC9B,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAA;CAAE,EAAE,GAC7C,OAAO,CAAC,IAAI,CAAC,CAgBf;AAMD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAAC,CAc3D;AAMD,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAWf;AAMD,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GACrC,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB5D"}
package/dist/transport.js CHANGED
@@ -2,11 +2,9 @@
2
2
  * Low-level HTTP transport for Google Sheets v4 REST API.
3
3
  * Supports token provider pattern, 401 retry, 403→PERMISSION_ERROR, apiKey for public sheets.
4
4
  */
5
- import { authError, permissionError, rateLimitError, networkError, apiError, } from "./errors";
5
+ import { resolveToken, fetchWithErrorHandling, buildAuthHeaders, appendParams, } from "./http";
6
+ import { apiError } from "./errors";
6
7
  export const SHEETS_API = "https://sheets.googleapis.com/v4/spreadsheets";
7
- async function resolveToken(auth) {
8
- return typeof auth === "function" ? auth() : auth;
9
- }
10
8
  export function extractSpreadsheetId(urlOrId) {
11
9
  const match = urlOrId.match(/\/d\/([a-zA-Z0-9-_]+)/);
12
10
  if (match)
@@ -16,86 +14,12 @@ export function extractSpreadsheetId(urlOrId) {
16
14
  return urlOrId;
17
15
  return null;
18
16
  }
19
- function parseRetryAfterMs(res) {
20
- const header = res.headers.get("Retry-After");
21
- if (!header)
22
- return undefined;
23
- const seconds = parseInt(header, 10);
24
- return Number.isNaN(seconds) ? undefined : seconds * 1000;
25
- }
26
- function wrapHttpError(status, body, cause) {
27
- if (status === 401) {
28
- throw authError(`Authentication failed: ${status} ${body}`, cause);
29
- }
30
- if (status === 403) {
31
- throw permissionError(`Permission denied: ${status} ${body}`, cause);
32
- }
33
- if (status === 429) {
34
- throw rateLimitError(`Rate limited: ${status} ${body}`, undefined, cause);
35
- }
36
- throw apiError(`Sheets API error: ${status} ${body}`, cause);
37
- }
38
- async function buildAuthHeaders(ctx) {
39
- if (ctx.auth) {
40
- const token = await resolveToken(ctx.auth);
41
- return { Authorization: `Bearer ${token}` };
42
- }
43
- return {};
44
- }
45
17
  function buildApiKeyParam(ctx) {
46
18
  if (ctx.apiKey && !ctx.auth) {
47
19
  return `key=${encodeURIComponent(ctx.apiKey)}`;
48
20
  }
49
21
  return "";
50
22
  }
51
- function appendParams(url, extra) {
52
- if (!extra)
53
- return url;
54
- return url.includes("?") ? `${url}&${extra}` : `${url}?${extra}`;
55
- }
56
- async function fetchWithErrorHandling(url, init, ctx, retryOn401 = true) {
57
- let res;
58
- try {
59
- res = await fetch(url, init);
60
- }
61
- catch (err) {
62
- throw networkError(`Network request failed: ${err instanceof Error ? err.message : String(err)}`, err);
63
- }
64
- // 401 retry: if auth is a function, call it again for a fresh token and retry once
65
- if (res.status === 401 && retryOn401 && typeof ctx.auth === "function") {
66
- const freshToken = await ctx.auth();
67
- const retryInit = {
68
- ...init,
69
- headers: {
70
- ...init.headers,
71
- Authorization: `Bearer ${freshToken}`,
72
- },
73
- };
74
- let retryRes;
75
- try {
76
- retryRes = await fetch(url, retryInit);
77
- }
78
- catch (err) {
79
- throw networkError(`Network request failed on retry: ${err instanceof Error ? err.message : String(err)}`, err);
80
- }
81
- if (!retryRes.ok) {
82
- const body = await retryRes.text();
83
- if (retryRes.status === 429) {
84
- throw rateLimitError(`Rate limited: ${retryRes.status} ${body}`, parseRetryAfterMs(retryRes), retryRes);
85
- }
86
- wrapHttpError(retryRes.status, body, retryRes);
87
- }
88
- return retryRes;
89
- }
90
- if (!res.ok) {
91
- const body = await res.text();
92
- if (res.status === 429) {
93
- throw rateLimitError(`Rate limited: ${res.status} ${body}`, parseRetryAfterMs(res), res);
94
- }
95
- wrapHttpError(res.status, body, res);
96
- }
97
- return res;
98
- }
99
23
  // ---------------------------------------------------------------------------
100
24
  // Read Operations
101
25
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -79,6 +79,11 @@ export interface ClientConfig<S extends Record<string, SheetSchema<any>>> {
79
79
  apiKey?: string;
80
80
  schemas: S;
81
81
  }
82
+ export interface RawRangeApi {
83
+ readRange(range: string, valueRenderOption?: "FORMATTED_VALUE" | "UNFORMATTED_VALUE"): Promise<unknown[][]>;
84
+ writeRange(range: string, values: unknown[][]): Promise<void>;
85
+ clearRange(range: string): Promise<void>;
86
+ }
82
87
  export interface GenjutsuClient<S extends Record<string, SheetSchema<any>>> {
83
88
  repo<K extends keyof S & string>(key: K): Repository<InferEntity<S[K]>>;
84
89
  batchSync(payload: Partial<{
@@ -88,6 +93,7 @@ export interface GenjutsuClient<S extends Record<string, SheetSchema<any>>> {
88
93
  applyFormatting(): Promise<void>;
89
94
  migrate(migrations: Migration[]): Promise<void>;
90
95
  extractSpreadsheetId(urlOrId: string): string | null;
96
+ raw: RawRangeApi;
91
97
  }
92
98
  export interface Migration {
93
99
  version: number;
@@ -101,4 +107,38 @@ export interface MigrationContext {
101
107
  renameColumn(sheet: string, columnIndex: number, newName: string): Promise<void>;
102
108
  renameSheet(oldName: string, newName: string): Promise<void>;
103
109
  }
110
+ export interface DriveContext {
111
+ auth: string | (() => Promise<string>);
112
+ }
113
+ export interface DriveFile {
114
+ id: string;
115
+ name: string;
116
+ modifiedTime?: string;
117
+ }
118
+ export interface WorkspaceConfig {
119
+ /** Unique identifier for this app, stored in appProperties.genjutsuApp */
120
+ appId: string;
121
+ /** Human-readable folder name shown in Google Drive. Defaults to appId. */
122
+ folderName?: string;
123
+ /** Name for the default spreadsheet created on first run. */
124
+ defaultSpreadsheetName: string;
125
+ /** OAuth token or async provider. Required — Drive API needs user auth. */
126
+ auth: string | (() => Promise<string>);
127
+ }
128
+ export interface ResolvedWorkspace {
129
+ /** Google Drive folder ID. */
130
+ folderId: string;
131
+ /** Primary spreadsheet ID (most recently modified). */
132
+ spreadsheetId: string;
133
+ /** All spreadsheets in the workspace folder. */
134
+ spreadsheets: Array<{
135
+ id: string;
136
+ name: string;
137
+ }>;
138
+ /** True if folder and/or spreadsheet were created during this call. */
139
+ created: boolean;
140
+ }
141
+ export interface ManagedClientConfig<S extends Record<string, SheetSchema<any>>> extends WorkspaceConfig {
142
+ schemas: S;
143
+ }
104
144
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Workspace orchestrator: finds or creates an app-specific folder and spreadsheet
3
+ * in the user's Google Drive using appProperties metadata for collision-proof identification.
4
+ */
5
+ import type { WorkspaceConfig, ResolvedWorkspace } from "./types";
6
+ export declare function resolveWorkspace(config: WorkspaceConfig): Promise<ResolvedWorkspace>;
7
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAElE,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAkD5B"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Workspace orchestrator: finds or creates an app-specific folder and spreadsheet
3
+ * in the user's Google Drive using appProperties metadata for collision-proof identification.
4
+ */
5
+ import { findAppFolder, createAppFolder, listSpreadsheetsInFolder, createSpreadsheetInFolder, } from "./drive";
6
+ import { validationError } from "./errors";
7
+ export async function resolveWorkspace(config) {
8
+ // Validate config
9
+ if (!config.auth) {
10
+ throw validationError("resolveWorkspace requires OAuth auth", [
11
+ { field: "auth", message: "auth is required (Drive API needs user authorization)" },
12
+ ]);
13
+ }
14
+ if (!config.appId) {
15
+ throw validationError("appId must be a non-empty string", [
16
+ { field: "appId", message: "appId is required" },
17
+ ]);
18
+ }
19
+ if (!config.defaultSpreadsheetName) {
20
+ throw validationError("defaultSpreadsheetName must be a non-empty string", [
21
+ { field: "defaultSpreadsheetName", message: "defaultSpreadsheetName is required" },
22
+ ]);
23
+ }
24
+ const ctx = { auth: config.auth };
25
+ const folderName = config.folderName || config.appId;
26
+ let created = false;
27
+ // Step 1: Find or create the app folder
28
+ let folder = await findAppFolder(ctx, config.appId);
29
+ if (!folder) {
30
+ folder = await createAppFolder(ctx, config.appId, folderName);
31
+ created = true;
32
+ }
33
+ // Step 2: List spreadsheets in the folder
34
+ let spreadsheets = await listSpreadsheetsInFolder(ctx, folder.id);
35
+ // Step 3: Create default spreadsheet if none exist
36
+ if (spreadsheets.length === 0) {
37
+ const newSheet = await createSpreadsheetInFolder(ctx, folder.id, config.defaultSpreadsheetName, config.appId);
38
+ spreadsheets = [newSheet];
39
+ created = true;
40
+ }
41
+ return {
42
+ folderId: folder.id,
43
+ spreadsheetId: spreadsheets[0].id,
44
+ spreadsheets,
45
+ created,
46
+ };
47
+ }
48
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EACb,eAAe,EACf,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAuB;IAEvB,kBAAkB;IAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,eAAe,CAAC,sCAAsC,EAAE;YAC5D,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uDAAuD,EAAE;SACpF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,eAAe,CAAC,kCAAkC,EAAE;YACxD,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE;SACjD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;QACnC,MAAM,eAAe,CAAC,mDAAmD,EAAE;YACzE,EAAE,KAAK,EAAE,wBAAwB,EAAE,OAAO,EAAE,oCAAoC,EAAE;SACnF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC;IACrD,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,wCAAwC;IACxC,IAAI,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC9D,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,0CAA0C;IAC1C,IAAI,YAAY,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAElE,mDAAmD;IACnD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAC9C,GAAG,EACH,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,sBAAsB,EAC7B,MAAM,CAAC,KAAK,CACb,CAAC;QACF,YAAY,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;QACjC,YAAY;QACZ,OAAO;KACR,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genjutsu-db",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "A TypeScript-first Google Sheets database library with zero runtime dependencies",
6
6
  "main": "dist/index.js",