hazo_connect 2.4.3 → 2.4.5
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 +67 -4
- package/dist/adapters/base-adapter.d.ts +2 -2
- package/dist/adapters/base-adapter.d.ts.map +1 -1
- package/dist/adapters/base-adapter.js +6 -6
- package/dist/adapters/base-adapter.js.map +1 -1
- package/dist/adapters/file-adapter.d.ts +3 -3
- package/dist/adapters/file-adapter.d.ts.map +1 -1
- package/dist/adapters/file-adapter.js +5 -5
- package/dist/adapters/file-adapter.js.map +1 -1
- package/dist/adapters/postgrest-adapter.d.ts +3 -3
- package/dist/adapters/postgrest-adapter.d.ts.map +1 -1
- package/dist/adapters/postgrest-adapter.js +9 -9
- package/dist/adapters/postgrest-adapter.js.map +1 -1
- package/dist/adapters/sqlite-adapter.d.ts +3 -3
- package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
- package/dist/adapters/sqlite-adapter.js +30 -30
- package/dist/adapters/sqlite-adapter.js.map +1 -1
- package/dist/adapters/supabase-adapter.d.ts +3 -3
- package/dist/adapters/supabase-adapter.d.ts.map +1 -1
- package/dist/adapters/supabase-adapter.js +14 -14
- package/dist/adapters/supabase-adapter.js.map +1 -1
- package/dist/default-logger.d.ts +2 -2
- package/dist/default-logger.d.ts.map +1 -1
- package/dist/default-logger.js +5 -5
- package/dist/default-logger.js.map +1 -1
- package/dist/factory.d.ts +1 -1
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +11 -11
- package/dist/factory.js.map +1 -1
- package/dist/helpers.d.ts +7 -2
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +17 -3
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/nextjs/api-route-helpers.d.ts +1 -1
- package/dist/nextjs/api-route-helpers.d.ts.map +1 -1
- package/dist/nextjs/api-route-helpers.js +3 -3
- package/dist/nextjs/api-route-helpers.js.map +1 -1
- package/dist/nextjs/index.d.ts +4 -4
- package/dist/nextjs/index.d.ts.map +1 -1
- package/dist/nextjs/index.js +11 -11
- package/dist/nextjs/index.js.map +1 -1
- package/dist/nextjs/server-only.d.ts +1 -1
- package/dist/nextjs/server-only.d.ts.map +1 -1
- package/dist/nextjs/server-only.js +1 -1
- package/dist/nextjs/server-only.js.map +1 -1
- package/dist/nextjs/setup-helpers.d.ts +1 -1
- package/dist/nextjs/setup-helpers.d.ts.map +1 -1
- package/dist/nextjs/setup-helpers.js +7 -7
- package/dist/nextjs/setup-helpers.js.map +1 -1
- package/dist/server/index.d.ts +20 -16
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +51 -38
- package/dist/server/index.js.map +1 -1
- package/dist/ui/index.d.ts +3 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +3 -1
- package/dist/ui/index.js.map +1 -1
- package/dist/utils/assertions.d.ts +31 -0
- package/dist/utils/assertions.d.ts.map +1 -0
- package/dist/utils/assertions.js +51 -0
- package/dist/utils/assertions.js.map +1 -0
- package/dist/utils/jsonb.d.ts +13 -0
- package/dist/utils/jsonb.d.ts.map +1 -0
- package/dist/utils/jsonb.js +30 -0
- package/dist/utils/jsonb.js.map +1 -0
- package/dist/utils/result.d.ts +36 -0
- package/dist/utils/result.d.ts.map +1 -0
- package/dist/utils/result.js +43 -0
- package/dist/utils/result.js.map +1 -0
- package/package.json +27 -5
- package/app/globals.css +0 -16
- package/app/layout.tsx +0 -26
- package/app/page.tsx +0 -20
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This file provides helper functions for easy setup and configuration
|
|
5
5
|
* of hazo_connect in Next.js projects, including singleton pattern support.
|
|
6
6
|
*/
|
|
7
|
-
import type { HazoConnectAdapter, HazoConnectConfig } from '../server';
|
|
7
|
+
import type { HazoConnectAdapter, HazoConnectConfig } from '../server/index.js';
|
|
8
8
|
/**
|
|
9
9
|
* Options for creating hazo_connect from environment variables
|
|
10
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/nextjs/setup-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"setup-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/nextjs/setup-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAoB/E;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAA;IAEnD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,+BAAoC,GAC5C,kBAAkB,CA6DpB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,+BAAoC,GAC5C,kBAAkB,CAwBpB"}
|
|
@@ -20,9 +20,9 @@ exports.createHazoConnectFromEnv = createHazoConnectFromEnv;
|
|
|
20
20
|
exports.getHazoConnectSingleton = getHazoConnectSingleton;
|
|
21
21
|
exports.resetHazoConnectSingleton = resetHazoConnectSingleton;
|
|
22
22
|
const path_1 = __importDefault(require("path"));
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
23
|
+
const index_js_1 = require("../server/index.js");
|
|
24
|
+
const admin_service_js_1 = require("../sqlite/admin-service.js");
|
|
25
|
+
const sqlite_adapter_js_1 = require("../adapters/sqlite-adapter.js");
|
|
26
26
|
/**
|
|
27
27
|
* Runtime guard to ensure this module is only used on the server
|
|
28
28
|
*/
|
|
@@ -75,7 +75,7 @@ function createHazoConnectFromEnv(options = {}) {
|
|
|
75
75
|
const wasmDirectory = process.env.HAZO_CONNECT_SQLITE_WASM_DIR
|
|
76
76
|
? path_1.default.resolve(process.env.HAZO_CONNECT_SQLITE_WASM_DIR)
|
|
77
77
|
: undefined;
|
|
78
|
-
return (0,
|
|
78
|
+
return (0, index_js_1.createHazoConnect)({
|
|
79
79
|
type: 'sqlite',
|
|
80
80
|
enable_admin_ui: enableAdminUi,
|
|
81
81
|
sqlite: {
|
|
@@ -92,7 +92,7 @@ function createHazoConnectFromEnv(options = {}) {
|
|
|
92
92
|
if (!baseUrl || !apiKey) {
|
|
93
93
|
throw new Error('PostgREST configuration requires POSTGREST_URL and POSTGREST_API_KEY environment variables');
|
|
94
94
|
}
|
|
95
|
-
return (0,
|
|
95
|
+
return (0, index_js_1.createHazoConnect)({
|
|
96
96
|
type: 'postgrest',
|
|
97
97
|
postgrest: {
|
|
98
98
|
base_url: baseUrl,
|
|
@@ -156,8 +156,8 @@ function getHazoConnectSingleton(options = {}) {
|
|
|
156
156
|
singletonConfig = configSignature;
|
|
157
157
|
// If this is a SQLite adapter, register it with the admin service
|
|
158
158
|
// so the admin UI uses the same instance
|
|
159
|
-
if (singletonInstance instanceof
|
|
160
|
-
(0,
|
|
159
|
+
if (singletonInstance instanceof sqlite_adapter_js_1.SqliteAdapter) {
|
|
160
|
+
(0, admin_service_js_1.registerSqliteAdapter)(singletonInstance);
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
return singletonInstance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-helpers.js","sourceRoot":"","sources":["../../src/lib/nextjs/setup-helpers.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,YAAY,CAAA;AAPZ;;;;;GAKG;;;;;AA2EH,4DA+DC;AAqCD,0DA0BC;AAOD,8DAGC;AA/MD,gDAAuB;AAEvB,
|
|
1
|
+
{"version":3,"file":"setup-helpers.js","sourceRoot":"","sources":["../../src/lib/nextjs/setup-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -4,20 +4,24 @@
|
|
|
4
4
|
* This file exports all server-side functionality with 'use server' directive
|
|
5
5
|
* and runtime guards to prevent client-side usage.
|
|
6
6
|
*/
|
|
7
|
-
export type { Logger, LogLevel, ConnectionType, HazoConnectConfig, HazoConnectAdapter, QueryOperator, WhereCondition, OrderDirection, JoinType, NestedSelect, HazoConnectError } from '../types';
|
|
8
|
-
export { ErrorCode, noOpLogger } from '../types';
|
|
9
|
-
export { defaultLogger, getDefaultLogger, createLoggerWithLevel } from '../default-logger';
|
|
10
|
-
export { createLogLevelWrapper, getDefaultLogLevel } from '../log-level-wrapper';
|
|
11
|
-
export { QueryBuilder } from '../query-builder';
|
|
12
|
-
export { createHazoConnect } from '../factory';
|
|
13
|
-
export { attachExecute, createCrudService, createTableQuery, executeQuery } from '../helpers';
|
|
14
|
-
export type { AutoIdConfig, CrudService, CrudServiceOptions, ExecutableQueryBuilder, QueryMethod } from '../helpers';
|
|
15
|
-
export { BaseAdapter } from '../adapters/base-adapter';
|
|
16
|
-
export { PostgrestAdapter } from '../adapters/postgrest-adapter';
|
|
17
|
-
export { SqliteAdapter } from '../adapters/sqlite-adapter';
|
|
18
|
-
export { SupabaseAdapter } from '../adapters/supabase-adapter';
|
|
19
|
-
export { FileAdapter } from '../adapters/file-adapter';
|
|
20
|
-
export { getSqliteAdminService, initializeAdminService, registerSqliteAdapter, clearRegisteredAdapter } from '../sqlite/admin-service';
|
|
21
|
-
export {
|
|
22
|
-
export
|
|
7
|
+
export type { Logger, LogLevel, ConnectionType, HazoConnectConfig, HazoConnectAdapter, QueryOperator, WhereCondition, OrderDirection, JoinType, NestedSelect, HazoConnectError } from '../types.js';
|
|
8
|
+
export { ErrorCode, noOpLogger } from '../types.js';
|
|
9
|
+
export { defaultLogger, getDefaultLogger, createLoggerWithLevel } from '../default-logger.js';
|
|
10
|
+
export { createLogLevelWrapper, getDefaultLogLevel } from '../log-level-wrapper.js';
|
|
11
|
+
export { QueryBuilder } from '../query-builder.js';
|
|
12
|
+
export { createHazoConnect } from '../factory.js';
|
|
13
|
+
export { attachExecute, createCrudService, createTableQuery, executeQuery } from '../helpers.js';
|
|
14
|
+
export type { AutoIdConfig, CrudService, CrudServiceOptions, ExecutableQueryBuilder, QueryMethod } from '../helpers.js';
|
|
15
|
+
export { BaseAdapter } from '../adapters/base-adapter.js';
|
|
16
|
+
export { PostgrestAdapter } from '../adapters/postgrest-adapter.js';
|
|
17
|
+
export { SqliteAdapter } from '../adapters/sqlite-adapter.js';
|
|
18
|
+
export { SupabaseAdapter } from '../adapters/supabase-adapter.js';
|
|
19
|
+
export { FileAdapter } from '../adapters/file-adapter.js';
|
|
20
|
+
export { getSqliteAdminService, initializeAdminService, registerSqliteAdapter, clearRegisteredAdapter } from '../sqlite/admin-service.js';
|
|
21
|
+
export { parseJsonbField } from '../utils/jsonb.js';
|
|
22
|
+
export { wrapResult, ok, err } from '../utils/result.js';
|
|
23
|
+
export type { DbResult } from '../utils/result.js';
|
|
24
|
+
export { AssertionError, assertNotEmpty, assertFound } from '../utils/assertions.js';
|
|
25
|
+
export { validateNextJsConfig, getConfigurationTips, type ValidationResult } from '../utils/config-validator.js';
|
|
26
|
+
export type { SqliteAdminService, SqliteTableType, TableSummary, TableSchema, TableColumn, TableForeignKey, RowPage, RowQueryOptions, SqliteWhereFilter, SqliteFilterOperator } from '../sqlite/admin-service.js';
|
|
23
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/server/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,YAAY,EACV,MAAM,EACN,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,gBAAgB,EACjB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/server/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,YAAY,EACV,MAAM,EACN,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,gBAAgB,EACjB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC7F,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGnF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAGjD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACb,MAAM,eAAe,CAAA;AACtB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACZ,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAGzD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AACxD,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGlD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGpF,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,eAAe,EACf,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,4BAA4B,CAAA"}
|
package/dist/server/index.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* and runtime guards to prevent client-side usage.
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.getConfigurationTips = exports.validateNextJsConfig = exports.clearRegisteredAdapter = exports.registerSqliteAdapter = exports.initializeAdminService = exports.getSqliteAdminService = exports.FileAdapter = exports.SupabaseAdapter = exports.SqliteAdapter = exports.PostgrestAdapter = exports.BaseAdapter = exports.executeQuery = exports.createTableQuery = exports.createCrudService = exports.attachExecute = exports.createHazoConnect = exports.QueryBuilder = exports.getDefaultLogLevel = exports.createLogLevelWrapper = exports.createLoggerWithLevel = exports.getDefaultLogger = exports.defaultLogger = exports.noOpLogger = exports.ErrorCode = void 0;
|
|
16
|
+
exports.getConfigurationTips = exports.validateNextJsConfig = exports.assertFound = exports.assertNotEmpty = exports.AssertionError = exports.err = exports.ok = exports.wrapResult = exports.parseJsonbField = exports.clearRegisteredAdapter = exports.registerSqliteAdapter = exports.initializeAdminService = exports.getSqliteAdminService = exports.FileAdapter = exports.SupabaseAdapter = exports.SqliteAdapter = exports.PostgrestAdapter = exports.BaseAdapter = exports.executeQuery = exports.createTableQuery = exports.createCrudService = exports.attachExecute = exports.createHazoConnect = exports.QueryBuilder = exports.getDefaultLogLevel = exports.createLogLevelWrapper = exports.createLoggerWithLevel = exports.getDefaultLogger = exports.defaultLogger = exports.noOpLogger = exports.ErrorCode = void 0;
|
|
17
17
|
/**
|
|
18
18
|
* Runtime guard to ensure this module is only used on the server
|
|
19
19
|
* @throws Error if called in a browser environment
|
|
@@ -26,47 +26,60 @@ function ensureServerOnly() {
|
|
|
26
26
|
}
|
|
27
27
|
// Check immediately when module loads
|
|
28
28
|
ensureServerOnly();
|
|
29
|
-
var
|
|
30
|
-
Object.defineProperty(exports, "ErrorCode", { enumerable: true, get: function () { return
|
|
31
|
-
Object.defineProperty(exports, "noOpLogger", { enumerable: true, get: function () { return
|
|
32
|
-
var
|
|
33
|
-
Object.defineProperty(exports, "defaultLogger", { enumerable: true, get: function () { return
|
|
34
|
-
Object.defineProperty(exports, "getDefaultLogger", { enumerable: true, get: function () { return
|
|
35
|
-
Object.defineProperty(exports, "createLoggerWithLevel", { enumerable: true, get: function () { return
|
|
36
|
-
var
|
|
37
|
-
Object.defineProperty(exports, "createLogLevelWrapper", { enumerable: true, get: function () { return
|
|
38
|
-
Object.defineProperty(exports, "getDefaultLogLevel", { enumerable: true, get: function () { return
|
|
29
|
+
var types_js_1 = require("../types.js");
|
|
30
|
+
Object.defineProperty(exports, "ErrorCode", { enumerable: true, get: function () { return types_js_1.ErrorCode; } });
|
|
31
|
+
Object.defineProperty(exports, "noOpLogger", { enumerable: true, get: function () { return types_js_1.noOpLogger; } });
|
|
32
|
+
var default_logger_js_1 = require("../default-logger.js");
|
|
33
|
+
Object.defineProperty(exports, "defaultLogger", { enumerable: true, get: function () { return default_logger_js_1.defaultLogger; } });
|
|
34
|
+
Object.defineProperty(exports, "getDefaultLogger", { enumerable: true, get: function () { return default_logger_js_1.getDefaultLogger; } });
|
|
35
|
+
Object.defineProperty(exports, "createLoggerWithLevel", { enumerable: true, get: function () { return default_logger_js_1.createLoggerWithLevel; } });
|
|
36
|
+
var log_level_wrapper_js_1 = require("../log-level-wrapper.js");
|
|
37
|
+
Object.defineProperty(exports, "createLogLevelWrapper", { enumerable: true, get: function () { return log_level_wrapper_js_1.createLogLevelWrapper; } });
|
|
38
|
+
Object.defineProperty(exports, "getDefaultLogLevel", { enumerable: true, get: function () { return log_level_wrapper_js_1.getDefaultLogLevel; } });
|
|
39
39
|
// Export query builder
|
|
40
|
-
var
|
|
41
|
-
Object.defineProperty(exports, "QueryBuilder", { enumerable: true, get: function () { return
|
|
40
|
+
var query_builder_js_1 = require("../query-builder.js");
|
|
41
|
+
Object.defineProperty(exports, "QueryBuilder", { enumerable: true, get: function () { return query_builder_js_1.QueryBuilder; } });
|
|
42
42
|
// Export factory
|
|
43
|
-
var
|
|
44
|
-
Object.defineProperty(exports, "createHazoConnect", { enumerable: true, get: function () { return
|
|
43
|
+
var factory_js_1 = require("../factory.js");
|
|
44
|
+
Object.defineProperty(exports, "createHazoConnect", { enumerable: true, get: function () { return factory_js_1.createHazoConnect; } });
|
|
45
45
|
// Export helpers
|
|
46
|
-
var
|
|
47
|
-
Object.defineProperty(exports, "attachExecute", { enumerable: true, get: function () { return
|
|
48
|
-
Object.defineProperty(exports, "createCrudService", { enumerable: true, get: function () { return
|
|
49
|
-
Object.defineProperty(exports, "createTableQuery", { enumerable: true, get: function () { return
|
|
50
|
-
Object.defineProperty(exports, "executeQuery", { enumerable: true, get: function () { return
|
|
46
|
+
var helpers_js_1 = require("../helpers.js");
|
|
47
|
+
Object.defineProperty(exports, "attachExecute", { enumerable: true, get: function () { return helpers_js_1.attachExecute; } });
|
|
48
|
+
Object.defineProperty(exports, "createCrudService", { enumerable: true, get: function () { return helpers_js_1.createCrudService; } });
|
|
49
|
+
Object.defineProperty(exports, "createTableQuery", { enumerable: true, get: function () { return helpers_js_1.createTableQuery; } });
|
|
50
|
+
Object.defineProperty(exports, "executeQuery", { enumerable: true, get: function () { return helpers_js_1.executeQuery; } });
|
|
51
51
|
// Export adapters (for advanced usage)
|
|
52
|
-
var
|
|
53
|
-
Object.defineProperty(exports, "BaseAdapter", { enumerable: true, get: function () { return
|
|
54
|
-
var
|
|
55
|
-
Object.defineProperty(exports, "PostgrestAdapter", { enumerable: true, get: function () { return
|
|
56
|
-
var
|
|
57
|
-
Object.defineProperty(exports, "SqliteAdapter", { enumerable: true, get: function () { return
|
|
58
|
-
var
|
|
59
|
-
Object.defineProperty(exports, "SupabaseAdapter", { enumerable: true, get: function () { return
|
|
60
|
-
var
|
|
61
|
-
Object.defineProperty(exports, "FileAdapter", { enumerable: true, get: function () { return
|
|
52
|
+
var base_adapter_js_1 = require("../adapters/base-adapter.js");
|
|
53
|
+
Object.defineProperty(exports, "BaseAdapter", { enumerable: true, get: function () { return base_adapter_js_1.BaseAdapter; } });
|
|
54
|
+
var postgrest_adapter_js_1 = require("../adapters/postgrest-adapter.js");
|
|
55
|
+
Object.defineProperty(exports, "PostgrestAdapter", { enumerable: true, get: function () { return postgrest_adapter_js_1.PostgrestAdapter; } });
|
|
56
|
+
var sqlite_adapter_js_1 = require("../adapters/sqlite-adapter.js");
|
|
57
|
+
Object.defineProperty(exports, "SqliteAdapter", { enumerable: true, get: function () { return sqlite_adapter_js_1.SqliteAdapter; } });
|
|
58
|
+
var supabase_adapter_js_1 = require("../adapters/supabase-adapter.js");
|
|
59
|
+
Object.defineProperty(exports, "SupabaseAdapter", { enumerable: true, get: function () { return supabase_adapter_js_1.SupabaseAdapter; } });
|
|
60
|
+
var file_adapter_js_1 = require("../adapters/file-adapter.js");
|
|
61
|
+
Object.defineProperty(exports, "FileAdapter", { enumerable: true, get: function () { return file_adapter_js_1.FileAdapter; } });
|
|
62
62
|
// Export SQLite admin helpers
|
|
63
|
-
var
|
|
64
|
-
Object.defineProperty(exports, "getSqliteAdminService", { enumerable: true, get: function () { return
|
|
65
|
-
Object.defineProperty(exports, "initializeAdminService", { enumerable: true, get: function () { return
|
|
66
|
-
Object.defineProperty(exports, "registerSqliteAdapter", { enumerable: true, get: function () { return
|
|
67
|
-
Object.defineProperty(exports, "clearRegisteredAdapter", { enumerable: true, get: function () { return
|
|
63
|
+
var admin_service_js_1 = require("../sqlite/admin-service.js");
|
|
64
|
+
Object.defineProperty(exports, "getSqliteAdminService", { enumerable: true, get: function () { return admin_service_js_1.getSqliteAdminService; } });
|
|
65
|
+
Object.defineProperty(exports, "initializeAdminService", { enumerable: true, get: function () { return admin_service_js_1.initializeAdminService; } });
|
|
66
|
+
Object.defineProperty(exports, "registerSqliteAdapter", { enumerable: true, get: function () { return admin_service_js_1.registerSqliteAdapter; } });
|
|
67
|
+
Object.defineProperty(exports, "clearRegisteredAdapter", { enumerable: true, get: function () { return admin_service_js_1.clearRegisteredAdapter; } });
|
|
68
|
+
// Export JSONB parsing utility (pure function, no Node.js deps)
|
|
69
|
+
var jsonb_js_1 = require("../utils/jsonb.js");
|
|
70
|
+
Object.defineProperty(exports, "parseJsonbField", { enumerable: true, get: function () { return jsonb_js_1.parseJsonbField; } });
|
|
71
|
+
// Export result type utilities
|
|
72
|
+
var result_js_1 = require("../utils/result.js");
|
|
73
|
+
Object.defineProperty(exports, "wrapResult", { enumerable: true, get: function () { return result_js_1.wrapResult; } });
|
|
74
|
+
Object.defineProperty(exports, "ok", { enumerable: true, get: function () { return result_js_1.ok; } });
|
|
75
|
+
Object.defineProperty(exports, "err", { enumerable: true, get: function () { return result_js_1.err; } });
|
|
76
|
+
// Export assertion utilities
|
|
77
|
+
var assertions_js_1 = require("../utils/assertions.js");
|
|
78
|
+
Object.defineProperty(exports, "AssertionError", { enumerable: true, get: function () { return assertions_js_1.AssertionError; } });
|
|
79
|
+
Object.defineProperty(exports, "assertNotEmpty", { enumerable: true, get: function () { return assertions_js_1.assertNotEmpty; } });
|
|
80
|
+
Object.defineProperty(exports, "assertFound", { enumerable: true, get: function () { return assertions_js_1.assertFound; } });
|
|
68
81
|
// Export configuration validation utilities
|
|
69
|
-
var
|
|
70
|
-
Object.defineProperty(exports, "validateNextJsConfig", { enumerable: true, get: function () { return
|
|
71
|
-
Object.defineProperty(exports, "getConfigurationTips", { enumerable: true, get: function () { return
|
|
82
|
+
var config_validator_js_1 = require("../utils/config-validator.js");
|
|
83
|
+
Object.defineProperty(exports, "validateNextJsConfig", { enumerable: true, get: function () { return config_validator_js_1.validateNextJsConfig; } });
|
|
84
|
+
Object.defineProperty(exports, "getConfigurationTips", { enumerable: true, get: function () { return config_validator_js_1.getConfigurationTips; } });
|
|
72
85
|
//# sourceMappingURL=index.js.map
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/server/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,YAAY,CAAA;AAPZ;;;;;GAKG;;;AAIH;;;GAGG;AACH,SAAS,gBAAgB;IACvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,sDAAsD;YACtD,+EAA+E,CAChF,CAAA;IACH,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,gBAAgB,EAAE,CAAA;AAiBlB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/server/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,YAAY,CAAA;AAPZ;;;;;GAKG;;;AAIH;;;GAGG;AACH,SAAS,gBAAgB;IACvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,sDAAsD;YACtD,+EAA+E,CAChF,CAAA;IACH,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,gBAAgB,EAAE,CAAA;AAiBlB,wCAAmD;AAA1C,qGAAA,SAAS,OAAA;AAAE,sGAAA,UAAU,OAAA;AAC9B,0DAA6F;AAApF,kHAAA,aAAa,OAAA;AAAE,qHAAA,gBAAgB,OAAA;AAAE,0HAAA,qBAAqB,OAAA;AAC/D,gEAAmF;AAA1E,6HAAA,qBAAqB,OAAA;AAAE,0HAAA,kBAAkB,OAAA;AAElD,uBAAuB;AACvB,wDAAkD;AAAzC,gHAAA,YAAY,OAAA;AAErB,iBAAiB;AACjB,4CAAiD;AAAxC,+GAAA,iBAAiB,OAAA;AAE1B,iBAAiB;AACjB,4CAKsB;AAJpB,2GAAA,aAAa,OAAA;AACb,+GAAA,iBAAiB,OAAA;AACjB,8GAAA,gBAAgB,OAAA;AAChB,0GAAA,YAAY,OAAA;AAUd,uCAAuC;AACvC,+DAAyD;AAAhD,8GAAA,WAAW,OAAA;AACpB,yEAAmE;AAA1D,wHAAA,gBAAgB,OAAA;AACzB,mEAA6D;AAApD,kHAAA,aAAa,OAAA;AACtB,uEAAiE;AAAxD,sHAAA,eAAe,OAAA;AACxB,+DAAyD;AAAhD,8GAAA,WAAW,OAAA;AAEpB,8BAA8B;AAC9B,+DAKmC;AAJjC,yHAAA,qBAAqB,OAAA;AACrB,0HAAA,sBAAsB,OAAA;AACtB,yHAAA,qBAAqB,OAAA;AACrB,0HAAA,sBAAsB,OAAA;AAGxB,gEAAgE;AAChE,8CAAmD;AAA1C,2GAAA,eAAe,OAAA;AAExB,+BAA+B;AAC/B,gDAAwD;AAA/C,uGAAA,UAAU,OAAA;AAAE,+FAAA,EAAE,OAAA;AAAE,gGAAA,GAAG,OAAA;AAG5B,6BAA6B;AAC7B,wDAAoF;AAA3E,+GAAA,cAAc,OAAA;AAAE,+GAAA,cAAc,OAAA;AAAE,4GAAA,WAAW,OAAA;AAEpD,4CAA4C;AAC5C,oEAIqC;AAHnC,2HAAA,oBAAoB,OAAA;AACpB,2HAAA,oBAAoB,OAAA"}
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
* in client components. Server-only functionality is NOT exported here.
|
|
6
6
|
*/
|
|
7
7
|
export type { SqliteTableType, TableSummary, TableSchema, TableColumn, TableForeignKey, RowPage, RowQueryOptions, SqliteWhereFilter, SqliteFilterOperator } from '../sqlite/admin-service.js';
|
|
8
|
-
export type { Logger, LogLevel, ConnectionType, HazoConnectConfig, HazoConnectAdapter, QueryOperator, WhereCondition, OrderDirection, JoinType, NestedSelect, HazoConnectError } from '../types';
|
|
8
|
+
export type { Logger, LogLevel, ConnectionType, HazoConnectConfig, HazoConnectAdapter, QueryOperator, WhereCondition, OrderDirection, JoinType, NestedSelect, HazoConnectError } from '../types.js';
|
|
9
9
|
export type { ErrorCode } from '../types.js';
|
|
10
|
+
export type { DbResult } from '../utils/result.js';
|
|
11
|
+
export { parseJsonbField } from '../utils/jsonb.js';
|
|
10
12
|
export { default as SqliteAdminClient } from './components/sqlite-admin-client.js';
|
|
11
13
|
export type { SqliteAdminClientProps } from './components/sqlite-admin-client.js';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/ui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,eAAe,EACf,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,4BAA4B,CAAA;AAGnC,YAAY,EACV,MAAM,EACN,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,gBAAgB,EACjB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,eAAe,EACf,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,4BAA4B,CAAA;AAGnC,YAAY,EACV,MAAM,EACN,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,gBAAgB,EACjB,MAAM,aAAa,CAAA;AAEpB,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAG5C,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAClF,YAAY,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA"}
|
package/dist/ui/index.js
CHANGED
|
@@ -9,7 +9,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
9
9
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.SqliteAdminClient = void 0;
|
|
12
|
+
exports.SqliteAdminClient = exports.parseJsonbField = void 0;
|
|
13
|
+
var jsonb_js_1 = require("../utils/jsonb.js");
|
|
14
|
+
Object.defineProperty(exports, "parseJsonbField", { enumerable: true, get: function () { return jsonb_js_1.parseJsonbField; } });
|
|
13
15
|
// Export React components for SQLite Admin UI
|
|
14
16
|
var sqlite_admin_client_js_1 = require("./components/sqlite-admin-client.js");
|
|
15
17
|
Object.defineProperty(exports, "SqliteAdminClient", { enumerable: true, get: function () { return __importDefault(sqlite_admin_client_js_1).default; } });
|
package/dist/ui/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/ui/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/ui/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAkCH,8CAAmD;AAA1C,2GAAA,eAAe,OAAA;AAExB,8CAA8C;AAC9C,8EAAkF;AAAzE,4IAAA,OAAO,OAAqB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Purpose: Guard-clause assertion functions for database query results
|
|
3
|
+
*
|
|
4
|
+
* Throw HTTP-friendly errors when expected data is missing.
|
|
5
|
+
* Compose with wrapResult for automatic error status propagation.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Error thrown when an assertion fails. Carries HTTP status and error code.
|
|
9
|
+
*/
|
|
10
|
+
export declare class AssertionError extends Error {
|
|
11
|
+
code: string;
|
|
12
|
+
statusCode: number;
|
|
13
|
+
constructor(message: string, statusCode: number, code: string);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Assert that a query result array is not empty.
|
|
17
|
+
* @param result - Array of results
|
|
18
|
+
* @param entity_name - Name of the entity for error messages
|
|
19
|
+
* @returns The same array (narrowed to non-empty)
|
|
20
|
+
* @throws AssertionError with 404 status if empty
|
|
21
|
+
*/
|
|
22
|
+
export declare function assertNotEmpty<T>(result: T[], entity_name: string): T[];
|
|
23
|
+
/**
|
|
24
|
+
* Assert that a value is not null or undefined.
|
|
25
|
+
* @param result - Value to check
|
|
26
|
+
* @param entity_name - Name of the entity for error messages
|
|
27
|
+
* @returns The same value (narrowed to non-nullable)
|
|
28
|
+
* @throws AssertionError with 404 status if null/undefined
|
|
29
|
+
*/
|
|
30
|
+
export declare function assertFound<T>(result: T | null | undefined, entity_name: string): T;
|
|
31
|
+
//# sourceMappingURL=assertions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../src/lib/utils/assertions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;gBAEN,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAM9D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE,CASvE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,CASnF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Purpose: Guard-clause assertion functions for database query results
|
|
4
|
+
*
|
|
5
|
+
* Throw HTTP-friendly errors when expected data is missing.
|
|
6
|
+
* Compose with wrapResult for automatic error status propagation.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.AssertionError = void 0;
|
|
10
|
+
exports.assertNotEmpty = assertNotEmpty;
|
|
11
|
+
exports.assertFound = assertFound;
|
|
12
|
+
const types_js_1 = require("../types.js");
|
|
13
|
+
/**
|
|
14
|
+
* Error thrown when an assertion fails. Carries HTTP status and error code.
|
|
15
|
+
*/
|
|
16
|
+
class AssertionError extends Error {
|
|
17
|
+
constructor(message, statusCode, code) {
|
|
18
|
+
super(message);
|
|
19
|
+
this.name = 'AssertionError';
|
|
20
|
+
this.code = code;
|
|
21
|
+
this.statusCode = statusCode;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.AssertionError = AssertionError;
|
|
25
|
+
/**
|
|
26
|
+
* Assert that a query result array is not empty.
|
|
27
|
+
* @param result - Array of results
|
|
28
|
+
* @param entity_name - Name of the entity for error messages
|
|
29
|
+
* @returns The same array (narrowed to non-empty)
|
|
30
|
+
* @throws AssertionError with 404 status if empty
|
|
31
|
+
*/
|
|
32
|
+
function assertNotEmpty(result, entity_name) {
|
|
33
|
+
if (result.length === 0) {
|
|
34
|
+
throw new AssertionError(`No ${entity_name} found`, 404, types_js_1.ErrorCode.VALIDATION_ERROR);
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Assert that a value is not null or undefined.
|
|
40
|
+
* @param result - Value to check
|
|
41
|
+
* @param entity_name - Name of the entity for error messages
|
|
42
|
+
* @returns The same value (narrowed to non-nullable)
|
|
43
|
+
* @throws AssertionError with 404 status if null/undefined
|
|
44
|
+
*/
|
|
45
|
+
function assertFound(result, entity_name) {
|
|
46
|
+
if (result === null || result === undefined) {
|
|
47
|
+
throw new AssertionError(`${entity_name} not found`, 404, types_js_1.ErrorCode.VALIDATION_ERROR);
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=assertions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../src/lib/utils/assertions.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA0BH,wCASC;AASD,kCASC;AAnDD,0CAAuC;AAEvC;;GAEG;AACH,MAAa,cAAe,SAAQ,KAAK;IAIvC,YAAY,OAAe,EAAE,UAAkB,EAAE,IAAY;QAC3D,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;CACF;AAVD,wCAUC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAAI,MAAW,EAAE,WAAmB;IAChE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,cAAc,CACtB,MAAM,WAAW,QAAQ,EACzB,GAAG,EACH,oBAAS,CAAC,gBAAgB,CAC3B,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAI,MAA4B,EAAE,WAAmB;IAC9E,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,IAAI,cAAc,CACtB,GAAG,WAAW,YAAY,EAC1B,GAAG,EACH,oBAAS,CAAC,gBAAgB,CAC3B,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Purpose: JSONB field parsing utility for PostgREST responses
|
|
3
|
+
*
|
|
4
|
+
* PostgREST returns JSONB columns as strings or objects depending on context.
|
|
5
|
+
* This normalizes the value to a typed object or null.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Parse a JSONB field value that may be a string or already-parsed object.
|
|
9
|
+
* @param value - Raw value from PostgREST response
|
|
10
|
+
* @returns Parsed object or null on failure
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseJsonbField<T>(value: unknown): T | null;
|
|
13
|
+
//# sourceMappingURL=jsonb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonb.d.ts","sourceRoot":"","sources":["../../src/lib/utils/jsonb.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,CAc3D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Purpose: JSONB field parsing utility for PostgREST responses
|
|
4
|
+
*
|
|
5
|
+
* PostgREST returns JSONB columns as strings or objects depending on context.
|
|
6
|
+
* This normalizes the value to a typed object or null.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.parseJsonbField = parseJsonbField;
|
|
10
|
+
/**
|
|
11
|
+
* Parse a JSONB field value that may be a string or already-parsed object.
|
|
12
|
+
* @param value - Raw value from PostgREST response
|
|
13
|
+
* @returns Parsed object or null on failure
|
|
14
|
+
*/
|
|
15
|
+
function parseJsonbField(value) {
|
|
16
|
+
if (value === null || value === undefined)
|
|
17
|
+
return null;
|
|
18
|
+
if (typeof value === 'object')
|
|
19
|
+
return value;
|
|
20
|
+
if (typeof value === 'string') {
|
|
21
|
+
try {
|
|
22
|
+
return JSON.parse(value);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=jsonb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonb.js","sourceRoot":"","sources":["../../src/lib/utils/jsonb.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAOH,0CAcC;AAnBD;;;;GAIG;AACH,SAAgB,eAAe,CAAI,KAAc;IAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAEtD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAU,CAAA;IAEhD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM,CAAA;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Purpose: Discriminated union result type for database operations
|
|
3
|
+
*
|
|
4
|
+
* Provides a consistent error-handling pattern without try/catch boilerplate.
|
|
5
|
+
* Integrates with HazoConnectError-shaped objects to extract status codes.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Discriminated union for database operation results.
|
|
9
|
+
*/
|
|
10
|
+
export type DbResult<T> = {
|
|
11
|
+
ok: true;
|
|
12
|
+
data: T;
|
|
13
|
+
} | {
|
|
14
|
+
ok: false;
|
|
15
|
+
error: {
|
|
16
|
+
message: string;
|
|
17
|
+
code?: string;
|
|
18
|
+
};
|
|
19
|
+
status: number;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Wrap an async operation in a DbResult, catching errors automatically.
|
|
23
|
+
* @param fn - Async function to execute
|
|
24
|
+
* @param default_status - Default HTTP status on error (default: 500)
|
|
25
|
+
* @returns DbResult with data or error
|
|
26
|
+
*/
|
|
27
|
+
export declare function wrapResult<T>(fn: () => Promise<T>, default_status?: number): Promise<DbResult<T>>;
|
|
28
|
+
/**
|
|
29
|
+
* Create a successful DbResult.
|
|
30
|
+
*/
|
|
31
|
+
export declare function ok<T>(data: T): DbResult<T>;
|
|
32
|
+
/**
|
|
33
|
+
* Create a failed DbResult.
|
|
34
|
+
*/
|
|
35
|
+
export declare function err<T = never>(message: string, status?: number, code?: string): DbResult<T>;
|
|
36
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/lib/utils/result.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAClB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GACrB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5E;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,cAAc,SAAM,GACnB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAWtB;AAED;;GAEG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAE1C;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAExF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Purpose: Discriminated union result type for database operations
|
|
4
|
+
*
|
|
5
|
+
* Provides a consistent error-handling pattern without try/catch boilerplate.
|
|
6
|
+
* Integrates with HazoConnectError-shaped objects to extract status codes.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.wrapResult = wrapResult;
|
|
10
|
+
exports.ok = ok;
|
|
11
|
+
exports.err = err;
|
|
12
|
+
/**
|
|
13
|
+
* Wrap an async operation in a DbResult, catching errors automatically.
|
|
14
|
+
* @param fn - Async function to execute
|
|
15
|
+
* @param default_status - Default HTTP status on error (default: 500)
|
|
16
|
+
* @returns DbResult with data or error
|
|
17
|
+
*/
|
|
18
|
+
async function wrapResult(fn, default_status = 500) {
|
|
19
|
+
try {
|
|
20
|
+
const data = await fn();
|
|
21
|
+
return { ok: true, data };
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
const error_obj = e;
|
|
25
|
+
const message = error_obj?.message || 'Unknown error';
|
|
26
|
+
const code = error_obj?.code;
|
|
27
|
+
const status = error_obj?.statusCode || default_status;
|
|
28
|
+
return { ok: false, error: { message, code }, status };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create a successful DbResult.
|
|
33
|
+
*/
|
|
34
|
+
function ok(data) {
|
|
35
|
+
return { ok: true, data };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Create a failed DbResult.
|
|
39
|
+
*/
|
|
40
|
+
function err(message, status = 500, code) {
|
|
41
|
+
return { ok: false, error: { message, code }, status };
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/lib/utils/result.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAeH,gCAcC;AAKD,gBAEC;AAKD,kBAEC;AAlCD;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAC9B,EAAoB,EACpB,cAAc,GAAG,GAAG;IAEpB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,EAAE,CAAA;QACvB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC3B,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,CAAwC,CAAA;QAC1D,MAAM,OAAO,GAAI,SAAS,EAAE,OAAkB,IAAI,eAAe,CAAA;QACjE,MAAM,IAAI,GAAG,SAAS,EAAE,IAA0B,CAAA;QAClD,MAAM,MAAM,GAAI,SAAS,EAAE,UAAqB,IAAI,cAAc,CAAA;QAClE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAA;IACxD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,EAAE,CAAI,IAAO;IAC3B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAC3B,CAAC;AAED;;GAEG;AACH,SAAgB,GAAG,CAAY,OAAe,EAAE,MAAM,GAAG,GAAG,EAAE,IAAa;IACzE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAA;AACxD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hazo_connect",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.5",
|
|
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
|
-
"app",
|
|
9
|
+
"app/hazo_connect",
|
|
10
10
|
"scripts",
|
|
11
11
|
"docs",
|
|
12
12
|
"README.md"
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"scripts": {
|
|
40
40
|
"dev": "next dev",
|
|
41
41
|
"build": "next build",
|
|
42
|
-
"build:lib": "tsc --project tsconfig.
|
|
42
|
+
"build:lib": "tsc --project tsconfig.build.json",
|
|
43
43
|
"start": "next start",
|
|
44
44
|
"lint": "next lint",
|
|
45
45
|
"storybook": "storybook dev -p 6006",
|
|
@@ -73,18 +73,40 @@
|
|
|
73
73
|
"homepage": "https://github.com/pub12/hazo_connect#readme",
|
|
74
74
|
"dependencies": {
|
|
75
75
|
"dotenv": "^16.4.5",
|
|
76
|
-
"hazo_config": "^1.3.0",
|
|
77
|
-
"hazo_logs": "^1.0.5",
|
|
78
76
|
"sql.js": "^1.13.0"
|
|
79
77
|
},
|
|
80
78
|
"peerDependencies": {
|
|
79
|
+
"hazo_config": ">=1.3.0",
|
|
80
|
+
"hazo_logs": ">=1.0.5",
|
|
81
81
|
"lucide-react": "^0.553.0",
|
|
82
82
|
"next": ">=14.0.0",
|
|
83
83
|
"react": ">=18.0.0",
|
|
84
84
|
"react-dom": ">=18.0.0",
|
|
85
85
|
"sonner": "^2.0.7"
|
|
86
86
|
},
|
|
87
|
+
"peerDependenciesMeta": {
|
|
88
|
+
"hazo_config": {
|
|
89
|
+
"optional": true
|
|
90
|
+
},
|
|
91
|
+
"lucide-react": {
|
|
92
|
+
"optional": true
|
|
93
|
+
},
|
|
94
|
+
"next": {
|
|
95
|
+
"optional": true
|
|
96
|
+
},
|
|
97
|
+
"react": {
|
|
98
|
+
"optional": true
|
|
99
|
+
},
|
|
100
|
+
"react-dom": {
|
|
101
|
+
"optional": true
|
|
102
|
+
},
|
|
103
|
+
"sonner": {
|
|
104
|
+
"optional": true
|
|
105
|
+
}
|
|
106
|
+
},
|
|
87
107
|
"devDependencies": {
|
|
108
|
+
"hazo_config": "^1.3.0",
|
|
109
|
+
"hazo_logs": "^1.0.5",
|
|
88
110
|
"@storybook/addon-essentials": "^8.2.6",
|
|
89
111
|
"@storybook/addon-interactions": "^8.2.6",
|
|
90
112
|
"@storybook/experimental-nextjs-vite": "^8.6.14",
|
package/app/globals.css
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/* globals.css defines base Tailwind layers and root-level tokens for hazo_connect. */
|
|
2
|
-
@tailwind base;
|
|
3
|
-
@tailwind components;
|
|
4
|
-
@tailwind utilities;
|
|
5
|
-
|
|
6
|
-
/* base_layer sets foundational styles shared across the library. */
|
|
7
|
-
:root {
|
|
8
|
-
color-scheme: light;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/* body_reset normalizes default margins and background color. */
|
|
12
|
-
body {
|
|
13
|
-
margin: 0;
|
|
14
|
-
background-color: #f8fafc;
|
|
15
|
-
}
|
|
16
|
-
|