longcelot-sheet-db 0.1.7 → 0.1.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.
Files changed (63) hide show
  1. package/CHANGELOG.md +35 -20
  2. package/README.md +87 -10
  3. package/dist/adapter/crud.d.ts +6 -3
  4. package/dist/adapter/crud.d.ts.map +1 -1
  5. package/dist/adapter/crud.js +50 -4
  6. package/dist/adapter/crud.js.map +1 -1
  7. package/dist/adapter/sheetAdapter.d.ts +17 -2
  8. package/dist/adapter/sheetAdapter.d.ts.map +1 -1
  9. package/dist/adapter/sheetAdapter.js +154 -2
  10. package/dist/adapter/sheetAdapter.js.map +1 -1
  11. package/dist/cli/commands/export.d.ts +8 -0
  12. package/dist/cli/commands/export.d.ts.map +1 -0
  13. package/dist/cli/commands/export.js +166 -0
  14. package/dist/cli/commands/export.js.map +1 -0
  15. package/dist/cli/commands/generate.d.ts.map +1 -1
  16. package/dist/cli/commands/generate.js +1 -1
  17. package/dist/cli/commands/generate.js.map +1 -1
  18. package/dist/cli/commands/init.d.ts.map +1 -1
  19. package/dist/cli/commands/init.js +30 -5
  20. package/dist/cli/commands/init.js.map +1 -1
  21. package/dist/cli/commands/mock-users.d.ts.map +1 -1
  22. package/dist/cli/commands/mock-users.js +5 -2
  23. package/dist/cli/commands/mock-users.js.map +1 -1
  24. package/dist/cli/commands/seed.d.ts.map +1 -1
  25. package/dist/cli/commands/seed.js +2 -1
  26. package/dist/cli/commands/seed.js.map +1 -1
  27. package/dist/cli/commands/status.d.ts.map +1 -1
  28. package/dist/cli/commands/status.js +13 -4
  29. package/dist/cli/commands/status.js.map +1 -1
  30. package/dist/cli/commands/sync.d.ts +1 -0
  31. package/dist/cli/commands/sync.d.ts.map +1 -1
  32. package/dist/cli/commands/sync.js +175 -80
  33. package/dist/cli/commands/sync.js.map +1 -1
  34. package/dist/cli/commands/validate.d.ts.map +1 -1
  35. package/dist/cli/commands/validate.js +7 -5
  36. package/dist/cli/commands/validate.js.map +1 -1
  37. package/dist/cli/index.js +9 -0
  38. package/dist/cli/index.js.map +1 -1
  39. package/dist/errors/SchemaMismatchError.d.ts +6 -0
  40. package/dist/errors/SchemaMismatchError.d.ts.map +1 -0
  41. package/dist/errors/SchemaMismatchError.js +14 -0
  42. package/dist/errors/SchemaMismatchError.js.map +1 -0
  43. package/dist/errors/index.d.ts +1 -0
  44. package/dist/errors/index.d.ts.map +1 -1
  45. package/dist/errors/index.js +3 -1
  46. package/dist/errors/index.js.map +1 -1
  47. package/dist/index.d.ts +3 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +5 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/schema/columnBuilder.d.ts.map +1 -1
  52. package/dist/schema/columnBuilder.js +1 -0
  53. package/dist/schema/columnBuilder.js.map +1 -1
  54. package/dist/schema/defineTable.d.ts.map +1 -1
  55. package/dist/schema/defineTable.js +8 -0
  56. package/dist/schema/defineTable.js.map +1 -1
  57. package/dist/schema/types.d.ts +13 -1
  58. package/dist/schema/types.d.ts.map +1 -1
  59. package/dist/utils/schemaHash.d.ts +3 -0
  60. package/dist/utils/schemaHash.d.ts.map +1 -0
  61. package/dist/utils/schemaHash.js +24 -0
  62. package/dist/utils/schemaHash.js.map +1 -0
  63. package/package.json +20 -20
@@ -1 +1 @@
1
- {"version":3,"file":"defineTable.d.ts","sourceRoot":"","sources":["../../src/schema/defineTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,gBAAgB,CAAC,CAAC;CAC3D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CA6B1D"}
1
+ {"version":3,"file":"defineTable.d.ts","sourceRoot":"","sources":["../../src/schema/defineTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,gBAAgB,CAAC,CAAC;CAC3D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAyC1D"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defineTable = defineTable;
4
4
  const columnBuilder_1 = require("./columnBuilder");
5
+ const SchemaError_1 = require("../errors/SchemaError");
5
6
  function defineTable(input) {
6
7
  const columns = {};
7
8
  for (const [key, value] of Object.entries(input.columns)) {
@@ -12,6 +13,12 @@ function defineTable(input) {
12
13
  columns[key] = value;
13
14
  }
14
15
  }
16
+ const primaryColumns = Object.entries(columns).filter(([, col]) => col.primary);
17
+ if (primaryColumns.length > 1) {
18
+ const names = primaryColumns.map(([k]) => k).join(', ');
19
+ throw new SchemaError_1.SchemaError(`Table '${input.name}' has ${primaryColumns.length} primary columns (${names}). Only one primary() column is allowed.`, input.name);
20
+ }
21
+ const pkColumn = primaryColumns.length === 1 ? primaryColumns[0][0] : undefined;
15
22
  if (input.timestamps) {
16
23
  columns._created_at = { type: 'date', readonly: true };
17
24
  columns._updated_at = { type: 'date', readonly: true };
@@ -26,6 +33,7 @@ function defineTable(input) {
26
33
  timestamps: input.timestamps,
27
34
  softDelete: input.softDelete,
28
35
  columns,
36
+ pkColumn,
29
37
  };
30
38
  }
31
39
  //# sourceMappingURL=defineTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defineTable.js","sourceRoot":"","sources":["../../src/schema/defineTable.ts"],"names":[],"mappings":";;AAWA,kCA6BC;AAvCD,mDAAgD;AAUhD,SAAgB,WAAW,CAAC,KAAiB;IAC3C,MAAM,OAAO,GAAqC,EAAE,CAAC;IAErD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,YAAY,6BAAa,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACvD,OAAO,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAE/E,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"defineTable.js","sourceRoot":"","sources":["../../src/schema/defineTable.ts"],"names":[],"mappings":";;AAYA,kCAyCC;AApDD,mDAAgD;AAChD,uDAAoD;AAUpD,SAAgB,WAAW,CAAC,KAAiB;IAC3C,MAAM,OAAO,GAAqC,EAAE,CAAC;IAErD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,YAAY,6BAAa,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,IAAI,yBAAW,CACnB,UAAU,KAAK,CAAC,IAAI,SAAS,cAAc,CAAC,MAAM,qBAAqB,KAAK,0CAA0C,EACtH,KAAK,CAAC,IAAI,CACX,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACvD,OAAO,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAE/E,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -19,11 +19,18 @@ export interface TableSchema {
19
19
  timestamps?: boolean;
20
20
  softDelete?: boolean;
21
21
  columns: Record<string, ColumnDefinition>;
22
+ pkColumn?: string;
22
23
  }
24
+ export interface ActorConfig {
25
+ role: string;
26
+ sheetIdEnv: string;
27
+ }
28
+ export type SchemaMismatchBehaviour = 'warn' | 'error' | 'auto-sync';
23
29
  export interface SheetDBConfig {
24
30
  projectName: string;
25
31
  superAdminEmail: string;
26
- actors: string[];
32
+ actors: ActorConfig[];
33
+ onSchemaMismatch?: SchemaMismatchBehaviour;
27
34
  }
28
35
  export interface UserContext {
29
36
  userId: string;
@@ -40,11 +47,16 @@ export interface FindOptions {
40
47
  orderBy?: string;
41
48
  order?: 'asc' | 'desc';
42
49
  }
50
+ export interface CreateOptions {
51
+ skipFKValidation?: boolean;
52
+ }
43
53
  export interface UpdateOptions {
44
54
  where: WhereClause;
45
55
  data: Record<string, any>;
56
+ skipFKValidation?: boolean;
46
57
  }
47
58
  export interface DeleteOptions {
48
59
  where: WhereClause;
49
60
  }
61
+ export type FKResolver = (tableName: string, columnName: string, value: unknown) => Promise<boolean>;
50
62
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;CAC5C;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TableSchema } from '../schema/types';
2
+ export declare function computeSchemaHash(schema: TableSchema): string;
3
+ //# sourceMappingURL=schemaHash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaHash.d.ts","sourceRoot":"","sources":["../../src/utils/schemaHash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAoB7D"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeSchemaHash = computeSchemaHash;
4
+ const crypto_1 = require("crypto");
5
+ function computeSchemaHash(schema) {
6
+ const normalized = {
7
+ name: schema.name,
8
+ actor: schema.actor,
9
+ timestamps: schema.timestamps ?? false,
10
+ softDelete: schema.softDelete ?? false,
11
+ columns: Object.fromEntries(Object.entries(schema.columns)
12
+ .filter(([k]) => !k.startsWith('_')) // exclude auto-fields (_id, _created_at…)
13
+ .sort(([a], [b]) => a.localeCompare(b))
14
+ .map(([k, v]) => [k, {
15
+ type: v.type,
16
+ required: v.required ?? false,
17
+ unique: v.unique ?? false,
18
+ primary: v.primary ?? false,
19
+ enum: v.enum ?? null,
20
+ }])),
21
+ };
22
+ return (0, crypto_1.createHash)('sha256').update(JSON.stringify(normalized)).digest('hex');
23
+ }
24
+ //# sourceMappingURL=schemaHash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaHash.js","sourceRoot":"","sources":["../../src/utils/schemaHash.ts"],"names":[],"mappings":";;AAGA,8CAoBC;AAvBD,mCAAoC;AAGpC,SAAgB,iBAAiB,CAAC,MAAmB;IACnD,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,KAAK;QACtC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,KAAK;QACtC,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,0CAA0C;aAC9E,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;gBACnB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,KAAK;gBAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK;gBACzB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK;gBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;aACrB,CAAC,CAAC,CACN;KACF,CAAC;IACF,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "longcelot-sheet-db",
3
- "version": "0.1.7",
3
+ "version": "0.1.11",
4
4
  "description": "Google Sheets-backed staging database adapter for Node.js with schema-first design",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -37,33 +37,33 @@
37
37
  "access": "public"
38
38
  },
39
39
  "dependencies": {
40
- "bcryptjs": "^2.4.3",
40
+ "bcryptjs": "^3.0.3",
41
41
  "chalk": "^4.1.2",
42
- "commander": "^11.1.0",
43
- "google-auth-library": "^9.15.1",
44
- "googleapis": "^128.0.0",
45
- "inquirer": "^8.2.6",
46
- "nanoid": "^3.3.7",
47
- "zod": "^4.3.6"
42
+ "commander": "^14.0.3",
43
+ "google-auth-library": "^10.6.2",
44
+ "googleapis": "^172.0.0",
45
+ "inquirer": "^8.2.7",
46
+ "nanoid": "^3.3.12",
47
+ "zod": "^4.4.3"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@tanstack/intent": "latest",
51
51
  "@testing-library/dom": "^10.4.1",
52
- "@types/bcryptjs": "^2.4.6",
53
- "@types/inquirer": "^8.2.10",
52
+ "@types/bcryptjs": "^3.0.0",
53
+ "@types/inquirer": "^8.2.12",
54
54
  "@types/jest": "^30.0.0",
55
- "@types/node": "^20.10.5",
56
- "@typescript-eslint/eslint-plugin": "^8.56.0",
57
- "@typescript-eslint/parser": "^8.56.0",
58
- "eslint": "^9.39.3",
55
+ "@types/node": "^25.9.1",
56
+ "@typescript-eslint/eslint-plugin": "^8.60.0",
57
+ "@typescript-eslint/parser": "^8.60.0",
58
+ "eslint": "^10.4.0",
59
59
  "eslint-config-prettier": "^10.1.8",
60
60
  "husky": "^9.1.7",
61
- "jest": "^30.2.0",
62
- "jsdom": "^28.1.0",
63
- "lint-staged": "^16.2.7",
64
- "prettier": "^3.8.1",
65
- "ts-jest": "^29.4.6",
66
- "typescript": "^5.3.3"
61
+ "jest": "^30.4.2",
62
+ "jsdom": "^29.1.1",
63
+ "lint-staged": "^17.0.5",
64
+ "prettier": "^3.8.3",
65
+ "ts-jest": "^29.4.11",
66
+ "typescript": "^6.0.3"
67
67
  },
68
68
  "scripts": {
69
69
  "build": "rm -rf dist && tsc",