katanakit-js 6.2.0 → 6.6.1
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 +11 -3
- package/dist/adapters/better-auth/better-auth.service.d.ts +83 -0
- package/dist/adapters/better-auth/better-auth.service.d.ts.map +1 -0
- package/dist/adapters/better-auth/better-auth.service.js +110 -0
- package/dist/adapters/better-auth/better-auth.service.js.map +1 -0
- package/dist/adapters/better-auth/client.d.ts +51 -0
- package/dist/adapters/better-auth/client.d.ts.map +1 -0
- package/dist/adapters/better-auth/client.js +67 -0
- package/dist/adapters/better-auth/client.js.map +1 -0
- package/dist/adapters/better-auth/index.d.ts +3 -0
- package/dist/adapters/better-auth/index.d.ts.map +1 -0
- package/dist/adapters/better-auth/index.js +3 -0
- package/dist/adapters/better-auth/index.js.map +1 -0
- package/dist/adapters/express/server.d.ts +133 -1
- package/dist/adapters/express/server.d.ts.map +1 -1
- package/dist/adapters/express/server.js +199 -97
- package/dist/adapters/express/server.js.map +1 -1
- package/dist/adapters/index.d.ts +2 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +2 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/insforge/insforge.service.d.ts +139 -4
- package/dist/adapters/insforge/insforge.service.d.ts.map +1 -1
- package/dist/adapters/insforge/insforge.service.js +383 -213
- package/dist/adapters/insforge/insforge.service.js.map +1 -1
- package/dist/adapters/notion/notion.service.d.ts +130 -144
- package/dist/adapters/notion/notion.service.d.ts.map +1 -1
- package/dist/adapters/notion/notion.service.js +330 -341
- package/dist/adapters/notion/notion.service.js.map +1 -1
- package/dist/adapters/photoswipe/index.d.ts +2 -0
- package/dist/adapters/photoswipe/index.d.ts.map +1 -0
- package/dist/adapters/photoswipe/index.js +2 -0
- package/dist/adapters/photoswipe/index.js.map +1 -0
- package/dist/adapters/photoswipe/photoswipe.service.d.ts +99 -0
- package/dist/adapters/photoswipe/photoswipe.service.d.ts.map +1 -0
- package/dist/adapters/photoswipe/photoswipe.service.js +150 -0
- package/dist/adapters/photoswipe/photoswipe.service.js.map +1 -0
- package/dist/adapters/telegram/telegram.service.d.ts +82 -13
- package/dist/adapters/telegram/telegram.service.d.ts.map +1 -1
- package/dist/adapters/telegram/telegram.service.js +133 -55
- package/dist/adapters/telegram/telegram.service.js.map +1 -1
- package/dist/adapters/wordpress/wordpress.service.d.ts +181 -110
- package/dist/adapters/wordpress/wordpress.service.d.ts.map +1 -1
- package/dist/adapters/wordpress/wordpress.service.js +556 -465
- package/dist/adapters/wordpress/wordpress.service.js.map +1 -1
- package/dist/config/seo.service.d.ts +1 -1
- package/dist/config/seo.service.d.ts.map +1 -1
- package/dist/config/seo.service.js +1 -1
- package/dist/config/seo.service.js.map +1 -1
- package/dist/core/services/access.service.d.ts +167 -4
- package/dist/core/services/access.service.d.ts.map +1 -1
- package/dist/core/services/access.service.js +241 -31
- package/dist/core/services/access.service.js.map +1 -1
- package/dist/core/services/agent.service.d.ts +182 -27
- package/dist/core/services/agent.service.d.ts.map +1 -1
- package/dist/core/services/agent.service.js +296 -164
- package/dist/core/services/agent.service.js.map +1 -1
- package/dist/core/services/assistant.service.d.ts +96 -5
- package/dist/core/services/assistant.service.d.ts.map +1 -1
- package/dist/core/services/assistant.service.js +171 -66
- package/dist/core/services/assistant.service.js.map +1 -1
- package/dist/core/services/dates.service.d.ts +183 -11
- package/dist/core/services/dates.service.d.ts.map +1 -1
- package/dist/core/services/dates.service.js +256 -57
- package/dist/core/services/dates.service.js.map +1 -1
- package/dist/core/services/http.service.d.ts +172 -133
- package/dist/core/services/http.service.d.ts.map +1 -1
- package/dist/core/services/http.service.js +367 -310
- package/dist/core/services/http.service.js.map +1 -1
- package/dist/core/services/logger.service.d.ts +96 -34
- package/dist/core/services/logger.service.d.ts.map +1 -1
- package/dist/core/services/logger.service.js +128 -41
- package/dist/core/services/logger.service.js.map +1 -1
- package/dist/core/services/query.service.d.ts +101 -0
- package/dist/core/services/query.service.d.ts.map +1 -1
- package/dist/core/services/query.service.js +131 -14
- package/dist/core/services/query.service.js.map +1 -1
- package/dist/core/services/utils.service.d.ts +286 -131
- package/dist/core/services/utils.service.d.ts.map +1 -1
- package/dist/core/services/utils.service.js +417 -227
- package/dist/core/services/utils.service.js.map +1 -1
- package/dist/core/services/validation.service.d.ts +48 -3
- package/dist/core/services/validation.service.d.ts.map +1 -1
- package/dist/core/services/validation.service.js +75 -23
- package/dist/core/services/validation.service.js.map +1 -1
- package/dist/infrastructure/decorators/cache.decorator.d.ts +53 -0
- package/dist/infrastructure/decorators/cache.decorator.d.ts.map +1 -0
- package/dist/infrastructure/decorators/cache.decorator.js +47 -0
- package/dist/infrastructure/decorators/cache.decorator.js.map +1 -0
- package/dist/infrastructure/decorators/index.d.ts +4 -0
- package/dist/infrastructure/decorators/index.d.ts.map +1 -0
- package/dist/infrastructure/decorators/index.js +4 -0
- package/dist/infrastructure/decorators/index.js.map +1 -0
- package/dist/infrastructure/decorators/logger.decorator.d.ts +38 -0
- package/dist/infrastructure/decorators/logger.decorator.d.ts.map +1 -0
- package/dist/infrastructure/decorators/logger.decorator.js +66 -0
- package/dist/infrastructure/decorators/logger.decorator.js.map +1 -0
- package/dist/infrastructure/decorators/retry.decorator.d.ts +37 -0
- package/dist/infrastructure/decorators/retry.decorator.d.ts.map +1 -0
- package/dist/infrastructure/decorators/retry.decorator.js +54 -0
- package/dist/infrastructure/decorators/retry.decorator.js.map +1 -0
- package/dist/infrastructure/index.d.ts +1 -0
- package/dist/infrastructure/index.d.ts.map +1 -1
- package/dist/infrastructure/index.js +1 -0
- package/dist/infrastructure/index.js.map +1 -1
- package/dist/styles.css +2 -0
- package/package.json +49 -14
- package/scss/_flags.scss +179 -0
- package/scss/_functions.scss +168 -0
- package/scss/_mixins.scss +658 -0
- package/scss/_reset.scss +275 -0
- package/scss/_utilities.scss +449 -0
- package/scss/_variables.scss +539 -0
- package/scss/components/_index.scss +50 -0
- package/scss/demo.scss +12 -0
- package/scss/main.scss +56 -0
|
@@ -2,89 +2,212 @@ import cors from "cors";
|
|
|
2
2
|
import express from "express";
|
|
3
3
|
import { useLogger } from "../../core/services/logger.service.js";
|
|
4
4
|
import router from "./router.js";
|
|
5
|
-
/** Module-level state for the Express server. */
|
|
6
|
-
let app = null;
|
|
7
|
-
let started = false;
|
|
8
|
-
let finalized = false;
|
|
9
5
|
/**
|
|
10
|
-
*
|
|
11
|
-
* Needed to verify webhook signatures (e.g. `X-Hub-Signature-256`).
|
|
6
|
+
* ExpressService - Singleton para el servidor Express.
|
|
12
7
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return request.rawBody;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Set up CORS, JSON body parser and URL-encoded middleware.
|
|
21
|
-
* The JSON parser also captures the raw body for signature verification.
|
|
22
|
-
*
|
|
23
|
-
* @param expressApp - Express application instance
|
|
8
|
+
* Aplica el patrón Singleton: una única instancia centraliza la creación,
|
|
9
|
+
* configuración de middlewares, rutas, manejo de errores y ciclo de vida del
|
|
10
|
+
* servidor HTTP (start/stop). Idempotente: crear, finalizar y arrancar son
|
|
11
|
+
* operaciones seguras de repetir.
|
|
24
12
|
*
|
|
25
13
|
* @example
|
|
26
14
|
* ```ts
|
|
27
|
-
* const
|
|
28
|
-
*
|
|
15
|
+
* const app = ExpressService.getInstance().useCreate();
|
|
16
|
+
* app.use("/assistant", useCreateAssistantRouter());
|
|
17
|
+
* ExpressService.getInstance().useStart(3000, "localhost");
|
|
29
18
|
* ```
|
|
30
19
|
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
20
|
+
export class ExpressService {
|
|
21
|
+
static instance;
|
|
22
|
+
/** Express application instance. */
|
|
23
|
+
app = null;
|
|
24
|
+
/** Whether the HTTP server has been started. */
|
|
25
|
+
started = false;
|
|
26
|
+
/** Whether the error handler / 404 catch-all has been registered. */
|
|
27
|
+
finalized = false;
|
|
28
|
+
/**
|
|
29
|
+
* Constructor privado - enforce singleton.
|
|
30
|
+
*/
|
|
31
|
+
constructor() { }
|
|
32
|
+
/**
|
|
33
|
+
* Obtiene la instancia única del ExpressService (Singleton).
|
|
34
|
+
*
|
|
35
|
+
* @returns La instancia única de {@link ExpressService}.
|
|
36
|
+
*/
|
|
37
|
+
static getInstance() {
|
|
38
|
+
if (!ExpressService.instance) {
|
|
39
|
+
ExpressService.instance = new ExpressService();
|
|
40
|
+
}
|
|
41
|
+
return ExpressService.instance;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Returns the raw request body buffer captured by the JSON parser, if any.
|
|
45
|
+
* Needed to verify webhook signatures (e.g. `X-Hub-Signature-256`).
|
|
46
|
+
*
|
|
47
|
+
* @param request - The Express request.
|
|
48
|
+
* @returns The raw body buffer, or `undefined` when not available.
|
|
49
|
+
*/
|
|
50
|
+
useGetRawBody(request) {
|
|
51
|
+
return request.rawBody;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Set up CORS, JSON body parser and URL-encoded middleware.
|
|
55
|
+
* The JSON parser also captures the raw body for signature verification.
|
|
56
|
+
*
|
|
57
|
+
* @param expressApp - Express application instance
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* const expressApp = express();
|
|
62
|
+
* useExpressSetupMiddlewares(expressApp);
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
useSetupMiddlewares(expressApp) {
|
|
66
|
+
const origins = (process.env.CORS_ORIGINS?.split(",") ?? ["http://localhost:3000"])
|
|
67
|
+
.map((origin) => origin.trim())
|
|
68
|
+
.filter(Boolean);
|
|
69
|
+
expressApp.use(cors({
|
|
70
|
+
origin: origins,
|
|
71
|
+
methods: ["GET", "POST", "PUT", "DELETE"],
|
|
72
|
+
}));
|
|
73
|
+
expressApp.disable("x-powered-by");
|
|
74
|
+
expressApp.use(express.json({
|
|
75
|
+
limit: "100kb",
|
|
76
|
+
verify: (req, _res, buf) => {
|
|
77
|
+
req.rawBody = buf;
|
|
78
|
+
},
|
|
79
|
+
}));
|
|
80
|
+
expressApp.use(express.urlencoded({ extended: true, limit: "100kb" }));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Set up health check and application routes.
|
|
84
|
+
*
|
|
85
|
+
* @param expressApp - Express application instance
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```ts
|
|
89
|
+
* useExpressSetupRoutes(expressApp);
|
|
90
|
+
* // GET /health returns { status: "ok", timestamp: "..." }
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
useSetupRoutes(expressApp) {
|
|
94
|
+
expressApp.get("/health", (_request, response) => {
|
|
95
|
+
return response.json({
|
|
96
|
+
status: "ok",
|
|
97
|
+
timestamp: new Date().toISOString(),
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
expressApp.use("/", router);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Set up global error handling and 404 fallback. Register this AFTER all
|
|
104
|
+
* channel routers are mounted so it does not shadow them.
|
|
105
|
+
*
|
|
106
|
+
* @param expressApp - Express application instance
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```ts
|
|
110
|
+
* useExpressSetupErrorHandling(expressApp);
|
|
111
|
+
* // Unhandled errors return 500, unknown routes return 404
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
useSetupErrorHandling(expressApp) {
|
|
115
|
+
expressApp.use((err, _req, res, _next) => {
|
|
116
|
+
useLogger("Unhandled error:", err, "error");
|
|
117
|
+
res.status(500).json({ error: "Internal Server Error" });
|
|
118
|
+
});
|
|
119
|
+
expressApp.use((_req, res) => {
|
|
120
|
+
res.status(404).json({ error: "Not Found" });
|
|
64
121
|
});
|
|
65
|
-
}
|
|
66
|
-
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create and configure the Express application. Mount channel routers on the
|
|
125
|
+
* returned app BEFORE calling {@link useFinalize} / {@link useStart},
|
|
126
|
+
* otherwise the 404 catch-all will shadow them.
|
|
127
|
+
*
|
|
128
|
+
* @returns Configured Express Application instance
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```ts
|
|
132
|
+
* const expressApp = ExpressService.getInstance().useCreate();
|
|
133
|
+
* expressApp.use("/assistant", useCreateAssistantRouter());
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
useCreate() {
|
|
137
|
+
if (this.app)
|
|
138
|
+
return this.app;
|
|
139
|
+
this.app = express();
|
|
140
|
+
this.useSetupMiddlewares(this.app);
|
|
141
|
+
this.useSetupRoutes(this.app);
|
|
142
|
+
return this.app;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Registers the error handler and 404 catch-all. Idempotent. Call this after
|
|
146
|
+
* mounting every channel router so it runs last. {@link useStart}
|
|
147
|
+
* invokes it automatically.
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```ts
|
|
151
|
+
* ExpressService.getInstance().useGetApp().use("/assistant", useCreateAssistantRouter());
|
|
152
|
+
* ExpressService.getInstance().useFinalize();
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
useFinalize() {
|
|
156
|
+
if (this.finalized)
|
|
157
|
+
return;
|
|
158
|
+
this.finalized = true;
|
|
159
|
+
this.useSetupErrorHandling(this.useCreate());
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Start the Express HTTP server. Idempotent - subsequent calls are no-ops.
|
|
163
|
+
* Finalizes error handling before listening.
|
|
164
|
+
*
|
|
165
|
+
* @param port - Port to listen on (default: 3000)
|
|
166
|
+
* @param host - Host to bind to (default: "localhost")
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```ts
|
|
170
|
+
* ExpressService.getInstance().useStart(3000, "localhost");
|
|
171
|
+
* // Server running on http://localhost:3000
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
useStart(port = 3000, host = "localhost") {
|
|
175
|
+
if (this.started)
|
|
176
|
+
return;
|
|
177
|
+
this.started = true;
|
|
178
|
+
this.useFinalize();
|
|
179
|
+
const expressApp = this.useCreate();
|
|
180
|
+
expressApp.listen(port, host, () => {
|
|
181
|
+
useLogger(`Server running on http://${host}:${port}`);
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Get the Express application instance. Creates it if it doesn't exist.
|
|
186
|
+
*
|
|
187
|
+
* @returns Express Application instance
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```ts
|
|
191
|
+
* const expressApp = ExpressService.getInstance().useGetApp();
|
|
192
|
+
* expressApp.get("/custom", (req, res) => res.json({ ok: true }));
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
useGetApp() {
|
|
196
|
+
return this.useCreate();
|
|
197
|
+
}
|
|
67
198
|
}
|
|
199
|
+
/* -------------------------------------------------------------------------- */
|
|
200
|
+
/* Wrappers (backward compatibility) */
|
|
201
|
+
/* -------------------------------------------------------------------------- */
|
|
68
202
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* @param expressApp - Express application instance
|
|
203
|
+
* Returns the raw request body buffer captured by the JSON parser, if any.
|
|
204
|
+
* Needed to verify webhook signatures (e.g. `X-Hub-Signature-256`).
|
|
73
205
|
*
|
|
74
|
-
* @
|
|
75
|
-
*
|
|
76
|
-
* useExpressSetupErrorHandling(expressApp);
|
|
77
|
-
* // Unhandled errors return 500, unknown routes return 404
|
|
78
|
-
* ```
|
|
206
|
+
* @param request - The Express request.
|
|
207
|
+
* @returns The raw body buffer, or `undefined` when not available.
|
|
79
208
|
*/
|
|
80
|
-
function
|
|
81
|
-
|
|
82
|
-
useLogger("Unhandled error:", err, "error");
|
|
83
|
-
res.status(500).json({ error: "Internal Server Error" });
|
|
84
|
-
});
|
|
85
|
-
expressApp.use((_req, res) => {
|
|
86
|
-
res.status(404).json({ error: "Not Found" });
|
|
87
|
-
});
|
|
209
|
+
export function useGetRawBody(request) {
|
|
210
|
+
return ExpressService.getInstance().useGetRawBody(request);
|
|
88
211
|
}
|
|
89
212
|
/**
|
|
90
213
|
* Create and configure the Express application. Mount channel routers on the
|
|
@@ -100,14 +223,7 @@ function useExpressSetupErrorHandling(expressApp) {
|
|
|
100
223
|
* useExpressStart();
|
|
101
224
|
* ```
|
|
102
225
|
*/
|
|
103
|
-
export const useExpressCreate = () =>
|
|
104
|
-
if (app)
|
|
105
|
-
return app;
|
|
106
|
-
app = express();
|
|
107
|
-
useExpressSetupMiddlewares(app);
|
|
108
|
-
useExpressSetupRoutes(app);
|
|
109
|
-
return app;
|
|
110
|
-
};
|
|
226
|
+
export const useExpressCreate = () => ExpressService.getInstance().useCreate();
|
|
111
227
|
/**
|
|
112
228
|
* Registers the error handler and 404 catch-all. Idempotent. Call this after
|
|
113
229
|
* mounting every channel router so it runs last. {@link useExpressStart}
|
|
@@ -119,14 +235,9 @@ export const useExpressCreate = () => {
|
|
|
119
235
|
* useExpressFinalize();
|
|
120
236
|
* ```
|
|
121
237
|
*/
|
|
122
|
-
export const useExpressFinalize = () =>
|
|
123
|
-
if (finalized)
|
|
124
|
-
return;
|
|
125
|
-
finalized = true;
|
|
126
|
-
useExpressSetupErrorHandling(useExpressCreate());
|
|
127
|
-
};
|
|
238
|
+
export const useExpressFinalize = () => ExpressService.getInstance().useFinalize();
|
|
128
239
|
/**
|
|
129
|
-
* Start the Express HTTP server. Idempotent
|
|
240
|
+
* Start the Express HTTP server. Idempotent - subsequent calls are no-ops.
|
|
130
241
|
* Finalizes error handling before listening.
|
|
131
242
|
*
|
|
132
243
|
* @param port - Port to listen on (default: 3000)
|
|
@@ -138,16 +249,7 @@ export const useExpressFinalize = () => {
|
|
|
138
249
|
* // Server running on http://localhost:3000
|
|
139
250
|
* ```
|
|
140
251
|
*/
|
|
141
|
-
export const useExpressStart = (port = 3000, host = "localhost") =>
|
|
142
|
-
if (started)
|
|
143
|
-
return;
|
|
144
|
-
started = true;
|
|
145
|
-
useExpressFinalize();
|
|
146
|
-
const expressApp = useExpressCreate();
|
|
147
|
-
expressApp.listen(port, host, () => {
|
|
148
|
-
useLogger(`Server running on http://${host}:${port}`);
|
|
149
|
-
});
|
|
150
|
-
};
|
|
252
|
+
export const useExpressStart = (port = 3000, host = "localhost") => ExpressService.getInstance().useStart(port, host);
|
|
151
253
|
/**
|
|
152
254
|
* Get the Express application instance. Creates it if it doesn't exist.
|
|
153
255
|
*
|
|
@@ -159,5 +261,5 @@ export const useExpressStart = (port = 3000, host = "localhost") => {
|
|
|
159
261
|
* expressApp.get("/custom", (req, res) => res.json({ ok: true }));
|
|
160
262
|
* ```
|
|
161
263
|
*/
|
|
162
|
-
export const useExpressGetApp = () =>
|
|
264
|
+
export const useExpressGetApp = () => ExpressService.getInstance().useGetApp();
|
|
163
265
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/adapters/express/server.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAA6E,MAAM,SAAS,CAAC;AAEpG,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAClE,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/adapters/express/server.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC"}
|
package/dist/adapters/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,7 +1,142 @@
|
|
|
1
1
|
import { type InsForgeClient } from "@insforge/sdk";
|
|
2
2
|
import type { ConfigFacade, FetchResult, IfConfig, IfInsertRows, IfInvokeOptions, IfListOptions, IfRpcCall, IfStorageRef, IfTableQuery, IfUpdatePatch, IfWriteQuery } from "../../types/index.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* InsForgeService - Singleton para el cliente InsForge (fallback de base de datos).
|
|
5
|
+
*
|
|
6
|
+
* Aplica el patrón Singleton: una única instancia mantiene el
|
|
7
|
+
* {@link InsForgeClient} y centraliza las operaciones de tabla, RPC,
|
|
8
|
+
* storage y edge functions, devolviendo siempre Safe Results.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const insforge = InsForgeService.getInstance();
|
|
13
|
+
* insforge.useInit({ baseUrl: "https://app.insforge.app", anonKey: "…" });
|
|
14
|
+
* const result = await insforge.useSelect({ table: "posts" });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare class InsForgeService {
|
|
18
|
+
private static instance;
|
|
19
|
+
/** InsForge client. InsForge is the database fallback, not the default. */
|
|
20
|
+
private client;
|
|
21
|
+
/**
|
|
22
|
+
* Constructor privado - enforce singleton.
|
|
23
|
+
*/
|
|
24
|
+
private constructor();
|
|
25
|
+
/**
|
|
26
|
+
* Obtiene la instancia única del InsForgeService (Singleton).
|
|
27
|
+
*
|
|
28
|
+
* @returns La instancia única de {@link InsForgeService}.
|
|
29
|
+
*/
|
|
30
|
+
static getInstance(): InsForgeService;
|
|
31
|
+
/**
|
|
32
|
+
* Registers the InsForge client. Call once per app. Prefer `apiKey`
|
|
33
|
+
* (server-only, admin) or `anonKey` (browser-safe) depending on the runtime.
|
|
34
|
+
*
|
|
35
|
+
* @param config - Backend URL + credentials + optional schema.
|
|
36
|
+
* @throws {Error} If the config fails validation.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* InsForgeService.getInstance().useInit({ baseUrl: "https://app.insforge.app", anonKey: "…" });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
useInit(config: IfConfig): void;
|
|
44
|
+
/**
|
|
45
|
+
* Returns the initialized client (or `null` before `useInit`).
|
|
46
|
+
* Exposed for advanced use - the wrappers cover the supported surface.
|
|
47
|
+
*
|
|
48
|
+
* @returns The InsForge client or `null`.
|
|
49
|
+
*/
|
|
50
|
+
useGetClient(): InsForgeClient | null;
|
|
51
|
+
/**
|
|
52
|
+
* Reads rows from a table with equality filters, ordering and pagination.
|
|
53
|
+
*
|
|
54
|
+
* @param query - Table, columns, filters, order, limit and offset.
|
|
55
|
+
* @returns Safe Result with the rows.
|
|
56
|
+
*/
|
|
57
|
+
useSelect<T = Record<string, unknown>>(query: IfTableQuery): Promise<FetchResult<T[]>>;
|
|
58
|
+
/**
|
|
59
|
+
* Inserts one or more rows and returns the created rows.
|
|
60
|
+
*
|
|
61
|
+
* @param table - Table name.
|
|
62
|
+
* @param rows - Rows to insert (at least one).
|
|
63
|
+
* @param schema - Optional schema override.
|
|
64
|
+
* @returns Safe Result with the inserted rows.
|
|
65
|
+
*/
|
|
66
|
+
useInsert<T = Record<string, unknown>>(table: string, rows: IfInsertRows, schema?: string): Promise<FetchResult<T[]>>;
|
|
67
|
+
/**
|
|
68
|
+
* Updates rows matching the filters and returns the updated rows.
|
|
69
|
+
* Filters are REQUIRED - mass updates are refused at validation time.
|
|
70
|
+
*
|
|
71
|
+
* @param query - Table + mandatory filters (+ optional schema).
|
|
72
|
+
* @param patch - Column patch (must not be empty).
|
|
73
|
+
* @returns Safe Result with the updated rows.
|
|
74
|
+
*/
|
|
75
|
+
useUpdate<T = Record<string, unknown>>(query: IfWriteQuery, patch: IfUpdatePatch): Promise<FetchResult<T[]>>;
|
|
76
|
+
/**
|
|
77
|
+
* Deletes rows matching the filters and returns the deleted rows.
|
|
78
|
+
* Filters are REQUIRED - mass deletes are refused at validation time.
|
|
79
|
+
*
|
|
80
|
+
* @param query - Table + mandatory filters (+ optional schema).
|
|
81
|
+
* @returns Safe Result with the deleted rows.
|
|
82
|
+
*/
|
|
83
|
+
useDelete<T = Record<string, unknown>>(query: IfWriteQuery): Promise<FetchResult<T[]>>;
|
|
84
|
+
/**
|
|
85
|
+
* Calls a Postgres function (RPC).
|
|
86
|
+
*
|
|
87
|
+
* @param call - Function name, params and optional schema.
|
|
88
|
+
* @returns Safe Result with the function output.
|
|
89
|
+
*/
|
|
90
|
+
useRpc<T = unknown>(call: IfRpcCall): Promise<FetchResult<T>>;
|
|
91
|
+
/**
|
|
92
|
+
* Uploads a file to a bucket (standard PUT semantics: same key replaces).
|
|
93
|
+
*
|
|
94
|
+
* @param ref - Bucket + object key.
|
|
95
|
+
* @param file - File or Blob to upload.
|
|
96
|
+
* @returns Safe Result with the stored file metadata.
|
|
97
|
+
*/
|
|
98
|
+
useUpload(ref: IfStorageRef, file: File | Blob): Promise<FetchResult<Record<string, unknown>>>;
|
|
99
|
+
/**
|
|
100
|
+
* Downloads a file from a bucket.
|
|
101
|
+
*
|
|
102
|
+
* @param ref - Bucket + object key.
|
|
103
|
+
* @returns Safe Result with the file as a Blob.
|
|
104
|
+
*/
|
|
105
|
+
useDownload(ref: IfStorageRef): Promise<FetchResult<Blob>>;
|
|
106
|
+
/**
|
|
107
|
+
* Removes a file from a bucket.
|
|
108
|
+
*
|
|
109
|
+
* @param ref - Bucket + object key.
|
|
110
|
+
* @returns Safe Result with the deletion response.
|
|
111
|
+
*/
|
|
112
|
+
useRemove(ref: IfStorageRef): Promise<FetchResult<Record<string, unknown>>>;
|
|
113
|
+
/**
|
|
114
|
+
* Lists objects in a bucket.
|
|
115
|
+
*
|
|
116
|
+
* @param bucket - Bucket name.
|
|
117
|
+
* @param options - Prefix, search, limit and offset.
|
|
118
|
+
* @returns Safe Result with the listing.
|
|
119
|
+
*/
|
|
120
|
+
useListObjects(bucket: string, options?: IfListOptions): Promise<FetchResult<Record<string, unknown>>>;
|
|
121
|
+
/**
|
|
122
|
+
* Builds the public URL for an object in a public bucket (no network call).
|
|
123
|
+
*
|
|
124
|
+
* @param ref - Bucket + object key.
|
|
125
|
+
* @returns Safe Result with `{ publicUrl }`.
|
|
126
|
+
*/
|
|
127
|
+
useGetPublicUrl(ref: IfStorageRef): FetchResult<{
|
|
128
|
+
publicUrl: string;
|
|
129
|
+
}>;
|
|
130
|
+
/**
|
|
131
|
+
* Invokes an edge function.
|
|
132
|
+
*
|
|
133
|
+
* @param options - Function slug + optional JSON body.
|
|
134
|
+
* @returns Safe Result with the function response.
|
|
135
|
+
*/
|
|
136
|
+
useInvokeFunction<T = unknown>(options: IfInvokeOptions): Promise<FetchResult<T>>;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Registers the InsForge client and returns your methods alongside it - the
|
|
5
140
|
* config-file entry point. One call is the whole setup: no separate
|
|
6
141
|
* `useInitInsforge(...)` step.
|
|
7
142
|
*
|
|
@@ -48,7 +183,7 @@ export declare function defineInsforgeConfig<T extends IfConfig>(input: T & This
|
|
|
48
183
|
export declare function useInitInsforge(config: IfConfig): void;
|
|
49
184
|
/**
|
|
50
185
|
* Returns the initialized client (or `null` before `useInitInsforge`).
|
|
51
|
-
* Exposed for advanced use
|
|
186
|
+
* Exposed for advanced use - the wrappers cover the supported surface.
|
|
52
187
|
*
|
|
53
188
|
* @returns The InsForge client or `null`.
|
|
54
189
|
*/
|
|
@@ -76,7 +211,7 @@ export declare function useIfSelect<T = Record<string, unknown>>(query: IfTableQ
|
|
|
76
211
|
export declare function useIfInsert<T = Record<string, unknown>>(table: string, rows: IfInsertRows, schema?: string): Promise<FetchResult<T[]>>;
|
|
77
212
|
/**
|
|
78
213
|
* Updates rows matching the filters and returns the updated rows.
|
|
79
|
-
* Filters are REQUIRED
|
|
214
|
+
* Filters are REQUIRED - mass updates are refused at validation time.
|
|
80
215
|
*
|
|
81
216
|
* @param query - Table + mandatory filters (+ optional schema).
|
|
82
217
|
* @param patch - Column patch (must not be empty).
|
|
@@ -85,7 +220,7 @@ export declare function useIfInsert<T = Record<string, unknown>>(table: string,
|
|
|
85
220
|
export declare function useIfUpdate<T = Record<string, unknown>>(query: IfWriteQuery, patch: IfUpdatePatch): Promise<FetchResult<T[]>>;
|
|
86
221
|
/**
|
|
87
222
|
* Deletes rows matching the filters and returns the deleted rows.
|
|
88
|
-
* Filters are REQUIRED
|
|
223
|
+
* Filters are REQUIRED - mass deletes are refused at validation time.
|
|
89
224
|
*
|
|
90
225
|
* @param query - Table + mandatory filters (+ optional schema).
|
|
91
226
|
* @returns Safe Result with the deleted rows.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insforge.service.d.ts","sourceRoot":"","sources":["../../../src/adapters/insforge/insforge.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAiBrF,OAAO,KAAK,EAEX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"insforge.service.d.ts","sourceRoot":"","sources":["../../../src/adapters/insforge/insforge.service.ts"],"names":[],"mappings":"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"}
|