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.
- package/README.md +167 -3
- package/dist/adapters/pg-adapter.d.ts +53 -0
- package/dist/adapters/pg-adapter.d.ts.map +1 -0
- package/dist/adapters/pg-adapter.js +76 -0
- package/dist/adapters/pg-adapter.js.map +1 -0
- package/dist/adapters/sqlite-adapter.d.ts +35 -0
- package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
- package/dist/adapters/sqlite-adapter.js +66 -0
- package/dist/adapters/sqlite-adapter.js.map +1 -1
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +8 -4
- package/dist/factory.js.map +1 -1
- package/dist/migrations/runner.d.ts +39 -0
- package/dist/migrations/runner.d.ts.map +1 -0
- package/dist/migrations/runner.js +87 -0
- package/dist/migrations/runner.js.map +1 -0
- package/dist/nextjs/setup-helpers.d.ts.map +1 -1
- package/dist/nextjs/setup-helpers.js +15 -4
- package/dist/nextjs/setup-helpers.js.map +1 -1
- package/dist/query-builder.d.ts +65 -0
- package/dist/query-builder.d.ts.map +1 -1
- package/dist/query-builder.js +148 -0
- package/dist/query-builder.js.map +1 -1
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +4 -1
- package/dist/server/index.js.map +1 -1
- package/dist/sqlite/query-translator.d.ts.map +1 -1
- package/dist/sqlite/query-translator.js +39 -2
- package/dist/sqlite/query-translator.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/database-url.d.ts +20 -0
- package/dist/utils/database-url.d.ts.map +1 -0
- package/dist/utils/database-url.js +44 -0
- package/dist/utils/database-url.js.map +1 -0
- 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)
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/lib/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAC7D;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAKxB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAA;
|
|
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.
|
|
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": "
|
|
79
|
-
"hazo_debug": "
|
|
80
|
-
"hazo_logs": "
|
|
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": "
|
|
83
|
-
"react": "
|
|
84
|
-
"react-dom": "
|
|
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.
|
|
112
|
-
"
|
|
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.
|
|
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": "^
|
|
147
|
+
"tailwindcss": "^4.2.4",
|
|
138
148
|
"ts-jest": "^29.4.5",
|
|
139
149
|
"tsx": "^4.17.0",
|
|
140
|
-
"typescript": "^5.
|
|
150
|
+
"typescript": "^5.7.2"
|
|
141
151
|
},
|
|
142
152
|
"overrides": {
|
|
143
153
|
"glob": "^10.4.6"
|