@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,10 @@
1
+ import { daffUriTruncateLeadingSlash, daffUriTruncateQueryFragment, } from '@daffodil/core/routing';
2
+ import { DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION } from '@daffodil/external-router/driver';
3
+ import { magentoTransformRedirectToHttpCode, } from '@daffodil/external-router/driver/magento';
4
+ export const transformResolutionToResolvableUrlv241 = (resolution) => (resolution ? {
5
+ id: resolution.id?.toString(),
6
+ url: daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(resolution.relative_url)),
7
+ type: resolution.type,
8
+ code: magentoTransformRedirectToHttpCode(resolution.redirectCode),
9
+ } : DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x1dGlvbi10by1yZXNvbHZhYmxlLXVybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZXh0ZXJuYWwtcm91dGVyL2RyaXZlci9tYWdlbnRvLzIuNC4xL3NyYy90cmFuc2Zvcm1zL3Jlc29sdXRpb24tdG8tcmVzb2x2YWJsZS11cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiw0QkFBNEIsR0FDN0IsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RixPQUFPLEVBRUwsa0NBQWtDLEdBQ25DLE1BQU0sMENBQTBDLENBQUM7QUFFbEQsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQUcsQ0FDcEQsVUFBOEIsRUFDRCxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzlDLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRTtJQUM3QixHQUFHLEVBQUUsMkJBQTJCLENBQUMsNEJBQTRCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZGLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtJQUNyQixJQUFJLEVBQUUsa0NBQWtDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztDQUNsRSxDQUFDLENBQUMsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZGFmZlVyaVRydW5jYXRlTGVhZGluZ1NsYXNoLFxuICBkYWZmVXJpVHJ1bmNhdGVRdWVyeUZyYWdtZW50LFxufSBmcm9tICdAZGFmZm9kaWwvY29yZS9yb3V0aW5nJztcbmltcG9ydCB7IERhZmZFeHRlcm5hbGx5UmVzb2x2YWJsZVVybCB9IGZyb20gJ0BkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXInO1xuaW1wb3J0IHsgREFGRl9FWFRFUk5BTF9ST1VURVJfTk9UX0ZPVU5EX1JFU09MVVRJT04gfSBmcm9tICdAZGFmZm9kaWwvZXh0ZXJuYWwtcm91dGVyL2RyaXZlcic7XG5pbXBvcnQge1xuICBNYWdlbnRvVXJsUmVzb2x2ZXIsXG4gIG1hZ2VudG9UcmFuc2Zvcm1SZWRpcmVjdFRvSHR0cENvZGUsXG59IGZyb20gJ0BkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8nO1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtUmVzb2x1dGlvblRvUmVzb2x2YWJsZVVybHYyNDEgPSAoXG4gIHJlc29sdXRpb246IE1hZ2VudG9VcmxSZXNvbHZlcixcbik6IERhZmZFeHRlcm5hbGx5UmVzb2x2YWJsZVVybCA9PiAocmVzb2x1dGlvbiA/IHtcbiAgaWQ6IHJlc29sdXRpb24uaWQ/LnRvU3RyaW5nKCksXG4gIHVybDogZGFmZlVyaVRydW5jYXRlTGVhZGluZ1NsYXNoKGRhZmZVcmlUcnVuY2F0ZVF1ZXJ5RnJhZ21lbnQocmVzb2x1dGlvbi5yZWxhdGl2ZV91cmwpKSxcbiAgdHlwZTogcmVzb2x1dGlvbi50eXBlLFxuICBjb2RlOiBtYWdlbnRvVHJhbnNmb3JtUmVkaXJlY3RUb0h0dHBDb2RlKHJlc29sdXRpb24ucmVkaXJlY3RDb2RlKSxcbn0gOiBEQUZGX0VYVEVSTkFMX1JPVVRFUl9OT1RfRk9VTkRfUkVTT0xVVElPTik7XG5cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFmZm9kaWwtZXh0ZXJuYWwtcm91dGVyLWRyaXZlci1tYWdlbnRvLTIuNC4yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8vMi40LjIvc3JjL2RhZmZvZGlsLWV4dGVybmFsLXJvdXRlci1kcml2ZXItbWFnZW50by0yLjQuMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { gql } from 'apollo-angular';
1
+ import { gql } from '@damienwebdev/apollo-angular';
2
2
  export const DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME = 'MagentoResolveUrlv242';
3
3
  /**
4
4
  * This query retrieves a URL resolution from Magento and informs you about
@@ -14,4 +14,4 @@ export const MagentoResolveUrlv242 = gql `
14
14
  }
15
15
  }
16
16
  `;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS11cmwtdjIuNC4yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8vMi40LjIvc3JjL2dyYXBocWwvcXVlcmllcy9yZXNvbHZlLXVybC12Mi40LjIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLHVCQUF1QixDQUFDO0FBRTNFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQTtTQUMvQixtQ0FBbUM7Ozs7Ozs7O0NBUTNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5cbmV4cG9ydCBjb25zdCBEQUZGX01BR0VOVE9fUkVTT0xWRV9VUkxfUVVFUllfTkFNRSA9ICdNYWdlbnRvUmVzb2x2ZVVybHYyNDInO1xuXG4vKipcbiAqIFRoaXMgcXVlcnkgcmV0cmlldmVzIGEgVVJMIHJlc29sdXRpb24gZnJvbSBNYWdlbnRvIGFuZCBpbmZvcm1zIHlvdSBhYm91dFxuICogd2hhdCB0eXBlIG9mIHJvdXRlIHRoZSBVUkwgaXMuXG4gKi9cbmV4cG9ydCBjb25zdCBNYWdlbnRvUmVzb2x2ZVVybHYyNDIgPSBncWxgXG5cdHF1ZXJ5ICR7REFGRl9NQUdFTlRPX1JFU09MVkVfVVJMX1FVRVJZX05BTUV9KCR1cmw6IFN0cmluZyEpIHtcblx0XHR1cmxSZXNvbHZlcih1cmw6ICR1cmwpIHtcblx0XHRcdGVudGl0eV91aWRcblx0XHRcdHJlbGF0aXZlX3VybFxuXHRcdFx0cmVkaXJlY3RDb2RlXG5cdFx0XHR0eXBlXG5cdFx0fVxuXHR9XG5gO1xuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS11cmwtdjIuNC4yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8vMi40LjIvc3JjL2dyYXBocWwvcXVlcmllcy9yZXNvbHZlLXVybC12Mi40LjIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLHVCQUF1QixDQUFDO0FBRTNFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQTtTQUMvQixtQ0FBbUM7Ozs7Ozs7O0NBUTNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBncWwgfSBmcm9tICdAZGFtaWVud2ViZGV2L2Fwb2xsby1hbmd1bGFyJztcblxuZXhwb3J0IGNvbnN0IERBRkZfTUFHRU5UT19SRVNPTFZFX1VSTF9RVUVSWV9OQU1FID0gJ01hZ2VudG9SZXNvbHZlVXJsdjI0Mic7XG5cbi8qKlxuICogVGhpcyBxdWVyeSByZXRyaWV2ZXMgYSBVUkwgcmVzb2x1dGlvbiBmcm9tIE1hZ2VudG8gYW5kIGluZm9ybXMgeW91IGFib3V0XG4gKiB3aGF0IHR5cGUgb2Ygcm91dGUgdGhlIFVSTCBpcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1hZ2VudG9SZXNvbHZlVXJsdjI0MiA9IGdxbGBcblx0cXVlcnkgJHtEQUZGX01BR0VOVE9fUkVTT0xWRV9VUkxfUVVFUllfTkFNRX0oJHVybDogU3RyaW5nISkge1xuXHRcdHVybFJlc29sdmVyKHVybDogJHVybCkge1xuXHRcdFx0ZW50aXR5X3VpZFxuXHRcdFx0cmVsYXRpdmVfdXJsXG5cdFx0XHRyZWRpcmVjdENvZGVcblx0XHRcdHR5cGVcblx0XHR9XG5cdH1cbmA7XG4iXX0=
@@ -0,0 +1,55 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule, } from '@angular/core';
3
+ import { DAFF_MAGENTO_CACHEABLE_OPERATIONS } from '@daffodil/driver/magento';
4
+ import { DaffExternalRouterDriver } from '@daffodil/external-router/driver';
5
+ import { DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME } from './graphql/queries/resolve-url-v2.4.2';
6
+ import { DaffExternalRouterMagentoDriver } from './magento.service';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * The module used to configure the {@link DaffExternalRouterDriver} for usage with Magento.
10
+ *
11
+ * ```ts
12
+ * @NgModule({
13
+ * declarations: [],
14
+ * imports: [
15
+ * ...
16
+ * DaffExternalRouterDriverMagentoModule.forRoot()
17
+ * ],
18
+ * })
19
+ * export class AppModule{}
20
+ * ```
21
+ *
22
+ * Note that this package depends upon ApolloClient, as the Magento driver uses GraphQl to make it's API calls.
23
+ */
24
+ export class DaffExternalRouterDriverMagentoModule {
25
+ /**
26
+ * Configures the package for the root injector.
27
+ */
28
+ static forRoot() {
29
+ return {
30
+ ngModule: DaffExternalRouterDriverMagentoModule,
31
+ providers: [
32
+ {
33
+ provide: DaffExternalRouterDriver,
34
+ useExisting: DaffExternalRouterMagentoDriver,
35
+ },
36
+ {
37
+ provide: DAFF_MAGENTO_CACHEABLE_OPERATIONS,
38
+ useValue: DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME,
39
+ multi: true,
40
+ },
41
+ ],
42
+ };
43
+ }
44
+ }
45
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterDriverMagentoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterDriverMagentoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
46
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterDriverMagentoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterDriverMagentoModule, imports: [CommonModule] });
47
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterDriverMagentoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterDriverMagentoModule, imports: [[CommonModule]] });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterDriverMagentoModule, decorators: [{
49
+ type: NgModule,
50
+ args: [{
51
+ declarations: [],
52
+ imports: [CommonModule],
53
+ }]
54
+ }] });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZW50by5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2V4dGVybmFsLXJvdXRlci9kcml2ZXIvbWFnZW50by8yLjQuMi9zcmMvbWFnZW50by5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxRQUFRLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFNUUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0YsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXBFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUtILE1BQU0sT0FBTyxxQ0FBcUM7SUFFaEQ7O09BRUc7SUFDSCxNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUscUNBQXFDO1lBQy9DLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsd0JBQXdCO29CQUNqQyxXQUFXLEVBQUUsK0JBQStCO2lCQUM3QztnQkFDRDtvQkFDRSxPQUFPLEVBQUUsaUNBQWlDO29CQUMxQyxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O3dLQXBCVSxxQ0FBcUM7eUtBQXJDLHFDQUFxQyxZQUZ0QyxZQUFZO3lLQUVYLHFDQUFxQyxZQUZ2QyxDQUFDLFlBQVksQ0FBQzsyRkFFWixxQ0FBcUM7a0JBSmpELFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgTmdNb2R1bGUsXG4gIE1vZHVsZVdpdGhQcm92aWRlcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEQUZGX01BR0VOVE9fQ0FDSEVBQkxFX09QRVJBVElPTlMgfSBmcm9tICdAZGFmZm9kaWwvZHJpdmVyL21hZ2VudG8nO1xuaW1wb3J0IHsgRGFmZkV4dGVybmFsUm91dGVyRHJpdmVyIH0gZnJvbSAnQGRhZmZvZGlsL2V4dGVybmFsLXJvdXRlci9kcml2ZXInO1xuXG5pbXBvcnQgeyBEQUZGX01BR0VOVE9fUkVTT0xWRV9VUkxfUVVFUllfTkFNRSB9IGZyb20gJy4vZ3JhcGhxbC9xdWVyaWVzL3Jlc29sdmUtdXJsLXYyLjQuMic7XG5pbXBvcnQgeyBEYWZmRXh0ZXJuYWxSb3V0ZXJNYWdlbnRvRHJpdmVyIH0gZnJvbSAnLi9tYWdlbnRvLnNlcnZpY2UnO1xuXG4vKipcbiAqIFRoZSBtb2R1bGUgdXNlZCB0byBjb25maWd1cmUgdGhlIHtAbGluayBEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXJ9IGZvciB1c2FnZSB3aXRoIE1hZ2VudG8uXG4gKlxuICogYGBgdHNcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGRlY2xhcmF0aW9uczogW10sXG4gKiAgIGltcG9ydHM6IFtcbiAqICAgICAuLi5cbiAqICAgICBEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXJNYWdlbnRvTW9kdWxlLmZvclJvb3QoKVxuICogICBdLFxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBNb2R1bGV7fVxuICogYGBgXG4gKlxuICogTm90ZSB0aGF0IHRoaXMgcGFja2FnZSBkZXBlbmRzIHVwb24gQXBvbGxvQ2xpZW50LCBhcyB0aGUgTWFnZW50byBkcml2ZXIgdXNlcyBHcmFwaFFsIHRvIG1ha2UgaXQncyBBUEkgY2FsbHMuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXJNYWdlbnRvTW9kdWxlIHtcblxuICAvKipcbiAgICogQ29uZmlndXJlcyB0aGUgcGFja2FnZSBmb3IgdGhlIHJvb3QgaW5qZWN0b3IuXG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPERhZmZFeHRlcm5hbFJvdXRlckRyaXZlck1hZ2VudG9Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IERhZmZFeHRlcm5hbFJvdXRlckRyaXZlck1hZ2VudG9Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IERhZmZFeHRlcm5hbFJvdXRlckRyaXZlcixcbiAgICAgICAgICB1c2VFeGlzdGluZzogRGFmZkV4dGVybmFsUm91dGVyTWFnZW50b0RyaXZlcixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IERBRkZfTUFHRU5UT19DQUNIRUFCTEVfT1BFUkFUSU9OUyxcbiAgICAgICAgICB1c2VWYWx1ZTogREFGRl9NQUdFTlRPX1JFU09MVkVfVVJMX1FVRVJZX05BTUUsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Apollo } from '@damienwebdev/apollo-angular';
3
+ import { map } from 'rxjs/operators';
4
+ import { MagentoResolveUrlv242 } from './graphql/queries/resolve-url-v2.4.2';
5
+ import { transformResolutionToResolvableUrlv242 } from './transforms/resolution-to-resolvable-url';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@damienwebdev/apollo-angular";
8
+ /**
9
+ * The DaffExternalRouterMagentoDriver is responsible for translating an
10
+ * arbitrary URI into a DaffExternallyResolvableUrl with Magento environments.
11
+ *
12
+ * @inheritdoc
13
+ */
14
+ export class DaffExternalRouterMagentoDriver {
15
+ constructor(apollo) {
16
+ this.apollo = apollo;
17
+ }
18
+ resolve(url) {
19
+ return this.apollo
20
+ .query({
21
+ query: MagentoResolveUrlv242,
22
+ variables: {
23
+ url,
24
+ },
25
+ })
26
+ .pipe(map(response => transformResolutionToResolvableUrlv242(response.data.urlResolver)));
27
+ }
28
+ }
29
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterMagentoDriver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterMagentoDriver, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
30
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterMagentoDriver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterMagentoDriver, providedIn: 'root' });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterMagentoDriver, decorators: [{
32
+ type: Injectable,
33
+ args: [{
34
+ providedIn: 'root',
35
+ }]
36
+ }], ctorParameters: function () { return [{ type: i1.Apollo }]; } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZW50by5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8vMi40LjIvc3JjL21hZ2VudG8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7OztBQUduRzs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTywrQkFBK0I7SUFFMUMsWUFDUSxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNuQixDQUFDO0lBRUosT0FBTyxDQUFDLEdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNmLEtBQUssQ0FBNkI7WUFDakMsS0FBSyxFQUFFLHFCQUFxQjtZQUM1QixTQUFTLEVBQUU7Z0JBQ1QsR0FBRzthQUNKO1NBQ0YsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxzQ0FBc0MsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDOztrS0FmVSwrQkFBK0I7c0tBQS9CLCtCQUErQixjQUY5QixNQUFNOzJGQUVQLCtCQUErQjtrQkFIM0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcG9sbG8gfSBmcm9tICdAZGFtaWVud2ViZGV2L2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5pbXBvcnQgeyBEYWZmRXh0ZXJuYWxseVJlc29sdmFibGVVcmwgfSBmcm9tICdAZGFmZm9kaWwvZXh0ZXJuYWwtcm91dGVyJztcbmltcG9ydCB7IERhZmZFeHRlcm5hbFJvdXRlckRyaXZlckludGVyZmFjZSB9IGZyb20gJ0BkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyJztcbmltcG9ydCB7IE1hZ2VudG9VcmxSZXNvbHZlclJlc3BvbnNlIH0gZnJvbSAnQGRhZmZvZGlsL2V4dGVybmFsLXJvdXRlci9kcml2ZXIvbWFnZW50byc7XG5cbmltcG9ydCB7IE1hZ2VudG9SZXNvbHZlVXJsdjI0MiB9IGZyb20gJy4vZ3JhcGhxbC9xdWVyaWVzL3Jlc29sdmUtdXJsLXYyLjQuMic7XG5pbXBvcnQgeyB0cmFuc2Zvcm1SZXNvbHV0aW9uVG9SZXNvbHZhYmxlVXJsdjI0MiB9IGZyb20gJy4vdHJhbnNmb3Jtcy9yZXNvbHV0aW9uLXRvLXJlc29sdmFibGUtdXJsJztcblxuXG4vKipcbiAqIFRoZSBEYWZmRXh0ZXJuYWxSb3V0ZXJNYWdlbnRvRHJpdmVyIGlzIHJlc3BvbnNpYmxlIGZvciB0cmFuc2xhdGluZyBhblxuICogYXJiaXRyYXJ5IFVSSSBpbnRvIGEgRGFmZkV4dGVybmFsbHlSZXNvbHZhYmxlVXJsIHdpdGggTWFnZW50byBlbnZpcm9ubWVudHMuXG4gKlxuICogQGluaGVyaXRkb2NcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERhZmZFeHRlcm5hbFJvdXRlck1hZ2VudG9Ecml2ZXJcbmltcGxlbWVudHMgRGFmZkV4dGVybmFsUm91dGVyRHJpdmVySW50ZXJmYWNlIHtcbiAgY29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBhcG9sbG86IEFwb2xsbyxcbiAgKSB7fVxuXG4gIHJlc29sdmUodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERhZmZFeHRlcm5hbGx5UmVzb2x2YWJsZVVybD4ge1xuICAgIHJldHVybiB0aGlzLmFwb2xsb1xuICAgICAgLnF1ZXJ5PE1hZ2VudG9VcmxSZXNvbHZlclJlc3BvbnNlPih7XG4gICAgICAgIHF1ZXJ5OiBNYWdlbnRvUmVzb2x2ZVVybHYyNDIsXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIHVybCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAocmVzcG9uc2UgPT4gdHJhbnNmb3JtUmVzb2x1dGlvblRvUmVzb2x2YWJsZVVybHYyNDIocmVzcG9uc2UuZGF0YS51cmxSZXNvbHZlcikpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFmZm9kaWwtZXh0ZXJuYWwtcm91dGVyLWRyaXZlci10ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL3Rlc3Rpbmcvc3JjL2RhZmZvZGlsLWV4dGVybmFsLXJvdXRlci1kcml2ZXItdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule, } from '@angular/core';
3
+ import { DaffExternalRouterDriver } from '@daffodil/external-router/driver';
4
+ import { DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG, } from './config';
5
+ import { DaffExternalRouterTestingDriver } from './testing.service';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * The `DaffExternalRouterDriverTestingModule` is an importable NgModule that can
9
+ * be used to configure the {@link DaffExternalRouterTestingDriver}.
10
+ */
11
+ export class DaffExternalRouterDriverTestingModule {
12
+ static forRoot(config) {
13
+ return {
14
+ ngModule: DaffExternalRouterDriverTestingModule,
15
+ providers: [
16
+ {
17
+ provide: DaffExternalRouterDriver,
18
+ useExisting: DaffExternalRouterTestingDriver,
19
+ },
20
+ {
21
+ provide: DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG,
22
+ useValue: config,
23
+ },
24
+ ],
25
+ };
26
+ }
27
+ }
28
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterDriverTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterDriverTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
29
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterDriverTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterDriverTestingModule, imports: [CommonModule] });
30
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterDriverTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterDriverTestingModule, imports: [[CommonModule]] });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterDriverTestingModule, decorators: [{
32
+ type: NgModule,
33
+ args: [{
34
+ declarations: [],
35
+ imports: [CommonModule],
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2V4dGVybmFsLXJvdXRlci9kcml2ZXIvdGVzdGluZy9zcmMvdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxRQUFRLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFNUUsT0FBTyxFQUVMLDBDQUEwQyxHQUMzQyxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFcEU7OztHQUdHO0FBS0gsTUFBTSxPQUFPLHFDQUFxQztJQUNoRCxNQUFNLENBQUMsT0FBTyxDQUNaLE1BQTZDO1FBRTdDLE9BQU87WUFDTCxRQUFRLEVBQUUscUNBQXFDO1lBQy9DLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsd0JBQXdCO29CQUNqQyxXQUFXLEVBQUUsK0JBQStCO2lCQUM3QztnQkFDRDtvQkFDRSxPQUFPLEVBQUUsMENBQTBDO29CQUNuRCxRQUFRLEVBQUUsTUFBTTtpQkFDakI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzt3S0FqQlUscUNBQXFDO3lLQUFyQyxxQ0FBcUMsWUFGdEMsWUFBWTt5S0FFWCxxQ0FBcUMsWUFGdkMsQ0FBQyxZQUFZLENBQUM7MkZBRVoscUNBQXFDO2tCQUpqRCxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIE5nTW9kdWxlLFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGFmZkV4dGVybmFsUm91dGVyRHJpdmVyIH0gZnJvbSAnQGRhZmZvZGlsL2V4dGVybmFsLXJvdXRlci9kcml2ZXInO1xuXG5pbXBvcnQge1xuICBEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXJUZXN0aW5nQ29uZmlnLFxuICBEQUZGX0VYVEVSTkFMX1JPVVRFUl9EUklWRVJfVEVTVElOR19DT05GSUcsXG59IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IERhZmZFeHRlcm5hbFJvdXRlclRlc3RpbmdEcml2ZXIgfSBmcm9tICcuL3Rlc3Rpbmcuc2VydmljZSc7XG5cbi8qKlxuICogVGhlIGBEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXJUZXN0aW5nTW9kdWxlYCBpcyBhbiBpbXBvcnRhYmxlIE5nTW9kdWxlIHRoYXQgY2FuXG4gKiBiZSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUge0BsaW5rIERhZmZFeHRlcm5hbFJvdXRlclRlc3RpbmdEcml2ZXJ9LlxuICovXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGFmZkV4dGVybmFsUm91dGVyRHJpdmVyVGVzdGluZ01vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIGNvbmZpZzogRGFmZkV4dGVybmFsUm91dGVyRHJpdmVyVGVzdGluZ0NvbmZpZyxcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXJUZXN0aW5nTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXJUZXN0aW5nTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXIsXG4gICAgICAgICAgdXNlRXhpc3Rpbmc6IERhZmZFeHRlcm5hbFJvdXRlclRlc3RpbmdEcml2ZXIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBEQUZGX0VYVEVSTkFMX1JPVVRFUl9EUklWRVJfVEVTVElOR19DT05GSUcsXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,45 @@
1
+ import { Injectable, Inject, } from '@angular/core';
2
+ import * as faker from '@faker-js/faker/locale/en_US';
3
+ import { of, throwError, } from 'rxjs';
4
+ import { daffUriTruncateLeadingSlash, daffUriTruncateQueryFragment, } from '@daffodil/core/routing';
5
+ import { DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG, } from './config';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * The DaffExternalRouterTestingDriver is responsible for translating an
9
+ * arbitrary URI into a DaffExternallyResolvableUrl in testing environments.
10
+ *
11
+ * @inheritdoc
12
+ *
13
+ * @see {@link DaffExternalRouterTestingDriver}
14
+ */
15
+ export class DaffExternalRouterTestingDriver {
16
+ constructor(testingConfiguration = {}) {
17
+ this.testingConfiguration = testingConfiguration;
18
+ }
19
+ resolve(url) {
20
+ const truncatedUrl = daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(url));
21
+ if (!this.testingConfiguration[truncatedUrl]) {
22
+ return throwError(`\
23
+ The route '${truncatedUrl}' wasn't provided with a matching type by the testing driver. \
24
+ Did you configure the available route types with DaffExternalRouterDriverTestingModule.forRoot(config)`);
25
+ }
26
+ return of({
27
+ id: faker.datatype.uuid(),
28
+ url: truncatedUrl,
29
+ type: this.testingConfiguration[truncatedUrl],
30
+ code: 200,
31
+ });
32
+ }
33
+ }
34
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterTestingDriver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterTestingDriver, deps: [{ token: DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
35
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterTestingDriver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterTestingDriver, providedIn: 'root' });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterTestingDriver, decorators: [{
37
+ type: Injectable,
38
+ args: [{
39
+ providedIn: 'root',
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
42
+ type: Inject,
43
+ args: [DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG]
44
+ }] }]; } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL3Rlc3Rpbmcvc3JjL3Rlc3Rpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssS0FBSyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RELE9BQU8sRUFFTCxFQUFFLEVBQ0YsVUFBVSxHQUNYLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiw0QkFBNEIsR0FDN0IsTUFBTSx3QkFBd0IsQ0FBQztBQUloQyxPQUFPLEVBRUwsMENBQTBDLEdBQzNDLE1BQU0sVUFBVSxDQUFDOztBQUVsQjs7Ozs7OztHQU9HO0FBSUgsTUFBTSxPQUFPLCtCQUErQjtJQUUxQyxZQUVRLHVCQUE4RCxFQUFFO1FBQWhFLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBNEM7SUFDckUsQ0FBQztJQUVKLE9BQU8sQ0FBQyxHQUFXO1FBQ2pCLE1BQU0sWUFBWSxHQUFHLDJCQUEyQixDQUFDLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFcEYsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUM1QyxPQUFPLFVBQVUsQ0FBQzthQUNYLFlBQVk7dUdBQzhFLENBQUMsQ0FBQztTQUNwRztRQUVELE9BQU8sRUFBRSxDQUFDO1lBQ1IsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ3pCLEdBQUcsRUFBRSxZQUFZO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDO1lBQzdDLElBQUksRUFBRSxHQUFHO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7a0tBdEJVLCtCQUErQixrQkFHbEMsMENBQTBDO3NLQUh2QywrQkFBK0IsY0FGOUIsTUFBTTsyRkFFUCwrQkFBK0I7a0JBSDNDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFJRSxNQUFNOzJCQUFDLDBDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIEluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBmYWtlciBmcm9tICdAZmFrZXItanMvZmFrZXIvbG9jYWxlL2VuX1VTJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICB0aHJvd0Vycm9yLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgZGFmZlVyaVRydW5jYXRlTGVhZGluZ1NsYXNoLFxuICBkYWZmVXJpVHJ1bmNhdGVRdWVyeUZyYWdtZW50LFxufSBmcm9tICdAZGFmZm9kaWwvY29yZS9yb3V0aW5nJztcbmltcG9ydCB7IERhZmZFeHRlcm5hbGx5UmVzb2x2YWJsZVVybCB9IGZyb20gJ0BkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXInO1xuaW1wb3J0IHsgRGFmZkV4dGVybmFsUm91dGVyRHJpdmVySW50ZXJmYWNlIH0gZnJvbSAnQGRhZmZvZGlsL2V4dGVybmFsLXJvdXRlci9kcml2ZXInO1xuXG5pbXBvcnQge1xuICBEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXJUZXN0aW5nQ29uZmlnLFxuICBEQUZGX0VYVEVSTkFMX1JPVVRFUl9EUklWRVJfVEVTVElOR19DT05GSUcsXG59IGZyb20gJy4vY29uZmlnJztcblxuLyoqXG4gKiBUaGUgRGFmZkV4dGVybmFsUm91dGVyVGVzdGluZ0RyaXZlciBpcyByZXNwb25zaWJsZSBmb3IgdHJhbnNsYXRpbmcgYW5cbiAqIGFyYml0cmFyeSBVUkkgaW50byBhIERhZmZFeHRlcm5hbGx5UmVzb2x2YWJsZVVybCBpbiB0ZXN0aW5nIGVudmlyb25tZW50cy5cbiAqXG4gKiBAaW5oZXJpdGRvY1xuICpcbiAqIEBzZWUge0BsaW5rIERhZmZFeHRlcm5hbFJvdXRlclRlc3RpbmdEcml2ZXJ9XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEYWZmRXh0ZXJuYWxSb3V0ZXJUZXN0aW5nRHJpdmVyXG5pbXBsZW1lbnRzIERhZmZFeHRlcm5hbFJvdXRlckRyaXZlckludGVyZmFjZSB7XG4gIGNvbnN0cnVjdG9yKFxuXHRcdEBJbmplY3QoREFGRl9FWFRFUk5BTF9ST1VURVJfRFJJVkVSX1RFU1RJTkdfQ09ORklHKVxuXHRcdHByaXZhdGUgdGVzdGluZ0NvbmZpZ3VyYXRpb246IERhZmZFeHRlcm5hbFJvdXRlckRyaXZlclRlc3RpbmdDb25maWcgPSB7fSxcbiAgKSB7fVxuXG4gIHJlc29sdmUodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERhZmZFeHRlcm5hbGx5UmVzb2x2YWJsZVVybD4ge1xuICAgIGNvbnN0IHRydW5jYXRlZFVybCA9IGRhZmZVcmlUcnVuY2F0ZUxlYWRpbmdTbGFzaChkYWZmVXJpVHJ1bmNhdGVRdWVyeUZyYWdtZW50KHVybCkpO1xuXG4gICAgaWYgKCF0aGlzLnRlc3RpbmdDb25maWd1cmF0aW9uW3RydW5jYXRlZFVybF0pIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKGBcXFxuVGhlIHJvdXRlICcke3RydW5jYXRlZFVybH0nIHdhc24ndCBwcm92aWRlZCB3aXRoIGEgbWF0Y2hpbmcgdHlwZSBieSB0aGUgdGVzdGluZyBkcml2ZXIuIFxcXG5EaWQgeW91IGNvbmZpZ3VyZSB0aGUgYXZhaWxhYmxlIHJvdXRlIHR5cGVzIHdpdGggRGFmZkV4dGVybmFsUm91dGVyRHJpdmVyVGVzdGluZ01vZHVsZS5mb3JSb290KGNvbmZpZylgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2Yoe1xuICAgICAgaWQ6IGZha2VyLmRhdGF0eXBlLnV1aWQoKSxcbiAgICAgIHVybDogdHJ1bmNhdGVkVXJsLFxuICAgICAgdHlwZTogdGhpcy50ZXN0aW5nQ29uZmlndXJhdGlvblt0cnVuY2F0ZWRVcmxdLFxuICAgICAgY29kZTogMjAwLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule, } from '@angular/core';
3
+ import { DAFF_EXTERNAL_ROUTER_CONFIG, daffExternalRouterConfigurationDefault, } from './config';
4
+ import { daffProvideRoutesResolvableByType } from './token/type-resolvable-routes.token';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * The external `DaffExternalRouterModule` allows you to configure the
8
+ * `@daffodil/external-router` package's behavior.
9
+ */
10
+ export class DaffExternalRouterModule {
11
+ static forRoot(config, routes = []) {
12
+ return {
13
+ ngModule: DaffExternalRouterModule,
14
+ providers: [
15
+ { provide: DAFF_EXTERNAL_ROUTER_CONFIG, useValue: { ...daffExternalRouterConfigurationDefault, ...config } },
16
+ ...daffProvideRoutesResolvableByType(routes),
17
+ ],
18
+ };
19
+ }
20
+ }
21
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
22
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterModule, imports: [CommonModule] });
23
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterModule, imports: [[CommonModule]] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterModule, decorators: [{
25
+ type: NgModule,
26
+ args: [{
27
+ declarations: [],
28
+ imports: [CommonModule],
29
+ }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtcm91dGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYnMvZXh0ZXJuYWwtcm91dGVyL3NyYy9leHRlcm5hbC1yb3V0ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFFTCwyQkFBMkIsRUFDM0Isc0NBQXNDLEdBQ3ZDLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQUV6Rjs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLE1BQU0sQ0FBQyxPQUFPLENBQ1osTUFBZ0QsRUFDaEQsU0FBOEIsRUFBRTtRQUVoQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHdCQUF3QjtZQUNsQyxTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxzQ0FBc0MsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFDO2dCQUMzRyxHQUFHLGlDQUFpQyxDQUFDLE1BQU0sQ0FBQzthQUM3QztTQUNGLENBQUM7SUFDSixDQUFDOzsySkFaVSx3QkFBd0I7NEpBQXhCLHdCQUF3QixZQUZ6QixZQUFZOzRKQUVYLHdCQUF3QixZQUYxQixDQUFDLFlBQVksQ0FBQzsyRkFFWix3QkFBd0I7a0JBSnBDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgTmdNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBEYWZmRXh0ZXJuYWxSb3V0ZXJDb25maWd1cmF0aW9uLFxuICBEQUZGX0VYVEVSTkFMX1JPVVRFUl9DT05GSUcsXG4gIGRhZmZFeHRlcm5hbFJvdXRlckNvbmZpZ3VyYXRpb25EZWZhdWx0LFxufSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBEYWZmVHlwZVJvdXRlUGFpciB9IGZyb20gJy4vbW9kZWwvdHlwZS1yb3V0ZS1wYWlyJztcbmltcG9ydCB7IGRhZmZQcm92aWRlUm91dGVzUmVzb2x2YWJsZUJ5VHlwZSB9IGZyb20gJy4vdG9rZW4vdHlwZS1yZXNvbHZhYmxlLXJvdXRlcy50b2tlbic7XG5cbi8qKlxuICogVGhlIGV4dGVybmFsIGBEYWZmRXh0ZXJuYWxSb3V0ZXJNb2R1bGVgIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIHRoZVxuICogYEBkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXJgIHBhY2thZ2UncyBiZWhhdmlvci5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIERhZmZFeHRlcm5hbFJvdXRlck1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIGNvbmZpZzogUGFydGlhbDxEYWZmRXh0ZXJuYWxSb3V0ZXJDb25maWd1cmF0aW9uPixcbiAgICByb3V0ZXM6IERhZmZUeXBlUm91dGVQYWlyW10gPSBbXSxcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxEYWZmRXh0ZXJuYWxSb3V0ZXJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IERhZmZFeHRlcm5hbFJvdXRlck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IERBRkZfRVhURVJOQUxfUk9VVEVSX0NPTkZJRywgdXNlVmFsdWU6IHsgLi4uZGFmZkV4dGVybmFsUm91dGVyQ29uZmlndXJhdGlvbkRlZmF1bHQsIC4uLmNvbmZpZyB9fSxcbiAgICAgICAgLi4uZGFmZlByb3ZpZGVSb3V0ZXNSZXNvbHZhYmxlQnlUeXBlKHJvdXRlcyksXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Inject, Injectable, } from '@angular/core';
2
+ import { Router, } from '@angular/router';
3
+ import { DaffExternalRouterNoWildcardError } from '../errors/no-wildcard';
4
+ import { DAFF_EXTERNAL_ROUTER_ROUTES_RESOLVABLE_BY_TYPE } from '../token/type-resolvable-routes.token';
5
+ import { daffTransformResolvedRouteToRoute } from '../transform/resolved-route-to-route';
6
+ import { daffInsertRouteBeforeWildCardStrategy } from './strategies/insert-route-before-wildcard';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/router";
9
+ export class DaffExternalRouter {
10
+ constructor(router, runtimeRoutes) {
11
+ this.router = router;
12
+ this.runtimeRoutes = runtimeRoutes;
13
+ }
14
+ /**
15
+ * Adds a route to the existing router configuration.
16
+ */
17
+ add(resolvedRoute) {
18
+ //Get the route.
19
+ const { route, insertionStrategy, } = daffTransformResolvedRouteToRoute(resolvedRoute, this.runtimeRoutes);
20
+ try {
21
+ //Add it to configuration.
22
+ this.router.config = (insertionStrategy || daffInsertRouteBeforeWildCardStrategy)(route, this.router.config);
23
+ }
24
+ catch (e) {
25
+ if (e instanceof DaffExternalRouterNoWildcardError) {
26
+ throw new DaffExternalRouterNoWildcardError(`${e.message} This usually means you have misconfigured your routes.`);
27
+ }
28
+ throw e;
29
+ }
30
+ }
31
+ }
32
+ /** @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 });
33
+ /** @nocollapse */ /** @nocollapse */ DaffExternalRouter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouter, providedIn: 'root' });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouter, decorators: [{
35
+ type: Injectable,
36
+ args: [{
37
+ providedIn: 'root',
38
+ }]
39
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: undefined, decorators: [{
40
+ type: Inject,
41
+ args: [DAFF_EXTERNAL_ROUTER_ROUTES_RESOLVABLE_BY_TYPE]
42
+ }] }]; } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2V4dGVybmFsLXJvdXRlci9zcmMvcm91dGVyL3JvdXRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxNQUFNLEdBRVAsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcxRSxPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7O0FBS2xHLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDVSxNQUFjLEVBRWQsYUFBa0M7UUFGbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUVkLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtJQUN4QyxDQUFDO0lBRUw7O09BRUc7SUFDSCxHQUFHLENBQUMsYUFBMEM7UUFDNUMsZ0JBQWdCO1FBQ2hCLE1BQU0sRUFDSixLQUFLLEVBQ0wsaUJBQWlCLEdBQ2xCLEdBQUcsaUNBQWlDLENBQ25DLGFBQWEsRUFDYixJQUFJLENBQUMsYUFBYSxDQUNuQixDQUFDO1FBRUYsSUFBSTtZQUNGLDBCQUEwQjtZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLGlCQUFpQixJQUFJLHFDQUFxQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDOUc7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxZQUFZLGlDQUFpQyxFQUFFO2dCQUNsRCxNQUFNLElBQUksaUNBQWlDLENBQ3pDLEdBQUcsQ0FBQyxDQUFDLE9BQU8seURBQXlELENBQ3RFLENBQUM7YUFDSDtZQUVELE1BQU0sQ0FBQyxDQUFDO1NBQ1Q7SUFDSCxDQUFDOztxSkFoQ1Usa0JBQWtCLHdDQUduQiw4Q0FBOEM7eUpBSDdDLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUlJLE1BQU07MkJBQUMsOENBQThDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFJvdXRlcixcbiAgUm91dGUsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cblxuaW1wb3J0IHsgRGFmZkV4dGVybmFsUm91dGVyTm9XaWxkY2FyZEVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL25vLXdpbGRjYXJkJztcbmltcG9ydCB7IERhZmZFeHRlcm5hbGx5UmVzb2x2YWJsZVVybCB9IGZyb20gJy4uL21vZGVsL3Jlc29sdmFibGUtcm91dGUnO1xuaW1wb3J0IHsgRGFmZlR5cGVSb3V0ZVBhaXIgfSBmcm9tICcuLi9tb2RlbC90eXBlLXJvdXRlLXBhaXInO1xuaW1wb3J0IHsgREFGRl9FWFRFUk5BTF9ST1VURVJfUk9VVEVTX1JFU09MVkFCTEVfQllfVFlQRSB9IGZyb20gJy4uL3Rva2VuL3R5cGUtcmVzb2x2YWJsZS1yb3V0ZXMudG9rZW4nO1xuaW1wb3J0IHsgZGFmZlRyYW5zZm9ybVJlc29sdmVkUm91dGVUb1JvdXRlIH0gZnJvbSAnLi4vdHJhbnNmb3JtL3Jlc29sdmVkLXJvdXRlLXRvLXJvdXRlJztcbmltcG9ydCB7IGRhZmZJbnNlcnRSb3V0ZUJlZm9yZVdpbGRDYXJkU3RyYXRlZ3kgfSBmcm9tICcuL3N0cmF0ZWdpZXMvaW5zZXJ0LXJvdXRlLWJlZm9yZS13aWxkY2FyZCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEYWZmRXh0ZXJuYWxSb3V0ZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIEBJbmplY3QoREFGRl9FWFRFUk5BTF9ST1VURVJfUk9VVEVTX1JFU09MVkFCTEVfQllfVFlQRSlcbiAgICBwcml2YXRlIHJ1bnRpbWVSb3V0ZXM6IERhZmZUeXBlUm91dGVQYWlyW10sXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByb3V0ZSB0byB0aGUgZXhpc3Rpbmcgcm91dGVyIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBhZGQocmVzb2x2ZWRSb3V0ZTogRGFmZkV4dGVybmFsbHlSZXNvbHZhYmxlVXJsKSB7XG4gICAgLy9HZXQgdGhlIHJvdXRlLlxuICAgIGNvbnN0IHtcbiAgICAgIHJvdXRlLFxuICAgICAgaW5zZXJ0aW9uU3RyYXRlZ3ksXG4gICAgfSA9IGRhZmZUcmFuc2Zvcm1SZXNvbHZlZFJvdXRlVG9Sb3V0ZShcbiAgICAgIHJlc29sdmVkUm91dGUsXG4gICAgICB0aGlzLnJ1bnRpbWVSb3V0ZXMsXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICAvL0FkZCBpdCB0byBjb25maWd1cmF0aW9uLlxuICAgICAgdGhpcy5yb3V0ZXIuY29uZmlnID0gKGluc2VydGlvblN0cmF0ZWd5IHx8IGRhZmZJbnNlcnRSb3V0ZUJlZm9yZVdpbGRDYXJkU3RyYXRlZ3kpKHJvdXRlLCB0aGlzLnJvdXRlci5jb25maWcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRGFmZkV4dGVybmFsUm91dGVyTm9XaWxkY2FyZEVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBEYWZmRXh0ZXJuYWxSb3V0ZXJOb1dpbGRjYXJkRXJyb3IoXG4gICAgICAgICAgYCR7ZS5tZXNzYWdlfSBUaGlzIHVzdWFsbHkgbWVhbnMgeW91IGhhdmUgbWlzY29uZmlndXJlZCB5b3VyIHJvdXRlcy5gLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Tests whether or not a route matches a specific Daffodil Route type.
3
+ *
4
+ * See {@link DaffRouteWithDataPath}
5
+ */
6
+ const routeMatchesRouteType = (route, type) => route?.data?.daffExternalRouteType === type;
7
+ /**
8
+ * Adds a path to the `daffPaths` of the given route.
9
+ *
10
+ * See {@link DaffRouteWithDataPath}
11
+ */
12
+ const addRouteToDaffPaths = (route, path) => route.data.daffPaths = {
13
+ ...route.data.daffPaths,
14
+ [path]: path,
15
+ };
16
+ const operateOnRoute = (externalRoute) => (route) => addRouteToDaffPaths(route, externalRoute.path);
17
+ /**
18
+ * Traverse the router config tree, halting after the first match.
19
+ * This traversal is implemented in a pre-order manner. As such, for large
20
+ * configuration trees, it will be most efficient to place externally routed
21
+ * components at the top of router configuration.
22
+ */
23
+ const traverseRouteTree = (routes = [], matcher, operate) => {
24
+ if (routes.length === 0) {
25
+ return routes;
26
+ }
27
+ const stack = [];
28
+ const treeRoot = { children: routes };
29
+ stack.push(treeRoot);
30
+ while (stack.length) {
31
+ const route = stack.pop();
32
+ if (matcher(route)) {
33
+ operate(route);
34
+ break;
35
+ }
36
+ if (route.children) {
37
+ stack.push(...route.children.reverse());
38
+ }
39
+ }
40
+ return routes;
41
+ };
42
+ /**
43
+ * A route insertion strategy that can be used to append external routes onto
44
+ * existing Angular routes. This can be useful when you need to route to
45
+ * an existing lazy-loaded module from multiple externally defined urls.
46
+ *
47
+ * This should be used in combination with the {@link daffDataPathUrlMatcher} to match lazy-loaded modules with
48
+ * associated external urls.
49
+ *
50
+ * For example, you can provide the insertion strategy in the {@link DaffExternalRouterModule} as below.
51
+ *
52
+ * ```ts
53
+ * DaffExternalRouterModule.forRoot({}, [
54
+ * {
55
+ * type: 'CATEGORY',
56
+ * insertionStrategy: daffInsertDataPathStrategy,
57
+ * route: {}
58
+ * }
59
+ * ],
60
+ * ```
61
+ *
62
+ * Then, you can match it with an associated route defined in your Routing
63
+ * configuration with the {@link daffDataPathUrlMatcher}.
64
+ *
65
+ * ```ts
66
+ * export const routes: Routes = [
67
+ * {
68
+ * matcher: daffDataPathUrlMatcher,
69
+ * data: {
70
+ * daffExternalRouteType: "CATEGORY",
71
+ * },
72
+ * loadChildren: () => import('./category/category.module').then((m) => m.MyCategoryModule),
73
+ * }
74
+ * ]
75
+ * ```
76
+ *
77
+ * See {@link DaffRouteWithDataPath}
78
+ *
79
+ */
80
+ export const daffInsertDataPathStrategy = (externalRoute, routes) => traverseRouteTree(routes, (route) => routeMatchesRouteType(route, externalRoute.data?.daffExternalRouteType), operateOnRoute(externalRoute));
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWRhdGEtcGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZXh0ZXJuYWwtcm91dGVyL3NyYy9yb3V0ZXIvc3RyYXRlZ2llcy9pbnNlcnQtZGF0YS1wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBOzs7O0dBSUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBNEIsRUFBRSxJQUEyQixFQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixLQUFLLElBQUksQ0FBQztBQUVsSjs7OztHQUlHO0FBQ0gsTUFBTSxtQkFBbUIsR0FFdkIsQ0FBQyxLQUE0QixFQUFFLElBQVksRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUk7SUFDdEUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVM7SUFDdkIsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJO0NBQ2IsQ0FBQztBQUVKLE1BQU0sY0FBYyxHQUFHLENBQUMsYUFBb0IsRUFBMkIsRUFBRSxDQUN2RSxDQUFDLEtBQTRCLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFbkY7Ozs7O0dBS0c7QUFDSCxNQUFNLGlCQUFpQixHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLE9BQWtDLEVBQUUsT0FBK0IsRUFBVSxFQUFFO0lBQzdILElBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDdEIsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUVELE1BQU0sS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUN6QixNQUFNLFFBQVEsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUN0QyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXJCLE9BQU0sS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUNsQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2YsTUFBTTtTQUNQO1FBQ0QsSUFBRyxLQUFLLENBQUMsUUFBUSxFQUFDO1lBQ2hCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDekM7S0FDRjtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQXdDLENBQUMsYUFBb0MsRUFBRSxNQUFjLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUN4SixNQUFNLEVBQ04sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLEVBQ2xGLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFJvdXRlLFxuICBSb3V0ZXMsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IERhZmZFeHRlcm5hbFJvdXRlckluc2VydGlvblN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vbW9kZWwvaW5zZXJ0aW9uLXN0cmF0ZWd5LnR5cGUnO1xuaW1wb3J0IHsgRGFmZkV4dGVybmFsUm91dGVUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWwvcm91dGUtdHlwZSc7XG5pbXBvcnQgeyBEYWZmUm91dGVXaXRoRGF0YVBhdGggfSBmcm9tICcuLi8uLi9tb2RlbC9yb3V0ZS13aXRoLWRhdGEtcGF0aCc7XG5cbi8qKlxuICogVGVzdHMgd2hldGhlciBvciBub3QgYSByb3V0ZSBtYXRjaGVzIGEgc3BlY2lmaWMgRGFmZm9kaWwgUm91dGUgdHlwZS5cbiAqXG4gKiBTZWUge0BsaW5rIERhZmZSb3V0ZVdpdGhEYXRhUGF0aH1cbiAqL1xuY29uc3Qgcm91dGVNYXRjaGVzUm91dGVUeXBlID0gKHJvdXRlOiBEYWZmUm91dGVXaXRoRGF0YVBhdGgsIHR5cGU6IERhZmZFeHRlcm5hbFJvdXRlVHlwZSk6IGJvb2xlYW4gPT4gcm91dGU/LmRhdGE/LmRhZmZFeHRlcm5hbFJvdXRlVHlwZSA9PT0gdHlwZTtcblxuLyoqXG4gKiBBZGRzIGEgcGF0aCB0byB0aGUgYGRhZmZQYXRoc2Agb2YgdGhlIGdpdmVuIHJvdXRlLlxuICpcbiAqIFNlZSB7QGxpbmsgRGFmZlJvdXRlV2l0aERhdGFQYXRofVxuICovXG5jb25zdCBhZGRSb3V0ZVRvRGFmZlBhdGhzOlxuICAocm91dGU6IERhZmZSb3V0ZVdpdGhEYXRhUGF0aCwgcGF0aDogc3RyaW5nKSA9PiBSb3V0ZSA9XG4gIChyb3V0ZTogRGFmZlJvdXRlV2l0aERhdGFQYXRoLCBwYXRoOiBzdHJpbmcpID0+IHJvdXRlLmRhdGEuZGFmZlBhdGhzICA9IHtcbiAgICAuLi5yb3V0ZS5kYXRhLmRhZmZQYXRocyxcbiAgICBbcGF0aF06IHBhdGgsXG4gIH07XG5cbmNvbnN0IG9wZXJhdGVPblJvdXRlID0gKGV4dGVybmFsUm91dGU6IFJvdXRlKTogKHJvdXRlOiBSb3V0ZSkgPT4gUm91dGUgPT5cbiAgKHJvdXRlOiBEYWZmUm91dGVXaXRoRGF0YVBhdGgpID0+IGFkZFJvdXRlVG9EYWZmUGF0aHMocm91dGUsIGV4dGVybmFsUm91dGUucGF0aCk7XG5cbi8qKlxuICogVHJhdmVyc2UgdGhlIHJvdXRlciBjb25maWcgdHJlZSwgaGFsdGluZyBhZnRlciB0aGUgZmlyc3QgbWF0Y2guXG4gKiBUaGlzIHRyYXZlcnNhbCBpcyBpbXBsZW1lbnRlZCBpbiBhIHByZS1vcmRlciBtYW5uZXIuIEFzIHN1Y2gsIGZvciBsYXJnZVxuICogY29uZmlndXJhdGlvbiB0cmVlcywgaXQgd2lsbCBiZSBtb3N0IGVmZmljaWVudCB0byBwbGFjZSBleHRlcm5hbGx5IHJvdXRlZFxuICogY29tcG9uZW50cyBhdCB0aGUgdG9wIG9mIHJvdXRlciBjb25maWd1cmF0aW9uLlxuICovXG5jb25zdCB0cmF2ZXJzZVJvdXRlVHJlZSA9IChyb3V0ZXM6IFJvdXRlcyA9IFtdLCBtYXRjaGVyOiAocm91dGU6IFJvdXRlKSA9PiBib29sZWFuLCBvcGVyYXRlOiAocm91dGU6IFJvdXRlKSA9PiB2b2lkKTogUm91dGVzID0+IHtcbiAgaWYocm91dGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiByb3V0ZXM7XG4gIH1cblxuICBjb25zdCBzdGFjazogUm91dGVzID0gW107XG4gIGNvbnN0IHRyZWVSb290ID0geyBjaGlsZHJlbjogcm91dGVzIH07XG4gIHN0YWNrLnB1c2godHJlZVJvb3QpO1xuXG4gIHdoaWxlKHN0YWNrLmxlbmd0aCkge1xuICAgIGNvbnN0IHJvdXRlID0gc3RhY2sucG9wKCk7XG4gICAgaWYobWF0Y2hlcihyb3V0ZSkpIHtcbiAgICAgIG9wZXJhdGUocm91dGUpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmKHJvdXRlLmNoaWxkcmVuKXtcbiAgICAgIHN0YWNrLnB1c2goLi4ucm91dGUuY2hpbGRyZW4ucmV2ZXJzZSgpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJvdXRlcztcbn07XG5cbi8qKlxuICogQSByb3V0ZSBpbnNlcnRpb24gc3RyYXRlZ3kgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBlbmQgZXh0ZXJuYWwgcm91dGVzIG9udG9cbiAqIGV4aXN0aW5nIEFuZ3VsYXIgcm91dGVzLiBUaGlzIGNhbiBiZSB1c2VmdWwgd2hlbiB5b3UgbmVlZCB0byByb3V0ZSB0b1xuICogYW4gZXhpc3RpbmcgbGF6eS1sb2FkZWQgbW9kdWxlIGZyb20gbXVsdGlwbGUgZXh0ZXJuYWxseSBkZWZpbmVkIHVybHMuXG4gKlxuICogVGhpcyBzaG91bGQgYmUgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZSB7QGxpbmsgZGFmZkRhdGFQYXRoVXJsTWF0Y2hlcn0gdG8gbWF0Y2ggbGF6eS1sb2FkZWQgbW9kdWxlcyB3aXRoXG4gKiBhc3NvY2lhdGVkIGV4dGVybmFsIHVybHMuXG4gKlxuICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gcHJvdmlkZSB0aGUgaW5zZXJ0aW9uIHN0cmF0ZWd5IGluIHRoZSB7QGxpbmsgRGFmZkV4dGVybmFsUm91dGVyTW9kdWxlfSBhcyBiZWxvdy5cbiAqXG4gKiBgYGB0c1xuICogRGFmZkV4dGVybmFsUm91dGVyTW9kdWxlLmZvclJvb3Qoe30sIFtcbiAqICB7XG4gKiAgICB0eXBlOiAnQ0FURUdPUlknLFxuICogICAgaW5zZXJ0aW9uU3RyYXRlZ3k6IGRhZmZJbnNlcnREYXRhUGF0aFN0cmF0ZWd5LFxuICogICAgcm91dGU6IHt9XG4gKiAgfVxuICogXSxcbiAqIGBgYFxuICpcbiAqIFRoZW4sIHlvdSBjYW4gbWF0Y2ggaXQgd2l0aCBhbiBhc3NvY2lhdGVkIHJvdXRlIGRlZmluZWQgaW4geW91ciBSb3V0aW5nXG4gKiBjb25maWd1cmF0aW9uIHdpdGggdGhlIHtAbGluayBkYWZmRGF0YVBhdGhVcmxNYXRjaGVyfS5cbiAqXG4gKiBgYGB0c1xuICogIGV4cG9ydCBjb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAqICAgIHtcbiAqICAgICAgbWF0Y2hlcjogZGFmZkRhdGFQYXRoVXJsTWF0Y2hlcixcbiAqICAgICAgZGF0YToge1xuICogICAgICAgIGRhZmZFeHRlcm5hbFJvdXRlVHlwZTogXCJDQVRFR09SWVwiLFxuICogICAgICB9LFxuICogICAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2R1bGUnKS50aGVuKChtKSA9PiBtLk15Q2F0ZWdvcnlNb2R1bGUpLFxuICogICAgfVxuICogXVxuICogYGBgXG4gKlxuICogU2VlIHtAbGluayBEYWZmUm91dGVXaXRoRGF0YVBhdGh9XG4gKlxuICovXG5leHBvcnQgY29uc3QgZGFmZkluc2VydERhdGFQYXRoU3RyYXRlZ3k6IERhZmZFeHRlcm5hbFJvdXRlckluc2VydGlvblN0cmF0ZWd5ID0gKGV4dGVybmFsUm91dGU6IERhZmZSb3V0ZVdpdGhEYXRhUGF0aCwgcm91dGVzOiBSb3V0ZXMpID0+IHRyYXZlcnNlUm91dGVUcmVlKFxuICByb3V0ZXMsXG4gIChyb3V0ZSkgPT4gcm91dGVNYXRjaGVzUm91dGVUeXBlKHJvdXRlLCBleHRlcm5hbFJvdXRlLmRhdGE/LmRhZmZFeHRlcm5hbFJvdXRlVHlwZSksXG4gIG9wZXJhdGVPblJvdXRlKGV4dGVybmFsUm91dGUpLFxuKTtcbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { daffUriTruncateLeadingSlash } from '@daffodil/core/routing';
2
+ /**
3
+ * A UrlMatcher that does an exact match against a path stored in the special
4
+ * configuration fields that External Router stores on a Route's data.
5
+ *
6
+ * ```ts
7
+ * export const routes: Routes = [
8
+ * {
9
+ * matcher: daffDataPathUrlMatcher,
10
+ * data: {
11
+ * daffExternalRouteType: "CATEGORY",
12
+ * },
13
+ * loadChildren: () => import('./category/category.module').then((m) => m.ShopCategoryModule),
14
+ * }
15
+ * ]
16
+ * ```
17
+ * {@link daffInsertDataPathStrategy }
18
+ * {@link DaffRouteWithDataPath }
19
+ */
20
+ export const daffDataPathUrlMatcher = (segments, group, route) => {
21
+ const path = daffUriTruncateLeadingSlash(segments.reduce((acc, segment) => acc + '/' + segment.path, ''));
22
+ const paths = route?.data?.daffPaths;
23
+ // If we don't have any paths, we can safely fail a match.
24
+ if (!paths) {
25
+ return null;
26
+ }
27
+ // Otherwise, look up the path in the dictionary, failing if a match isn't found,
28
+ // but matching the entire segment if a match is found.
29
+ return path in paths ? { consumed: segments } : null;
30
+ };
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wYXRoLW1hdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2V4dGVybmFsLXJvdXRlci9zcmMvcm91dGVyL3VybC1tYXRjaGVyL2RhdGEtcGF0aC1tYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSXJFOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFlLENBQUMsUUFBc0IsRUFBRSxLQUFzQixFQUFFLEtBQTRCLEVBQUUsRUFBRTtJQUNqSSxNQUFNLElBQUksR0FBRywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEgsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUM7SUFFckMsMERBQTBEO0lBQzFELElBQUcsQ0FBQyxLQUFLLEVBQUU7UUFDVCxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsaUZBQWlGO0lBQ2pGLHVEQUF1RDtJQUN2RCxPQUFPLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDeEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVXJsTWF0Y2hlcixcbiAgVXJsU2VnbWVudCxcbiAgVXJsU2VnbWVudEdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBkYWZmVXJpVHJ1bmNhdGVMZWFkaW5nU2xhc2ggfSBmcm9tICdAZGFmZm9kaWwvY29yZS9yb3V0aW5nJztcblxuaW1wb3J0IHsgRGFmZlJvdXRlV2l0aERhdGFQYXRoIH0gZnJvbSAnLi4vLi4vbW9kZWwvcHVibGljX2FwaSc7XG5cbi8qKlxuICogQSBVcmxNYXRjaGVyIHRoYXQgZG9lcyBhbiBleGFjdCBtYXRjaCBhZ2FpbnN0IGEgcGF0aCBzdG9yZWQgaW4gdGhlIHNwZWNpYWxcbiAqIGNvbmZpZ3VyYXRpb24gZmllbGRzIHRoYXQgRXh0ZXJuYWwgUm91dGVyIHN0b3JlcyBvbiBhIFJvdXRlJ3MgZGF0YS5cbiAqXG4gKiBgYGB0c1xuICogIGV4cG9ydCBjb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAqICAgIHtcbiAqICAgICAgbWF0Y2hlcjogZGFmZkRhdGFQYXRoVXJsTWF0Y2hlcixcbiAqICAgICAgZGF0YToge1xuICogICAgICAgIGRhZmZFeHRlcm5hbFJvdXRlVHlwZTogXCJDQVRFR09SWVwiLFxuICogICAgICB9LFxuICogICAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2R1bGUnKS50aGVuKChtKSA9PiBtLlNob3BDYXRlZ29yeU1vZHVsZSksXG4gKiAgICB9XG4gKiBdXG4gKiBgYGBcbiAqIHtAbGluayBkYWZmSW5zZXJ0RGF0YVBhdGhTdHJhdGVneSB9XG4gKiB7QGxpbmsgRGFmZlJvdXRlV2l0aERhdGFQYXRoIH1cbiAqL1xuZXhwb3J0IGNvbnN0IGRhZmZEYXRhUGF0aFVybE1hdGNoZXI6IFVybE1hdGNoZXIgPSAoc2VnbWVudHM6IFVybFNlZ21lbnRbXSwgZ3JvdXA6IFVybFNlZ21lbnRHcm91cCwgcm91dGU6IERhZmZSb3V0ZVdpdGhEYXRhUGF0aCkgPT4ge1xuICBjb25zdCBwYXRoID0gZGFmZlVyaVRydW5jYXRlTGVhZGluZ1NsYXNoKHNlZ21lbnRzLnJlZHVjZSgoYWNjOiBzdHJpbmcsIHNlZ21lbnQpID0+IGFjYyArICcvJyArIHNlZ21lbnQucGF0aCwgJycpKTtcbiAgY29uc3QgcGF0aHMgPSByb3V0ZT8uZGF0YT8uZGFmZlBhdGhzO1xuXG4gIC8vIElmIHdlIGRvbid0IGhhdmUgYW55IHBhdGhzLCB3ZSBjYW4gc2FmZWx5IGZhaWwgYSBtYXRjaC5cbiAgaWYoIXBhdGhzKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIGxvb2sgdXAgdGhlIHBhdGggaW4gdGhlIGRpY3Rpb25hcnksIGZhaWxpbmcgaWYgYSBtYXRjaCBpc24ndCBmb3VuZCxcbiAgLy8gYnV0IG1hdGNoaW5nIHRoZSBlbnRpcmUgc2VnbWVudCBpZiBhIG1hdGNoIGlzIGZvdW5kLlxuICByZXR1cm4gcGF0aCBpbiBwYXRocyA/ICB7IGNvbnN1bWVkOiBzZWdtZW50cyB9IDogbnVsbDtcbn07XG5cbiJdfQ==