hazo_connect 2.4.6 → 2.6.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.
Files changed (37) hide show
  1. package/README.md +167 -3
  2. package/dist/adapters/pg-adapter.d.ts +53 -0
  3. package/dist/adapters/pg-adapter.d.ts.map +1 -0
  4. package/dist/adapters/pg-adapter.js +76 -0
  5. package/dist/adapters/pg-adapter.js.map +1 -0
  6. package/dist/adapters/sqlite-adapter.d.ts +35 -0
  7. package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
  8. package/dist/adapters/sqlite-adapter.js +66 -0
  9. package/dist/adapters/sqlite-adapter.js.map +1 -1
  10. package/dist/factory.d.ts.map +1 -1
  11. package/dist/factory.js +8 -4
  12. package/dist/factory.js.map +1 -1
  13. package/dist/migrations/runner.d.ts +39 -0
  14. package/dist/migrations/runner.d.ts.map +1 -0
  15. package/dist/migrations/runner.js +87 -0
  16. package/dist/migrations/runner.js.map +1 -0
  17. package/dist/nextjs/setup-helpers.d.ts.map +1 -1
  18. package/dist/nextjs/setup-helpers.js +15 -4
  19. package/dist/nextjs/setup-helpers.js.map +1 -1
  20. package/dist/query-builder.d.ts +65 -0
  21. package/dist/query-builder.d.ts.map +1 -1
  22. package/dist/query-builder.js +148 -0
  23. package/dist/query-builder.js.map +1 -1
  24. package/dist/server/index.d.ts +3 -0
  25. package/dist/server/index.d.ts.map +1 -1
  26. package/dist/server/index.js +4 -1
  27. package/dist/server/index.js.map +1 -1
  28. package/dist/sqlite/query-translator.d.ts.map +1 -1
  29. package/dist/sqlite/query-translator.js +39 -2
  30. package/dist/sqlite/query-translator.js.map +1 -1
  31. package/dist/types.d.ts +1 -1
  32. package/dist/types.d.ts.map +1 -1
  33. package/dist/utils/database-url.d.ts +20 -0
  34. package/dist/utils/database-url.d.ts.map +1 -0
  35. package/dist/utils/database-url.js +44 -0
  36. package/dist/utils/database-url.js.map +1 -0
  37. package/package.json +24 -14
package/dist/types.d.ts CHANGED
@@ -25,7 +25,7 @@ export declare const noOpLogger: Logger;
25
25
  /**
26
26
  * Connection types supported by Hazo Connect
27
27
  */
28
- export type ConnectionType = 'postgrest' | 'supabase' | 'sqlite' | 'file';
28
+ export type ConnectionType = 'postgrest' | 'supabase' | 'sqlite' | 'file' | 'pg';
29
29
  /**
30
30
  * Log levels supported by Hazo Connect
31
31
  * - debug: Log all operations including query details (verbose)
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Purpose: Parse `DATABASE_URL=sqlite:...` env-var values into the SQLite
3
+ * config shape that `createHazoConnect` already understands.
4
+ *
5
+ * Supports the URI forms commonly used in sister projects:
6
+ * - `sqlite:./relative/path.db` -> resolved against cwd
7
+ * - `sqlite:relative/path.db` -> resolved against cwd
8
+ * - `sqlite:/absolute/path.db` -> taken as absolute
9
+ * - `sqlite:///absolute/path.db` -> the `file://` style; same as absolute
10
+ * - `sqlite::memory:` -> in-memory marker
11
+ *
12
+ * Returns `null` for non-sqlite URLs or empty input. Callers can layer this
13
+ * on top of the existing `HAZO_CONNECT_SQLITE_PATH` env var.
14
+ */
15
+ export interface ParsedSqliteUrl {
16
+ type: 'sqlite';
17
+ database_path: string;
18
+ }
19
+ export declare function parseDatabaseUrl(url: string | undefined, cwd?: string): ParsedSqliteUrl | null;
20
+ //# sourceMappingURL=database-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-url.d.ts","sourceRoot":"","sources":["../../src/lib/utils/database-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,GAAG,GAAE,MAAsB,GAC1B,eAAe,GAAG,IAAI,CAyBxB"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /**
3
+ * Purpose: Parse `DATABASE_URL=sqlite:...` env-var values into the SQLite
4
+ * config shape that `createHazoConnect` already understands.
5
+ *
6
+ * Supports the URI forms commonly used in sister projects:
7
+ * - `sqlite:./relative/path.db` -> resolved against cwd
8
+ * - `sqlite:relative/path.db` -> resolved against cwd
9
+ * - `sqlite:/absolute/path.db` -> taken as absolute
10
+ * - `sqlite:///absolute/path.db` -> the `file://` style; same as absolute
11
+ * - `sqlite::memory:` -> in-memory marker
12
+ *
13
+ * Returns `null` for non-sqlite URLs or empty input. Callers can layer this
14
+ * on top of the existing `HAZO_CONNECT_SQLITE_PATH` env var.
15
+ */
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.parseDatabaseUrl = parseDatabaseUrl;
21
+ const path_1 = __importDefault(require("path"));
22
+ function parseDatabaseUrl(url, cwd = process.cwd()) {
23
+ if (!url)
24
+ return null;
25
+ // Match scheme case-insensitively.
26
+ const match = url.match(/^sqlite:(.*)$/i);
27
+ if (!match)
28
+ return null;
29
+ const rest = match[1];
30
+ if (rest === ':memory:') {
31
+ return { type: 'sqlite', database_path: ':memory:' };
32
+ }
33
+ // `sqlite:///abs/path` form — three slashes after the scheme.
34
+ if (rest.startsWith('///')) {
35
+ return { type: 'sqlite', database_path: '/' + rest.slice(3) };
36
+ }
37
+ // `sqlite:/abs/path` form — single leading slash already absolute.
38
+ if (path_1.default.isAbsolute(rest)) {
39
+ return { type: 'sqlite', database_path: rest };
40
+ }
41
+ // Relative form. Strip a leading `./` for consistency before resolving.
42
+ return { type: 'sqlite', database_path: path_1.default.resolve(cwd, rest) };
43
+ }
44
+ //# sourceMappingURL=database-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-url.js","sourceRoot":"","sources":["../../src/lib/utils/database-url.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;AASH,4CA4BC;AAnCD,gDAAuB;AAOvB,SAAgB,gBAAgB,CAC9B,GAAuB,EACvB,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IAErB,mCAAmC;IACnC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAErB,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,CAAA;IACtD,CAAC;IAED,8DAA8D;IAC9D,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/D,CAAC;IAED,mEAAmE;IACnE,IAAI,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;IAChD,CAAC;IAED,wEAAwE;IACxE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAA;AACnE,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,19 @@
1
1
  {
2
2
  "name": "hazo_connect",
3
- "version": "2.4.6",
3
+ "version": "2.6.0",
4
4
  "description": "Module to connect to the data store (postgres via postgrest, supabase, etc)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [
8
8
  "dist",
9
9
  "scripts",
10
- "docs",
10
+ "docs/examples",
11
+ "docs/logging.md",
12
+ "docs/migration-guide.md",
13
+ "docs/nextjs-setup.md",
14
+ "docs/techdoc.md",
15
+ "docs/troubleshooting.md",
16
+ "docs/types.md",
11
17
  "README.md"
12
18
  ],
13
19
  "bin": {
@@ -37,6 +43,7 @@
37
43
  },
38
44
  "scripts": {
39
45
  "dev": "next dev",
46
+ "dev:test-app": "npm run dev",
40
47
  "build": "next build",
41
48
  "build:lib": "tsc --project tsconfig.build.json",
42
49
  "start": "next start",
@@ -49,6 +56,7 @@
49
56
  "test:coverage": "jest --coverage",
50
57
  "test:integration": "POSTGREST_INTEGRATION=true jest --runInBand tests/integration/postgrest.integration.test.ts",
51
58
  "test:integration:sqlite": "jest --runInBand tests/integration/sqlite.integration.test.ts",
59
+ "test:integration:pg": "PG_INTEGRATION=true jest --runInBand tests/integration/pg.integration.test.ts",
52
60
  "prepublishOnly": "npm run build:lib",
53
61
  "postinstall": "node scripts/postinstall-setup.js"
54
62
  },
@@ -72,16 +80,17 @@
72
80
  "homepage": "https://github.com/pub12/hazo_connect#readme",
73
81
  "dependencies": {
74
82
  "dotenv": "^16.4.5",
83
+ "postgres": "^3.4.5",
75
84
  "sql.js": "^1.13.0"
76
85
  },
77
86
  "peerDependencies": {
78
- "hazo_config": ">=1.3.0",
79
- "hazo_debug": ">=1.0.0",
80
- "hazo_logs": ">=1.0.5",
87
+ "hazo_config": "^2.1.0",
88
+ "hazo_debug": "^2.0.0",
89
+ "hazo_logs": "^1.0.13",
81
90
  "lucide-react": "^0.553.0",
82
- "next": ">=14.0.0",
83
- "react": ">=18.0.0",
84
- "react-dom": ">=18.0.0",
91
+ "next": "^14.0.0 || ^16.0.0",
92
+ "react": "^18.0.0 || ^19.0.0",
93
+ "react-dom": "^18.0.0 || ^19.0.0",
85
94
  "sonner": "^2.0.7"
86
95
  },
87
96
  "peerDependenciesMeta": {
@@ -108,20 +117,21 @@
108
117
  }
109
118
  },
110
119
  "devDependencies": {
111
- "hazo_config": "^1.3.0",
112
- "hazo_logs": "^1.0.5",
120
+ "hazo_config": "^2.1.0",
121
+ "hazo_debug": "^2.0.0",
122
+ "hazo_logs": "^1.0.13",
113
123
  "@storybook/addon-essentials": "^8.2.6",
114
124
  "@storybook/addon-interactions": "^8.2.6",
115
125
  "@storybook/experimental-nextjs-vite": "^8.6.14",
116
126
  "@storybook/nextjs": "^8.2.6",
117
127
  "@storybook/react": "^8.2.6",
118
128
  "@storybook/test": "^8.2.6",
129
+ "@tailwindcss/postcss": "^4.2.4",
119
130
  "@types/jest": "^30.0.0",
120
131
  "@types/node": "^20.14.10",
121
132
  "@types/react": "^18.3.3",
122
133
  "@types/react-dom": "^18.3.0",
123
134
  "@types/sql.js": "^1.4.9",
124
- "autoprefixer": "^10.4.19",
125
135
  "eslint": "^8.57.0",
126
136
  "eslint-config-next": "14.2.33",
127
137
  "jest": "^30.2.0",
@@ -129,15 +139,15 @@
129
139
  "lucide-react": "^0.553.0",
130
140
  "next": "14.2.33",
131
141
  "patch-package": "^8.0.1",
132
- "postcss": "^8.4.39",
142
+ "postcss": "^8.4.49",
133
143
  "react": "18.3.1",
134
144
  "react-dom": "18.3.1",
135
145
  "sonner": "^2.0.7",
136
146
  "storybook": "^8.2.6",
137
- "tailwindcss": "^3.4.10",
147
+ "tailwindcss": "^4.2.4",
138
148
  "ts-jest": "^29.4.5",
139
149
  "tsx": "^4.17.0",
140
- "typescript": "^5.5.4"
150
+ "typescript": "^5.7.2"
141
151
  },
142
152
  "overrides": {
143
153
  "glob": "^10.4.6"