longcelot-sheet-db 0.1.8 → 0.1.12

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 (57) hide show
  1. package/CHANGELOG.md +61 -20
  2. package/README.md +87 -10
  3. package/dist/adapter/crud.d.ts +2 -1
  4. package/dist/adapter/crud.d.ts.map +1 -1
  5. package/dist/adapter/crud.js +10 -1
  6. package/dist/adapter/crud.js.map +1 -1
  7. package/dist/adapter/sheetAdapter.d.ts +18 -2
  8. package/dist/adapter/sheetAdapter.d.ts.map +1 -1
  9. package/dist/adapter/sheetAdapter.js +137 -10
  10. package/dist/adapter/sheetAdapter.js.map +1 -1
  11. package/dist/cli/commands/export.d.ts +3 -0
  12. package/dist/cli/commands/export.d.ts.map +1 -1
  13. package/dist/cli/commands/export.js +4 -1
  14. package/dist/cli/commands/export.js.map +1 -1
  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 +1 -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/types.d.ts +14 -1
  52. package/dist/schema/types.d.ts.map +1 -1
  53. package/dist/utils/schemaHash.d.ts +3 -0
  54. package/dist/utils/schemaHash.d.ts.map +1 -0
  55. package/dist/utils/schemaHash.js +24 -0
  56. package/dist/utils/schemaHash.js.map +1 -0
  57. package/package.json +20 -20
@@ -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.8",
3
+ "version": "0.1.12",
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",