@daffodil/external-router 0.39.13 → 0.40.1

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 (201) hide show
  1. package/daffodil-external-router.d.ts +1 -1
  2. package/driver/daffodil-external-router-driver.d.ts +1 -0
  3. package/driver/in-memory/daffodil-external-router-driver-in-memory.d.ts +1 -1
  4. package/driver/in-memory/in-memory.module.d.ts +5 -0
  5. package/driver/in-memory/in-memory.service.d.ts +3 -0
  6. package/driver/in-memory/package.json +5 -6
  7. package/driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.d.ts +1 -1
  8. package/driver/magento/2.4.1/graphql/queries/resolve-url-v2.4.1.d.ts +1 -1
  9. package/driver/magento/2.4.1/magento.module.d.ts +5 -0
  10. package/driver/magento/2.4.1/magento.service.d.ts +4 -1
  11. package/driver/magento/2.4.1/package.json +5 -6
  12. package/driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.d.ts +1 -1
  13. package/driver/magento/2.4.2/graphql/queries/resolve-url-v2.4.2.d.ts +1 -1
  14. package/driver/magento/2.4.2/magento.module.d.ts +5 -0
  15. package/driver/magento/2.4.2/magento.service.d.ts +4 -1
  16. package/driver/magento/2.4.2/package.json +5 -6
  17. package/driver/magento/daffodil-external-router-driver-magento.d.ts +1 -0
  18. package/driver/magento/package.json +5 -6
  19. package/driver/package.json +5 -6
  20. package/driver/testing/daffodil-external-router-driver-testing.d.ts +1 -1
  21. package/driver/testing/package.json +5 -6
  22. package/driver/testing/testing.module.d.ts +5 -0
  23. package/driver/testing/testing.service.d.ts +3 -0
  24. package/{esm2015/config.js → esm2020/config.mjs} +0 -0
  25. package/esm2020/daffodil-external-router.mjs +5 -0
  26. package/{esm2015/driver/daffodil-external-router-driver.js → esm2020/driver/daffodil-external-router-driver.mjs} +0 -0
  27. package/esm2020/driver/in-memory/config.mjs +15 -0
  28. package/{esm2015/driver/in-memory/daffodil-external-router-driver-in-memory.js → esm2020/driver/in-memory/daffodil-external-router-driver-in-memory.mjs} +1 -2
  29. package/esm2020/driver/in-memory/in-memory.module.mjs +41 -0
  30. package/esm2020/driver/in-memory/in-memory.service.mjs +39 -0
  31. package/{esm2015/driver/in-memory/index.js → esm2020/driver/in-memory/index.mjs} +0 -0
  32. package/{esm2015/driver/in-memory/public_api.js → esm2020/driver/in-memory/public_api.mjs} +0 -0
  33. package/{esm2015/driver/index.js → esm2020/driver/index.mjs} +0 -0
  34. package/{esm2015/driver/interfaces/external-router-driver.interface.js → esm2020/driver/interfaces/external-router-driver.interface.mjs} +0 -0
  35. package/esm2020/driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.mjs +5 -0
  36. package/{esm2015/driver/magento/2.4.1/graphql/queries/resolve-url-v2.4.1.js → esm2020/driver/magento/2.4.1/graphql/queries/resolve-url-v2.4.1.mjs} +2 -2
  37. package/{esm2015/driver/magento/2.4.1/index.js → esm2020/driver/magento/2.4.1/index.mjs} +0 -0
  38. package/esm2020/driver/magento/2.4.1/magento.module.mjs +55 -0
  39. package/esm2020/driver/magento/2.4.1/magento.service.mjs +38 -0
  40. package/{esm2015/driver/magento/2.4.1/public_api.js → esm2020/driver/magento/2.4.1/public_api.mjs} +0 -0
  41. package/esm2020/driver/magento/2.4.1/transforms/resolution-to-resolvable-url.mjs +10 -0
  42. package/esm2020/driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.mjs +5 -0
  43. package/{esm2015/driver/magento/2.4.2/graphql/queries/resolve-url-v2.4.2.js → esm2020/driver/magento/2.4.2/graphql/queries/resolve-url-v2.4.2.mjs} +2 -2
  44. package/{esm2015/driver/magento/2.4.2/index.js → esm2020/driver/magento/2.4.2/index.mjs} +0 -0
  45. package/esm2020/driver/magento/2.4.2/magento.module.mjs +55 -0
  46. package/esm2020/driver/magento/2.4.2/magento.service.mjs +37 -0
  47. package/{esm2015/driver/magento/2.4.2/public_api.js → esm2020/driver/magento/2.4.2/public_api.mjs} +0 -0
  48. package/{esm2015/driver/magento/2.4.2/transforms/resolution-to-resolvable-url.js → esm2020/driver/magento/2.4.2/transforms/resolution-to-resolvable-url.mjs} +0 -0
  49. package/{esm2015/driver/magento/daffodil-external-router-driver-magento.js → esm2020/driver/magento/daffodil-external-router-driver-magento.mjs} +0 -0
  50. package/{esm2015/driver/magento/index.js → esm2020/driver/magento/index.mjs} +0 -0
  51. package/{esm2015/driver/magento/model/public_api.js → esm2020/driver/magento/model/public_api.mjs} +0 -0
  52. package/{esm2015/driver/magento/model/resolution-types.js → esm2020/driver/magento/model/resolution-types.mjs} +0 -0
  53. package/{esm2015/driver/magento/model/url-resolver-response.js → esm2020/driver/magento/model/url-resolver-response.mjs} +0 -0
  54. package/{esm2015/driver/magento/model/url-resolver.js → esm2020/driver/magento/model/url-resolver.mjs} +0 -0
  55. package/{esm2015/driver/magento/public_api.js → esm2020/driver/magento/public_api.mjs} +0 -0
  56. package/{esm2015/driver/magento/transforms/public_api.js → esm2020/driver/magento/transforms/public_api.mjs} +0 -0
  57. package/{esm2015/driver/magento/transforms/redirect-to-http.js → esm2020/driver/magento/transforms/redirect-to-http.mjs} +0 -0
  58. package/{esm2015/driver/not-found-resolution.js → esm2020/driver/not-found-resolution.mjs} +0 -0
  59. package/{esm2015/driver/public_api.js → esm2020/driver/public_api.mjs} +0 -0
  60. package/{esm2015/driver/testing/config.js → esm2020/driver/testing/config.mjs} +0 -0
  61. package/esm2020/driver/testing/daffodil-external-router-driver-testing.mjs +5 -0
  62. package/{esm2015/driver/testing/index.js → esm2020/driver/testing/index.mjs} +0 -0
  63. package/{esm2015/driver/testing/public_api.js → esm2020/driver/testing/public_api.mjs} +0 -0
  64. package/esm2020/driver/testing/testing.module.mjs +38 -0
  65. package/esm2020/driver/testing/testing.service.mjs +45 -0
  66. package/{esm2015/errors/no-wildcard.js → esm2020/errors/no-wildcard.mjs} +0 -0
  67. package/{esm2015/errors/unknown-type.js → esm2020/errors/unknown-type.mjs} +0 -0
  68. package/esm2020/external-router.module.mjs +31 -0
  69. package/{esm2015/model/insertion-strategy.type.js → esm2020/model/insertion-strategy.type.mjs} +0 -0
  70. package/{esm2015/model/public_api.js → esm2020/model/public_api.mjs} +0 -0
  71. package/{esm2015/model/resolvable-route.js → esm2020/model/resolvable-route.mjs} +0 -0
  72. package/{esm2015/model/route-info.js → esm2020/model/route-info.mjs} +0 -0
  73. package/{esm2015/model/route-type.js → esm2020/model/route-type.mjs} +0 -0
  74. package/{esm2015/model/route-with-data-path.js → esm2020/model/route-with-data-path.mjs} +0 -0
  75. package/{esm2015/model/route-without-path.js → esm2020/model/route-without-path.mjs} +0 -0
  76. package/{esm2015/model/type-route-pair.js → esm2020/model/type-route-pair.mjs} +0 -0
  77. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  78. package/esm2020/router/router.service.mjs +43 -0
  79. package/esm2020/router/strategies/insert-data-path.mjs +81 -0
  80. package/{esm2015/router/strategies/insert-route-before-wildcard.js → esm2020/router/strategies/insert-route-before-wildcard.mjs} +0 -0
  81. package/esm2020/router/url-matcher/data-path-matcher.mjs +31 -0
  82. package/{esm2015/routing/daffodil-external-router-routing.js → esm2020/routing/daffodil-external-router-routing.mjs} +0 -0
  83. package/{esm2015/routing/errors/client-error.js → esm2020/routing/errors/client-error.mjs} +0 -0
  84. package/{esm2015/routing/errors/not-found-error.js → esm2020/routing/errors/not-found-error.mjs} +0 -0
  85. package/{esm2015/routing/errors/permanent-redirect.js → esm2020/routing/errors/permanent-redirect.mjs} +0 -0
  86. package/{esm2015/routing/errors/server-error.js → esm2020/routing/errors/server-error.mjs} +0 -0
  87. package/{esm2015/routing/errors/temporary-redirect.js → esm2020/routing/errors/temporary-redirect.mjs} +0 -0
  88. package/esm2020/routing/guard/existence.guard.mjs +77 -0
  89. package/{esm2015/routing/index.js → esm2020/routing/index.mjs} +0 -0
  90. package/{esm2015/routing/processors/process-errors.js → esm2020/routing/processors/process-errors.mjs} +0 -0
  91. package/{esm2015/routing/processors/process-redirect.js → esm2020/routing/processors/process-redirect.mjs} +0 -0
  92. package/{esm2015/routing/public_api.js → esm2020/routing/public_api.mjs} +0 -0
  93. package/{esm2015/token/type-resolvable-routes.token.js → esm2020/token/type-resolvable-routes.token.mjs} +0 -0
  94. package/esm2020/transform/resolved-route-to-route.mjs +24 -0
  95. package/external-router.module.d.ts +5 -0
  96. package/fesm2015/{daffodil-external-router-driver-in-memory.js → daffodil-external-router-driver-in-memory.mjs} +28 -21
  97. package/fesm2015/daffodil-external-router-driver-in-memory.mjs.map +1 -0
  98. package/fesm2015/{daffodil-external-router-driver-magento-2.4.1.js → daffodil-external-router-driver-magento-2.4.1.mjs} +24 -20
  99. package/fesm2015/daffodil-external-router-driver-magento-2.4.1.mjs.map +1 -0
  100. package/fesm2015/{daffodil-external-router-driver-magento-2.4.2.js → daffodil-external-router-driver-magento-2.4.2.mjs} +24 -20
  101. package/fesm2015/daffodil-external-router-driver-magento-2.4.2.mjs.map +1 -0
  102. package/fesm2015/{daffodil-external-router-driver-magento.js → daffodil-external-router-driver-magento.mjs} +1 -1
  103. package/fesm2015/daffodil-external-router-driver-magento.mjs.map +1 -0
  104. package/fesm2015/daffodil-external-router-driver-testing.mjs +101 -0
  105. package/fesm2015/daffodil-external-router-driver-testing.mjs.map +1 -0
  106. package/fesm2015/{daffodil-external-router-driver.js → daffodil-external-router-driver.mjs} +1 -1
  107. package/fesm2015/daffodil-external-router-driver.mjs.map +1 -0
  108. package/fesm2015/daffodil-external-router-routing.mjs +173 -0
  109. package/fesm2015/daffodil-external-router-routing.mjs.map +1 -0
  110. package/fesm2015/{daffodil-external-router.js → daffodil-external-router.mjs} +28 -25
  111. package/fesm2015/daffodil-external-router.mjs.map +1 -0
  112. package/fesm2020/daffodil-external-router-driver-in-memory.mjs +98 -0
  113. package/fesm2020/daffodil-external-router-driver-in-memory.mjs.map +1 -0
  114. package/fesm2020/daffodil-external-router-driver-magento-2.4.1.mjs +122 -0
  115. package/fesm2020/daffodil-external-router-driver-magento-2.4.1.mjs.map +1 -0
  116. package/fesm2020/daffodil-external-router-driver-magento-2.4.2.mjs +122 -0
  117. package/fesm2020/daffodil-external-router-driver-magento-2.4.2.mjs.map +1 -0
  118. package/fesm2020/daffodil-external-router-driver-magento.mjs +22 -0
  119. package/fesm2020/daffodil-external-router-driver-magento.mjs.map +1 -0
  120. package/fesm2020/daffodil-external-router-driver-testing.mjs +99 -0
  121. package/fesm2020/daffodil-external-router-driver-testing.mjs.map +1 -0
  122. package/fesm2020/daffodil-external-router-driver.mjs +30 -0
  123. package/fesm2020/daffodil-external-router-driver.mjs.map +1 -0
  124. package/{fesm2015/daffodil-external-router-routing.js → fesm2020/daffodil-external-router-routing.mjs} +21 -19
  125. package/fesm2020/daffodil-external-router-routing.mjs.map +1 -0
  126. package/fesm2020/daffodil-external-router.mjs +291 -0
  127. package/fesm2020/daffodil-external-router.mjs.map +1 -0
  128. package/package.json +82 -14
  129. package/router/router.service.d.ts +3 -0
  130. package/routing/daffodil-external-router-routing.d.ts +1 -0
  131. package/routing/guard/existence.guard.d.ts +3 -0
  132. package/routing/package.json +5 -6
  133. package/bundles/daffodil-external-router-driver-in-memory.umd.js +0 -100
  134. package/bundles/daffodil-external-router-driver-in-memory.umd.js.map +0 -1
  135. package/bundles/daffodil-external-router-driver-in-memory.umd.min.js +0 -2
  136. package/bundles/daffodil-external-router-driver-in-memory.umd.min.js.map +0 -1
  137. package/bundles/daffodil-external-router-driver-magento-2.4.1.umd.js +0 -438
  138. package/bundles/daffodil-external-router-driver-magento-2.4.1.umd.js.map +0 -1
  139. package/bundles/daffodil-external-router-driver-magento-2.4.1.umd.min.js +0 -16
  140. package/bundles/daffodil-external-router-driver-magento-2.4.1.umd.min.js.map +0 -1
  141. package/bundles/daffodil-external-router-driver-magento-2.4.2.umd.js +0 -435
  142. package/bundles/daffodil-external-router-driver-magento-2.4.2.umd.js.map +0 -1
  143. package/bundles/daffodil-external-router-driver-magento-2.4.2.umd.min.js +0 -16
  144. package/bundles/daffodil-external-router-driver-magento-2.4.2.umd.min.js.map +0 -1
  145. package/bundles/daffodil-external-router-driver-magento.umd.js +0 -31
  146. package/bundles/daffodil-external-router-driver-magento.umd.js.map +0 -1
  147. package/bundles/daffodil-external-router-driver-magento.umd.min.js +0 -2
  148. package/bundles/daffodil-external-router-driver-magento.umd.min.js.map +0 -1
  149. package/bundles/daffodil-external-router-driver-testing.umd.js +0 -101
  150. package/bundles/daffodil-external-router-driver-testing.umd.js.map +0 -1
  151. package/bundles/daffodil-external-router-driver-testing.umd.min.js +0 -2
  152. package/bundles/daffodil-external-router-driver-testing.umd.min.js.map +0 -1
  153. package/bundles/daffodil-external-router-driver.umd.js +0 -39
  154. package/bundles/daffodil-external-router-driver.umd.js.map +0 -1
  155. package/bundles/daffodil-external-router-driver.umd.min.js +0 -2
  156. package/bundles/daffodil-external-router-driver.umd.min.js.map +0 -1
  157. package/bundles/daffodil-external-router-routing.umd.js +0 -505
  158. package/bundles/daffodil-external-router-routing.umd.js.map +0 -1
  159. package/bundles/daffodil-external-router-routing.umd.min.js +0 -16
  160. package/bundles/daffodil-external-router-routing.umd.min.js.map +0 -1
  161. package/bundles/daffodil-external-router.umd.js +0 -625
  162. package/bundles/daffodil-external-router.umd.js.map +0 -1
  163. package/bundles/daffodil-external-router.umd.min.js +0 -16
  164. package/bundles/daffodil-external-router.umd.min.js.map +0 -1
  165. package/daffodil-external-router.metadata.json +0 -1
  166. package/driver/daffodil-external-router-driver.metadata.json +0 -1
  167. package/driver/in-memory/daffodil-external-router-driver-in-memory.metadata.json +0 -1
  168. package/driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.metadata.json +0 -1
  169. package/driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.metadata.json +0 -1
  170. package/driver/magento/daffodil-external-router-driver-magento.metadata.json +0 -1
  171. package/driver/testing/daffodil-external-router-driver-testing.metadata.json +0 -1
  172. package/esm2015/daffodil-external-router.js +0 -6
  173. package/esm2015/driver/in-memory/config.js +0 -17
  174. package/esm2015/driver/in-memory/in-memory.module.js +0 -36
  175. package/esm2015/driver/in-memory/in-memory.service.js +0 -36
  176. package/esm2015/driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.js +0 -6
  177. package/esm2015/driver/magento/2.4.1/magento.module.js +0 -50
  178. package/esm2015/driver/magento/2.4.1/magento.service.js +0 -40
  179. package/esm2015/driver/magento/2.4.1/transforms/resolution-to-resolvable-url.js +0 -13
  180. package/esm2015/driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.js +0 -6
  181. package/esm2015/driver/magento/2.4.2/magento.module.js +0 -50
  182. package/esm2015/driver/magento/2.4.2/magento.service.js +0 -39
  183. package/esm2015/driver/testing/daffodil-external-router-driver-testing.js +0 -6
  184. package/esm2015/driver/testing/testing.module.js +0 -33
  185. package/esm2015/driver/testing/testing.service.js +0 -45
  186. package/esm2015/external-router.module.js +0 -26
  187. package/esm2015/router/router.service.js +0 -44
  188. package/esm2015/router/strategies/insert-data-path.js +0 -83
  189. package/esm2015/router/url-matcher/data-path-matcher.js +0 -32
  190. package/esm2015/routing/guard/existence.guard.js +0 -78
  191. package/esm2015/transform/resolved-route-to-route.js +0 -17
  192. package/fesm2015/daffodil-external-router-driver-in-memory.js.map +0 -1
  193. package/fesm2015/daffodil-external-router-driver-magento-2.4.1.js.map +0 -1
  194. package/fesm2015/daffodil-external-router-driver-magento-2.4.2.js.map +0 -1
  195. package/fesm2015/daffodil-external-router-driver-magento.js.map +0 -1
  196. package/fesm2015/daffodil-external-router-driver-testing.js +0 -93
  197. package/fesm2015/daffodil-external-router-driver-testing.js.map +0 -1
  198. package/fesm2015/daffodil-external-router-driver.js.map +0 -1
  199. package/fesm2015/daffodil-external-router-routing.js.map +0 -1
  200. package/fesm2015/daffodil-external-router.js.map +0 -1
  201. package/routing/daffodil-external-router-routing.metadata.json +0 -1
@@ -0,0 +1,291 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { InjectionToken, NgModule, Injectable, Inject } from '@angular/core';
4
+ import * as i1 from '@angular/router';
5
+ import { DaffInheritableError } from '@daffodil/core';
6
+ import { daffUriTruncateLeadingSlash } from '@daffodil/core/routing';
7
+
8
+ const daffExternalRouterConfigurationDefault = {
9
+ failedResolutionPath: '/',
10
+ notFoundResolutionPath: '/',
11
+ };
12
+ /**
13
+ * The token holding the runtime configuration for the behavior of the
14
+ * `@daffodil/external-router` package.
15
+ */
16
+ const DAFF_EXTERNAL_ROUTER_CONFIG = new InjectionToken('DAFF_EXTERNAL_ROUTER_CONFIG', {
17
+ providedIn: 'root',
18
+ factory: () => daffExternalRouterConfigurationDefault,
19
+ });
20
+
21
+ /**
22
+ * A multi-token that allows you to register route "types" that correspond to routes.
23
+ */
24
+ const DAFF_EXTERNAL_ROUTER_ROUTES_RESOLVABLE_BY_TYPE = new InjectionToken('DAFF_EXTERNAL_ROUTER_RESOLVABLE_TYPE_ROUTES', {
25
+ providedIn: 'root',
26
+ factory: () => [],
27
+ });
28
+ /**
29
+ * A provider used to connect a type to a route to enable dynamic route resolution at runtime.
30
+ */
31
+ function daffProvideRouteResolvableByType(typeRoutePair) {
32
+ return {
33
+ provide: DAFF_EXTERNAL_ROUTER_ROUTES_RESOLVABLE_BY_TYPE,
34
+ multi: true,
35
+ useValue: typeRoutePair,
36
+ };
37
+ }
38
+ /**
39
+ * A multi-provider used to connect an array of types to their respective routes.
40
+ */
41
+ function daffProvideRoutesResolvableByType(routes) {
42
+ return routes.map((route) => ({
43
+ provide: DAFF_EXTERNAL_ROUTER_ROUTES_RESOLVABLE_BY_TYPE,
44
+ multi: true,
45
+ useValue: route,
46
+ }));
47
+ }
48
+
49
+ /**
50
+ * The external `DaffExternalRouterModule` allows you to configure the
51
+ * `@daffodil/external-router` package's behavior.
52
+ */
53
+ class DaffExternalRouterModule {
54
+ static forRoot(config, routes = []) {
55
+ return {
56
+ ngModule: DaffExternalRouterModule,
57
+ providers: [
58
+ { provide: DAFF_EXTERNAL_ROUTER_CONFIG, useValue: { ...daffExternalRouterConfigurationDefault, ...config } },
59
+ ...daffProvideRoutesResolvableByType(routes),
60
+ ],
61
+ };
62
+ }
63
+ }
64
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
65
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterModule, imports: [CommonModule] });
66
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterModule, imports: [[CommonModule]] });
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterModule, decorators: [{
68
+ type: NgModule,
69
+ args: [{
70
+ declarations: [],
71
+ imports: [CommonModule],
72
+ }]
73
+ }] });
74
+
75
+ /**
76
+ * An error thrown when there was no wildcard route found in configuration
77
+ * of the Angular Router.
78
+ */
79
+ class DaffExternalRouterNoWildcardError extends DaffInheritableError {
80
+ constructor(message) {
81
+ super(message);
82
+ this.code = 'NO_WILDCARD_ROUTE';
83
+ }
84
+ }
85
+
86
+ /**
87
+ * An error thrown when there is a failure matching a configured route to a
88
+ * route type.
89
+ */
90
+ class DaffExternalRouterUnknownRouteTypeError extends DaffInheritableError {
91
+ constructor(message) {
92
+ super(message);
93
+ this.code = 'UNKNOWN_ROUTE_TYPE';
94
+ }
95
+ }
96
+
97
+ /**
98
+ * Transforms a DaffExternallyResolvableUrl into an Angular Route.
99
+ */
100
+ const daffTransformResolvedRouteToRoute = (resolvedRoute, availableTypes) => {
101
+ const routeType = availableTypes
102
+ .filter(t => t.type === resolvedRoute.type)
103
+ .shift();
104
+ if (!routeType) {
105
+ throw new DaffExternalRouterUnknownRouteTypeError(`Unable to resolve the route '${resolvedRoute.url}'. Its type is '${resolvedRoute.type}' but a matching route wasn't found.`);
106
+ }
107
+ return {
108
+ route: {
109
+ path: resolvedRoute.url,
110
+ ...routeType.route,
111
+ data: {
112
+ daffExternalRouteType: resolvedRoute.type,
113
+ ...routeType.route.data,
114
+ },
115
+ },
116
+ insertionStrategy: routeType.insertionStrategy,
117
+ };
118
+ };
119
+
120
+ /**
121
+ * Inserts a Route into Routes right before the wildcard route.
122
+ * If no wildcard is found, it fails fast with a `DaffExternalRouterNoWildcardError`.
123
+ */
124
+ const daffInsertRouteBeforeWildCardStrategy = (route, routes) => {
125
+ const index = routes.findIndex((r) => r.path === '**');
126
+ if (index === -1) {
127
+ throw new DaffExternalRouterNoWildcardError('No wildcard (**) route was found during route resolution.');
128
+ }
129
+ return [
130
+ ...routes.slice(0, index),
131
+ route,
132
+ ...routes.slice(index),
133
+ ];
134
+ };
135
+
136
+ class DaffExternalRouter {
137
+ constructor(router, runtimeRoutes) {
138
+ this.router = router;
139
+ this.runtimeRoutes = runtimeRoutes;
140
+ }
141
+ /**
142
+ * Adds a route to the existing router configuration.
143
+ */
144
+ add(resolvedRoute) {
145
+ //Get the route.
146
+ const { route, insertionStrategy, } = daffTransformResolvedRouteToRoute(resolvedRoute, this.runtimeRoutes);
147
+ try {
148
+ //Add it to configuration.
149
+ this.router.config = (insertionStrategy || daffInsertRouteBeforeWildCardStrategy)(route, this.router.config);
150
+ }
151
+ catch (e) {
152
+ if (e instanceof DaffExternalRouterNoWildcardError) {
153
+ throw new DaffExternalRouterNoWildcardError(`${e.message} This usually means you have misconfigured your routes.`);
154
+ }
155
+ throw e;
156
+ }
157
+ }
158
+ }
159
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouter, deps: [{ token: i1.Router }, { token: DAFF_EXTERNAL_ROUTER_ROUTES_RESOLVABLE_BY_TYPE }], target: i0.ɵɵFactoryTarget.Injectable });
160
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouter, providedIn: 'root' });
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouter, decorators: [{
162
+ type: Injectable,
163
+ args: [{
164
+ providedIn: 'root',
165
+ }]
166
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: undefined, decorators: [{
167
+ type: Inject,
168
+ args: [DAFF_EXTERNAL_ROUTER_ROUTES_RESOLVABLE_BY_TYPE]
169
+ }] }]; } });
170
+
171
+ /**
172
+ * Tests whether or not a route matches a specific Daffodil Route type.
173
+ *
174
+ * See {@link DaffRouteWithDataPath}
175
+ */
176
+ const routeMatchesRouteType = (route, type) => route?.data?.daffExternalRouteType === type;
177
+ /**
178
+ * Adds a path to the `daffPaths` of the given route.
179
+ *
180
+ * See {@link DaffRouteWithDataPath}
181
+ */
182
+ const addRouteToDaffPaths = (route, path) => route.data.daffPaths = {
183
+ ...route.data.daffPaths,
184
+ [path]: path,
185
+ };
186
+ const operateOnRoute = (externalRoute) => (route) => addRouteToDaffPaths(route, externalRoute.path);
187
+ /**
188
+ * Traverse the router config tree, halting after the first match.
189
+ * This traversal is implemented in a pre-order manner. As such, for large
190
+ * configuration trees, it will be most efficient to place externally routed
191
+ * components at the top of router configuration.
192
+ */
193
+ const traverseRouteTree = (routes = [], matcher, operate) => {
194
+ if (routes.length === 0) {
195
+ return routes;
196
+ }
197
+ const stack = [];
198
+ const treeRoot = { children: routes };
199
+ stack.push(treeRoot);
200
+ while (stack.length) {
201
+ const route = stack.pop();
202
+ if (matcher(route)) {
203
+ operate(route);
204
+ break;
205
+ }
206
+ if (route.children) {
207
+ stack.push(...route.children.reverse());
208
+ }
209
+ }
210
+ return routes;
211
+ };
212
+ /**
213
+ * A route insertion strategy that can be used to append external routes onto
214
+ * existing Angular routes. This can be useful when you need to route to
215
+ * an existing lazy-loaded module from multiple externally defined urls.
216
+ *
217
+ * This should be used in combination with the {@link daffDataPathUrlMatcher} to match lazy-loaded modules with
218
+ * associated external urls.
219
+ *
220
+ * For example, you can provide the insertion strategy in the {@link DaffExternalRouterModule} as below.
221
+ *
222
+ * ```ts
223
+ * DaffExternalRouterModule.forRoot({}, [
224
+ * {
225
+ * type: 'CATEGORY',
226
+ * insertionStrategy: daffInsertDataPathStrategy,
227
+ * route: {}
228
+ * }
229
+ * ],
230
+ * ```
231
+ *
232
+ * Then, you can match it with an associated route defined in your Routing
233
+ * configuration with the {@link daffDataPathUrlMatcher}.
234
+ *
235
+ * ```ts
236
+ * export const routes: Routes = [
237
+ * {
238
+ * matcher: daffDataPathUrlMatcher,
239
+ * data: {
240
+ * daffExternalRouteType: "CATEGORY",
241
+ * },
242
+ * loadChildren: () => import('./category/category.module').then((m) => m.MyCategoryModule),
243
+ * }
244
+ * ]
245
+ * ```
246
+ *
247
+ * See {@link DaffRouteWithDataPath}
248
+ *
249
+ */
250
+ const daffInsertDataPathStrategy = (externalRoute, routes) => traverseRouteTree(routes, (route) => routeMatchesRouteType(route, externalRoute.data?.daffExternalRouteType), operateOnRoute(externalRoute));
251
+
252
+ /**
253
+ * A UrlMatcher that does an exact match against a path stored in the special
254
+ * configuration fields that External Router stores on a Route's data.
255
+ *
256
+ * ```ts
257
+ * export const routes: Routes = [
258
+ * {
259
+ * matcher: daffDataPathUrlMatcher,
260
+ * data: {
261
+ * daffExternalRouteType: "CATEGORY",
262
+ * },
263
+ * loadChildren: () => import('./category/category.module').then((m) => m.ShopCategoryModule),
264
+ * }
265
+ * ]
266
+ * ```
267
+ * {@link daffInsertDataPathStrategy }
268
+ * {@link DaffRouteWithDataPath }
269
+ */
270
+ const daffDataPathUrlMatcher = (segments, group, route) => {
271
+ const path = daffUriTruncateLeadingSlash(segments.reduce((acc, segment) => acc + '/' + segment.path, ''));
272
+ const paths = route?.data?.daffPaths;
273
+ // If we don't have any paths, we can safely fail a match.
274
+ if (!paths) {
275
+ return null;
276
+ }
277
+ // Otherwise, look up the path in the dictionary, failing if a match isn't found,
278
+ // but matching the entire segment if a match is found.
279
+ return path in paths ? { consumed: segments } : null;
280
+ };
281
+
282
+ /*
283
+ * Public API Surface of @daffodil/external-router
284
+ */
285
+
286
+ /**
287
+ * Generated bundle index. Do not edit.
288
+ */
289
+
290
+ export { DAFF_EXTERNAL_ROUTER_CONFIG, DaffExternalRouter, DaffExternalRouterModule, DaffExternalRouterNoWildcardError, DaffExternalRouterUnknownRouteTypeError, daffDataPathUrlMatcher, daffInsertDataPathStrategy, daffInsertRouteBeforeWildCardStrategy, daffProvideRouteResolvableByType };
291
+ //# sourceMappingURL=daffodil-external-router.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daffodil-external-router.mjs","sources":["../../../libs/external-router/src/config.ts","../../../libs/external-router/src/token/type-resolvable-routes.token.ts","../../../libs/external-router/src/external-router.module.ts","../../../libs/external-router/src/errors/no-wildcard.ts","../../../libs/external-router/src/errors/unknown-type.ts","../../../libs/external-router/src/transform/resolved-route-to-route.ts","../../../libs/external-router/src/router/strategies/insert-route-before-wildcard.ts","../../../libs/external-router/src/router/router.service.ts","../../../libs/external-router/src/router/strategies/insert-data-path.ts","../../../libs/external-router/src/router/url-matcher/data-path-matcher.ts","../../../libs/external-router/src/public_api.ts","../../../libs/external-router/src/daffodil-external-router.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const daffExternalRouterConfigurationDefault: DaffExternalRouterConfiguration = {\n failedResolutionPath: '/',\n notFoundResolutionPath: '/',\n};\n\n/**\n * The token holding the runtime configuration for the behavior of the\n * `@daffodil/external-router` package.\n */\nexport const DAFF_EXTERNAL_ROUTER_CONFIG = new InjectionToken<\n\tDaffExternalRouterConfiguration\n>('DAFF_EXTERNAL_ROUTER_CONFIG', {\n providedIn: 'root',\n factory: () => daffExternalRouterConfigurationDefault,\n});\n\n/**\n * The configuration object for the external router package.\n */\nexport interface DaffExternalRouterConfiguration {\n\t/**\n\t * The path to redirect to when external route resolution fails.\n\t */\n\tfailedResolutionPath: string;\n\n\t/**\n\t * The path to redirect to when the requested URL is not found.\n\t */\n\tnotFoundResolutionPath: string;\n}\n","import {\n InjectionToken,\n Provider,\n} from '@angular/core';\n\nimport { DaffExternalRouterInsertionStrategy } from '../model/insertion-strategy.type';\nimport { DaffExternalRouteType } from '../model/route-type';\nimport { DaffRouteWithoutPath } from '../model/route-without-path';\nimport { DaffTypeRoutePair } from '../model/type-route-pair';\n\n/**\n * A multi-token that allows you to register route \"types\" that correspond to routes.\n */\nexport const DAFF_EXTERNAL_ROUTER_ROUTES_RESOLVABLE_BY_TYPE = new InjectionToken<\n\tDaffTypeRoutePair[]\n>('DAFF_EXTERNAL_ROUTER_RESOLVABLE_TYPE_ROUTES', {\n providedIn: 'root',\n factory: () => [],\n});\n\n/**\n * A provider used to connect a type to a route to enable dynamic route resolution at runtime.\n */\nexport function daffProvideRouteResolvableByType(typeRoutePair: DaffTypeRoutePair): Provider {\n return {\n provide: DAFF_EXTERNAL_ROUTER_ROUTES_RESOLVABLE_BY_TYPE,\n multi: true,\n useValue: typeRoutePair,\n };\n}\n\n/**\n * A multi-provider used to connect an array of types to their respective routes.\n */\nexport function daffProvideRoutesResolvableByType(routes: DaffTypeRoutePair[]): Provider[] {\n return routes.map((route: DaffTypeRoutePair) => ({\n provide: DAFF_EXTERNAL_ROUTER_ROUTES_RESOLVABLE_BY_TYPE,\n multi: true,\n useValue: route,\n }));\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\n\nimport {\n DaffExternalRouterConfiguration,\n DAFF_EXTERNAL_ROUTER_CONFIG,\n daffExternalRouterConfigurationDefault,\n} from './config';\nimport { DaffTypeRoutePair } from './model/type-route-pair';\nimport { daffProvideRoutesResolvableByType } from './token/type-resolvable-routes.token';\n\n/**\n * The external `DaffExternalRouterModule` allows you to configure the\n * `@daffodil/external-router` package's behavior.\n */\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class DaffExternalRouterModule {\n static forRoot(\n config: Partial<DaffExternalRouterConfiguration>,\n routes: DaffTypeRoutePair[] = [],\n ): ModuleWithProviders<DaffExternalRouterModule> {\n return {\n ngModule: DaffExternalRouterModule,\n providers: [\n { provide: DAFF_EXTERNAL_ROUTER_CONFIG, useValue: { ...daffExternalRouterConfigurationDefault, ...config }},\n ...daffProvideRoutesResolvableByType(routes),\n ],\n };\n }\n}\n","import {\n DaffError,\n DaffInheritableError,\n} from '@daffodil/core';\n\n/**\n * An error thrown when there was no wildcard route found in configuration\n * of the Angular Router.\n */\nexport class DaffExternalRouterNoWildcardError extends DaffInheritableError\n implements DaffError {\n\tpublic readonly code: string = 'NO_WILDCARD_ROUTE';\n\n\tconstructor(message?: string) {\n\t super(message);\n\t}\n}\n","import {\n DaffError,\n DaffInheritableError,\n} from '@daffodil/core';\n\n/**\n * An error thrown when there is a failure matching a configured route to a\n * route type.\n */\nexport class DaffExternalRouterUnknownRouteTypeError extends DaffInheritableError\n implements DaffError {\n\tpublic readonly code: string = 'UNKNOWN_ROUTE_TYPE';\n\n\tconstructor(message?: string) {\n\t super(message);\n\t}\n}\n","import { DaffExternalRouterUnknownRouteTypeError } from '../errors/unknown-type';\nimport { DaffExternallyResolvableUrl } from '../model/resolvable-route';\nimport { DaffRouteInfo } from '../model/route-info';\nimport { DaffTypeRoutePair } from '../model/type-route-pair';\n\n/**\n * Transforms a DaffExternallyResolvableUrl into an Angular Route.\n */\nexport const daffTransformResolvedRouteToRoute = (\n resolvedRoute: DaffExternallyResolvableUrl,\n availableTypes: DaffTypeRoutePair[],\n): DaffRouteInfo => {\n const routeType = availableTypes\n .filter(t => t.type === resolvedRoute.type)\n .shift();\n if (!routeType) {\n throw new DaffExternalRouterUnknownRouteTypeError(\n `Unable to resolve the route '${resolvedRoute.url}'. Its type is '${resolvedRoute.type}' but a matching route wasn't found.`,\n );\n }\n\n return {\n route: {\n path: resolvedRoute.url,\n ...routeType.route,\n data: {\n daffExternalRouteType: resolvedRoute.type,\n ...routeType.route.data,\n },\n },\n insertionStrategy: routeType.insertionStrategy,\n };\n};\n","import {\n Route,\n Routes,\n} from '@angular/router';\n\nimport { DaffExternalRouterNoWildcardError } from '../../errors/no-wildcard';\nimport { DaffExternalRouterInsertionStrategy } from '../../model/insertion-strategy.type';\n\n/**\n * Inserts a Route into Routes right before the wildcard route.\n * If no wildcard is found, it fails fast with a `DaffExternalRouterNoWildcardError`.\n */\nexport const daffInsertRouteBeforeWildCardStrategy: DaffExternalRouterInsertionStrategy = (\n route: Route,\n routes: Routes,\n): Routes => {\n const index = routes.findIndex((r: Route) => r.path === '**');\n if (index === -1) {\n throw new DaffExternalRouterNoWildcardError(\n 'No wildcard (**) route was found during route resolution.',\n );\n }\n return [\n ...routes.slice(0, index),\n route,\n ...routes.slice(index),\n ];\n};\n","import {\n Inject,\n Injectable,\n} from '@angular/core';\nimport {\n Router,\n Route,\n} from '@angular/router';\n\n\nimport { DaffExternalRouterNoWildcardError } from '../errors/no-wildcard';\nimport { DaffExternallyResolvableUrl } from '../model/resolvable-route';\nimport { DaffTypeRoutePair } from '../model/type-route-pair';\nimport { DAFF_EXTERNAL_ROUTER_ROUTES_RESOLVABLE_BY_TYPE } from '../token/type-resolvable-routes.token';\nimport { daffTransformResolvedRouteToRoute } from '../transform/resolved-route-to-route';\nimport { daffInsertRouteBeforeWildCardStrategy } from './strategies/insert-route-before-wildcard';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffExternalRouter {\n constructor(\n private router: Router,\n @Inject(DAFF_EXTERNAL_ROUTER_ROUTES_RESOLVABLE_BY_TYPE)\n private runtimeRoutes: DaffTypeRoutePair[],\n ) { }\n\n /**\n * Adds a route to the existing router configuration.\n */\n add(resolvedRoute: DaffExternallyResolvableUrl) {\n //Get the route.\n const {\n route,\n insertionStrategy,\n } = daffTransformResolvedRouteToRoute(\n resolvedRoute,\n this.runtimeRoutes,\n );\n\n try {\n //Add it to configuration.\n this.router.config = (insertionStrategy || daffInsertRouteBeforeWildCardStrategy)(route, this.router.config);\n } catch (e) {\n if (e instanceof DaffExternalRouterNoWildcardError) {\n throw new DaffExternalRouterNoWildcardError(\n `${e.message} This usually means you have misconfigured your routes.`,\n );\n }\n\n throw e;\n }\n }\n}\n","import {\n Route,\n Routes,\n} from '@angular/router';\n\nimport { DaffExternalRouterInsertionStrategy } from '../../model/insertion-strategy.type';\nimport { DaffExternalRouteType } from '../../model/route-type';\nimport { DaffRouteWithDataPath } from '../../model/route-with-data-path';\n\n/**\n * Tests whether or not a route matches a specific Daffodil Route type.\n *\n * See {@link DaffRouteWithDataPath}\n */\nconst routeMatchesRouteType = (route: DaffRouteWithDataPath, type: DaffExternalRouteType): boolean => route?.data?.daffExternalRouteType === type;\n\n/**\n * Adds a path to the `daffPaths` of the given route.\n *\n * See {@link DaffRouteWithDataPath}\n */\nconst addRouteToDaffPaths:\n (route: DaffRouteWithDataPath, path: string) => Route =\n (route: DaffRouteWithDataPath, path: string) => route.data.daffPaths = {\n ...route.data.daffPaths,\n [path]: path,\n };\n\nconst operateOnRoute = (externalRoute: Route): (route: Route) => Route =>\n (route: DaffRouteWithDataPath) => addRouteToDaffPaths(route, externalRoute.path);\n\n/**\n * Traverse the router config tree, halting after the first match.\n * This traversal is implemented in a pre-order manner. As such, for large\n * configuration trees, it will be most efficient to place externally routed\n * components at the top of router configuration.\n */\nconst traverseRouteTree = (routes: Routes = [], matcher: (route: Route) => boolean, operate: (route: Route) => void): Routes => {\n if(routes.length === 0) {\n return routes;\n }\n\n const stack: Routes = [];\n const treeRoot = { children: routes };\n stack.push(treeRoot);\n\n while(stack.length) {\n const route = stack.pop();\n if(matcher(route)) {\n operate(route);\n break;\n }\n if(route.children){\n stack.push(...route.children.reverse());\n }\n }\n return routes;\n};\n\n/**\n * A route insertion strategy that can be used to append external routes onto\n * existing Angular routes. This can be useful when you need to route to\n * an existing lazy-loaded module from multiple externally defined urls.\n *\n * This should be used in combination with the {@link daffDataPathUrlMatcher} to match lazy-loaded modules with\n * associated external urls.\n *\n * For example, you can provide the insertion strategy in the {@link DaffExternalRouterModule} as below.\n *\n * ```ts\n * DaffExternalRouterModule.forRoot({}, [\n * {\n * type: 'CATEGORY',\n * insertionStrategy: daffInsertDataPathStrategy,\n * route: {}\n * }\n * ],\n * ```\n *\n * Then, you can match it with an associated route defined in your Routing\n * configuration with the {@link daffDataPathUrlMatcher}.\n *\n * ```ts\n * export const routes: Routes = [\n * {\n * matcher: daffDataPathUrlMatcher,\n * data: {\n * daffExternalRouteType: \"CATEGORY\",\n * },\n * loadChildren: () => import('./category/category.module').then((m) => m.MyCategoryModule),\n * }\n * ]\n * ```\n *\n * See {@link DaffRouteWithDataPath}\n *\n */\nexport const daffInsertDataPathStrategy: DaffExternalRouterInsertionStrategy = (externalRoute: DaffRouteWithDataPath, routes: Routes) => traverseRouteTree(\n routes,\n (route) => routeMatchesRouteType(route, externalRoute.data?.daffExternalRouteType),\n operateOnRoute(externalRoute),\n);\n","import {\n UrlMatcher,\n UrlSegment,\n UrlSegmentGroup,\n} from '@angular/router';\n\nimport { daffUriTruncateLeadingSlash } from '@daffodil/core/routing';\n\nimport { DaffRouteWithDataPath } from '../../model/public_api';\n\n/**\n * A UrlMatcher that does an exact match against a path stored in the special\n * configuration fields that External Router stores on a Route's data.\n *\n * ```ts\n * export const routes: Routes = [\n * {\n * matcher: daffDataPathUrlMatcher,\n * data: {\n * daffExternalRouteType: \"CATEGORY\",\n * },\n * loadChildren: () => import('./category/category.module').then((m) => m.ShopCategoryModule),\n * }\n * ]\n * ```\n * {@link daffInsertDataPathStrategy }\n * {@link DaffRouteWithDataPath }\n */\nexport const daffDataPathUrlMatcher: UrlMatcher = (segments: UrlSegment[], group: UrlSegmentGroup, route: DaffRouteWithDataPath) => {\n const path = daffUriTruncateLeadingSlash(segments.reduce((acc: string, segment) => acc + '/' + segment.path, ''));\n const paths = route?.data?.daffPaths;\n\n // If we don't have any paths, we can safely fail a match.\n if(!paths) {\n return null;\n }\n\n // Otherwise, look up the path in the dictionary, failing if a match isn't found,\n // but matching the entire segment if a match is found.\n return path in paths ? { consumed: segments } : null;\n};\n\n","/*\n * Public API Surface of @daffodil/external-router\n */\n\nexport { DaffExternalRouterModule } from './external-router.module';\n\nexport {\n DAFF_EXTERNAL_ROUTER_CONFIG,\n DaffExternalRouterConfiguration,\n} from './config';\n\nexport { daffProvideRouteResolvableByType } from './token/type-resolvable-routes.token';\n\nexport * from './model/public_api';\n\nexport { DaffExternalRouter } from './router/router.service';\nexport { daffInsertRouteBeforeWildCardStrategy } from './router/strategies/insert-route-before-wildcard';\n\nexport { daffInsertDataPathStrategy } from './router/strategies/insert-data-path';\nexport { daffDataPathUrlMatcher } from './router/url-matcher/data-path-matcher';\n\nexport { DaffExternalRouterNoWildcardError } from './errors/no-wildcard';\nexport { DaffExternalRouterUnknownRouteTypeError } from './errors/unknown-type';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daffodil/external-router",
3
- "version": "0.39.13",
3
+ "version": "0.40.1",
4
4
  "description": "A platform-agnostic package that connects the @angular/router with an external routing service (e.g. an API), allowing for runtime route resolution.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,25 +13,93 @@
13
13
  },
14
14
  "homepage": "https://github.com/graycoreio/daffodil",
15
15
  "peerDependencies": {
16
- "@angular/common": "^11.0.0",
17
- "@angular/core": "^11.0.0",
18
- "@angular/router": "^11.0.0",
19
- "@daffodil/core": "0.39.13",
16
+ "@angular/common": "^13.0.0",
17
+ "@angular/core": "^13.0.0",
18
+ "@angular/router": "^13.0.0",
19
+ "@daffodil/core": "0.40.1",
20
20
  "rxjs": "6.6.3"
21
21
  },
22
22
  "optionalDependencies": {
23
- "apollo-angular": "^2.4.0",
24
- "@daffodil/driver": "0.39.13"
23
+ "@damienwebdev/apollo-angular": "^3.0.1-alpha.1",
24
+ "@daffodil/driver": "0.40.1"
25
25
  },
26
- "main": "bundles/daffodil-external-router.umd.js",
27
- "module": "fesm2015/daffodil-external-router.js",
28
- "es2015": "fesm2015/daffodil-external-router.js",
29
- "esm2015": "esm2015/daffodil-external-router.js",
30
- "fesm2015": "fesm2015/daffodil-external-router.js",
26
+ "module": "fesm2015/daffodil-external-router.mjs",
27
+ "es2020": "fesm2020/daffodil-external-router.mjs",
28
+ "esm2020": "esm2020/daffodil-external-router.mjs",
29
+ "fesm2020": "fesm2020/daffodil-external-router.mjs",
30
+ "fesm2015": "fesm2015/daffodil-external-router.mjs",
31
31
  "typings": "daffodil-external-router.d.ts",
32
- "metadata": "daffodil-external-router.metadata.json",
32
+ "exports": {
33
+ "./package.json": {
34
+ "default": "./package.json"
35
+ },
36
+ ".": {
37
+ "types": "./daffodil-external-router.d.ts",
38
+ "esm2020": "./esm2020/daffodil-external-router.mjs",
39
+ "es2020": "./fesm2020/daffodil-external-router.mjs",
40
+ "es2015": "./fesm2015/daffodil-external-router.mjs",
41
+ "node": "./fesm2015/daffodil-external-router.mjs",
42
+ "default": "./fesm2020/daffodil-external-router.mjs"
43
+ },
44
+ "./driver/in-memory": {
45
+ "types": "./driver/in-memory/daffodil-external-router-driver-in-memory.d.ts",
46
+ "esm2020": "./esm2020/driver/in-memory/daffodil-external-router-driver-in-memory.mjs",
47
+ "es2020": "./fesm2020/daffodil-external-router-driver-in-memory.mjs",
48
+ "es2015": "./fesm2015/daffodil-external-router-driver-in-memory.mjs",
49
+ "node": "./fesm2015/daffodil-external-router-driver-in-memory.mjs",
50
+ "default": "./fesm2020/daffodil-external-router-driver-in-memory.mjs"
51
+ },
52
+ "./driver/magento/2.4.1": {
53
+ "types": "./driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.d.ts",
54
+ "esm2020": "./esm2020/driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.mjs",
55
+ "es2020": "./fesm2020/daffodil-external-router-driver-magento-2.4.1.mjs",
56
+ "es2015": "./fesm2015/daffodil-external-router-driver-magento-2.4.1.mjs",
57
+ "node": "./fesm2015/daffodil-external-router-driver-magento-2.4.1.mjs",
58
+ "default": "./fesm2020/daffodil-external-router-driver-magento-2.4.1.mjs"
59
+ },
60
+ "./driver/magento/2.4.2": {
61
+ "types": "./driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.d.ts",
62
+ "esm2020": "./esm2020/driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.mjs",
63
+ "es2020": "./fesm2020/daffodil-external-router-driver-magento-2.4.2.mjs",
64
+ "es2015": "./fesm2015/daffodil-external-router-driver-magento-2.4.2.mjs",
65
+ "node": "./fesm2015/daffodil-external-router-driver-magento-2.4.2.mjs",
66
+ "default": "./fesm2020/daffodil-external-router-driver-magento-2.4.2.mjs"
67
+ },
68
+ "./driver/magento": {
69
+ "types": "./driver/magento/daffodil-external-router-driver-magento.d.ts",
70
+ "esm2020": "./esm2020/driver/magento/daffodil-external-router-driver-magento.mjs",
71
+ "es2020": "./fesm2020/daffodil-external-router-driver-magento.mjs",
72
+ "es2015": "./fesm2015/daffodil-external-router-driver-magento.mjs",
73
+ "node": "./fesm2015/daffodil-external-router-driver-magento.mjs",
74
+ "default": "./fesm2020/daffodil-external-router-driver-magento.mjs"
75
+ },
76
+ "./driver": {
77
+ "types": "./driver/daffodil-external-router-driver.d.ts",
78
+ "esm2020": "./esm2020/driver/daffodil-external-router-driver.mjs",
79
+ "es2020": "./fesm2020/daffodil-external-router-driver.mjs",
80
+ "es2015": "./fesm2015/daffodil-external-router-driver.mjs",
81
+ "node": "./fesm2015/daffodil-external-router-driver.mjs",
82
+ "default": "./fesm2020/daffodil-external-router-driver.mjs"
83
+ },
84
+ "./driver/testing": {
85
+ "types": "./driver/testing/daffodil-external-router-driver-testing.d.ts",
86
+ "esm2020": "./esm2020/driver/testing/daffodil-external-router-driver-testing.mjs",
87
+ "es2020": "./fesm2020/daffodil-external-router-driver-testing.mjs",
88
+ "es2015": "./fesm2015/daffodil-external-router-driver-testing.mjs",
89
+ "node": "./fesm2015/daffodil-external-router-driver-testing.mjs",
90
+ "default": "./fesm2020/daffodil-external-router-driver-testing.mjs"
91
+ },
92
+ "./routing": {
93
+ "types": "./routing/daffodil-external-router-routing.d.ts",
94
+ "esm2020": "./esm2020/routing/daffodil-external-router-routing.mjs",
95
+ "es2020": "./fesm2020/daffodil-external-router-routing.mjs",
96
+ "es2015": "./fesm2015/daffodil-external-router-routing.mjs",
97
+ "node": "./fesm2015/daffodil-external-router-routing.mjs",
98
+ "default": "./fesm2020/daffodil-external-router-routing.mjs"
99
+ }
100
+ },
33
101
  "sideEffects": false,
34
102
  "dependencies": {
35
- "tslib": "^2.0.0"
103
+ "tslib": "^2.3.0"
36
104
  }
37
105
  }
@@ -1,6 +1,7 @@
1
1
  import { Router } from '@angular/router';
2
2
  import { DaffExternallyResolvableUrl } from '../model/resolvable-route';
3
3
  import { DaffTypeRoutePair } from '../model/type-route-pair';
4
+ import * as i0 from "@angular/core";
4
5
  export declare class DaffExternalRouter {
5
6
  private router;
6
7
  private runtimeRoutes;
@@ -9,4 +10,6 @@ export declare class DaffExternalRouter {
9
10
  * Adds a route to the existing router configuration.
10
11
  */
11
12
  add(resolvedRoute: DaffExternallyResolvableUrl): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<DaffExternalRouter, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<DaffExternalRouter>;
12
15
  }
@@ -1,4 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
+ /// <amd-module name="@daffodil/external-router/routing" />
4
5
  export * from './index';
@@ -3,6 +3,7 @@ import { Observable } from 'rxjs';
3
3
  import { DaffRoutingUriNormalizer } from '@daffodil/core/routing';
4
4
  import { DaffExternalRouter, DaffExternalRouterConfiguration } from '@daffodil/external-router';
5
5
  import { DaffExternalRouterDriverInterface } from '@daffodil/external-router/driver';
6
+ import * as i0 from "@angular/core";
6
7
  /**
7
8
  * The DaffExternalRouterExistenceGuard is responsible for guarding the wildcard route
8
9
  * of an Angular App and either navigating to a resolved route upon successful resolution
@@ -16,4 +17,6 @@ export declare class DaffExternalRouterExistenceGuard implements CanActivate {
16
17
  private urlNormalizer;
17
18
  constructor(driver: DaffExternalRouterDriverInterface, externalRouter: DaffExternalRouter, router: Router, config: DaffExternalRouterConfiguration, urlNormalizer: DaffRoutingUriNormalizer);
18
19
  canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<UrlTree | boolean>;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<DaffExternalRouterExistenceGuard, never>;
21
+ static ɵprov: i0.ɵɵInjectableDeclaration<DaffExternalRouterExistenceGuard>;
19
22
  }
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "name": "@daffodil/external-router/routing",
3
- "main": "../bundles/daffodil-external-router-routing.umd.js",
4
- "module": "../fesm2015/daffodil-external-router-routing.js",
5
- "es2015": "../fesm2015/daffodil-external-router-routing.js",
6
- "esm2015": "../esm2015/routing/daffodil-external-router-routing.js",
7
- "fesm2015": "../fesm2015/daffodil-external-router-routing.js",
3
+ "module": "../fesm2015/daffodil-external-router-routing.mjs",
4
+ "es2020": "../fesm2020/daffodil-external-router-routing.mjs",
5
+ "esm2020": "../esm2020/routing/daffodil-external-router-routing.mjs",
6
+ "fesm2020": "../fesm2020/daffodil-external-router-routing.mjs",
7
+ "fesm2015": "../fesm2015/daffodil-external-router-routing.mjs",
8
8
  "typings": "daffodil-external-router-routing.d.ts",
9
- "metadata": "daffodil-external-router-routing.metadata.json",
10
9
  "sideEffects": false
11
10
  }
@@ -1,100 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs'), require('@daffodil/core/routing'), require('@daffodil/external-router/driver'), require('@angular/common')) :
3
- typeof define === 'function' && define.amd ? define('@daffodil/external-router/driver/in-memory', ['exports', '@angular/core', 'rxjs', '@daffodil/core/routing', '@daffodil/external-router/driver', '@angular/common'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.daffodil = global.daffodil || {}, global.daffodil['external-router'] = global.daffodil['external-router'] || {}, global.daffodil['external-router'].driver = global.daffodil['external-router'].driver || {}, global.daffodil['external-router'].driver['in-memory'] = {}), global.ng.core, global.rxjs, global.routing, global.daffodil['external-router'].driver, global.ng.common));
5
- }(this, (function (exports, i0, rxjs, routing, driver, common) { 'use strict';
6
-
7
- var ɵ0 = function () { return driver.DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION; };
8
- var defaultConfig = {
9
- resolver: ɵ0,
10
- };
11
- /**
12
- * The token used by Daffodil to hold the driver's configuration.
13
- *
14
- * @docs-private
15
- */
16
- var DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG = new i0.InjectionToken('DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG', {
17
- providedIn: 'root',
18
- factory: function () { return defaultConfig; },
19
- });
20
-
21
- /**
22
- * The DaffExternalRouterInMemoryDriver is responsible for resolving
23
- * a URL using the resolver in the provided configuration.
24
- *
25
- * @inheritdoc
26
- *
27
- * @see {@link DaffExternalRouterInMemoryDriver}
28
- */
29
- var DaffExternalRouterInMemoryDriver = /** @class */ (function () {
30
- function DaffExternalRouterInMemoryDriver(configuration) {
31
- this.configuration = configuration;
32
- }
33
- DaffExternalRouterInMemoryDriver.prototype.resolve = function (url) {
34
- var truncatedUrl = routing.daffUriTruncateQueryFragment(url);
35
- var resolvedUrl = this.configuration.resolver(truncatedUrl);
36
- return rxjs.of((resolvedUrl === null || resolvedUrl === void 0 ? void 0 : resolvedUrl.url) ? Object.assign(Object.assign({}, resolvedUrl), { url: routing.daffUriTruncateLeadingSlash(resolvedUrl.url) }) : driver.DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);
37
- };
38
- return DaffExternalRouterInMemoryDriver;
39
- }());
40
- /** @nocollapse */ DaffExternalRouterInMemoryDriver.ɵprov = i0.ɵɵdefineInjectable({ factory: function DaffExternalRouterInMemoryDriver_Factory() { return new DaffExternalRouterInMemoryDriver(i0.ɵɵinject(DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG)); }, token: DaffExternalRouterInMemoryDriver, providedIn: "root" });
41
- DaffExternalRouterInMemoryDriver.decorators = [
42
- { type: i0.Injectable, args: [{
43
- providedIn: 'root',
44
- },] }
45
- ];
46
- /** @nocollapse */
47
- DaffExternalRouterInMemoryDriver.ctorParameters = function () { return [
48
- { type: undefined, decorators: [{ type: i0.Inject, args: [DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG,] }] }
49
- ]; };
50
-
51
- /**
52
- * The `DaffExternalRouterDriverInMemoryModule` is an importable NgModule that can
53
- * be used to configure the {@link DaffExternalRouterInMemoryDriver}.
54
- */
55
- var DaffExternalRouterDriverInMemoryModule = /** @class */ (function () {
56
- function DaffExternalRouterDriverInMemoryModule() {
57
- }
58
- DaffExternalRouterDriverInMemoryModule.forRoot = function (config) {
59
- return {
60
- ngModule: DaffExternalRouterDriverInMemoryModule,
61
- providers: [
62
- {
63
- provide: driver.DaffExternalRouterDriver,
64
- useExisting: DaffExternalRouterInMemoryDriver,
65
- },
66
- {
67
- provide: DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG,
68
- // eslint-disable-next-line prefer-arrow/prefer-arrow-functions
69
- useFactory: function () {
70
- return config instanceof i0.InjectionToken ? i0.inject(config) : config;
71
- },
72
- },
73
- ],
74
- };
75
- };
76
- return DaffExternalRouterDriverInMemoryModule;
77
- }());
78
- DaffExternalRouterDriverInMemoryModule.decorators = [
79
- { type: i0.NgModule, args: [{
80
- declarations: [],
81
- imports: [common.CommonModule],
82
- },] }
83
- ];
84
-
85
- /*
86
- * Public API Surface of @daffodil/external-router/driver/in-memory
87
- */
88
-
89
- /**
90
- * Generated bundle index. Do not edit.
91
- */
92
-
93
- exports.DaffExternalRouterDriverInMemoryModule = DaffExternalRouterDriverInMemoryModule;
94
- exports.DaffExternalRouterInMemoryDriver = DaffExternalRouterInMemoryDriver;
95
- exports.ɵa = DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG;
96
-
97
- Object.defineProperty(exports, '__esModule', { value: true });
98
-
99
- })));
100
- //# sourceMappingURL=daffodil-external-router-driver-in-memory.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daffodil-external-router-driver-in-memory.umd.js","sources":["../../../libs/external-router/driver/in-memory/src/config.ts","../../../libs/external-router/driver/in-memory/src/in-memory.service.ts","../../../libs/external-router/driver/in-memory/src/in-memory.module.ts","../../../libs/external-router/driver/in-memory/src/public_api.ts","../../../libs/external-router/driver/in-memory/src/daffodil-external-router-driver-in-memory.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION } from '@daffodil/external-router/driver';\n\n/**\n * A lookup for a URL.\n * Returns an {@link DaffExternallyResolvableUrl} or\n * {@link DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION} if the URL cannot be resolved\n */\nexport type DaffExternalRouterDriverInMemoryResolver = (url: string) => DaffExternallyResolvableUrl;\n\n/**\n * The configuration for the in-memory driver.\n */\nexport interface DaffExternalRouterDriverInMemoryConfig {\n\tresolver: DaffExternalRouterDriverInMemoryResolver;\n}\n\nconst defaultConfig: DaffExternalRouterDriverInMemoryConfig = {\n resolver: () => DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION,\n};\n\n/**\n * The token used by Daffodil to hold the driver's configuration.\n *\n * @docs-private\n */\nexport const DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG = new InjectionToken<\n\tDaffExternalRouterDriverInMemoryConfig\n>('DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG', {\n providedIn: 'root',\n factory: () => defaultConfig,\n});\n","import {\n Injectable,\n Inject,\n} from '@angular/core';\nimport {\n Observable,\n of,\n} from 'rxjs';\n\nimport {\n daffUriTruncateLeadingSlash,\n daffUriTruncateQueryFragment,\n} from '@daffodil/core/routing';\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport {\n DaffExternalRouterDriverInterface,\n DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION,\n} from '@daffodil/external-router/driver';\n\nimport {\n DaffExternalRouterDriverInMemoryConfig,\n DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG,\n} from './config';\n\n/**\n * The DaffExternalRouterInMemoryDriver is responsible for resolving\n * a URL using the resolver in the provided configuration.\n *\n * @inheritdoc\n *\n * @see {@link DaffExternalRouterInMemoryDriver}\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffExternalRouterInMemoryDriver\nimplements DaffExternalRouterDriverInterface {\n constructor(\n\t\t@Inject(DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG)\n\t\tprivate configuration: DaffExternalRouterDriverInMemoryConfig,\n ) {}\n\n resolve(url: string): Observable<DaffExternallyResolvableUrl> {\n const truncatedUrl = daffUriTruncateQueryFragment(url);\n const resolvedUrl = this.configuration.resolver(truncatedUrl);\n\n return of(resolvedUrl?.url ? {\n ...resolvedUrl,\n url: daffUriTruncateLeadingSlash(resolvedUrl.url),\n } : DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n InjectionToken,\n inject,\n} from '@angular/core';\n\nimport { DaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport {\n DaffExternalRouterDriverInMemoryConfig,\n DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG,\n} from './config';\nimport { DaffExternalRouterInMemoryDriver } from './in-memory.service';\n\n/**\n * The `DaffExternalRouterDriverInMemoryModule` is an importable NgModule that can\n * be used to configure the {@link DaffExternalRouterInMemoryDriver}.\n */\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class DaffExternalRouterDriverInMemoryModule {\n static forRoot(\n config: DaffExternalRouterDriverInMemoryConfig | InjectionToken<DaffExternalRouterDriverInMemoryConfig>,\n ): ModuleWithProviders<DaffExternalRouterDriverInMemoryModule> {\n return {\n ngModule: DaffExternalRouterDriverInMemoryModule,\n providers: [\n {\n provide: DaffExternalRouterDriver,\n useExisting: DaffExternalRouterInMemoryDriver,\n },\n {\n provide: DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG,\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n useFactory() {\n return config instanceof InjectionToken ? inject(config) : config;\n },\n },\n ],\n };\n }\n}\n","/*\n * Public API Surface of @daffodil/external-router/driver/in-memory\n */\n\nexport { DaffExternalRouterInMemoryDriver } from './in-memory.service';\nexport { DaffExternalRouterDriverInMemoryModule } from './in-memory.module';\n\nexport {\n DaffExternalRouterDriverInMemoryConfig,\n DaffExternalRouterDriverInMemoryResolver,\n} from './config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG as ɵa} from './config';"],"names":["DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION","InjectionToken","daffUriTruncateQueryFragment","of","daffUriTruncateLeadingSlash","Injectable","Inject","DaffExternalRouterDriver","inject","NgModule","CommonModule"],"mappings":";;;;;;aAoBY,cAAM,OAAAA,gDAAyC,GAAA;IAD3D,IAAM,aAAa,GAA2C;QAC5D,QAAQ,IAAiD;KAC1D,CAAC;IAEF;;;;;QAKa,4CAA4C,GAAG,IAAIC,iBAAc,CAE5E,8CAA8C,EAAE;QAChD,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,cAAM,OAAA,aAAa,GAAA;KAC7B;;ICTD;;;;;;;;;QAaE,0CAEQ,aAAqD;YAArD,kBAAa,GAAb,aAAa,CAAwC;SACzD;QAEJ,kDAAO,GAAP,UAAQ,GAAW;YACjB,IAAM,YAAY,GAAGC,oCAA4B,CAAC,GAAG,CAAC,CAAC;YACvD,IAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAE9D,OAAOC,OAAE,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,oCACrB,WAAW,KACd,GAAG,EAAEC,mCAA2B,CAAC,WAAW,CAAC,GAAG,CAAC,MAC/CJ,gDAAyC,CAAC,CAAC;SAChD;;;;;gBAlBFK,aAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;;gDAIEC,SAAM,SAAC,4CAA4C;;;ICtBtD;;;;;QAQA;;QACS,8CAAO,GAAd,UACE,MAAuG;YAEvG,OAAO;gBACL,QAAQ,EAAE,sCAAsC;gBAChD,SAAS,EAAE;oBACT;wBACE,OAAO,EAAEC,+BAAwB;wBACjC,WAAW,EAAE,gCAAgC;qBAC9C;oBACD;wBACE,OAAO,EAAE,4CAA4C;;wBAErD,UAAU;4BACR,OAAO,MAAM,YAAYN,iBAAc,GAAGO,SAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;yBACnE;qBACF;iBACF;aACF,CAAC;SACH;;;;gBAxBFC,WAAQ,SAAC;oBACR,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,CAACC,mBAAY,CAAC;iBACxB;;;ICvBD;;;;ICAA;;;;;;;;;;;;;;"}
@@ -1,2 +0,0 @@
1
- !function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("rxjs"),require("@daffodil/core/routing"),require("@daffodil/external-router/driver"),require("@angular/common")):"function"==typeof define&&define.amd?define("@daffodil/external-router/driver/in-memory",["exports","@angular/core","rxjs","@daffodil/core/routing","@daffodil/external-router/driver","@angular/common"],e):e(((r="undefined"!=typeof globalThis?globalThis:r||self).daffodil=r.daffodil||{},r.daffodil["external-router"]=r.daffodil["external-router"]||{},r.daffodil["external-router"].driver=r.daffodil["external-router"].driver||{},r.daffodil["external-router"].driver["in-memory"]={}),r.ng.core,r.rxjs,r.routing,r.daffodil["external-router"].driver,r.ng.common)}(this,(function(r,e,o,n,t,i){"use strict";var a={resolver:function(){return t.DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION}},f=new e.InjectionToken("DAFF_EXTERNAL_ROUTER_DRIVER_IN_MEMORY_CONFIG",{providedIn:"root",factory:function(){return a}}),u=function(){function r(r){this.configuration=r}return r.prototype.resolve=function(r){var e=n.daffUriTruncateQueryFragment(r),i=this.configuration.resolver(e);return o.of((null==i?void 0:i.url)?Object.assign(Object.assign({},i),{url:n.daffUriTruncateLeadingSlash(i.url)}):t.DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION)},r}();u.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new u(e.ɵɵinject(f))},token:u,providedIn:"root"}),u.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],u.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[f]}]}]};var d=function(){function r(){}return r.forRoot=function(o){return{ngModule:r,providers:[{provide:t.DaffExternalRouterDriver,useExisting:u},{provide:f,useFactory:function(){return o instanceof e.InjectionToken?e.inject(o):o}}]}},r}();d.decorators=[{type:e.NgModule,args:[{declarations:[],imports:[i.CommonModule]}]}],r.DaffExternalRouterDriverInMemoryModule=d,r.DaffExternalRouterInMemoryDriver=u,r.ɵa=f,Object.defineProperty(r,"__esModule",{value:!0})}));
2
- //# sourceMappingURL=daffodil-external-router-driver-in-memory.umd.min.js.map