@ember-nexus/app-core 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/browser/index.js +1 -1
  2. package/dist/browser/index.js.map +1 -1
  3. package/dist/esm/Component/Page/PageError404.js +14 -0
  4. package/dist/esm/Component/Page/PageError404.js.map +1 -0
  5. package/dist/esm/Component/Page/index.js +2 -0
  6. package/dist/esm/Component/Page/index.js.map +1 -0
  7. package/dist/esm/Component/Router.js +106 -0
  8. package/dist/esm/Component/Router.js.map +1 -0
  9. package/dist/esm/Component/index.js +3 -0
  10. package/dist/esm/Component/index.js.map +1 -0
  11. package/dist/esm/Init.js +2 -1
  12. package/dist/esm/Init.js.map +1 -1
  13. package/dist/esm/Service/RouteResolver.js +88 -0
  14. package/dist/esm/Service/RouteResolver.js.map +1 -0
  15. package/dist/esm/Service/index.js +1 -0
  16. package/dist/esm/Service/index.js.map +1 -1
  17. package/dist/esm/Type/Definition/PluginIdentifier.js +10 -0
  18. package/dist/esm/Type/Definition/PluginIdentifier.js.map +1 -0
  19. package/dist/esm/Type/Definition/RouteConfiguration.js +2 -0
  20. package/dist/esm/Type/Definition/RouteConfiguration.js.map +1 -0
  21. package/dist/esm/Type/Definition/RouteGuardFunction.js +2 -0
  22. package/dist/esm/Type/Definition/RouteGuardFunction.js.map +1 -0
  23. package/dist/esm/Type/Definition/RouteIdentifier.js +10 -0
  24. package/dist/esm/Type/Definition/RouteIdentifier.js.map +1 -0
  25. package/dist/esm/Type/Definition/RouteNode.js +26 -0
  26. package/dist/esm/Type/Definition/RouteNode.js.map +1 -0
  27. package/dist/esm/Type/Definition/RouteToWebComponentFunction.js +2 -0
  28. package/dist/esm/Type/Definition/RouteToWebComponentFunction.js.map +1 -0
  29. package/dist/esm/Type/Definition/index.js +6 -0
  30. package/dist/esm/Type/Definition/index.js.map +1 -1
  31. package/dist/esm/Type/Enum/ServiceIdentifier.js +1 -0
  32. package/dist/esm/Type/Enum/ServiceIdentifier.js.map +1 -1
  33. package/dist/esm/index.js +1 -0
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  36. package/dist/types/Component/Page/PageError404.d.ts +5 -0
  37. package/dist/types/Component/Page/index.d.ts +1 -0
  38. package/dist/types/Component/Router.d.ts +15 -0
  39. package/dist/types/Component/index.d.ts +2 -0
  40. package/dist/types/Service/RouteResolver.d.ts +20 -0
  41. package/dist/types/Service/index.d.ts +1 -0
  42. package/dist/types/Type/Definition/PluginIdentifier.d.ts +8 -0
  43. package/dist/types/Type/Definition/RouteConfiguration.d.ts +13 -0
  44. package/dist/types/Type/Definition/RouteGuardFunction.d.ts +2 -0
  45. package/dist/types/Type/Definition/RouteIdentifier.d.ts +8 -0
  46. package/dist/types/Type/Definition/RouteNode.d.ts +10 -0
  47. package/dist/types/Type/Definition/RouteToWebComponentFunction.d.ts +2 -0
  48. package/dist/types/Type/Definition/index.d.ts +6 -0
  49. package/dist/types/Type/Enum/ServiceIdentifier.d.ts +1 -0
  50. package/dist/types/index.d.ts +1 -0
  51. package/package.json +2 -1
@@ -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,2 @@
1
+ export * from './PageError404.js';
2
+ //# sourceMappingURL=index.js.map
@@ -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":"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"}
@@ -0,0 +1,3 @@
1
+ export * as Page from './Page/index.js';
2
+ export * from './Router.js';
3
+ //# sourceMappingURL=index.js.map
@@ -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"}
package/dist/esm/Init.js CHANGED
@@ -3,7 +3,7 @@ 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, ServiceResolver, TokenParser, } from './Service/index.js';
6
+ import { ApiConfiguration, ApiWrapper, CollectionParser, ElementParser, EventDispatcher, FetchHelper, RouteResolver, ServiceResolver, TokenParser, } from './Service/index.js';
7
7
  import { PriorityRegistry, Registry } from './Type/Definition/index.js';
8
8
  import { BrowserEventIdentifier, ServiceIdentifier } from './Type/Enum/index.js';
9
9
  function init(rootNode) {
@@ -11,6 +11,7 @@ function init(rootNode) {
11
11
  serviceResolver.setService(ServiceIdentifier.action, new PriorityRegistry());
12
12
  serviceResolver.setService(ServiceIdentifier.setting, new Registry());
13
13
  serviceResolver.setService(ServiceIdentifier.icon, new Registry());
14
+ serviceResolver.setService(ServiceIdentifier.routeResolver, new RouteResolver());
14
15
  const logger = new Logger({
15
16
  name: 'app-core',
16
17
  type: 'pretty',
@@ -1 +1 @@
1
- {"version":3,"file":"Init.js","sourceRoot":"","sources":["../../src/Init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Init.js","sourceRoot":"","sources":["../../src/Init.ts"],"names":[],"mappings":"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"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=RouteConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteConfiguration.js","sourceRoot":"","sources":["../../../../src/Type/Definition/RouteConfiguration.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=RouteGuardFunction.js.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=RouteToWebComponentFunction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteToWebComponentFunction.js","sourceRoot":"","sources":["../../../../src/Type/Definition/RouteToWebComponentFunction.ts"],"names":[],"mappings":""}
@@ -14,6 +14,7 @@ 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';
17
18
  export * from './PriorityRegistry.js';
18
19
  export * from './Proxy.js';
19
20
  export * from './Registry.js';
@@ -21,6 +22,11 @@ export * from './Relation.js';
21
22
  export * from './RelationWithOptionalId.js';
22
23
  export * from './RequestProblem.js';
23
24
  export * as Response from './Response/index.js';
25
+ export * from './RouteConfiguration.js';
26
+ export * from './RouteGuardFunction.js';
27
+ export * from './RouteIdentifier.js';
28
+ export * from './RouteNode.js';
29
+ export * from './RouteToWebComponentFunction.js';
24
30
  export * from './ServiceIdentifier.js';
25
31
  export * from './Token.js';
26
32
  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,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,iBA6CJ;AA7CD,WAAK,iBAAiB;IACpB,kBAAkB;IAClB,6DAAwC,CAAA;IACxC,6CAAwB,CAAA;IACxB,sDAAiC,CAAA;IACjC,wDAAmC,CAAA;IACnC,kDAA6B,CAAA;IAE7B,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,EA7CI,iBAAiB,KAAjB,iBAAiB,QA6CrB;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
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,6 +1,7 @@
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';
@@ -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;AAE1B,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,iBAAiB,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;AAE1B,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"root":["../../src/Init.ts","../../src/index.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/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/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/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/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"}
1
+ {"root":["../../src/Init.ts","../../src/index.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/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,5 @@
1
+ import { LitElement, TemplateResult } from 'lit';
2
+ declare class PageError404 extends LitElement {
3
+ render(): TemplateResult;
4
+ }
5
+ export { PageError404 };
@@ -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,2 @@
1
+ export * as Page from './Page/index.js';
2
+ export * from './Router.js';
@@ -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 };
@@ -5,5 +5,6 @@ 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';
@@ -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 };
@@ -0,0 +1,13 @@
1
+ import { PluginIdentifier } from './PluginIdentifier.js';
2
+ import { RouteGuardFunction } from './RouteGuardFunction.js';
3
+ import { RouteIdentifier } from './RouteIdentifier.js';
4
+ import { RouteToWebComponentFunction } from './RouteToWebComponentFunction.js';
5
+ type RouteConfiguration = {
6
+ pluginIdentifier: PluginIdentifier;
7
+ routeIdentifier: RouteIdentifier;
8
+ route: string;
9
+ priority: number;
10
+ webComponent: string | RouteToWebComponentFunction;
11
+ guard: RouteGuardFunction;
12
+ };
13
+ export { RouteConfiguration };
@@ -0,0 +1,2 @@
1
+ type RouteGuardFunction = (route: string, wildcards: string[], parameters: URLSearchParams | null) => Promise<boolean>;
2
+ export { RouteGuardFunction };
@@ -0,0 +1,8 @@
1
+ import { Branded } from './Branded.js';
2
+ /**
3
+ * Type safe variant of string containing route identifier.
4
+ */
5
+ type RouteIdentifier = Branded<string, 'routeIdentifier'> | string;
6
+ declare const routeIdentifierRegex: RegExp;
7
+ declare function validateRouteIdentifierFromString(routeIdentifier: string): RouteIdentifier;
8
+ export { RouteIdentifier, routeIdentifierRegex, validateRouteIdentifierFromString };
@@ -0,0 +1,10 @@
1
+ import { RouteIdentifier } from './RouteIdentifier.js';
2
+ declare class RouteNode {
3
+ private childRouteNodes;
4
+ private routeHandler;
5
+ getChildRouteNode(segment: string): RouteNode;
6
+ hasChildRouteNode(segment: string): boolean;
7
+ addRouteHandler(routeHandler: RouteIdentifier): RouteNode;
8
+ getRouteHandlers(): RouteIdentifier[];
9
+ }
10
+ export { RouteNode };
@@ -0,0 +1,2 @@
1
+ type RouteToWebComponentFunction = (route: string, wildcards: string[], parameters: URLSearchParams | null) => Promise<string>;
2
+ export { RouteToWebComponentFunction };