hazo_connect 1.0.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/dist/__tests__/factory.test.d.ts +2 -0
- package/dist/__tests__/factory.test.d.ts.map +1 -0
- package/dist/__tests__/factory.test.js +45 -0
- package/dist/__tests__/factory.test.js.map +1 -0
- package/dist/__tests__/postgrest_adapter.test.d.ts +2 -0
- package/dist/__tests__/postgrest_adapter.test.d.ts.map +1 -0
- package/dist/__tests__/postgrest_adapter.test.js +32 -0
- package/dist/__tests__/postgrest_adapter.test.js.map +1 -0
- package/dist/__tests__/query_builder.test.d.ts +2 -0
- package/dist/__tests__/query_builder.test.d.ts.map +1 -0
- package/dist/__tests__/query_builder.test.js +35 -0
- package/dist/__tests__/query_builder.test.js.map +1 -0
- package/dist/adapters/base-adapter.d.ts +69 -0
- package/dist/adapters/base-adapter.d.ts.map +1 -0
- package/dist/adapters/base-adapter.js +121 -0
- package/dist/adapters/base-adapter.js.map +1 -0
- package/dist/adapters/file-adapter.d.ts +50 -0
- package/dist/adapters/file-adapter.d.ts.map +1 -0
- package/dist/adapters/file-adapter.js +62 -0
- package/dist/adapters/file-adapter.js.map +1 -0
- package/dist/adapters/postgrest-adapter.d.ts +60 -0
- package/dist/adapters/postgrest-adapter.d.ts.map +1 -0
- package/dist/adapters/postgrest-adapter.js +252 -0
- package/dist/adapters/postgrest-adapter.js.map +1 -0
- package/dist/adapters/sqlite-adapter.d.ts +49 -0
- package/dist/adapters/sqlite-adapter.d.ts.map +1 -0
- package/dist/adapters/sqlite-adapter.js +61 -0
- package/dist/adapters/sqlite-adapter.js.map +1 -0
- package/dist/adapters/supabase-adapter.d.ts +50 -0
- package/dist/adapters/supabase-adapter.d.ts.map +1 -0
- package/dist/adapters/supabase-adapter.js +62 -0
- package/dist/adapters/supabase-adapter.js.map +1 -0
- package/dist/factory.d.ts +15 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +89 -0
- package/dist/factory.js.map +1 -0
- package/dist/helpers.d.ts +76 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +151 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/query-builder.d.ts +143 -0
- package/dist/query-builder.d.ts.map +1 -0
- package/dist/query-builder.js +216 -0
- package/dist/query-builder.js.map +1 -0
- package/dist/types.d.ts +117 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +33 -0
- package/dist/types.js.map +1 -0
- package/package.json +73 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Purpose: Core TypeScript types and interfaces for Hazo Connect
|
|
3
|
+
*
|
|
4
|
+
* This file defines all types used throughout the hazo_connect component.
|
|
5
|
+
* Zero dependencies - only TypeScript types.
|
|
6
|
+
*
|
|
7
|
+
* Note: ConfigProvider is imported from hazo_config npm package.
|
|
8
|
+
* Components can work with either direct config or ConfigProvider.
|
|
9
|
+
*/
|
|
10
|
+
import type { ConfigProvider } from 'hazo_config';
|
|
11
|
+
/**
|
|
12
|
+
* Optional logger interface for dependency injection
|
|
13
|
+
* If not provided, a no-op logger will be used
|
|
14
|
+
*/
|
|
15
|
+
export interface Logger {
|
|
16
|
+
debug(message: string, data?: Record<string, unknown>): void;
|
|
17
|
+
info(message: string, data?: Record<string, unknown>): void;
|
|
18
|
+
warn(message: string, data?: Record<string, unknown>): void;
|
|
19
|
+
error(message: string, data?: Record<string, unknown>): void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* No-op logger implementation (default when no logger provided)
|
|
23
|
+
*/
|
|
24
|
+
export declare const noOpLogger: Logger;
|
|
25
|
+
/**
|
|
26
|
+
* Connection types supported by Hazo Connect
|
|
27
|
+
*/
|
|
28
|
+
export type ConnectionType = 'postgrest' | 'supabase' | 'sqlite' | 'file';
|
|
29
|
+
/**
|
|
30
|
+
* Main configuration interface for Hazo Connect
|
|
31
|
+
* Logger is optional - defaults to no-op if not provided
|
|
32
|
+
*
|
|
33
|
+
* Can accept either:
|
|
34
|
+
* - Direct config object with type and provider-specific config
|
|
35
|
+
* - ConfigProvider instance (from hazo_config) for dependency injection
|
|
36
|
+
*/
|
|
37
|
+
export interface HazoConnectConfig {
|
|
38
|
+
type: ConnectionType;
|
|
39
|
+
logger?: Logger;
|
|
40
|
+
configProvider?: ConfigProvider;
|
|
41
|
+
[key: string]: any;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Query operator types supported by the query builder
|
|
45
|
+
*/
|
|
46
|
+
export type QueryOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'ilike' | 'in' | 'is' | 'or';
|
|
47
|
+
/**
|
|
48
|
+
* Where condition structure
|
|
49
|
+
*/
|
|
50
|
+
export interface WhereCondition {
|
|
51
|
+
field: string;
|
|
52
|
+
operator: QueryOperator;
|
|
53
|
+
value: any;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Order direction
|
|
57
|
+
*/
|
|
58
|
+
export type OrderDirection = 'asc' | 'desc';
|
|
59
|
+
/**
|
|
60
|
+
* Join type
|
|
61
|
+
*/
|
|
62
|
+
export type JoinType = 'inner' | 'left' | 'right';
|
|
63
|
+
/**
|
|
64
|
+
* Nested select structure for PostgREST syntax
|
|
65
|
+
*/
|
|
66
|
+
export interface NestedSelect {
|
|
67
|
+
table: string;
|
|
68
|
+
fields: string[];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Database adapter interface
|
|
72
|
+
* All adapters must implement this interface
|
|
73
|
+
*/
|
|
74
|
+
export interface HazoConnectAdapter {
|
|
75
|
+
/**
|
|
76
|
+
* Execute a query using the query builder
|
|
77
|
+
* @param builder - The query builder instance
|
|
78
|
+
* @param method - HTTP method (GET, POST, PUT, PATCH, DELETE)
|
|
79
|
+
* @param body - Request body for POST/PUT/PATCH
|
|
80
|
+
* @returns Promise with query results
|
|
81
|
+
*/
|
|
82
|
+
query(builder: any, // QueryBuilder type (avoid circular dependency)
|
|
83
|
+
method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', body?: any): Promise<any>;
|
|
84
|
+
/**
|
|
85
|
+
* Execute a raw query (for backward compatibility)
|
|
86
|
+
* @param endpoint - Raw endpoint string (e.g., '/table?id=eq.123')
|
|
87
|
+
* @param options - Request options
|
|
88
|
+
* @returns Promise with query results
|
|
89
|
+
*/
|
|
90
|
+
rawQuery(endpoint: string, options?: RequestInit): Promise<any>;
|
|
91
|
+
/**
|
|
92
|
+
* Get the adapter's configuration
|
|
93
|
+
* @returns Promise with adapter-specific config
|
|
94
|
+
*/
|
|
95
|
+
getConfig(): Promise<any>;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Standardized error response
|
|
99
|
+
* Note: code is a string (ErrorCode enum values are strings)
|
|
100
|
+
*/
|
|
101
|
+
export interface HazoConnectError {
|
|
102
|
+
code: string;
|
|
103
|
+
message: string;
|
|
104
|
+
statusCode?: number;
|
|
105
|
+
originalError?: any;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Error codes
|
|
109
|
+
*/
|
|
110
|
+
export declare enum ErrorCode {
|
|
111
|
+
CONFIG_ERROR = "HAZO_CONNECT_CONFIG_ERROR",
|
|
112
|
+
CONNECTION_FAILED = "HAZO_CONNECT_CONNECTION_FAILED",
|
|
113
|
+
QUERY_ERROR = "HAZO_CONNECT_QUERY_ERROR",
|
|
114
|
+
NOT_IMPLEMENTED = "HAZO_CONNECT_NOT_IMPLEMENTED",
|
|
115
|
+
VALIDATION_ERROR = "HAZO_CONNECT_VALIDATION_ERROR"
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +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;AAEzE;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,MAAM,GACN,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,IAAI,CAAA;AAER;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,aAAa,CAAA;IACvB,KAAK,EAAE,GAAG,CAAA;CACX;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAA;AAE3C;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;AAEjD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,KAAK,CACH,OAAO,EAAE,GAAG,EAAE,gDAAgD;IAC9D,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,EACpD,IAAI,CAAC,EAAE,GAAG,GACT,OAAO,CAAC,GAAG,CAAC,CAAA;IAEf;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAE/D;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,GAAG,CAAA;CACpB;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,YAAY,8BAA8B;IAC1C,iBAAiB,mCAAmC;IACpD,WAAW,6BAA6B;IACxC,eAAe,iCAAiC;IAChD,gBAAgB,kCAAkC;CACnD"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Purpose: Core TypeScript types and interfaces for Hazo Connect
|
|
4
|
+
*
|
|
5
|
+
* This file defines all types used throughout the hazo_connect component.
|
|
6
|
+
* Zero dependencies - only TypeScript types.
|
|
7
|
+
*
|
|
8
|
+
* Note: ConfigProvider is imported from hazo_config npm package.
|
|
9
|
+
* Components can work with either direct config or ConfigProvider.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ErrorCode = exports.noOpLogger = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* No-op logger implementation (default when no logger provided)
|
|
15
|
+
*/
|
|
16
|
+
exports.noOpLogger = {
|
|
17
|
+
debug: () => { },
|
|
18
|
+
info: () => { },
|
|
19
|
+
warn: () => { },
|
|
20
|
+
error: () => { }
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Error codes
|
|
24
|
+
*/
|
|
25
|
+
var ErrorCode;
|
|
26
|
+
(function (ErrorCode) {
|
|
27
|
+
ErrorCode["CONFIG_ERROR"] = "HAZO_CONNECT_CONFIG_ERROR";
|
|
28
|
+
ErrorCode["CONNECTION_FAILED"] = "HAZO_CONNECT_CONNECTION_FAILED";
|
|
29
|
+
ErrorCode["QUERY_ERROR"] = "HAZO_CONNECT_QUERY_ERROR";
|
|
30
|
+
ErrorCode["NOT_IMPLEMENTED"] = "HAZO_CONNECT_NOT_IMPLEMENTED";
|
|
31
|
+
ErrorCode["VALIDATION_ERROR"] = "HAZO_CONNECT_VALIDATION_ERROR";
|
|
32
|
+
})(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
|
|
33
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/lib/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAgBH;;GAEG;AACU,QAAA,UAAU,GAAW;IAChC,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;CAChB,CAAA;AA6GD;;GAEG;AACH,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,uDAA0C,CAAA;IAC1C,iEAAoD,CAAA;IACpD,qDAAwC,CAAA;IACxC,6DAAgD,CAAA;IAChD,+DAAkD,CAAA;AACpD,CAAC,EANW,SAAS,yBAAT,SAAS,QAMpB"}
|
package/package.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "hazo_connect",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Module to connect to the data store (postgres via postgrest, supabase, etc)",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"README.md"
|
|
10
|
+
],
|
|
11
|
+
"scripts": {
|
|
12
|
+
"dev": "next dev",
|
|
13
|
+
"build": "next build",
|
|
14
|
+
"build:lib": "tsc --project tsconfig.lib.json",
|
|
15
|
+
"start": "next start",
|
|
16
|
+
"lint": "next lint",
|
|
17
|
+
"storybook": "storybook dev -p 6006",
|
|
18
|
+
"build_storybook": "storybook build",
|
|
19
|
+
"demo:test": "cd apps/test_app && tsx main.ts",
|
|
20
|
+
"test": "jest",
|
|
21
|
+
"test:watch": "jest --watch",
|
|
22
|
+
"test:coverage": "jest --coverage",
|
|
23
|
+
"test:integration": "POSTGREST_INTEGRATION=true jest --runInBand tests/integration/postgrest.integration.test.ts",
|
|
24
|
+
"prepublishOnly": "npm run build:lib",
|
|
25
|
+
"postinstall": "patch-package"
|
|
26
|
+
},
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "git+https://github.com/pub12/hazo_connect.git"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"database",
|
|
33
|
+
"connection",
|
|
34
|
+
"postgrest"
|
|
35
|
+
],
|
|
36
|
+
"author": "Pubs Abayasiri",
|
|
37
|
+
"license": "MIT",
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/pub12/hazo_connect/issues"
|
|
40
|
+
},
|
|
41
|
+
"homepage": "https://github.com/pub12/hazo_connect#readme",
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"dotenv": "^16.4.5",
|
|
44
|
+
"hazo_config": "^1.3.0",
|
|
45
|
+
"next": "14.2.5",
|
|
46
|
+
"react": "18.3.1",
|
|
47
|
+
"react-dom": "18.3.1"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@storybook/addon-essentials": "^8.2.6",
|
|
51
|
+
"@storybook/addon-interactions": "^8.2.6",
|
|
52
|
+
"@storybook/experimental-nextjs-vite": "^8.6.14",
|
|
53
|
+
"@storybook/nextjs": "^8.2.6",
|
|
54
|
+
"@storybook/react": "^8.2.6",
|
|
55
|
+
"@storybook/test": "^8.2.6",
|
|
56
|
+
"@types/jest": "^30.0.0",
|
|
57
|
+
"@types/node": "^20.14.10",
|
|
58
|
+
"@types/react": "^18.3.3",
|
|
59
|
+
"@types/react-dom": "^18.3.0",
|
|
60
|
+
"autoprefixer": "^10.4.19",
|
|
61
|
+
"eslint": "^8.57.0",
|
|
62
|
+
"eslint-config-next": "14.2.5",
|
|
63
|
+
"jest": "^30.2.0",
|
|
64
|
+
"jest-environment-node": "^30.2.0",
|
|
65
|
+
"patch-package": "^8.0.1",
|
|
66
|
+
"postcss": "^8.4.39",
|
|
67
|
+
"storybook": "^8.2.6",
|
|
68
|
+
"tailwindcss": "^3.4.10",
|
|
69
|
+
"ts-jest": "^29.4.5",
|
|
70
|
+
"tsx": "^4.17.0",
|
|
71
|
+
"typescript": "^5.5.4"
|
|
72
|
+
}
|
|
73
|
+
}
|