@onroad/core 4.0.0-alpha.4 → 4.0.0-alpha.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +604 -54
- package/dist/OnRoadExpress.d.ts.map +1 -1
- package/dist/OnRoadExpress.js +18 -5
- package/dist/OnRoadExpress.js.map +1 -1
- package/dist/core/AbstractController.d.ts +10 -0
- package/dist/core/AbstractController.d.ts.map +1 -1
- package/dist/core/AbstractController.js +48 -1
- package/dist/core/AbstractController.js.map +1 -1
- package/dist/core/AbstractService.d.ts +5 -0
- package/dist/core/AbstractService.d.ts.map +1 -1
- package/dist/core/AbstractService.js +36 -0
- package/dist/core/AbstractService.js.map +1 -1
- package/dist/core/SequelizeRepository.d.ts +5 -1
- package/dist/core/SequelizeRepository.d.ts.map +1 -1
- package/dist/core/SequelizeRepository.js +26 -1
- package/dist/core/SequelizeRepository.js.map +1 -1
- package/dist/database/ConnectionManager.d.ts +1 -0
- package/dist/database/ConnectionManager.d.ts.map +1 -1
- package/dist/database/ConnectionManager.js +10 -1
- package/dist/database/ConnectionManager.js.map +1 -1
- package/dist/dev/DevServer.d.ts +67 -0
- package/dist/dev/DevServer.d.ts.map +1 -0
- package/dist/dev/DevServer.js +496 -0
- package/dist/dev/DevServer.js.map +1 -0
- package/dist/dev/DevToolsController.d.ts +45 -0
- package/dist/dev/DevToolsController.d.ts.map +1 -0
- package/dist/dev/DevToolsController.js +426 -0
- package/dist/dev/DevToolsController.js.map +1 -0
- package/dist/dev/DevToolsPlugin.d.ts +10 -0
- package/dist/dev/DevToolsPlugin.d.ts.map +1 -0
- package/dist/dev/DevToolsPlugin.js +23 -0
- package/dist/dev/DevToolsPlugin.js.map +1 -0
- package/dist/dev/MigrationCLI.d.ts +19 -0
- package/dist/dev/MigrationCLI.d.ts.map +1 -0
- package/dist/dev/MigrationCLI.js +140 -0
- package/dist/dev/MigrationCLI.js.map +1 -0
- package/dist/dev/index.d.ts +8 -0
- package/dist/dev/index.d.ts.map +1 -0
- package/dist/dev/index.js +5 -0
- package/dist/dev/index.js.map +1 -0
- package/dist/entity/EntityRegistry.d.ts +26 -0
- package/dist/entity/EntityRegistry.d.ts.map +1 -1
- package/dist/entity/EntityRegistry.js +140 -4
- package/dist/entity/EntityRegistry.js.map +1 -1
- package/dist/entity/decorators.d.ts +1 -0
- package/dist/entity/decorators.d.ts.map +1 -1
- package/dist/entity/decorators.js.map +1 -1
- package/dist/filters/builtins/JwtFilter.d.ts +6 -3
- package/dist/filters/builtins/JwtFilter.d.ts.map +1 -1
- package/dist/filters/builtins/JwtFilter.js +29 -4
- package/dist/filters/builtins/JwtFilter.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/storage/AnexoController.d.ts +11 -0
- package/dist/storage/AnexoController.d.ts.map +1 -0
- package/dist/storage/AnexoController.js +79 -0
- package/dist/storage/AnexoController.js.map +1 -0
- package/dist/storage/AnexoEntity.d.ts +12 -0
- package/dist/storage/AnexoEntity.d.ts.map +1 -0
- package/dist/storage/AnexoEntity.js +62 -0
- package/dist/storage/AnexoEntity.js.map +1 -0
- package/dist/storage/AnexoRepository.d.ts +5 -0
- package/dist/storage/AnexoRepository.d.ts.map +1 -0
- package/dist/storage/AnexoRepository.js +16 -0
- package/dist/storage/AnexoRepository.js.map +1 -0
- package/dist/storage/AnexoService.d.ts +56 -0
- package/dist/storage/AnexoService.d.ts.map +1 -0
- package/dist/storage/AnexoService.js +182 -0
- package/dist/storage/AnexoService.js.map +1 -0
- package/dist/storage/GCSStorageProvider.d.ts +15 -0
- package/dist/storage/GCSStorageProvider.d.ts.map +1 -0
- package/dist/storage/GCSStorageProvider.js +58 -0
- package/dist/storage/GCSStorageProvider.js.map +1 -0
- package/dist/storage/StorageProvider.d.ts +28 -0
- package/dist/storage/StorageProvider.d.ts.map +1 -1
- package/dist/storage/StorageProvider.js.map +1 -1
- package/dist/storage/index.d.ts +5 -1
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +4 -0
- package/dist/storage/index.js.map +1 -1
- package/package.json +11 -1
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { existsSync, writeFileSync, mkdirSync } from "fs";
|
|
2
|
+
import { resolve, join } from "path";
|
|
3
|
+
// --- CLI ---
|
|
4
|
+
export class MigrationCLI {
|
|
5
|
+
migrationsPath;
|
|
6
|
+
connection;
|
|
7
|
+
tenant;
|
|
8
|
+
constructor(config) {
|
|
9
|
+
this.migrationsPath = config.migrationsPath;
|
|
10
|
+
this.connection = config.connection;
|
|
11
|
+
this.tenant = config.tenant ?? "default";
|
|
12
|
+
}
|
|
13
|
+
async run(args = process.argv.slice(2)) {
|
|
14
|
+
const command = args[0];
|
|
15
|
+
const param = args[1];
|
|
16
|
+
switch (command) {
|
|
17
|
+
case "create":
|
|
18
|
+
if (!param) {
|
|
19
|
+
console.error("Usage: migration create <name>");
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
this.create(param);
|
|
23
|
+
break;
|
|
24
|
+
case "up":
|
|
25
|
+
await this.up(param ? parseInt(param, 10) : undefined);
|
|
26
|
+
break;
|
|
27
|
+
case "down":
|
|
28
|
+
await this.down(param ? parseInt(param, 10) : 1);
|
|
29
|
+
break;
|
|
30
|
+
case "status":
|
|
31
|
+
await this.status();
|
|
32
|
+
break;
|
|
33
|
+
default:
|
|
34
|
+
console.log("Usage: migration <create|up|down|status> [param]");
|
|
35
|
+
console.log("");
|
|
36
|
+
console.log("Commands:");
|
|
37
|
+
console.log(" create <name> Create a new migration file");
|
|
38
|
+
console.log(" up [steps] Run pending migrations (all or N steps)");
|
|
39
|
+
console.log(" down [steps] Revert last N migrations (default: 1)");
|
|
40
|
+
console.log(" status Show migration status");
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// --- Commands ---
|
|
45
|
+
create(name) {
|
|
46
|
+
const timestamp = new Date().toISOString().replace(/[-:T]/g, "").slice(0, 14);
|
|
47
|
+
const safeName = name.replace(/[^a-zA-Z0-9_-]/g, "-").toLowerCase();
|
|
48
|
+
const fileName = `${timestamp}-${safeName}.ts`;
|
|
49
|
+
const dirPath = resolve(this.migrationsPath);
|
|
50
|
+
if (!existsSync(dirPath)) {
|
|
51
|
+
mkdirSync(dirPath, { recursive: true });
|
|
52
|
+
}
|
|
53
|
+
const filePath = join(dirPath, fileName);
|
|
54
|
+
writeFileSync(filePath, MIGRATION_TEMPLATE(safeName), "utf-8");
|
|
55
|
+
console.log(`Migration created: ${filePath}`);
|
|
56
|
+
}
|
|
57
|
+
async up(steps) {
|
|
58
|
+
const runner = await this.getRunner();
|
|
59
|
+
const applied = await runner.up(steps);
|
|
60
|
+
if (applied.length === 0) {
|
|
61
|
+
console.log("No pending migrations.");
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
console.log(`Applied ${applied.length} migration(s):`);
|
|
65
|
+
for (const name of applied) {
|
|
66
|
+
console.log(` + ${name}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async down(steps = 1) {
|
|
71
|
+
const runner = await this.getRunner();
|
|
72
|
+
const reverted = await runner.down(steps);
|
|
73
|
+
if (reverted.length === 0) {
|
|
74
|
+
console.log("No migrations to revert.");
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
console.log(`Reverted ${reverted.length} migration(s):`);
|
|
78
|
+
for (const name of reverted) {
|
|
79
|
+
console.log(` - ${name}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async status() {
|
|
84
|
+
const runner = await this.getRunner();
|
|
85
|
+
const statuses = await runner.status();
|
|
86
|
+
if (statuses.length === 0) {
|
|
87
|
+
console.log("No migrations found.");
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
console.log("");
|
|
91
|
+
console.log("Migration Status:");
|
|
92
|
+
console.log("─".repeat(60));
|
|
93
|
+
for (const s of statuses) {
|
|
94
|
+
const icon = s.isApplied ? "✓" : "○";
|
|
95
|
+
const status = s.isApplied ? "applied" : "pending";
|
|
96
|
+
console.log(` ${icon} ${s.name} (${status})`);
|
|
97
|
+
}
|
|
98
|
+
console.log("─".repeat(60));
|
|
99
|
+
const applied = statuses.filter((s) => s.isApplied).length;
|
|
100
|
+
const pending = statuses.filter((s) => !s.isApplied).length;
|
|
101
|
+
console.log(` Total: ${statuses.length} | Applied: ${applied} | Pending: ${pending}`);
|
|
102
|
+
console.log("");
|
|
103
|
+
}
|
|
104
|
+
// --- Internal ---
|
|
105
|
+
async getRunner() {
|
|
106
|
+
return this.connection.getMigrationRunner(this.tenant);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// --- Template ---
|
|
110
|
+
function MIGRATION_TEMPLATE(name) {
|
|
111
|
+
return `import type { QueryInterface, Sequelize } from "sequelize"
|
|
112
|
+
|
|
113
|
+
export default {
|
|
114
|
+
async up(queryInterface: QueryInterface, sequelize: Sequelize): Promise<void> {
|
|
115
|
+
// TODO: implement migration "${name}"
|
|
116
|
+
// Example:
|
|
117
|
+
// await queryInterface.createTable("my_table", {
|
|
118
|
+
// id: {
|
|
119
|
+
// type: sequelize.constructor["DataTypes"].UUID,
|
|
120
|
+
// primaryKey: true,
|
|
121
|
+
// defaultValue: sequelize.constructor["DataTypes"].UUIDV4,
|
|
122
|
+
// },
|
|
123
|
+
// name: {
|
|
124
|
+
// type: sequelize.constructor["DataTypes"].STRING,
|
|
125
|
+
// allowNull: false,
|
|
126
|
+
// },
|
|
127
|
+
// createdAt: sequelize.constructor["DataTypes"].DATE,
|
|
128
|
+
// updatedAt: sequelize.constructor["DataTypes"].DATE,
|
|
129
|
+
// })
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
async down(queryInterface: QueryInterface, _sequelize: Sequelize): Promise<void> {
|
|
133
|
+
// TODO: implement rollback for "${name}"
|
|
134
|
+
// Example:
|
|
135
|
+
// await queryInterface.dropTable("my_table")
|
|
136
|
+
},
|
|
137
|
+
}
|
|
138
|
+
`;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=MigrationCLI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationCLI.js","sourceRoot":"","sources":["../../src/dev/MigrationCLI.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { DevServer } from "./DevServer.js";
|
|
2
|
+
export type { DevServerConfig, DevDatabaseConfig, GcpRestoreConfig } from "./DevServer.js";
|
|
3
|
+
export { MigrationCLI } from "./MigrationCLI.js";
|
|
4
|
+
export type { MigrationCLIConfig } from "./MigrationCLI.js";
|
|
5
|
+
export { DevToolsController } from "./DevToolsController.js";
|
|
6
|
+
export type { DevToolsConfig } from "./DevToolsController.js";
|
|
7
|
+
export { DevToolsPlugin } from "./DevToolsPlugin.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dev/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAE1F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dev/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -2,7 +2,33 @@ import type { Constructor } from "../container/Container.js";
|
|
|
2
2
|
export declare class EntityRegistry {
|
|
3
3
|
private static sequelizeModels;
|
|
4
4
|
private static mongooseModels;
|
|
5
|
+
private static entityClasses;
|
|
6
|
+
private static wiredConnections;
|
|
7
|
+
/** Register entity classes so associations can be wired later. */
|
|
8
|
+
static registerEntityClass(cls: Constructor): void;
|
|
9
|
+
/** Register multiple entity classes at once. */
|
|
10
|
+
static registerEntityClasses(classes: Constructor[]): void;
|
|
11
|
+
private static initializingConnections;
|
|
5
12
|
static getSequelizeModel(entityClass: Constructor, connection: unknown): Promise<unknown>;
|
|
13
|
+
/**
|
|
14
|
+
* Create a single Sequelize model (columns only, no associations).
|
|
15
|
+
*/
|
|
16
|
+
private static defineSequelizeModel;
|
|
17
|
+
/**
|
|
18
|
+
* Initialize ALL registered entity models on a given Sequelize connection.
|
|
19
|
+
* Must be called before wireSequelizeAssociations.
|
|
20
|
+
*/
|
|
21
|
+
private static initializeAllSequelizeModels;
|
|
22
|
+
/**
|
|
23
|
+
* Wire all Sequelize associations for a given connection based on
|
|
24
|
+
* @HasMany, @BelongsTo, @HasOne, @BelongsToMany decorator metadata.
|
|
25
|
+
* All models MUST already be defined before calling this method.
|
|
26
|
+
*/
|
|
27
|
+
private static wireSequelizeAssociations;
|
|
28
|
+
/**
|
|
29
|
+
* Find a cached model key by entity name (the name passed to @Entity decorator).
|
|
30
|
+
*/
|
|
31
|
+
private static findModelKeyByEntityName;
|
|
6
32
|
static getMongooseModel(entityClass: Constructor, connection: unknown): Promise<unknown>;
|
|
7
33
|
static clearCache(): void;
|
|
8
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityRegistry.d.ts","sourceRoot":"","sources":["../../src/entity/EntityRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE5D,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,eAAe,CAA6B;IAC3D,OAAO,CAAC,MAAM,CAAC,cAAc,CAA6B;
|
|
1
|
+
{"version":3,"file":"EntityRegistry.d.ts","sourceRoot":"","sources":["../../src/entity/EntityRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE5D,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,eAAe,CAA6B;IAC3D,OAAO,CAAC,MAAM,CAAC,cAAc,CAA6B;IAC1D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAyB;IACrD,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAoB;IAEnD,kEAAkE;IAClE,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAIlD,gDAAgD;IAChD,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI;IAI1D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAmC;WAE5D,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAmC/F;;OAEG;mBACkB,oBAAoB;IAiDzC;;;OAGG;mBACkB,4BAA4B;IAQjD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAqDxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;WAgB1B,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAgD9F,MAAM,CAAC,UAAU,IAAI,IAAI;CAK1B"}
|
|
@@ -1,8 +1,53 @@
|
|
|
1
|
-
import { getEntityColumns, getEntityFields, getEntityOptions, DataType } from "./decorators.js";
|
|
1
|
+
import { getEntityColumns, getEntityFields, getEntityOptions, getEntityAssociations, DataType } from "./decorators.js";
|
|
2
2
|
export class EntityRegistry {
|
|
3
3
|
static sequelizeModels = new Map();
|
|
4
4
|
static mongooseModels = new Map();
|
|
5
|
+
static entityClasses = new Set();
|
|
6
|
+
static wiredConnections = new Set();
|
|
7
|
+
/** Register entity classes so associations can be wired later. */
|
|
8
|
+
static registerEntityClass(cls) {
|
|
9
|
+
this.entityClasses.add(cls);
|
|
10
|
+
}
|
|
11
|
+
/** Register multiple entity classes at once. */
|
|
12
|
+
static registerEntityClasses(classes) {
|
|
13
|
+
for (const cls of classes)
|
|
14
|
+
this.entityClasses.add(cls);
|
|
15
|
+
}
|
|
16
|
+
static initializingConnections = new Map();
|
|
5
17
|
static async getSequelizeModel(entityClass, connection) {
|
|
18
|
+
const options = getEntityOptions(entityClass);
|
|
19
|
+
if (!options) {
|
|
20
|
+
throw new Error(`[TypeRoad] Class "${entityClass.name}" is not decorated with @Entity`);
|
|
21
|
+
}
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
const seq = connection;
|
|
24
|
+
const connId = seq.config?.database ?? seq.options?.database ?? "default";
|
|
25
|
+
// On first access for this connection, initialize all models and wire associations.
|
|
26
|
+
// Uses a promise lock to prevent race conditions when concurrent requests
|
|
27
|
+
// trigger initialization simultaneously.
|
|
28
|
+
if (!this.wiredConnections.has(connId) && this.entityClasses.size > 0) {
|
|
29
|
+
if (!this.initializingConnections.has(connId)) {
|
|
30
|
+
const init = (async () => {
|
|
31
|
+
await this.initializeAllSequelizeModels(connection);
|
|
32
|
+
this.wireSequelizeAssociations(connection);
|
|
33
|
+
this.wiredConnections.add(connId);
|
|
34
|
+
})();
|
|
35
|
+
this.initializingConnections.set(connId, init);
|
|
36
|
+
}
|
|
37
|
+
await this.initializingConnections.get(connId);
|
|
38
|
+
this.initializingConnections.delete(connId);
|
|
39
|
+
}
|
|
40
|
+
const cacheKey = `${entityClass.name}:${connId}`;
|
|
41
|
+
if (this.sequelizeModels.has(cacheKey)) {
|
|
42
|
+
return this.sequelizeModels.get(cacheKey);
|
|
43
|
+
}
|
|
44
|
+
// Fallback for entities not pre-registered
|
|
45
|
+
return this.defineSequelizeModel(entityClass, connection);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create a single Sequelize model (columns only, no associations).
|
|
49
|
+
*/
|
|
50
|
+
static async defineSequelizeModel(entityClass, connection) {
|
|
6
51
|
const options = getEntityOptions(entityClass);
|
|
7
52
|
if (!options) {
|
|
8
53
|
throw new Error(`[TypeRoad] Class "${entityClass.name}" is not decorated with @Entity`);
|
|
@@ -26,7 +71,7 @@ export class EntityRegistry {
|
|
|
26
71
|
const attributes = {};
|
|
27
72
|
for (const [name, col] of columns) {
|
|
28
73
|
attributes[name] = {
|
|
29
|
-
type: mapSequelizeDataType(col.type, DataTypes, col.values),
|
|
74
|
+
type: mapSequelizeDataType(col.type, DataTypes, col.values, col.arrayType),
|
|
30
75
|
primaryKey: col.primaryKey ?? false,
|
|
31
76
|
autoIncrement: col.autoIncrement ?? false,
|
|
32
77
|
allowNull: col.allowNull ?? true,
|
|
@@ -43,6 +88,93 @@ export class EntityRegistry {
|
|
|
43
88
|
this.sequelizeModels.set(cacheKey, model);
|
|
44
89
|
return model;
|
|
45
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Initialize ALL registered entity models on a given Sequelize connection.
|
|
93
|
+
* Must be called before wireSequelizeAssociations.
|
|
94
|
+
*/
|
|
95
|
+
static async initializeAllSequelizeModels(connection) {
|
|
96
|
+
for (const entityClass of this.entityClasses) {
|
|
97
|
+
const options = getEntityOptions(entityClass);
|
|
98
|
+
if (!options || options.engine !== "sequelize")
|
|
99
|
+
continue;
|
|
100
|
+
await this.defineSequelizeModel(entityClass, connection);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Wire all Sequelize associations for a given connection based on
|
|
105
|
+
* @HasMany, @BelongsTo, @HasOne, @BelongsToMany decorator metadata.
|
|
106
|
+
* All models MUST already be defined before calling this method.
|
|
107
|
+
*/
|
|
108
|
+
static wireSequelizeAssociations(connection) {
|
|
109
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
110
|
+
const seq = connection;
|
|
111
|
+
const connId = seq.config?.database ?? seq.options?.database ?? "default";
|
|
112
|
+
for (const entityClass of this.entityClasses) {
|
|
113
|
+
const options = getEntityOptions(entityClass);
|
|
114
|
+
if (!options || options.engine !== "sequelize")
|
|
115
|
+
continue;
|
|
116
|
+
const associations = getEntityAssociations(entityClass);
|
|
117
|
+
if (associations.size === 0)
|
|
118
|
+
continue;
|
|
119
|
+
const sourceKey = `${entityClass.name}:${connId}`;
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
121
|
+
const sourceModel = this.sequelizeModels.get(sourceKey);
|
|
122
|
+
if (!sourceModel)
|
|
123
|
+
continue;
|
|
124
|
+
for (const [propertyKey, assocMeta] of associations) {
|
|
125
|
+
const targetClass = assocMeta.target();
|
|
126
|
+
const targetKey = `${targetClass.name}:${connId}`;
|
|
127
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
128
|
+
const targetModel = this.sequelizeModels.get(targetKey);
|
|
129
|
+
if (!targetModel)
|
|
130
|
+
continue;
|
|
131
|
+
// Skip if this association was already wired (idempotent)
|
|
132
|
+
if (sourceModel.associations?.[propertyKey])
|
|
133
|
+
continue;
|
|
134
|
+
switch (assocMeta.type) {
|
|
135
|
+
case "hasMany":
|
|
136
|
+
sourceModel.hasMany(targetModel, { as: propertyKey, foreignKey: assocMeta.foreignKey });
|
|
137
|
+
break;
|
|
138
|
+
case "belongsTo":
|
|
139
|
+
sourceModel.belongsTo(targetModel, { as: propertyKey, foreignKey: assocMeta.foreignKey });
|
|
140
|
+
break;
|
|
141
|
+
case "hasOne":
|
|
142
|
+
sourceModel.hasOne(targetModel, { as: propertyKey, foreignKey: assocMeta.foreignKey });
|
|
143
|
+
break;
|
|
144
|
+
case "belongsToMany": {
|
|
145
|
+
// Resolve through model — use existing Sequelize model if available, otherwise string
|
|
146
|
+
const throughKey = this.findModelKeyByEntityName(assocMeta.through, connId);
|
|
147
|
+
const throughModel = throughKey ? this.sequelizeModels.get(throughKey) : assocMeta.through;
|
|
148
|
+
sourceModel.belongsToMany(targetModel, {
|
|
149
|
+
as: propertyKey,
|
|
150
|
+
foreignKey: assocMeta.foreignKey,
|
|
151
|
+
through: throughModel,
|
|
152
|
+
});
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Find a cached model key by entity name (the name passed to @Entity decorator).
|
|
161
|
+
*/
|
|
162
|
+
static findModelKeyByEntityName(entityName, connId) {
|
|
163
|
+
// First try direct class-name match
|
|
164
|
+
const directKey = `${entityName}:${connId}`;
|
|
165
|
+
if (this.sequelizeModels.has(directKey))
|
|
166
|
+
return directKey;
|
|
167
|
+
// Then search by @Entity name in registered classes
|
|
168
|
+
for (const cls of this.entityClasses) {
|
|
169
|
+
const opts = getEntityOptions(cls);
|
|
170
|
+
if (opts && opts.name === entityName) {
|
|
171
|
+
const key = `${cls.name}:${connId}`;
|
|
172
|
+
if (this.sequelizeModels.has(key))
|
|
173
|
+
return key;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
46
178
|
static async getMongooseModel(entityClass, connection) {
|
|
47
179
|
const options = getEntityOptions(entityClass);
|
|
48
180
|
if (!options) {
|
|
@@ -86,13 +218,18 @@ export class EntityRegistry {
|
|
|
86
218
|
static clearCache() {
|
|
87
219
|
this.sequelizeModels.clear();
|
|
88
220
|
this.mongooseModels.clear();
|
|
221
|
+
this.wiredConnections.clear();
|
|
89
222
|
}
|
|
90
223
|
}
|
|
91
224
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
92
|
-
function mapSequelizeDataType(dataType, DataTypes, enumValues) {
|
|
225
|
+
function mapSequelizeDataType(dataType, DataTypes, enumValues, arrayType) {
|
|
93
226
|
if (dataType === DataType.ENUM) {
|
|
94
227
|
return DataTypes.ENUM(...(enumValues ?? []));
|
|
95
228
|
}
|
|
229
|
+
if (dataType === DataType.ARRAY) {
|
|
230
|
+
const elementType = arrayType ? mapSequelizeDataType(arrayType, DataTypes) : DataTypes.STRING;
|
|
231
|
+
return DataTypes.ARRAY(elementType);
|
|
232
|
+
}
|
|
96
233
|
const map = {
|
|
97
234
|
[DataType.STRING]: DataTypes.STRING,
|
|
98
235
|
[DataType.TEXT]: DataTypes.TEXT,
|
|
@@ -107,7 +244,6 @@ function mapSequelizeDataType(dataType, DataTypes, enumValues) {
|
|
|
107
244
|
[DataType.UUID]: DataTypes.UUID,
|
|
108
245
|
[DataType.JSON]: DataTypes.JSON,
|
|
109
246
|
[DataType.JSONB]: DataTypes.JSONB,
|
|
110
|
-
[DataType.ARRAY]: DataTypes.ARRAY,
|
|
111
247
|
};
|
|
112
248
|
return map[dataType] ?? DataTypes.STRING;
|
|
113
249
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityRegistry.js","sourceRoot":"","sources":["../../src/entity/EntityRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"EntityRegistry.js","sourceRoot":"","sources":["../../src/entity/EntityRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/entity/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAKzB,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAID,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/entity/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAKzB,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAID,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,CAAC,EAAE,QAAQ,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,GAAG,UAAU,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,eAAe,CAAA;IAC1D,MAAM,EAAE,MAAM,OAAO,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAUD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,cAAc,CAK3E;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,iBAAiB,CAOhE;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,iBAAiB,CAO9D;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB,CAQpF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB,CAQtF;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB,CAQnF;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,iBAAiB,CASnB;AAiBD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAE3E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAEzE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAEtF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,CAE/F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/entity/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,8CAA8C;AAE9C,MAAM,CAAN,IAAY,QAgBX;AAhBD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,2BAAe,CAAA;IACf,6BAAiB,CAAA;IACjB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,yBAAa,CAAA;IACb,iCAAqB,CAAA;IACrB,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,2BAAe,CAAA;AACjB,CAAC,EAhBW,QAAQ,KAAR,QAAQ,QAgBnB;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/entity/decorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,14 @@ export interface JwtFilterOptions {
|
|
|
6
6
|
/**
|
|
7
7
|
* Function that receives the raw token and returns the decoded payload.
|
|
8
8
|
* Throw any error to signal an invalid/expired token.
|
|
9
|
+
*
|
|
10
|
+
* Not needed when running behind teraprox-gateway — the gateway validates
|
|
11
|
+
* the JWT and forwards the decoded payload via `x-decoded-user` header.
|
|
9
12
|
*/
|
|
10
|
-
verify
|
|
13
|
+
verify?: (token: string) => Promise<unknown> | unknown;
|
|
11
14
|
/**
|
|
12
15
|
* Custom function to extract the token from the request.
|
|
13
|
-
* Default: reads "Authorization: Bearer <token>"
|
|
16
|
+
* Default: reads "x-app-token" header, then "Authorization: Bearer <token>"
|
|
14
17
|
*/
|
|
15
18
|
extractToken?: (req: Request) => string | undefined;
|
|
16
19
|
/**
|
|
@@ -21,7 +24,7 @@ export interface JwtFilterOptions {
|
|
|
21
24
|
}
|
|
22
25
|
export declare class JwtFilter extends OnRoadFilter {
|
|
23
26
|
private readonly options;
|
|
24
|
-
constructor(options
|
|
27
|
+
constructor(options?: JwtFilterOptions);
|
|
25
28
|
execute(req: Request, res: Response, chain: FilterChain): Promise<void>;
|
|
26
29
|
}
|
|
27
30
|
//# sourceMappingURL=JwtFilter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JwtFilter.d.ts","sourceRoot":"","sources":["../../../src/filters/builtins/JwtFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,gCAAgC,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,WAAW,gBAAgB;IAC/B
|
|
1
|
+
{"version":3,"file":"JwtFilter.d.ts","sourceRoot":"","sources":["../../../src/filters/builtins/JwtFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,gCAAgC,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IACtD;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAA;IACnD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;gBAE9B,OAAO,GAAE,gBAAqB;IAKpC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CA8B9E"}
|
|
@@ -2,11 +2,21 @@ import "../../types/express-augment.js";
|
|
|
2
2
|
import { OnRoadFilter } from "../FilterChain.js";
|
|
3
3
|
export class JwtFilter extends OnRoadFilter {
|
|
4
4
|
options;
|
|
5
|
-
constructor(options) {
|
|
5
|
+
constructor(options = {}) {
|
|
6
6
|
super();
|
|
7
7
|
this.options = options;
|
|
8
8
|
}
|
|
9
9
|
async execute(req, res, chain) {
|
|
10
|
+
// 1. Gateway already validated — use forwarded decoded payload directly
|
|
11
|
+
const decodedHeader = req.headers["x-decoded-user"];
|
|
12
|
+
if (typeof decodedHeader === "string" && decodedHeader) {
|
|
13
|
+
try {
|
|
14
|
+
req.decoded = JSON.parse(decodedHeader);
|
|
15
|
+
return await chain.next(req, res);
|
|
16
|
+
}
|
|
17
|
+
catch { /* malformed header — fall through to token extraction */ }
|
|
18
|
+
}
|
|
19
|
+
// 2. Standalone mode — extract and verify token
|
|
10
20
|
const extract = this.options.extractToken ?? extractBearerToken;
|
|
11
21
|
const token = extract(req);
|
|
12
22
|
if (!token) {
|
|
@@ -14,11 +24,11 @@ export class JwtFilter extends OnRoadFilter {
|
|
|
14
24
|
res.status(401).json({ error: "Unauthorized", message: "Missing authentication token" });
|
|
15
25
|
return;
|
|
16
26
|
}
|
|
17
|
-
// Anonymous allowed — skip decode, proceed
|
|
18
27
|
return await chain.next(req, res);
|
|
19
28
|
}
|
|
20
29
|
try {
|
|
21
|
-
|
|
30
|
+
const verifyFn = this.options.verify ?? decodeJwtPayload;
|
|
31
|
+
req.decoded = await verifyFn(token);
|
|
22
32
|
await chain.next(req, res);
|
|
23
33
|
}
|
|
24
34
|
catch {
|
|
@@ -27,9 +37,24 @@ export class JwtFilter extends OnRoadFilter {
|
|
|
27
37
|
}
|
|
28
38
|
}
|
|
29
39
|
function extractBearerToken(req) {
|
|
40
|
+
const xToken = req.headers["x-app-token"];
|
|
41
|
+
if (typeof xToken === "string")
|
|
42
|
+
return xToken;
|
|
30
43
|
const auth = req.headers["authorization"];
|
|
31
|
-
if (!auth
|
|
44
|
+
if (typeof auth !== "string" || !auth.startsWith("Bearer "))
|
|
32
45
|
return undefined;
|
|
33
46
|
return auth.slice(7);
|
|
34
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Decodes a JWT payload (base64url) without verifying the signature.
|
|
50
|
+
* Fallback for standalone mode when no verify function is provided.
|
|
51
|
+
*/
|
|
52
|
+
function decodeJwtPayload(token) {
|
|
53
|
+
const parts = token.split(".");
|
|
54
|
+
if (parts.length !== 3)
|
|
55
|
+
throw new Error("Invalid JWT structure");
|
|
56
|
+
const payload = parts[1];
|
|
57
|
+
const json = Buffer.from(payload, "base64url").toString("utf-8");
|
|
58
|
+
return JSON.parse(json);
|
|
59
|
+
}
|
|
35
60
|
//# sourceMappingURL=JwtFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JwtFilter.js","sourceRoot":"","sources":["../../../src/filters/builtins/JwtFilter.ts"],"names":[],"mappings":"AACA,OAAO,gCAAgC,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"JwtFilter.js","sourceRoot":"","sources":["../../../src/filters/builtins/JwtFilter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,5 +23,7 @@ export type { MessagingMessage, MessageWorker, MatchingObjectData, TaskScheduler
|
|
|
23
23
|
export { PinoLogger } from "./logging/index.js";
|
|
24
24
|
export type { OnRoadLogger, PinoLoggerConfig } from "./logging/index.js";
|
|
25
25
|
export type { OnRoadPlugin } from "./plugins/index.js";
|
|
26
|
-
export { StorageProvider } from "./storage/index.js";
|
|
26
|
+
export { StorageProvider, Anexo, AnexoRepository, AnexoService, AnexoController } from "./storage/index.js";
|
|
27
|
+
export { DevServer, MigrationCLI, DevToolsController, DevToolsPlugin } from "./dev/index.js";
|
|
28
|
+
export type { DevServerConfig, DevDatabaseConfig, MigrationCLIConfig, DevToolsConfig } from "./dev/index.js";
|
|
27
29
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAA;AACzB,OAAO,4BAA4B,CAAA;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAGzE,OAAO,EACL,eAAe,EACf,UAAU,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,KAAK,EACL,YAAY,GACb,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGpF,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,eAAe,GAChB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAG5I,OAAO,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,aAAa,EACb,QAAQ,EACR,cAAc,GACf,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAGxG,OAAO,EACL,YAAY,EACZ,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,oBAAoB,GACrB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAG7D,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC3G,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAG1E,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGvD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/E,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,GACf,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGxE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAA;AACzB,OAAO,4BAA4B,CAAA;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAGzE,OAAO,EACL,eAAe,EACf,UAAU,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,KAAK,EACL,YAAY,GACb,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGpF,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,eAAe,GAChB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAG5I,OAAO,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,aAAa,EACb,QAAQ,EACR,cAAc,GACf,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAGxG,OAAO,EACL,YAAY,EACZ,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,oBAAoB,GACrB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAG7D,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC3G,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAG1E,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGvD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/E,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,GACf,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGxE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtD,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAG3G,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC5F,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -27,5 +27,7 @@ export { MessagingProvider, RealtimeProvider, TaskSchedulerProvider, SocketProvi
|
|
|
27
27
|
// --- Logging ---
|
|
28
28
|
export { PinoLogger } from "./logging/index.js";
|
|
29
29
|
// --- Storage ---
|
|
30
|
-
export { StorageProvider } from "./storage/index.js";
|
|
30
|
+
export { StorageProvider, Anexo, AnexoRepository, AnexoService, AnexoController } from "./storage/index.js";
|
|
31
|
+
// --- Dev Tools ---
|
|
32
|
+
export { DevServer, MigrationCLI, DevToolsController, DevToolsPlugin } from "./dev/index.js";
|
|
31
33
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,kBAAkB;AAElB,OAAO,kBAAkB,CAAA;AACzB,OAAO,4BAA4B,CAAA;AAEnC,eAAe;AACf,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,iCAAiC;AACjC,OAAO,EACL,eAAe,EACf,UAAU,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,KAAK,EACL,YAAY,GACb,MAAM,sBAAsB,CAAA;AAG7B,eAAe;AACf,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAGxB,iBAAiB;AACjB,OAAO,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,aAAa,EACb,QAAQ,EACR,cAAc,GACf,MAAM,mBAAmB,CAAA;AAG1B,kBAAkB;AAClB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,oBAAoB,GACrB,MAAM,oBAAoB,CAAA;AAW3B,mBAAmB;AACnB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE7D,mBAAmB;AACnB,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAG3G,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAG7B,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAG/E,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,oBAAoB;AACpB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,GACf,MAAM,sBAAsB,CAAA;AAQ7B,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAM/C,kBAAkB;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,kBAAkB;AAElB,OAAO,kBAAkB,CAAA;AACzB,OAAO,4BAA4B,CAAA;AAEnC,eAAe;AACf,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,iCAAiC;AACjC,OAAO,EACL,eAAe,EACf,UAAU,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,KAAK,EACL,YAAY,GACb,MAAM,sBAAsB,CAAA;AAG7B,eAAe;AACf,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAGxB,iBAAiB;AACjB,OAAO,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,aAAa,EACb,QAAQ,EACR,cAAc,GACf,MAAM,mBAAmB,CAAA;AAG1B,kBAAkB;AAClB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,oBAAoB,GACrB,MAAM,oBAAoB,CAAA;AAW3B,mBAAmB;AACnB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE7D,mBAAmB;AACnB,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAG3G,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAG7B,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAG/E,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,oBAAoB;AACpB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,GACf,MAAM,sBAAsB,CAAA;AAQ7B,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAM/C,kBAAkB;AAClB,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAE3G,oBAAoB;AACpB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA"}
|