@plumile/router 0.1.5

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 (94) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/lib/esm/ResourcePage.d.ts +15 -0
  4. package/lib/esm/ResourcePage.d.ts.map +1 -0
  5. package/lib/esm/ResourcePage.js +64 -0
  6. package/lib/esm/builder.d.ts +13 -0
  7. package/lib/esm/builder.d.ts.map +1 -0
  8. package/lib/esm/builder.js +64 -0
  9. package/lib/esm/errors/HttpRedirect.d.ts +6 -0
  10. package/lib/esm/errors/HttpRedirect.d.ts.map +1 -0
  11. package/lib/esm/errors/HttpRedirect.js +11 -0
  12. package/lib/esm/errors/index.d.ts +2 -0
  13. package/lib/esm/errors/index.d.ts.map +1 -0
  14. package/lib/esm/errors/index.js +2 -0
  15. package/lib/esm/history/BrowserHistory.d.ts +16 -0
  16. package/lib/esm/history/BrowserHistory.d.ts.map +1 -0
  17. package/lib/esm/history/BrowserHistory.js +59 -0
  18. package/lib/esm/history/index.d.ts +3 -0
  19. package/lib/esm/history/index.d.ts.map +1 -0
  20. package/lib/esm/history/index.js +2 -0
  21. package/lib/esm/history/types.d.ts +12 -0
  22. package/lib/esm/history/types.d.ts.map +1 -0
  23. package/lib/esm/history/types.js +2 -0
  24. package/lib/esm/index.d.ts +8 -0
  25. package/lib/esm/index.d.ts.map +1 -0
  26. package/lib/esm/index.js +7 -0
  27. package/lib/esm/routing/Link.d.ts +21 -0
  28. package/lib/esm/routing/Link.d.ts.map +1 -0
  29. package/lib/esm/routing/Link.js +99 -0
  30. package/lib/esm/routing/RouteComponent.d.ts +8 -0
  31. package/lib/esm/routing/RouteComponent.d.ts.map +1 -0
  32. package/lib/esm/routing/RouteComponent.js +20 -0
  33. package/lib/esm/routing/RouteComponentWrapper.d.ts +10 -0
  34. package/lib/esm/routing/RouteComponentWrapper.d.ts.map +1 -0
  35. package/lib/esm/routing/RouteComponentWrapper.js +72 -0
  36. package/lib/esm/routing/RouterRenderer.d.ts +10 -0
  37. package/lib/esm/routing/RouterRenderer.d.ts.map +1 -0
  38. package/lib/esm/routing/RouterRenderer.js +67 -0
  39. package/lib/esm/routing/RoutingContext.d.ts +5 -0
  40. package/lib/esm/routing/RoutingContext.d.ts.map +1 -0
  41. package/lib/esm/routing/RoutingContext.js +4 -0
  42. package/lib/esm/routing/createRouter.d.ts +7 -0
  43. package/lib/esm/routing/createRouter.d.ts.map +1 -0
  44. package/lib/esm/routing/createRouter.js +75 -0
  45. package/lib/esm/routing/index.d.ts +7 -0
  46. package/lib/esm/routing/index.d.ts.map +1 -0
  47. package/lib/esm/routing/index.js +7 -0
  48. package/lib/esm/tools/index.d.ts +3 -0
  49. package/lib/esm/tools/index.d.ts.map +1 -0
  50. package/lib/esm/tools/index.js +13 -0
  51. package/lib/esm/tools.d.ts +7 -0
  52. package/lib/esm/tools.d.ts.map +1 -0
  53. package/lib/esm/tools.js +58 -0
  54. package/lib/esm/types.d.ts +86 -0
  55. package/lib/esm/types.d.ts.map +1 -0
  56. package/lib/esm/types.js +2 -0
  57. package/lib/tsconfig.esm.tsbuildinfo +1 -0
  58. package/lib/types/ResourcePage.d.ts +15 -0
  59. package/lib/types/ResourcePage.d.ts.map +1 -0
  60. package/lib/types/builder.d.ts +13 -0
  61. package/lib/types/builder.d.ts.map +1 -0
  62. package/lib/types/errors/HttpRedirect.d.ts +6 -0
  63. package/lib/types/errors/HttpRedirect.d.ts.map +1 -0
  64. package/lib/types/errors/index.d.ts +2 -0
  65. package/lib/types/errors/index.d.ts.map +1 -0
  66. package/lib/types/history/BrowserHistory.d.ts +16 -0
  67. package/lib/types/history/BrowserHistory.d.ts.map +1 -0
  68. package/lib/types/history/index.d.ts +3 -0
  69. package/lib/types/history/index.d.ts.map +1 -0
  70. package/lib/types/history/types.d.ts +12 -0
  71. package/lib/types/history/types.d.ts.map +1 -0
  72. package/lib/types/index.d.ts +8 -0
  73. package/lib/types/index.d.ts.map +1 -0
  74. package/lib/types/routing/Link.d.ts +21 -0
  75. package/lib/types/routing/Link.d.ts.map +1 -0
  76. package/lib/types/routing/RouteComponent.d.ts +8 -0
  77. package/lib/types/routing/RouteComponent.d.ts.map +1 -0
  78. package/lib/types/routing/RouteComponentWrapper.d.ts +10 -0
  79. package/lib/types/routing/RouteComponentWrapper.d.ts.map +1 -0
  80. package/lib/types/routing/RouterRenderer.d.ts +10 -0
  81. package/lib/types/routing/RouterRenderer.d.ts.map +1 -0
  82. package/lib/types/routing/RoutingContext.d.ts +5 -0
  83. package/lib/types/routing/RoutingContext.d.ts.map +1 -0
  84. package/lib/types/routing/createRouter.d.ts +7 -0
  85. package/lib/types/routing/createRouter.d.ts.map +1 -0
  86. package/lib/types/routing/index.d.ts +7 -0
  87. package/lib/types/routing/index.d.ts.map +1 -0
  88. package/lib/types/tools/index.d.ts +3 -0
  89. package/lib/types/tools/index.d.ts.map +1 -0
  90. package/lib/types/tools.d.ts +7 -0
  91. package/lib/types/tools.d.ts.map +1 -0
  92. package/lib/types/types.d.ts +86 -0
  93. package/lib/types/types.d.ts.map +1 -0
  94. package/package.json +57 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Plumile/Pounjs and its affiliates.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # Pounjs router
@@ -0,0 +1,15 @@
1
+ import type { ResourcePageLoader, ResourcePageReturn } from './types.js';
2
+ export declare class ResourcePage {
3
+ private __error;
4
+ private __loader;
5
+ private __promise;
6
+ private __result;
7
+ private __moduleId;
8
+ constructor(loader: ResourcePageLoader, moduleId: string);
9
+ load(): Promise<ResourcePageReturn>;
10
+ get(): ResourcePageReturn | undefined;
11
+ read(): ResourcePageReturn | Promise<ResourcePageReturn> | Error;
12
+ private __load;
13
+ }
14
+ export declare function getResourcePage(moduleId: string, loader: ResourcePageLoader): ResourcePage | null;
15
+ //# sourceMappingURL=ResourcePage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourcePage.d.ts","sourceRoot":"","sources":["../../src/ResourcePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAczE,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAe;IAE9B,OAAO,CAAC,QAAQ,CAAqB;IAErC,OAAO,CAAC,SAAS,CAAqC;IAEtD,OAAO,CAAC,QAAQ,CAA4B;IAG5C,OAAO,CAAC,UAAU,CAAS;gBAER,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM;IAWlD,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA2BzC,GAAG,IAAI,kBAAkB,GAAG,SAAS;IAgBrC,IAAI,IAAI,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,KAAK;YAazD,MAAM;CAKrB;AAmBD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,kBAAkB,GACzB,YAAY,GAAG,IAAI,CAOrB"}
@@ -0,0 +1,64 @@
1
+ const resourcePageMap = new Map();
2
+ export class ResourcePage {
3
+ __error;
4
+ __loader;
5
+ __promise;
6
+ __result;
7
+ __moduleId;
8
+ constructor(loader, moduleId) {
9
+ this.__error = null;
10
+ this.__loader = loader;
11
+ this.__moduleId = moduleId;
12
+ this.__promise = null;
13
+ this.__result = null;
14
+ }
15
+ async load() {
16
+ let promise = this.__promise;
17
+ if (promise == null) {
18
+ promise = this.__load()
19
+ .then((result) => {
20
+ if (result.default != null) {
21
+ result = result.default;
22
+ }
23
+ this.__result = result;
24
+ return result;
25
+ })
26
+ .catch((error) => {
27
+ this.__error = error;
28
+ throw error;
29
+ });
30
+ this.__promise = promise;
31
+ }
32
+ return promise;
33
+ }
34
+ get() {
35
+ if (this.__result != null) {
36
+ return this.__result;
37
+ }
38
+ return undefined;
39
+ }
40
+ read() {
41
+ if (this.__result != null) {
42
+ return this.__result;
43
+ }
44
+ if (this.__error != null) {
45
+ throw this.__error;
46
+ }
47
+ else {
48
+ throw this.__promise;
49
+ }
50
+ }
51
+ async __load() {
52
+ const { __loader: loader } = this;
53
+ return Promise.resolve(loader());
54
+ }
55
+ }
56
+ export function getResourcePage(moduleId, loader) {
57
+ let resource = resourcePageMap.get(moduleId);
58
+ if (resource == null) {
59
+ resource = new ResourcePage(loader, moduleId);
60
+ resourcePageMap.set(moduleId, resource);
61
+ }
62
+ return resource;
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VQYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Jlc291cmNlUGFnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7QUFNeEQsTUFBTSxPQUFPLFlBQVk7SUFDZixPQUFPLENBQWU7SUFFdEIsUUFBUSxDQUFxQjtJQUU3QixTQUFTLENBQXFDO0lBRTlDLFFBQVEsQ0FBNEI7SUFHcEMsVUFBVSxDQUFTO0lBRTNCLFlBQW1CLE1BQTBCLEVBQUUsUUFBZ0I7UUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUtNLEtBQUssQ0FBQyxJQUFJO1FBQ2YsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM3QixJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNwQixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtpQkFDcEIsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBRWYsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUczQixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztnQkFDMUIsQ0FBQztnQkFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztnQkFDdkIsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixNQUFNLEtBQUssQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFNTSxHQUFHO1FBQ1IsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQVVNLElBQUk7UUFDVCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBRU4sTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLE1BQU07UUFDbEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFbEMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBbUJELE1BQU0sVUFBVSxlQUFlLENBQzdCLFFBQWdCLEVBQ2hCLE1BQTBCO0lBRTFCLElBQUksUUFBUSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7UUFDckIsUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5QyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzb3VyY2VQYWdlTG9hZGVyLCBSZXNvdXJjZVBhZ2VSZXR1cm4gfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLyoqXG4gKiBBIGNhY2hlIG9mIHJlc291cmNlcyB0byBhdm9pZCBsb2FkaW5nIHRoZSBzYW1lIG1vZHVsZSB0d2ljZS4gVGhpcyBpcyBpbXBvcnRhbnRcbiAqIGJlY2F1c2UgV2VicGFjayBkeW5hbWljIGltcG9ydHMgb25seSBleHBvc2UgYW4gYXN5bmNocm9ub3VzIEFQSSBmb3IgbG9hZGluZ1xuICogbW9kdWxlcywgc28gdG8gYmUgYWJsZSB0byBhY2Nlc3MgYWxyZWFkeS1sb2FkZWQgbW9kdWxlcyBzeW5jaHJvbm91c2x5IHdlXG4gKiBtdXN0IGhhdmUgc3RvcmVkIHRoZSBwcmV2aW91cyByZXN1bHQgc29tZXdoZXJlLlxuICovXG5jb25zdCByZXNvdXJjZVBhZ2VNYXAgPSBuZXcgTWFwPHN0cmluZywgUmVzb3VyY2VQYWdlPigpO1xuXG4vKipcbiAqIEEgZ2VuZXJpYyByZXNvdXJjZTogZ2l2ZW4gc29tZSBtZXRob2QgdG8gYXN5bmNocm9ub3VzbHkgbG9hZCBhIHZhbHVlIC0gdGhlIGxvYWRlcigpXG4gKiBhcmd1bWVudCAtIGl0IGFsbG93cyBhY2Nlc3NpbmcgdGhlIHN0YXRlIG9mIHRoZSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlc291cmNlUGFnZSB7XG4gIHByaXZhdGUgX19lcnJvcjogRXJyb3IgfCBudWxsO1xuXG4gIHByaXZhdGUgX19sb2FkZXI6IFJlc291cmNlUGFnZUxvYWRlcjtcblxuICBwcml2YXRlIF9fcHJvbWlzZTogUHJvbWlzZTxSZXNvdXJjZVBhZ2VSZXR1cm4+IHwgbnVsbDtcblxuICBwcml2YXRlIF9fcmVzdWx0OiBSZXNvdXJjZVBhZ2VSZXR1cm4gfCBudWxsO1xuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IE9LXG4gIHByaXZhdGUgX19tb2R1bGVJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihsb2FkZXI6IFJlc291cmNlUGFnZUxvYWRlciwgbW9kdWxlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuX19lcnJvciA9IG51bGw7XG4gICAgdGhpcy5fX2xvYWRlciA9IGxvYWRlcjtcbiAgICB0aGlzLl9fbW9kdWxlSWQgPSBtb2R1bGVJZDtcbiAgICB0aGlzLl9fcHJvbWlzZSA9IG51bGw7XG4gICAgdGhpcy5fX3Jlc3VsdCA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHJlc291cmNlIGlmIG5lY2Vzc2FyeS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkKCk6IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPiB7XG4gICAgbGV0IHByb21pc2UgPSB0aGlzLl9fcHJvbWlzZTtcbiAgICBpZiAocHJvbWlzZSA9PSBudWxsKSB7XG4gICAgICBwcm9taXNlID0gdGhpcy5fX2xvYWQoKVxuICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgICAgICAgICBpZiAocmVzdWx0LmRlZmF1bHQgIT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmRlZmF1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX19yZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuX19lcnJvciA9IGVycm9yO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuX19wcm9taXNlID0gcHJvbWlzZTtcbiAgICB9XG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcmVzdWx0LCBpZiBhdmFpbGFibGUuIFRoaXMgY2FuIGJlIHVzZWZ1bCB0byBjaGVjayBpZiB0aGUgdmFsdWVcbiAgICogaXMgcmVzb2x2ZWQgeWV0LlxuICAgKi9cbiAgcHVibGljIGdldCgpOiBSZXNvdXJjZVBhZ2VSZXR1cm4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLl9fcmVzdWx0ICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLl9fcmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBpcyB0aGUga2V5IG1ldGhvZCBmb3IgaW50ZWdyYXRpbmcgd2l0aCBSZWFjdCBTdXNwZW5zZS4gUmVhZCB3aWxsOlxuICAgKiAtIFwiU3VzcGVuZFwiIGlmIHRoZSByZXNvdXJjZSBpcyBzdGlsbCBwZW5kaW5nIChjdXJyZW50bHkgaW1wbGVtZW50ZWQgYXNcbiAgICogICB0aHJvd2luZyBhIFByb21pc2UsIHRob3VnaCB0aGlzIGlzIHN1YmplY3QgdG8gY2hhbmdlIGluIGZ1dHVyZVxuICAgKiAgIHZlcnNpb25zIG9mIFJlYWN0KVxuICAgKiAtIFRocm93IGFuIGVycm9yIGlmIHRoZSByZXNvdXJjZSBmYWlsZWQgdG8gbG9hZC5cbiAgICogLSBSZXR1cm4gdGhlIGRhdGEgb2YgdGhlIHJlc291cmNlIGlmIGF2YWlsYWJsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkKCk6IFJlc291cmNlUGFnZVJldHVybiB8IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPiB8IEVycm9yIHtcbiAgICBpZiAodGhpcy5fX3Jlc3VsdCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fX3Jlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fX2Vycm9yICE9IG51bGwpIHtcbiAgICAgIHRocm93IHRoaXMuX19lcnJvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9vbmx5LXRocm93LWVycm9yXG4gICAgICB0aHJvdyB0aGlzLl9fcHJvbWlzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9fbG9hZCgpOiBQcm9taXNlPFJlc291cmNlUGFnZVJldHVybj4ge1xuICAgIGNvbnN0IHsgX19sb2FkZXI6IGxvYWRlciB9ID0gdGhpcztcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobG9hZGVyKCkpO1xuICB9XG59XG5cbi8qKlxuICogQSBoZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhIHJlc291cmNlLCBpbnRlbmRlZCBmb3IgZHluYW1pY2FsbHkgbG9hZGluZyBjb2RlLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGBcbiAqICAgIC8vIEJlZm9yZSByZW5kZXJpbmcsIGllIGluIGFuIGV2ZW50IGhhbmRsZXI6XG4gKiAgICBjb25zdCByZXNvdXJjZSA9IEpTUmVzb3VyY2UoJ0ZvbycsICgpID0+IGltcG9ydCgnLi9Gb28uanMpKTtcbiAqICAgIHJlc291cmNlLmxvYWQoKTtcbiAqXG4gKiAgICAvLyBpbiBhIFJlYWN0IGNvbXBvbmVudDpcbiAqICAgIGNvbnN0IEZvbyA9IHJlc291cmNlLnJlYWQoKTtcbiAqICAgIHJldHVybiA8Rm9vIC4uLiAvPjtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBtb2R1bGVJZCBBIGdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UgdXNlZCBmb3IgY2FjaGluZ1xuICogQHBhcmFtIGxvYWRlciBBIG1ldGhvZCB0byBsb2FkIHRoZSByZXNvdXJjZSdzIGRhdGEgaWYgbmVjZXNzYXJ5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZVBhZ2UoXG4gIG1vZHVsZUlkOiBzdHJpbmcsXG4gIGxvYWRlcjogUmVzb3VyY2VQYWdlTG9hZGVyLFxuKTogUmVzb3VyY2VQYWdlIHwgbnVsbCB7XG4gIGxldCByZXNvdXJjZSA9IHJlc291cmNlUGFnZU1hcC5nZXQobW9kdWxlSWQpO1xuICBpZiAocmVzb3VyY2UgPT0gbnVsbCkge1xuICAgIHJlc291cmNlID0gbmV3IFJlc291cmNlUGFnZShsb2FkZXIsIG1vZHVsZUlkKTtcbiAgICByZXNvdXJjZVBhZ2VNYXAuc2V0KG1vZHVsZUlkLCByZXNvdXJjZSk7XG4gIH1cbiAgcmV0dXJuIHJlc291cmNlO1xufVxuIl19
@@ -0,0 +1,13 @@
1
+ import { type MatchFunction, type ParamData } from 'path-to-regexp';
2
+ import type { FlatRouteInput, Redirect, Route } from './types.js';
3
+ export declare class FlatRoute<TParams extends ParamData> {
4
+ path: string;
5
+ routes: Route<any, any>[];
6
+ matchFunction: MatchFunction<TParams>;
7
+ redirectTo?: string;
8
+ constructor(input: FlatRouteInput<TParams>);
9
+ }
10
+ export declare function isRedirect(route: Route<any, any> | Redirect): route is Redirect;
11
+ export declare function buildRoute(routeConfig: (Route<any, any> | Redirect)[], parentRoutes?: Route<any, any>[], prefix?: string): FlatRoute<any>[];
12
+ export declare function buildRoutes(routeConfig: Route<any, any>[]): FlatRoute<any>[];
13
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAElE,qBAAa,SAAS,CAAC,OAAO,SAAS,SAAS;IACvC,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAE1B,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAEtC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAER,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;CAOlD;AAKD,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,GAChC,KAAK,IAAI,QAAQ,CAGnB;AAKD,wBAAgB,UAAU,CACxB,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,EAAE,EAC3C,YAAY,GAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAO,EACpC,MAAM,SAAK,GACV,SAAS,CAAC,GAAG,CAAC,EAAE,CAuDlB;AAKD,wBAAgB,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAE5E"}
@@ -0,0 +1,64 @@
1
+ import { match } from 'path-to-regexp';
2
+ export class FlatRoute {
3
+ path;
4
+ routes;
5
+ matchFunction;
6
+ redirectTo;
7
+ constructor(input) {
8
+ const { matchFunction, path, redirectTo, routes } = input;
9
+ this.path = path;
10
+ this.redirectTo = redirectTo;
11
+ this.routes = routes;
12
+ this.matchFunction = matchFunction;
13
+ }
14
+ }
15
+ export function isRedirect(route) {
16
+ return route.to != null;
17
+ }
18
+ export function buildRoute(routeConfig, parentRoutes = [], prefix = '') {
19
+ const flatRoutes = [];
20
+ for (const route of routeConfig) {
21
+ const parts = [];
22
+ if (prefix !== '') {
23
+ parts.push(prefix);
24
+ }
25
+ if (route.path != null && route.path !== '' && route.path !== '/') {
26
+ parts.push(route.path);
27
+ }
28
+ const newPath = parts.join('/');
29
+ const { children } = route;
30
+ if (!isRedirect(route) && children != null) {
31
+ const routes = buildRoute(children, [...parentRoutes, route], newPath);
32
+ flatRoutes.push(...routes);
33
+ continue;
34
+ }
35
+ const matchFunction = match(`/${newPath}`, {
36
+ trailing: false,
37
+ });
38
+ const path = `/${newPath}`;
39
+ if (isRedirect(route)) {
40
+ let redirectTo = route.to;
41
+ if (!redirectTo.startsWith('/')) {
42
+ redirectTo = `${path}/${redirectTo}`;
43
+ }
44
+ flatRoutes.push(new FlatRoute({
45
+ path,
46
+ redirectTo,
47
+ matchFunction,
48
+ routes: [...parentRoutes],
49
+ }));
50
+ }
51
+ else {
52
+ flatRoutes.push(new FlatRoute({
53
+ path,
54
+ matchFunction,
55
+ routes: [...parentRoutes, route],
56
+ }));
57
+ }
58
+ }
59
+ return flatRoutes;
60
+ }
61
+ export function buildRoutes(routeConfig) {
62
+ return buildRoute(routeConfig);
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQXNDLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0UsTUFBTSxPQUFPLFNBQVM7SUFDYixJQUFJLENBQVM7SUFFYixNQUFNLENBQW9CO0lBRTFCLGFBQWEsQ0FBeUI7SUFFdEMsVUFBVSxDQUFVO0lBRTNCLFlBQW1CLEtBQThCO1FBQy9DLE1BQU0sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDMUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBS0QsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsS0FBaUM7SUFHakMsT0FBUSxLQUFrQixDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUM7QUFDeEMsQ0FBQztBQUtELE1BQU0sVUFBVSxVQUFVLENBQ3hCLFdBQTJDLEVBQzNDLGVBQWtDLEVBQUUsRUFDcEMsTUFBTSxHQUFHLEVBQUU7SUFFWCxNQUFNLFVBQVUsR0FBcUIsRUFBRSxDQUFDO0lBRXhDLEtBQUssTUFBTSxLQUFLLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNsRSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVoQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBd0IsQ0FBQztRQUU5QyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMzQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdkUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBRTNCLFNBQVM7UUFDWCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksT0FBTyxFQUFFLEVBQUU7WUFDekMsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzQixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFFMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsVUFBVSxHQUFHLEdBQUcsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksU0FBUyxDQUFDO2dCQUNaLElBQUk7Z0JBQ0osVUFBVTtnQkFDVixhQUFhO2dCQUNiLE1BQU0sRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDO2FBQzFCLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksU0FBUyxDQUFDO2dCQUNaLElBQUk7Z0JBQ0osYUFBYTtnQkFDYixNQUFNLEVBQUUsQ0FBQyxHQUFHLFlBQVksRUFBRSxLQUFLLENBQUM7YUFDakMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFLRCxNQUFNLFVBQVUsV0FBVyxDQUFDLFdBQThCO0lBQ3hELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXRjaCwgdHlwZSBNYXRjaEZ1bmN0aW9uLCB0eXBlIFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0Um91dGVJbnB1dCwgUmVkaXJlY3QsIFJvdXRlIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBGbGF0Um91dGU8VFBhcmFtcyBleHRlbmRzIFBhcmFtRGF0YT4ge1xuICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuXG4gIHB1YmxpYyByb3V0ZXM6IFJvdXRlPGFueSwgYW55PltdO1xuXG4gIHB1YmxpYyBtYXRjaEZ1bmN0aW9uOiBNYXRjaEZ1bmN0aW9uPFRQYXJhbXM+O1xuXG4gIHB1YmxpYyByZWRpcmVjdFRvPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihpbnB1dDogRmxhdFJvdXRlSW5wdXQ8VFBhcmFtcz4pIHtcbiAgICBjb25zdCB7IG1hdGNoRnVuY3Rpb24sIHBhdGgsIHJlZGlyZWN0VG8sIHJvdXRlcyB9ID0gaW5wdXQ7XG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICB0aGlzLnJlZGlyZWN0VG8gPSByZWRpcmVjdFRvO1xuICAgIHRoaXMucm91dGVzID0gcm91dGVzO1xuICAgIHRoaXMubWF0Y2hGdW5jdGlvbiA9IG1hdGNoRnVuY3Rpb247XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgcm91dGUgaXMgYSByZWRpcmVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVkaXJlY3QoXG4gIHJvdXRlOiBSb3V0ZTxhbnksIGFueT4gfCBSZWRpcmVjdCxcbik6IHJvdXRlIGlzIFJlZGlyZWN0IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cbiAgcmV0dXJuIChyb3V0ZSBhcyBSZWRpcmVjdCkudG8gIT0gbnVsbDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBmbGF0IHJvdXRlIGxpc3QgZnJvbSB0aGUgZ2l2ZW4gcm91dGUgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUm91dGUoXG4gIHJvdXRlQ29uZmlnOiAoUm91dGU8YW55LCBhbnk+IHwgUmVkaXJlY3QpW10sXG4gIHBhcmVudFJvdXRlczogUm91dGU8YW55LCBhbnk+W10gPSBbXSxcbiAgcHJlZml4ID0gJycsXG4pOiBGbGF0Um91dGU8YW55PltdIHtcbiAgY29uc3QgZmxhdFJvdXRlczogRmxhdFJvdXRlPGFueT5bXSA9IFtdO1xuXG4gIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVDb25maWcpIHtcbiAgICBjb25zdCBwYXJ0cyA9IFtdO1xuICAgIGlmIChwcmVmaXggIT09ICcnKSB7XG4gICAgICBwYXJ0cy5wdXNoKHByZWZpeCk7XG4gICAgfVxuICAgIGlmIChyb3V0ZS5wYXRoICE9IG51bGwgJiYgcm91dGUucGF0aCAhPT0gJycgJiYgcm91dGUucGF0aCAhPT0gJy8nKSB7XG4gICAgICBwYXJ0cy5wdXNoKHJvdXRlLnBhdGgpO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1BhdGggPSBwYXJ0cy5qb2luKCcvJyk7XG5cbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSByb3V0ZSBhcyBSb3V0ZTxhbnksIGFueT47XG5cbiAgICBpZiAoIWlzUmVkaXJlY3Qocm91dGUpICYmIGNoaWxkcmVuICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHJvdXRlcyA9IGJ1aWxkUm91dGUoY2hpbGRyZW4sIFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlXSwgbmV3UGF0aCk7XG4gICAgICBmbGF0Um91dGVzLnB1c2goLi4ucm91dGVzKTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250aW51ZVxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hGdW5jdGlvbiA9IG1hdGNoKGAvJHtuZXdQYXRofWAsIHtcbiAgICAgIHRyYWlsaW5nOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHBhdGggPSBgLyR7bmV3UGF0aH1gO1xuXG4gICAgaWYgKGlzUmVkaXJlY3Qocm91dGUpKSB7XG4gICAgICBsZXQgcmVkaXJlY3RUbyA9IHJvdXRlLnRvO1xuXG4gICAgICBpZiAoIXJlZGlyZWN0VG8uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIHJlZGlyZWN0VG8gPSBgJHtwYXRofS8ke3JlZGlyZWN0VG99YDtcbiAgICAgIH1cbiAgICAgIGZsYXRSb3V0ZXMucHVzaChcbiAgICAgICAgbmV3IEZsYXRSb3V0ZSh7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByZWRpcmVjdFRvLFxuICAgICAgICAgIG1hdGNoRnVuY3Rpb24sXG4gICAgICAgICAgcm91dGVzOiBbLi4ucGFyZW50Um91dGVzXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbGF0Um91dGVzLnB1c2goXG4gICAgICAgIG5ldyBGbGF0Um91dGUoe1xuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgbWF0Y2hGdW5jdGlvbixcbiAgICAgICAgICByb3V0ZXM6IFsuLi5wYXJlbnRSb3V0ZXMsIHJvdXRlXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmbGF0Um91dGVzO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIGZsYXQgcm91dGUgbGlzdCBmcm9tIHRoZSBnaXZlbiByb3V0ZSBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFJvdXRlcyhyb3V0ZUNvbmZpZzogUm91dGU8YW55LCBhbnk+W10pOiBGbGF0Um91dGU8YW55PltdIHtcbiAgcmV0dXJuIGJ1aWxkUm91dGUocm91dGVDb25maWcpO1xufVxuIl19
@@ -0,0 +1,6 @@
1
+ export default class HttpRedirect extends Error {
2
+ redirectTo: string;
3
+ statusCode: number;
4
+ constructor(redirectTo: string, statusCode?: number);
5
+ }
6
+ //# sourceMappingURL=HttpRedirect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpRedirect.d.ts","sourceRoot":"","sources":["../../../src/errors/HttpRedirect.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,KAAK;IACtC,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,EAAE,MAAM,CAAC;gBAEP,UAAU,EAAE,MAAM,EAAE,UAAU,SAAM;CAUxD"}
@@ -0,0 +1,11 @@
1
+ export default class HttpRedirect extends Error {
2
+ redirectTo;
3
+ statusCode;
4
+ constructor(redirectTo, statusCode = 302) {
5
+ super('HttpRedirect');
6
+ this.redirectTo = redirectTo;
7
+ this.statusCode = statusCode;
8
+ Object.setPrototypeOf(this, HttpRedirect.prototype);
9
+ }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlZGlyZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Vycm9ycy9IdHRwUmVkaXJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE9BQU8sT0FBTyxZQUFhLFNBQVEsS0FBSztJQUN0QyxVQUFVLENBQVM7SUFFbkIsVUFBVSxDQUFTO0lBRTFCLFlBQW1CLFVBQWtCLEVBQUUsVUFBVSxHQUFHLEdBQUc7UUFDckQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXRCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBSTdCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBIdHRwUmVkaXJlY3QgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyByZWRpcmVjdFRvOiBzdHJpbmc7XG5cbiAgcHVibGljIHN0YXR1c0NvZGU6IG51bWJlcjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocmVkaXJlY3RUbzogc3RyaW5nLCBzdGF0dXNDb2RlID0gMzAyKSB7XG4gICAgc3VwZXIoJ0h0dHBSZWRpcmVjdCcpO1xuXG4gICAgdGhpcy5yZWRpcmVjdFRvID0gcmVkaXJlY3RUbztcbiAgICB0aGlzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuXG4gICAgLy8gRml4IGZvciBpbnN0YW5jZW9mIGJ1ZzpcbiAgICAvLyBodHRwczovL3d3dy5kYW5ueWd1by5jb20vYmxvZy9ob3ctdG8tZml4LWluc3RhbmNlb2Ytbm90LXdvcmtpbmctZm9yLWN1c3RvbS1lcnJvcnMtaW4tdHlwZXNjcmlwdC9cbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSHR0cFJlZGlyZWN0LnByb3RvdHlwZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { default as HttpRedirect } from './HttpRedirect.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as HttpRedirect } from './HttpRedirect.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXJyb3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIEh0dHBSZWRpcmVjdCB9IGZyb20gJy4vSHR0cFJlZGlyZWN0LmpzJztcbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import type { History, HistoryListener, HistoryLocation } from './types.js';
2
+ export declare function createPath(location: HistoryLocation): string;
3
+ export default class BrowserHistory implements History {
4
+ private __listeners;
5
+ constructor();
6
+ get location(): Location;
7
+ init(): void;
8
+ set(location: HistoryLocation): void;
9
+ push(location: HistoryLocation): void;
10
+ unsubscribe(listener: HistoryListener): void;
11
+ subscribe(listener: HistoryListener): () => void;
12
+ private __fire;
13
+ private __doFire;
14
+ private __subscribe;
15
+ }
16
+ //# sourceMappingURL=BrowserHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserHistory.d.ts","sourceRoot":"","sources":["../../../src/history/BrowserHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK5E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAI5D;AAED,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,OAAO;IACpD,OAAO,CAAC,WAAW,CAAyB;;IAO5C,IAAW,QAAQ,IAAI,QAAQ,CAI9B;IAEM,IAAI,IAAI,IAAI;IAIZ,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAOpC,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAOrC,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAM5C,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAOvD,OAAO,CAAC,MAAM,CAOZ;IAEF,OAAO,CAAC,QAAQ,CAOd;IAEF,OAAO,CAAC,WAAW;CAGpB"}
@@ -0,0 +1,59 @@
1
+ export function createPath(location) {
2
+ const { pathname, search = '', hash = '' } = location;
3
+ return `${pathname}${search}${hash}`;
4
+ }
5
+ export default class BrowserHistory {
6
+ __listeners = [];
7
+ constructor() {
8
+ this.init();
9
+ }
10
+ get location() {
11
+ return {
12
+ ...window.location,
13
+ };
14
+ }
15
+ init() {
16
+ this.__subscribe();
17
+ }
18
+ set(location) {
19
+ const path = createPath(location);
20
+ window.history.replaceState({}, '', path);
21
+ this.__doFire(true);
22
+ }
23
+ push(location) {
24
+ const path = createPath(location);
25
+ window.history.pushState({}, '', path);
26
+ this.__fire();
27
+ }
28
+ unsubscribe(listener) {
29
+ this.__listeners = this.__listeners.filter((item) => {
30
+ return item !== listener;
31
+ });
32
+ }
33
+ subscribe(listener) {
34
+ this.__listeners.push(listener);
35
+ return () => {
36
+ this.unsubscribe(listener);
37
+ };
38
+ }
39
+ __fire = () => {
40
+ setTimeout(() => {
41
+ const { location } = this;
42
+ this.__listeners.forEach((listener) => {
43
+ listener(location, false);
44
+ });
45
+ }, 0);
46
+ };
47
+ __doFire = (forceRerender = false) => {
48
+ setTimeout(() => {
49
+ const { location } = this;
50
+ this.__listeners.forEach((listener) => {
51
+ listener(location, forceRerender);
52
+ });
53
+ }, 0);
54
+ };
55
+ __subscribe() {
56
+ window.addEventListener('popstate', this.__fire);
57
+ }
58
+ }
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJvd3Nlckhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGlzdG9yeS9Ccm93c2VySGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQXlCO0lBQ2xELE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXRELE9BQU8sR0FBRyxRQUFRLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFDekIsV0FBVyxHQUFzQixFQUFFLENBQUM7SUFFNUM7UUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBR0QsSUFBVyxRQUFRO1FBQ2pCLE9BQU87WUFDTCxHQUFHLE1BQU0sQ0FBQyxRQUFRO1NBQ25CLENBQUM7SUFDSixDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0sR0FBRyxDQUFDLFFBQXlCO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVsQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLElBQUksQ0FBQyxRQUF5QjtRQUNuQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxRQUF5QjtRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEQsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFNBQVMsQ0FBQyxRQUF5QjtRQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxPQUFPLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLE1BQU0sR0FBRyxHQUFTLEVBQUU7UUFDMUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDcEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUMsQ0FBQztJQUVNLFFBQVEsR0FBRyxDQUFDLGFBQWEsR0FBRyxLQUFLLEVBQUUsRUFBRTtRQUMzQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNwQyxRQUFRLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQyxDQUFDO0lBRU0sV0FBVztRQUNqQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhpc3RvcnksIEhpc3RvcnlMaXN0ZW5lciwgSGlzdG9yeUxvY2F0aW9uIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHBhdGggZnJvbSB0aGUgZ2l2ZW4gbG9jYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhdGgobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbik6IHN0cmluZyB7XG4gIGNvbnN0IHsgcGF0aG5hbWUsIHNlYXJjaCA9ICcnLCBoYXNoID0gJycgfSA9IGxvY2F0aW9uO1xuXG4gIHJldHVybiBgJHtwYXRobmFtZX0ke3NlYXJjaH0ke2hhc2h9YDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnJvd3Nlckhpc3RvcnkgaW1wbGVtZW50cyBIaXN0b3J5IHtcbiAgcHJpdmF0ZSBfX2xpc3RlbmVyczogSGlzdG9yeUxpc3RlbmVyW10gPSBbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICBwdWJsaWMgZ2V0IGxvY2F0aW9uKCk6IExvY2F0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ud2luZG93LmxvY2F0aW9uLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9fc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0KGxvY2F0aW9uOiBIaXN0b3J5TG9jYXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoID0gY3JlYXRlUGF0aChsb2NhdGlvbik7XG5cbiAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sICcnLCBwYXRoKTtcbiAgICB0aGlzLl9fZG9GaXJlKHRydWUpO1xuICB9XG5cbiAgcHVibGljIHB1c2gobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IHBhdGggPSBjcmVhdGVQYXRoKGxvY2F0aW9uKTtcblxuICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwgJycsIHBhdGgpO1xuICAgIHRoaXMuX19maXJlKCk7XG4gIH1cblxuICBwdWJsaWMgdW5zdWJzY3JpYmUobGlzdGVuZXI6IEhpc3RvcnlMaXN0ZW5lcik6IHZvaWQge1xuICAgIHRoaXMuX19saXN0ZW5lcnMgPSB0aGlzLl9fbGlzdGVuZXJzLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIGl0ZW0gIT09IGxpc3RlbmVyO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZShsaXN0ZW5lcjogSGlzdG9yeUxpc3RlbmVyKTogKCkgPT4gdm9pZCB7XG4gICAgdGhpcy5fX2xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdGhpcy51bnN1YnNjcmliZShsaXN0ZW5lcik7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgX19maXJlID0gKCk6IHZvaWQgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgeyBsb2NhdGlvbiB9ID0gdGhpcztcbiAgICAgIHRoaXMuX19saXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IHtcbiAgICAgICAgbGlzdGVuZXIobG9jYXRpb24sIGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0sIDApO1xuICB9O1xuXG4gIHByaXZhdGUgX19kb0ZpcmUgPSAoZm9yY2VSZXJlbmRlciA9IGZhbHNlKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCB7IGxvY2F0aW9uIH0gPSB0aGlzO1xuICAgICAgdGhpcy5fX2xpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4ge1xuICAgICAgICBsaXN0ZW5lcihsb2NhdGlvbiwgZm9yY2VSZXJlbmRlcik7XG4gICAgICB9KTtcbiAgICB9LCAwKTtcbiAgfTtcblxuICBwcml2YXRlIF9fc3Vic2NyaWJlKCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMuX19maXJlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export { default as BrowserHistory } from './BrowserHistory.js';
2
+ export type * from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/history/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as BrowserHistory } from './BrowserHistory.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGlzdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBCcm93c2VySGlzdG9yeSB9IGZyb20gJy4vQnJvd3Nlckhpc3RvcnkuanMnO1xuZXhwb3J0IHR5cGUgKiBmcm9tICcuL3R5cGVzLmpzJztcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ export type HistoryListener = (location: Location, forceRerender: boolean) => void;
2
+ export type HistoryLocation = {
3
+ hash?: string;
4
+ pathname: string;
5
+ search?: string;
6
+ };
7
+ export interface History {
8
+ init: () => void;
9
+ subscribe: (listener: HistoryListener) => () => void;
10
+ push: (location: HistoryLocation) => void;
11
+ }
12
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/history/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,CAC5B,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,OAAO,KACnB,IAAI,CAAC;AACV,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,MAAM,IAAI,CAAC;IACrD,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CAC3C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGlzdG9yeS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSGlzdG9yeUxpc3RlbmVyID0gKFxuICBsb2NhdGlvbjogTG9jYXRpb24sXG4gIGZvcmNlUmVyZW5kZXI6IGJvb2xlYW4sXG4pID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBIaXN0b3J5TG9jYXRpb24gPSB7XG4gIGhhc2g/OiBzdHJpbmc7XG4gIHBhdGhuYW1lOiBzdHJpbmc7XG4gIHNlYXJjaD86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGlzdG9yeSB7XG4gIGluaXQ6ICgpID0+IHZvaWQ7XG4gIHN1YnNjcmliZTogKGxpc3RlbmVyOiBIaXN0b3J5TGlzdGVuZXIpID0+ICgpID0+IHZvaWQ7XG4gIHB1c2g6IChsb2NhdGlvbjogSGlzdG9yeUxvY2F0aW9uKSA9PiB2b2lkO1xufVxuIl19
@@ -0,0 +1,8 @@
1
+ export * from './errors/index.js';
2
+ export * from './history/index.js';
3
+ export * from './routing/index.js';
4
+ export * from './builder.js';
5
+ export * from './ResourcePage.js';
6
+ export * from './tools.js';
7
+ export type * from './types.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './errors/index.js';
2
+ export * from './history/index.js';
3
+ export * from './routing/index.js';
4
+ export * from './builder.js';
5
+ export * from './ResourcePage.js';
6
+ export * from './tools.js';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXJyb3JzL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vaGlzdG9yeS9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRpbmcvaW5kZXguanMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2J1aWxkZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9SZXNvdXJjZVBhZ2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90b29scy5qcyc7XG5leHBvcnQgdHlwZSAqIGZyb20gJy4vdHlwZXMuanMnO1xuIl19
@@ -0,0 +1,21 @@
1
+ import React, { type HTMLAttributeAnchorTarget, type ReactNode } from 'react';
2
+ import type { BrowserHistory, HistoryLocation } from '../history/index.js';
3
+ export declare function isCurrentPathname(exact: boolean, history: BrowserHistory | undefined, pathname: string): boolean;
4
+ type Props = {
5
+ activeClassName?: string;
6
+ children: ReactNode;
7
+ className?: string;
8
+ exact?: boolean;
9
+ preloadOnMouseEnter?: boolean;
10
+ preloadOnMouseDown?: boolean;
11
+ href?: string;
12
+ isDisabled?: boolean;
13
+ onClick?: React.MouseEventHandler<HTMLAnchorElement>;
14
+ onFocus?: React.FocusEventHandler<HTMLAnchorElement>;
15
+ onMouseOver?: React.MouseEventHandler<HTMLAnchorElement>;
16
+ target?: HTMLAttributeAnchorTarget;
17
+ to?: HistoryLocation | string;
18
+ };
19
+ declare const Link: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLAnchorElement>>;
20
+ export default Link;
21
+ //# sourceMappingURL=Link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/routing/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,yBAAyB,EAE9B,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAW3E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAmBT;AAED,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACrD,WAAW,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACzD,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;CAC/B,CAAC;AAMF,QAAA,MAAM,IAAI,iFAuIR,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React, { forwardRef, useEffect, useMemo, } from 'react';
3
+ import { cx } from './../tools/index.js';
4
+ import RoutingContext from './RoutingContext.js';
5
+ const { useCallback, useContext } = React;
6
+ export function isCurrentPathname(exact, history, pathname) {
7
+ if (history == null) {
8
+ return false;
9
+ }
10
+ const resolvedUrl = new URL(pathname, document.location);
11
+ const resolvedPathname = resolvedUrl.pathname;
12
+ if (exact && history.location.pathname === resolvedPathname) {
13
+ return true;
14
+ }
15
+ if (!exact && history.location.pathname.startsWith(resolvedPathname)) {
16
+ return true;
17
+ }
18
+ return false;
19
+ }
20
+ const Link = forwardRef((props, ref) => {
21
+ const router = useContext(RoutingContext);
22
+ const { activeClassName, children, className, exact = false, isDisabled = false, onClick, onFocus, onMouseOver, preloadOnMouseEnter = false, preloadOnMouseDown = true, target, to, href, } = props;
23
+ const pathname = useMemo(() => {
24
+ if (isDisabled) {
25
+ return '#';
26
+ }
27
+ let newHref = href;
28
+ if (newHref == null) {
29
+ if (typeof to === 'string') {
30
+ newHref = to;
31
+ }
32
+ else if (to?.pathname != null) {
33
+ newHref = to.pathname;
34
+ }
35
+ }
36
+ newHref ??= '#';
37
+ return newHref;
38
+ }, [href, isDisabled, to]);
39
+ const initialIsActive = isCurrentPathname(exact, router?.history, pathname);
40
+ const [isActive, setIsActive] = React.useState(initialIsActive);
41
+ useEffect(() => {
42
+ const onChange = () => {
43
+ const newIsActive = isCurrentPathname(exact, router?.history, pathname);
44
+ setIsActive(newIsActive);
45
+ };
46
+ if (router == null) {
47
+ return () => { };
48
+ }
49
+ router.history.subscribe(onChange);
50
+ return () => {
51
+ router.history.unsubscribe(onChange);
52
+ };
53
+ }, [exact, pathname, router]);
54
+ const classNames = [className];
55
+ if (isActive) {
56
+ classNames.push(activeClassName);
57
+ }
58
+ const handleClick = useCallback((event) => {
59
+ if (!isDisabled && typeof onClick === 'function') {
60
+ onClick(event);
61
+ }
62
+ if (event.defaultPrevented ||
63
+ event.metaKey ||
64
+ event.altKey ||
65
+ event.ctrlKey ||
66
+ event.shiftKey ||
67
+ event.button !== 0 ||
68
+ (target != null && target !== '_self')) {
69
+ return;
70
+ }
71
+ event.preventDefault();
72
+ if (router == null || isDisabled) {
73
+ return;
74
+ }
75
+ router.history.push({
76
+ pathname,
77
+ });
78
+ }, [isDisabled, onClick, pathname, router, target]);
79
+ const handleMouseEnter = useCallback(() => {
80
+ if (router == null || isDisabled) {
81
+ return;
82
+ }
83
+ if (preloadOnMouseEnter) {
84
+ router.preload(pathname);
85
+ }
86
+ else {
87
+ router.preloadCode(pathname);
88
+ }
89
+ }, [router, isDisabled, preloadOnMouseEnter, pathname]);
90
+ const handleMouseDown = useCallback(() => {
91
+ if (router == null || isDisabled || !preloadOnMouseDown) {
92
+ return;
93
+ }
94
+ router.preload(pathname);
95
+ }, [router, isDisabled, preloadOnMouseDown, pathname]);
96
+ return (_jsx("a", { className: cx(classNames), href: pathname, onClick: handleClick, onFocus: onFocus, onMouseDown: handleMouseDown, onMouseEnter: handleMouseEnter, onMouseOver: onMouseOver, ref: ref, target: target, children: children }));
97
+ });
98
+ export default Link;
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL0xpbmsudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQUlaLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0sT0FBTyxDQUFDO0FBSWYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXpDLE9BQU8sY0FBYyxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDO0FBSzFDLE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsS0FBYyxFQUNkLE9BQW1DLEVBQ25DLFFBQWdCO0lBRWhCLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUdELE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFekQsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBRTlDLElBQUksS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLGdCQUFnQixFQUFFLENBQUM7UUFDNUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ3JFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQXNCRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQTJCLENBQUMsS0FBWSxFQUFFLEdBQUcsRUFBRSxFQUFFO0lBQ3RFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FB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LFlBQVksRUFBRSxnQkFBZ0IsRUFDOUIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsR0FBRyxFQUFFLEdBQUcsRUFDUixNQUFNLEVBQUUsTUFBTSxZQUViLFFBQVEsR0FDUCxDQUNMLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILGVBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHR5cGUgSFRNTEF0dHJpYnV0ZUFuY2hvclRhcmdldCxcbiAgdHlwZSBNb3VzZUV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxufSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnksIEhpc3RvcnlMb2NhdGlvbiB9IGZyb20gJy4uL2hpc3RvcnkvaW5kZXguanMnO1xuXG5pbXBvcnQgeyBjeCB9IGZyb20gJy4vLi4vdG9vbHMvaW5kZXguanMnO1xuXG5pbXBvcnQgUm91dGluZ0NvbnRleHQgZnJvbSAnLi9Sb3V0aW5nQ29udGV4dC5qcyc7XG5cbmNvbnN0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQgfSA9IFJlYWN0O1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBjdXJyZW50IHBhdGhuYW1lIG1hdGNoZXMgdGhlIGdpdmVuIHBhdGhuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDdXJyZW50UGF0aG5hbWUoXG4gIGV4YWN0OiBib29sZWFuLFxuICBoaXN0b3J5OiBCcm93c2VySGlzdG9yeSB8IHVuZGVmaW5lZCxcbiAgcGF0aG5hbWU6IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBpZiAoaGlzdG9yeSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgY29uc3QgcmVzb2x2ZWRVcmwgPSBuZXcgVVJMKHBhdGhuYW1lLCBkb2N1bWVudC5sb2NhdGlvbik7XG5cbiAgY29uc3QgcmVzb2x2ZWRQYXRobmFtZSA9IHJlc29sdmVkVXJsLnBhdGhuYW1lO1xuXG4gIGlmIChleGFjdCAmJiBoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lID09PSByZXNvbHZlZFBhdGhuYW1lKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoIWV4YWN0ICYmIGhpc3RvcnkubG9jYXRpb24ucGF0aG5hbWUuc3RhcnRzV2l0aChyZXNvbHZlZFBhdGhuYW1lKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG50eXBlIFByb3BzID0ge1xuICBhY3RpdmVDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgZXhhY3Q/OiBib29sZWFuO1xuICBwcmVsb2FkT25Nb3VzZUVudGVyPzogYm9vbGVhbjtcbiAgcHJlbG9hZE9uTW91c2VEb3duPzogYm9vbGVhbjtcbiAgaHJlZj86IHN0cmluZztcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIG9uQ2xpY2s/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIG9uRm9jdXM/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD47XG4gIG9uTW91c2VPdmVyPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+O1xuICB0YXJnZXQ/OiBIVE1MQXR0cmlidXRlQW5jaG9yVGFyZ2V0O1xuICB0bz86IEhpc3RvcnlMb2NhdGlvbiB8IHN0cmluZztcbn07XG5cbi8qKlxuICogQW4gYWx0ZXJuYXRpdmUgdG8gcmVhY3Qtcm91dGVyJ3MgTGluayBjb21wb25lbnQgdGhhdCB3b3JrcyB3aXRoXG4gKiBvdXIgY3VzdG9tIFJvdXRpbmdDb250ZXh0LlxuICovXG5jb25zdCBMaW5rID0gZm9yd2FyZFJlZjxIVE1MQW5jaG9yRWxlbWVudCwgUHJvcHM+KChwcm9wczogUHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCByb3V0ZXIgPSB1c2VDb250ZXh0KFJvdXRpbmdDb250ZXh0KTtcbiAgY29uc3Qge1xuICAgIGFjdGl2ZUNsYXNzTmFtZSxcbiAgICBjaGlsZHJlbixcbiAgICBjbGFzc05hbWUsXG4gICAgZXhhY3QgPSBmYWxzZSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgb25DbGljayxcbiAgICBvbkZvY3VzLFxuICAgIG9uTW91c2VPdmVyLFxuICAgIHByZWxvYWRPbk1vdXNlRW50ZXIgPSBmYWxzZSxcbiAgICBwcmVsb2FkT25Nb3VzZURvd24gPSB0cnVlLFxuICAgIHRhcmdldCxcbiAgICB0byxcbiAgICBocmVmLFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICcjJztcbiAgICB9XG5cbiAgICBsZXQgbmV3SHJlZiA9IGhyZWY7XG5cbiAgICBpZiAobmV3SHJlZiA9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZW9mIHRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBuZXdIcmVmID0gdG87XG4gICAgICB9IGVsc2UgaWYgKHRvPy5wYXRobmFtZSAhPSBudWxsKSB7XG4gICAgICAgIG5ld0hyZWYgPSB0by5wYXRobmFtZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdIcmVmID8/PSAnIyc7XG5cbiAgICByZXR1cm4gbmV3SHJlZjtcbiAgfSwgW2hyZWYsIGlzRGlzYWJsZWQsIHRvXSk7XG5cbiAgY29uc3QgaW5pdGlhbElzQWN0aXZlID0gaXNDdXJyZW50UGF0aG5hbWUoZXhhY3QsIHJvdXRlcj8uaGlzdG9yeSwgcGF0aG5hbWUpO1xuICBjb25zdCBbaXNBY3RpdmUsIHNldElzQWN0aXZlXSA9IFJlYWN0LnVzZVN0YXRlKGluaXRpYWxJc0FjdGl2ZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG5ld0lzQWN0aXZlID0gaXNDdXJyZW50UGF0aG5hbWUoZXhhY3QsIHJvdXRlcj8uaGlzdG9yeSwgcGF0aG5hbWUpO1xuICAgICAgc2V0SXNBY3RpdmUobmV3SXNBY3RpdmUpO1xuICAgIH07XG5cbiAgICBpZiAocm91dGVyID09IG51bGwpIHtcbiAgICAgIHJldHVybiAoKSA9PiB7fTtcbiAgICB9XG5cbiAgICByb3V0ZXIuaGlzdG9yeS5zdWJzY3JpYmUob25DaGFuZ2UpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJvdXRlci5oaXN0b3J5LnVuc3Vic2NyaWJlKG9uQ2hhbmdlKTtcbiAgICB9O1xuICB9LCBbZXhhY3QsIHBhdGhuYW1lLCByb3V0ZXJdKTtcblxuICBjb25zdCBjbGFzc05hbWVzID0gW2NsYXNzTmFtZV07XG5cbiAgaWYgKGlzQWN0aXZlKSB7XG4gICAgY2xhc3NOYW1lcy5wdXNoKGFjdGl2ZUNsYXNzTmFtZSk7XG4gIH1cblxuICAvLyBXaGVuIHRoZSB1c2VyIGNsaWNrcywgY2hhbmdlIHJvdXRlXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKCFpc0Rpc2FibGVkICYmIHR5cGVvZiBvbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9uQ2xpY2soZXZlbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgfHxcbiAgICAgICAgZXZlbnQubWV0YUtleSB8fFxuICAgICAgICBldmVudC5hbHRLZXkgfHxcbiAgICAgICAgZXZlbnQuY3RybEtleSB8fFxuICAgICAgICBldmVudC5zaGlmdEtleSB8fFxuICAgICAgICBldmVudC5idXR0b24gIT09IDAgfHxcbiAgICAgICAgKHRhcmdldCAhPSBudWxsICYmIHRhcmdldCAhPT0gJ19zZWxmJylcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJvdXRlci5oaXN0b3J5LnB1c2goe1xuICAgICAgICBwYXRobmFtZSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW2lzRGlzYWJsZWQsIG9uQ2xpY2ssIHBhdGhuYW1lLCByb3V0ZXIsIHRhcmdldF0sXG4gICk7XG5cbiAgLy8gQ2FsbGJhY2sgdG8gcHJlbG9hZCBqdXN0IHRoZSBjb2RlIGZvciB0aGUgcm91dGU6XG4gIC8vIHdlIHBhc3MgdGhpcyB0byBvbk1vdXNlRW50ZXIsIHdoaWNoIGlzIGEgd2Vha2VyIHNpZ25hbFxuICAvLyB0aGF0IHRoZSB1c2VyICptYXkqIG5hdmlnYXRlIHRvIHRoZSByb3V0ZS5cbiAgY29uc3QgaGFuZGxlTW91c2VFbnRlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwcmVsb2FkT25Nb3VzZUVudGVyKSB7XG4gICAgICByb3V0ZXIucHJlbG9hZChwYXRobmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdXRlci5wcmVsb2FkQ29kZShwYXRobmFtZSk7XG4gICAgfVxuICB9LCBbcm91dGVyLCBpc0Rpc2FibGVkLCBwcmVsb2FkT25Nb3VzZUVudGVyLCBwYXRobmFtZV0pO1xuXG4gIC8vIENhbGxiYWNrIHRvIHByZWxvYWQgdGhlIGNvZGUgYW5kIGRhdGEgZm9yIHRoZSByb3V0ZTpcbiAgLy8gd2UgcGFzcyB0aGlzIHRvIG9uTW91c2VEb3duLCBzaW5jZSB0aGlzIGlzIGEgc3Ryb25nZXJcbiAgLy8gc2lnbmFsIHRoYXQgdGhlIHVzZXIgd2lsbCBsaWtlbHkgY29tcGxldGUgdGhlIG5hdmlnYXRpb25cbiAgY29uc3QgaGFuZGxlTW91c2VEb3duID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCB8fCBpc0Rpc2FibGVkIHx8ICFwcmVsb2FkT25Nb3VzZURvd24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcm91dGVyLnByZWxvYWQocGF0aG5hbWUpO1xuICB9LCBbcm91dGVyLCBpc0Rpc2FibGVkLCBwcmVsb2FkT25Nb3VzZURvd24sIHBhdGhuYW1lXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8YVxuICAgICAgY2xhc3NOYW1lPXtjeChjbGFzc05hbWVzKX1cbiAgICAgIGhyZWY9e3BhdGhuYW1lfVxuICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgb25Nb3VzZURvd249e2hhbmRsZU1vdXNlRG93bn1cbiAgICAgIG9uTW91c2VFbnRlcj17aGFuZGxlTW91c2VFbnRlcn1cbiAgICAgIG9uTW91c2VPdmVyPXtvbk1vdXNlT3Zlcn1cbiAgICAgIHJlZj17cmVmfVxuICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYT5cbiAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBMaW5rO1xuIl19
@@ -0,0 +1,8 @@
1
+ import { type ReactNode } from 'react';
2
+ type Props = {
3
+ content?: ReactNode;
4
+ redirectToPathname: string | null;
5
+ };
6
+ declare const RouteComponent: (props: Props) => ReactNode;
7
+ export default RouteComponent;
8
+ //# sourceMappingURL=RouteComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteComponent.d.ts","sourceRoot":"","sources":["../../../src/routing/RouteComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AAI9D,KAAK,KAAK,GAAG;IACX,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAaF,QAAA,MAAM,cAAc,GAAI,OAAO,KAAK,KAAG,SAqBtC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { useContext, useEffect } from 'react';
2
+ import RoutingContext from './RoutingContext.js';
3
+ const RouteComponent = (props) => {
4
+ const { content, redirectToPathname } = props;
5
+ const router = useContext(RoutingContext);
6
+ useEffect(() => {
7
+ if (router == null) {
8
+ return;
9
+ }
10
+ if (redirectToPathname == null) {
11
+ return;
12
+ }
13
+ router.history.set({
14
+ pathname: redirectToPathname,
15
+ });
16
+ }, [redirectToPathname, router]);
17
+ return content ?? null;
18
+ };
19
+ export default RouteComponent;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVDb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGluZy9Sb3V0ZUNvbXBvbmVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTlELE9BQU8sY0FBYyxNQUFNLHFCQUFxQixDQUFDO0FBa0JqRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQVksRUFBYSxFQUFFO0lBQ2pELE1BQU0sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFOUMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksa0JBQWtCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNqQixRQUFRLEVBQUUsa0JBQWtCO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFHakMsT0FBTyxPQUFPLElBQUksSUFBSSxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQUVGLGVBQWUsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBSZWFjdE5vZGUsIHVzZUNvbnRleHQsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IFJvdXRpbmdDb250ZXh0IGZyb20gJy4vUm91dGluZ0NvbnRleHQuanMnO1xuXG50eXBlIFByb3BzID0ge1xuICBjb250ZW50PzogUmVhY3ROb2RlO1xuICByZWRpcmVjdFRvUGF0aG5hbWU6IHN0cmluZyB8IG51bGw7XG59O1xuXG4vKipcbiAqIFRoZSBgcmVzb3VyY2VQYWdlYCBwcm9wZXJ0eSBmcm9tIHRoZSByb3V0ZSBlbnRyeSBpcyBhIFJlc291cmNlLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSByZWFkeS5cbiAqIFdlIHVzZSBhIGhlbHBlciBjaGlsZCBjb21wb25lbnQgdG8gdW53cmFwIHRoZSByZXNvdXJjZSB3aXRoIGNvbXBvbmVudC5yZWFkKCksIGFuZCB0aGVuXG4gKiByZW5kZXIgaXQgaWYgaXRzIHJlYWR5LlxuICpcbiAqIE5PVEU6IGNhbGxpbmcgcm91dGVFbnRyeS5yb3V0ZS5jb21wb25lbnQucmVhZCgpIGRpcmVjdGx5IGluIFJvdXRlUmVuZGVyZXIgd29sZG4ndCB3b3JrIHRoZVxuICogd2F5IHdlJ2QgZXhwZWN0LiBCZWNhdXNlIHRoYXQgbWV0aG9kIGNvdWxkIHRocm93IC0gZWl0aGVyIHN1c3BlbmRpbmcgb3Igb24gZXJyb3IgLSB0aGUgZXJyb3JcbiAqIHdvdWxkIGJ1YmJsZSB1cCB0byB0aGUgKmNhbGxlciogb2YgUm91dGVSZW5kZXJlci4gV2Ugd2FudCB0aGUgc3VzcGVuZC9lcnJvciB0byBidWJibGUgdXAgdG9cbiAqIG91ciBFcnJvckJvdW5kYXJ5L1N1c3BlbnNlIGNvbXBvbmVudHMsIHNvIHdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIHN1c3BlbmQvZXJyb3IgaGFwcGVuc1xuICogaW4gYSBjaGlsZCBjb21wb25lbnQuXG4gKi9cbmNvbnN0IFJvdXRlQ29tcG9uZW50ID0gKHByb3BzOiBQcm9wcyk6IFJlYWN0Tm9kZSA9PiB7XG4gIGNvbnN0IHsgY29udGVudCwgcmVkaXJlY3RUb1BhdGhuYW1lIH0gPSBwcm9wcztcblxuICBjb25zdCByb3V0ZXIgPSB1c2VDb250ZXh0KFJvdXRpbmdDb250ZXh0KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZWRpcmVjdFRvUGF0aG5hbWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJvdXRlci5oaXN0b3J5LnNldCh7XG4gICAgICBwYXRobmFtZTogcmVkaXJlY3RUb1BhdGhuYW1lLFxuICAgIH0pO1xuICB9LCBbcmVkaXJlY3RUb1BhdGhuYW1lLCByb3V0ZXJdKTtcblxuICAvLyBUT0RPOiBIYW5kbGUgU3VzcGVuc2UvbG9hZGVyXG4gIHJldHVybiBjb250ZW50ID8/IG51bGw7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBSb3V0ZUNvbXBvbmVudDtcbiJdfQ==
@@ -0,0 +1,10 @@
1
+ import { type JSX } from 'react';
2
+ import type { PreparedMatchRoute, RouterMatchedRoute } from '../types.js';
3
+ type Props = {
4
+ children?: any;
5
+ match: RouterMatchedRoute<any> | null;
6
+ preparedRoute: PreparedMatchRoute;
7
+ };
8
+ declare const RouteComponentWrapper: (props: Props) => JSX.Element | null;
9
+ export default RouteComponentWrapper;
10
+ //# sourceMappingURL=RouteComponentWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteComponentWrapper.d.ts","sourceRoot":"","sources":["../../../src/routing/RouteComponentWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAM1E,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACtC,aAAa,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAaF,QAAA,MAAM,qBAAqB,GAAI,OAAO,KAAK,KAAG,GAAG,CAAC,OAAO,GAAG,IA0F3D,CAAC;AAEF,eAAe,qBAAqB,CAAC"}