hazo_connect 2.4.4 → 2.4.6

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 (67) hide show
  1. package/README.md +55 -4
  2. package/dist/adapters/base-adapter.d.ts +2 -2
  3. package/dist/adapters/base-adapter.d.ts.map +1 -1
  4. package/dist/adapters/base-adapter.js +6 -6
  5. package/dist/adapters/base-adapter.js.map +1 -1
  6. package/dist/adapters/file-adapter.d.ts +3 -3
  7. package/dist/adapters/file-adapter.d.ts.map +1 -1
  8. package/dist/adapters/file-adapter.js +5 -5
  9. package/dist/adapters/file-adapter.js.map +1 -1
  10. package/dist/adapters/postgrest-adapter.d.ts +3 -3
  11. package/dist/adapters/postgrest-adapter.d.ts.map +1 -1
  12. package/dist/adapters/postgrest-adapter.js +9 -9
  13. package/dist/adapters/postgrest-adapter.js.map +1 -1
  14. package/dist/adapters/sqlite-adapter.d.ts +3 -3
  15. package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
  16. package/dist/adapters/sqlite-adapter.js +30 -30
  17. package/dist/adapters/sqlite-adapter.js.map +1 -1
  18. package/dist/adapters/supabase-adapter.d.ts +3 -3
  19. package/dist/adapters/supabase-adapter.d.ts.map +1 -1
  20. package/dist/adapters/supabase-adapter.js +14 -14
  21. package/dist/adapters/supabase-adapter.js.map +1 -1
  22. package/dist/default-logger.d.ts +2 -2
  23. package/dist/default-logger.d.ts.map +1 -1
  24. package/dist/default-logger.js +5 -5
  25. package/dist/default-logger.js.map +1 -1
  26. package/dist/factory.d.ts +1 -1
  27. package/dist/factory.d.ts.map +1 -1
  28. package/dist/factory.js +11 -11
  29. package/dist/factory.js.map +1 -1
  30. package/dist/helpers.d.ts +2 -2
  31. package/dist/helpers.d.ts.map +1 -1
  32. package/dist/helpers.js +69 -13
  33. package/dist/helpers.js.map +1 -1
  34. package/dist/index.d.ts +2 -2
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/nextjs/api-route-helpers.d.ts +1 -1
  37. package/dist/nextjs/api-route-helpers.d.ts.map +1 -1
  38. package/dist/nextjs/api-route-helpers.js +3 -3
  39. package/dist/nextjs/api-route-helpers.js.map +1 -1
  40. package/dist/nextjs/index.d.ts +4 -4
  41. package/dist/nextjs/index.d.ts.map +1 -1
  42. package/dist/nextjs/index.js +11 -11
  43. package/dist/nextjs/index.js.map +1 -1
  44. package/dist/nextjs/server-only.d.ts +1 -1
  45. package/dist/nextjs/server-only.d.ts.map +1 -1
  46. package/dist/nextjs/server-only.js +1 -1
  47. package/dist/nextjs/server-only.js.map +1 -1
  48. package/dist/nextjs/setup-helpers.d.ts +1 -1
  49. package/dist/nextjs/setup-helpers.d.ts.map +1 -1
  50. package/dist/nextjs/setup-helpers.js +7 -7
  51. package/dist/nextjs/setup-helpers.js.map +1 -1
  52. package/dist/server/index.d.ts +20 -20
  53. package/dist/server/index.d.ts.map +1 -1
  54. package/dist/server/index.js +47 -47
  55. package/dist/server/index.js.map +1 -1
  56. package/dist/ui/index.d.ts +3 -3
  57. package/dist/ui/index.d.ts.map +1 -1
  58. package/dist/ui/index.js +2 -2
  59. package/dist/ui/index.js.map +1 -1
  60. package/dist/utils/assertions.js +3 -3
  61. package/dist/utils/assertions.js.map +1 -1
  62. package/package.json +30 -5
  63. package/app/hazo_connect/api/sqlite/data/route.ts +0 -197
  64. package/app/hazo_connect/api/sqlite/schema/route.ts +0 -34
  65. package/app/hazo_connect/api/sqlite/tables/route.ts +0 -25
  66. package/app/hazo_connect/middleware.ts +0 -40
  67. package/app/hazo_connect/sqlite_admin/page.tsx +0 -29
@@ -4,5 +4,5 @@
4
4
  * This file provides server-only utilities that re-export hazo_connect/server
5
5
  * functionality with additional Next.js-specific helpers.
6
6
  */
7
- export * from '../server';
7
+ export * from '../server/index.js';
8
8
  //# sourceMappingURL=server-only.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-only.d.ts","sourceRoot":"","sources":["../../src/lib/nextjs/server-only.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"server-only.d.ts","sourceRoot":"","sources":["../../src/lib/nextjs/server-only.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,cAAc,oBAAoB,CAAA"}
@@ -39,5 +39,5 @@ function ensureServerOnly() {
39
39
  // Check immediately when module loads
40
40
  ensureServerOnly();
41
41
  // Re-export all server-side functionality from hazo_connect/server
42
- __exportStar(require("../server"), exports);
42
+ __exportStar(require("../server/index.js"), exports);
43
43
  //# sourceMappingURL=server-only.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-only.js","sourceRoot":"","sources":["../../src/lib/nextjs/server-only.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,YAAY,CAAA;AAPZ;;;;;GAKG;;;;;;;;;;;;;;;;AAIH;;GAEG;AACH,SAAS,gBAAgB;IACvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,kEAAkE;YAClE,4EAA4E,CAC7E,CAAA;IACH,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,gBAAgB,EAAE,CAAA;AAElB,mEAAmE;AACnE,4CAAyB"}
1
+ {"version":3,"file":"server-only.js","sourceRoot":"","sources":["../../src/lib/nextjs/server-only.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,YAAY,CAAA;AAPZ;;;;;GAKG;;;;;;;;;;;;;;;;AAIH;;GAEG;AACH,SAAS,gBAAgB;IACvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,kEAAkE;YAClE,4EAA4E,CAC7E,CAAA;IACH,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,gBAAgB,EAAE,CAAA;AAElB,mEAAmE;AACnE,qDAAkC"}
@@ -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,WAAW,CAAA;AAoBtE;;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"}
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 server_1 = require("../server");
24
- const admin_service_1 = require("../sqlite/admin-service");
25
- const sqlite_adapter_1 = require("../adapters/sqlite-adapter");
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, server_1.createHazoConnect)({
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, server_1.createHazoConnect)({
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 sqlite_adapter_1.SqliteAdapter) {
160
- (0, admin_service_1.registerSqliteAdapter)(singletonInstance);
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,sCAA6C;AAC7C,2DAA+D;AAC/D,+DAA0D;AAE1D;;GAEG;AACH,SAAS,gBAAgB;IACvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,4DAA4D;YAC5D,+EAA+E,CAChF,CAAA;IACH,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,gBAAgB,EAAE,CAAA;AAgClB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,wBAAwB,CACtC,UAA2C,EAAE;IAE7C,gBAAgB,EAAE,CAAA;IAElB,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,QAAQ,CAAC,CAAC,WAAW,EAA+B,CAAA;IAErH,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA;QAEpH,IAAI,UAAkB,CAAA;QAEtB,IAAI,aAAa,EAAE,CAAC;YAClB,8EAA8E;YAC9E,UAAU,GAAG,cAAI,CAAC,UAAU,CAAC,aAAa,CAAC;gBACzC,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAA;QAChD,CAAC;aAAM,CAAC;YACN,oCAAoC;YACpC,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAA;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,MAAM,CAAA;QACxF,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,MAAM,CAAA;QAClG,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B;YAC5D,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;YACxD,CAAC,CAAC,SAAS,CAAA;QAEb,OAAO,IAAA,0BAAiB,EAAC;YACvB,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,aAAa;YAC9B,MAAM,EAAE;gBACN,aAAa,EAAE,UAAU;gBACzB,SAAS,EAAE,QAAQ;gBACnB,cAAc,EAAE,aAAa;aAC9B;YACD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAA;IACJ,CAAC;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAA;QAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAA;QAEnF,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F,CAAA;QACH,CAAC;QAED,OAAO,IAAA,0BAAiB,EAAC;YACvB,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE;gBACT,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;aAChB;YACD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,8BAA8B,MAAM,IAAI;YACxC,sCAAsC;YACtC,oEAAoE,CACrE,CAAA;IACH,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B,IAAI,iBAAiB,GAA8B,IAAI,CAAA;AACvD,IAAI,eAAe,GAAkB,IAAI,CAAA;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAgB,uBAAuB,CACrC,UAA2C,EAAE;IAE7C,gBAAgB,EAAE,CAAA;IAElB,qDAAqD;IACrD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,QAAQ;QAC/D,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB;QACtE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,MAAM;QACjF,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,MAAM;KAC5F,CAAC,CAAA;IAEF,qEAAqE;IACrE,IAAI,CAAC,iBAAiB,IAAI,eAAe,KAAK,eAAe,EAAE,CAAC;QAC9D,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;QACrD,eAAe,GAAG,eAAe,CAAA;QAEjC,kEAAkE;QAClE,yCAAyC;QACzC,IAAI,iBAAiB,YAAY,8BAAa,EAAE,CAAC;YAC/C,IAAA,qCAAqB,EAAC,iBAAiB,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB;IACvC,iBAAiB,GAAG,IAAI,CAAA;IACxB,eAAe,GAAG,IAAI,CAAA;AACxB,CAAC"}
1
+ {"version":3,"file":"setup-helpers.js","sourceRoot":"","sources":["../../src/lib/nextjs/setup-helpers.ts"],"names":[],"mappings":"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"}
@@ -4,24 +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 { parseJsonbField } from '../utils/jsonb';
22
- export { wrapResult, ok, err } from '../utils/result';
23
- export type { DbResult } from '../utils/result';
24
- export { AssertionError, assertNotEmpty, assertFound } from '../utils/assertions';
25
- export { validateNextJsConfig, getConfigurationTips, type ValidationResult } from '../utils/config-validator';
26
- export type { SqliteAdminService, SqliteTableType, TableSummary, TableSchema, TableColumn, TableForeignKey, RowPage, RowQueryOptions, SqliteWhereFilter, SqliteFilterOperator } from '../sqlite/admin-service';
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';
27
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,UAAU,CAAA;AAEjB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC1F,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAGhF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAG9C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACb,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACZ,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGtD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAGhD,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGjF,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,eAAe,EACf,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,yBAAyB,CAAA"}
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"}
@@ -26,60 +26,60 @@ function ensureServerOnly() {
26
26
  }
27
27
  // Check immediately when module loads
28
28
  ensureServerOnly();
29
- var types_1 = require("../types");
30
- Object.defineProperty(exports, "ErrorCode", { enumerable: true, get: function () { return types_1.ErrorCode; } });
31
- Object.defineProperty(exports, "noOpLogger", { enumerable: true, get: function () { return types_1.noOpLogger; } });
32
- var default_logger_1 = require("../default-logger");
33
- Object.defineProperty(exports, "defaultLogger", { enumerable: true, get: function () { return default_logger_1.defaultLogger; } });
34
- Object.defineProperty(exports, "getDefaultLogger", { enumerable: true, get: function () { return default_logger_1.getDefaultLogger; } });
35
- Object.defineProperty(exports, "createLoggerWithLevel", { enumerable: true, get: function () { return default_logger_1.createLoggerWithLevel; } });
36
- var log_level_wrapper_1 = require("../log-level-wrapper");
37
- Object.defineProperty(exports, "createLogLevelWrapper", { enumerable: true, get: function () { return log_level_wrapper_1.createLogLevelWrapper; } });
38
- Object.defineProperty(exports, "getDefaultLogLevel", { enumerable: true, get: function () { return log_level_wrapper_1.getDefaultLogLevel; } });
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 query_builder_1 = require("../query-builder");
41
- Object.defineProperty(exports, "QueryBuilder", { enumerable: true, get: function () { return query_builder_1.QueryBuilder; } });
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 factory_1 = require("../factory");
44
- Object.defineProperty(exports, "createHazoConnect", { enumerable: true, get: function () { return factory_1.createHazoConnect; } });
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 helpers_1 = require("../helpers");
47
- Object.defineProperty(exports, "attachExecute", { enumerable: true, get: function () { return helpers_1.attachExecute; } });
48
- Object.defineProperty(exports, "createCrudService", { enumerable: true, get: function () { return helpers_1.createCrudService; } });
49
- Object.defineProperty(exports, "createTableQuery", { enumerable: true, get: function () { return helpers_1.createTableQuery; } });
50
- Object.defineProperty(exports, "executeQuery", { enumerable: true, get: function () { return helpers_1.executeQuery; } });
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 base_adapter_1 = require("../adapters/base-adapter");
53
- Object.defineProperty(exports, "BaseAdapter", { enumerable: true, get: function () { return base_adapter_1.BaseAdapter; } });
54
- var postgrest_adapter_1 = require("../adapters/postgrest-adapter");
55
- Object.defineProperty(exports, "PostgrestAdapter", { enumerable: true, get: function () { return postgrest_adapter_1.PostgrestAdapter; } });
56
- var sqlite_adapter_1 = require("../adapters/sqlite-adapter");
57
- Object.defineProperty(exports, "SqliteAdapter", { enumerable: true, get: function () { return sqlite_adapter_1.SqliteAdapter; } });
58
- var supabase_adapter_1 = require("../adapters/supabase-adapter");
59
- Object.defineProperty(exports, "SupabaseAdapter", { enumerable: true, get: function () { return supabase_adapter_1.SupabaseAdapter; } });
60
- var file_adapter_1 = require("../adapters/file-adapter");
61
- Object.defineProperty(exports, "FileAdapter", { enumerable: true, get: function () { return file_adapter_1.FileAdapter; } });
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 admin_service_1 = require("../sqlite/admin-service");
64
- Object.defineProperty(exports, "getSqliteAdminService", { enumerable: true, get: function () { return admin_service_1.getSqliteAdminService; } });
65
- Object.defineProperty(exports, "initializeAdminService", { enumerable: true, get: function () { return admin_service_1.initializeAdminService; } });
66
- Object.defineProperty(exports, "registerSqliteAdapter", { enumerable: true, get: function () { return admin_service_1.registerSqliteAdapter; } });
67
- Object.defineProperty(exports, "clearRegisteredAdapter", { enumerable: true, get: function () { return admin_service_1.clearRegisteredAdapter; } });
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
68
  // Export JSONB parsing utility (pure function, no Node.js deps)
69
- var jsonb_1 = require("../utils/jsonb");
70
- Object.defineProperty(exports, "parseJsonbField", { enumerable: true, get: function () { return jsonb_1.parseJsonbField; } });
69
+ var jsonb_js_1 = require("../utils/jsonb.js");
70
+ Object.defineProperty(exports, "parseJsonbField", { enumerable: true, get: function () { return jsonb_js_1.parseJsonbField; } });
71
71
  // Export result type utilities
72
- var result_1 = require("../utils/result");
73
- Object.defineProperty(exports, "wrapResult", { enumerable: true, get: function () { return result_1.wrapResult; } });
74
- Object.defineProperty(exports, "ok", { enumerable: true, get: function () { return result_1.ok; } });
75
- Object.defineProperty(exports, "err", { enumerable: true, get: function () { return result_1.err; } });
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
76
  // Export assertion utilities
77
- var assertions_1 = require("../utils/assertions");
78
- Object.defineProperty(exports, "AssertionError", { enumerable: true, get: function () { return assertions_1.AssertionError; } });
79
- Object.defineProperty(exports, "assertNotEmpty", { enumerable: true, get: function () { return assertions_1.assertNotEmpty; } });
80
- Object.defineProperty(exports, "assertFound", { enumerable: true, get: function () { return assertions_1.assertFound; } });
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; } });
81
81
  // Export configuration validation utilities
82
- var config_validator_1 = require("../utils/config-validator");
83
- Object.defineProperty(exports, "validateNextJsConfig", { enumerable: true, get: function () { return config_validator_1.validateNextJsConfig; } });
84
- Object.defineProperty(exports, "getConfigurationTips", { enumerable: true, get: function () { return config_validator_1.getConfigurationTips; } });
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; } });
85
85
  //# sourceMappingURL=index.js.map
@@ -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,kCAAgD;AAAvC,kGAAA,SAAS,OAAA;AAAE,mGAAA,UAAU,OAAA;AAC9B,oDAA0F;AAAjF,+GAAA,aAAa,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AAAE,uHAAA,qBAAqB,OAAA;AAC/D,0DAAgF;AAAvE,0HAAA,qBAAqB,OAAA;AAAE,uHAAA,kBAAkB,OAAA;AAElD,uBAAuB;AACvB,kDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAErB,iBAAiB;AACjB,sCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAE1B,iBAAiB;AACjB,sCAKmB;AAJjB,wGAAA,aAAa,OAAA;AACb,4GAAA,iBAAiB,OAAA;AACjB,2GAAA,gBAAgB,OAAA;AAChB,uGAAA,YAAY,OAAA;AAUd,uCAAuC;AACvC,yDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,mEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,6DAA0D;AAAjD,+GAAA,aAAa,OAAA;AACtB,iEAA8D;AAArD,mHAAA,eAAe,OAAA;AACxB,yDAAsD;AAA7C,2GAAA,WAAW,OAAA;AAEpB,8BAA8B;AAC9B,yDAKgC;AAJ9B,sHAAA,qBAAqB,OAAA;AACrB,uHAAA,sBAAsB,OAAA;AACtB,sHAAA,qBAAqB,OAAA;AACrB,uHAAA,sBAAsB,OAAA;AAGxB,gEAAgE;AAChE,wCAAgD;AAAvC,wGAAA,eAAe,OAAA;AAExB,+BAA+B;AAC/B,0CAAqD;AAA5C,oGAAA,UAAU,OAAA;AAAE,4FAAA,EAAE,OAAA;AAAE,6FAAA,GAAG,OAAA;AAG5B,6BAA6B;AAC7B,kDAAiF;AAAxE,4GAAA,cAAc,OAAA;AAAE,4GAAA,cAAc,OAAA;AAAE,yGAAA,WAAW,OAAA;AAEpD,4CAA4C;AAC5C,8DAIkC;AAHhC,wHAAA,oBAAoB,OAAA;AACpB,wHAAA,oBAAoB,OAAA"}
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"}
@@ -5,10 +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';
11
- export { parseJsonbField } from '../utils/jsonb';
10
+ export type { DbResult } from '../utils/result.js';
11
+ export { parseJsonbField } from '../utils/jsonb.js';
12
12
  export { default as SqliteAdminClient } from './components/sqlite-admin-client.js';
13
13
  export type { SqliteAdminClientProps } from './components/sqlite-admin-client.js';
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -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,UAAU,CAAA;AAEjB,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAG5C,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAGhD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAClF,YAAY,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA"}
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
@@ -10,8 +10,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SqliteAdminClient = exports.parseJsonbField = void 0;
13
- var jsonb_1 = require("../utils/jsonb");
14
- Object.defineProperty(exports, "parseJsonbField", { enumerable: true, get: function () { return jsonb_1.parseJsonbField; } });
13
+ var jsonb_js_1 = require("../utils/jsonb.js");
14
+ Object.defineProperty(exports, "parseJsonbField", { enumerable: true, get: function () { return jsonb_js_1.parseJsonbField; } });
15
15
  // Export React components for SQLite Admin UI
16
16
  var sqlite_admin_client_js_1 = require("./components/sqlite-admin-client.js");
17
17
  Object.defineProperty(exports, "SqliteAdminClient", { enumerable: true, get: function () { return __importDefault(sqlite_admin_client_js_1).default; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/ui/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAkCH,wCAAgD;AAAvC,wGAAA,eAAe,OAAA;AAExB,8CAA8C;AAC9C,8EAAkF;AAAzE,4IAAA,OAAO,OAAqB"}
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"}
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.AssertionError = void 0;
10
10
  exports.assertNotEmpty = assertNotEmpty;
11
11
  exports.assertFound = assertFound;
12
- const types_1 = require("../types");
12
+ const types_js_1 = require("../types.js");
13
13
  /**
14
14
  * Error thrown when an assertion fails. Carries HTTP status and error code.
15
15
  */
@@ -31,7 +31,7 @@ exports.AssertionError = AssertionError;
31
31
  */
32
32
  function assertNotEmpty(result, entity_name) {
33
33
  if (result.length === 0) {
34
- throw new AssertionError(`No ${entity_name} found`, 404, types_1.ErrorCode.VALIDATION_ERROR);
34
+ throw new AssertionError(`No ${entity_name} found`, 404, types_js_1.ErrorCode.VALIDATION_ERROR);
35
35
  }
36
36
  return result;
37
37
  }
@@ -44,7 +44,7 @@ function assertNotEmpty(result, entity_name) {
44
44
  */
45
45
  function assertFound(result, entity_name) {
46
46
  if (result === null || result === undefined) {
47
- throw new AssertionError(`${entity_name} not found`, 404, types_1.ErrorCode.VALIDATION_ERROR);
47
+ throw new AssertionError(`${entity_name} not found`, 404, types_js_1.ErrorCode.VALIDATION_ERROR);
48
48
  }
49
49
  return result;
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../src/lib/utils/assertions.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA0BH,wCASC;AASD,kCASC;AAnDD,oCAAoC;AAEpC;;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,iBAAS,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,iBAAS,CAAC,gBAAgB,CAC3B,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
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"}
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "hazo_connect",
3
- "version": "2.4.4",
3
+ "version": "2.4.6",
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/hazo_connect",
10
9
  "scripts",
11
10
  "docs",
12
11
  "README.md"
@@ -39,7 +38,7 @@
39
38
  "scripts": {
40
39
  "dev": "next dev",
41
40
  "build": "next build",
42
- "build:lib": "tsc --project tsconfig.lib.json",
41
+ "build:lib": "tsc --project tsconfig.build.json",
43
42
  "start": "next start",
44
43
  "lint": "next lint",
45
44
  "storybook": "storybook dev -p 6006",
@@ -73,18 +72,44 @@
73
72
  "homepage": "https://github.com/pub12/hazo_connect#readme",
74
73
  "dependencies": {
75
74
  "dotenv": "^16.4.5",
76
- "hazo_config": "^1.3.0",
77
- "hazo_logs": "^1.0.5",
78
75
  "sql.js": "^1.13.0"
79
76
  },
80
77
  "peerDependencies": {
78
+ "hazo_config": ">=1.3.0",
79
+ "hazo_debug": ">=1.0.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
+ "hazo_debug": {
92
+ "optional": true
93
+ },
94
+ "lucide-react": {
95
+ "optional": true
96
+ },
97
+ "next": {
98
+ "optional": true
99
+ },
100
+ "react": {
101
+ "optional": true
102
+ },
103
+ "react-dom": {
104
+ "optional": true
105
+ },
106
+ "sonner": {
107
+ "optional": true
108
+ }
109
+ },
87
110
  "devDependencies": {
111
+ "hazo_config": "^1.3.0",
112
+ "hazo_logs": "^1.0.5",
88
113
  "@storybook/addon-essentials": "^8.2.6",
89
114
  "@storybook/addon-interactions": "^8.2.6",
90
115
  "@storybook/experimental-nextjs-vite": "^8.6.14",
@@ -1,197 +0,0 @@
1
- import { NextRequest, NextResponse } from "next/server"
2
- import {
3
- getSqliteAdminService,
4
- type RowQueryOptions,
5
- type SqliteFilterOperator,
6
- type SqliteWhereFilter
7
- } from "hazo_connect/server"
8
- import { getHazoConnectSingleton } from "hazo_connect/nextjs/setup"
9
-
10
- export const dynamic = "force-dynamic"
11
- const allowedOperators: SqliteFilterOperator[] = [
12
- "eq",
13
- "neq",
14
- "gt",
15
- "gte",
16
- "lt",
17
- "lte",
18
- "like",
19
- "ilike",
20
- "is"
21
- ]
22
-
23
- export async function GET(request: NextRequest) {
24
- const url = new URL(request.url)
25
- const table = url.searchParams.get("table")
26
- if (!table) {
27
- return NextResponse.json(
28
- { error: "Query parameter 'table' is required." },
29
- { status: 400 }
30
- )
31
- }
32
-
33
- try {
34
- // Initialize the singleton to ensure the adapter is registered with the admin service
35
- getHazoConnectSingleton()
36
- const service = getSqliteAdminService()
37
- const options = parseRowQueryOptions(url.searchParams)
38
- const page = await service.getTableData(table, options)
39
- return NextResponse.json({ data: page.rows, total: page.total })
40
- } catch (error) {
41
- return toErrorResponse(error, `Failed to fetch data for table '${table}'`)
42
- }
43
- }
44
-
45
- export async function POST(request: NextRequest) {
46
- try {
47
- // Initialize the singleton to ensure the adapter is registered with the admin service
48
- getHazoConnectSingleton()
49
- const service = getSqliteAdminService()
50
- const payload = await request.json()
51
- const table = payload?.table
52
- const data = payload?.data
53
-
54
- if (!table || typeof data !== "object" || Array.isArray(data)) {
55
- return NextResponse.json(
56
- { error: "Request body must include 'table' and a 'data' object." },
57
- { status: 400 }
58
- )
59
- }
60
-
61
- const inserted = await service.insertRow(table, data)
62
- return NextResponse.json({ data: inserted })
63
- } catch (error) {
64
- return toErrorResponse(error, "Failed to insert row")
65
- }
66
- }
67
-
68
- export async function PATCH(request: NextRequest) {
69
- try {
70
- // Initialize the singleton to ensure the adapter is registered with the admin service
71
- getHazoConnectSingleton()
72
- const service = getSqliteAdminService()
73
- const payload = await request.json()
74
- const table = payload?.table
75
- const data = payload?.data
76
- const criteria = payload?.criteria
77
-
78
- if (
79
- !table ||
80
- typeof data !== "object" ||
81
- Array.isArray(data) ||
82
- typeof criteria !== "object" ||
83
- criteria === null ||
84
- Array.isArray(criteria)
85
- ) {
86
- return NextResponse.json(
87
- {
88
- error:
89
- "Request body must include 'table', 'data' object, and a 'criteria' object for the rows to update."
90
- },
91
- { status: 400 }
92
- )
93
- }
94
-
95
- const rows = await service.updateRows(table, criteria, data)
96
- return NextResponse.json({ data: rows, updated: rows.length })
97
- } catch (error) {
98
- return toErrorResponse(error, "Failed to update rows")
99
- }
100
- }
101
-
102
- export async function DELETE(request: NextRequest) {
103
- try {
104
- // Initialize the singleton to ensure the adapter is registered with the admin service
105
- getHazoConnectSingleton()
106
- const service = getSqliteAdminService()
107
- const payload = await request.json()
108
- const table = payload?.table
109
- const criteria = payload?.criteria
110
-
111
- if (
112
- !table ||
113
- typeof criteria !== "object" ||
114
- criteria === null ||
115
- Array.isArray(criteria)
116
- ) {
117
- return NextResponse.json(
118
- {
119
- error:
120
- "Request body must include 'table' and a 'criteria' object for the rows to delete."
121
- },
122
- { status: 400 }
123
- )
124
- }
125
-
126
- const rows = await service.deleteRows(table, criteria)
127
- return NextResponse.json({ data: rows, deleted: rows.length })
128
- } catch (error) {
129
- return toErrorResponse(error, "Failed to delete rows")
130
- }
131
- }
132
-
133
- function parseRowQueryOptions(params: URLSearchParams): RowQueryOptions {
134
- const limitParam = params.get("limit")
135
- const offsetParam = params.get("offset")
136
- const orderBy = params.get("orderBy") ?? undefined
137
- const orderDirection = parseOrderDirection(params.get("orderDirection"))
138
- const filters = parseFilters(params)
139
-
140
- const limit = limitParam ? Number.parseInt(limitParam, 10) : undefined
141
- const offset = offsetParam ? Number.parseInt(offsetParam, 10) : undefined
142
-
143
- return {
144
- limit: Number.isNaN(limit) ? undefined : limit,
145
- offset: Number.isNaN(offset) ? undefined : offset,
146
- order_by: orderBy ?? undefined,
147
- order_direction: orderDirection,
148
- filters: filters.length ? filters : undefined
149
- }
150
- }
151
-
152
- function parseFilters(params: URLSearchParams): SqliteWhereFilter[] {
153
- const filters: SqliteWhereFilter[] = []
154
-
155
- params.forEach((value, key) => {
156
- const match = key.match(/^filter\[(.+?)\](?:\[(.+)\])?$/)
157
- if (!match) {
158
- return
159
- }
160
- const column = match[1]
161
- const operatorValue = (match[2] ?? "eq").toLowerCase()
162
- if (!isAllowedOperator(operatorValue)) {
163
- throw new Error(`Unsupported filter operator '${operatorValue}'`)
164
- }
165
- filters.push({
166
- column,
167
- operator: operatorValue as SqliteFilterOperator,
168
- value
169
- })
170
- })
171
-
172
- return filters
173
- }
174
-
175
- function parseOrderDirection(
176
- direction: string | null
177
- ): "asc" | "desc" | undefined {
178
- if (!direction) {
179
- return undefined
180
- }
181
- const normalized = direction.toLowerCase()
182
- if (normalized === "asc" || normalized === "desc") {
183
- return normalized
184
- }
185
- throw new Error(`Unsupported order direction '${direction}'`)
186
- }
187
-
188
- function isAllowedOperator(value: string): value is SqliteFilterOperator {
189
- return allowedOperators.includes(value as SqliteFilterOperator)
190
- }
191
-
192
- function toErrorResponse(error: unknown, fallback: string) {
193
- const message = error instanceof Error ? error.message : fallback
194
- const status = message.toLowerCase().includes("required") ? 400 : 500
195
- return NextResponse.json({ error: message }, { status })
196
- }
197
-