@daffodil/external-router 0.39.12 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/daffodil-external-router.d.ts +1 -1
- package/driver/daffodil-external-router-driver.d.ts +1 -0
- package/driver/in-memory/daffodil-external-router-driver-in-memory.d.ts +1 -1
- package/driver/in-memory/in-memory.module.d.ts +5 -0
- package/driver/in-memory/in-memory.service.d.ts +3 -0
- package/driver/in-memory/package.json +5 -6
- package/driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.d.ts +1 -1
- package/driver/magento/2.4.1/graphql/queries/resolve-url-v2.4.1.d.ts +1 -1
- package/driver/magento/2.4.1/magento.module.d.ts +5 -0
- package/driver/magento/2.4.1/magento.service.d.ts +3 -0
- package/driver/magento/2.4.1/package.json +5 -6
- package/driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.d.ts +1 -1
- package/driver/magento/2.4.2/graphql/queries/resolve-url-v2.4.2.d.ts +1 -1
- package/driver/magento/2.4.2/magento.module.d.ts +5 -0
- package/driver/magento/2.4.2/magento.service.d.ts +3 -0
- package/driver/magento/2.4.2/package.json +5 -6
- package/driver/magento/daffodil-external-router-driver-magento.d.ts +1 -0
- package/driver/magento/package.json +5 -6
- package/driver/package.json +5 -6
- package/driver/testing/daffodil-external-router-driver-testing.d.ts +1 -1
- package/driver/testing/package.json +5 -6
- package/driver/testing/testing.module.d.ts +5 -0
- package/driver/testing/testing.service.d.ts +3 -0
- package/{esm2015/config.js → esm2020/config.mjs} +0 -0
- package/esm2020/daffodil-external-router.mjs +5 -0
- package/{esm2015/driver/daffodil-external-router-driver.js → esm2020/driver/daffodil-external-router-driver.mjs} +0 -0
- package/esm2020/driver/in-memory/config.mjs +15 -0
- 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
- package/esm2020/driver/in-memory/in-memory.module.mjs +41 -0
- package/esm2020/driver/in-memory/in-memory.service.mjs +39 -0
- package/{esm2015/driver/in-memory/index.js → esm2020/driver/in-memory/index.mjs} +0 -0
- package/{esm2015/driver/in-memory/public_api.js → esm2020/driver/in-memory/public_api.mjs} +0 -0
- package/{esm2015/driver/index.js → esm2020/driver/index.mjs} +0 -0
- package/{esm2015/driver/interfaces/external-router-driver.interface.js → esm2020/driver/interfaces/external-router-driver.interface.mjs} +0 -0
- package/esm2020/driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.mjs +5 -0
- 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} +0 -0
- package/{esm2015/driver/magento/2.4.1/index.js → esm2020/driver/magento/2.4.1/index.mjs} +0 -0
- package/esm2020/driver/magento/2.4.1/magento.module.mjs +55 -0
- package/esm2020/driver/magento/2.4.1/magento.service.mjs +38 -0
- package/{esm2015/driver/magento/2.4.1/public_api.js → esm2020/driver/magento/2.4.1/public_api.mjs} +0 -0
- package/esm2020/driver/magento/2.4.1/transforms/resolution-to-resolvable-url.mjs +10 -0
- package/esm2020/driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.mjs +5 -0
- 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} +0 -0
- package/{esm2015/driver/magento/2.4.2/index.js → esm2020/driver/magento/2.4.2/index.mjs} +0 -0
- package/esm2020/driver/magento/2.4.2/magento.module.mjs +55 -0
- package/esm2020/driver/magento/2.4.2/magento.service.mjs +37 -0
- package/{esm2015/driver/magento/2.4.2/public_api.js → esm2020/driver/magento/2.4.2/public_api.mjs} +0 -0
- 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
- package/{esm2015/driver/magento/daffodil-external-router-driver-magento.js → esm2020/driver/magento/daffodil-external-router-driver-magento.mjs} +0 -0
- package/{esm2015/driver/magento/index.js → esm2020/driver/magento/index.mjs} +0 -0
- package/{esm2015/driver/magento/model/public_api.js → esm2020/driver/magento/model/public_api.mjs} +0 -0
- package/{esm2015/driver/magento/model/resolution-types.js → esm2020/driver/magento/model/resolution-types.mjs} +0 -0
- package/{esm2015/driver/magento/model/url-resolver-response.js → esm2020/driver/magento/model/url-resolver-response.mjs} +0 -0
- package/{esm2015/driver/magento/model/url-resolver.js → esm2020/driver/magento/model/url-resolver.mjs} +0 -0
- package/{esm2015/driver/magento/public_api.js → esm2020/driver/magento/public_api.mjs} +0 -0
- package/{esm2015/driver/magento/transforms/public_api.js → esm2020/driver/magento/transforms/public_api.mjs} +0 -0
- package/{esm2015/driver/magento/transforms/redirect-to-http.js → esm2020/driver/magento/transforms/redirect-to-http.mjs} +0 -0
- package/{esm2015/driver/not-found-resolution.js → esm2020/driver/not-found-resolution.mjs} +0 -0
- package/{esm2015/driver/public_api.js → esm2020/driver/public_api.mjs} +0 -0
- package/{esm2015/driver/testing/config.js → esm2020/driver/testing/config.mjs} +0 -0
- package/esm2020/driver/testing/daffodil-external-router-driver-testing.mjs +5 -0
- package/{esm2015/driver/testing/index.js → esm2020/driver/testing/index.mjs} +0 -0
- package/{esm2015/driver/testing/public_api.js → esm2020/driver/testing/public_api.mjs} +0 -0
- package/esm2020/driver/testing/testing.module.mjs +38 -0
- package/esm2020/driver/testing/testing.service.mjs +45 -0
- package/{esm2015/errors/no-wildcard.js → esm2020/errors/no-wildcard.mjs} +0 -0
- package/{esm2015/errors/unknown-type.js → esm2020/errors/unknown-type.mjs} +0 -0
- package/esm2020/external-router.module.mjs +31 -0
- package/{esm2015/model/insertion-strategy.type.js → esm2020/model/insertion-strategy.type.mjs} +0 -0
- package/{esm2015/model/public_api.js → esm2020/model/public_api.mjs} +0 -0
- package/{esm2015/model/resolvable-route.js → esm2020/model/resolvable-route.mjs} +0 -0
- package/{esm2015/model/route-info.js → esm2020/model/route-info.mjs} +0 -0
- package/{esm2015/model/route-type.js → esm2020/model/route-type.mjs} +0 -0
- package/{esm2015/model/route-with-data-path.js → esm2020/model/route-with-data-path.mjs} +0 -0
- package/{esm2015/model/route-without-path.js → esm2020/model/route-without-path.mjs} +0 -0
- package/{esm2015/model/type-route-pair.js → esm2020/model/type-route-pair.mjs} +0 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/esm2020/router/router.service.mjs +43 -0
- package/esm2020/router/strategies/insert-data-path.mjs +81 -0
- package/{esm2015/router/strategies/insert-route-before-wildcard.js → esm2020/router/strategies/insert-route-before-wildcard.mjs} +0 -0
- package/esm2020/router/url-matcher/data-path-matcher.mjs +31 -0
- package/{esm2015/routing/daffodil-external-router-routing.js → esm2020/routing/daffodil-external-router-routing.mjs} +0 -0
- package/{esm2015/routing/errors/client-error.js → esm2020/routing/errors/client-error.mjs} +0 -0
- package/{esm2015/routing/errors/not-found-error.js → esm2020/routing/errors/not-found-error.mjs} +0 -0
- package/{esm2015/routing/errors/permanent-redirect.js → esm2020/routing/errors/permanent-redirect.mjs} +0 -0
- package/{esm2015/routing/errors/server-error.js → esm2020/routing/errors/server-error.mjs} +0 -0
- package/{esm2015/routing/errors/temporary-redirect.js → esm2020/routing/errors/temporary-redirect.mjs} +0 -0
- package/esm2020/routing/guard/existence.guard.mjs +77 -0
- package/{esm2015/routing/index.js → esm2020/routing/index.mjs} +0 -0
- package/{esm2015/routing/processors/process-errors.js → esm2020/routing/processors/process-errors.mjs} +0 -0
- package/{esm2015/routing/processors/process-redirect.js → esm2020/routing/processors/process-redirect.mjs} +0 -0
- package/{esm2015/routing/public_api.js → esm2020/routing/public_api.mjs} +0 -0
- package/{esm2015/token/type-resolvable-routes.token.js → esm2020/token/type-resolvable-routes.token.mjs} +0 -0
- package/esm2020/transform/resolved-route-to-route.mjs +24 -0
- package/external-router.module.d.ts +5 -0
- package/fesm2015/{daffodil-external-router-driver-in-memory.js → daffodil-external-router-driver-in-memory.mjs} +28 -21
- package/fesm2015/daffodil-external-router-driver-in-memory.mjs.map +1 -0
- package/fesm2015/{daffodil-external-router-driver-magento-2.4.1.js → daffodil-external-router-driver-magento-2.4.1.mjs} +24 -20
- package/fesm2015/daffodil-external-router-driver-magento-2.4.1.mjs.map +1 -0
- package/fesm2015/{daffodil-external-router-driver-magento-2.4.2.js → daffodil-external-router-driver-magento-2.4.2.mjs} +24 -20
- package/fesm2015/daffodil-external-router-driver-magento-2.4.2.mjs.map +1 -0
- package/fesm2015/{daffodil-external-router-driver-magento.js → daffodil-external-router-driver-magento.mjs} +1 -1
- package/fesm2015/daffodil-external-router-driver-magento.mjs.map +1 -0
- package/fesm2015/daffodil-external-router-driver-testing.mjs +101 -0
- package/fesm2015/daffodil-external-router-driver-testing.mjs.map +1 -0
- package/fesm2015/{daffodil-external-router-driver.js → daffodil-external-router-driver.mjs} +1 -1
- package/fesm2015/daffodil-external-router-driver.mjs.map +1 -0
- package/fesm2015/daffodil-external-router-routing.mjs +173 -0
- package/fesm2015/daffodil-external-router-routing.mjs.map +1 -0
- package/fesm2015/{daffodil-external-router.js → daffodil-external-router.mjs} +28 -25
- package/fesm2015/daffodil-external-router.mjs.map +1 -0
- package/fesm2020/daffodil-external-router-driver-in-memory.mjs +98 -0
- package/fesm2020/daffodil-external-router-driver-in-memory.mjs.map +1 -0
- package/fesm2020/daffodil-external-router-driver-magento-2.4.1.mjs +122 -0
- package/fesm2020/daffodil-external-router-driver-magento-2.4.1.mjs.map +1 -0
- package/fesm2020/daffodil-external-router-driver-magento-2.4.2.mjs +122 -0
- package/fesm2020/daffodil-external-router-driver-magento-2.4.2.mjs.map +1 -0
- package/fesm2020/daffodil-external-router-driver-magento.mjs +22 -0
- package/fesm2020/daffodil-external-router-driver-magento.mjs.map +1 -0
- package/fesm2020/daffodil-external-router-driver-testing.mjs +99 -0
- package/fesm2020/daffodil-external-router-driver-testing.mjs.map +1 -0
- package/fesm2020/daffodil-external-router-driver.mjs +30 -0
- package/fesm2020/daffodil-external-router-driver.mjs.map +1 -0
- package/{fesm2015/daffodil-external-router-routing.js → fesm2020/daffodil-external-router-routing.mjs} +21 -19
- package/fesm2020/daffodil-external-router-routing.mjs.map +1 -0
- package/fesm2020/daffodil-external-router.mjs +291 -0
- package/fesm2020/daffodil-external-router.mjs.map +1 -0
- package/package.json +83 -15
- package/router/router.service.d.ts +3 -0
- package/routing/daffodil-external-router-routing.d.ts +1 -0
- package/routing/guard/existence.guard.d.ts +3 -0
- package/routing/package.json +5 -6
- package/bundles/daffodil-external-router-driver-in-memory.umd.js +0 -100
- package/bundles/daffodil-external-router-driver-in-memory.umd.js.map +0 -1
- package/bundles/daffodil-external-router-driver-in-memory.umd.min.js +0 -2
- package/bundles/daffodil-external-router-driver-in-memory.umd.min.js.map +0 -1
- package/bundles/daffodil-external-router-driver-magento-2.4.1.umd.js +0 -438
- package/bundles/daffodil-external-router-driver-magento-2.4.1.umd.js.map +0 -1
- package/bundles/daffodil-external-router-driver-magento-2.4.1.umd.min.js +0 -16
- package/bundles/daffodil-external-router-driver-magento-2.4.1.umd.min.js.map +0 -1
- package/bundles/daffodil-external-router-driver-magento-2.4.2.umd.js +0 -435
- package/bundles/daffodil-external-router-driver-magento-2.4.2.umd.js.map +0 -1
- package/bundles/daffodil-external-router-driver-magento-2.4.2.umd.min.js +0 -16
- package/bundles/daffodil-external-router-driver-magento-2.4.2.umd.min.js.map +0 -1
- package/bundles/daffodil-external-router-driver-magento.umd.js +0 -31
- package/bundles/daffodil-external-router-driver-magento.umd.js.map +0 -1
- package/bundles/daffodil-external-router-driver-magento.umd.min.js +0 -2
- package/bundles/daffodil-external-router-driver-magento.umd.min.js.map +0 -1
- package/bundles/daffodil-external-router-driver-testing.umd.js +0 -101
- package/bundles/daffodil-external-router-driver-testing.umd.js.map +0 -1
- package/bundles/daffodil-external-router-driver-testing.umd.min.js +0 -2
- package/bundles/daffodil-external-router-driver-testing.umd.min.js.map +0 -1
- package/bundles/daffodil-external-router-driver.umd.js +0 -39
- package/bundles/daffodil-external-router-driver.umd.js.map +0 -1
- package/bundles/daffodil-external-router-driver.umd.min.js +0 -2
- package/bundles/daffodil-external-router-driver.umd.min.js.map +0 -1
- package/bundles/daffodil-external-router-routing.umd.js +0 -505
- package/bundles/daffodil-external-router-routing.umd.js.map +0 -1
- package/bundles/daffodil-external-router-routing.umd.min.js +0 -16
- package/bundles/daffodil-external-router-routing.umd.min.js.map +0 -1
- package/bundles/daffodil-external-router.umd.js +0 -625
- package/bundles/daffodil-external-router.umd.js.map +0 -1
- package/bundles/daffodil-external-router.umd.min.js +0 -16
- package/bundles/daffodil-external-router.umd.min.js.map +0 -1
- package/daffodil-external-router.metadata.json +0 -1
- package/driver/daffodil-external-router-driver.metadata.json +0 -1
- package/driver/in-memory/daffodil-external-router-driver-in-memory.metadata.json +0 -1
- package/driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.metadata.json +0 -1
- package/driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.metadata.json +0 -1
- package/driver/magento/daffodil-external-router-driver-magento.metadata.json +0 -1
- package/driver/testing/daffodil-external-router-driver-testing.metadata.json +0 -1
- package/esm2015/daffodil-external-router.js +0 -6
- package/esm2015/driver/in-memory/config.js +0 -17
- package/esm2015/driver/in-memory/in-memory.module.js +0 -36
- package/esm2015/driver/in-memory/in-memory.service.js +0 -36
- package/esm2015/driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.js +0 -6
- package/esm2015/driver/magento/2.4.1/magento.module.js +0 -50
- package/esm2015/driver/magento/2.4.1/magento.service.js +0 -40
- package/esm2015/driver/magento/2.4.1/transforms/resolution-to-resolvable-url.js +0 -13
- package/esm2015/driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.js +0 -6
- package/esm2015/driver/magento/2.4.2/magento.module.js +0 -50
- package/esm2015/driver/magento/2.4.2/magento.service.js +0 -39
- package/esm2015/driver/testing/daffodil-external-router-driver-testing.js +0 -6
- package/esm2015/driver/testing/testing.module.js +0 -33
- package/esm2015/driver/testing/testing.service.js +0 -45
- package/esm2015/external-router.module.js +0 -26
- package/esm2015/router/router.service.js +0 -44
- package/esm2015/router/strategies/insert-data-path.js +0 -83
- package/esm2015/router/url-matcher/data-path-matcher.js +0 -32
- package/esm2015/routing/guard/existence.guard.js +0 -78
- package/esm2015/transform/resolved-route-to-route.js +0 -17
- package/fesm2015/daffodil-external-router-driver-in-memory.js.map +0 -1
- package/fesm2015/daffodil-external-router-driver-magento-2.4.1.js.map +0 -1
- package/fesm2015/daffodil-external-router-driver-magento-2.4.2.js.map +0 -1
- package/fesm2015/daffodil-external-router-driver-magento.js.map +0 -1
- package/fesm2015/daffodil-external-router-driver-testing.js +0 -93
- package/fesm2015/daffodil-external-router-driver-testing.js.map +0 -1
- package/fesm2015/daffodil-external-router-driver.js.map +0 -1
- package/fesm2015/daffodil-external-router-routing.js.map +0 -1
- package/fesm2015/daffodil-external-router.js.map +0 -1
- package/routing/daffodil-external-router-routing.metadata.json +0 -1
@@ -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 '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 "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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZW50by5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8vMi40LjIvc3JjL21hZ2VudG8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7OztBQUduRzs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTywrQkFBK0I7SUFFMUMsWUFDUSxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNuQixDQUFDO0lBRUosT0FBTyxDQUFDLEdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNmLEtBQUssQ0FBNkI7WUFDakMsS0FBSyxFQUFFLHFCQUFxQjtZQUM1QixTQUFTLEVBQUU7Z0JBQ1QsR0FBRzthQUNKO1NBQ0YsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxzQ0FBc0MsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDOztrS0FmVSwrQkFBK0I7c0tBQS9CLCtCQUErQixjQUY5QixNQUFNOzJGQUVQLCtCQUErQjtrQkFIM0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcG9sbG8gfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuaW1wb3J0IHsgRGFmZkV4dGVybmFsbHlSZXNvbHZhYmxlVXJsIH0gZnJvbSAnQGRhZmZvZGlsL2V4dGVybmFsLXJvdXRlcic7XG5pbXBvcnQgeyBEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXJJbnRlcmZhY2UgfSBmcm9tICdAZGFmZm9kaWwvZXh0ZXJuYWwtcm91dGVyL2RyaXZlcic7XG5pbXBvcnQgeyBNYWdlbnRvVXJsUmVzb2x2ZXJSZXNwb25zZSB9IGZyb20gJ0BkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8nO1xuXG5pbXBvcnQgeyBNYWdlbnRvUmVzb2x2ZVVybHYyNDIgfSBmcm9tICcuL2dyYXBocWwvcXVlcmllcy9yZXNvbHZlLXVybC12Mi40LjInO1xuaW1wb3J0IHsgdHJhbnNmb3JtUmVzb2x1dGlvblRvUmVzb2x2YWJsZVVybHYyNDIgfSBmcm9tICcuL3RyYW5zZm9ybXMvcmVzb2x1dGlvbi10by1yZXNvbHZhYmxlLXVybCc7XG5cblxuLyoqXG4gKiBUaGUgRGFmZkV4dGVybmFsUm91dGVyTWFnZW50b0RyaXZlciBpcyByZXNwb25zaWJsZSBmb3IgdHJhbnNsYXRpbmcgYW5cbiAqIGFyYml0cmFyeSBVUkkgaW50byBhIERhZmZFeHRlcm5hbGx5UmVzb2x2YWJsZVVybCB3aXRoIE1hZ2VudG8gZW52aXJvbm1lbnRzLlxuICpcbiAqIEBpbmhlcml0ZG9jXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEYWZmRXh0ZXJuYWxSb3V0ZXJNYWdlbnRvRHJpdmVyXG5pbXBsZW1lbnRzIERhZmZFeHRlcm5hbFJvdXRlckRyaXZlckludGVyZmFjZSB7XG4gIGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgYXBvbGxvOiBBcG9sbG8sXG4gICkge31cblxuICByZXNvbHZlKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxEYWZmRXh0ZXJuYWxseVJlc29sdmFibGVVcmw+IHtcbiAgICByZXR1cm4gdGhpcy5hcG9sbG9cbiAgICAgIC5xdWVyeTxNYWdlbnRvVXJsUmVzb2x2ZXJSZXNwb25zZT4oe1xuICAgICAgICBxdWVyeTogTWFnZW50b1Jlc29sdmVVcmx2MjQyLFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICB1cmwsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwKHJlc3BvbnNlID0+IHRyYW5zZm9ybVJlc29sdXRpb25Ub1Jlc29sdmFibGVVcmx2MjQyKHJlc3BvbnNlLmRhdGEudXJsUmVzb2x2ZXIpKSk7XG4gIH1cbn1cbiJdfQ==
|
package/{esm2015/driver/magento/2.4.2/public_api.js → esm2020/driver/magento/2.4.2/public_api.mjs}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
package/{esm2015/driver/magento/model/public_api.js → esm2020/driver/magento/model/public_api.mjs}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './index';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFmZm9kaWwtZXh0ZXJuYWwtcm91dGVyLWRyaXZlci10ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL3Rlc3Rpbmcvc3JjL2RhZmZvZGlsLWV4dGVybmFsLXJvdXRlci1kcml2ZXItdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
File without changes
|
File without changes
|
@@ -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=
|
File without changes
|
File without changes
|
@@ -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==
|
package/{esm2015/model/insertion-strategy.type.js → esm2020/model/insertion-strategy.type.mjs}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -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==
|
File without changes
|
@@ -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==
|
File without changes
|
File without changes
|
package/{esm2015/routing/errors/not-found-error.js → esm2020/routing/errors/not-found-error.mjs}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,77 @@
|
|
1
|
+
import { Injectable, Inject, } from '@angular/core';
|
2
|
+
import { Router, } from '@angular/router';
|
3
|
+
import { of, } from 'rxjs';
|
4
|
+
import { catchError, map, switchMap, } from 'rxjs/operators';
|
5
|
+
import { DaffRoutingUriNormalizer } from '@daffodil/core/routing';
|
6
|
+
import { DaffExternalRouter, DAFF_EXTERNAL_ROUTER_CONFIG, } from '@daffodil/external-router';
|
7
|
+
import { DaffExternalRouterDriver, } from '@daffodil/external-router/driver';
|
8
|
+
import { DaffExternalRouterNotFoundError } from '../errors/not-found-error';
|
9
|
+
import { DaffExternalRouterPermanentRedirectError } from '../errors/permanent-redirect';
|
10
|
+
import { DaffExternalRouterTemporaryRedirectError } from '../errors/temporary-redirect';
|
11
|
+
import { processErrors } from '../processors/process-errors';
|
12
|
+
import { processRedirects } from '../processors/process-redirect';
|
13
|
+
import * as i0 from "@angular/core";
|
14
|
+
import * as i1 from "@daffodil/external-router";
|
15
|
+
import * as i2 from "@angular/router";
|
16
|
+
import * as i3 from "@daffodil/core/routing";
|
17
|
+
/**
|
18
|
+
* The DaffExternalRouterExistenceGuard is responsible for guarding the wildcard route
|
19
|
+
* of an Angular App and either navigating to a resolved route upon successful resolution
|
20
|
+
* or navigating to the configured route upon a failed resolution.
|
21
|
+
*/
|
22
|
+
export class DaffExternalRouterExistenceGuard {
|
23
|
+
constructor(driver, externalRouter, router, config, urlNormalizer) {
|
24
|
+
this.driver = driver;
|
25
|
+
this.externalRouter = externalRouter;
|
26
|
+
this.router = router;
|
27
|
+
this.config = config;
|
28
|
+
this.urlNormalizer = urlNormalizer;
|
29
|
+
}
|
30
|
+
canActivate(next, state) {
|
31
|
+
return this.driver.resolve(this.urlNormalizer.normalize(state.url)).pipe(map((resolvedRoute) => processErrors(resolvedRoute)), switchMap(resolvedRoute => {
|
32
|
+
this.externalRouter.add(resolvedRoute);
|
33
|
+
return of(resolvedRoute);
|
34
|
+
}), map((resolvedRoute) => processRedirects(resolvedRoute)),
|
35
|
+
// Note that we have to use state.url as we want to ensure that we keep any fragments or query strings.
|
36
|
+
// When we succeed, redirect to the new route, as config has changed since we init'd.
|
37
|
+
map(() => this.router.parseUrl(state.url)),
|
38
|
+
// When we fail, we need to process errors as dictated by the error type.
|
39
|
+
// Handle redirects
|
40
|
+
catchError(error => {
|
41
|
+
if (!(error instanceof DaffExternalRouterPermanentRedirectError) &&
|
42
|
+
!(error instanceof DaffExternalRouterTemporaryRedirectError)) {
|
43
|
+
throw error;
|
44
|
+
}
|
45
|
+
return of(this.router.parseUrl(error.redirectUrl));
|
46
|
+
}),
|
47
|
+
// Handle "404"
|
48
|
+
catchError((error) => {
|
49
|
+
if (!(error instanceof DaffExternalRouterNotFoundError)) {
|
50
|
+
throw error;
|
51
|
+
}
|
52
|
+
return of(this.router.parseUrl(this.config.notFoundResolutionPath));
|
53
|
+
}),
|
54
|
+
//Otherwise something went horribly wrong and we need to bail out.
|
55
|
+
catchError((error) => {
|
56
|
+
//TODO(damienwebdev): Add a logging system.
|
57
|
+
//This log is intentional until we have a better logging system in place.
|
58
|
+
console.log(error);
|
59
|
+
return of(this.router.parseUrl(this.config.failedResolutionPath));
|
60
|
+
}));
|
61
|
+
}
|
62
|
+
}
|
63
|
+
/** @nocollapse */ /** @nocollapse */ DaffExternalRouterExistenceGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterExistenceGuard, deps: [{ token: DaffExternalRouterDriver }, { token: i1.DaffExternalRouter }, { token: i2.Router }, { token: DAFF_EXTERNAL_ROUTER_CONFIG }, { token: i3.DaffRoutingUriNormalizer }], target: i0.ɵɵFactoryTarget.Injectable });
|
64
|
+
/** @nocollapse */ /** @nocollapse */ DaffExternalRouterExistenceGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterExistenceGuard, providedIn: 'root' });
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffExternalRouterExistenceGuard, decorators: [{
|
66
|
+
type: Injectable,
|
67
|
+
args: [{
|
68
|
+
providedIn: 'root',
|
69
|
+
}]
|
70
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
71
|
+
type: Inject,
|
72
|
+
args: [DaffExternalRouterDriver]
|
73
|
+
}] }, { type: i1.DaffExternalRouter }, { type: i2.Router }, { type: undefined, decorators: [{
|
74
|
+
type: Inject,
|
75
|
+
args: [DAFF_EXTERNAL_ROUTER_CONFIG]
|
76
|
+
}] }, { type: i3.DaffRoutingUriNormalizer }]; } });
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhpc3RlbmNlLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvcm91dGluZy9zcmMvZ3VhcmQvZXhpc3RlbmNlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxNQUFNLEdBR1AsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBRUwsRUFBRSxHQUNILE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFVBQVUsRUFDVixHQUFHLEVBQ0gsU0FBUyxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEUsT0FBTyxFQUNMLGtCQUFrQixFQUVsQiwyQkFBMkIsR0FFNUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBRUwsd0JBQXdCLEdBQ3pCLE1BQU0sa0NBQWtDLENBQUM7QUFFMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEYsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQUVsRTs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUVVLE1BQXlDLEVBQ3pDLGNBQWtDLEVBQ2xDLE1BQWMsRUFFZCxNQUF1QyxFQUN2QyxhQUF1QztRQUx2QyxXQUFNLEdBQU4sTUFBTSxDQUFtQztRQUN6QyxtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUVkLFdBQU0sR0FBTixNQUFNLENBQWlDO1FBQ3ZDLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtJQUM3QyxDQUFDO0lBRUwsV0FBVyxDQUNULElBQTRCLEVBQzVCLEtBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN0RSxHQUFHLENBQUMsQ0FBQyxhQUEwQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsRUFDakYsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLGFBQTBDLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BGLHVHQUF1RztRQUN2RyxxRkFBcUY7UUFDckYsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyx5RUFBeUU7UUFDekUsbUJBQW1CO1FBQ25CLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixJQUNFLENBQUMsQ0FBQyxLQUFLLFlBQVksd0NBQXdDLENBQUM7Z0JBQzVELENBQUMsQ0FBQyxLQUFLLFlBQVksd0NBQXdDLENBQUMsRUFBRTtnQkFDOUQsTUFBTSxLQUFLLENBQUM7YUFDYjtZQUVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQztRQUNGLGVBQWU7UUFDZixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksK0JBQStCLENBQUMsRUFBRTtnQkFDdkQsTUFBTSxLQUFLLENBQUM7YUFDYjtZQUVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUMsQ0FBQztRQUVGLGtFQUFrRTtRQUNsRSxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQiwyQ0FBMkM7WUFDM0MseUVBQXlFO1lBQ3pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O21LQXJEVSxnQ0FBZ0Msa0JBRWpDLHdCQUF3QixxRUFJeEIsMkJBQTJCO3VLQU4xQixnQ0FBZ0MsY0FGL0IsTUFBTTsyRkFFUCxnQ0FBZ0M7a0JBSDVDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLHdCQUF3Qjs7MEJBSS9CLE1BQU07MkJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBJbmplY3RhYmxlLFxuICBJbmplY3QsXG4gIFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENhbkFjdGl2YXRlLFxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBSb3V0ZXIsXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXG4gIFVybFRyZWUsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBvZixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEYWZmUm91dGluZ1VyaU5vcm1hbGl6ZXIgfSBmcm9tICdAZGFmZm9kaWwvY29yZS9yb3V0aW5nJztcbmltcG9ydCB7XG4gIERhZmZFeHRlcm5hbFJvdXRlcixcbiAgRGFmZkV4dGVybmFsUm91dGVyQ29uZmlndXJhdGlvbixcbiAgREFGRl9FWFRFUk5BTF9ST1VURVJfQ09ORklHLFxuICBEYWZmRXh0ZXJuYWxseVJlc29sdmFibGVVcmwsXG59IGZyb20gJ0BkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXInO1xuaW1wb3J0IHtcbiAgRGFmZkV4dGVybmFsUm91dGVyRHJpdmVySW50ZXJmYWNlLFxuICBEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXIsXG59IGZyb20gJ0BkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyJztcblxuaW1wb3J0IHsgRGFmZkV4dGVybmFsUm91dGVyTm90Rm91bmRFcnJvciB9IGZyb20gJy4uL2Vycm9ycy9ub3QtZm91bmQtZXJyb3InO1xuaW1wb3J0IHsgRGFmZkV4dGVybmFsUm91dGVyUGVybWFuZW50UmVkaXJlY3RFcnJvciB9IGZyb20gJy4uL2Vycm9ycy9wZXJtYW5lbnQtcmVkaXJlY3QnO1xuaW1wb3J0IHsgRGFmZkV4dGVybmFsUm91dGVyVGVtcG9yYXJ5UmVkaXJlY3RFcnJvciB9IGZyb20gJy4uL2Vycm9ycy90ZW1wb3JhcnktcmVkaXJlY3QnO1xuaW1wb3J0IHsgcHJvY2Vzc0Vycm9ycyB9IGZyb20gJy4uL3Byb2Nlc3NvcnMvcHJvY2Vzcy1lcnJvcnMnO1xuaW1wb3J0IHsgcHJvY2Vzc1JlZGlyZWN0cyB9IGZyb20gJy4uL3Byb2Nlc3NvcnMvcHJvY2Vzcy1yZWRpcmVjdCc7XG5cbi8qKlxuICogVGhlIERhZmZFeHRlcm5hbFJvdXRlckV4aXN0ZW5jZUd1YXJkIGlzIHJlc3BvbnNpYmxlIGZvciBndWFyZGluZyB0aGUgd2lsZGNhcmQgcm91dGVcbiAqIG9mIGFuIEFuZ3VsYXIgQXBwIGFuZCBlaXRoZXIgbmF2aWdhdGluZyB0byBhIHJlc29sdmVkIHJvdXRlIHVwb24gc3VjY2Vzc2Z1bCByZXNvbHV0aW9uXG4gKiBvciBuYXZpZ2F0aW5nIHRvIHRoZSBjb25maWd1cmVkIHJvdXRlIHVwb24gYSBmYWlsZWQgcmVzb2x1dGlvbi5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERhZmZFeHRlcm5hbFJvdXRlckV4aXN0ZW5jZUd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERhZmZFeHRlcm5hbFJvdXRlckRyaXZlcilcbiAgICBwcml2YXRlIGRyaXZlcjogRGFmZkV4dGVybmFsUm91dGVyRHJpdmVySW50ZXJmYWNlLFxuICAgIHByaXZhdGUgZXh0ZXJuYWxSb3V0ZXI6IERhZmZFeHRlcm5hbFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIEBJbmplY3QoREFGRl9FWFRFUk5BTF9ST1VURVJfQ09ORklHKVxuICAgIHByaXZhdGUgY29uZmlnOiBEYWZmRXh0ZXJuYWxSb3V0ZXJDb25maWd1cmF0aW9uLFxuICAgIHByaXZhdGUgdXJsTm9ybWFsaXplcjogRGFmZlJvdXRpbmdVcmlOb3JtYWxpemVyLFxuICApIHsgfVxuXG4gIGNhbkFjdGl2YXRlKFxuICAgIG5leHQ6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXG4gICk6IE9ic2VydmFibGU8VXJsVHJlZSB8IGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5kcml2ZXIucmVzb2x2ZSh0aGlzLnVybE5vcm1hbGl6ZXIubm9ybWFsaXplKHN0YXRlLnVybCkpLnBpcGUoXG4gICAgICBtYXAoKHJlc29sdmVkUm91dGU6IERhZmZFeHRlcm5hbGx5UmVzb2x2YWJsZVVybCkgPT4gcHJvY2Vzc0Vycm9ycyhyZXNvbHZlZFJvdXRlKSksXG4gICAgICBzd2l0Y2hNYXAocmVzb2x2ZWRSb3V0ZSA9PiB7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxSb3V0ZXIuYWRkKHJlc29sdmVkUm91dGUpO1xuICAgICAgICByZXR1cm4gb2YocmVzb2x2ZWRSb3V0ZSk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgocmVzb2x2ZWRSb3V0ZTogRGFmZkV4dGVybmFsbHlSZXNvbHZhYmxlVXJsKSA9PiBwcm9jZXNzUmVkaXJlY3RzKHJlc29sdmVkUm91dGUpKSxcbiAgICAgIC8vIE5vdGUgdGhhdCB3ZSBoYXZlIHRvIHVzZSBzdGF0ZS51cmwgYXMgd2Ugd2FudCB0byBlbnN1cmUgdGhhdCB3ZSBrZWVwIGFueSBmcmFnbWVudHMgb3IgcXVlcnkgc3RyaW5ncy5cbiAgICAgIC8vIFdoZW4gd2Ugc3VjY2VlZCwgcmVkaXJlY3QgdG8gdGhlIG5ldyByb3V0ZSwgYXMgY29uZmlnIGhhcyBjaGFuZ2VkIHNpbmNlIHdlIGluaXQnZC5cbiAgICAgIG1hcCgoKSA9PiB0aGlzLnJvdXRlci5wYXJzZVVybChzdGF0ZS51cmwpKSxcbiAgICAgIC8vIFdoZW4gd2UgZmFpbCwgd2UgbmVlZCB0byBwcm9jZXNzIGVycm9ycyBhcyBkaWN0YXRlZCBieSB0aGUgZXJyb3IgdHlwZS5cbiAgICAgIC8vIEhhbmRsZSByZWRpcmVjdHNcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIShlcnJvciBpbnN0YW5jZW9mIERhZmZFeHRlcm5hbFJvdXRlclBlcm1hbmVudFJlZGlyZWN0RXJyb3IpICYmXG4gICAgICAgICAgIShlcnJvciBpbnN0YW5jZW9mIERhZmZFeHRlcm5hbFJvdXRlclRlbXBvcmFyeVJlZGlyZWN0RXJyb3IpKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YodGhpcy5yb3V0ZXIucGFyc2VVcmwoZXJyb3IucmVkaXJlY3RVcmwpKTtcbiAgICAgIH0pLFxuICAgICAgLy8gSGFuZGxlIFwiNDA0XCJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgRGFmZkV4dGVybmFsUm91dGVyTm90Rm91bmRFcnJvcikpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZih0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLmNvbmZpZy5ub3RGb3VuZFJlc29sdXRpb25QYXRoKSk7XG4gICAgICB9KSxcblxuICAgICAgLy9PdGhlcndpc2Ugc29tZXRoaW5nIHdlbnQgaG9ycmlibHkgd3JvbmcgYW5kIHdlIG5lZWQgdG8gYmFpbCBvdXQuXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAvL1RPRE8oZGFtaWVud2ViZGV2KTogQWRkIGEgbG9nZ2luZyBzeXN0ZW0uXG4gICAgICAgIC8vVGhpcyBsb2cgaXMgaW50ZW50aW9uYWwgdW50aWwgd2UgaGF2ZSBhIGJldHRlciBsb2dnaW5nIHN5c3RlbSBpbiBwbGFjZS5cbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICByZXR1cm4gb2YodGhpcy5yb3V0ZXIucGFyc2VVcmwodGhpcy5jb25maWcuZmFpbGVkUmVzb2x1dGlvblBhdGgpKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|