@carlonicora/nestjs-neo4jsonapi 8.15.0 → 8.16.0
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/bootstrap/app.module.factory.d.ts.map +1 -1
- package/dist/bootstrap/app.module.factory.js +9 -0
- package/dist/bootstrap/app.module.factory.js.map +1 -1
- package/dist/bootstrap/bootstrap.options.d.ts +10 -0
- package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
- package/dist/common/helpers/define-entity.d.ts.map +1 -1
- package/dist/common/helpers/define-entity.js +3 -0
- package/dist/common/helpers/define-entity.js.map +1 -1
- package/dist/common/registries/entity-descriptor.registry.d.ts +22 -0
- package/dist/common/registries/entity-descriptor.registry.d.ts.map +1 -0
- package/dist/common/registries/entity-descriptor.registry.js +51 -0
- package/dist/common/registries/entity-descriptor.registry.js.map +1 -0
- package/dist/common/registries/index.d.ts +1 -0
- package/dist/common/registries/index.d.ts.map +1 -1
- package/dist/common/registries/index.js +1 -0
- package/dist/common/registries/index.js.map +1 -1
- package/dist/core/cors/services/cors.service.d.ts +4 -1
- package/dist/core/cors/services/cors.service.d.ts.map +1 -1
- package/dist/core/cors/services/cors.service.js +19 -3
- package/dist/core/cors/services/cors.service.js.map +1 -1
- package/dist/core/neo4j/abstracts/abstract.repository.d.ts +2 -0
- package/dist/core/neo4j/abstracts/abstract.repository.d.ts.map +1 -1
- package/dist/core/neo4j/abstracts/abstract.repository.js +4 -1
- package/dist/core/neo4j/abstracts/abstract.repository.js.map +1 -1
- package/dist/core/neo4j/abstracts/abstract.service.d.ts +6 -0
- package/dist/core/neo4j/abstracts/abstract.service.d.ts.map +1 -1
- package/dist/core/neo4j/abstracts/abstract.service.js +16 -0
- package/dist/core/neo4j/abstracts/abstract.service.js.map +1 -1
- package/dist/core/neo4j/helpers/build-filter-clauses.d.ts.map +1 -1
- package/dist/core/neo4j/helpers/build-filter-clauses.js +8 -1
- package/dist/core/neo4j/helpers/build-filter-clauses.js.map +1 -1
- package/dist/core/offline/index.d.ts +5 -0
- package/dist/core/offline/index.d.ts.map +1 -0
- package/dist/core/offline/index.js +21 -0
- package/dist/core/offline/index.js.map +1 -0
- package/dist/core/offline/offline-request.context.d.ts +12 -0
- package/dist/core/offline/offline-request.context.d.ts.map +1 -0
- package/dist/core/offline/offline-request.context.js +34 -0
- package/dist/core/offline/offline-request.context.js.map +1 -0
- package/dist/core/offline/offline-request.interceptor.d.ts +15 -0
- package/dist/core/offline/offline-request.interceptor.d.ts.map +1 -0
- package/dist/core/offline/offline-request.interceptor.js +43 -0
- package/dist/core/offline/offline-request.interceptor.js.map +1 -0
- package/dist/core/offline/offline.constants.d.ts +12 -0
- package/dist/core/offline/offline.constants.d.ts.map +1 -0
- package/dist/core/offline/offline.constants.js +12 -0
- package/dist/core/offline/offline.constants.js.map +1 -0
- package/dist/core/offline/offline.module.d.ts +12 -0
- package/dist/core/offline/offline.module.d.ts.map +1 -0
- package/dist/core/offline/offline.module.js +42 -0
- package/dist/core/offline/offline.module.js.map +1 -0
- package/dist/foundations/chunker/services/types/pdf.service.d.ts.map +1 -1
- package/dist/foundations/chunker/services/types/pdf.service.js +9 -5
- package/dist/foundations/chunker/services/types/pdf.service.js.map +1 -1
- package/dist/foundations/offline-change-set/decorators/offline-replayable.decorator.d.ts +7 -0
- package/dist/foundations/offline-change-set/decorators/offline-replayable.decorator.d.ts.map +1 -0
- package/dist/foundations/offline-change-set/decorators/offline-replayable.decorator.js +12 -0
- package/dist/foundations/offline-change-set/decorators/offline-replayable.decorator.js.map +1 -0
- package/dist/foundations/offline-change-set/dtos/offline-change-set.post.dto.d.ts +33 -0
- package/dist/foundations/offline-change-set/dtos/offline-change-set.post.dto.d.ts.map +1 -0
- package/dist/foundations/offline-change-set/dtos/offline-change-set.post.dto.js +133 -0
- package/dist/foundations/offline-change-set/dtos/offline-change-set.post.dto.js.map +1 -0
- package/dist/foundations/offline-change-set/entities/offline-change-set.d.ts +66 -0
- package/dist/foundations/offline-change-set/entities/offline-change-set.d.ts.map +1 -0
- package/dist/foundations/offline-change-set/entities/offline-change-set.js +31 -0
- package/dist/foundations/offline-change-set/entities/offline-change-set.js.map +1 -0
- package/dist/foundations/offline-change-set/entities/offline-change-set.meta.d.ts +3 -0
- package/dist/foundations/offline-change-set/entities/offline-change-set.meta.d.ts.map +1 -0
- package/dist/foundations/offline-change-set/entities/offline-change-set.meta.js +10 -0
- package/dist/foundations/offline-change-set/entities/offline-change-set.meta.js.map +1 -0
- package/dist/foundations/offline-change-set/index.d.ts +11 -0
- package/dist/foundations/offline-change-set/index.d.ts.map +1 -0
- package/dist/foundations/offline-change-set/index.js +27 -0
- package/dist/foundations/offline-change-set/index.js.map +1 -0
- package/dist/foundations/offline-change-set/merge/deep-equal.d.ts +6 -0
- package/dist/foundations/offline-change-set/merge/deep-equal.d.ts.map +1 -0
- package/dist/foundations/offline-change-set/merge/deep-equal.js +31 -0
- package/dist/foundations/offline-change-set/merge/deep-equal.js.map +1 -0
- package/dist/foundations/offline-change-set/merge/merge-blocks.d.ts +37 -0
- package/dist/foundations/offline-change-set/merge/merge-blocks.d.ts.map +1 -0
- package/dist/foundations/offline-change-set/merge/merge-blocks.js +108 -0
- package/dist/foundations/offline-change-set/merge/merge-blocks.js.map +1 -0
- package/dist/foundations/offline-change-set/merge/three-way-merge.d.ts +57 -0
- package/dist/foundations/offline-change-set/merge/three-way-merge.d.ts.map +1 -0
- package/dist/foundations/offline-change-set/merge/three-way-merge.js +201 -0
- package/dist/foundations/offline-change-set/merge/three-way-merge.js.map +1 -0
- package/dist/foundations/offline-change-set/offline-change-set.module.d.ts +11 -0
- package/dist/foundations/offline-change-set/offline-change-set.module.d.ts.map +1 -0
- package/dist/foundations/offline-change-set/offline-change-set.module.js +41 -0
- package/dist/foundations/offline-change-set/offline-change-set.module.js.map +1 -0
- package/dist/foundations/offline-change-set/repositories/offline-change-set.repository.d.ts +26 -0
- package/dist/foundations/offline-change-set/repositories/offline-change-set.repository.d.ts.map +1 -0
- package/dist/foundations/offline-change-set/repositories/offline-change-set.repository.js +56 -0
- package/dist/foundations/offline-change-set/repositories/offline-change-set.repository.js.map +1 -0
- package/dist/foundations/offline-change-set/services/offline-change-set.service.d.ts +72 -0
- package/dist/foundations/offline-change-set/services/offline-change-set.service.d.ts.map +1 -0
- package/dist/foundations/offline-change-set/services/offline-change-set.service.js +333 -0
- package/dist/foundations/offline-change-set/services/offline-change-set.service.js.map +1 -0
- package/dist/foundations/offline-change-set/services/offline-route-runner.service.d.ts +61 -0
- package/dist/foundations/offline-change-set/services/offline-route-runner.service.d.ts.map +1 -0
- package/dist/foundations/offline-change-set/services/offline-route-runner.service.js +192 -0
- package/dist/foundations/offline-change-set/services/offline-route-runner.service.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offline-route-runner.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/offline-change-set/services/offline-route-runner.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM9C;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C;AAED,6EAA6E;AAC7E,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,OAAO,CAO9F;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7E,+FAA+F;AAC/F,MAAM,MAAM,kBAAkB,GAAG;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAW3G;;;;;;;;;;;GAWG;AACH,qBACa,kBAAkB;IAI3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAN5B,OAAO,CAAC,MAAM,CAA2B;gBAGtB,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,gBAAgB,EAC3B,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS;IAGjC,GAAG,CAAC,MAAM,EAAE;QAChB,MAAM,EAAE,kBAAkB,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,cAAc,CAAC;KACzB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+B/B;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,KAAK;IASb;;;OAGG;IACH,OAAO,CAAC,KAAK;IA0Bb,OAAO,CAAC,WAAW;CA4BpB"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.OfflineRouteRunner = void 0;
|
|
13
|
+
exports.offlineInternalToken = offlineInternalToken;
|
|
14
|
+
exports.isOfflineInternalRequest = isOfflineInternalRequest;
|
|
15
|
+
const common_1 = require("@nestjs/common");
|
|
16
|
+
const constants_1 = require("@nestjs/common/constants");
|
|
17
|
+
const core_1 = require("@nestjs/core");
|
|
18
|
+
const crypto_1 = require("crypto");
|
|
19
|
+
const offline_constants_1 = require("../../../core/offline/offline.constants");
|
|
20
|
+
const offline_replayable_decorator_1 = require("../decorators/offline-replayable.decorator");
|
|
21
|
+
let processToken;
|
|
22
|
+
/**
|
|
23
|
+
* The per-process token every step of an offline change set carries in `x-offline-internal`.
|
|
24
|
+
* Random, generated on first use, never leaves the process: only requests this runner injects
|
|
25
|
+
* carry it, so the throttler can tell them from client requests (one package = one request).
|
|
26
|
+
*/
|
|
27
|
+
function offlineInternalToken() {
|
|
28
|
+
if (!processToken)
|
|
29
|
+
processToken = (0, crypto_1.randomBytes)(32).toString("hex");
|
|
30
|
+
return processToken;
|
|
31
|
+
}
|
|
32
|
+
/** True when the headers carry this process's `x-offline-internal` token. */
|
|
33
|
+
function isOfflineInternalRequest(headers) {
|
|
34
|
+
const raw = headers?.[offline_constants_1.OFFLINE_INTERNAL_HEADER];
|
|
35
|
+
const value = Array.isArray(raw) ? raw[0] : raw;
|
|
36
|
+
if (typeof value !== "string" || value.length === 0)
|
|
37
|
+
return false;
|
|
38
|
+
const expected = Buffer.from(offlineInternalToken());
|
|
39
|
+
const given = Buffer.from(value);
|
|
40
|
+
return given.length === expected.length && (0, crypto_1.timingSafeEqual)(given, expected);
|
|
41
|
+
}
|
|
42
|
+
/** Headers of the caller's request carried into every injected step. */
|
|
43
|
+
const FORWARDED_HEADERS = ["authorization", "x-language", "x-companyid"];
|
|
44
|
+
const splitPath = (path) => path.split("/").filter((s) => s.length > 0);
|
|
45
|
+
const firstPath = (value) => (Array.isArray(value) ? String(value[0] ?? "") : String(value ?? ""));
|
|
46
|
+
/**
|
|
47
|
+
* Runs one step of an offline change set through the app's own route with Fastify `inject`,
|
|
48
|
+
* as the caller: the caller's `Authorization`, `x-language` and `x-companyid` headers, plus
|
|
49
|
+
* `x-offline-replay: 1` and the process token. Every read and write therefore goes through
|
|
50
|
+
* the app's controller → service → repository, with its guards, validation and checks.
|
|
51
|
+
*
|
|
52
|
+
* A write (POST/PUT/PATCH/DELETE) runs only when the route that would answer it carries
|
|
53
|
+
* `@OfflineReplayable()`; any other write is refused without running. A GET (reading the
|
|
54
|
+
* current record before a merge) needs no marker: it changes nothing.
|
|
55
|
+
*
|
|
56
|
+
* Infrastructure provider: it owns no entity and touches no Neo4j itself.
|
|
57
|
+
*/
|
|
58
|
+
let OfflineRouteRunner = class OfflineRouteRunner {
|
|
59
|
+
constructor(adapterHost, discovery, metadataScanner, reflector) {
|
|
60
|
+
this.adapterHost = adapterHost;
|
|
61
|
+
this.discovery = discovery;
|
|
62
|
+
this.metadataScanner = metadataScanner;
|
|
63
|
+
this.reflector = reflector;
|
|
64
|
+
}
|
|
65
|
+
async run(params) {
|
|
66
|
+
const url = this.normalise(params.path);
|
|
67
|
+
if (url === undefined)
|
|
68
|
+
return { ran: false, detail: `${params.method} ${params.path} is not a path an offline change set can run` };
|
|
69
|
+
if (params.method !== "GET") {
|
|
70
|
+
const route = this.match(params.method, url.split("?")[0]);
|
|
71
|
+
if (!route?.replayable)
|
|
72
|
+
return { ran: false, detail: `${params.method} ${url} cannot be run from an offline change set` };
|
|
73
|
+
}
|
|
74
|
+
const headers = {};
|
|
75
|
+
const source = (params.request?.headers ?? {});
|
|
76
|
+
for (const name of FORWARDED_HEADERS) {
|
|
77
|
+
const value = source[name];
|
|
78
|
+
if (typeof value === "string" && value.length > 0)
|
|
79
|
+
headers[name] = value;
|
|
80
|
+
}
|
|
81
|
+
headers[offline_constants_1.OFFLINE_REPLAY_HEADER] = "1";
|
|
82
|
+
headers[offline_constants_1.OFFLINE_INTERNAL_HEADER] = offlineInternalToken();
|
|
83
|
+
if (params.body !== undefined)
|
|
84
|
+
headers["content-type"] = "application/json";
|
|
85
|
+
const response = await this.adapterHost.httpAdapter.getInstance().inject({
|
|
86
|
+
method: params.method,
|
|
87
|
+
url,
|
|
88
|
+
headers,
|
|
89
|
+
...(params.body !== undefined ? { payload: params.body } : {}),
|
|
90
|
+
});
|
|
91
|
+
return { ran: true, status: response.statusCode, body: this.parse(response.body) };
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* `npcs/n1`, `/npcs/n1` or an absolute URL → `/npcs/n1` (query string kept), with dot segments
|
|
95
|
+
* resolved the way the router resolves them, so the route checked is the route that runs.
|
|
96
|
+
* `undefined` (refused) for a path that climbs above the root, or that carries an encoded dot
|
|
97
|
+
* or separator (`%2e`, `%2f`, `%5c`), which a later decode could turn into another path.
|
|
98
|
+
*/
|
|
99
|
+
normalise(path) {
|
|
100
|
+
const absolute = /^https?:\/\//i.test(path);
|
|
101
|
+
// The path as sent (an absolute URL's pathname is already resolved by URL, so read it raw).
|
|
102
|
+
const raw = (absolute ? path.replace(/^https?:\/\/[^/?#]*/i, "") : path).split(/[?#]/)[0];
|
|
103
|
+
if (/%2e|%2f|%5c/i.test(raw))
|
|
104
|
+
return undefined;
|
|
105
|
+
let depth = 0;
|
|
106
|
+
for (const segment of raw.split(/[\/\\]/)) {
|
|
107
|
+
if (segment === "" || segment === ".")
|
|
108
|
+
continue;
|
|
109
|
+
depth += segment === ".." ? -1 : 1;
|
|
110
|
+
if (depth < 0)
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
const parsed = absolute ? new URL(path) : new URL(`/${path.replace(/^[\/\\]+/, "")}`, "http://internal");
|
|
114
|
+
const pathname = parsed.pathname.replace(/\/{2,}/g, "/");
|
|
115
|
+
return `${pathname}${parsed.search}`;
|
|
116
|
+
}
|
|
117
|
+
parse(body) {
|
|
118
|
+
if (body === undefined || body === "")
|
|
119
|
+
return undefined;
|
|
120
|
+
try {
|
|
121
|
+
return JSON.parse(body);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return body;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The route that answers `method path`, with the router's precedence: a static segment
|
|
129
|
+
* beats a parameter, a parameter beats a wildcard, compared from the first segment.
|
|
130
|
+
*/
|
|
131
|
+
match(method, path) {
|
|
132
|
+
const segments = splitPath(path);
|
|
133
|
+
const rank = (segment) => (segment === "*" ? 0 : segment.startsWith(":") ? 1 : 2);
|
|
134
|
+
const candidates = this.knownRoutes().filter((route) => {
|
|
135
|
+
if (route.method !== method && route.method !== "ALL")
|
|
136
|
+
return false;
|
|
137
|
+
const wildcard = route.segments[route.segments.length - 1] === "*";
|
|
138
|
+
if (!wildcard && route.segments.length !== segments.length)
|
|
139
|
+
return false;
|
|
140
|
+
if (wildcard && segments.length < route.segments.length - 1)
|
|
141
|
+
return false;
|
|
142
|
+
return route.segments.every((segment, index) => segment === "*" || segment.startsWith(":") || segment === segments[index]);
|
|
143
|
+
});
|
|
144
|
+
candidates.sort((a, b) => {
|
|
145
|
+
const length = Math.max(a.segments.length, b.segments.length);
|
|
146
|
+
for (let index = 0; index < length; index++) {
|
|
147
|
+
const diff = rank(b.segments[index] ?? "*") - rank(a.segments[index] ?? "*");
|
|
148
|
+
if (diff !== 0)
|
|
149
|
+
return diff;
|
|
150
|
+
}
|
|
151
|
+
return 0;
|
|
152
|
+
});
|
|
153
|
+
return candidates[0];
|
|
154
|
+
}
|
|
155
|
+
knownRoutes() {
|
|
156
|
+
if (this.routes)
|
|
157
|
+
return this.routes;
|
|
158
|
+
const routes = [];
|
|
159
|
+
for (const wrapper of this.discovery.getControllers()) {
|
|
160
|
+
const controller = wrapper.metatype;
|
|
161
|
+
if (typeof controller !== "function" || !controller.prototype)
|
|
162
|
+
continue;
|
|
163
|
+
const prototype = controller.prototype;
|
|
164
|
+
const controllerPath = firstPath(this.reflector.get(constants_1.PATH_METADATA, controller));
|
|
165
|
+
for (const methodName of this.metadataScanner.getAllMethodNames(prototype)) {
|
|
166
|
+
const handler = prototype[methodName];
|
|
167
|
+
if (typeof handler !== "function")
|
|
168
|
+
continue;
|
|
169
|
+
const requestMethod = this.reflector.get(constants_1.METHOD_METADATA, handler);
|
|
170
|
+
const routePath = this.reflector.get(constants_1.PATH_METADATA, handler);
|
|
171
|
+
if (requestMethod === undefined || routePath === undefined)
|
|
172
|
+
continue;
|
|
173
|
+
routes.push({
|
|
174
|
+
method: common_1.RequestMethod[requestMethod] ?? String(requestMethod),
|
|
175
|
+
segments: [...splitPath(controllerPath), ...splitPath(firstPath(routePath))],
|
|
176
|
+
replayable: this.reflector.get(offline_replayable_decorator_1.OFFLINE_REPLAYABLE_METADATA, handler) === true,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
this.routes = routes;
|
|
181
|
+
return routes;
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
exports.OfflineRouteRunner = OfflineRouteRunner;
|
|
185
|
+
exports.OfflineRouteRunner = OfflineRouteRunner = __decorate([
|
|
186
|
+
(0, common_1.Injectable)(),
|
|
187
|
+
__metadata("design:paramtypes", [core_1.HttpAdapterHost,
|
|
188
|
+
core_1.DiscoveryService,
|
|
189
|
+
core_1.MetadataScanner,
|
|
190
|
+
core_1.Reflector])
|
|
191
|
+
], OfflineRouteRunner);
|
|
192
|
+
//# sourceMappingURL=offline-route-runner.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offline-route-runner.service.js","sourceRoot":"","sources":["../../../../src/foundations/offline-change-set/services/offline-route-runner.service.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,4 +16,6 @@ export * from "./openapi";
|
|
|
16
16
|
export { RedisLockService } from "./core/redis/services/redis.lock.service";
|
|
17
17
|
export { TRUSTED_ORIGINS_RESOLVER } from "./core/cors/interfaces/trusted-origins.resolver.interface";
|
|
18
18
|
export type { TrustedOriginsResolver } from "./core/cors/interfaces/trusted-origins.resolver.interface";
|
|
19
|
+
export * from "./core/offline";
|
|
20
|
+
export * from "./foundations/offline-change-set";
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,eAAe,CAAC;AAG9B,cAAc,UAAU,CAAC;AAGzB,cAAc,OAAO,CAAC;AAGtB,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAG5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,YAAY,EAAE,sBAAsB,EAAE,MAAM,2DAA2D,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,eAAe,CAAC;AAG9B,cAAc,UAAU,CAAC;AAGzB,cAAc,OAAO,CAAC;AAGtB,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAG5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,YAAY,EAAE,sBAAsB,EAAE,MAAM,2DAA2D,CAAC;AAGxG,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -44,4 +44,7 @@ Object.defineProperty(exports, "RedisLockService", { enumerable: true, get: func
|
|
|
44
44
|
// Trusted-origins hook (CORS + S3 frame-ancestors); the app binds TRUSTED_ORIGINS_RESOLVER.
|
|
45
45
|
var trusted_origins_resolver_interface_1 = require("./core/cors/interfaces/trusted-origins.resolver.interface");
|
|
46
46
|
Object.defineProperty(exports, "TRUSTED_ORIGINS_RESOLVER", { enumerable: true, get: function () { return trusted_origins_resolver_interface_1.TRUSTED_ORIGINS_RESOLVER; } });
|
|
47
|
+
// Offline support (opt-in through bootstrap({ offline })).
|
|
48
|
+
__exportStar(require("./core/offline"), exports);
|
|
49
|
+
__exportStar(require("./foundations/offline-change-set"), exports);
|
|
47
50
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,iBAAiB;AACjB,2CAAyB;AAEzB,iBAAiB;AACjB,2CAAyB;AAEzB,sBAAsB;AACtB,yCAAuB;AACvB,6CAA2B;AAC3B,kDAAgC;AAEhC,4BAA4B;AAC5B,gDAA8B;AAE9B,uBAAuB;AACvB,2CAAyB;AAEzB,8CAA8C;AAC9C,wCAAsB;AAEtB,sBAAsB;AACtB,8CAA4B;AAE5B,yBAAyB;AACzB,4CAA0B;AAE1B,yFAAyF;AACzF,+EAA4E;AAAnE,sHAAA,gBAAgB,OAAA;AAEzB,4FAA4F;AAC5F,gHAAqG;AAA5F,8IAAA,wBAAwB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,iBAAiB;AACjB,2CAAyB;AAEzB,iBAAiB;AACjB,2CAAyB;AAEzB,sBAAsB;AACtB,yCAAuB;AACvB,6CAA2B;AAC3B,kDAAgC;AAEhC,4BAA4B;AAC5B,gDAA8B;AAE9B,uBAAuB;AACvB,2CAAyB;AAEzB,8CAA8C;AAC9C,wCAAsB;AAEtB,sBAAsB;AACtB,8CAA4B;AAE5B,yBAAyB;AACzB,4CAA0B;AAE1B,yFAAyF;AACzF,+EAA4E;AAAnE,sHAAA,gBAAgB,OAAA;AAEzB,4FAA4F;AAC5F,gHAAqG;AAA5F,8IAAA,wBAAwB,OAAA;AAGjC,2DAA2D;AAC3D,iDAA+B;AAC/B,mEAAiD"}
|
package/package.json
CHANGED