@venizia/ignis-kernel 0.2.1-2 → 0.2.1-4
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/dist/cjs/base/applications/artifact-index.d.ts.map +1 -1
- package/dist/cjs/base/applications/artifact-index.js +28 -31
- package/dist/cjs/base/applications/artifact-index.js.map +1 -1
- package/dist/cjs/base/applications/common/types/application.d.ts +7 -0
- package/dist/cjs/base/applications/common/types/application.d.ts.map +1 -1
- package/dist/cjs/base/applications/rest.d.ts.map +1 -1
- package/dist/cjs/base/applications/rest.js +34 -4
- package/dist/cjs/base/applications/rest.js.map +1 -1
- package/dist/cjs/base/controllers/factory/controller.d.ts +56 -2
- package/dist/cjs/base/controllers/factory/controller.d.ts.map +1 -1
- package/dist/cjs/base/controllers/rest/base.d.ts +70 -3
- package/dist/cjs/base/controllers/rest/base.d.ts.map +1 -1
- package/dist/cjs/base/controllers/rest/base.js +30 -3
- package/dist/cjs/base/controllers/rest/base.js.map +1 -1
- package/dist/cjs/base/controllers/rest/extras.d.ts +49 -0
- package/dist/cjs/base/controllers/rest/extras.d.ts.map +1 -0
- package/dist/cjs/base/controllers/rest/extras.js +153 -0
- package/dist/cjs/base/controllers/rest/extras.js.map +1 -0
- package/dist/cjs/base/controllers/rest/index.d.ts +1 -0
- package/dist/cjs/base/controllers/rest/index.d.ts.map +1 -1
- package/dist/cjs/base/controllers/rest/index.js +1 -0
- package/dist/cjs/base/controllers/rest/index.js.map +1 -1
- package/dist/cjs/base/metadata/artifact-keys.d.ts +54 -0
- package/dist/cjs/base/metadata/artifact-keys.d.ts.map +1 -0
- package/dist/cjs/base/metadata/artifact-keys.js +60 -0
- package/dist/cjs/base/metadata/artifact-keys.js.map +1 -0
- package/dist/cjs/base/metadata/injectable.d.ts.map +1 -1
- package/dist/cjs/base/metadata/injectable.js +5 -3
- package/dist/cjs/base/metadata/injectable.js.map +1 -1
- package/dist/cjs/base/metadata/persistents.d.ts.map +1 -1
- package/dist/cjs/base/metadata/persistents.js +44 -17
- package/dist/cjs/base/metadata/persistents.js.map +1 -1
- package/dist/cjs/base/repositories/common/extra-request.d.ts +26 -0
- package/dist/cjs/base/repositories/common/extra-request.d.ts.map +1 -0
- package/dist/cjs/base/repositories/common/extra-request.js +21 -0
- package/dist/cjs/base/repositories/common/extra-request.js.map +1 -0
- package/dist/cjs/base/repositories/common/response-reader.d.ts +52 -0
- package/dist/cjs/base/repositories/common/response-reader.d.ts.map +1 -0
- package/dist/cjs/base/repositories/common/response-reader.js +98 -0
- package/dist/cjs/base/repositories/common/response-reader.js.map +1 -0
- package/dist/cjs/base/repositories/common/types/results.d.ts +2 -1
- package/dist/cjs/base/repositories/common/types/results.d.ts.map +1 -1
- package/dist/cjs/base/repositories/core/abstract.js +2 -2
- package/dist/cjs/base/repositories/core/abstract.js.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/repository.mixin.d.ts +14 -3
- package/dist/cjs/helpers/inversion/mixins/repository.mixin.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/repository.mixin.js +29 -14
- package/dist/cjs/helpers/inversion/mixins/repository.mixin.js.map +1 -1
- package/dist/cjs/helpers/inversion/registry.d.ts +7 -1
- package/dist/cjs/helpers/inversion/registry.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/registry.js +2 -0
- package/dist/cjs/helpers/inversion/registry.js.map +1 -1
- package/dist/cjs/metadata.d.ts +1 -0
- package/dist/cjs/metadata.d.ts.map +1 -1
- package/dist/cjs/metadata.js +3 -1
- package/dist/cjs/metadata.js.map +1 -1
- package/dist/cjs/repository.d.ts +3 -0
- package/dist/cjs/repository.d.ts.map +1 -1
- package/dist/cjs/repository.js +7 -1
- package/dist/cjs/repository.js.map +1 -1
- package/dist/esm/base/applications/artifact-index.d.ts.map +1 -1
- package/dist/esm/base/applications/artifact-index.js +28 -31
- package/dist/esm/base/applications/artifact-index.js.map +1 -1
- package/dist/esm/base/applications/common/types/application.d.ts +7 -0
- package/dist/esm/base/applications/common/types/application.d.ts.map +1 -1
- package/dist/esm/base/applications/rest.d.ts.map +1 -1
- package/dist/esm/base/applications/rest.js +35 -5
- package/dist/esm/base/applications/rest.js.map +1 -1
- package/dist/esm/base/controllers/factory/controller.d.ts +56 -2
- package/dist/esm/base/controllers/factory/controller.d.ts.map +1 -1
- package/dist/esm/base/controllers/rest/base.d.ts +70 -3
- package/dist/esm/base/controllers/rest/base.d.ts.map +1 -1
- package/dist/esm/base/controllers/rest/base.js +30 -3
- package/dist/esm/base/controllers/rest/base.js.map +1 -1
- package/dist/esm/base/controllers/rest/extras.d.ts +49 -0
- package/dist/esm/base/controllers/rest/extras.d.ts.map +1 -0
- package/dist/esm/base/controllers/rest/extras.js +149 -0
- package/dist/esm/base/controllers/rest/extras.js.map +1 -0
- package/dist/esm/base/controllers/rest/index.d.ts +1 -0
- package/dist/esm/base/controllers/rest/index.d.ts.map +1 -1
- package/dist/esm/base/controllers/rest/index.js +1 -0
- package/dist/esm/base/controllers/rest/index.js.map +1 -1
- package/dist/esm/base/metadata/artifact-keys.d.ts +54 -0
- package/dist/esm/base/metadata/artifact-keys.d.ts.map +1 -0
- package/dist/esm/base/metadata/artifact-keys.js +56 -0
- package/dist/esm/base/metadata/artifact-keys.js.map +1 -0
- package/dist/esm/base/metadata/injectable.d.ts.map +1 -1
- package/dist/esm/base/metadata/injectable.js +6 -4
- package/dist/esm/base/metadata/injectable.js.map +1 -1
- package/dist/esm/base/metadata/persistents.d.ts.map +1 -1
- package/dist/esm/base/metadata/persistents.js +44 -17
- package/dist/esm/base/metadata/persistents.js.map +1 -1
- package/dist/esm/base/repositories/common/extra-request.d.ts +26 -0
- package/dist/esm/base/repositories/common/extra-request.d.ts.map +1 -0
- package/dist/esm/base/repositories/common/extra-request.js +17 -0
- package/dist/esm/base/repositories/common/extra-request.js.map +1 -0
- package/dist/esm/base/repositories/common/response-reader.d.ts +52 -0
- package/dist/esm/base/repositories/common/response-reader.d.ts.map +1 -0
- package/dist/esm/base/repositories/common/response-reader.js +94 -0
- package/dist/esm/base/repositories/common/response-reader.js.map +1 -0
- package/dist/esm/base/repositories/common/types/results.d.ts +2 -1
- package/dist/esm/base/repositories/common/types/results.d.ts.map +1 -1
- package/dist/esm/base/repositories/core/abstract.js +2 -2
- package/dist/esm/base/repositories/core/abstract.js.map +1 -1
- package/dist/esm/helpers/inversion/mixins/repository.mixin.d.ts +14 -3
- package/dist/esm/helpers/inversion/mixins/repository.mixin.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/repository.mixin.js +29 -14
- package/dist/esm/helpers/inversion/mixins/repository.mixin.js.map +1 -1
- package/dist/esm/helpers/inversion/registry.d.ts +7 -1
- package/dist/esm/helpers/inversion/registry.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/registry.js +2 -0
- package/dist/esm/helpers/inversion/registry.js.map +1 -1
- package/dist/esm/metadata.d.ts +1 -0
- package/dist/esm/metadata.d.ts.map +1 -1
- package/dist/esm/metadata.js +1 -0
- package/dist/esm/metadata.js.map +1 -1
- package/dist/esm/repository.d.ts +3 -0
- package/dist/esm/repository.d.ts.map +1 -1
- package/dist/esm/repository.js +4 -0
- package/dist/esm/repository.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { HTTP } from '@venizia/ignis-helpers/common';
|
|
2
|
+
/** The client half of the list-extras contract: what goes in `x-request-extra`. */
|
|
3
|
+
export class HttpExtraRequest {
|
|
4
|
+
/**
|
|
5
|
+
* The header value for what a call asks for - `name`, `-name`, `name(key,key)` - led by `-*` when
|
|
6
|
+
* the call wants the rows alone, every default off. `undefined` when it asks for nothing.
|
|
7
|
+
*/
|
|
8
|
+
static toHeader(opts) {
|
|
9
|
+
const { extra = {}, isEveryDefaultOff = false } = opts;
|
|
10
|
+
const entries = Object.entries(extra).map(([name, value]) => value === true ? name : value === false ? `-${name}` : `${name}(${value.join(',')})`);
|
|
11
|
+
const tokens = isEveryDefaultOff ? ['-*', ...entries] : entries;
|
|
12
|
+
return tokens.length > 0 ? tokens.join(',') : undefined;
|
|
13
|
+
}
|
|
14
|
+
/** The header name, for a client that sets headers itself. */
|
|
15
|
+
static { this.HEADER = HTTP.Headers.REQUEST_EXTRA; }
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=extra-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extra-request.js","sourceRoot":"","sources":["../../../../../src/base/repositories/common/extra-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAoBrD,mFAAmF;AACnF,MAAM,OAAO,gBAAgB;IAC3B;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,IAGf;QACC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,iBAAiB,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QAEvD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAC1D,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CACrF,CAAC;QACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAEhE,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAED,8DAA8D;aAC9C,WAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { TResponsedError } from '@venizia/ignis-helpers/core';
|
|
2
|
+
/**
|
|
3
|
+
* What an IGNIS server answers - `Content-Range`, the error envelope - read once, here, for every
|
|
4
|
+
* client of that server: the http connector, and a client that reads it without the connector.
|
|
5
|
+
*/
|
|
6
|
+
export declare class HttpResponseReader {
|
|
7
|
+
static isPlainObject(value: unknown): value is Record<string, unknown>;
|
|
8
|
+
/** An empty string reads as absent, so a fallback still applies. */
|
|
9
|
+
static toText(value: unknown): string | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* A `Content-Range` header as the IGNIS server writes it: `records 0-24/137` -> skip 0, total 137;
|
|
12
|
+
* an empty page, `records *\/137` -> total 137. Anything else, including an absent header or an
|
|
13
|
+
* unknown total, is `undefined`.
|
|
14
|
+
*/
|
|
15
|
+
static parseContentRange(opts: {
|
|
16
|
+
header?: string | null;
|
|
17
|
+
}): {
|
|
18
|
+
skip?: number;
|
|
19
|
+
total: number;
|
|
20
|
+
} | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* The IGNIS error envelope - `{ message, statusCode, normalized: { text, code, args }, requestId,
|
|
23
|
+
* extra, details }` - read off a parsed response body. A server configured with `error.rootKey`
|
|
24
|
+
* wraps it under that key; pass the same `rootKey` to unwrap it. A body without that key, or with a
|
|
25
|
+
* non-object under it (a proxy's `{ error: 'Bad Gateway' }`), is read as it stands.
|
|
26
|
+
*
|
|
27
|
+
* A body that is not a plain object yields `{}`; any other body yields its known fields, each
|
|
28
|
+
* `undefined` when absent or mistyped. An empty string reads as absent.
|
|
29
|
+
*/
|
|
30
|
+
static readErrorEnvelope(opts: {
|
|
31
|
+
body: unknown;
|
|
32
|
+
rootKey?: string;
|
|
33
|
+
}): TResponsedError;
|
|
34
|
+
/** A failed response's envelope. A body that is not JSON yields `{}`, and the status alone still describes it. */
|
|
35
|
+
static readError(opts: {
|
|
36
|
+
response: Response;
|
|
37
|
+
rootKey?: string;
|
|
38
|
+
}): Promise<TResponsedError>;
|
|
39
|
+
/**
|
|
40
|
+
* A body the server marked with `x-response-extra` is `{ data, extra }`: its rows and what it
|
|
41
|
+
* answered beside them. Any other body is returned as it stands - an unmarked object is never
|
|
42
|
+
* unwrapped, so a row that has `data` and `extra` columns of its own is never misread.
|
|
43
|
+
*/
|
|
44
|
+
static readExtra(opts: {
|
|
45
|
+
body: unknown;
|
|
46
|
+
headers: Pick<Headers, 'has'>;
|
|
47
|
+
}): {
|
|
48
|
+
body: unknown;
|
|
49
|
+
extra?: Record<string, unknown>;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=response-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-reader.d.ts","sourceRoot":"","sources":["../../../../../src/base/repositories/common/response-reader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAMtE,oEAAoE;IACpE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAIjD;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE;QAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAoBhD;;;;;;;;OAQG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe;IA4BpF,kHAAkH;WACrG,SAAS,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAahG;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;KAAE,GAAG;QACxE,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC;CAcF"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { HTTP } from '@venizia/ignis-helpers/common';
|
|
2
|
+
/**
|
|
3
|
+
* What an IGNIS server answers - `Content-Range`, the error envelope - read once, here, for every
|
|
4
|
+
* client of that server: the http connector, and a client that reads it without the connector.
|
|
5
|
+
*/
|
|
6
|
+
export class HttpResponseReader {
|
|
7
|
+
static isPlainObject(value) {
|
|
8
|
+
return (!!value && typeof value === 'object' && Object.getPrototypeOf(value) === Object.prototype);
|
|
9
|
+
}
|
|
10
|
+
/** An empty string reads as absent, so a fallback still applies. */
|
|
11
|
+
static toText(value) {
|
|
12
|
+
return typeof value === 'string' && value !== '' ? value : undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A `Content-Range` header as the IGNIS server writes it: `records 0-24/137` -> skip 0, total 137;
|
|
16
|
+
* an empty page, `records *\/137` -> total 137. Anything else, including an absent header or an
|
|
17
|
+
* unknown total, is `undefined`.
|
|
18
|
+
*/
|
|
19
|
+
static parseContentRange(opts) {
|
|
20
|
+
const { header } = opts;
|
|
21
|
+
if (!header) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
const range = header.match(/(\d+)\s*-\s*(\d+)\s*\/\s*(\d+)/);
|
|
25
|
+
if (range) {
|
|
26
|
+
return { skip: Number(range[1]), total: Number(range[3]) };
|
|
27
|
+
}
|
|
28
|
+
const unsatisfied = header.match(/\*\s*\/\s*(\d+)/);
|
|
29
|
+
if (unsatisfied) {
|
|
30
|
+
return { total: Number(unsatisfied[1]) };
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The IGNIS error envelope - `{ message, statusCode, normalized: { text, code, args }, requestId,
|
|
36
|
+
* extra, details }` - read off a parsed response body. A server configured with `error.rootKey`
|
|
37
|
+
* wraps it under that key; pass the same `rootKey` to unwrap it. A body without that key, or with a
|
|
38
|
+
* non-object under it (a proxy's `{ error: 'Bad Gateway' }`), is read as it stands.
|
|
39
|
+
*
|
|
40
|
+
* A body that is not a plain object yields `{}`; any other body yields its known fields, each
|
|
41
|
+
* `undefined` when absent or mistyped. An empty string reads as absent.
|
|
42
|
+
*/
|
|
43
|
+
static readErrorEnvelope(opts) {
|
|
44
|
+
const { body, rootKey } = opts;
|
|
45
|
+
const wrapped = rootKey && HttpResponseReader.isPlainObject(body) ? body[rootKey] : undefined;
|
|
46
|
+
const envelope = HttpResponseReader.isPlainObject(wrapped) ? wrapped : body;
|
|
47
|
+
if (!HttpResponseReader.isPlainObject(envelope)) {
|
|
48
|
+
return {};
|
|
49
|
+
}
|
|
50
|
+
const { message, statusCode, normalized, requestId, extra, details } = envelope;
|
|
51
|
+
const normalizedRecord = HttpResponseReader.isPlainObject(normalized) ? normalized : {};
|
|
52
|
+
const { text, code, args } = normalizedRecord;
|
|
53
|
+
return {
|
|
54
|
+
message: HttpResponseReader.toText(message),
|
|
55
|
+
statusCode: typeof statusCode === 'number' ? statusCode : undefined,
|
|
56
|
+
normalized: {
|
|
57
|
+
text: HttpResponseReader.toText(text),
|
|
58
|
+
code: HttpResponseReader.toText(code),
|
|
59
|
+
args: HttpResponseReader.isPlainObject(args) ? { ...args } : undefined,
|
|
60
|
+
},
|
|
61
|
+
requestId: HttpResponseReader.toText(requestId),
|
|
62
|
+
extra: HttpResponseReader.isPlainObject(extra) ? { ...extra } : undefined,
|
|
63
|
+
details: HttpResponseReader.isPlainObject(details) ? { ...details } : undefined,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/** A failed response's envelope. A body that is not JSON yields `{}`, and the status alone still describes it. */
|
|
67
|
+
static async readError(opts) {
|
|
68
|
+
const text = await opts.response.text().catch(() => '');
|
|
69
|
+
let body;
|
|
70
|
+
try {
|
|
71
|
+
body = text ? JSON.parse(text) : undefined;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return {};
|
|
75
|
+
}
|
|
76
|
+
return HttpResponseReader.readErrorEnvelope({ body, rootKey: opts.rootKey });
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* A body the server marked with `x-response-extra` is `{ data, extra }`: its rows and what it
|
|
80
|
+
* answered beside them. Any other body is returned as it stands - an unmarked object is never
|
|
81
|
+
* unwrapped, so a row that has `data` and `extra` columns of its own is never misread.
|
|
82
|
+
*/
|
|
83
|
+
static readExtra(opts) {
|
|
84
|
+
const { body, headers } = opts;
|
|
85
|
+
const isMarked = headers.has(HTTP.Headers.RESPONSE_EXTRA);
|
|
86
|
+
if (!isMarked ||
|
|
87
|
+
!HttpResponseReader.isPlainObject(body) ||
|
|
88
|
+
!HttpResponseReader.isPlainObject(body.extra)) {
|
|
89
|
+
return { body };
|
|
90
|
+
}
|
|
91
|
+
return { body: body.data, extra: { ...body.extra } };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=response-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-reader.js","sourceRoot":"","sources":["../../../../../src/base/repositories/common/response-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,10 @@ export declare const buildDataRange: (opts: {
|
|
|
15
15
|
dataLength: number;
|
|
16
16
|
total: number;
|
|
17
17
|
}) => TDataRange;
|
|
18
|
-
/** The `shouldQueryRange: true` result envelope
|
|
18
|
+
/** The `shouldQueryRange: true` result envelope; `extra` carries what a list answered beside its rows - see `x-request-extra`. */
|
|
19
19
|
export type TDataWithRange<R> = {
|
|
20
20
|
data: Array<R>;
|
|
21
21
|
range: TDataRange;
|
|
22
|
+
extra?: Record<string, unknown>;
|
|
22
23
|
};
|
|
23
24
|
//# sourceMappingURL=results.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/results.ts"],"names":[],"mappings":"AAAA,uLAAuL;AACvL,MAAM,MAAM,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,yFAAyF;AACzF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,cAAc,GAAI,MAAM;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,KAAG,UAKH,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../../../../../src/base/repositories/common/types/results.ts"],"names":[],"mappings":"AAAA,uLAAuL;AACvL,MAAM,MAAM,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,yFAAyF;AACzF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,cAAc,GAAI,MAAM;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,KAAG,UAKH,CAAC;AAEF,kIAAkI;AAClI,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC"}
|
|
@@ -111,7 +111,7 @@ export class AbstractRepository extends BaseHelper {
|
|
|
111
111
|
// method has no business reporting, and the caller path that used to reach `getDefaultLimit()`
|
|
112
112
|
// never touched it either, because `??` short-circuits when a limit is given. So the ceiling is
|
|
113
113
|
// consulted only when the binding that makes it resolvable is actually present.
|
|
114
|
-
const hasModelBinding = Boolean(MetadataRegistry.getInstance().getRepositoryBinding({
|
|
114
|
+
const hasModelBinding = Boolean(MetadataRegistry.getInstance().getRepositoryBinding({ target: this.constructor })?.model);
|
|
115
115
|
const ceiling = (hasModelBinding ? this.maxLimit : undefined) ?? DEFAULT_MAX_LIMIT;
|
|
116
116
|
if (limit > ceiling) {
|
|
117
117
|
throw getError({
|
|
@@ -157,7 +157,7 @@ export class AbstractRepository extends BaseHelper {
|
|
|
157
157
|
/** Resolves the entity instance from @repository metadata on first access. */
|
|
158
158
|
resolveEntity() {
|
|
159
159
|
const registry = MetadataRegistry.getInstance();
|
|
160
|
-
const binding = registry.getRepositoryBinding({
|
|
160
|
+
const binding = registry.getRepositoryBinding({ target: this.constructor });
|
|
161
161
|
if (!binding?.model) {
|
|
162
162
|
throw getError({
|
|
163
163
|
message: `[${this.constructor.name}] Cannot resolve entity. Either pass entityClass in constructor or use @repository decorator with model option.`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/base/repositories/core/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,12 +10,16 @@ export declare const RepositoryMetadataMixin: <BaseClass extends TMixinTarget<_M
|
|
|
10
10
|
}): IModelMetadata | undefined;
|
|
11
11
|
}>>(baseClass: BaseClass) => {
|
|
12
12
|
new (...args: any[]): {
|
|
13
|
+
/** By repository class name, for the by-name API. Two classes may share a name; `repositoryBindingsByClass` cannot confuse them. */
|
|
13
14
|
repositoryBindings: Map<string, IRepositoryBinding<AbstractEntity>>;
|
|
15
|
+
/** By repository class: a minified build renames classes, and two chunks may give two of them one name. */
|
|
16
|
+
repositoryBindingsByClass: Map<Function, IRepositoryBinding<AbstractEntity>>;
|
|
14
17
|
/**
|
|
15
|
-
* The model classes
|
|
16
|
-
*
|
|
18
|
+
* The model classes each datasource owns, keyed by the datasource class - or by the string a
|
|
19
|
+
* repository named it with (`dataSource: 'PgDataSource'`), which only a class of that name
|
|
20
|
+
* can match. Never by class name alone: a minified build gives two datasources one name.
|
|
17
21
|
*/
|
|
18
|
-
datasourceModels: Map<string, Set<TClass<AnyType>>>;
|
|
22
|
+
datasourceModels: Map<string | Function, Set<TClass<AnyType>>>;
|
|
19
23
|
setRepositoryMetadata<Target extends object = object, Model extends AbstractEntity = AbstractEntity<unknown>, DataSource extends IDataSource = IDataSource<{}, import("../../../base/datasources/index.js").TAnyDataSourceSchema, {}>>(opts: {
|
|
20
24
|
target: Target;
|
|
21
25
|
metadata: TRepositoryMetadata<Model, DataSource> & {
|
|
@@ -29,9 +33,16 @@ export declare const RepositoryMetadataMixin: <BaseClass extends TMixinTarget<_M
|
|
|
29
33
|
}) | undefined;
|
|
30
34
|
/** Registers a repository binding (called by @repository) linking a repository to its model + datasource. */
|
|
31
35
|
registerRepositoryBinding<Model_1 extends AbstractEntity = AbstractEntity<unknown>, DataSource_1 extends IDataSource = IDataSource<{}, import("../../../base/datasources/index.js").TAnyDataSourceSchema, {}>>(opts: IRepositoryBinding<Model_1, DataSource_1>): void;
|
|
36
|
+
/** By class, walking up to the nearest decorated parent; by name only for callers holding a name. */
|
|
32
37
|
getRepositoryBinding(opts: {
|
|
38
|
+
target: Function;
|
|
39
|
+
} | {
|
|
33
40
|
name: string;
|
|
34
41
|
}): IRepositoryBinding<AbstractEntity> | undefined;
|
|
42
|
+
/** A class finds what was registered under it, and under a string equal to its name. */
|
|
43
|
+
getDataSourceModelClasses(opts: {
|
|
44
|
+
dataSource: string | TClass<IDataSource>;
|
|
45
|
+
}): Set<TClass<AnyType>>;
|
|
35
46
|
/**
|
|
36
47
|
* Resolves and caches relations for a model entry - called lazily from buildSchema() so that
|
|
37
48
|
* every `@model` class is registered first, which avoids circular-dependency ordering issues.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.mixin.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/mixins/repository.mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGnF,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,uBAAuB,GAClC,SAAS,SAAS,YAAY,CAC5B,iBAAiB,GAAG;IAClB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAChD,gBAAgB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,GAAG,SAAS,CAAC;CACxE,CACF,EAED,WAAW,SAAS;;
|
|
1
|
+
{"version":3,"file":"repository.mixin.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/mixins/repository.mixin.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,16 +19,37 @@ export const RepositoryMetadataMixin = (baseClass) => {
|
|
|
19
19
|
// datasource then silently discovers no schema.
|
|
20
20
|
const repositoryClass = resolveValue({ value: opts.repository });
|
|
21
21
|
this.repositoryBindings.set(repositoryClass.name, opts);
|
|
22
|
+
this.repositoryBindingsByClass.set(repositoryClass, opts);
|
|
22
23
|
const dataSourceRef = resolveValue({ value: opts.dataSource });
|
|
23
|
-
const dsKey = typeof dataSourceRef === 'string' ? dataSourceRef : dataSourceRef.name;
|
|
24
24
|
const modelClass = resolveValue({ value: opts.model });
|
|
25
|
-
if (!this.datasourceModels.has(
|
|
26
|
-
this.datasourceModels.set(
|
|
25
|
+
if (!this.datasourceModels.has(dataSourceRef)) {
|
|
26
|
+
this.datasourceModels.set(dataSourceRef, new Set());
|
|
27
27
|
}
|
|
28
|
-
this.datasourceModels.get(
|
|
28
|
+
this.datasourceModels.get(dataSourceRef).add(modelClass);
|
|
29
29
|
}
|
|
30
|
+
/** By class, walking up to the nearest decorated parent; by name only for callers holding a name. */
|
|
30
31
|
getRepositoryBinding(opts) {
|
|
31
|
-
|
|
32
|
+
if ('name' in opts) {
|
|
33
|
+
return this.repositoryBindings.get(opts.name);
|
|
34
|
+
}
|
|
35
|
+
for (let current = opts.target; current && current !== Function.prototype; current = Object.getPrototypeOf(current)) {
|
|
36
|
+
const binding = this.repositoryBindingsByClass.get(current);
|
|
37
|
+
if (binding) {
|
|
38
|
+
return binding;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
/** A class finds what was registered under it, and under a string equal to its name. */
|
|
44
|
+
getDataSourceModelClasses(opts) {
|
|
45
|
+
const { dataSource } = opts;
|
|
46
|
+
if (typeof dataSource === 'string') {
|
|
47
|
+
return this.datasourceModels.get(dataSource) ?? new Set();
|
|
48
|
+
}
|
|
49
|
+
return new Set([
|
|
50
|
+
...(this.datasourceModels.get(dataSource) ?? []),
|
|
51
|
+
...(this.datasourceModels.get(dataSource.name) ?? []),
|
|
52
|
+
]);
|
|
32
53
|
}
|
|
33
54
|
/**
|
|
34
55
|
* Resolves and caches relations for a model entry - called lazily from buildSchema() so that
|
|
@@ -64,9 +85,7 @@ export const RepositoryMetadataMixin = (baseClass) => {
|
|
|
64
85
|
* site.
|
|
65
86
|
*/
|
|
66
87
|
getModels(opts) {
|
|
67
|
-
const { dataSource }
|
|
68
|
-
const dsKey = typeof dataSource === 'string' ? dataSource : dataSource.name;
|
|
69
|
-
const modelClasses = this.datasourceModels.get(dsKey) ?? new Set();
|
|
88
|
+
const modelClasses = this.getDataSourceModelClasses({ dataSource: opts.dataSource });
|
|
70
89
|
const rs = Array.from(modelClasses)
|
|
71
90
|
.map(modelClass => {
|
|
72
91
|
// Read straight off the class: a class -> name -> modelRegistry round-trip collapses two
|
|
@@ -97,11 +116,9 @@ export const RepositoryMetadataMixin = (baseClass) => {
|
|
|
97
116
|
* has no pgTable to resolve.
|
|
98
117
|
*/
|
|
99
118
|
getModelClasses(opts) {
|
|
100
|
-
const { dataSource } = opts;
|
|
101
|
-
const dsKey = typeof dataSource === 'string' ? dataSource : dataSource.name;
|
|
102
119
|
// Straight from the stored class refs: a name round-trip through the shared modelRegistry
|
|
103
120
|
// would hand back whichever same-named class registered last.
|
|
104
|
-
return Array.from(this.
|
|
121
|
+
return Array.from(this.getDataSourceModelClasses({ dataSource: opts.dataSource }));
|
|
105
122
|
}
|
|
106
123
|
/** The key a model occupies in `modelRegistry` - its table name, or its class name when it has none. */
|
|
107
124
|
resolveModelKey(opts) {
|
|
@@ -126,9 +143,7 @@ export const RepositoryMetadataMixin = (baseClass) => {
|
|
|
126
143
|
return rs;
|
|
127
144
|
}
|
|
128
145
|
hasModels(opts) {
|
|
129
|
-
|
|
130
|
-
const modelNames = this.datasourceModels.get(dsKey);
|
|
131
|
-
return modelNames !== undefined && modelNames.size > 0;
|
|
146
|
+
return this.getDataSourceModelClasses({ dataSource: opts.dataSource }).size > 0;
|
|
132
147
|
}
|
|
133
148
|
};
|
|
134
149
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.mixin.js","sourceRoot":"","sources":["../../../../../src/helpers/inversion/mixins/repository.mixin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AASrE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAQrC,SAAoB,EACpB,EAAE;IACF,OAAO,KAAM,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"repository.mixin.js","sourceRoot":"","sources":["../../../../../src/helpers/inversion/mixins/repository.mixin.ts"],"names":[],"mappings":"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"}
|
|
@@ -303,7 +303,8 @@ declare const BaseRegistry: {
|
|
|
303
303
|
} & {
|
|
304
304
|
new (...args: any[]): {
|
|
305
305
|
repositoryBindings: Map<string, IRepositoryBinding<import("../../index.js").AbstractEntity>>;
|
|
306
|
-
|
|
306
|
+
repositoryBindingsByClass: Map<Function, IRepositoryBinding<import("../../index.js").AbstractEntity>>;
|
|
307
|
+
datasourceModels: Map<string | Function, Set<TClass<AnyType>>>;
|
|
307
308
|
setRepositoryMetadata<Target extends object = object, Model extends import("../../index.js").AbstractEntity = import("../../index.js").AbstractEntity<unknown>, DataSource extends import("../../index.js").IDataSource = import("../../index.js").IDataSource<{}, import("../../index.js").TAnyDataSourceSchema, {}>>(opts: {
|
|
308
309
|
target: Target;
|
|
309
310
|
metadata: import("./common/index.js").TRepositoryMetadata<Model, DataSource> & {
|
|
@@ -317,8 +318,13 @@ declare const BaseRegistry: {
|
|
|
317
318
|
}) | undefined;
|
|
318
319
|
registerRepositoryBinding<Model extends import("../../index.js").AbstractEntity = import("../../index.js").AbstractEntity<unknown>, DataSource extends import("../../index.js").IDataSource = import("../../index.js").IDataSource<{}, import("../../index.js").TAnyDataSourceSchema, {}>>(opts: IRepositoryBinding<Model, DataSource>): void;
|
|
319
320
|
getRepositoryBinding(opts: {
|
|
321
|
+
target: Function;
|
|
322
|
+
} | {
|
|
320
323
|
name: string;
|
|
321
324
|
}): IRepositoryBinding<import("../../index.js").AbstractEntity> | undefined;
|
|
325
|
+
getDataSourceModelClasses(opts: {
|
|
326
|
+
dataSource: string | TClass<import("../../index.js").IDataSource>;
|
|
327
|
+
}): Set<TClass<AnyType>>;
|
|
322
328
|
resolveModelRelations(modelMeta: IModelRegistryEntry): unknown;
|
|
323
329
|
getModels(opts: {
|
|
324
330
|
dataSource: string | TClass<import("../../index.js").IDataSource>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/helpers/inversion/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAW9E,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/helpers/inversion/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAW9E,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAsC0P,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAAD,CAAC;;;;;;;;4BA9B5Q,CAAC;AAEF,iHAAiH;AACjH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,MAAM,CAAC,QAAQ,CAAC,kBAAkB,uBAAuB;IAEzD,OAAO;IASP,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAOtC,QAAQ,IAAI,IAAI;CAOjB"}
|
|
@@ -10,6 +10,7 @@ export class MetadataRegistry extends BaseRegistry {
|
|
|
10
10
|
this.modelRegistry = new Map();
|
|
11
11
|
this.modelsBySchema = new WeakMap();
|
|
12
12
|
this.repositoryBindings = new Map();
|
|
13
|
+
this.repositoryBindingsByClass = new Map();
|
|
13
14
|
this.datasourceModels = new Map();
|
|
14
15
|
}
|
|
15
16
|
static getInstance() {
|
|
@@ -22,6 +23,7 @@ export class MetadataRegistry extends BaseRegistry {
|
|
|
22
23
|
this.modelRegistry.clear();
|
|
23
24
|
this.modelsBySchema = new WeakMap();
|
|
24
25
|
this.repositoryBindings.clear();
|
|
26
|
+
this.repositoryBindingsByClass.clear();
|
|
25
27
|
this.datasourceModels.clear();
|
|
26
28
|
}
|
|
27
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/helpers/inversion/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAElB,MAAM,YAAY,GAAG,qBAAqB,CACxC,2BAA2B,CACzB,2BAA2B,CACzB,uBAAuB,CACrB,uBAAuB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACxF,CACF,CACF,CACF,CAAC;AAEF,iHAAiH;AACjH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;aAChC,uBAAkB,GAAG,mBAAmB,CAAC;IAEzD;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,EAA+B,CAAC;QACjE,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAA8B,CAAC;QAChE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/helpers/inversion/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAElB,MAAM,YAAY,GAAG,qBAAqB,CACxC,2BAA2B,CACzB,2BAA2B,CACzB,uBAAuB,CACrB,uBAAuB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACxF,CACF,CACF,CACF,CAAC;AAEF,iHAAiH;AACjH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;aAChC,uBAAkB,GAAG,mBAAmB,CAAC;IAEzD;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,EAA+B,CAAC;QACjE,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAA8B,CAAC;QAChE,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAgC,CAAC;QACzE,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAA2C,CAAC;IAC7E,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO,cAAc,CAAC,OAAO,CAAC;YAC5B,GAAG,EAAE,gBAAgB,CAAC,kBAAkB;YACxC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,EAAE;SACrC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,EAA+B,CAAC;QACjE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,CAAC;QACvC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC"}
|
package/dist/esm/metadata.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
export { component, configuration, injectable, pickRegistrationOptions, provide, service, } from './base/metadata/injectable.js';
|
|
10
10
|
export { datasource, model, repository } from './base/metadata/persistents.js';
|
|
11
11
|
export { inject } from './base/metadata/injectors.js';
|
|
12
|
+
export { ArtifactBindingKeys } from './base/metadata/artifact-keys.js';
|
|
12
13
|
export { ArtifactNamespaces, BindingNamespaces } from './common/bindings.js';
|
|
13
14
|
export type { TBindingNamespace } from './common/bindings.js';
|
|
14
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,uBAAuB,EACvB,OAAO,EACP,OAAO,GACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,uBAAuB,EACvB,OAAO,EACP,OAAO,GACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnF,YAAY,EACV,iBAAiB,EACjB,4BAA4B,EAC5B,aAAa,GACd,MAAM,qBAAqB,CAAC"}
|
package/dist/esm/metadata.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
export { component, configuration, injectable, pickRegistrationOptions, provide, service, } from './base/metadata/injectable.js';
|
|
10
10
|
export { datasource, model, repository } from './base/metadata/persistents.js';
|
|
11
11
|
export { inject } from './base/metadata/injectors.js';
|
|
12
|
+
export { ArtifactBindingKeys } from './base/metadata/artifact-keys.js';
|
|
12
13
|
export { ArtifactNamespaces, BindingNamespaces } from './common/bindings.js';
|
|
13
14
|
/**
|
|
14
15
|
* `CoreBindings` is deliberately NOT here. The namespaces above are the GRAMMAR of a binding key;
|
package/dist/esm/metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,uBAAuB,EACvB,OAAO,EACP,OAAO,GACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,uBAAuB,EACvB,OAAO,EACP,OAAO,GACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG1E;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/esm/repository.d.ts
CHANGED
|
@@ -16,6 +16,9 @@ export { AbstractRepository } from './base/repositories/core/abstract.js';
|
|
|
16
16
|
export { AbstractDataSource } from './base/datasources/abstract.js';
|
|
17
17
|
export type { ICreatableRepository, ICrudRepository, IDeletableRepository, IPersistableRepository, IReadableRepository, IRepository, IUpdatableRepository, } from './base/repositories/common/types/contracts.js';
|
|
18
18
|
export { buildDataRange } from './base/repositories/common/types/results.js';
|
|
19
|
+
export { HttpResponseReader } from './base/repositories/common/response-reader.js';
|
|
20
|
+
export { HttpExtraRequest } from './base/repositories/common/extra-request.js';
|
|
21
|
+
export type { TExtraRequest, TExtraResult } from './base/repositories/common/extra-request.js';
|
|
19
22
|
export { DEFAULT_LIMIT, DEFAULT_MAX_LIMIT, RepositoryOperationScopes, RepositoryTypes, } from './base/repositories/common/constants.js';
|
|
20
23
|
export type { TRepositoryType } from './base/repositories/common/constants.js';
|
|
21
24
|
export { CoreErrorCodes, SearchErrorCodes } from './common/error-codes.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,oBAAoB,GACrB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAI1E,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAEnG,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAInE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGvE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,oBAAoB,GACrB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAI1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAI5F,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAEnG,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAInE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGvE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/esm/repository.js
CHANGED
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
export { AbstractRepository } from './base/repositories/core/abstract.js';
|
|
16
16
|
export { AbstractDataSource } from './base/datasources/abstract.js';
|
|
17
17
|
export { buildDataRange } from './base/repositories/common/types/results.js';
|
|
18
|
+
// How a client reads what an IGNIS server answers - shared by the http connector and any client
|
|
19
|
+
// that reads the same server without it.
|
|
20
|
+
export { HttpResponseReader } from './base/repositories/common/response-reader.js';
|
|
21
|
+
export { HttpExtraRequest } from './base/repositories/common/extra-request.js';
|
|
18
22
|
// What a repository on any transport raises and bounds itself by - the constants, the error codes,
|
|
19
23
|
// and the helper an engine that lacks an operation throws through.
|
|
20
24
|
export { DEFAULT_LIMIT, DEFAULT_MAX_LIMIT, RepositoryOperationScopes, RepositoryTypes, } from './base/repositories/common/constants.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAYjE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,mGAAmG;AACnG,mEAAmE;AACnE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAK9D,mGAAmG;AACnG,qFAAqF;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAYjE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,gGAAgG;AAChG,yCAAyC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAG5E,mGAAmG;AACnG,mEAAmE;AACnE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAK9D,mGAAmG;AACnG,qFAAqF;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-kernel",
|
|
3
|
-
"version": "0.2.1-
|
|
3
|
+
"version": "0.2.1-4",
|
|
4
4
|
"description": "Browser-pure kernel of the IGNIS framework: dependency injection, lifecycle, REST controllers, repository and datasource abstractions, and the authentication and authorization seams. No node builtin and no server-only peer, so the same kernel serves a Bun server and a browser Worker.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"authentication",
|
|
@@ -91,9 +91,9 @@
|
|
|
91
91
|
"prepublishOnly": "bun run rebuild"
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {
|
|
94
|
-
"@venizia/ignis-filter": "^0.2.1-
|
|
95
|
-
"@venizia/ignis-helpers": "^0.2.1-
|
|
96
|
-
"@venizia/ignis-inversion": "^0.2.0",
|
|
94
|
+
"@venizia/ignis-filter": "^0.2.1-1",
|
|
95
|
+
"@venizia/ignis-helpers": "^0.2.1-2",
|
|
96
|
+
"@venizia/ignis-inversion": "^0.2.1-0",
|
|
97
97
|
"reflect-metadata": "^0.2.2",
|
|
98
98
|
"zod": "^4.5.4"
|
|
99
99
|
},
|
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
},
|
|
124
124
|
"devDependencies": {
|
|
125
125
|
"@types/bun": "^1.4.1",
|
|
126
|
-
"@venizia/dev-configs": "^0.2.0",
|
|
126
|
+
"@venizia/dev-configs": "^0.2.1-0",
|
|
127
127
|
"casbin": "^5.51.1",
|
|
128
128
|
"eslint": "^10.10.0",
|
|
129
129
|
"prettier": "^3.9.6",
|