@ember-nexus/app-core 0.0.9 → 0.0.11
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/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/esm/Component/Page/PageError404.js +14 -0
- package/dist/esm/Component/Page/PageError404.js.map +1 -0
- package/dist/esm/Component/Page/index.js +2 -0
- package/dist/esm/Component/Page/index.js.map +1 -0
- package/dist/esm/Component/Router.js +106 -0
- package/dist/esm/Component/Router.js.map +1 -0
- package/dist/esm/Component/index.js +3 -0
- package/dist/esm/Component/index.js.map +1 -0
- package/dist/esm/Service/RouteResolver.js +88 -0
- package/dist/esm/Service/RouteResolver.js.map +1 -0
- package/dist/esm/Service/index.js +1 -0
- package/dist/esm/Service/index.js.map +1 -1
- package/dist/esm/Type/Definition/PluginIdentifier.js +10 -0
- package/dist/esm/Type/Definition/PluginIdentifier.js.map +1 -0
- package/dist/esm/Type/Definition/PluginInit.js +2 -0
- package/dist/esm/Type/Definition/PluginInit.js.map +1 -0
- package/dist/esm/Type/Definition/RouteConfiguration.js +2 -0
- package/dist/esm/Type/Definition/RouteConfiguration.js.map +1 -0
- package/dist/esm/Type/Definition/RouteGuardFunction.js +2 -0
- package/dist/esm/Type/Definition/RouteGuardFunction.js.map +1 -0
- package/dist/esm/Type/Definition/RouteIdentifier.js +10 -0
- package/dist/esm/Type/Definition/RouteIdentifier.js.map +1 -0
- package/dist/esm/Type/Definition/RouteNode.js +26 -0
- package/dist/esm/Type/Definition/RouteNode.js.map +1 -0
- package/dist/esm/Type/Definition/RouteToWebComponentFunction.js +2 -0
- package/dist/esm/Type/Definition/RouteToWebComponentFunction.js.map +1 -0
- package/dist/esm/Type/Definition/index.js +7 -0
- package/dist/esm/Type/Definition/index.js.map +1 -1
- package/dist/esm/Type/Enum/ServiceIdentifier.js +1 -0
- package/dist/esm/Type/Enum/ServiceIdentifier.js.map +1 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{Init.js → init.js} +7 -11
- package/dist/esm/init.js.map +1 -0
- package/dist/esm/initEventListeners.js +9 -0
- package/dist/esm/initEventListeners.js.map +1 -0
- package/dist/esm/optimizeDynamicConfigurations.js +5 -0
- package/dist/esm/optimizeDynamicConfigurations.js.map +1 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/Component/Page/PageError404.d.ts +5 -0
- package/dist/types/Component/Page/index.d.ts +1 -0
- package/dist/types/Component/Router.d.ts +15 -0
- package/dist/types/Component/index.d.ts +2 -0
- package/dist/types/Service/RouteResolver.d.ts +20 -0
- package/dist/types/Service/index.d.ts +1 -0
- package/dist/types/Type/Definition/PluginIdentifier.d.ts +8 -0
- package/dist/types/Type/Definition/PluginInit.d.ts +10 -0
- package/dist/types/Type/Definition/RouteConfiguration.d.ts +13 -0
- package/dist/types/Type/Definition/RouteGuardFunction.d.ts +2 -0
- package/dist/types/Type/Definition/RouteIdentifier.d.ts +8 -0
- package/dist/types/Type/Definition/RouteNode.d.ts +10 -0
- package/dist/types/Type/Definition/RouteToWebComponentFunction.d.ts +2 -0
- package/dist/types/Type/Definition/index.d.ts +7 -0
- package/dist/types/Type/Enum/ServiceIdentifier.d.ts +1 -0
- package/dist/types/index.d.ts +4 -1
- package/dist/types/init.d.ts +3 -0
- package/dist/types/initEventListeners.d.ts +3 -0
- package/dist/types/optimizeDynamicConfigurations.d.ts +3 -0
- package/package.json +2 -1
- package/dist/esm/Init.js.map +0 -1
- package/dist/types/Init.d.ts +0 -3
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { LitElement } from 'lit';
|
|
3
|
+
import { customElement } from 'lit/decorators.js';
|
|
4
|
+
import { html } from 'lit/static-html.js';
|
|
5
|
+
let PageError404 = class PageError404 extends LitElement {
|
|
6
|
+
render() {
|
|
7
|
+
return html `<div>Error 404: Route could not be resolved.</div>`;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
PageError404 = __decorate([
|
|
11
|
+
customElement('ember-nexus-app-core-page-error-404')
|
|
12
|
+
], PageError404);
|
|
13
|
+
export { PageError404 };
|
|
14
|
+
//# sourceMappingURL=PageError404.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageError404.js","sourceRoot":"","sources":["../../../../src/Component/Page/PageError404.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAG1C,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IACnC,MAAM;QACJ,OAAO,IAAI,CAAA,oDAAoD,CAAC;IAClE,CAAC;CACF,CAAA;AAJK,YAAY;IADjB,aAAa,CAAC,qCAAqC,CAAC;GAC/C,YAAY,CAIjB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Component/Page/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { LitElement } from 'lit';
|
|
3
|
+
import { customElement } from 'lit/decorators.js';
|
|
4
|
+
import { html, unsafeStatic } from 'lit/static-html.js';
|
|
5
|
+
import { GetServiceResolverEvent } from '../BrowserEvent/index.js';
|
|
6
|
+
import { RouteResolver } from '../Service/index.js';
|
|
7
|
+
let Router = class Router extends LitElement {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this._routeConfiguration = null;
|
|
11
|
+
this._routeResolver = null;
|
|
12
|
+
}
|
|
13
|
+
handleNewRoute(route) {
|
|
14
|
+
// eslint-disable-next-line no-console
|
|
15
|
+
console.log(`handle new route: ${route}`);
|
|
16
|
+
this._routeResolver
|
|
17
|
+
?.findRouteConfiguration(route)
|
|
18
|
+
.then((routeConfiguration) => {
|
|
19
|
+
if (routeConfiguration === null) {
|
|
20
|
+
// eslint-disable-next-line no-console
|
|
21
|
+
console.log(`unable to resolve route: ${route}`);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
this._routeConfiguration = routeConfiguration;
|
|
25
|
+
return;
|
|
26
|
+
})
|
|
27
|
+
.catch((e) => {
|
|
28
|
+
// eslint-disable-next-line no-console
|
|
29
|
+
console.log('error during resolving route');
|
|
30
|
+
// eslint-disable-next-line no-console
|
|
31
|
+
console.log(e);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
handlePopStateEvent() {
|
|
35
|
+
// eslint-disable-next-line no-console
|
|
36
|
+
console.log('(popstate) Location changed to: ', window.location.pathname);
|
|
37
|
+
this.handleNewRoute(window.location.pathname);
|
|
38
|
+
}
|
|
39
|
+
handleLinkClickEvent(event) {
|
|
40
|
+
const target = event.target;
|
|
41
|
+
if (target === null) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (!(target instanceof HTMLElement)) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const newRawUrl = target.attributes.getNamedItem('href')?.value;
|
|
48
|
+
if (newRawUrl === null || newRawUrl === undefined) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const currentUrl = window.location.origin;
|
|
52
|
+
// Create a new URL object to resolve the relative path to an absolute URL
|
|
53
|
+
const newAbsoluteUrl = new URL(newRawUrl, currentUrl);
|
|
54
|
+
if (newAbsoluteUrl.host !== window.location.host) {
|
|
55
|
+
// clicked link to different domain, ignoring it
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// eslint-disable-next-line no-console
|
|
59
|
+
console.log(`new absolute url: ${newAbsoluteUrl}`);
|
|
60
|
+
history.pushState({}, '', newAbsoluteUrl);
|
|
61
|
+
event.preventDefault();
|
|
62
|
+
this.handleNewRoute(newAbsoluteUrl.pathname);
|
|
63
|
+
}
|
|
64
|
+
connectedCallback() {
|
|
65
|
+
super.connectedCallback();
|
|
66
|
+
window.addEventListener('popstate', this.handlePopStateEvent.bind(this));
|
|
67
|
+
document.addEventListener('click', this.handleLinkClickEvent.bind(this));
|
|
68
|
+
const getServiceResolverEvent = new GetServiceResolverEvent();
|
|
69
|
+
this.dispatchEvent(getServiceResolverEvent);
|
|
70
|
+
const serviceResolver = getServiceResolverEvent.getServiceResolver();
|
|
71
|
+
if (serviceResolver !== null) {
|
|
72
|
+
const routeResolver = serviceResolver.getService(RouteResolver.identifier);
|
|
73
|
+
if (routeResolver !== null) {
|
|
74
|
+
// eslint-disable-next-line no-console
|
|
75
|
+
console.log('router init complete');
|
|
76
|
+
this._routeResolver = routeResolver;
|
|
77
|
+
this.handleNewRoute(window.location.pathname);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
disconnectedCallback() {
|
|
82
|
+
window.removeEventListener('popstate', this.handlePopStateEvent);
|
|
83
|
+
document.removeEventListener('click', this.handleLinkClickEvent);
|
|
84
|
+
super.disconnectedCallback();
|
|
85
|
+
}
|
|
86
|
+
getRouteWebComponentTag() {
|
|
87
|
+
if (this._routeConfiguration === null) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
if (typeof this._routeConfiguration.webComponent === 'string') {
|
|
91
|
+
return typeof this._routeConfiguration.webComponent;
|
|
92
|
+
}
|
|
93
|
+
// todo: support function based routes
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
render() {
|
|
97
|
+
const routeWebComponentTag = this.getRouteWebComponentTag() ?? 'ember-nexus-app-core-page-error-404';
|
|
98
|
+
const routeWebComponent = unsafeStatic(routeWebComponentTag);
|
|
99
|
+
return html `<${routeWebComponent}></${routeWebComponent}>`;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
Router = __decorate([
|
|
103
|
+
customElement('ember-nexus-app-core-router')
|
|
104
|
+
], Router);
|
|
105
|
+
export { Router };
|
|
106
|
+
//# sourceMappingURL=Router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../src/Component/Router.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,UAAU;IAA/B;;QACY,wBAAmB,GAA8B,IAAI,CAAC;QAEtD,mBAAc,GAAyB,IAAI,CAAC;IAuGxD,CAAC;IArGC,cAAc,CAAC,KAAa;QAC1B,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,cAAc;YACjB,EAAE,sBAAsB,CAAC,KAAK,CAAC;aAC9B,IAAI,CAAC,CAAC,kBAAkB,EAAE,EAAE;YAC3B,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;gBAChC,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;gBACjD,OAAO;YACT,CAAC;YACD,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;YAC9C,OAAO;QACT,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB;QACjB,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,oBAAoB,CAAC,KAAmB;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;QAChE,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE1C,0EAA0E;QAC1E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,SAAmB,EAAE,UAAU,CAAC,CAAC;QAEhE,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjD,gDAAgD;YAChD,OAAO;QACT,CAAC;QAED,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,qBAAqB,cAAc,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzE,MAAM,uBAAuB,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC9D,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,uBAAuB,CAAC,kBAAkB,EAAE,CAAC;QACrE,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,eAAe,CAAC,UAAU,CAAgB,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1F,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC3B,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;gBACpC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,oBAAoB;QAClB,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjE,KAAK,CAAC,oBAAoB,EAAE,CAAC;IAC/B,CAAC;IAES,uBAAuB;QAC/B,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC9D,OAAO,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC;QACtD,CAAC;QACD,sCAAsC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,EAAE,IAAI,qCAAqC,CAAC;QACrG,MAAM,iBAAiB,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAA,IAAI,iBAAiB,MAAM,iBAAiB,GAAG,CAAC;IAC7D,CAAC;CACF,CAAA;AA1GK,MAAM;IADX,aAAa,CAAC,6BAA6B,CAAC;GACvC,MAAM,CA0GX;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Component/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { RouteNode } from '../Type/Definition/RouteNode.js';
|
|
2
|
+
import { ServiceIdentifier } from '../Type/Enum/index.js';
|
|
3
|
+
class RouteResolver {
|
|
4
|
+
constructor() {
|
|
5
|
+
//todo: add some way to replace and/or disable specific routes
|
|
6
|
+
this.routes = new Map();
|
|
7
|
+
this.rootNode = new RouteNode();
|
|
8
|
+
}
|
|
9
|
+
static { this.identifier = ServiceIdentifier.routeResolver; }
|
|
10
|
+
hasRouteConfiguration(routeIdentifier) {
|
|
11
|
+
return this.routes.has(String(routeIdentifier));
|
|
12
|
+
}
|
|
13
|
+
getRouteConfiguration(routeIdentifier) {
|
|
14
|
+
const routeEntry = this.routes.get(String(routeIdentifier));
|
|
15
|
+
if (routeEntry === undefined) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return routeEntry;
|
|
19
|
+
}
|
|
20
|
+
getRouteConfigurationOrFail(routeIdentifier) {
|
|
21
|
+
const routeEntry = this.routes.get(String(routeIdentifier));
|
|
22
|
+
if (routeEntry === undefined) {
|
|
23
|
+
throw new Error(`Requested route with identifier ${String(routeIdentifier)} could not be resolved.`);
|
|
24
|
+
}
|
|
25
|
+
return routeEntry;
|
|
26
|
+
}
|
|
27
|
+
getSegmentsFromRoute(input) {
|
|
28
|
+
return input
|
|
29
|
+
.replace(/^\/+|\/+$/g, '')
|
|
30
|
+
.split('/')
|
|
31
|
+
.filter(Boolean);
|
|
32
|
+
}
|
|
33
|
+
addRouteConfiguration(routeConfiguration) {
|
|
34
|
+
this.routes.set(String(routeConfiguration.routeIdentifier), routeConfiguration);
|
|
35
|
+
const segments = this.getSegmentsFromRoute(routeConfiguration.route);
|
|
36
|
+
let node = this.rootNode;
|
|
37
|
+
for (let i = 0; i < segments.length; i++) {
|
|
38
|
+
node = node.getChildRouteNode(segments[i]);
|
|
39
|
+
}
|
|
40
|
+
node.addRouteHandler(routeConfiguration.routeIdentifier);
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
findRouteConfigurationsByNodeAndSegments(node, segments) {
|
|
44
|
+
if (segments.length === 0) {
|
|
45
|
+
return node.getRouteHandlers();
|
|
46
|
+
}
|
|
47
|
+
const routeIdentifiers = [];
|
|
48
|
+
if (node.hasChildRouteNode(segments[0])) {
|
|
49
|
+
routeIdentifiers.push(...this.findRouteConfigurationsByNodeAndSegments(node.getChildRouteNode(segments[0]), segments.slice(1)));
|
|
50
|
+
}
|
|
51
|
+
if (node.hasChildRouteNode('*')) {
|
|
52
|
+
routeIdentifiers.push(...this.findRouteConfigurationsByNodeAndSegments(node.getChildRouteNode('*'), segments.slice(1)));
|
|
53
|
+
}
|
|
54
|
+
return routeIdentifiers;
|
|
55
|
+
}
|
|
56
|
+
async findRouteConfiguration(route) {
|
|
57
|
+
const segments = this.getSegmentsFromRoute(route);
|
|
58
|
+
let routeIdentifiers = this.findRouteConfigurationsByNodeAndSegments(this.rootNode, segments);
|
|
59
|
+
routeIdentifiers = [...new Set(routeIdentifiers)];
|
|
60
|
+
const routeConfigurations = routeIdentifiers
|
|
61
|
+
.map((id) => this.getRouteConfiguration(id))
|
|
62
|
+
.filter((config) => config !== null)
|
|
63
|
+
.sort((a, b) => b.priority - a.priority);
|
|
64
|
+
for (const config of routeConfigurations) {
|
|
65
|
+
if (await config.guard(route, [], null)) {
|
|
66
|
+
return config;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
deleteRouteConfiguration(routeIdentifier) {
|
|
72
|
+
// todo: add warning that deleting and re-defining identical route identifiers can lead to issues
|
|
73
|
+
this.routes.delete(String(routeIdentifier));
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
getRouteIdentifiers() {
|
|
77
|
+
return [...this.routes.keys()];
|
|
78
|
+
}
|
|
79
|
+
getRoutesConfigurations() {
|
|
80
|
+
return [...this.routes.values()];
|
|
81
|
+
}
|
|
82
|
+
clearRoutes() {
|
|
83
|
+
this.routes.clear();
|
|
84
|
+
return this;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export { RouteResolver };
|
|
88
|
+
//# sourceMappingURL=RouteResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteResolver.js","sourceRoot":"","sources":["../../../src/Service/RouteResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export * from './ElementParser.js';
|
|
|
5
5
|
export * from './EventDispatcher.js';
|
|
6
6
|
export * from './FetchHelper.js';
|
|
7
7
|
export * from './Logger.js';
|
|
8
|
+
export * from './RouteResolver.js';
|
|
8
9
|
export * from './ServiceResolver.js';
|
|
9
10
|
export * from './TokenParser.js';
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Service/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Service/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ParseError } from '../../Error/ParseError.js';
|
|
2
|
+
const pluginIdentifierRegex = /^([a-z]+)(-*[a-z0-9]+)*$/;
|
|
3
|
+
function validatePluginIdentifierFromString(pluginIdentifier) {
|
|
4
|
+
if (!pluginIdentifierRegex.test(pluginIdentifier)) {
|
|
5
|
+
throw new ParseError('Passed variable is not a valid plugin identifier.');
|
|
6
|
+
}
|
|
7
|
+
return pluginIdentifier;
|
|
8
|
+
}
|
|
9
|
+
export { pluginIdentifierRegex, validatePluginIdentifierFromString };
|
|
10
|
+
//# sourceMappingURL=PluginIdentifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginIdentifier.js","sourceRoot":"","sources":["../../../../src/Type/Definition/PluginIdentifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAOvD,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AAEzD,SAAS,kCAAkC,CAAC,gBAAwB;IAClE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,UAAU,CAAC,mDAAmD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,gBAAoC,CAAC;AAC9C,CAAC;AAED,OAAO,EAAoB,qBAAqB,EAAE,kCAAkC,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginInit.js","sourceRoot":"","sources":["../../../../src/Type/Definition/PluginInit.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteConfiguration.js","sourceRoot":"","sources":["../../../../src/Type/Definition/RouteConfiguration.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteGuardFunction.js","sourceRoot":"","sources":["../../../../src/Type/Definition/RouteGuardFunction.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ParseError } from '../../Error/index.js';
|
|
2
|
+
const routeIdentifierRegex = /^([a-z]+)(-*[a-z0-9]+)*$/;
|
|
3
|
+
function validateRouteIdentifierFromString(routeIdentifier) {
|
|
4
|
+
if (!routeIdentifierRegex.test(routeIdentifier)) {
|
|
5
|
+
throw new ParseError('Passed variable is not a valid route identifier.');
|
|
6
|
+
}
|
|
7
|
+
return routeIdentifier;
|
|
8
|
+
}
|
|
9
|
+
export { routeIdentifierRegex, validateRouteIdentifierFromString };
|
|
10
|
+
//# sourceMappingURL=RouteIdentifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteIdentifier.js","sourceRoot":"","sources":["../../../../src/Type/Definition/RouteIdentifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOlD,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAExD,SAAS,iCAAiC,CAAC,eAAuB;IAChE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,UAAU,CAAC,kDAAkD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,eAAkC,CAAC;AAC5C,CAAC;AAED,OAAO,EAAmB,oBAAoB,EAAE,iCAAiC,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
class RouteNode {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.childRouteNodes = {};
|
|
4
|
+
this.routeHandler = [];
|
|
5
|
+
}
|
|
6
|
+
getChildRouteNode(segment) {
|
|
7
|
+
if (!(segment in this.childRouteNodes)) {
|
|
8
|
+
this.childRouteNodes[segment] = new RouteNode();
|
|
9
|
+
}
|
|
10
|
+
return this.childRouteNodes[segment];
|
|
11
|
+
}
|
|
12
|
+
hasChildRouteNode(segment) {
|
|
13
|
+
return segment in this.childRouteNodes;
|
|
14
|
+
}
|
|
15
|
+
addRouteHandler(routeHandler) {
|
|
16
|
+
if (!this.routeHandler.includes(routeHandler)) {
|
|
17
|
+
this.routeHandler.push(routeHandler);
|
|
18
|
+
}
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
getRouteHandlers() {
|
|
22
|
+
return this.routeHandler;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export { RouteNode };
|
|
26
|
+
//# sourceMappingURL=RouteNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteNode.js","sourceRoot":"","sources":["../../../../src/Type/Definition/RouteNode.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS;IAAf;QACU,oBAAe,GAA8B,EAAE,CAAC;QAChD,iBAAY,GAAsB,EAAE,CAAC;IAuB/C,CAAC;IArBC,iBAAiB,CAAC,OAAe;QAC/B,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,iBAAiB,CAAC,OAAe;QAC/B,OAAO,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC;IACzC,CAAC;IAED,eAAe,CAAC,YAA6B;QAC3C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteToWebComponentFunction.js","sourceRoot":"","sources":["../../../../src/Type/Definition/RouteToWebComponentFunction.ts"],"names":[],"mappings":""}
|
|
@@ -14,6 +14,8 @@ export * from './Logger.js';
|
|
|
14
14
|
export * from './Node.js';
|
|
15
15
|
export * from './NodeWithOptionalId.js';
|
|
16
16
|
export * from './OptionalPromise.js';
|
|
17
|
+
export * from './PluginIdentifier.js';
|
|
18
|
+
export * from './PluginInit.js';
|
|
17
19
|
export * from './PriorityRegistry.js';
|
|
18
20
|
export * from './Proxy.js';
|
|
19
21
|
export * from './Registry.js';
|
|
@@ -21,6 +23,11 @@ export * from './Relation.js';
|
|
|
21
23
|
export * from './RelationWithOptionalId.js';
|
|
22
24
|
export * from './RequestProblem.js';
|
|
23
25
|
export * as Response from './Response/index.js';
|
|
26
|
+
export * from './RouteConfiguration.js';
|
|
27
|
+
export * from './RouteGuardFunction.js';
|
|
28
|
+
export * from './RouteIdentifier.js';
|
|
29
|
+
export * from './RouteNode.js';
|
|
30
|
+
export * from './RouteToWebComponentFunction.js';
|
|
24
31
|
export * from './ServiceIdentifier.js';
|
|
25
32
|
export * from './Token.js';
|
|
26
33
|
export * from './UniqueUserIdentifier.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Type/Definition/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,WAAW,CAAC;AAC1B,cAAc,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Type/Definition/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,WAAW,CAAC;AAC1B,cAAc,mCAAmC,CAAC"}
|
|
@@ -6,6 +6,7 @@ var ServiceIdentifier;
|
|
|
6
6
|
ServiceIdentifier["action"] = "global.action-registry";
|
|
7
7
|
ServiceIdentifier["setting"] = "global.setting-registry";
|
|
8
8
|
ServiceIdentifier["icon"] = "global.icon-registry";
|
|
9
|
+
ServiceIdentifier["routeResolver"] = "global.route-resolver";
|
|
9
10
|
// scoped services
|
|
10
11
|
// services
|
|
11
12
|
ServiceIdentifier["serviceFetchHelper"] = "ember-nexus.app-core.service.fetch-helper-service";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceIdentifier.js","sourceRoot":"","sources":["../../../../src/Type/Enum/ServiceIdentifier.ts"],"names":[],"mappings":"AAAA,IAAK,
|
|
1
|
+
{"version":3,"file":"ServiceIdentifier.js","sourceRoot":"","sources":["../../../../src/Type/Enum/ServiceIdentifier.ts"],"names":[],"mappings":"AAAA,IAAK,iBA8CJ;AA9CD,WAAK,iBAAiB;IACpB,kBAAkB;IAClB,6DAAwC,CAAA;IACxC,6CAAwB,CAAA;IACxB,sDAAiC,CAAA;IACjC,wDAAmC,CAAA;IACnC,kDAA6B,CAAA;IAC7B,4DAAuC,CAAA;IAEvC,kBAAkB;IAElB,WAAW;IACX,6FAAwE,CAAA;IACxE,uGAAkF,CAAA;IAClF,iGAA4E,CAAA;IAC5E,uGAAkF,CAAA;IAClF,6FAAwE,CAAA;IACxE,mFAA8D,CAAA;IAC9D,6FAAwE,CAAA;IAExE,qBAAqB;IACrB,2HAAsG,CAAA;IACtG,qHAAgG,CAAA;IAChG,sIAAiH,CAAA;IACjH,oIAA+G,CAAA;IAC/G,oIAA+G,CAAA;IAC/G,iHAA4F,CAAA;IAC5F,yHAAoG,CAAA;IACpG,uHAAkG,CAAA;IAClG,mHAA8F,CAAA;IAC9F,qHAAgG,CAAA;IAEhG,kBAAkB;IAClB,iHAA4F,CAAA;IAC5F,qGAAgF,CAAA;IAChF,2GAAsF,CAAA;IACtF,gIAA2G,CAAA;IAC3G,mHAA8F,CAAA;IAC9F,6GAAwF,CAAA;IAExF,QAAQ;IACR,8EAAyD,CAAA;IACzD,+FAA0E,CAAA;IAC1E,6FAAwE,CAAA;IACxE,6FAAwE,CAAA;IACxE,0EAAqD,CAAA;AACvD,CAAC,EA9CI,iBAAiB,KAAjB,iBAAiB,QA8CrB;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
export * as BrowserEvent from './BrowserEvent/index.js';
|
|
2
2
|
export * as BrowserEventListener from './BrowserEventListener/index.js';
|
|
3
3
|
export * as Cache from './Cache/index.js';
|
|
4
|
+
export * as Component from './Component/index.js';
|
|
4
5
|
export * as Endpoint from './Endpoint/index.js';
|
|
5
6
|
export * as Error from './Error/index.js';
|
|
6
7
|
export * as Event from './Event/index.js';
|
|
7
8
|
export * as EventListener from './EventListener/index.js';
|
|
8
|
-
export * from './
|
|
9
|
+
export * from './init.js';
|
|
10
|
+
export * from './initEventListeners.js';
|
|
11
|
+
export * from './optimizeDynamicConfigurations.js';
|
|
9
12
|
export * as Service from './Service/index.js';
|
|
10
13
|
export * as Type from './Type/index.js';
|
|
11
14
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,oBAAoB,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,cAAc,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,oBAAoB,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AAEnD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC"}
|
|
@@ -3,14 +3,14 @@ import { ElementCache, ElementChildrenCache, ElementParentsCache, ElementRelated
|
|
|
3
3
|
import { DeleteElementEndpoint, GetElementChildrenEndpoint, GetElementEndpoint, GetElementParentsEndpoint, GetElementRelatedEndpoint, GetIndexEndpoint, PatchElementEndpoint, PostElementEndpoint, PostIndexEndpoint, PutElementEndpoint, } from './Endpoint/Element/index.js';
|
|
4
4
|
import { DeleteTokenEndpoint, GetMeEndpoint, GetTokenEndpoint, PostChangePasswordEndpoint, PostRegisterEndpoint, PostTokenEndpoint, } from './Endpoint/User/index.js';
|
|
5
5
|
import { initEventListener } from './EventListener/index.js';
|
|
6
|
-
import { ApiConfiguration, ApiWrapper, CollectionParser, ElementParser, EventDispatcher, FetchHelper,
|
|
6
|
+
import { ApiConfiguration, ApiWrapper, CollectionParser, ElementParser, EventDispatcher, FetchHelper, RouteResolver, TokenParser, } from './Service/index.js';
|
|
7
7
|
import { PriorityRegistry, Registry } from './Type/Definition/index.js';
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
const serviceResolver = new ServiceResolver();
|
|
8
|
+
import { ServiceIdentifier } from './Type/Enum/index.js';
|
|
9
|
+
const init = (serviceResolver) => {
|
|
11
10
|
serviceResolver.setService(ServiceIdentifier.action, new PriorityRegistry());
|
|
12
11
|
serviceResolver.setService(ServiceIdentifier.setting, new Registry());
|
|
13
12
|
serviceResolver.setService(ServiceIdentifier.icon, new Registry());
|
|
13
|
+
serviceResolver.setService(ServiceIdentifier.routeResolver, new RouteResolver());
|
|
14
14
|
const logger = new Logger({
|
|
15
15
|
name: 'app-core',
|
|
16
16
|
type: 'pretty',
|
|
@@ -56,11 +56,7 @@ function init(rootNode) {
|
|
|
56
56
|
}
|
|
57
57
|
// event listeners
|
|
58
58
|
initEventListener(serviceResolver);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
event.stopPropagation();
|
|
62
|
-
});
|
|
63
|
-
return serviceResolver;
|
|
64
|
-
}
|
|
59
|
+
return Promise.resolve();
|
|
60
|
+
};
|
|
65
61
|
export { init };
|
|
66
|
-
//# sourceMappingURL=
|
|
62
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,WAAW,EACX,aAAa,EAEb,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,IAAI,GAAe,CAAC,eAAgC,EAAE,EAAE;IAC5D,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC7E,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;IACtE,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;IACnE,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;IAEjF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IACH,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG;QACf,WAAW;QACX,eAAe;QACf,aAAa;QACb,gBAAgB;QAChB,WAAW;QACX,gBAAgB;QAChB,WAAW;QAEX,oBAAoB;QACpB,qBAAqB;QACrB,kBAAkB;QAClB,0BAA0B;QAC1B,yBAAyB;QACzB,yBAAyB;QACzB,gBAAgB;QAChB,oBAAoB;QACpB,mBAAmB;QACnB,iBAAiB;QACjB,kBAAkB;QAElB,iBAAiB;QACjB,mBAAmB;QACnB,aAAa;QACb,gBAAgB;QAChB,0BAA0B;QAC1B,oBAAoB;QACpB,iBAAiB;QAEjB,SAAS;QACT,YAAY;QACZ,oBAAoB;QACpB,mBAAmB;QACnB,mBAAmB;QACnB,UAAU;QAEV,sBAAsB;QACtB,UAAU;KACX,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,eAAe,CAAC,CAAC,CAAC;IAChH,CAAC;IAED,kBAAkB;IAClB,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAEnC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BrowserEventIdentifier } from './Type/Enum/index.js';
|
|
2
|
+
function initEventListeners(rootNode, serviceResolver) {
|
|
3
|
+
rootNode.addEventListener(BrowserEventIdentifier.GetServiceResolver, (event) => {
|
|
4
|
+
event.setServiceResolver(serviceResolver);
|
|
5
|
+
event.stopPropagation();
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
export { initEventListeners };
|
|
9
|
+
//# sourceMappingURL=initEventListeners.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initEventListeners.js","sourceRoot":"","sources":["../../src/initEventListeners.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,SAAS,kBAAkB,CAAC,QAAqB,EAAE,eAAgC;IACjF,QAAQ,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,CAAC,KAA8B,EAAE,EAAE;QACtG,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAC1C,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optimizeDynamicConfigurations.js","sourceRoot":"","sources":["../../src/optimizeDynamicConfigurations.ts"],"names":[],"mappings":"AAEA,MAAM,6BAA6B,GAAwC,GAAG,EAAE;IAC9E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../../src/
|
|
1
|
+
{"root":["../../src/index.ts","../../src/init.ts","../../src/initEventListeners.ts","../../src/optimizeDynamicConfigurations.ts","../../src/BrowserEvent/GetServiceResolverEvent.ts","../../src/BrowserEvent/index.ts","../../src/BrowserEventListener/index.ts","../../src/Cache/Cache.ts","../../src/Cache/CacheEntry.ts","../../src/Cache/ElementCache.ts","../../src/Cache/ElementChildrenCache.ts","../../src/Cache/ElementParentsCache.ts","../../src/Cache/ElementRelatedCache.ts","../../src/Cache/IndexCache.ts","../../src/Cache/index.ts","../../src/Component/Router.ts","../../src/Component/index.ts","../../src/Component/Page/PageError404.ts","../../src/Component/Page/index.ts","../../src/Endpoint/index.ts","../../src/Endpoint/Element/DeleteElementEndpoint.ts","../../src/Endpoint/Element/GetElementChildrenEndpoint.ts","../../src/Endpoint/Element/GetElementEndpoint.ts","../../src/Endpoint/Element/GetElementParentsEndpoint.ts","../../src/Endpoint/Element/GetElementRelatedEndpoint.ts","../../src/Endpoint/Element/GetIndexEndpoint.ts","../../src/Endpoint/Element/PatchElementEndpoint.ts","../../src/Endpoint/Element/PostElementEndpoint.ts","../../src/Endpoint/Element/PostIndexEndpoint.ts","../../src/Endpoint/Element/PutElementEndpoint.ts","../../src/Endpoint/Element/index.ts","../../src/Endpoint/File/index.ts","../../src/Endpoint/User/DeleteTokenEndpoint.ts","../../src/Endpoint/User/GetMeEndpoint.ts","../../src/Endpoint/User/GetTokenEndpoint.ts","../../src/Endpoint/User/PostChangePasswordEndpoint.ts","../../src/Endpoint/User/PostRegisterEndpoint.ts","../../src/Endpoint/User/PostTokenEndpoint.ts","../../src/Endpoint/User/index.ts","../../src/Endpoint/WebDAV/index.ts","../../src/Error/EmberNexusError.ts","../../src/Error/LogicError.ts","../../src/Error/NetworkError.ts","../../src/Error/ParseError.ts","../../src/Error/Response401UnauthorizedError.ts","../../src/Error/Response403ForbiddenError.ts","../../src/Error/Response404NotFoundError.ts","../../src/Error/Response429TooManyRequestsError.ts","../../src/Error/ResponseError.ts","../../src/Error/ValidationError.ts","../../src/Error/index.ts","../../src/Event/NormalizedValueToRawValueEvent.ts","../../src/Event/RawValueToNormalizedValueEvent.ts","../../src/Event/index.ts","../../src/EventListener/DateTimeNormalizedValueToRawValueEventListener.ts","../../src/EventListener/DateTimeRawValueToNormalizedValueEventListener.ts","../../src/EventListener/GenericNormalizedValueToRawValueEventListener.ts","../../src/EventListener/GenericRawValueToNormalizedValueEventListener.ts","../../src/EventListener/index.ts","../../src/EventListener/initEventListener.ts","../../src/Service/ApiConfiguration.ts","../../src/Service/ApiWrapper.ts","../../src/Service/CollectionParser.ts","../../src/Service/ElementParser.ts","../../src/Service/EventDispatcher.ts","../../src/Service/FetchHelper.ts","../../src/Service/Logger.ts","../../src/Service/RouteResolver.ts","../../src/Service/ServiceResolver.ts","../../src/Service/TokenParser.ts","../../src/Service/index.ts","../../src/Type/index.ts","../../src/Type/Definition/Action.ts","../../src/Type/Definition/Branded.ts","../../src/Type/Definition/Collection.ts","../../src/Type/Definition/Data.ts","../../src/Type/Definition/Element.ts","../../src/Type/Definition/ElementCollection.ts","../../src/Type/Definition/Event.ts","../../src/Type/Definition/EventDispatcher.ts","../../src/Type/Definition/EventIdentifier.ts","../../src/Type/Definition/EventListener.ts","../../src/Type/Definition/EventListenerTarget.ts","../../src/Type/Definition/InstanceConfiguration.ts","../../src/Type/Definition/Logger.ts","../../src/Type/Definition/Node.ts","../../src/Type/Definition/NodeWithOptionalId.ts","../../src/Type/Definition/OptionalPromise.ts","../../src/Type/Definition/PluginIdentifier.ts","../../src/Type/Definition/PluginInit.ts","../../src/Type/Definition/PriorityRegistry.ts","../../src/Type/Definition/Proxy.ts","../../src/Type/Definition/Registry.ts","../../src/Type/Definition/Relation.ts","../../src/Type/Definition/RelationWithOptionalId.ts","../../src/Type/Definition/RequestProblem.ts","../../src/Type/Definition/RouteConfiguration.ts","../../src/Type/Definition/RouteGuardFunction.ts","../../src/Type/Definition/RouteIdentifier.ts","../../src/Type/Definition/RouteNode.ts","../../src/Type/Definition/RouteToWebComponentFunction.ts","../../src/Type/Definition/ServiceIdentifier.ts","../../src/Type/Definition/Token.ts","../../src/Type/Definition/UniqueUserIdentifier.ts","../../src/Type/Definition/Uuid.ts","../../src/Type/Definition/WebSdkConfigurationInterface.ts","../../src/Type/Definition/index.ts","../../src/Type/Definition/Response/EmptyResponse.ts","../../src/Type/Definition/Response/NotModifiedResponse.ts","../../src/Type/Definition/Response/ParsedResponse.ts","../../src/Type/Definition/Response/index.ts","../../src/Type/Enum/BrowserEventIdentifier.ts","../../src/Type/Enum/EventIdentifier.ts","../../src/Type/Enum/HttpRequestMethod.ts","../../src/Type/Enum/LogLevel.ts","../../src/Type/Enum/RequestProblemCategory.ts","../../src/Type/Enum/ServiceIdentifier.ts","../../src/Type/Enum/index.ts","../../src/Type/Partial/CustomEventDefaultInit.ts","../../src/Type/Partial/index.ts"],"version":"5.9.3"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './PageError404.js';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { LitElement, TemplateResult } from 'lit';
|
|
2
|
+
import { RouteResolver } from '../Service/index.js';
|
|
3
|
+
import { RouteConfiguration } from '../Type/Definition/RouteConfiguration.js';
|
|
4
|
+
declare class Router extends LitElement {
|
|
5
|
+
protected _routeConfiguration: RouteConfiguration | null;
|
|
6
|
+
protected _routeResolver: RouteResolver | null;
|
|
7
|
+
handleNewRoute(route: string): void;
|
|
8
|
+
handlePopStateEvent(): void;
|
|
9
|
+
handleLinkClickEvent(event: PointerEvent): void;
|
|
10
|
+
connectedCallback(): void;
|
|
11
|
+
disconnectedCallback(): void;
|
|
12
|
+
protected getRouteWebComponentTag(): string | null;
|
|
13
|
+
render(): TemplateResult;
|
|
14
|
+
}
|
|
15
|
+
export { Router };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { RouteConfiguration, RouteIdentifier } from '../Type/Definition/index.js';
|
|
2
|
+
import { RouteNode } from '../Type/Definition/RouteNode.js';
|
|
3
|
+
import { ServiceIdentifier } from '../Type/Enum/index.js';
|
|
4
|
+
declare class RouteResolver {
|
|
5
|
+
static identifier: ServiceIdentifier;
|
|
6
|
+
private readonly routes;
|
|
7
|
+
private rootNode;
|
|
8
|
+
hasRouteConfiguration(routeIdentifier: RouteIdentifier): boolean;
|
|
9
|
+
getRouteConfiguration(routeIdentifier: RouteIdentifier): null | RouteConfiguration;
|
|
10
|
+
getRouteConfigurationOrFail(routeIdentifier: RouteIdentifier): RouteConfiguration;
|
|
11
|
+
private getSegmentsFromRoute;
|
|
12
|
+
addRouteConfiguration(routeConfiguration: RouteConfiguration): RouteResolver;
|
|
13
|
+
findRouteConfigurationsByNodeAndSegments(node: RouteNode, segments: string[]): RouteIdentifier[];
|
|
14
|
+
findRouteConfiguration(route: string): Promise<RouteConfiguration | null>;
|
|
15
|
+
deleteRouteConfiguration(routeIdentifier: RouteIdentifier): RouteResolver;
|
|
16
|
+
getRouteIdentifiers(): RouteIdentifier[];
|
|
17
|
+
getRoutesConfigurations(): RouteConfiguration[];
|
|
18
|
+
clearRoutes(): RouteResolver;
|
|
19
|
+
}
|
|
20
|
+
export { RouteResolver };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Branded } from './Branded.js';
|
|
2
|
+
/**
|
|
3
|
+
* Type safe variant of string containing plugin identifier.
|
|
4
|
+
*/
|
|
5
|
+
type PluginIdentifier = Branded<string, 'pluginIdentifier'>;
|
|
6
|
+
declare const pluginIdentifierRegex: RegExp;
|
|
7
|
+
declare function validatePluginIdentifierFromString(pluginIdentifier: string): PluginIdentifier;
|
|
8
|
+
export { PluginIdentifier, pluginIdentifierRegex, validatePluginIdentifierFromString };
|