@tinycloud/sdk-services 1.7.0 → 2.0.2-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/{types.d.ts → BaseService-D9BFm_rV.d.cts} +179 -27
  2. package/dist/BaseService-D9BFm_rV.d.ts +440 -0
  3. package/dist/index.cjs +3221 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +1843 -0
  6. package/dist/index.d.ts +1826 -41
  7. package/dist/index.js +3136 -58
  8. package/dist/index.js.map +1 -1
  9. package/dist/kv/index.cjs +909 -0
  10. package/dist/kv/index.cjs.map +1 -0
  11. package/dist/kv/index.d.cts +748 -0
  12. package/dist/kv/index.d.ts +745 -7
  13. package/dist/kv/index.js +877 -9
  14. package/dist/kv/index.js.map +1 -1
  15. package/dist/sql/index.cjs +596 -0
  16. package/dist/sql/index.cjs.map +1 -0
  17. package/dist/sql/index.d.cts +228 -0
  18. package/dist/sql/index.d.ts +225 -7
  19. package/dist/sql/index.js +566 -8
  20. package/dist/sql/index.js.map +1 -1
  21. package/package.json +7 -6
  22. package/dist/base/BaseService.d.ts +0 -151
  23. package/dist/base/BaseService.d.ts.map +0 -1
  24. package/dist/base/BaseService.js +0 -221
  25. package/dist/base/BaseService.js.map +0 -1
  26. package/dist/base/index.d.ts +0 -6
  27. package/dist/base/index.d.ts.map +0 -1
  28. package/dist/base/index.js +0 -6
  29. package/dist/base/index.js.map +0 -1
  30. package/dist/base/types.d.ts +0 -36
  31. package/dist/base/types.d.ts.map +0 -1
  32. package/dist/base/types.js +0 -7
  33. package/dist/base/types.js.map +0 -1
  34. package/dist/context.d.ts +0 -142
  35. package/dist/context.d.ts.map +0 -1
  36. package/dist/context.js +0 -218
  37. package/dist/context.js.map +0 -1
  38. package/dist/duckdb/DuckDbDatabaseHandle.d.ts +0 -23
  39. package/dist/duckdb/DuckDbDatabaseHandle.d.ts.map +0 -1
  40. package/dist/duckdb/DuckDbDatabaseHandle.js +0 -36
  41. package/dist/duckdb/DuckDbDatabaseHandle.js.map +0 -1
  42. package/dist/duckdb/DuckDbService.d.ts +0 -50
  43. package/dist/duckdb/DuckDbService.d.ts.map +0 -1
  44. package/dist/duckdb/DuckDbService.js +0 -285
  45. package/dist/duckdb/DuckDbService.js.map +0 -1
  46. package/dist/duckdb/IDuckDbService.d.ts +0 -84
  47. package/dist/duckdb/IDuckDbService.d.ts.map +0 -1
  48. package/dist/duckdb/IDuckDbService.js +0 -7
  49. package/dist/duckdb/IDuckDbService.js.map +0 -1
  50. package/dist/duckdb/index.d.ts +0 -10
  51. package/dist/duckdb/index.d.ts.map +0 -1
  52. package/dist/duckdb/index.js +0 -9
  53. package/dist/duckdb/index.js.map +0 -1
  54. package/dist/duckdb/types.d.ts +0 -148
  55. package/dist/duckdb/types.d.ts.map +0 -1
  56. package/dist/duckdb/types.js +0 -19
  57. package/dist/duckdb/types.js.map +0 -1
  58. package/dist/errors.d.ts +0 -62
  59. package/dist/errors.d.ts.map +0 -1
  60. package/dist/errors.js +0 -149
  61. package/dist/errors.js.map +0 -1
  62. package/dist/index.d.ts.map +0 -1
  63. package/dist/kv/IKVService.d.ts +0 -148
  64. package/dist/kv/IKVService.d.ts.map +0 -1
  65. package/dist/kv/IKVService.js +0 -8
  66. package/dist/kv/IKVService.js.map +0 -1
  67. package/dist/kv/KVService.d.ts +0 -155
  68. package/dist/kv/KVService.d.ts.map +0 -1
  69. package/dist/kv/KVService.js +0 -419
  70. package/dist/kv/KVService.js.map +0 -1
  71. package/dist/kv/PrefixedKVService.d.ts +0 -246
  72. package/dist/kv/PrefixedKVService.d.ts.map +0 -1
  73. package/dist/kv/PrefixedKVService.js +0 -145
  74. package/dist/kv/PrefixedKVService.js.map +0 -1
  75. package/dist/kv/index.d.ts.map +0 -1
  76. package/dist/kv/types.d.ts +0 -204
  77. package/dist/kv/types.d.ts.map +0 -1
  78. package/dist/kv/types.js +0 -16
  79. package/dist/kv/types.js.map +0 -1
  80. package/dist/quota/TinyCloudQuota.d.ts +0 -27
  81. package/dist/quota/TinyCloudQuota.d.ts.map +0 -1
  82. package/dist/quota/TinyCloudQuota.js +0 -31
  83. package/dist/quota/TinyCloudQuota.js.map +0 -1
  84. package/dist/quota/index.d.ts +0 -3
  85. package/dist/quota/index.d.ts.map +0 -1
  86. package/dist/quota/index.js +0 -2
  87. package/dist/quota/index.js.map +0 -1
  88. package/dist/sql/DatabaseHandle.d.ts +0 -20
  89. package/dist/sql/DatabaseHandle.d.ts.map +0 -1
  90. package/dist/sql/DatabaseHandle.js +0 -27
  91. package/dist/sql/DatabaseHandle.js.map +0 -1
  92. package/dist/sql/ISQLService.d.ts +0 -67
  93. package/dist/sql/ISQLService.d.ts.map +0 -1
  94. package/dist/sql/ISQLService.js +0 -7
  95. package/dist/sql/ISQLService.js.map +0 -1
  96. package/dist/sql/SQLService.d.ts +0 -44
  97. package/dist/sql/SQLService.d.ts.map +0 -1
  98. package/dist/sql/SQLService.js +0 -216
  99. package/dist/sql/SQLService.js.map +0 -1
  100. package/dist/sql/index.d.ts.map +0 -1
  101. package/dist/sql/types.d.ts +0 -102
  102. package/dist/sql/types.d.ts.map +0 -1
  103. package/dist/sql/types.js +0 -21
  104. package/dist/sql/types.js.map +0 -1
  105. package/dist/types.d.ts.map +0 -1
  106. package/dist/types.js +0 -94
  107. package/dist/types.js.map +0 -1
  108. package/dist/types.schema.d.ts +0 -712
  109. package/dist/types.schema.d.ts.map +0 -1
  110. package/dist/types.schema.js +0 -342
  111. package/dist/types.schema.js.map +0 -1
  112. package/dist/types.schema.test.d.ts +0 -5
  113. package/dist/types.schema.test.d.ts.map +0 -1
  114. package/dist/types.schema.test.js +0 -677
  115. package/dist/types.schema.test.js.map +0 -1
  116. package/dist/vault/DataVaultService.d.ts +0 -258
  117. package/dist/vault/DataVaultService.d.ts.map +0 -1
  118. package/dist/vault/DataVaultService.js +0 -977
  119. package/dist/vault/DataVaultService.js.map +0 -1
  120. package/dist/vault/IDataVaultService.d.ts +0 -150
  121. package/dist/vault/IDataVaultService.d.ts.map +0 -1
  122. package/dist/vault/IDataVaultService.js +0 -8
  123. package/dist/vault/IDataVaultService.js.map +0 -1
  124. package/dist/vault/createVaultCrypto.d.ts +0 -16
  125. package/dist/vault/createVaultCrypto.d.ts.map +0 -1
  126. package/dist/vault/createVaultCrypto.js +0 -12
  127. package/dist/vault/createVaultCrypto.js.map +0 -1
  128. package/dist/vault/index.d.ts +0 -10
  129. package/dist/vault/index.d.ts.map +0 -1
  130. package/dist/vault/index.js +0 -11
  131. package/dist/vault/index.js.map +0 -1
  132. package/dist/vault/types.d.ts +0 -133
  133. package/dist/vault/types.d.ts.map +0 -1
  134. package/dist/vault/types.js +0 -23
  135. package/dist/vault/types.js.map +0 -1
package/dist/context.js DELETED
@@ -1,218 +0,0 @@
1
- /**
2
- * ServiceContext implementation for TinyCloud SDK Services
3
- * @module @tinycloud/sdk-services
4
- */
5
- import { defaultRetryPolicy, } from "./types";
6
- /**
7
- * ServiceContext provides platform dependencies and cross-service access to services.
8
- * This is the primary interface services use to interact with the SDK runtime.
9
- *
10
- * @example
11
- * ```typescript
12
- * const context = new ServiceContext({
13
- * invoke: wasmInvoke,
14
- * hosts: ['https://node.tinycloud.xyz'],
15
- * retryPolicy: { maxAttempts: 5 },
16
- * });
17
- *
18
- * // Register a service
19
- * const kvService = new KVService({});
20
- * context.registerService('kv', kvService);
21
- * kvService.initialize(context);
22
- *
23
- * // Update session when user signs in
24
- * context.setSession(userSession);
25
- * ```
26
- */
27
- export class ServiceContext {
28
- constructor(config) {
29
- this._session = null;
30
- this._services = new Map();
31
- this._eventHandlers = new Map();
32
- this._abortController = new AbortController();
33
- this._invoke = config.invoke;
34
- this._fetch = config.fetch ?? globalThis.fetch.bind(globalThis);
35
- this._hosts = config.hosts;
36
- this._session = config.session ?? null;
37
- this._retryPolicy = {
38
- ...defaultRetryPolicy,
39
- ...config.retryPolicy,
40
- };
41
- }
42
- // ============================================================
43
- // Session Management
44
- // ============================================================
45
- /**
46
- * Get the current session.
47
- */
48
- get session() {
49
- return this._session;
50
- }
51
- /**
52
- * Check if the context has an authenticated session.
53
- */
54
- get isAuthenticated() {
55
- return this._session !== null;
56
- }
57
- /**
58
- * Update the session and notify all registered services.
59
- *
60
- * @param session - New session or null to clear
61
- */
62
- setSession(session) {
63
- this._session = session;
64
- this.emit('session.changed', { authenticated: session !== null });
65
- // Notify all services of session change
66
- for (const service of this._services.values()) {
67
- service.onSessionChange(session);
68
- }
69
- }
70
- // ============================================================
71
- // Platform Dependencies
72
- // ============================================================
73
- /**
74
- * Get the invoke function for WASM operations.
75
- */
76
- get invoke() {
77
- return this._invoke;
78
- }
79
- /**
80
- * Get the fetch function for HTTP requests.
81
- */
82
- get fetch() {
83
- return this._fetch;
84
- }
85
- /**
86
- * Get the list of TinyCloud host URLs.
87
- */
88
- get hosts() {
89
- return this._hosts;
90
- }
91
- // ============================================================
92
- // Service Registry
93
- // ============================================================
94
- /**
95
- * Register a service with the context.
96
- *
97
- * @param name - Service name (e.g., 'kv')
98
- * @param service - Service instance
99
- */
100
- registerService(name, service) {
101
- this._services.set(name, service);
102
- }
103
- /**
104
- * Unregister a service from the context.
105
- *
106
- * @param name - Service name to remove
107
- */
108
- unregisterService(name) {
109
- this._services.delete(name);
110
- }
111
- /**
112
- * Get a registered service by name.
113
- *
114
- * @param name - Service name
115
- * @returns The service instance or undefined if not registered
116
- */
117
- getService(name) {
118
- return this._services.get(name);
119
- }
120
- // ============================================================
121
- // Event System (Telemetry)
122
- // ============================================================
123
- /**
124
- * Emit a telemetry event.
125
- *
126
- * @param event - Event name
127
- * @param data - Event data
128
- */
129
- emit(event, data) {
130
- const handlers = this._eventHandlers.get(event);
131
- if (handlers) {
132
- for (const handler of handlers) {
133
- try {
134
- handler(data);
135
- }
136
- catch (error) {
137
- // Don't let event handler errors break the flow
138
- console.error(`Error in event handler for "${event}":`, error);
139
- }
140
- }
141
- }
142
- }
143
- /**
144
- * Subscribe to telemetry events.
145
- *
146
- * @param event - Event name to subscribe to
147
- * @param handler - Handler function
148
- * @returns Unsubscribe function
149
- */
150
- on(event, handler) {
151
- if (!this._eventHandlers.has(event)) {
152
- this._eventHandlers.set(event, new Set());
153
- }
154
- this._eventHandlers.get(event).add(handler);
155
- // Return unsubscribe function
156
- return () => {
157
- const handlers = this._eventHandlers.get(event);
158
- if (handlers) {
159
- handlers.delete(handler);
160
- if (handlers.size === 0) {
161
- this._eventHandlers.delete(event);
162
- }
163
- }
164
- };
165
- }
166
- /**
167
- * Remove all event handlers for an event.
168
- *
169
- * @param event - Event name (if omitted, clears all events)
170
- */
171
- clearEventHandlers(event) {
172
- if (event) {
173
- this._eventHandlers.delete(event);
174
- }
175
- else {
176
- this._eventHandlers.clear();
177
- }
178
- }
179
- // ============================================================
180
- // Lifecycle
181
- // ============================================================
182
- /**
183
- * Get the abort signal for cancelling operations.
184
- */
185
- get abortSignal() {
186
- return this._abortController.signal;
187
- }
188
- /**
189
- * Abort all pending operations and notify services.
190
- * Creates a new AbortController for future operations.
191
- */
192
- abort() {
193
- this._abortController.abort();
194
- this._abortController = new AbortController();
195
- // Notify all services
196
- for (const service of this._services.values()) {
197
- service.onSignOut();
198
- }
199
- }
200
- /**
201
- * Sign out - abort operations and clear session.
202
- */
203
- signOut() {
204
- this.abort();
205
- this.setSession(null);
206
- this.emit('session.expired', {});
207
- }
208
- // ============================================================
209
- // Retry Policy
210
- // ============================================================
211
- /**
212
- * Get the retry policy configuration.
213
- */
214
- get retryPolicy() {
215
- return this._retryPolicy;
216
- }
217
- }
218
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * DuckDbDatabaseHandle - Handle for operations on a specific named database.
3
- *
4
- * Delegates all operations to the parent DuckDbService with the database name.
5
- */
6
- import type { Result } from "../types";
7
- import type { IDuckDbDatabaseHandle } from "./IDuckDbService";
8
- import type { DuckDbService } from "./DuckDbService";
9
- import type { DuckDbValue, DuckDbStatement, QueryResponse, ExecuteResponse, BatchResponse, SchemaInfo, DuckDbQueryOptions, DuckDbExecuteOptions, DuckDbBatchOptions, DuckDbOptions } from "./types";
10
- export declare class DuckDbDatabaseHandle implements IDuckDbDatabaseHandle {
11
- private service;
12
- readonly name: string;
13
- constructor(service: DuckDbService, name: string);
14
- query<T = Record<string, unknown>>(sql: string, params?: DuckDbValue[], options?: DuckDbQueryOptions): Promise<Result<QueryResponse<T>>>;
15
- queryArrow(sql: string, params?: DuckDbValue[], options?: DuckDbQueryOptions): Promise<Result<ArrayBuffer>>;
16
- execute(sql: string, params?: DuckDbValue[], options?: DuckDbExecuteOptions): Promise<Result<ExecuteResponse>>;
17
- batch(statements: DuckDbStatement[], options?: DuckDbBatchOptions): Promise<Result<BatchResponse>>;
18
- executeStatement(name: string, params?: DuckDbValue[], options?: DuckDbQueryOptions): Promise<Result<QueryResponse | ExecuteResponse>>;
19
- describe(options?: DuckDbOptions): Promise<Result<SchemaInfo>>;
20
- export(options?: DuckDbOptions): Promise<Result<Blob>>;
21
- import(data: Uint8Array, options?: DuckDbOptions): Promise<Result<void>>;
22
- }
23
- //# sourceMappingURL=DuckDbDatabaseHandle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DuckDbDatabaseHandle.d.ts","sourceRoot":"","sources":["../../src/duckdb/DuckDbDatabaseHandle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,eAAe,EACf,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,qBAAa,oBAAqB,YAAW,qBAAqB;IAChE,OAAO,CAAC,OAAO,CAAgB;IAC/B,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM;IAK1C,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,EAAE,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAI9B,UAAU,CACd,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,EAAE,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAIzB,OAAO,CACX,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,EAAE,EACtB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAI7B,KAAK,CACT,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAI3B,gBAAgB,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,EAAE,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,eAAe,CAAC,CAAC;IAI7C,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAI9D,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAItD,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAG/E"}
@@ -1,36 +0,0 @@
1
- /**
2
- * DuckDbDatabaseHandle - Handle for operations on a specific named database.
3
- *
4
- * Delegates all operations to the parent DuckDbService with the database name.
5
- */
6
- export class DuckDbDatabaseHandle {
7
- constructor(service, name) {
8
- this.service = service;
9
- this.name = name;
10
- }
11
- async query(sql, params, options) {
12
- return this.service.queryOnDb(this.name, sql, params, options);
13
- }
14
- async queryArrow(sql, params, options) {
15
- return this.service.queryArrowOnDb(this.name, sql, params, options);
16
- }
17
- async execute(sql, params, options) {
18
- return this.service.executeOnDb(this.name, sql, params, options);
19
- }
20
- async batch(statements, options) {
21
- return this.service.batchOnDb(this.name, statements, options);
22
- }
23
- async executeStatement(name, params, options) {
24
- return this.service.executeStatementOnDb(this.name, name, params, options);
25
- }
26
- async describe(options) {
27
- return this.service.describeDb(this.name, options);
28
- }
29
- async export(options) {
30
- return this.service.exportOnDb(this.name, options);
31
- }
32
- async import(data, options) {
33
- return this.service.importOnDb(this.name, data, options);
34
- }
35
- }
36
- //# sourceMappingURL=DuckDbDatabaseHandle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DuckDbDatabaseHandle.js","sourceRoot":"","sources":["../../src/duckdb/DuckDbDatabaseHandle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,MAAM,OAAO,oBAAoB;IAI/B,YAAY,OAAsB,EAAE,IAAY;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,KAAK,CACT,GAAW,EACX,MAAsB,EACtB,OAA4B;QAE5B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAI,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,UAAU,CACd,GAAW,EACX,MAAsB,EACtB,OAA4B;QAE5B,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,OAAO,CACX,GAAW,EACX,MAAsB,EACtB,OAA8B;QAE9B,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,KAAK,CACT,UAA6B,EAC7B,OAA4B;QAE5B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,IAAY,EACZ,MAAsB,EACtB,OAA4B;QAE5B,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAuB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAuB;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAgB,EAAE,OAAuB;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -1,50 +0,0 @@
1
- /**
2
- * DuckDbService - DuckDB database service implementation.
3
- *
4
- * Platform-agnostic DuckDB service that works with both web-sdk and node-sdk.
5
- * Uses dependency injection via IServiceContext for platform dependencies.
6
- */
7
- import { BaseService } from "../base/BaseService";
8
- import { Result } from "../types";
9
- import type { IDuckDbService, IDuckDbDatabaseHandle } from "./IDuckDbService";
10
- import { type DuckDbServiceConfig, type DuckDbQueryOptions, type DuckDbExecuteOptions, type DuckDbBatchOptions, type DuckDbOptions, type DuckDbValue, type DuckDbStatement, type QueryResponse, type ExecuteResponse, type BatchResponse, type SchemaInfo } from "./types";
11
- export declare class DuckDbService extends BaseService implements IDuckDbService {
12
- static readonly serviceName = "duckdb";
13
- protected _config: DuckDbServiceConfig;
14
- constructor(config?: DuckDbServiceConfig);
15
- get config(): DuckDbServiceConfig;
16
- private get defaultDbName();
17
- private get host();
18
- /**
19
- * Get a handle to a named database.
20
- */
21
- db(name?: string): IDuckDbDatabaseHandle;
22
- /**
23
- * Shortcut: query the default database (JSON format).
24
- */
25
- query<T = Record<string, unknown>>(sql: string, params?: DuckDbValue[], options?: DuckDbQueryOptions): Promise<Result<QueryResponse<T>>>;
26
- /**
27
- * Shortcut: query the default database (Arrow IPC format).
28
- */
29
- queryArrow(sql: string, params?: DuckDbValue[], options?: DuckDbQueryOptions): Promise<Result<ArrayBuffer>>;
30
- /**
31
- * Shortcut: execute on the default database.
32
- */
33
- execute(sql: string, params?: DuckDbValue[], options?: DuckDbExecuteOptions): Promise<Result<ExecuteResponse>>;
34
- /**
35
- * Shortcut: batch on the default database.
36
- */
37
- batch(statements: DuckDbStatement[], options?: DuckDbBatchOptions): Promise<Result<BatchResponse>>;
38
- queryOnDb<T = Record<string, unknown>>(dbName: string, sql: string, params?: DuckDbValue[], options?: DuckDbQueryOptions): Promise<Result<QueryResponse<T>>>;
39
- queryArrowOnDb(dbName: string, sql: string, params?: DuckDbValue[], options?: DuckDbQueryOptions): Promise<Result<ArrayBuffer>>;
40
- executeOnDb(dbName: string, sql: string, params?: DuckDbValue[], options?: DuckDbExecuteOptions): Promise<Result<ExecuteResponse>>;
41
- batchOnDb(dbName: string, statements: DuckDbStatement[], options?: DuckDbBatchOptions): Promise<Result<BatchResponse>>;
42
- executeStatementOnDb(dbName: string, name: string, params?: DuckDbValue[], options?: DuckDbQueryOptions): Promise<Result<QueryResponse | ExecuteResponse>>;
43
- describeDb(dbName: string, options?: DuckDbOptions): Promise<Result<SchemaInfo>>;
44
- exportOnDb(dbName: string, options?: DuckDbOptions): Promise<Result<Blob>>;
45
- importOnDb(dbName: string, data: Uint8Array, options?: DuckDbOptions): Promise<Result<void>>;
46
- private invokeDuckDb;
47
- private handleErrorResponse;
48
- private mapHttpStatusToErrorCode;
49
- }
50
- //# sourceMappingURL=DuckDbService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DuckDbService.d.ts","sourceRoot":"","sources":["../../src/duckdb/DuckDbService.ts"],"names":[],"mappings":"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"}
@@ -1,285 +0,0 @@
1
- /**
2
- * DuckDbService - DuckDB database service implementation.
3
- *
4
- * Platform-agnostic DuckDB service that works with both web-sdk and node-sdk.
5
- * Uses dependency injection via IServiceContext for platform dependencies.
6
- */
7
- import { BaseService } from "../base/BaseService";
8
- import { ok, err, ErrorCodes, serviceError, } from "../types";
9
- import { authRequiredError, wrapError, parseAuthError } from "../errors";
10
- import { DuckDbDatabaseHandle } from "./DuckDbDatabaseHandle";
11
- import { DuckDbAction, } from "./types";
12
- export class DuckDbService extends BaseService {
13
- constructor(config = {}) {
14
- super();
15
- this._config = config;
16
- }
17
- get config() {
18
- return this._config;
19
- }
20
- get defaultDbName() {
21
- return this._config.defaultDatabase ?? "default";
22
- }
23
- get host() {
24
- return this.context.hosts[0];
25
- }
26
- /**
27
- * Get a handle to a named database.
28
- */
29
- db(name) {
30
- return new DuckDbDatabaseHandle(this, name ?? this.defaultDbName);
31
- }
32
- /**
33
- * Shortcut: query the default database (JSON format).
34
- */
35
- async query(sql, params, options) {
36
- return this.queryOnDb(this.defaultDbName, sql, params, options);
37
- }
38
- /**
39
- * Shortcut: query the default database (Arrow IPC format).
40
- */
41
- async queryArrow(sql, params, options) {
42
- return this.queryArrowOnDb(this.defaultDbName, sql, params, options);
43
- }
44
- /**
45
- * Shortcut: execute on the default database.
46
- */
47
- async execute(sql, params, options) {
48
- return this.executeOnDb(this.defaultDbName, sql, params, options);
49
- }
50
- /**
51
- * Shortcut: batch on the default database.
52
- */
53
- async batch(statements, options) {
54
- return this.batchOnDb(this.defaultDbName, statements, options);
55
- }
56
- // === Internal methods called by DuckDbDatabaseHandle ===
57
- async queryOnDb(dbName, sql, params, options) {
58
- return this.withTelemetry("query", dbName, async () => {
59
- if (!this.requireAuth()) {
60
- return err(authRequiredError("duckdb"));
61
- }
62
- try {
63
- const response = await this.invokeDuckDb(dbName, DuckDbAction.READ, { action: "query", sql, params: params ?? [] }, options?.signal);
64
- if (!response.ok) {
65
- return this.handleErrorResponse(response, "query");
66
- }
67
- const data = (await response.json());
68
- return ok(data);
69
- }
70
- catch (error) {
71
- return err(wrapError("duckdb", error));
72
- }
73
- });
74
- }
75
- async queryArrowOnDb(dbName, sql, params, options) {
76
- return this.withTelemetry("queryArrow", dbName, async () => {
77
- if (!this.requireAuth()) {
78
- return err(authRequiredError("duckdb"));
79
- }
80
- try {
81
- const response = await this.invokeDuckDb(dbName, DuckDbAction.READ, { action: "query", sql, params: params ?? [] }, options?.signal, { Accept: "application/vnd.apache.arrow.stream" });
82
- if (!response.ok) {
83
- return this.handleErrorResponse(response, "queryArrow");
84
- }
85
- const buffer = await response.arrayBuffer();
86
- return ok(buffer);
87
- }
88
- catch (error) {
89
- return err(wrapError("duckdb", error));
90
- }
91
- });
92
- }
93
- async executeOnDb(dbName, sql, params, options) {
94
- return this.withTelemetry("execute", dbName, async () => {
95
- if (!this.requireAuth()) {
96
- return err(authRequiredError("duckdb"));
97
- }
98
- try {
99
- const body = {
100
- action: "execute",
101
- sql,
102
- params: params ?? [],
103
- };
104
- if (options?.schema) {
105
- body.schema = options.schema;
106
- }
107
- const response = await this.invokeDuckDb(dbName, DuckDbAction.WRITE, body, options?.signal);
108
- if (!response.ok) {
109
- return this.handleErrorResponse(response, "execute");
110
- }
111
- const data = (await response.json());
112
- return ok(data);
113
- }
114
- catch (error) {
115
- return err(wrapError("duckdb", error));
116
- }
117
- });
118
- }
119
- async batchOnDb(dbName, statements, options) {
120
- return this.withTelemetry("batch", dbName, async () => {
121
- if (!this.requireAuth()) {
122
- return err(authRequiredError("duckdb"));
123
- }
124
- try {
125
- const body = {
126
- action: "batch",
127
- statements,
128
- };
129
- if (options?.transactional !== undefined) {
130
- body.transactional = options.transactional;
131
- }
132
- const response = await this.invokeDuckDb(dbName, DuckDbAction.WRITE, body, options?.signal);
133
- if (!response.ok) {
134
- return this.handleErrorResponse(response, "batch");
135
- }
136
- const data = (await response.json());
137
- return ok(data);
138
- }
139
- catch (error) {
140
- return err(wrapError("duckdb", error));
141
- }
142
- });
143
- }
144
- async executeStatementOnDb(dbName, name, params, options) {
145
- return this.withTelemetry("executeStatement", dbName, async () => {
146
- if (!this.requireAuth()) {
147
- return err(authRequiredError("duckdb"));
148
- }
149
- try {
150
- const response = await this.invokeDuckDb(dbName, DuckDbAction.EXECUTE, { action: "executeStatement", name, params: params ?? [] }, options?.signal);
151
- if (!response.ok) {
152
- return this.handleErrorResponse(response, "executeStatement");
153
- }
154
- const data = (await response.json());
155
- return ok(data);
156
- }
157
- catch (error) {
158
- return err(wrapError("duckdb", error));
159
- }
160
- });
161
- }
162
- async describeDb(dbName, options) {
163
- return this.withTelemetry("describe", dbName, async () => {
164
- if (!this.requireAuth()) {
165
- return err(authRequiredError("duckdb"));
166
- }
167
- try {
168
- const response = await this.invokeDuckDb(dbName, DuckDbAction.DESCRIBE, { action: "describe" }, options?.signal);
169
- if (!response.ok) {
170
- return this.handleErrorResponse(response, "describe");
171
- }
172
- const data = (await response.json());
173
- return ok(data);
174
- }
175
- catch (error) {
176
- return err(wrapError("duckdb", error));
177
- }
178
- });
179
- }
180
- async exportOnDb(dbName, options) {
181
- return this.withTelemetry("export", dbName, async () => {
182
- if (!this.requireAuth()) {
183
- return err(authRequiredError("duckdb"));
184
- }
185
- try {
186
- const response = await this.invokeDuckDb(dbName, DuckDbAction.EXPORT, { action: "export" }, options?.signal);
187
- if (!response.ok) {
188
- return this.handleErrorResponse(response, "export");
189
- }
190
- const blob = await response.blob();
191
- return ok(blob);
192
- }
193
- catch (error) {
194
- return err(wrapError("duckdb", error));
195
- }
196
- });
197
- }
198
- async importOnDb(dbName, data, options) {
199
- return this.withTelemetry("import", dbName, async () => {
200
- if (!this.requireAuth()) {
201
- return err(authRequiredError("duckdb"));
202
- }
203
- try {
204
- const session = this.context.session;
205
- const headers = this.context.invoke(session, "duckdb", dbName, DuckDbAction.IMPORT);
206
- const response = await this.context.fetch(`${this.host}/invoke`, {
207
- method: "POST",
208
- headers: {
209
- ...headers,
210
- "Content-Type": "application/x-duckdb",
211
- },
212
- body: new Blob([data]),
213
- signal: this.combineSignals(options?.signal),
214
- });
215
- if (!response.ok) {
216
- return this.handleErrorResponse(response, "import");
217
- }
218
- return ok(undefined);
219
- }
220
- catch (error) {
221
- return err(wrapError("duckdb", error));
222
- }
223
- });
224
- }
225
- // === Private helpers ===
226
- async invokeDuckDb(dbName, action, body, signal, extraHeaders) {
227
- const session = this.context.session;
228
- const headers = this.context.invoke(session, "duckdb", dbName, action);
229
- return this.context.fetch(`${this.host}/invoke`, {
230
- method: "POST",
231
- headers: {
232
- ...headers,
233
- "Content-Type": "application/json",
234
- ...extraHeaders,
235
- },
236
- body: JSON.stringify(body),
237
- signal: this.combineSignals(signal),
238
- });
239
- }
240
- async handleErrorResponse(response, operation) {
241
- const errorText = await response.text();
242
- let errorBody = {};
243
- try {
244
- errorBody = JSON.parse(errorText);
245
- }
246
- catch {
247
- // Not JSON
248
- }
249
- const errorCode = this.mapHttpStatusToErrorCode(response.status, errorBody.error);
250
- const message = errorBody.message ||
251
- `DuckDB ${operation} failed: ${response.status} - ${errorText}`;
252
- const meta = { status: response.status, statusText: response.statusText };
253
- if (response.status === 401) {
254
- const { resource, action } = parseAuthError(errorText);
255
- if (action)
256
- meta.requiredAction = action;
257
- if (resource)
258
- meta.resource = resource;
259
- }
260
- return err(serviceError(errorCode, message, "duckdb", { meta }));
261
- }
262
- mapHttpStatusToErrorCode(status, serverError) {
263
- switch (status) {
264
- case 400:
265
- return ErrorCodes.DUCKDB_ERROR;
266
- case 401:
267
- return ErrorCodes.AUTH_UNAUTHORIZED;
268
- case 403:
269
- if (serverError === "duckdb_readonly_violation") {
270
- return ErrorCodes.DUCKDB_READONLY_VIOLATION;
271
- }
272
- return ErrorCodes.DUCKDB_PERMISSION_DENIED;
273
- case 404:
274
- return ErrorCodes.DUCKDB_DATABASE_NOT_FOUND;
275
- case 413:
276
- return ErrorCodes.DUCKDB_RESPONSE_TOO_LARGE;
277
- case 429:
278
- return ErrorCodes.DUCKDB_QUOTA_EXCEEDED;
279
- default:
280
- return ErrorCodes.NETWORK_ERROR;
281
- }
282
- }
283
- }
284
- DuckDbService.serviceName = "duckdb";
285
- //# sourceMappingURL=DuckDbService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DuckDbService.js","sourceRoot":"","sources":["../../src/duckdb/DuckDbService.ts"],"names":[],"mappings":"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"}