@zintrust/core 0.1.20 → 0.1.22
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/package.json +2 -1
- package/src/boot/Application.d.ts.map +1 -1
- package/src/boot/Application.js +48 -10
- package/src/boot/bootstrap.js +2 -0
- package/src/cli/commands/MigrateCommand.d.ts.map +1 -1
- package/src/cli/commands/MigrateCommand.js +37 -4
- package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -1
- package/src/cli/d1/D1SqlMigrations.js +10 -4
- package/src/cli/scaffolding/ControllerGenerator.js +4 -4
- package/src/cli/scaffolding/GovernanceScaffolder.js +1 -1
- package/src/cli/scaffolding/MigrationGenerator.js +1 -1
- package/src/cli/scaffolding/ModelGenerator.d.ts +1 -1
- package/src/cli/scaffolding/ModelGenerator.d.ts.map +1 -1
- package/src/cli/scaffolding/ModelGenerator.js +11 -3
- package/src/cli/scaffolding/RouteGenerator.js +1 -1
- package/src/cli/scaffolding/ServiceScaffolder.js +4 -4
- package/src/config/broadcast.d.ts +14 -28
- package/src/config/broadcast.d.ts.map +1 -1
- package/src/config/broadcast.js +69 -35
- package/src/config/cache.d.ts +13 -45
- package/src/config/cache.d.ts.map +1 -1
- package/src/config/cache.js +69 -25
- package/src/config/database.d.ts +22 -64
- package/src/config/database.d.ts.map +1 -1
- package/src/config/database.js +99 -31
- package/src/config/env.d.ts +6 -0
- package/src/config/env.d.ts.map +1 -1
- package/src/config/env.js +7 -0
- package/src/config/index.d.ts +32 -136
- package/src/config/index.d.ts.map +1 -1
- package/src/config/mail.d.ts +19 -55
- package/src/config/mail.d.ts.map +1 -1
- package/src/config/mail.js +63 -21
- package/src/config/middleware.d.ts +24 -0
- package/src/config/middleware.d.ts.map +1 -1
- package/src/config/middleware.js +72 -52
- package/src/config/notification.d.ts +14 -27
- package/src/config/notification.d.ts.map +1 -1
- package/src/config/notification.js +82 -36
- package/src/config/queue.d.ts +21 -51
- package/src/config/queue.d.ts.map +1 -1
- package/src/config/queue.js +72 -27
- package/src/config/storage.d.ts +27 -34
- package/src/config/storage.d.ts.map +1 -1
- package/src/config/storage.js +97 -56
- package/src/config/type.d.ts +23 -1
- package/src/config/type.d.ts.map +1 -1
- package/src/config/type.js +10 -1
- package/src/http/parsers/MultipartParser.d.ts.map +1 -1
- package/src/http/parsers/MultipartParser.js +69 -42
- package/src/index.d.ts +9 -5
- package/src/index.d.ts.map +1 -1
- package/src/index.js +1 -0
- package/src/microservices/PostgresAdapter.d.ts.map +1 -1
- package/src/microservices/PostgresAdapter.js +0 -1
- package/src/migrations/MigrationLoader.d.ts +1 -1
- package/src/migrations/MigrationLoader.d.ts.map +1 -1
- package/src/migrations/Migrator.d.ts +3 -3
- package/src/migrations/Migrator.d.ts.map +1 -1
- package/src/migrations/Migrator.js +1 -1
- package/src/migrations/MigratorFactory.d.ts +1 -1
- package/src/migrations/MigratorFactory.d.ts.map +1 -1
- package/src/migrations/MigratorFactory.js +21 -5
- package/src/migrations/enum/index.d.ts +93 -0
- package/src/migrations/enum/index.d.ts.map +1 -0
- package/src/migrations/enum/index.js +92 -0
- package/src/migrations/schema/Blueprint.d.ts +1 -1
- package/src/migrations/schema/Blueprint.d.ts.map +1 -1
- package/src/migrations/schema/Blueprint.js +27 -25
- package/src/migrations/schema/Schema.d.ts +1 -1
- package/src/migrations/schema/Schema.d.ts.map +1 -1
- package/src/migrations/schema/Schema.js +4 -3
- package/src/migrations/schema/SchemaCompiler.d.ts +1 -1
- package/src/migrations/schema/SchemaCompiler.d.ts.map +1 -1
- package/src/migrations/schema/SchemaCompiler.js +99 -91
- package/src/migrations/schema/index.d.ts +4 -4
- package/src/migrations/schema/index.d.ts.map +1 -1
- package/src/migrations/schema/index.js +3 -3
- package/src/migrations/schema/types.d.ts +2 -1
- package/src/migrations/schema/types.d.ts.map +1 -1
- package/src/node-singletons/fs.d.ts +1 -1
- package/src/node-singletons/fs.d.ts.map +1 -1
- package/src/node-singletons/fs.js +1 -1
- package/src/orm/ConnectionManager.d.ts +6 -4
- package/src/orm/ConnectionManager.d.ts.map +1 -1
- package/src/orm/ConnectionManager.js +213 -75
- package/src/orm/Database.d.ts +4 -2
- package/src/orm/Database.d.ts.map +1 -1
- package/src/orm/Database.js +110 -67
- package/src/orm/DatabaseAdapter.d.ts +4 -2
- package/src/orm/DatabaseAdapter.d.ts.map +1 -1
- package/src/orm/DatabaseAdapter.js +17 -0
- package/src/orm/DatabaseRuntimeRegistration.d.ts.map +1 -1
- package/src/orm/DatabaseRuntimeRegistration.js +12 -0
- package/src/orm/Model.d.ts.map +1 -1
- package/src/orm/Model.js +24 -2
- package/src/orm/QueryBuilder.d.ts +1 -1
- package/src/orm/QueryBuilder.d.ts.map +1 -1
- package/src/orm/QueryBuilder.js +4 -3
- package/src/orm/adapters/D1Adapter.d.ts.map +1 -1
- package/src/orm/adapters/D1Adapter.js +2 -1
- package/src/orm/adapters/D1RemoteAdapter.d.ts.map +1 -1
- package/src/orm/adapters/D1RemoteAdapter.js +2 -1
- package/src/orm/adapters/MySQLAdapter.d.ts.map +1 -1
- package/src/orm/adapters/MySQLAdapter.js +2 -1
- package/src/orm/adapters/SQLServerAdapter.d.ts.map +1 -1
- package/src/orm/adapters/SQLServerAdapter.js +2 -1
- package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/src/orm/adapters/SQLiteAdapter.js +3 -2
- package/src/orm/migrations/MigrationStore.d.ts.map +1 -1
- package/src/performance/Optimizer.d.ts +6 -6
- package/src/performance/Optimizer.d.ts.map +1 -1
- package/src/performance/Optimizer.js +174 -52
- package/src/profiling/RequestProfiler.d.ts.map +1 -1
- package/src/profiling/RequestProfiler.js +3 -1
- package/src/routing/doc.d.ts +4 -5
- package/src/routing/doc.d.ts.map +1 -1
- package/src/routing/doc.js +35 -20
- package/src/routing/publicRoot.d.ts +9 -0
- package/src/routing/publicRoot.d.ts.map +1 -1
- package/src/routing/publicRoot.js +63 -2
- package/src/runtime/StartupConfigFileRegistry.d.ts +21 -0
- package/src/runtime/StartupConfigFileRegistry.d.ts.map +1 -0
- package/src/runtime/StartupConfigFileRegistry.js +43 -0
- package/src/runtime/useFileLoader.d.ts +26 -0
- package/src/runtime/useFileLoader.d.ts.map +1 -0
- package/src/runtime/useFileLoader.js +188 -0
- package/src/scripts/TemplateSync.js +4 -4
- package/src/security/XssProtection.d.ts.map +1 -1
- package/src/security/XssProtection.js +62 -14
- package/src/templates/project/basic/config/broadcast.ts.tpl +33 -17
- package/src/templates/project/basic/config/cache.ts.tpl +35 -17
- package/src/templates/project/basic/config/database.ts.tpl +68 -32
- package/src/templates/project/basic/config/logging/HttpLogger.ts.tpl +7 -114
- package/src/templates/project/basic/config/mail.ts.tpl +59 -13
- package/src/templates/project/basic/config/notification.ts.tpl +28 -17
- package/src/templates/project/basic/config/queue.ts.tpl +49 -17
- package/src/templates/project/basic/config/storage.ts.tpl +55 -18
- package/src/templates/project/basic/config/type.ts.tpl +0 -1
- package/src/templates/project/basic/src/index.ts.tpl +3 -0
- package/src/templates/project/basic/config/logging/KvLogger.ts.tpl +0 -181
- package/src/templates/project/basic/config/logging/SlackLogger.ts.tpl +0 -156
package/src/orm/Database.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Database Manager
|
|
3
3
|
* Central database connection management and query execution
|
|
4
4
|
*/
|
|
5
|
+
import Logger from '../config/logger.js';
|
|
5
6
|
import { OpenTelemetry } from '../observability/OpenTelemetry.js';
|
|
6
7
|
import { Env } from '../config/env.js';
|
|
7
8
|
import { ErrorFactory } from '../exceptions/ZintrustError.js';
|
|
@@ -69,6 +70,14 @@ const executeQuery = async (adapter, eventEmitter, sql, parameters, method) => {
|
|
|
69
70
|
eventEmitter.emit('after-query', sql, parameters, duration);
|
|
70
71
|
return result.rows;
|
|
71
72
|
};
|
|
73
|
+
const executeFullQuery = async (adapter, eventEmitter, sql, parameters) => {
|
|
74
|
+
eventEmitter.emit('before-query', sql, parameters);
|
|
75
|
+
const startTime = Date.now();
|
|
76
|
+
const result = await adapter.query(sql, parameters);
|
|
77
|
+
const duration = Date.now() - startTime;
|
|
78
|
+
eventEmitter.emit('after-query', sql, parameters, duration);
|
|
79
|
+
return result;
|
|
80
|
+
};
|
|
72
81
|
const executeQueryOne = async (adapter, eventEmitter, sql, parameters) => {
|
|
73
82
|
eventEmitter.emit('before-query', sql, parameters);
|
|
74
83
|
const startTime = Date.now();
|
|
@@ -163,13 +172,23 @@ const createQueryHandlers = (writeAdapter, _readAdapters, eventEmitter, connecte
|
|
|
163
172
|
async query(sql, parameters = [], isRead = false) {
|
|
164
173
|
if (connected.value === false)
|
|
165
174
|
await db.connect();
|
|
166
|
-
|
|
175
|
+
const adapter = getAdapter(isRead);
|
|
176
|
+
Logger.debug('Using DB adapter', {
|
|
177
|
+
type: adapter?.getType?.(),
|
|
178
|
+
hasRegistry: DatabaseAdapterRegistry.list(),
|
|
179
|
+
});
|
|
180
|
+
return executeQuery(adapter, eventEmitter, sql, parameters, 'query');
|
|
167
181
|
},
|
|
168
182
|
async queryOne(sql, parameters = [], isRead = false) {
|
|
169
183
|
if (connected.value === false)
|
|
170
184
|
await db.connect();
|
|
171
185
|
return executeQueryOne(getAdapter(isRead), eventEmitter, sql, parameters);
|
|
172
186
|
},
|
|
187
|
+
async execute(sql, parameters = [], isRead = false) {
|
|
188
|
+
if (connected.value === false)
|
|
189
|
+
await db.connect();
|
|
190
|
+
return executeFullQuery(getAdapter(isRead), eventEmitter, sql, parameters);
|
|
191
|
+
},
|
|
173
192
|
async transaction(callback) {
|
|
174
193
|
if (connected.value === false)
|
|
175
194
|
await db.connect();
|
|
@@ -177,78 +196,102 @@ const createQueryHandlers = (writeAdapter, _readAdapters, eventEmitter, connecte
|
|
|
177
196
|
},
|
|
178
197
|
};
|
|
179
198
|
};
|
|
199
|
+
const setupDbInstrumentation = (dbConfig, eventEmitter) => {
|
|
200
|
+
const cleanupFunctions = [];
|
|
201
|
+
const metricsCleanup = installDbMetricsIfEnabled(dbConfig, eventEmitter);
|
|
202
|
+
const tracingCleanup = installDbTracingIfEnabled(dbConfig, eventEmitter);
|
|
203
|
+
if (metricsCleanup)
|
|
204
|
+
cleanupFunctions.push(metricsCleanup);
|
|
205
|
+
if (tracingCleanup)
|
|
206
|
+
cleanupFunctions.push(tracingCleanup);
|
|
207
|
+
return cleanupFunctions;
|
|
208
|
+
};
|
|
209
|
+
const applyQueryHandlers = (db, queryHandlers) => {
|
|
210
|
+
db.query = queryHandlers.query;
|
|
211
|
+
db.queryOne = queryHandlers.queryOne;
|
|
212
|
+
db.execute = queryHandlers.execute;
|
|
213
|
+
db.transaction = queryHandlers.transaction;
|
|
214
|
+
};
|
|
215
|
+
const createDbFacade = (input) => {
|
|
216
|
+
const { dbConfig, writeAdapter, eventEmitter, connected, getAdapter, connectionHandlers, queryHandlers, cleanupFunctions, } = input;
|
|
217
|
+
const db = {
|
|
218
|
+
connect: connectionHandlers.connect,
|
|
219
|
+
disconnect: connectionHandlers.disconnect,
|
|
220
|
+
isConnected() {
|
|
221
|
+
return connected.value;
|
|
222
|
+
},
|
|
223
|
+
query: queryHandlers.query,
|
|
224
|
+
queryOne: queryHandlers.queryOne,
|
|
225
|
+
execute: queryHandlers.execute,
|
|
226
|
+
transaction: queryHandlers.transaction,
|
|
227
|
+
table(name) {
|
|
228
|
+
return QueryBuilder.create(name, db);
|
|
229
|
+
},
|
|
230
|
+
onBeforeQuery: (h) => eventEmitter.on('before-query', h),
|
|
231
|
+
onAfterQuery: (h) => eventEmitter.on('after-query', h),
|
|
232
|
+
offBeforeQuery: (h) => eventEmitter.off('before-query', h),
|
|
233
|
+
offAfterQuery: (h) => eventEmitter.off('after-query', h),
|
|
234
|
+
getAdapterInstance(isRead = false) {
|
|
235
|
+
return getAdapter(isRead);
|
|
236
|
+
},
|
|
237
|
+
getType() {
|
|
238
|
+
return writeAdapter.getType();
|
|
239
|
+
},
|
|
240
|
+
getConfig() {
|
|
241
|
+
return { ...dbConfig };
|
|
242
|
+
},
|
|
243
|
+
dispose() {
|
|
244
|
+
// Clean up event listeners to prevent memory leaks
|
|
245
|
+
for (const cleanup of cleanupFunctions) {
|
|
246
|
+
cleanup();
|
|
247
|
+
}
|
|
248
|
+
cleanupFunctions.length = 0;
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
return db;
|
|
252
|
+
};
|
|
253
|
+
const createDatabaseInstance = (dbConfig) => {
|
|
254
|
+
const eventEmitter = new EventEmitter();
|
|
255
|
+
const connected = { value: false };
|
|
256
|
+
const connectInFlight = { value: undefined };
|
|
257
|
+
let readIndex = 0;
|
|
258
|
+
const { writeAdapter, readAdapters } = initializeAdapters(dbConfig);
|
|
259
|
+
const cleanupFunctions = setupDbInstrumentation(dbConfig, eventEmitter);
|
|
260
|
+
const getAdapter = (isRead = false) => {
|
|
261
|
+
if (isRead === false || readAdapters.length === 0) {
|
|
262
|
+
return writeAdapter;
|
|
263
|
+
}
|
|
264
|
+
const adapter = readAdapters[readIndex];
|
|
265
|
+
if (adapter === undefined)
|
|
266
|
+
return writeAdapter;
|
|
267
|
+
readIndex = (readIndex + 1) % readAdapters.length;
|
|
268
|
+
return adapter;
|
|
269
|
+
};
|
|
270
|
+
const connectionHandlers = createConnectionHandlers(writeAdapter, readAdapters, connected, connectInFlight);
|
|
271
|
+
// Create temporary handlers with db as undefined, then update after db is created
|
|
272
|
+
let queryHandlers = createQueryHandlers(writeAdapter, readAdapters, eventEmitter, connected, {}, getAdapter);
|
|
273
|
+
const db = createDbFacade({
|
|
274
|
+
dbConfig,
|
|
275
|
+
writeAdapter,
|
|
276
|
+
eventEmitter,
|
|
277
|
+
connected,
|
|
278
|
+
getAdapter,
|
|
279
|
+
connectionHandlers,
|
|
280
|
+
queryHandlers,
|
|
281
|
+
cleanupFunctions,
|
|
282
|
+
});
|
|
283
|
+
// Update handlers with actual db reference for circular dependency
|
|
284
|
+
queryHandlers = createQueryHandlers(writeAdapter, readAdapters, eventEmitter, connected, db, getAdapter);
|
|
285
|
+
applyQueryHandlers(db, queryHandlers);
|
|
286
|
+
return db;
|
|
287
|
+
};
|
|
180
288
|
export const Database = Object.freeze({
|
|
181
289
|
/**
|
|
182
290
|
* Create a new database instance
|
|
183
291
|
*/
|
|
184
292
|
create(config) {
|
|
185
293
|
const dbConfig = config ?? { driver: 'sqlite', database: ':memory:' };
|
|
186
|
-
|
|
187
|
-
const connected = { value: false };
|
|
188
|
-
const connectInFlight = { value: undefined };
|
|
189
|
-
let readIndex = 0;
|
|
190
|
-
const { writeAdapter, readAdapters } = initializeAdapters(dbConfig);
|
|
191
|
-
// Store cleanup functions for event listeners
|
|
192
|
-
const cleanupFunctions = [];
|
|
193
|
-
// Install metrics and tracing, capture cleanup functions
|
|
194
|
-
const metricsCleanup = installDbMetricsIfEnabled(dbConfig, eventEmitter);
|
|
195
|
-
const tracingCleanup = installDbTracingIfEnabled(dbConfig, eventEmitter);
|
|
196
|
-
if (metricsCleanup)
|
|
197
|
-
cleanupFunctions.push(metricsCleanup);
|
|
198
|
-
if (tracingCleanup)
|
|
199
|
-
cleanupFunctions.push(tracingCleanup);
|
|
200
|
-
const getAdapter = (isRead = false) => {
|
|
201
|
-
if (isRead === false || readAdapters.length === 0) {
|
|
202
|
-
return writeAdapter;
|
|
203
|
-
}
|
|
204
|
-
const adapter = readAdapters[readIndex];
|
|
205
|
-
if (adapter === undefined)
|
|
206
|
-
return writeAdapter;
|
|
207
|
-
readIndex = (readIndex + 1) % readAdapters.length;
|
|
208
|
-
return adapter;
|
|
209
|
-
};
|
|
210
|
-
const connectionHandlers = createConnectionHandlers(writeAdapter, readAdapters, connected, connectInFlight);
|
|
211
|
-
// Create temporary handlers with db as undefined, then update after db is created
|
|
212
|
-
let queryHandlers = createQueryHandlers(writeAdapter, readAdapters, eventEmitter, connected, {}, getAdapter);
|
|
213
|
-
const db = {
|
|
214
|
-
connect: connectionHandlers.connect,
|
|
215
|
-
disconnect: connectionHandlers.disconnect,
|
|
216
|
-
isConnected() {
|
|
217
|
-
return connected.value;
|
|
218
|
-
},
|
|
219
|
-
query: queryHandlers.query,
|
|
220
|
-
queryOne: queryHandlers.queryOne,
|
|
221
|
-
transaction: queryHandlers.transaction,
|
|
222
|
-
table(name) {
|
|
223
|
-
return QueryBuilder.create(name, db);
|
|
224
|
-
},
|
|
225
|
-
onBeforeQuery: (h) => eventEmitter.on('before-query', h),
|
|
226
|
-
onAfterQuery: (h) => eventEmitter.on('after-query', h),
|
|
227
|
-
offBeforeQuery: (h) => eventEmitter.off('before-query', h),
|
|
228
|
-
offAfterQuery: (h) => eventEmitter.off('after-query', h),
|
|
229
|
-
getAdapterInstance(isRead = false) {
|
|
230
|
-
return getAdapter(isRead);
|
|
231
|
-
},
|
|
232
|
-
getType() {
|
|
233
|
-
return writeAdapter.getType();
|
|
234
|
-
},
|
|
235
|
-
getConfig() {
|
|
236
|
-
return { ...dbConfig };
|
|
237
|
-
},
|
|
238
|
-
dispose() {
|
|
239
|
-
// Clean up event listeners to prevent memory leaks
|
|
240
|
-
for (const cleanup of cleanupFunctions) {
|
|
241
|
-
cleanup();
|
|
242
|
-
}
|
|
243
|
-
cleanupFunctions.length = 0;
|
|
244
|
-
},
|
|
245
|
-
};
|
|
246
|
-
// Update handlers with actual db reference for circular dependency
|
|
247
|
-
queryHandlers = createQueryHandlers(writeAdapter, readAdapters, eventEmitter, connected, db, getAdapter);
|
|
248
|
-
db.query = queryHandlers.query;
|
|
249
|
-
db.queryOne = queryHandlers.queryOne;
|
|
250
|
-
db.transaction = queryHandlers.transaction;
|
|
251
|
-
return db;
|
|
294
|
+
return createDatabaseInstance(dbConfig);
|
|
252
295
|
},
|
|
253
296
|
});
|
|
254
297
|
const databaseInstances = new Map();
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Database Adapter Interface
|
|
3
3
|
* Defines contract for different database implementations
|
|
4
4
|
*/
|
|
5
|
+
import type { SupportedDriver } from '../migrations/enum';
|
|
5
6
|
/**
|
|
6
7
|
* Minimal D1 Database interface for type safety
|
|
7
8
|
*/
|
|
@@ -23,7 +24,7 @@ export interface ID1Database {
|
|
|
23
24
|
}
|
|
24
25
|
export interface DatabaseConfig {
|
|
25
26
|
d1?: ID1Database;
|
|
26
|
-
driver:
|
|
27
|
+
driver: SupportedDriver;
|
|
27
28
|
database?: string;
|
|
28
29
|
host?: string;
|
|
29
30
|
port?: number;
|
|
@@ -36,6 +37,7 @@ export interface DatabaseConfig {
|
|
|
36
37
|
export interface QueryResult {
|
|
37
38
|
rows: Record<string, unknown>[];
|
|
38
39
|
rowCount: number;
|
|
40
|
+
lastInsertId?: string | number | bigint;
|
|
39
41
|
}
|
|
40
42
|
export interface IDatabaseAdapter {
|
|
41
43
|
/**
|
|
@@ -85,7 +87,7 @@ export interface IDatabaseAdapter {
|
|
|
85
87
|
/**
|
|
86
88
|
* Get database type
|
|
87
89
|
*/
|
|
88
|
-
getType():
|
|
90
|
+
getType(): SupportedDriver;
|
|
89
91
|
/**
|
|
90
92
|
* Check connection status
|
|
91
93
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseAdapter.d.ts","sourceRoot":"","sources":["../../../src/orm/DatabaseAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QACpB,IAAI,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG;YAC1B,GAAG,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC;gBAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBAAC,OAAO,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YACjF,KAAK,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACxC,GAAG,IAAI,OAAO,CAAC;gBAAE,OAAO,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SACtD,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"DatabaseAdapter.d.ts","sourceRoot":"","sources":["../../../src/orm/DatabaseAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,26 @@ export const BaseAdapter = Object.freeze({
|
|
|
20
20
|
if (typeof value === 'boolean') {
|
|
21
21
|
return value ? '1' : '0';
|
|
22
22
|
}
|
|
23
|
+
// Support BigInt explicitly to avoid JSON.stringify errors and driver issues
|
|
24
|
+
if (typeof value === 'bigint') {
|
|
25
|
+
return String(value);
|
|
26
|
+
}
|
|
27
|
+
// Dates should be passed as ISO strings
|
|
28
|
+
if (value instanceof Date) {
|
|
29
|
+
return `'${value.toISOString()}'`;
|
|
30
|
+
}
|
|
23
31
|
if (typeof value === 'number') {
|
|
24
32
|
return String(value);
|
|
25
33
|
}
|
|
34
|
+
// Buffer / Uint8Array -> base64 string
|
|
35
|
+
// Some DB adapters expect binary types; returning base64-encoded string is a safe default
|
|
36
|
+
// and prevents JSON.stringify(BigInt) errors when objects include BigInt.
|
|
37
|
+
if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) {
|
|
38
|
+
return `'${value.toString('base64')}'`;
|
|
39
|
+
}
|
|
40
|
+
if (value instanceof Uint8Array) {
|
|
41
|
+
return `'${Buffer.from(value).toString('base64')}'`;
|
|
42
|
+
}
|
|
26
43
|
// For objects, convert to JSON string representation
|
|
27
44
|
return `'${JSON.stringify(value).replaceAll("'", "''")}'`;
|
|
28
45
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseRuntimeRegistration.d.ts","sourceRoot":"","sources":["../../../src/orm/DatabaseRuntimeRegistration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EAGpB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"DatabaseRuntimeRegistration.d.ts","sourceRoot":"","sources":["../../../src/orm/DatabaseRuntimeRegistration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EAGpB,MAAM,cAAc,CAAC;AAwDtB;;;;;;;GAOG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAWpF"}
|
|
@@ -22,6 +22,7 @@ const toOrmConfig = (cfg) => {
|
|
|
22
22
|
database: cfg.database,
|
|
23
23
|
username: cfg.username,
|
|
24
24
|
password: cfg.password,
|
|
25
|
+
readHosts: cfg.readHosts,
|
|
25
26
|
};
|
|
26
27
|
case 'mysql':
|
|
27
28
|
return {
|
|
@@ -31,6 +32,17 @@ const toOrmConfig = (cfg) => {
|
|
|
31
32
|
database: cfg.database,
|
|
32
33
|
username: cfg.username,
|
|
33
34
|
password: cfg.password,
|
|
35
|
+
readHosts: cfg.readHosts,
|
|
36
|
+
};
|
|
37
|
+
case 'sqlserver':
|
|
38
|
+
return {
|
|
39
|
+
driver: 'sqlserver',
|
|
40
|
+
host: cfg.host,
|
|
41
|
+
port: cfg.port,
|
|
42
|
+
database: cfg.database,
|
|
43
|
+
username: cfg.username,
|
|
44
|
+
password: cfg.password,
|
|
45
|
+
readHosts: cfg.readHosts,
|
|
34
46
|
};
|
|
35
47
|
default:
|
|
36
48
|
// Exhaustive check (kept for future driver additions)
|
package/src/orm/Model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/orm/Model.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/orm/Model.ts"],"names":[],"mappings":"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"}
|
package/src/orm/Model.js
CHANGED
|
@@ -25,6 +25,17 @@ const castAttribute = (config, key, value) => {
|
|
|
25
25
|
return value === true || value === 1 || value === '1';
|
|
26
26
|
case 'integer':
|
|
27
27
|
return Number.parseInt(String(value), 10);
|
|
28
|
+
case 'bigint': {
|
|
29
|
+
// Native BigInt if supported, otherwise string
|
|
30
|
+
try {
|
|
31
|
+
return BigInt(value);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return String(value);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
case 'uuid':
|
|
38
|
+
return String(value);
|
|
28
39
|
case 'float':
|
|
29
40
|
return Number.parseFloat(String(value));
|
|
30
41
|
case 'date':
|
|
@@ -70,8 +81,19 @@ const runObservers = async (config, hook, model) => {
|
|
|
70
81
|
const createModelJSON = (config, attrs) => {
|
|
71
82
|
const json = {};
|
|
72
83
|
for (const [key, value] of Object.entries(attrs)) {
|
|
73
|
-
if (
|
|
74
|
-
|
|
84
|
+
if (config.hidden.includes(key))
|
|
85
|
+
continue;
|
|
86
|
+
// Serialize BigInt as string to keep JSON stable
|
|
87
|
+
if (typeof value === 'bigint') {
|
|
88
|
+
json[key] = String(value);
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
// Convert Dates to ISO strings for JSON
|
|
92
|
+
if (value instanceof Date) {
|
|
93
|
+
json[key] = value.toISOString();
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
json[key] = value;
|
|
75
97
|
}
|
|
76
98
|
return json;
|
|
77
99
|
};
|
|
@@ -14,7 +14,7 @@ export interface WhereClause {
|
|
|
14
14
|
* Provides access to the created record ID, affected rows count, and the full record if available
|
|
15
15
|
*/
|
|
16
16
|
export interface InsertResult {
|
|
17
|
-
id: string | number | null;
|
|
17
|
+
id: string | number | bigint | null;
|
|
18
18
|
affectedRows: number;
|
|
19
19
|
insertedRecords?: Record<string, unknown>[];
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["../../../src/orm/QueryBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["../../../src/orm/QueryBuilder.ts"],"names":[],"mappings":"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"}
|
package/src/orm/QueryBuilder.js
CHANGED
|
@@ -570,13 +570,14 @@ function attachWriteMethods(builder, state, db) {
|
|
|
570
570
|
throw ErrorFactory.createDatabaseError('INSERT requires a table name');
|
|
571
571
|
const compiled = compileInsert(tableName, values, state.dialect);
|
|
572
572
|
const items = Array.isArray(values) ? values : [values];
|
|
573
|
-
await currentDb.
|
|
573
|
+
const result = await currentDb.execute(compiled.sql, compiled.parameters, false);
|
|
574
574
|
// Return InsertResult with metadata
|
|
575
575
|
// Note: lastInsertId typically only available for single-row inserts in most databases
|
|
576
576
|
// For multi-row inserts, use the insertedRecords array
|
|
577
577
|
return {
|
|
578
|
-
id:
|
|
579
|
-
|
|
578
|
+
id: result.lastInsertId ??
|
|
579
|
+
(items.length === 1 ? (items[0]?.['id'] ?? null) : null),
|
|
580
|
+
affectedRows: result.rowCount,
|
|
580
581
|
insertedRecords: items,
|
|
581
582
|
};
|
|
582
583
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1Adapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/D1Adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"D1Adapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/D1Adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EACV,cAAc,EAEd,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAU9B;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB;;OAEG;oBAEa,cAAc,GAAG,gBAAgB;EAkHjD,CAAC;AAEH,eAAe,SAAS,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { Cloudflare } from '../../config/cloudflare.js';
|
|
|
5
5
|
import { FeatureFlags } from '../../config/features.js';
|
|
6
6
|
import { Logger } from '../../config/logger.js';
|
|
7
7
|
import { ErrorFactory } from '../../exceptions/ZintrustError.js';
|
|
8
|
+
import { AdaptersEnum } from '../../migrations/enum/index.js';
|
|
8
9
|
import { QueryBuilder } from '../QueryBuilder.js';
|
|
9
10
|
/**
|
|
10
11
|
* Get D1 binding from config or global environment
|
|
@@ -96,7 +97,7 @@ export const D1Adapter = Object.freeze({
|
|
|
96
97
|
}
|
|
97
98
|
},
|
|
98
99
|
getType() {
|
|
99
|
-
return
|
|
100
|
+
return AdaptersEnum.d1;
|
|
100
101
|
},
|
|
101
102
|
isConnected() {
|
|
102
103
|
return connected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1RemoteAdapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/D1RemoteAdapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"D1RemoteAdapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/D1RemoteAdapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,sBAAsB,CAAC;AA+I1F,eAAO,MAAM,eAAe;oBACV,cAAc,GAAG,gBAAgB;EA+EjD,CAAC;AAEH,eAAe,eAAe,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { RemoteSignedJson } from '../../common/RemoteSignedJson.js';
|
|
7
7
|
import { Env } from '../../config/env.js';
|
|
8
8
|
import { ErrorFactory } from '../../exceptions/ZintrustError.js';
|
|
9
|
+
import { AdaptersEnum } from '../../migrations/enum/index.js';
|
|
9
10
|
import { QueryBuilder } from '../QueryBuilder.js';
|
|
10
11
|
import { SignedRequest } from '../../security/SignedRequest.js';
|
|
11
12
|
const createRemoteConfig = () => {
|
|
@@ -148,7 +149,7 @@ export const D1RemoteAdapter = Object.freeze({
|
|
|
148
149
|
return out.rows;
|
|
149
150
|
},
|
|
150
151
|
getType() {
|
|
151
|
-
return
|
|
152
|
+
return AdaptersEnum.d1Remote;
|
|
152
153
|
},
|
|
153
154
|
isConnected() {
|
|
154
155
|
return connected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MySQLAdapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/MySQLAdapter.ts"],"names":[],"mappings":"AACA;;GAEG;
|
|
1
|
+
{"version":3,"file":"MySQLAdapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/MySQLAdapter.ts"],"names":[],"mappings":"AACA;;GAEG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,sBAAsB,CAAC;AAyG1F;;;GAGG;AACH,eAAO,MAAM,YAAY;IACvB;;OAEG;mBACY,cAAc,GAAG,gBAAgB;EAIhD,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { FeatureFlags } from '../../config/features.js';
|
|
6
6
|
import { Logger } from '../../config/logger.js';
|
|
7
7
|
import { ErrorFactory } from '../../exceptions/ZintrustError.js';
|
|
8
|
+
import { AdaptersEnum } from '../../migrations/enum/index.js';
|
|
8
9
|
import { QueryBuilder } from '../QueryBuilder.js';
|
|
9
10
|
function createRawQuery(state) {
|
|
10
11
|
return async function rawQuery(sql, parameters) {
|
|
@@ -68,7 +69,7 @@ function createMySQLAdapterInstance(config, state) {
|
|
|
68
69
|
}
|
|
69
70
|
},
|
|
70
71
|
getType() {
|
|
71
|
-
return
|
|
72
|
+
return AdaptersEnum.mysql;
|
|
72
73
|
},
|
|
73
74
|
isConnected() {
|
|
74
75
|
return state.connected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLServerAdapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/SQLServerAdapter.ts"],"names":[],"mappings":"AACA;;GAEG;
|
|
1
|
+
{"version":3,"file":"SQLServerAdapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/SQLServerAdapter.ts"],"names":[],"mappings":"AACA;;GAEG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,sBAAsB,CAAC;AAG1F;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;OAEG;mBACY,cAAc,GAAG,gBAAgB;EA4EhD,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { FeatureFlags } from '../../config/features.js';
|
|
6
6
|
import { Logger } from '../../config/logger.js';
|
|
7
7
|
import { ErrorFactory } from '../../exceptions/ZintrustError.js';
|
|
8
|
+
import { AdaptersEnum } from '../../migrations/enum/index.js';
|
|
8
9
|
import { QueryBuilder } from '../QueryBuilder.js';
|
|
9
10
|
/**
|
|
10
11
|
* SQL Server adapter implementation
|
|
@@ -50,7 +51,7 @@ export const SQLServerAdapter = Object.freeze({
|
|
|
50
51
|
}
|
|
51
52
|
},
|
|
52
53
|
getType() {
|
|
53
|
-
return
|
|
54
|
+
return AdaptersEnum.sqlserver;
|
|
54
55
|
},
|
|
55
56
|
isConnected() {
|
|
56
57
|
return connected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLiteAdapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/SQLiteAdapter.ts"],"names":[],"mappings":"AACA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"SQLiteAdapter.d.ts","sourceRoot":"","sources":["../../../../src/orm/adapters/SQLiteAdapter.ts"],"names":[],"mappings":"AACA;;;GAGG;AAUH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,sBAAsB,CAAC;AA6M1F,iBAAS,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CA0FrE;AAED,eAAO,MAAM,aAAa;;EAExB,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { databaseConfig } from '../../config/database.js';
|
|
|
7
7
|
import { FeatureFlags } from '../../config/features.js';
|
|
8
8
|
import { Logger } from '../../config/logger.js';
|
|
9
9
|
import { ErrorFactory } from '../../exceptions/ZintrustError.js';
|
|
10
|
+
import { AdaptersEnum } from '../../migrations/enum/index.js';
|
|
10
11
|
import fs from '../../node-singletons/fs.js';
|
|
11
12
|
import * as path from '../../node-singletons/path.js';
|
|
12
13
|
import { performance } from '../../node-singletons/perf-hooks.js';
|
|
@@ -83,7 +84,7 @@ function executeQuery(db, sql, parameters) {
|
|
|
83
84
|
if (databaseConfig.logging.enabled) {
|
|
84
85
|
Logger.debug('SQLite query executed', { durationMs: performance.now() - start, sql });
|
|
85
86
|
}
|
|
86
|
-
return { rows: [], rowCount: info.changes };
|
|
87
|
+
return { rows: [], rowCount: info.changes, lastInsertId: info.lastInsertRowid };
|
|
87
88
|
}
|
|
88
89
|
function executeRawQuery(db, sql, parameters) {
|
|
89
90
|
const stmt = db.prepare(sql);
|
|
@@ -208,7 +209,7 @@ function createSQLiteAdapter(config) {
|
|
|
208
209
|
await adapter.query('PRAGMA foreign_keys = ON', []);
|
|
209
210
|
},
|
|
210
211
|
getType() {
|
|
211
|
-
return
|
|
212
|
+
return AdaptersEnum.sqlite;
|
|
212
213
|
},
|
|
213
214
|
isConnected() {
|
|
214
215
|
return Boolean(state.db);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationStore.d.ts","sourceRoot":"","sources":["../../../../src/orm/migrations/MigrationStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MigrationStore.d.ts","sourceRoot":"","sources":["../../../../src/orm/migrations/MigrationStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA8ChG,eAAO,MAAM,cAAc;oBACH,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;8BASzC,SAAS,UACN,cAAc,YACZ,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;sBAiBZ,SAAS,SACN,cAAc,WACZ,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;sBAyBlC,SAAS,UACL;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAC9E,OAAO,CAAC,IAAI,CAAC;mBAuCV,SAAS,UACL;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,cAAc,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,qBAAqB,CAAC;QAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,GACA,OAAO,CAAC,IAAI,CAAC;kCAiBV,SAAS,UACL;QAAE,KAAK,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GACnE,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;8BAyB5C,SAAS,UACL;QAAE,KAAK,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GACjD,OAAO,CAAC,MAAM,EAAE,CAAC;qBAgBd,SAAS,UACL;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAC/D,OAAO,CAAC,IAAI,CAAC;EAShB,CAAC"}
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
* Implements caching, lazy-loading, and parallel generation
|
|
4
4
|
*/
|
|
5
5
|
export interface IGenerationCache {
|
|
6
|
-
get(type: string, params: Record<string, unknown>): string | null
|
|
7
|
-
set(type: string, params: Record<string, unknown>, code: string): void
|
|
8
|
-
save(): void
|
|
9
|
-
clear(): void
|
|
10
|
-
getStats(): {
|
|
6
|
+
get(type: string, params: Record<string, unknown>): Promise<string | null>;
|
|
7
|
+
set(type: string, params: Record<string, unknown>, code: string): Promise<void>;
|
|
8
|
+
save(): Promise<void>;
|
|
9
|
+
clear(): Promise<void>;
|
|
10
|
+
getStats(): Promise<{
|
|
11
11
|
size: number;
|
|
12
12
|
entries: number;
|
|
13
13
|
diskUsage: string;
|
|
14
14
|
keys: string[];
|
|
15
|
-
}
|
|
15
|
+
}>;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Generation Cache - Cache generated code to avoid re-generating identical code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Optimizer.d.ts","sourceRoot":"","sources":["../../../src/performance/Optimizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Optimizer.d.ts","sourceRoot":"","sources":["../../../src/performance/Optimizer.ts"],"names":[],"mappings":"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"}
|