@hotfusion/modeller 0.0.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.
Files changed (54) hide show
  1. package/dist/connector.js +297 -0
  2. package/dist/connector.js.map +1 -0
  3. package/dist/index.js +12 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/model.js +446 -0
  6. package/dist/model.js.map +1 -0
  7. package/dist/modeller.js +461 -0
  8. package/dist/modeller.js.map +1 -0
  9. package/dist/server.js +364 -0
  10. package/dist/server.js.map +1 -0
  11. package/dist/types/connector.d.ts +54 -0
  12. package/dist/types/connector.d.ts.map +1 -0
  13. package/dist/types/index.d.ts +5 -0
  14. package/dist/types/index.d.ts.map +1 -0
  15. package/dist/types/model.d.ts +106 -0
  16. package/dist/types/model.d.ts.map +1 -0
  17. package/dist/types/modeller.d.ts +88 -0
  18. package/dist/types/modeller.d.ts.map +1 -0
  19. package/dist/types/server.d.ts +22 -0
  20. package/dist/types/server.d.ts.map +1 -0
  21. package/dist/types/utils/bundler.d.ts +41 -0
  22. package/dist/types/utils/bundler.d.ts.map +1 -0
  23. package/dist/types/utils/decode-jwt.d.ts +2 -0
  24. package/dist/types/utils/decode-jwt.d.ts.map +1 -0
  25. package/dist/types/utils/dirname.d.ts +2 -0
  26. package/dist/types/utils/dirname.d.ts.map +1 -0
  27. package/dist/types/utils/encryption.d.ts +4 -0
  28. package/dist/types/utils/encryption.d.ts.map +1 -0
  29. package/dist/types/utils/keygen.d.ts +5 -0
  30. package/dist/types/utils/keygen.d.ts.map +1 -0
  31. package/dist/types/utils/object-collection.d.ts +36 -0
  32. package/dist/types/utils/object-collection.d.ts.map +1 -0
  33. package/dist/types/utils/request.d.ts +2 -0
  34. package/dist/types/utils/request.d.ts.map +1 -0
  35. package/dist/types/utils/sign-jwt.d.ts +2 -0
  36. package/dist/types/utils/sign-jwt.d.ts.map +1 -0
  37. package/dist/utils/_secret.key +1 -0
  38. package/dist/utils/bundler.js +347 -0
  39. package/dist/utils/bundler.js.map +1 -0
  40. package/dist/utils/decode-jwt.js +18 -0
  41. package/dist/utils/decode-jwt.js.map +1 -0
  42. package/dist/utils/dirname.js +4 -0
  43. package/dist/utils/dirname.js.map +1 -0
  44. package/dist/utils/encryption.js +12 -0
  45. package/dist/utils/encryption.js.map +1 -0
  46. package/dist/utils/keygen.js +34 -0
  47. package/dist/utils/keygen.js.map +1 -0
  48. package/dist/utils/object-collection.js +172 -0
  49. package/dist/utils/object-collection.js.map +1 -0
  50. package/dist/utils/request.js +50 -0
  51. package/dist/utils/request.js.map +1 -0
  52. package/dist/utils/sign-jwt.js +14 -0
  53. package/dist/utils/sign-jwt.js.map +1 -0
  54. package/package.json +54 -0
package/dist/server.js ADDED
@@ -0,0 +1,364 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Server = void 0;
7
+ const koa_1 = __importDefault(require("koa"));
8
+ const busboy_1 = __importDefault(require("busboy"));
9
+ const koa_router_1 = __importDefault(require("koa-router"));
10
+ const koa_session_1 = __importDefault(require("koa-session"));
11
+ const bodyparser_1 = __importDefault(require("@koa/bodyparser"));
12
+ const cors_1 = __importDefault(require("@koa/cors"));
13
+ const eventemitter3_1 = require("eventemitter3");
14
+ const jose_1 = require("jose");
15
+ const socket_io_1 = require("socket.io");
16
+ const keygen_js_1 = require("./utils/keygen.js");
17
+ class Utils {
18
+ static trimPath(path) {
19
+ return '/' + path.split('/').filter((x) => x).join('/');
20
+ }
21
+ static postman(Event) {
22
+ if (Event.middleware === 'postman')
23
+ return Event.ctx.redirect(`/?access_token=${Event.profile.accessToken}&clientId=${Event.provider.clientId}&providerId=${Event.provider.id}&scopes=${Event.provider.scopes.join(' ')}`);
24
+ }
25
+ }
26
+ class Server extends eventemitter3_1.EventEmitter {
27
+ port;
28
+ app;
29
+ router;
30
+ routes = [];
31
+ providers = [];
32
+ config;
33
+ io;
34
+ constructor(port, config) {
35
+ super();
36
+ this.app = new koa_1.default();
37
+ this.router = new koa_router_1.default();
38
+ this.app.use((0, cors_1.default)());
39
+ this.app.use((0, bodyparser_1.default)());
40
+ this.app.keys = [config?.secret || keygen_js_1.KeyGen.getSystemSecret()];
41
+ this.app.use((0, koa_session_1.default)({
42
+ key: config?.secret || keygen_js_1.KeyGen.getSystemSecret(),
43
+ maxAge: 86400000,
44
+ autoCommit: true,
45
+ overwrite: false,
46
+ httpOnly: true,
47
+ signed: true,
48
+ rolling: false,
49
+ renew: false,
50
+ secure: process.env.NODE_ENV === 'production',
51
+ }, this.app));
52
+ this.port = port;
53
+ this.config = config;
54
+ }
55
+ // TODO: IMPORTANT: Deprecated
56
+ setOIDCProviders(path, providers) {
57
+ if (this.config.domain)
58
+ path = `${this.config.domain}/${path}`;
59
+ path
60
+ = path.split('/').filter((x) => x).join('/');
61
+ providers?.forEach?.((provider) => {
62
+ if (!this.providers.find(x => x.clientId === provider.clientId))
63
+ this.providers.push({ ...provider });
64
+ });
65
+ if (!this.routes.find(x => x.path === Utils.trimPath(path) + '/:provider')) {
66
+ this.routes.push({
67
+ method: 'post',
68
+ path: Utils.trimPath(path) + '/:provider/logout',
69
+ callback: async (ctx, next) => {
70
+ if (ctx.params.provider === 'callback' || !ctx.path.includes('/logout'))
71
+ return await next();
72
+ let provider = this.providers.find(x => x.id === ctx.params.provider);
73
+ if (provider) {
74
+ let SESSION = ctx.headers.authorization || '';
75
+ if (!SESSION)
76
+ ctx.throw(401, 'Unauthorized');
77
+ if (SESSION) {
78
+ SESSION = SESSION.split(' ').pop() || '';
79
+ let token;
80
+ try {
81
+ token = (await (0, jose_1.jwtVerify)(SESSION, new TextEncoder().encode(Array.isArray(this.app?.keys) ? this.app.keys[0] : undefined))).payload;
82
+ }
83
+ catch (e) {
84
+ token = (0, jose_1.decodeJwt)(SESSION);
85
+ }
86
+ let body = {};
87
+ await new Promise(resolve => setTimeout(resolve, 1000));
88
+ ctx.body = body;
89
+ }
90
+ }
91
+ }
92
+ });
93
+ /*this.routes.push({
94
+ method: 'get',
95
+ path: Utils.trimPath(path) + '/:provider',
96
+ callback: async (ctx, next) => {
97
+ if (ctx.params.provider === 'callback')
98
+ return await next();
99
+
100
+ let provider:IOIDCProvider | undefined
101
+ = this.providers.find(x => x.id === ctx.params.provider);
102
+
103
+ if (provider) {
104
+ try{
105
+ let {url, code_verifier, state}
106
+ = await new OIDCClient(provider as any ).buildURL(provider.scopes.join(' '));
107
+
108
+ let {middleware} = ctx.request.query || {};
109
+ ctx.session!.oidc = {
110
+ __SID : ctx.query.__SID,
111
+ provider,
112
+ code_verifier,
113
+ state,
114
+ middleware: middleware || false,
115
+ query : (ctx.request.querystring || '').replace(/^\?/, '')
116
+ .split('&')
117
+ .filter(Boolean)
118
+ .reduce<Record<string, string>>((acc, pair) => {
119
+ const [key, value = ''] = pair.split('=');
120
+ acc[decodeURIComponent(key as any )] = decodeURIComponent(value);
121
+ return acc;
122
+ }, {})
123
+ };
124
+
125
+ await ctx.session!.save?.();
126
+ ctx.redirect(url.toString());
127
+ }catch (e:any){
128
+ console.error(e);
129
+ ctx.body = e.message;
130
+ }
131
+ }
132
+ }
133
+ })*/
134
+ /*this.routes.push({
135
+ method : 'get',
136
+ path : Utils.trimPath(path.replace(this.config.domain + '/', '') + '/callback'),
137
+ callback : async (ctx) => {
138
+ let origin
139
+ = ctx.session?.oidc?.query?.origin || '';
140
+
141
+ const session
142
+ = ctx.session?.oidc;
143
+
144
+ const code
145
+ = ctx.query.code as string;
146
+
147
+ const oidcClient
148
+ = new OIDCClient(session.provider);
149
+
150
+ const TokenCollection
151
+ = await oidcClient.getToken(code,session.code_verifier)
152
+
153
+ this.emit('provider',{token:TokenCollection,sid:session.__SID,session});
154
+ ctx.type = 'html';
155
+ ctx.body = `<script>window?.close?.()</script>`
156
+ }
157
+ })*/
158
+ }
159
+ return this;
160
+ }
161
+ // ── upload ───────────────────────────────────────────────────────────────
162
+ //
163
+ // Registers a multipart/form-data route. The handler receives the parsed
164
+ // file as a Buffer along with any other form fields.
165
+ //
166
+ // Example:
167
+ // server.upload('/system/filesystem/upload', async (ctx, file, fields) => {
168
+ // return { ok: true };
169
+ // });
170
+ upload(path, handler) {
171
+ this.routes.push({
172
+ method: 'post',
173
+ path,
174
+ callback: async (ctx) => {
175
+ return new Promise((resolve, reject) => {
176
+ const fields = {};
177
+ const chunks = [];
178
+ const bb = (0, busboy_1.default)({ headers: ctx.req.headers });
179
+ bb.on('field', (name, value) => { fields[name] = value; });
180
+ bb.on('file', (_fieldname, stream, info) => {
181
+ fields['filename'] = info.filename;
182
+ stream.on('data', (chunk) => chunks.push(chunk));
183
+ stream.on('end', () => { });
184
+ stream.on('error', reject);
185
+ });
186
+ bb.on('finish', async () => {
187
+ try {
188
+ const file = Buffer.concat(chunks);
189
+ const result = await handler(ctx, file, fields);
190
+ ctx.status = 200;
191
+ ctx.body = { ok: true, entry: result };
192
+ resolve(result);
193
+ }
194
+ catch (err) {
195
+ ctx.status = 500;
196
+ ctx.body = { ok: false, error: err?.message ?? err };
197
+ resolve(null);
198
+ }
199
+ });
200
+ bb.on('error', reject);
201
+ ctx.req.pipe(bb);
202
+ });
203
+ },
204
+ });
205
+ return this;
206
+ }
207
+ // ── stream ───────────────────────────────────────────────────────────────
208
+ //
209
+ // Registers socket handlers for chunked binary file streaming with resume.
210
+ // The handler receives the complete reassembled Buffer and the upload metadata.
211
+ // Call this once — it handles all uploads for any model/scope.
212
+ //
213
+ // Example:
214
+ // server.stream(async (buffer, meta) => {
215
+ // // meta = { _id, path, id, scope, ... }
216
+ // return { ok: true };
217
+ // });
218
+ _streamHandler;
219
+ _uploadTmp = '/tmp/hotfusion-uploads';
220
+ stream(handler) {
221
+ this._streamHandler = handler;
222
+ return this;
223
+ }
224
+ _setupStream(socket) {
225
+ const handler = this._streamHandler;
226
+ const uploadTmp = this._uploadTmp;
227
+ // uploadId → { meta, totalChunks, received }
228
+ const uploads = new Map();
229
+ // Check disk for existing chunks (resume support)
230
+ socket.on('upload:resume', async ({ uploadId }) => {
231
+ const uploadDir = `${uploadTmp}/${uploadId}`;
232
+ let fromChunk = 0;
233
+ try {
234
+ const { readdir } = await import('node:fs/promises');
235
+ const files = await readdir(uploadDir);
236
+ const indices = files.map((f) => parseInt(f)).filter((n) => !isNaN(n));
237
+ if (indices.length)
238
+ fromChunk = Math.max(...indices) + 1;
239
+ }
240
+ catch { }
241
+ socket.emit(`upload:resume:${uploadId}`, { fromChunk });
242
+ });
243
+ // Client announces upload metadata
244
+ socket.on('upload:start', async ({ uploadId, id, scope, method, meta, totalChunks }) => {
245
+ meta = { ...meta, id, scope, method };
246
+ const { mkdirSync } = await import('node:fs');
247
+ mkdirSync(`${uploadTmp}/${uploadId}`, { recursive: true });
248
+ const received = new Set();
249
+ try {
250
+ const { readdirSync } = require('node:fs');
251
+ readdirSync(`${uploadTmp}/${uploadId}`)
252
+ .forEach((f) => { const n = parseInt(f); if (!isNaN(n))
253
+ received.add(n); });
254
+ }
255
+ catch { }
256
+ uploads.set(uploadId, { meta, totalChunks, received });
257
+ });
258
+ // Client sends a raw binary chunk
259
+ socket.on('upload:chunk', async ({ uploadId, index, data }) => {
260
+ const upload = uploads.get(uploadId);
261
+ if (!upload) {
262
+ socket.emit(`upload:error:${uploadId}`, 'Upload not started');
263
+ return;
264
+ }
265
+ try {
266
+ const { writeFile, readFile, rm } = await import('node:fs/promises');
267
+ await writeFile(`${uploadTmp}/${uploadId}/${index}`, data);
268
+ upload.received.add(index);
269
+ // Ack so client sends next chunk
270
+ socket.emit(`upload:ack:${uploadId}:${index}`);
271
+ // All chunks received — reassemble and call handler
272
+ if (upload.received.size === upload.totalChunks) {
273
+ const chunks = [];
274
+ for (let i = 0; i < upload.totalChunks; i++) {
275
+ chunks.push(await readFile(`${uploadTmp}/${uploadId}/${i}`));
276
+ }
277
+ const buffer = Buffer.concat(chunks);
278
+ // Clean up tmp
279
+ await rm(`${uploadTmp}/${uploadId}`, { recursive: true, force: true });
280
+ uploads.delete(uploadId);
281
+ let meta = {};
282
+ if (this.listenerCount('uploaded') > 0) {
283
+ const listeners = this.listeners('uploaded');
284
+ const results = await Promise.all(listeners.map(listener => new Promise(resolve => listener({ resolve, file: upload.meta, buffer }))));
285
+ meta = Object.assign({}, ...results);
286
+ }
287
+ const result = handler ? await handler(buffer, { ...upload.meta, ...meta }) : { ok: true };
288
+ socket.emit(`upload:complete:${uploadId}`, result);
289
+ }
290
+ }
291
+ catch (err) {
292
+ socket.emit(`upload:error:${uploadId}`, err?.message ?? err);
293
+ }
294
+ });
295
+ }
296
+ route(route) {
297
+ route.path = Utils.trimPath(route.path);
298
+ this.routes.push(route);
299
+ return this;
300
+ }
301
+ start() {
302
+ setTimeout(() => {
303
+ this.app.use(async (ctx, next) => {
304
+ try {
305
+ await next();
306
+ }
307
+ catch (err) {
308
+ ctx.status = err.status || 500;
309
+ ctx.body = {
310
+ error: err.message || 'Internal error',
311
+ status: err.status
312
+ };
313
+ }
314
+ });
315
+ for (let i = 0; i < this.routes.length; i++) {
316
+ let { method, path, callback } = this.routes[i] || {};
317
+ if (method && path && callback)
318
+ this.router[method](path, async (ctx, next) => {
319
+ let flags = {
320
+ protected: this.routes?.[i]?.protected || false
321
+ };
322
+ try {
323
+ if (flags.protected) {
324
+ let TOKEN = ctx.headers.authorization;
325
+ if (!TOKEN)
326
+ ctx.throw(401, 'Unauthorized');
327
+ ctx.token
328
+ = (await (0, jose_1.jwtVerify)(TOKEN.split(' ').pop(), new TextEncoder().encode(Array.isArray(this.app?.keys) ? this.app.keys[0] : undefined))).payload;
329
+ }
330
+ let body = await callback(ctx, next);
331
+ if (!ctx.body) {
332
+ ctx.status = 200;
333
+ ctx.body = body;
334
+ }
335
+ }
336
+ catch (err) {
337
+ ctx.status = 500;
338
+ ctx.body = {
339
+ error: err.message || err.code || err.details || 'Internal error',
340
+ };
341
+ }
342
+ });
343
+ }
344
+ this.app.use(this.router.routes());
345
+ this.app.use(this.router.allowedMethods());
346
+ const server = this.app.listen(this.port, '0.0.0.0', () => {
347
+ this.emit("mounted", this);
348
+ });
349
+ this.io = new socket_io_1.Server(server, {
350
+ cors: { origin: "*", methods: ["GET", "POST"] },
351
+ });
352
+ this.io.use((socket, next) => {
353
+ next();
354
+ });
355
+ this.io.on("connection", (socket) => {
356
+ this._setupStream(socket);
357
+ this.emit('connection', { socket });
358
+ });
359
+ }, 100);
360
+ return this;
361
+ }
362
+ }
363
+ exports.Server = Server;
364
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { Socket } from "socket.io-client";
2
+ import type { TMetaData } from "./types.d.ts";
3
+ export interface IOperationEntry {
4
+ method: string;
5
+ schema?: any;
6
+ }
7
+ export interface IUploadOptions {
8
+ stream?: {
9
+ path: string;
10
+ meta?: Record<string, any>;
11
+ onProgress?: (sent: number, total: number, file: File) => void;
12
+ };
13
+ }
14
+ export declare class Connector {
15
+ private _socket;
16
+ private _http;
17
+ private _emitter;
18
+ private _pending;
19
+ private _metadata;
20
+ private _operationMap;
21
+ private readonly _uri;
22
+ [key: string]: any;
23
+ constructor(uri: string);
24
+ operationMap(): {
25
+ key: string;
26
+ value: IOperationEntry;
27
+ }[];
28
+ on(event: string, listener: (...args: any[]) => void): this;
29
+ off(event: string, listener: (...args: any[]) => void): this;
30
+ once(event: string, listener: (...args: any[]) => void): this;
31
+ private _eventCall;
32
+ private _buildProxy;
33
+ subscribe(id: string, scope: string, query?: Record<string, any>, listener?: (payload: any) => void): Promise<{
34
+ connector: Connector;
35
+ proxy: Record<string, (args: any) => Promise<any>>;
36
+ }>;
37
+ unsubscribe(id: string, scope: string, query?: Record<string, any>, listener?: (...args: any[]) => void): this;
38
+ connect(): Promise<this>;
39
+ disconnect(): void;
40
+ operation<T = any>(path: string, body?: Record<string, any>, options?: IUploadOptions): Promise<T>;
41
+ post<T = any>(path: string, body: Record<string, any>, options?: IUploadOptions): Promise<T>;
42
+ get<T = any>(path: string): Promise<T>;
43
+ getOperationSchema(path: string): any;
44
+ authenticate(email: string, password: string): Promise<string>;
45
+ authorize(providerId: string): Promise<void>;
46
+ upload(path: string, fields: Record<string, any>, meta?: Record<string, any>, onProgress?: (sent: number, total: number, file: File) => void): Promise<Record<string, any>>;
47
+ stream<T = any>(path: string, files: File[], meta: Record<string, any>, onProgress?: (sent: number, total: number, file: File) => void): Promise<T[]>;
48
+ private _findFiles;
49
+ private _setByPath;
50
+ get socket(): Socket;
51
+ get metadata(): TMetaData | null;
52
+ getMetadata(): Promise<TMetaData>;
53
+ }
54
+ //# sourceMappingURL=connector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/connector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { Server } from "./server";
2
+ export { Bundler } from "./utils/bundler";
3
+ export { Model } from "./model";
4
+ export { KeyGen } from "./utils/keygen";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAO,UAAU,CAAC;AACjC,OAAO,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,106 @@
1
+ import type { IEvent, IHook, ILogAdapter, ILogEntry, ILoggerOptions, IMethod, ISchema, IStream, IUpload, IWorker, LogFeature, LogLevel } from './types.d.ts';
2
+ import { type IModellerConfig, Modeller } from "./modeller";
3
+ declare class Logger {
4
+ private level;
5
+ private features;
6
+ private adapter;
7
+ private onEntry;
8
+ private ts;
9
+ private modelId;
10
+ constructor(modelId: string, opts?: ILoggerOptions);
11
+ configure(opts: ILoggerOptions): void;
12
+ private shouldLog;
13
+ private getCallSite;
14
+ private formatPrefix;
15
+ private toConsole;
16
+ private write;
17
+ initial(feature: LogFeature, message: string, data?: Record<string, any>): void;
18
+ debug(feature: LogFeature, message: string, data?: Record<string, any>): void;
19
+ info(feature: LogFeature, message: string, data?: Record<string, any>): void;
20
+ warn(feature: LogFeature, message: string, data?: Record<string, any>): void;
21
+ error(feature: LogFeature, message: string, data?: Record<string, any>): void;
22
+ }
23
+ export declare class Subscription {
24
+ private _emitter;
25
+ private _events;
26
+ private _model;
27
+ constructor(events: IEvent[], model: Model);
28
+ on(event: 'publish', listener: (payload: any) => void): this;
29
+ off(event: 'publish', listener: (payload: any) => void): this;
30
+ publish(payload: any): void;
31
+ getEvents(): string[];
32
+ dispatch(id: string, args: any, ctx?: any): Promise<any>;
33
+ }
34
+ export interface IModelOptions extends IModellerConfig {
35
+ extensions?: Model[];
36
+ schemes?: ISchema[];
37
+ level?: LogLevel;
38
+ timestamp?: boolean;
39
+ logAdapter?: ILogAdapter;
40
+ onEntry?: (entry: ILogEntry) => void;
41
+ features?: Partial<Record<LogFeature, boolean>>;
42
+ [key: string]: any;
43
+ }
44
+ export declare class Model extends Modeller {
45
+ [key: string]: any;
46
+ private hooks;
47
+ private workers;
48
+ private unsignedWorkers;
49
+ private _methods;
50
+ private _uploads;
51
+ private _streams;
52
+ private _events;
53
+ private _subscriptions;
54
+ private emitter;
55
+ readonly log: Logger;
56
+ private _extensions;
57
+ constructor(id: string, schema: ISchema, opts?: IModelOptions);
58
+ getExtensions(): Model[];
59
+ on(event: string, listener: (...args: any[]) => void): this;
60
+ off(event: string, listener: (...args: any[]) => void): this;
61
+ once(event: string, listener: (...args: any[]) => void): this;
62
+ emit(event: string, payload?: any): void;
63
+ hook(hook: IHook): this;
64
+ unhook(id: string): this;
65
+ private fire;
66
+ worker(worker: IWorker): this;
67
+ start(id?: string): this;
68
+ stop(id?: string): this;
69
+ isRunning(id: string): boolean;
70
+ private _startWorker;
71
+ private _stopWorker;
72
+ method(m: IMethod): this;
73
+ call(id: string, args: any, ctx?: any): Promise<any>;
74
+ getMethods(): string[];
75
+ upload(u: IUpload): this;
76
+ callUpload(id: string, file: Buffer, fields: Record<string, string>): Promise<any>;
77
+ getUploads(): string[];
78
+ stream(s: IStream): this;
79
+ callStream(id: string, buffer: Buffer, meta: Record<string, any>): Promise<any>;
80
+ getStreams(): string[];
81
+ event(e: IEvent): this;
82
+ subscription(query: Record<string, any>): Subscription;
83
+ subscribe(query: Record<string, any>): {
84
+ subscription: Subscription;
85
+ subId: string;
86
+ };
87
+ unsubscribe(query: Record<string, any>): void;
88
+ insert(key?: {}, ...args: Record<string, any>[]): Promise<any>;
89
+ update(key: Record<string, any>, updates: any, opts?: {
90
+ private?: boolean;
91
+ }): Promise<any>;
92
+ delete(key: Record<string, any>): Promise<{
93
+ _id: string;
94
+ } | null>;
95
+ list(query?: Record<string, any>, options?: {
96
+ start?: number;
97
+ count?: number;
98
+ private?: boolean;
99
+ }): Promise<any[]>;
100
+ find(query?: Record<string, any>, opts?: {
101
+ max?: number;
102
+ private?: boolean;
103
+ }): Promise<any[]>;
104
+ }
105
+ export {};
106
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGR,MAAM,EACN,KAAK,EACL,WAAW,EACX,SAAS,EACT,cAAc,EACd,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EAEP,UAAU,EACV,QAAQ,EACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAC,KAAK,eAAe,EAAE,QAAQ,EAAY,MAAM,YAAY,CAAC;AAiBrE,cAAM,MAAM;IACR,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,OAAO,CAAW;gBAEd,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB;IAgBtD,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAQrC,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,KAAK;IAuBb,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAoB/E,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAC7E,IAAI,CAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAC7E,IAAI,CAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAC7E,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;CAChF;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK;IAK1C,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAK5D,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAK7D,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAI3B,SAAS,IAAI,MAAM,EAAE;IAIf,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAYjE;AAID,MAAM,WAAW,aAAc,SAAQ,eAAe;IAClD,UAAU,CAAC,EAAG,KAAK,EAAE,CAAC;IACtB,OAAO,CAAC,EAAM,OAAO,EAAE,CAAC;IACxB,KAAK,CAAC,EAAQ,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAI,OAAO,CAAC;IACtB,UAAU,CAAC,EAAG,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAM,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAK,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAID,qBAAa,KAAM,SAAQ,QAAQ;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAU,GAAG,CAAC;IAE1B,OAAO,CAAC,KAAK,CAAiD;IAC9D,OAAO,CAAC,OAAO,CAAsD;IACrE,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,OAAO,CAA+D;IAE9E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,WAAW,CAAe;gBAEtB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAE,aAAkB;IAsBjE,aAAa,IAAI,KAAK,EAAE;IAIxB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAM3D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAM5D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAM7D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAOxC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAMvB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;YASV,IAAI;IA4BlB,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAc7B,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAYxB,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAYvB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI9B,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,WAAW;IASnB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAMlB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAM1D,UAAU,IAAI,MAAM,EAAE;IAEtB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAMlB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAMxF,UAAU,IAAI,MAAM,EAAE;IAEtB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAMlB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAMrF,UAAU,IAAI,MAAM,EAAE;IAItB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAMtB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY;IAItD,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAYpF,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAOvC,MAAM,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAiB9D,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAW9F,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAcjE,IAAI,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAW1H,IAAI,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,IAAI,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;CAM9G"}
@@ -0,0 +1,88 @@
1
+ import type { IModellerConfig, ISchema } from './types.d.ts';
2
+ import { EventEmitter } from "eventemitter3";
3
+ import { Ajv } from "ajv";
4
+ type IKey = any;
5
+ export declare class Validator extends EventEmitter {
6
+ static models: {
7
+ id: string;
8
+ operations: {
9
+ id: string;
10
+ }[];
11
+ }[];
12
+ _schema: ISchema;
13
+ _validator: any;
14
+ _ajv: Ajv;
15
+ parseRefs(schema: ISchema): ISchema;
16
+ constructor(schema: ISchema, options?: {
17
+ schemes?: ISchema[];
18
+ });
19
+ validate(item: any): Promise<any>;
20
+ }
21
+ export declare class Trash {
22
+ private bin;
23
+ private adapter;
24
+ constructor(adapter?: Adapter);
25
+ add(id: string, doc: any): Promise<void>;
26
+ restore(id: string): any | undefined;
27
+ has(id: string): boolean;
28
+ get(id: string): any | undefined;
29
+ permanentDelete(id: string): Promise<boolean>;
30
+ empty(): number;
31
+ size(): number;
32
+ list(options?: {
33
+ start?: number;
34
+ count?: number;
35
+ }): any[];
36
+ find(query?: Record<string, any>): any | undefined;
37
+ findAll(query?: Record<string, any>): any[];
38
+ private sync;
39
+ }
40
+ export declare class Adapter {
41
+ constructor(id: string);
42
+ sync(id: string, doc: Record<string, any> & {
43
+ _id: string;
44
+ }): Promise<void>;
45
+ pull(): Promise<any[]>;
46
+ }
47
+ export declare class Modeller {
48
+ id: string;
49
+ private validator;
50
+ private adapter;
51
+ private schema;
52
+ private trash;
53
+ private data;
54
+ private indexes;
55
+ private configs;
56
+ private schemes;
57
+ constructor(id: string, schema: ISchema, configs: IModellerConfig, schemes?: ISchema[]);
58
+ mergeSchema(schema: any, schemes: any[]): any;
59
+ private findByKey;
60
+ private getPrivateFields;
61
+ private stripPrivateFields;
62
+ getSchema({ private: priv }?: {
63
+ private?: boolean | undefined;
64
+ }): ISchema;
65
+ insert(key?: IKey, ...args: Record<string, any>[]): Promise<any>;
66
+ update(key: IKey, updates: any, { private: priv }?: {
67
+ private?: boolean | undefined;
68
+ }): Promise<any | null>;
69
+ delete(key: IKey): Promise<{
70
+ _id: string;
71
+ } | null>;
72
+ get(key: IKey, { private: priv }?: {
73
+ private?: boolean | undefined;
74
+ }): Promise<any | null>;
75
+ list(query?: Record<string, any>, options?: {
76
+ start?: number;
77
+ count?: number;
78
+ private?: boolean;
79
+ }): Promise<any[]>;
80
+ find(query?: Record<string, any>, { max, private: priv }?: {
81
+ max?: number | undefined;
82
+ private?: boolean | undefined;
83
+ }): Promise<any[]>;
84
+ sync(doc: any): Promise<void>;
85
+ pull(): Promise<void>;
86
+ }
87
+ export {};
88
+ //# sourceMappingURL=modeller.d.ts.map