@daffodil/external-router 0.79.0 → 0.81.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/README.md +7 -110
- package/driver/magento/2.4.1/magento.module.d.ts +1 -0
- package/driver/magento/2.4.2/magento.module.d.ts +1 -0
- package/driver/magento/2.4.3/magento.module.d.ts +1 -0
- package/driver/magento/2.4.3/magento.service.d.ts +2 -1
- package/driver/magento/2.4.3/transforms/schema/category/category.d.ts +2 -0
- package/driver/magento/2.4.3/transforms/schema/clientify-url-path.d.ts +1 -0
- package/driver/magento/2.4.3/transforms/schema/product/base.d.ts +2 -0
- package/driver/magento/2.4.3/transforms/schema/product/bundle.d.ts +2 -0
- package/driver/magento/2.4.3/transforms/schema/product/configurable.d.ts +2 -0
- package/driver/magento/2.4.3/transforms/schema/product/product.d.ts +5 -0
- package/driver/magento/2.4.3/transforms/schema/product/simple.d.ts +2 -0
- package/driver/magento/2.4.3/transforms/schema/rescale-rating.d.ts +5 -0
- package/driver/magento/2.4.3/transforms/schema/transform-schema.d.ts +2 -0
- package/driver/magento/2.4.3/transforms/transform-client-urls.d.ts +2 -0
- package/driver/magento/model/category-route-product.d.ts +77 -0
- package/driver/magento/model/category-route.d.ts +41 -0
- package/driver/magento/model/product-route.d.ts +85 -0
- package/driver/magento/model/public_api.d.ts +2 -0
- package/driver/magento/model/routable.d.ts +14 -0
- package/driver/magento/model/route.d.ts +4 -34
- package/fesm2022/daffodil-external-router-driver-in-memory.mjs +7 -7
- package/fesm2022/daffodil-external-router-driver-in-memory.mjs.map +1 -1
- package/fesm2022/daffodil-external-router-driver-magento-2.4.1.mjs +8 -7
- package/fesm2022/daffodil-external-router-driver-magento-2.4.1.mjs.map +1 -1
- package/fesm2022/daffodil-external-router-driver-magento-2.4.2.mjs +8 -7
- package/fesm2022/daffodil-external-router-driver-magento-2.4.2.mjs.map +1 -1
- package/fesm2022/daffodil-external-router-driver-magento-2.4.3.mjs +222 -15
- package/fesm2022/daffodil-external-router-driver-magento-2.4.3.mjs.map +1 -1
- package/fesm2022/daffodil-external-router-driver-magento.mjs.map +1 -1
- package/fesm2022/daffodil-external-router-driver-testing.mjs +7 -7
- package/fesm2022/daffodil-external-router-driver-testing.mjs.map +1 -1
- package/fesm2022/daffodil-external-router-routing.mjs.map +1 -1
- package/fesm2022/daffodil-external-router.mjs.map +1 -1
- package/model/resolvable-route.d.ts +1 -0
- package/model/route-data.d.ts +13 -0
- package/package.json +1 -1
- package/esm2022/config.mjs +0 -15
- package/esm2022/daffodil-external-router.mjs +0 -5
- package/esm2022/driver/daffodil-external-router-driver.mjs +0 -5
- package/esm2022/driver/in-memory/config.mjs +0 -17
- package/esm2022/driver/in-memory/daffodil-external-router-driver-in-memory.mjs +0 -5
- package/esm2022/driver/in-memory/in-memory.module.mjs +0 -34
- package/esm2022/driver/in-memory/in-memory.service.mjs +0 -39
- package/esm2022/driver/in-memory/index.mjs +0 -2
- package/esm2022/driver/in-memory/provider.mjs +0 -12
- package/esm2022/driver/in-memory/public_api.mjs +0 -7
- package/esm2022/driver/index.mjs +0 -2
- package/esm2022/driver/interfaces/external-router-driver.interface.mjs +0 -11
- package/esm2022/driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.mjs +0 -5
- package/esm2022/driver/magento/2.4.1/graphql/queries/resolve-url-v2.4.1.mjs +0 -17
- package/esm2022/driver/magento/2.4.1/index.mjs +0 -2
- package/esm2022/driver/magento/2.4.1/magento.module.mjs +0 -48
- package/esm2022/driver/magento/2.4.1/magento.service.mjs +0 -38
- package/esm2022/driver/magento/2.4.1/public_api.mjs +0 -6
- package/esm2022/driver/magento/2.4.1/transforms/resolution-to-resolvable-url.mjs +0 -10
- package/esm2022/driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.mjs +0 -5
- package/esm2022/driver/magento/2.4.2/graphql/queries/resolve-url-v2.4.2.mjs +0 -17
- package/esm2022/driver/magento/2.4.2/index.mjs +0 -2
- package/esm2022/driver/magento/2.4.2/magento.module.mjs +0 -48
- package/esm2022/driver/magento/2.4.2/magento.service.mjs +0 -37
- package/esm2022/driver/magento/2.4.2/public_api.mjs +0 -6
- package/esm2022/driver/magento/2.4.2/transforms/resolution-to-resolvable-url.mjs +0 -10
- package/esm2022/driver/magento/2.4.3/daffodil-external-router-driver-magento-2.4.3.mjs +0 -5
- package/esm2022/driver/magento/2.4.3/graphql/queries/resolve.mjs +0 -30
- package/esm2022/driver/magento/2.4.3/index.mjs +0 -2
- package/esm2022/driver/magento/2.4.3/magento.module.mjs +0 -48
- package/esm2022/driver/magento/2.4.3/magento.service.mjs +0 -37
- package/esm2022/driver/magento/2.4.3/provider.mjs +0 -13
- package/esm2022/driver/magento/2.4.3/public_api.mjs +0 -7
- package/esm2022/driver/magento/2.4.3/transforms/resolution-to-resolvable-url.mjs +0 -15
- package/esm2022/driver/magento/daffodil-external-router-driver-magento.mjs +0 -5
- package/esm2022/driver/magento/index.mjs +0 -2
- package/esm2022/driver/magento/model/public_api.mjs +0 -2
- package/esm2022/driver/magento/model/resolution-types.mjs +0 -7
- package/esm2022/driver/magento/model/route-response.mjs +0 -2
- package/esm2022/driver/magento/model/route.mjs +0 -2
- package/esm2022/driver/magento/model/url-resolver-response.mjs +0 -2
- package/esm2022/driver/magento/model/url-resolver.mjs +0 -2
- package/esm2022/driver/magento/public_api.mjs +0 -6
- package/esm2022/driver/magento/transforms/public_api.mjs +0 -2
- package/esm2022/driver/magento/transforms/redirect-to-http.mjs +0 -5
- package/esm2022/driver/not-found-resolution.mjs +0 -13
- package/esm2022/driver/public_api.mjs +0 -6
- package/esm2022/driver/testing/config.mjs +0 -13
- package/esm2022/driver/testing/daffodil-external-router-driver-testing.mjs +0 -5
- package/esm2022/driver/testing/index.mjs +0 -2
- package/esm2022/driver/testing/provider.mjs +0 -12
- package/esm2022/driver/testing/public_api.mjs +0 -7
- package/esm2022/driver/testing/testing.module.mjs +0 -32
- package/esm2022/driver/testing/testing.service.mjs +0 -47
- package/esm2022/index.mjs +0 -2
- package/esm2022/model/public_api.mjs +0 -2
- package/esm2022/model/resolvable-route.mjs +0 -2
- package/esm2022/model/route-data.mjs +0 -2
- package/esm2022/model/route-type.mjs +0 -2
- package/esm2022/model/route-with-seo-data.mjs +0 -2
- package/esm2022/provide-external-router.mjs +0 -6
- package/esm2022/public_api.mjs +0 -7
- package/esm2022/routing/daffodil-external-router-routing.mjs +0 -5
- package/esm2022/routing/errors/client-error.mjs +0 -11
- package/esm2022/routing/errors/not-found-error.mjs +0 -11
- package/esm2022/routing/errors/permanent-redirect.mjs +0 -13
- package/esm2022/routing/errors/server-error.mjs +0 -11
- package/esm2022/routing/errors/temporary-redirect.mjs +0 -13
- package/esm2022/routing/guard/external-matcher-type.guard.mjs +0 -43
- package/esm2022/routing/helper/convert-to-path.mjs +0 -7
- package/esm2022/routing/index.mjs +0 -2
- package/esm2022/routing/processors/process-errors.mjs +0 -22
- package/esm2022/routing/processors/process-redirect.mjs +0 -18
- package/esm2022/routing/public_api.mjs +0 -5
@@ -52,10 +52,10 @@ class DaffExternalRouterMagentoDriver {
|
|
52
52
|
})
|
53
53
|
.pipe(map(response => transformResolutionToResolvableUrlv242(response.data.urlResolver)));
|
54
54
|
}
|
55
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
56
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
55
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterMagentoDriver, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
56
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterMagentoDriver, providedIn: 'root' }); }
|
57
57
|
}
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterMagentoDriver, decorators: [{
|
59
59
|
type: Injectable,
|
60
60
|
args: [{
|
61
61
|
providedIn: 'root',
|
@@ -65,6 +65,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
65
65
|
/**
|
66
66
|
* The module used to configure the {@link DaffExternalRouterDriver} for usage with Magento.
|
67
67
|
*
|
68
|
+
* @example
|
68
69
|
* ```ts
|
69
70
|
* @NgModule({
|
70
71
|
* declarations: [],
|
@@ -91,11 +92,11 @@ class DaffExternalRouterDriverMagentoModule {
|
|
91
92
|
],
|
92
93
|
};
|
93
94
|
}
|
94
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
95
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
96
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
95
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterDriverMagentoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
96
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterDriverMagentoModule, imports: [CommonModule] }); }
|
97
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterDriverMagentoModule, imports: [CommonModule] }); }
|
97
98
|
}
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterDriverMagentoModule, decorators: [{
|
99
100
|
type: NgModule,
|
100
101
|
args: [{
|
101
102
|
declarations: [],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"daffodil-external-router-driver-magento-2.4.2.mjs","sources":["../../../libs/external-router/driver/magento/2.4.2/src/graphql/queries/resolve-url-v2.4.2.ts","../../../libs/external-router/driver/magento/2.4.2/src/transforms/resolution-to-resolvable-url.ts","../../../libs/external-router/driver/magento/2.4.2/src/magento.service.ts","../../../libs/external-router/driver/magento/2.4.2/src/magento.module.ts","../../../libs/external-router/driver/magento/2.4.2/src/public_api.ts","../../../libs/external-router/driver/magento/2.4.2/src/daffodil-external-router-driver-magento-2.4.2.ts"],"sourcesContent":["import { gql } from 'apollo-angular';\n\nexport const DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME = 'MagentoResolveUrlv242';\n\n/**\n * This query retrieves a URL resolution from Magento and informs you about\n * what type of route the URL is.\n */\nexport const MagentoResolveUrlv242 = gql`\n\tquery ${DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME}($url: String!) {\n\t\turlResolver(url: $url) {\n\t\t\tentity_uid\n\t\t\trelative_url\n\t\t\tredirectCode\n\t\t\ttype\n\t\t}\n\t}\n`;\n","import {\n daffUriTruncateLeadingSlash,\n daffUriTruncateQueryFragment,\n} from '@daffodil/core/routing';\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION } from '@daffodil/external-router/driver';\nimport {\n MagentoUrlResolver,\n magentoTransformRedirectToHttpCode,\n} from '@daffodil/external-router/driver/magento';\n\n\nexport const transformResolutionToResolvableUrlv242 = (\n resolution: MagentoUrlResolver,\n): DaffExternallyResolvableUrl => (resolution ? {\n id: resolution.entity_uid,\n url: daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(resolution.relative_url)),\n type: resolution.type,\n code: magentoTransformRedirectToHttpCode(resolution.redirectCode),\n} : DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);\n","import { Injectable } from '@angular/core';\nimport { Apollo } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DaffExternalRouterDriverInterface } from '@daffodil/external-router/driver';\nimport { MagentoUrlResolverResponse } from '@daffodil/external-router/driver/magento';\n\nimport { MagentoResolveUrlv242 } from './graphql/queries/resolve-url-v2.4.2';\nimport { transformResolutionToResolvableUrlv242 } from './transforms/resolution-to-resolvable-url';\n\n\n/**\n * The DaffExternalRouterMagentoDriver is responsible for translating an\n * arbitrary URI into a DaffExternallyResolvableUrl with Magento environments.\n *\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffExternalRouterMagentoDriver\nimplements DaffExternalRouterDriverInterface {\n constructor(\n private apollo: Apollo,\n ) {}\n\n resolve(url: string): Observable<DaffExternallyResolvableUrl> {\n return this.apollo\n .query<MagentoUrlResolverResponse>({\n query: MagentoResolveUrlv242,\n variables: {\n url,\n },\n })\n .pipe(map(response => transformResolutionToResolvableUrlv242(response.data.urlResolver)));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { provideDaffMagentoCacheableOperation } from '@daffodil/driver/magento';\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport { DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME } from './graphql/queries/resolve-url-v2.4.2';\nimport { DaffExternalRouterMagentoDriver } from './magento.service';\n\n/**\n * The module used to configure the {@link DaffExternalRouterDriver} for usage with Magento.\n *\n * ```ts\n * @NgModule({\n * declarations: [],\n * imports: [\n * ...\n * DaffExternalRouterDriverMagentoModule.forRoot()\n * ],\n * })\n * export class AppModule{}\n * ```\n *\n * Note that this package depends upon ApolloClient, as the Magento driver uses GraphQl to make it's API calls.\n */\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class DaffExternalRouterDriverMagentoModule {\n\n /**\n * Configures the package for the root injector.\n */\n static forRoot(): ModuleWithProviders<DaffExternalRouterDriverMagentoModule> {\n return {\n ngModule: DaffExternalRouterDriverMagentoModule,\n providers: [\n provideDaffExternalRouterDriver(DaffExternalRouterMagentoDriver),\n provideDaffMagentoCacheableOperation(DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME),\n ],\n };\n }\n}\n","/*\n * Public API Surface of @daffodil/external-router/driver/magento/2.4.2\n */\n\nexport { DaffExternalRouterMagentoDriver } from './magento.service';\nexport { DaffExternalRouterDriverMagentoModule } from './magento.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAEO,MAAM,mCAAmC,GAAG,uBAAuB
|
1
|
+
{"version":3,"file":"daffodil-external-router-driver-magento-2.4.2.mjs","sources":["../../../libs/external-router/driver/magento/2.4.2/src/graphql/queries/resolve-url-v2.4.2.ts","../../../libs/external-router/driver/magento/2.4.2/src/transforms/resolution-to-resolvable-url.ts","../../../libs/external-router/driver/magento/2.4.2/src/magento.service.ts","../../../libs/external-router/driver/magento/2.4.2/src/magento.module.ts","../../../libs/external-router/driver/magento/2.4.2/src/public_api.ts","../../../libs/external-router/driver/magento/2.4.2/src/daffodil-external-router-driver-magento-2.4.2.ts"],"sourcesContent":["import { gql } from 'apollo-angular';\n\nexport const DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME = 'MagentoResolveUrlv242';\n\n/**\n * This query retrieves a URL resolution from Magento and informs you about\n * what type of route the URL is.\n */\nexport const MagentoResolveUrlv242 = gql`\n\tquery ${DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME}($url: String!) {\n\t\turlResolver(url: $url) {\n\t\t\tentity_uid\n\t\t\trelative_url\n\t\t\tredirectCode\n\t\t\ttype\n\t\t}\n\t}\n`;\n","import {\n daffUriTruncateLeadingSlash,\n daffUriTruncateQueryFragment,\n} from '@daffodil/core/routing';\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION } from '@daffodil/external-router/driver';\nimport {\n MagentoUrlResolver,\n magentoTransformRedirectToHttpCode,\n} from '@daffodil/external-router/driver/magento';\n\n\nexport const transformResolutionToResolvableUrlv242 = (\n resolution: MagentoUrlResolver,\n): DaffExternallyResolvableUrl => (resolution ? {\n id: resolution.entity_uid,\n url: daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(resolution.relative_url)),\n type: resolution.type,\n code: magentoTransformRedirectToHttpCode(resolution.redirectCode),\n} : DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);\n","import { Injectable } from '@angular/core';\nimport { Apollo } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DaffExternalRouterDriverInterface } from '@daffodil/external-router/driver';\nimport { MagentoUrlResolverResponse } from '@daffodil/external-router/driver/magento';\n\nimport { MagentoResolveUrlv242 } from './graphql/queries/resolve-url-v2.4.2';\nimport { transformResolutionToResolvableUrlv242 } from './transforms/resolution-to-resolvable-url';\n\n\n/**\n * The DaffExternalRouterMagentoDriver is responsible for translating an\n * arbitrary URI into a DaffExternallyResolvableUrl with Magento environments.\n *\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffExternalRouterMagentoDriver\nimplements DaffExternalRouterDriverInterface {\n constructor(\n private apollo: Apollo,\n ) {}\n\n resolve(url: string): Observable<DaffExternallyResolvableUrl> {\n return this.apollo\n .query<MagentoUrlResolverResponse>({\n query: MagentoResolveUrlv242,\n variables: {\n url,\n },\n })\n .pipe(map(response => transformResolutionToResolvableUrlv242(response.data.urlResolver)));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { provideDaffMagentoCacheableOperation } from '@daffodil/driver/magento';\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport { DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME } from './graphql/queries/resolve-url-v2.4.2';\nimport { DaffExternalRouterMagentoDriver } from './magento.service';\n\n/**\n * The module used to configure the {@link DaffExternalRouterDriver} for usage with Magento.\n *\n * @example\n * ```ts\n * @NgModule({\n * declarations: [],\n * imports: [\n * ...\n * DaffExternalRouterDriverMagentoModule.forRoot()\n * ],\n * })\n * export class AppModule{}\n * ```\n *\n * Note that this package depends upon ApolloClient, as the Magento driver uses GraphQl to make it's API calls.\n */\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class DaffExternalRouterDriverMagentoModule {\n\n /**\n * Configures the package for the root injector.\n */\n static forRoot(): ModuleWithProviders<DaffExternalRouterDriverMagentoModule> {\n return {\n ngModule: DaffExternalRouterDriverMagentoModule,\n providers: [\n provideDaffExternalRouterDriver(DaffExternalRouterMagentoDriver),\n provideDaffMagentoCacheableOperation(DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME),\n ],\n };\n }\n}\n","/*\n * Public API Surface of @daffodil/external-router/driver/magento/2.4.2\n */\n\nexport { DaffExternalRouterMagentoDriver } from './magento.service';\nexport { DaffExternalRouterDriverMagentoModule } from './magento.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAEO,MAAM,mCAAmC,GAAG,uBAAuB;AAE1E;;;AAGG;AACI,MAAM,qBAAqB,GAAG,GAAG,CAAA;SAC/B,mCAAmC,CAAA;;;;;;;;CAQ3C;;ACLM,MAAM,sCAAsC,GAAG,CACpD,UAA8B,MACG,UAAU,GAAG;IAC9C,EAAE,EAAE,UAAU,CAAC,UAAU;IACzB,GAAG,EAAE,2BAA2B,CAAC,4BAA4B,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACvF,IAAI,EAAE,UAAU,CAAC,IAAI;AACrB,IAAA,IAAI,EAAE,kCAAkC,CAAC,UAAU,CAAC,YAAY,CAAC;AAClE,CAAA,GAAG,yCAAyC,CAAC;;ACL9C;;;;;AAKG;MAIU,+BAA+B,CAAA;AAE1C,IAAA,WAAA,CACU,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM;;AAGhB,IAAA,OAAO,CAAC,GAAW,EAAA;QACjB,OAAO,IAAI,CAAC;AACT,aAAA,KAAK,CAA6B;AACjC,YAAA,KAAK,EAAE,qBAAqB;AAC5B,YAAA,SAAS,EAAE;gBACT,GAAG;AACJ,aAAA;SACF;AACA,aAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,sCAAsC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;;iIAdlF,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA/B,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cAF9B,MAAM,EAAA,CAAA,CAAA;;2FAEP,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACVD;;;;;;;;;;;;;;;;AAgBG;MAKU,qCAAqC,CAAA;AAEhD;;AAEG;AACH,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,qCAAqC;AAC/C,YAAA,SAAS,EAAE;gBACT,+BAA+B,CAAC,+BAA+B,CAAC;gBAChE,oCAAoC,CAAC,mCAAmC,CAAC;AAC1E,aAAA;SACF;;iIAZQ,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArC,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qCAAqC,YAFtC,YAAY,CAAA,EAAA,CAAA,CAAA;AAEX,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qCAAqC,YAFtC,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAEX,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAJjD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;AChCD;;AAEG;;ACFH;;AAEG;;;;"}
|
@@ -1,12 +1,12 @@
|
|
1
|
+
import { DOCUMENT, CommonModule } from '@angular/common';
|
1
2
|
import * as i0 from '@angular/core';
|
2
|
-
import { Injectable, NgModule, makeEnvironmentProviders } from '@angular/core';
|
3
|
+
import { Injectable, Inject, NgModule, makeEnvironmentProviders } from '@angular/core';
|
3
4
|
import * as i1 from 'apollo-angular';
|
4
5
|
import { gql } from 'apollo-angular';
|
5
6
|
import { map } from 'rxjs/operators';
|
6
7
|
import { daffUriTruncateLeadingSlash, daffUriTruncateQueryFragment } from '@daffodil/core/routing';
|
7
8
|
import { DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION, provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';
|
8
9
|
import { magentoTransformRedirectToHttpCode } from '@daffodil/external-router/driver/magento';
|
9
|
-
import { CommonModule } from '@angular/common';
|
10
10
|
import { provideDaffMagentoCacheableOperation } from '@daffodil/driver/magento';
|
11
11
|
|
12
12
|
const DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME = 'MagentoResolveUrlv243';
|
@@ -23,9 +23,44 @@ const MagentoResolveUrlv243 = gql `
|
|
23
23
|
... on CategoryInterface {
|
24
24
|
uid
|
25
25
|
name
|
26
|
-
meta_description
|
27
26
|
meta_title
|
28
27
|
canonical_url
|
28
|
+
products {
|
29
|
+
items {
|
30
|
+
name
|
31
|
+
meta_description
|
32
|
+
meta_title
|
33
|
+
canonical_url
|
34
|
+
sku
|
35
|
+
review_count
|
36
|
+
rating_summary
|
37
|
+
image {
|
38
|
+
url
|
39
|
+
}
|
40
|
+
price_range {
|
41
|
+
minimum_price {
|
42
|
+
regular_price {
|
43
|
+
currency
|
44
|
+
value
|
45
|
+
}
|
46
|
+
final_price {
|
47
|
+
currency
|
48
|
+
value
|
49
|
+
}
|
50
|
+
}
|
51
|
+
maximum_price {
|
52
|
+
regular_price {
|
53
|
+
currency
|
54
|
+
value
|
55
|
+
}
|
56
|
+
final_price {
|
57
|
+
currency
|
58
|
+
value
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
29
64
|
}
|
30
65
|
... on ProductInterface {
|
31
66
|
uid
|
@@ -33,23 +68,190 @@ const MagentoResolveUrlv243 = gql `
|
|
33
68
|
meta_description
|
34
69
|
meta_title
|
35
70
|
canonical_url
|
71
|
+
sku
|
72
|
+
review_count
|
73
|
+
rating_summary
|
74
|
+
image {
|
75
|
+
url
|
76
|
+
}
|
77
|
+
stock_status
|
78
|
+
price_range {
|
79
|
+
minimum_price {
|
80
|
+
regular_price {
|
81
|
+
currency
|
82
|
+
value
|
83
|
+
}
|
84
|
+
final_price {
|
85
|
+
currency
|
86
|
+
value
|
87
|
+
}
|
88
|
+
}
|
89
|
+
maximum_price {
|
90
|
+
regular_price {
|
91
|
+
currency
|
92
|
+
value
|
93
|
+
}
|
94
|
+
final_price {
|
95
|
+
currency
|
96
|
+
value
|
97
|
+
}
|
98
|
+
}
|
99
|
+
}
|
36
100
|
}
|
37
101
|
}
|
38
102
|
}
|
39
103
|
`;
|
40
104
|
|
41
|
-
|
105
|
+
/**
|
106
|
+
* Rescales a rating value from it's max rating
|
107
|
+
* to a scale of 5.
|
108
|
+
*/
|
109
|
+
const rescaleRatingOutOf5 = (rating, max) => (((rating ?? 0) / max) * 5).toPrecision(2);
|
110
|
+
|
111
|
+
const transformMagentoBaseProduct = (product) => ({
|
112
|
+
'@context': 'https://schema.org/',
|
113
|
+
'@type': 'Product',
|
114
|
+
url: product.canonical_url,
|
115
|
+
sku: product.sku,
|
116
|
+
name: product.meta_title ?? product.name ?? '',
|
117
|
+
...(product.meta_description && { description: product.meta_description }),
|
118
|
+
...(product.review_count > 0 && { aggregateRating: {
|
119
|
+
'@type': 'AggregateRating',
|
120
|
+
ratingValue: rescaleRatingOutOf5(product.rating_summary, 100),
|
121
|
+
reviewCount: product.review_count,
|
122
|
+
} }),
|
123
|
+
image: product.image?.url,
|
124
|
+
});
|
125
|
+
|
126
|
+
const transformMagentoBundleProduct = (resolution) => ({
|
127
|
+
...transformMagentoBaseProduct(resolution),
|
128
|
+
offers: {
|
129
|
+
'@type': 'AggregateOffer',
|
130
|
+
lowPrice: resolution.price_range.minimum_price.final_price.value,
|
131
|
+
highPrice: resolution.price_range.maximum_price.final_price.value,
|
132
|
+
priceCurrency: resolution.price_range.maximum_price.final_price.currency,
|
133
|
+
},
|
134
|
+
});
|
135
|
+
|
136
|
+
const transformMagentoConfigurableProduct = (resolution) => ({
|
137
|
+
...transformMagentoBaseProduct(resolution),
|
138
|
+
offers: {
|
139
|
+
'@type': 'AggregateOffer',
|
140
|
+
lowPrice: resolution.price_range.minimum_price.final_price.value,
|
141
|
+
highPrice: resolution.price_range.maximum_price.final_price.value,
|
142
|
+
priceCurrency: resolution.price_range.maximum_price.final_price.currency,
|
143
|
+
},
|
144
|
+
});
|
145
|
+
|
146
|
+
const transformMagentoSimpleProduct = (resolution) => ({
|
147
|
+
...transformMagentoBaseProduct(resolution),
|
148
|
+
offers: {
|
149
|
+
'@type': 'Offer',
|
150
|
+
url: resolution.canonical_url,
|
151
|
+
...(resolution.stock_status && {
|
152
|
+
availability: resolution.stock_status === 'IN_STOCK' ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
|
153
|
+
}),
|
154
|
+
priceSpecification: [
|
155
|
+
{
|
156
|
+
'@type': 'UnitPriceSpecification',
|
157
|
+
price: resolution.price_range.maximum_price.final_price.value,
|
158
|
+
priceCurrency: resolution.price_range.maximum_price.final_price.currency,
|
159
|
+
},
|
160
|
+
{
|
161
|
+
'@type': 'UnitPriceSpecification',
|
162
|
+
priceType: 'https://schema.org/ListPrice',
|
163
|
+
price: resolution.price_range.maximum_price.regular_price.value,
|
164
|
+
priceCurrency: resolution.price_range.maximum_price.regular_price.currency,
|
165
|
+
},
|
166
|
+
],
|
167
|
+
},
|
168
|
+
});
|
169
|
+
|
170
|
+
/**
|
171
|
+
* Computes supplementary SEO schema for Magento product routes.
|
172
|
+
*/
|
173
|
+
const transformMagentoProductSchema = (resolution) => {
|
174
|
+
switch (resolution.__typename) {
|
175
|
+
case 'BundleProduct':
|
176
|
+
return transformMagentoBundleProduct(resolution);
|
177
|
+
case 'ConfigurableProduct':
|
178
|
+
return transformMagentoConfigurableProduct(resolution);
|
179
|
+
case 'SimpleProduct':
|
180
|
+
return transformMagentoSimpleProduct(resolution);
|
181
|
+
default:
|
182
|
+
return transformMagentoBaseProduct(resolution);
|
183
|
+
}
|
184
|
+
};
|
185
|
+
|
186
|
+
const transformMagentoCategorySchema = (resolution) => ({
|
187
|
+
'@context': 'https://schema.org',
|
188
|
+
'@type': 'ItemList',
|
189
|
+
itemListElement: resolution.products.items.map((item, index) => ({
|
190
|
+
'@type': 'ListItem',
|
191
|
+
position: index,
|
192
|
+
item: transformMagentoProductSchema({
|
193
|
+
...item,
|
194
|
+
meta_description: undefined,
|
195
|
+
stock_status: undefined,
|
196
|
+
}),
|
197
|
+
})),
|
198
|
+
});
|
199
|
+
|
200
|
+
const transformSchema = (resolution) => {
|
201
|
+
switch (resolution.type) {
|
202
|
+
case 'PRODUCT':
|
203
|
+
return transformMagentoProductSchema(resolution);
|
204
|
+
case 'CATEGORY':
|
205
|
+
return transformMagentoCategorySchema(resolution);
|
206
|
+
default:
|
207
|
+
return null;
|
208
|
+
}
|
209
|
+
};
|
210
|
+
|
211
|
+
const transformResolutionToResolvableUrlv243 = (resolution) => (resolution && (resolution.type === 'CATEGORY' || resolution.type === 'PRODUCT') ? {
|
42
212
|
id: resolution.uid,
|
43
213
|
url: daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(resolution.relative_url)),
|
44
214
|
type: resolution.type,
|
45
215
|
code: magentoTransformRedirectToHttpCode(resolution.redirect_code),
|
46
216
|
data: {
|
47
|
-
canonical_url: resolution
|
217
|
+
canonical_url: resolution?.canonical_url,
|
48
218
|
title: resolution.meta_title ?? resolution.name ?? '',
|
49
219
|
meta_description: resolution.meta_description,
|
220
|
+
schema: {
|
221
|
+
...transformSchema(resolution),
|
222
|
+
},
|
50
223
|
},
|
51
224
|
} : DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);
|
52
225
|
|
226
|
+
const clientifyUrlPath = (path, domain) => path ? new URL(path, domain).toString() : path;
|
227
|
+
|
228
|
+
const transformClientUrls = (route, origin) => {
|
229
|
+
if (!route) {
|
230
|
+
return route;
|
231
|
+
}
|
232
|
+
switch (route.type) {
|
233
|
+
case 'CATEGORY':
|
234
|
+
return {
|
235
|
+
...route,
|
236
|
+
canonical_url: clientifyUrlPath(route.canonical_url, origin),
|
237
|
+
products: {
|
238
|
+
items: route.products.items.map((product) => ({
|
239
|
+
...product,
|
240
|
+
canonical_url: clientifyUrlPath(product.canonical_url, origin),
|
241
|
+
})),
|
242
|
+
},
|
243
|
+
};
|
244
|
+
case 'PRODUCT':
|
245
|
+
return {
|
246
|
+
...route,
|
247
|
+
canonical_url: clientifyUrlPath(route.canonical_url, origin),
|
248
|
+
};
|
249
|
+
default:
|
250
|
+
return route;
|
251
|
+
}
|
252
|
+
return route;
|
253
|
+
};
|
254
|
+
|
53
255
|
/**
|
54
256
|
* The DaffExternalRouterMagentoDriver is responsible for translating an
|
55
257
|
* arbitrary URI into a DaffExternallyResolvableUrl with Magento environments.
|
@@ -57,8 +259,9 @@ const transformResolutionToResolvableUrlv243 = (resolution) => (resolution ? {
|
|
57
259
|
* @inheritdoc
|
58
260
|
*/
|
59
261
|
class DaffExternalRouterMagentoDriver {
|
60
|
-
constructor(apollo) {
|
262
|
+
constructor(apollo, document) {
|
61
263
|
this.apollo = apollo;
|
264
|
+
this.document = document;
|
62
265
|
}
|
63
266
|
resolve(url) {
|
64
267
|
return this.apollo
|
@@ -68,21 +271,25 @@ class DaffExternalRouterMagentoDriver {
|
|
68
271
|
url,
|
69
272
|
},
|
70
273
|
})
|
71
|
-
.pipe(map(response =>
|
274
|
+
.pipe(map((response) => response.data.route), map((route) => transformClientUrls(route, this.document.location.origin)), map(route => transformResolutionToResolvableUrlv243(route)));
|
72
275
|
}
|
73
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
74
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
276
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterMagentoDriver, deps: [{ token: i1.Apollo }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
277
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterMagentoDriver, providedIn: 'root' }); }
|
75
278
|
}
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterMagentoDriver, decorators: [{
|
77
280
|
type: Injectable,
|
78
281
|
args: [{
|
79
282
|
providedIn: 'root',
|
80
283
|
}]
|
81
|
-
}], ctorParameters: () => [{ type: i1.Apollo }
|
284
|
+
}], ctorParameters: () => [{ type: i1.Apollo }, { type: Document, decorators: [{
|
285
|
+
type: Inject,
|
286
|
+
args: [DOCUMENT]
|
287
|
+
}] }] });
|
82
288
|
|
83
289
|
/**
|
84
290
|
* The module used to configure the {@link DaffExternalRouterDriver} for usage with Magento.
|
85
291
|
*
|
292
|
+
* @example
|
86
293
|
* ```ts
|
87
294
|
* @NgModule({
|
88
295
|
* declarations: [],
|
@@ -109,11 +316,11 @@ class DaffExternalRouterDriverMagentoModule {
|
|
109
316
|
],
|
110
317
|
};
|
111
318
|
}
|
112
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
113
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
114
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
319
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterDriverMagentoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
320
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterDriverMagentoModule, imports: [CommonModule] }); }
|
321
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterDriverMagentoModule, imports: [CommonModule] }); }
|
115
322
|
}
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
323
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterDriverMagentoModule, decorators: [{
|
117
324
|
type: NgModule,
|
118
325
|
args: [{
|
119
326
|
declarations: [],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"daffodil-external-router-driver-magento-2.4.3.mjs","sources":["../../../libs/external-router/driver/magento/2.4.3/src/graphql/queries/resolve.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/resolution-to-resolvable-url.ts","../../../libs/external-router/driver/magento/2.4.3/src/magento.service.ts","../../../libs/external-router/driver/magento/2.4.3/src/magento.module.ts","../../../libs/external-router/driver/magento/2.4.3/src/provider.ts","../../../libs/external-router/driver/magento/2.4.3/src/public_api.ts","../../../libs/external-router/driver/magento/2.4.3/src/daffodil-external-router-driver-magento-2.4.3.ts"],"sourcesContent":["import { gql } from 'apollo-angular';\n\nexport const DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME = 'MagentoResolveUrlv243';\n\n/**\n * This query retrieves a URL resolution from Magento and informs you about\n * what type of route the URL is.\n */\nexport const MagentoResolveUrlv243 = gql`\n\tquery ${DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME}($url: String!) {\n\t\troute(url: $url) {\n\t\t\trelative_url\n\t\t\tredirect_code\n\t\t\ttype\n\t\t\t... on CategoryInterface {\n\t\t\t\tuid\n\t\t\t\tname\n\t\t\t\tmeta_description\n\t\t\t\tmeta_title\n\t\t\t\tcanonical_url\n\t\t\t}\n\t\t\t... on ProductInterface {\n\t\t\t\tuid\n\t\t\t\tname\n\t\t\t\tmeta_description\n\t\t\t\tmeta_title\n\t\t\t\tcanonical_url\n\t\t\t}\n\t\t}\n\t}\n`;\n","import {\n daffUriTruncateLeadingSlash,\n daffUriTruncateQueryFragment,\n} from '@daffodil/core/routing';\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION } from '@daffodil/external-router/driver';\nimport {\n magentoTransformRedirectToHttpCode,\n MagentoRoute,\n} from '@daffodil/external-router/driver/magento';\n\n\nexport const transformResolutionToResolvableUrlv243 = (\n resolution: MagentoRoute,\n): DaffExternallyResolvableUrl => (resolution ? {\n id: resolution.uid,\n url: daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(resolution.relative_url)),\n type: resolution.type,\n code: magentoTransformRedirectToHttpCode(resolution.redirect_code),\n data: {\n canonical_url: resolution.canonical_url,\n title: resolution.meta_title ?? resolution.name ?? '',\n meta_description: resolution.meta_description,\n },\n} : DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);\n","import { Injectable } from '@angular/core';\nimport { Apollo } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DaffExternalRouterDriverInterface } from '@daffodil/external-router/driver';\nimport { MagentoRouteResponse } from '@daffodil/external-router/driver/magento';\n\nimport { MagentoResolveUrlv243 } from './graphql/queries/resolve';\nimport { transformResolutionToResolvableUrlv243 } from './transforms/resolution-to-resolvable-url';\n\n\n/**\n * The DaffExternalRouterMagentoDriver is responsible for translating an\n * arbitrary URI into a DaffExternallyResolvableUrl with Magento environments.\n *\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffExternalRouterMagentoDriver\nimplements DaffExternalRouterDriverInterface {\n constructor(\n private apollo: Apollo,\n ) {}\n\n resolve(url: string): Observable<DaffExternallyResolvableUrl> {\n return this.apollo\n .query<MagentoRouteResponse>({\n query: MagentoResolveUrlv243,\n variables: {\n url,\n },\n })\n .pipe(map(response => transformResolutionToResolvableUrlv243(response.data.route)));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { provideDaffMagentoCacheableOperation } from '@daffodil/driver/magento';\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport { DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME } from './graphql/queries/resolve';\nimport { DaffExternalRouterMagentoDriver } from './magento.service';\n\n/**\n * The module used to configure the {@link DaffExternalRouterDriver} for usage with Magento.\n *\n * ```ts\n * @NgModule({\n * declarations: [],\n * imports: [\n * ...\n * DaffExternalRouterDriverMagentoModule.forRoot()\n * ],\n * })\n * export class AppModule{}\n * ```\n *\n * Note that this package depends upon ApolloClient, as the Magento driver uses GraphQl to make it's API calls.\n */\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class DaffExternalRouterDriverMagentoModule {\n\n /**\n * Configures the package for the root injector.\n */\n static forRoot(): ModuleWithProviders<DaffExternalRouterDriverMagentoModule> {\n return {\n ngModule: DaffExternalRouterDriverMagentoModule,\n providers: [\n provideDaffExternalRouterDriver(DaffExternalRouterMagentoDriver),\n provideDaffMagentoCacheableOperation(DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME),\n ],\n };\n }\n}\n","import {\n EnvironmentProviders,\n makeEnvironmentProviders,\n} from '@angular/core';\n\nimport { provideDaffMagentoCacheableOperation } from '@daffodil/driver/magento';\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport { DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME } from './graphql/queries/resolve';\nimport { DaffExternalRouterMagentoDriver } from './magento.service';\n\n/**\n * Provides a Magento implementation of {@link DaffExternalRouterDriver}.\n */\nexport const provideDaffExternalRouterMagentoDriver = (\n): EnvironmentProviders => makeEnvironmentProviders([\n provideDaffExternalRouterDriver(DaffExternalRouterMagentoDriver),\n provideDaffMagentoCacheableOperation(DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME),\n]);\n","/*\n * Public API Surface of @daffodil/external-router/driver/magento/2.4.3\n */\n\nexport { DaffExternalRouterMagentoDriver } from './magento.service';\nexport { DaffExternalRouterDriverMagentoModule } from './magento.module';\nexport { provideDaffExternalRouterMagentoDriver } from './provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"daffodil-external-router-driver-magento-2.4.3.mjs","sources":["../../../libs/external-router/driver/magento/2.4.3/src/graphql/queries/resolve.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/rescale-rating.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/product/base.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/product/bundle.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/product/configurable.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/product/simple.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/product/product.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/category/category.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/transform-schema.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/resolution-to-resolvable-url.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/clientify-url-path.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/transform-client-urls.ts","../../../libs/external-router/driver/magento/2.4.3/src/magento.service.ts","../../../libs/external-router/driver/magento/2.4.3/src/magento.module.ts","../../../libs/external-router/driver/magento/2.4.3/src/provider.ts","../../../libs/external-router/driver/magento/2.4.3/src/public_api.ts","../../../libs/external-router/driver/magento/2.4.3/src/daffodil-external-router-driver-magento-2.4.3.ts"],"sourcesContent":["import { gql } from 'apollo-angular';\n\nexport const DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME = 'MagentoResolveUrlv243';\n\n/**\n * This query retrieves a URL resolution from Magento and informs you about\n * what type of route the URL is.\n */\nexport const MagentoResolveUrlv243 = gql`\n\tquery ${DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME}($url: String!) {\n\t\troute(url: $url) {\n\t\t\trelative_url\n\t\t\tredirect_code\n\t\t\ttype\n\t\t\t... on CategoryInterface {\n\t\t\t\tuid\n\t\t\t\tname\n\t\t\t\tmeta_title\n\t\t\t\tcanonical_url\n\t\t\t\tproducts {\n\t\t\t\t\titems {\n\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\tmeta_description\n\t\t\t\t\t\t\tmeta_title\n\t\t\t\t\t\t\tcanonical_url\n\t\t\t\t\t\t\tsku\n\t\t\t\t\t\t\treview_count\n\t\t\t\t\t\t\trating_summary\n\t\t\t\t\t\t\timage {\n\t\t\t\t\t\t\t\turl\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tprice_range {\n\t\t\t\t\t\t\t\tminimum_price {\n\t\t\t\t\t\t\t\t\tregular_price {\n\t\t\t\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tfinal_price {\n\t\t\t\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmaximum_price {\n\t\t\t\t\t\t\t\t\tregular_price {\n\t\t\t\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tfinal_price {\n\t\t\t\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t... on ProductInterface {\n\t\t\t\tuid\n\t\t\t\tname\n\t\t\t\tmeta_description\n\t\t\t\tmeta_title\n\t\t\t\tcanonical_url\n\t\t\t\tsku\n\t\t\t\treview_count\n\t\t\t\trating_summary\n\t\t\t\timage {\n\t\t\t\t\turl\n\t\t\t\t}\n\t\t\t\tstock_status\n\t\t\t\tprice_range {\n\t\t\t\t\tminimum_price {\n\t\t\t\t\t\tregular_price {\n\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfinal_price {\n\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tmaximum_price {\n\t\t\t\t\t\tregular_price {\n\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfinal_price {\n\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n","/**\n * Rescales a rating value from it's max rating\n * to a scale of 5.\n */\nexport const rescaleRatingOutOf5 = (rating: number | null, max: number) => (((rating ?? 0)/max) * 5).toPrecision(2);\n","import { MagentoProductRoute } from '@daffodil/external-router/driver/magento';\n\nimport { rescaleRatingOutOf5 } from '../rescale-rating';\n\nexport const transformMagentoBaseProduct = (product: MagentoProductRoute): Record<string, unknown> => ({\n '@context': 'https://schema.org/',\n '@type': 'Product',\n url: product.canonical_url,\n sku: product.sku,\n name: product.meta_title ?? product.name ?? '',\n ...(product.meta_description && { description: product.meta_description }),\n ...(product.review_count > 0 && { aggregateRating: {\n '@type': 'AggregateRating',\n ratingValue: rescaleRatingOutOf5(product.rating_summary, 100),\n reviewCount: product.review_count,\n }}),\n image: product.image?.url,\n});\n","import { MagentoProductRoute } from '@daffodil/external-router/driver/magento';\n\nimport { transformMagentoBaseProduct } from './base';\n\nexport const transformMagentoBundleProduct = (resolution: MagentoProductRoute): Record<string, unknown> => ({\n ...transformMagentoBaseProduct(resolution),\n offers: {\n '@type': 'AggregateOffer',\n lowPrice: resolution.price_range.minimum_price.final_price.value,\n highPrice: resolution.price_range.maximum_price.final_price.value,\n priceCurrency: resolution.price_range.maximum_price.final_price.currency,\n },\n});\n","import {\n MagentoProductRoute,\n MagentoRoute,\n} from '@daffodil/external-router/driver/magento';\n\nimport { transformMagentoBaseProduct } from './base';\n\nexport const transformMagentoConfigurableProduct = (resolution: MagentoProductRoute): Record<string, unknown> => ({\n ...transformMagentoBaseProduct(resolution),\n offers: {\n '@type': 'AggregateOffer',\n lowPrice: resolution.price_range.minimum_price.final_price.value,\n highPrice: resolution.price_range.maximum_price.final_price.value,\n priceCurrency: resolution.price_range.maximum_price.final_price.currency,\n },\n});\n","\nimport { MagentoProductRoute } from '@daffodil/external-router/driver/magento';\n\nimport { transformMagentoBaseProduct } from './base';\n\nexport const transformMagentoSimpleProduct = (resolution: MagentoProductRoute): Record<string, unknown> => ({\n ...transformMagentoBaseProduct(resolution),\n offers: {\n '@type': 'Offer',\n url: resolution.canonical_url,\n ...(resolution.stock_status && {\n availability: resolution.stock_status === 'IN_STOCK' ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',\n }),\n priceSpecification: [\n {\n '@type': 'UnitPriceSpecification',\n price: resolution.price_range.maximum_price.final_price.value,\n priceCurrency: resolution.price_range.maximum_price.final_price.currency,\n },\n {\n '@type': 'UnitPriceSpecification',\n priceType: 'https://schema.org/ListPrice',\n price: resolution.price_range.maximum_price.regular_price.value,\n priceCurrency: resolution.price_range.maximum_price.regular_price.currency,\n },\n ],\n },\n});\n","import { MagentoProductRoute } from '@daffodil/external-router/driver/magento';\n\nimport { transformMagentoBaseProduct } from './base';\nimport { transformMagentoBundleProduct } from './bundle';\nimport { transformMagentoConfigurableProduct } from './configurable';\nimport { transformMagentoSimpleProduct } from './simple';\n\n/**\n * Computes supplementary SEO schema for Magento product routes.\n */\nexport const transformMagentoProductSchema = (resolution: MagentoProductRoute): Record<string, unknown> => {\n switch(resolution.__typename) {\n case 'BundleProduct':\n return transformMagentoBundleProduct(resolution);\n case 'ConfigurableProduct':\n return transformMagentoConfigurableProduct(resolution);\n case 'SimpleProduct':\n return transformMagentoSimpleProduct(resolution);\n default:\n return transformMagentoBaseProduct(resolution);\n }\n};\n","import { MagentoCategoryRoute } from '@daffodil/external-router/driver/magento';\n\nimport { transformMagentoProductSchema } from '../product/product';\nimport { rescaleRatingOutOf5 } from '../rescale-rating';\n\nexport const transformMagentoCategorySchema = (resolution: MagentoCategoryRoute): Record<string, unknown> => ({\n '@context': 'https://schema.org',\n '@type': 'ItemList',\n itemListElement: resolution.products.items.map((item, index) => ({\n '@type': 'ListItem',\n position: index,\n item: transformMagentoProductSchema({\n ...item,\n meta_description: undefined,\n stock_status: undefined,\n }),\n })),\n});\n","import { MagentoRoute } from '@daffodil/external-router/driver/magento';\n\nimport { transformMagentoCategorySchema } from './category/category';\nimport { transformMagentoProductSchema } from './product/product';\n\nexport const transformSchema = (resolution: MagentoRoute): Record<string, any> | null => {\n switch(resolution.type) {\n case 'PRODUCT':\n return transformMagentoProductSchema(resolution);\n case 'CATEGORY':\n return transformMagentoCategorySchema(resolution);\n default:\n return null;\n }\n};\n","import {\n daffUriTruncateLeadingSlash,\n daffUriTruncateQueryFragment,\n} from '@daffodil/core/routing';\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION } from '@daffodil/external-router/driver';\nimport {\n magentoTransformRedirectToHttpCode,\n MagentoRoute,\n} from '@daffodil/external-router/driver/magento';\n\nimport { transformSchema } from './schema/transform-schema';\n\nexport const transformResolutionToResolvableUrlv243 = (\n resolution: MagentoRoute,\n): DaffExternallyResolvableUrl => (resolution && (resolution.type === 'CATEGORY' || resolution.type ==='PRODUCT') ? {\n id: resolution.uid,\n url: daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(resolution.relative_url)),\n type: resolution.type,\n code: magentoTransformRedirectToHttpCode(resolution.redirect_code),\n data: {\n canonical_url: resolution?.canonical_url,\n title: resolution.meta_title ?? resolution.name ?? '',\n meta_description: resolution.meta_description,\n schema: {\n ...transformSchema(resolution),\n },\n },\n} : DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);\n","export const clientifyUrlPath = <T extends string | null>(path: T, domain: string) => path ? new URL(path, domain).toString() : path;\n","import { MagentoRoute } from '@daffodil/external-router/driver/magento';\n\nimport { clientifyUrlPath } from './schema/clientify-url-path';\n\nexport const transformClientUrls = <T extends MagentoRoute>(route: T, origin: string) => {\n if(!route) {\n return route;\n }\n\n switch(route.type) {\n case 'CATEGORY':\n return {\n ...route,\n canonical_url: clientifyUrlPath(route.canonical_url, origin),\n products: {\n items: route.products.items.map((product) => ({\n ...product,\n canonical_url: clientifyUrlPath(product.canonical_url, origin),\n })),\n },\n };\n case 'PRODUCT':\n return {\n ...route,\n canonical_url: clientifyUrlPath(route.canonical_url, origin),\n };\n default:\n return route;\n }\n return route;\n};\n","import { DOCUMENT } from '@angular/common';\nimport {\n Inject,\n Injectable,\n} from '@angular/core';\nimport { Apollo } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DaffExternalRouterDriverInterface } from '@daffodil/external-router/driver';\nimport { MagentoRouteResponse } from '@daffodil/external-router/driver/magento';\n\nimport { MagentoResolveUrlv243 } from './graphql/queries/resolve';\nimport { transformResolutionToResolvableUrlv243 } from './transforms/resolution-to-resolvable-url';\nimport { transformClientUrls } from './transforms/transform-client-urls';\n\n\n/**\n * The DaffExternalRouterMagentoDriver is responsible for translating an\n * arbitrary URI into a DaffExternallyResolvableUrl with Magento environments.\n *\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffExternalRouterMagentoDriver\nimplements DaffExternalRouterDriverInterface {\n constructor(\n private apollo: Apollo,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n resolve(url: string): Observable<DaffExternallyResolvableUrl> {\n return this.apollo\n .query<MagentoRouteResponse>({\n query: MagentoResolveUrlv243,\n variables: {\n url,\n },\n })\n .pipe(\n map((response) => response.data.route),\n map((route) => transformClientUrls(route, this.document.location.origin)),\n map(route => transformResolutionToResolvableUrlv243(route)),\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { provideDaffMagentoCacheableOperation } from '@daffodil/driver/magento';\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport { DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME } from './graphql/queries/resolve';\nimport { DaffExternalRouterMagentoDriver } from './magento.service';\n\n/**\n * The module used to configure the {@link DaffExternalRouterDriver} for usage with Magento.\n *\n * @example\n * ```ts\n * @NgModule({\n * declarations: [],\n * imports: [\n * ...\n * DaffExternalRouterDriverMagentoModule.forRoot()\n * ],\n * })\n * export class AppModule{}\n * ```\n *\n * Note that this package depends upon ApolloClient, as the Magento driver uses GraphQl to make it's API calls.\n */\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class DaffExternalRouterDriverMagentoModule {\n\n /**\n * Configures the package for the root injector.\n */\n static forRoot(): ModuleWithProviders<DaffExternalRouterDriverMagentoModule> {\n return {\n ngModule: DaffExternalRouterDriverMagentoModule,\n providers: [\n provideDaffExternalRouterDriver(DaffExternalRouterMagentoDriver),\n provideDaffMagentoCacheableOperation(DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME),\n ],\n };\n }\n}\n","import {\n EnvironmentProviders,\n makeEnvironmentProviders,\n} from '@angular/core';\n\nimport { provideDaffMagentoCacheableOperation } from '@daffodil/driver/magento';\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport { DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME } from './graphql/queries/resolve';\nimport { DaffExternalRouterMagentoDriver } from './magento.service';\n\n/**\n * Provides a Magento implementation of {@link DaffExternalRouterDriver}.\n */\nexport const provideDaffExternalRouterMagentoDriver = (\n): EnvironmentProviders => makeEnvironmentProviders([\n provideDaffExternalRouterDriver(DaffExternalRouterMagentoDriver),\n provideDaffMagentoCacheableOperation(DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME),\n]);\n","/*\n * Public API Surface of @daffodil/external-router/driver/magento/2.4.3\n */\n\nexport { DaffExternalRouterMagentoDriver } from './magento.service';\nexport { DaffExternalRouterDriverMagentoModule } from './magento.module';\nexport { provideDaffExternalRouterMagentoDriver } from './provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"daffodil-external-router-driver-magento.mjs","sources":["../../../libs/external-router/driver/magento/src/model/resolution-types.ts","../../../libs/external-router/driver/magento/src/transforms/redirect-to-http.ts","../../../libs/external-router/driver/magento/src/public_api.ts","../../../libs/external-router/driver/magento/src/daffodil-external-router-driver-magento.ts"],"sourcesContent":["export enum MagentoUrlRewriteEntityTypeEnum {\n PRODUCT = 'PRODUCT',\n CATEGORY = 'CATEGORY',\n CMS_PAGE = 'CMS_PAGE',\n}\n","/**\n * Transforms a Magento redirect code to the appropriate HTTP status code.\n */\nexport const magentoTransformRedirectToHttpCode = (code: number): number =>\n code === 0 ? 200 : code;\n","/*\n * Public API Surface of @daffodil/external-router/driver/magento\n */\n\nexport * from './model/public_api';\nexport * from './transforms/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"IAAY
|
1
|
+
{"version":3,"file":"daffodil-external-router-driver-magento.mjs","sources":["../../../libs/external-router/driver/magento/src/model/resolution-types.ts","../../../libs/external-router/driver/magento/src/transforms/redirect-to-http.ts","../../../libs/external-router/driver/magento/src/public_api.ts","../../../libs/external-router/driver/magento/src/daffodil-external-router-driver-magento.ts"],"sourcesContent":["export enum MagentoUrlRewriteEntityTypeEnum {\n PRODUCT = 'PRODUCT',\n CATEGORY = 'CATEGORY',\n CMS_PAGE = 'CMS_PAGE',\n}\n","/**\n * Transforms a Magento redirect code to the appropriate HTTP status code.\n */\nexport const magentoTransformRedirectToHttpCode = (code: number): number =>\n code === 0 ? 200 : code;\n","/*\n * Public API Surface of @daffodil/external-router/driver/magento\n */\n\nexport * from './model/public_api';\nexport * from './transforms/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"IAAY;AAAZ,CAAA,UAAY,+BAA+B,EAAA;AACzC,IAAA,+BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,+BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,+BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAJW,+BAA+B,KAA/B,+BAA+B,GAI1C,EAAA,CAAA,CAAA;;ACJD;;AAEG;MACU,kCAAkC,GAAG,CAAC,IAAY,KAC7D,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG;;ACJrB;;AAEG;;ACFH;;AAEG;;;;"}
|
@@ -46,10 +46,10 @@ class DaffExternalRouterTestingDriver {
|
|
46
46
|
}
|
47
47
|
return of(this.testingConfiguration[truncatedUrl]);
|
48
48
|
}
|
49
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
50
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
49
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterTestingDriver, deps: [{ token: DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
50
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterTestingDriver, providedIn: 'root' }); }
|
51
51
|
}
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterTestingDriver, decorators: [{
|
53
53
|
type: Injectable,
|
54
54
|
args: [{
|
55
55
|
providedIn: 'root',
|
@@ -73,11 +73,11 @@ class DaffExternalRouterDriverTestingModule {
|
|
73
73
|
],
|
74
74
|
};
|
75
75
|
}
|
76
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
77
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
78
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
76
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterDriverTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
77
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterDriverTestingModule, imports: [CommonModule] }); }
|
78
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterDriverTestingModule, imports: [CommonModule] }); }
|
79
79
|
}
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DaffExternalRouterDriverTestingModule, decorators: [{
|
81
81
|
type: NgModule,
|
82
82
|
args: [{
|
83
83
|
declarations: [],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"daffodil-external-router-driver-testing.mjs","sources":["../../../libs/external-router/driver/testing/src/config.ts","../../../libs/external-router/driver/testing/src/testing.service.ts","../../../libs/external-router/driver/testing/src/testing.module.ts","../../../libs/external-router/driver/testing/src/provider.ts","../../../libs/external-router/driver/testing/src/public_api.ts","../../../libs/external-router/driver/testing/src/daffodil-external-router-driver-testing.ts"],"sourcesContent":["import { createConfigInjectionToken } from '@daffodil/core';\nimport {\n DaffExternallyResolvableUrl,\n DaffExternalRouteType,\n} from '@daffodil/external-router';\n\n/**\n * The configuration for the testing driver. It is a dictionary of \"url\": \"type\",\n * pairs, where the URL is a URL-safe routeable path, e.g. \"sweatshirts\" or \"t-shirts\"\n * and the type is a known type to your application, e.g. \"CATEGORY\".\n */\nexport interface DaffExternalRouterDriverTestingConfig {\n [url: string]: DaffExternalRouteType | DaffExternallyResolvableUrl;\n}\n\nexport const {\n /**\n * The token used by Daffodil to hold the driver's configuration.\n *\n * @docs-private\n */\n token: DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG,\n /**\n * Provider function for {@link DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG}.\n */\n provider: provideDaffExternalRouterDriverTestingConfig,\n} = createConfigInjectionToken<DaffExternalRouterDriverTestingConfig>(({}), 'DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG');\n","import {\n Injectable,\n Inject,\n} from '@angular/core';\nimport { faker } from '@faker-js/faker/locale/en_US';\nimport {\n Observable,\n of,\n} from 'rxjs';\n\nimport {\n daffUriTruncateLeadingSlash,\n daffUriTruncateQueryFragment,\n} from '@daffodil/core/routing';\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport {\n DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION,\n DaffExternalRouterDriverInterface,\n} from '@daffodil/external-router/driver';\n\nimport {\n DaffExternalRouterDriverTestingConfig,\n DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG,\n} from './config';\n\n/**\n * The DaffExternalRouterTestingDriver is responsible for translating an\n * arbitrary URI into a DaffExternallyResolvableUrl in testing environments.\n *\n * @inheritdoc\n *\n * @see {@link DaffExternalRouterTestingDriver}\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffExternalRouterTestingDriver\nimplements DaffExternalRouterDriverInterface {\n constructor(\n @Inject(DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG)\n private testingConfiguration: DaffExternalRouterDriverTestingConfig = {},\n ) {}\n\n resolve(url: string): Observable<DaffExternallyResolvableUrl> {\n const truncatedUrl = daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(url));\n\n if (!this.testingConfiguration[truncatedUrl]) {\n return of(DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);\n }\n\n if((typeof this.testingConfiguration[truncatedUrl]) === 'string') {\n return of({\n id: faker.datatype.uuid(),\n url: truncatedUrl,\n type: <string>this.testingConfiguration[truncatedUrl],\n code: 200,\n });\n }\n\n return of(<DaffExternallyResolvableUrl>this.testingConfiguration[truncatedUrl]);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport {\n DaffExternalRouterDriverTestingConfig,\n provideDaffExternalRouterDriverTestingConfig,\n} from './config';\nimport { DaffExternalRouterTestingDriver } from './testing.service';\n\n/**\n * The `DaffExternalRouterDriverTestingModule` is an importable NgModule that can\n * be used to configure the {@link DaffExternalRouterTestingDriver}.\n */\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class DaffExternalRouterDriverTestingModule {\n static forRoot(\n config: DaffExternalRouterDriverTestingConfig,\n ): ModuleWithProviders<DaffExternalRouterDriverTestingModule> {\n return {\n ngModule: DaffExternalRouterDriverTestingModule,\n providers: [\n provideDaffExternalRouterDriver(DaffExternalRouterTestingDriver),\n provideDaffExternalRouterDriverTestingConfig(config),\n ],\n };\n }\n}\n","import {\n EnvironmentProviders,\n InjectionToken,\n makeEnvironmentProviders,\n} from '@angular/core';\n\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport {\n DaffExternalRouterDriverTestingConfig,\n provideDaffExternalRouterDriverTestingConfig,\n} from './config';\nimport { DaffExternalRouterTestingDriver } from './testing.service';\n\n/**\n * Provides a testing implementation of {@link DaffExternalRouterDriver}\n */\nexport const provideDaffExternalRouterTestingDriver = (config:\n DaffExternalRouterDriverTestingConfig | InjectionToken<DaffExternalRouterDriverTestingConfig>,\n): EnvironmentProviders => makeEnvironmentProviders([\n provideDaffExternalRouterDriver(DaffExternalRouterTestingDriver),\n provideDaffExternalRouterDriverTestingConfig(config),\n]);\n","/*\n * Public API Surface of @daffodil/external-router/driver/testing\n */\n\nexport { DaffExternalRouterTestingDriver } from './testing.service';\nexport { DaffExternalRouterDriverTestingModule } from './testing.module';\n\nexport { DaffExternalRouterDriverTestingConfig } from './config';\nexport { provideDaffExternalRouterTestingDriver } from './provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAeO,MAAM;AACX;;;;AAIG;AACH,KAAK,EAAE,0CAA0C;AACjD;;AAEG;AACH,QAAQ,EAAE,4CAA4C,GACvD,GAAG,0BAA0B,EAAyC,EAAE,GAAG,4CAA4C,CAAC;;ACDzH;;;;;;;AAOG;MAIU,+BAA+B,CAAA;AAE1C,IAAA,WAAA,CAEU,uBAA8D,EAAE,EAAA;QAAhE,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,
|
1
|
+
{"version":3,"file":"daffodil-external-router-driver-testing.mjs","sources":["../../../libs/external-router/driver/testing/src/config.ts","../../../libs/external-router/driver/testing/src/testing.service.ts","../../../libs/external-router/driver/testing/src/testing.module.ts","../../../libs/external-router/driver/testing/src/provider.ts","../../../libs/external-router/driver/testing/src/public_api.ts","../../../libs/external-router/driver/testing/src/daffodil-external-router-driver-testing.ts"],"sourcesContent":["import { createConfigInjectionToken } from '@daffodil/core';\nimport {\n DaffExternallyResolvableUrl,\n DaffExternalRouteType,\n} from '@daffodil/external-router';\n\n/**\n * The configuration for the testing driver. It is a dictionary of \"url\": \"type\",\n * pairs, where the URL is a URL-safe routeable path, e.g. \"sweatshirts\" or \"t-shirts\"\n * and the type is a known type to your application, e.g. \"CATEGORY\".\n */\nexport interface DaffExternalRouterDriverTestingConfig {\n [url: string]: DaffExternalRouteType | DaffExternallyResolvableUrl;\n}\n\nexport const {\n /**\n * The token used by Daffodil to hold the driver's configuration.\n *\n * @docs-private\n */\n token: DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG,\n /**\n * Provider function for {@link DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG}.\n */\n provider: provideDaffExternalRouterDriverTestingConfig,\n} = createConfigInjectionToken<DaffExternalRouterDriverTestingConfig>(({}), 'DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG');\n","import {\n Injectable,\n Inject,\n} from '@angular/core';\nimport { faker } from '@faker-js/faker/locale/en_US';\nimport {\n Observable,\n of,\n} from 'rxjs';\n\nimport {\n daffUriTruncateLeadingSlash,\n daffUriTruncateQueryFragment,\n} from '@daffodil/core/routing';\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport {\n DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION,\n DaffExternalRouterDriverInterface,\n} from '@daffodil/external-router/driver';\n\nimport {\n DaffExternalRouterDriverTestingConfig,\n DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG,\n} from './config';\n\n/**\n * The DaffExternalRouterTestingDriver is responsible for translating an\n * arbitrary URI into a DaffExternallyResolvableUrl in testing environments.\n *\n * @inheritdoc\n *\n * @see {@link DaffExternalRouterTestingDriver}\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffExternalRouterTestingDriver\nimplements DaffExternalRouterDriverInterface {\n constructor(\n @Inject(DAFF_EXTERNAL_ROUTER_DRIVER_TESTING_CONFIG)\n private testingConfiguration: DaffExternalRouterDriverTestingConfig = {},\n ) {}\n\n resolve(url: string): Observable<DaffExternallyResolvableUrl> {\n const truncatedUrl = daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(url));\n\n if (!this.testingConfiguration[truncatedUrl]) {\n return of(DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);\n }\n\n if((typeof this.testingConfiguration[truncatedUrl]) === 'string') {\n return of({\n id: faker.datatype.uuid(),\n url: truncatedUrl,\n type: <string>this.testingConfiguration[truncatedUrl],\n code: 200,\n });\n }\n\n return of(<DaffExternallyResolvableUrl>this.testingConfiguration[truncatedUrl]);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport {\n DaffExternalRouterDriverTestingConfig,\n provideDaffExternalRouterDriverTestingConfig,\n} from './config';\nimport { DaffExternalRouterTestingDriver } from './testing.service';\n\n/**\n * The `DaffExternalRouterDriverTestingModule` is an importable NgModule that can\n * be used to configure the {@link DaffExternalRouterTestingDriver}.\n */\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class DaffExternalRouterDriverTestingModule {\n static forRoot(\n config: DaffExternalRouterDriverTestingConfig,\n ): ModuleWithProviders<DaffExternalRouterDriverTestingModule> {\n return {\n ngModule: DaffExternalRouterDriverTestingModule,\n providers: [\n provideDaffExternalRouterDriver(DaffExternalRouterTestingDriver),\n provideDaffExternalRouterDriverTestingConfig(config),\n ],\n };\n }\n}\n","import {\n EnvironmentProviders,\n InjectionToken,\n makeEnvironmentProviders,\n} from '@angular/core';\n\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport {\n DaffExternalRouterDriverTestingConfig,\n provideDaffExternalRouterDriverTestingConfig,\n} from './config';\nimport { DaffExternalRouterTestingDriver } from './testing.service';\n\n/**\n * Provides a testing implementation of {@link DaffExternalRouterDriver}\n */\nexport const provideDaffExternalRouterTestingDriver = (config:\n DaffExternalRouterDriverTestingConfig | InjectionToken<DaffExternalRouterDriverTestingConfig>,\n): EnvironmentProviders => makeEnvironmentProviders([\n provideDaffExternalRouterDriver(DaffExternalRouterTestingDriver),\n provideDaffExternalRouterDriverTestingConfig(config),\n]);\n","/*\n * Public API Surface of @daffodil/external-router/driver/testing\n */\n\nexport { DaffExternalRouterTestingDriver } from './testing.service';\nexport { DaffExternalRouterDriverTestingModule } from './testing.module';\n\nexport { DaffExternalRouterDriverTestingConfig } from './config';\nexport { provideDaffExternalRouterTestingDriver } from './provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"daffodil-external-router-routing.mjs","sources":["../../../libs/external-router/routing/src/errors/client-error.ts","../../../libs/external-router/routing/src/errors/not-found-error.ts","../../../libs/external-router/routing/src/errors/permanent-redirect.ts","../../../libs/external-router/routing/src/errors/temporary-redirect.ts","../../../libs/external-router/routing/src/helper/convert-to-path.ts","../../../libs/external-router/routing/src/errors/server-error.ts","../../../libs/external-router/routing/src/processors/process-errors.ts","../../../libs/external-router/routing/src/processors/process-redirect.ts","../../../libs/external-router/routing/src/guard/external-matcher-type.guard.ts","../../../libs/external-router/routing/src/public_api.ts","../../../libs/external-router/routing/src/daffodil-external-router-routing.ts"],"sourcesContent":["import {\n DaffError,\n DaffInheritableError,\n} from '@daffodil/core';\n\n/**\n * An error thrown when the driver encounters a 4xx error.\n */\nexport class DaffExternalRouterClientError extends DaffInheritableError\n implements DaffError {\n public readonly code: string = '4xx_CLIENT_ERROR';\n\n constructor(message?: string) {\n super(message);\n }\n}\n","import { DaffError } from '@daffodil/core';\n\nimport { DaffExternalRouterClientError } from './client-error';\n\n/**\n * An error thrown when the driver determines that a given url is not resolvable.\n */\nexport class DaffExternalRouterNotFoundError extends DaffExternalRouterClientError\n implements DaffError {\n public readonly code: string = '404_NOT_FOUND';\n\n constructor(message?: string) {\n super(message);\n }\n}\n","import {\n DaffError,\n DaffInheritableError,\n} from '@daffodil/core';\n\n/**\n * An error thrown when the driver determines that the url needs to be routed somewhere\n * else permanently.\n */\nexport class DaffExternalRouterPermanentRedirectError extends DaffInheritableError\n implements DaffError {\n public readonly code: string = '302_PERMANENT_REDIRECT';\n\n constructor(public redirectUrl: string, message?: string) {\n super(message);\n }\n}\n","import {\n DaffError,\n DaffInheritableError,\n} from '@daffodil/core';\n\n/**\n * An error thrown when the driver needs a URI to be temporarily redirected\n * to another location.\n */\nexport class DaffExternalRouterTemporaryRedirectError extends DaffInheritableError\n implements DaffError {\n public readonly code: string = 'TEMPORARY_REDIRECT';\n\n constructor(public redirectUrl: string, message?: string) {\n super(message);\n }\n}\n","import { UrlSegment } from '@angular/router';\n\n/**\n * Converts a UrlSegment into its complete Url.\n *\n * @docs-private\n */\nexport const daffConvertToPath = (segments: UrlSegment[]) => segments.map(seg => seg.path).join('/');\n","import {\n DaffError,\n DaffInheritableError,\n} from '@daffodil/core';\n\n/**\n * An error thrown when the platform performing url resolution fails.\n */\nexport class DaffExternalRouterServerError extends DaffInheritableError\n implements DaffError {\n public readonly code: string = '5xx_SERVER_ERROR';\n\n constructor(message?: string) {\n super(message);\n }\n}\n","import { DaffExternallyResolvableUrl } from '@daffodil/external-router';\n\n\nimport { DaffExternalRouterClientError } from '../errors/client-error';\nimport { DaffExternalRouterNotFoundError } from '../errors/not-found-error';\nimport { DaffExternalRouterServerError } from '../errors/server-error';\n\n/**\n * Processes resolved URLs and throws the appropriate error so that External Router\n * can handle routing errors.\n */\nexport const processErrors = (url: DaffExternallyResolvableUrl): DaffExternallyResolvableUrl => {\n if(url.code === 404 ){\n throw new DaffExternalRouterNotFoundError();\n } else if(url.code >= 400 && url.code < 500) {\n throw new DaffExternalRouterClientError();\n } else if(url.code >= 500) {\n throw new DaffExternalRouterServerError();\n } else {\n return url;\n }\n};\n","import { DaffExternallyResolvableUrl } from '@daffodil/external-router';\n\nimport { DaffExternalRouterPermanentRedirectError } from '../errors/permanent-redirect';\nimport { DaffExternalRouterTemporaryRedirectError } from '../errors/temporary-redirect';\n\n/**\n * Processes resolvedUrls and throws the appropriate error so that External Router\n * can handle redirects.\n */\nexport const processRedirects = (url: DaffExternallyResolvableUrl): DaffExternallyResolvableUrl => {\n if(url.code === 301){\n throw new DaffExternalRouterPermanentRedirectError(url.url);\n } else if(url.code === 302) {\n throw new DaffExternalRouterTemporaryRedirectError(url.url);\n } else {\n return url;\n }\n};\n","import { inject } from '@angular/core';\nimport {\n CanMatchFn,\n Router,\n UrlSegment,\n UrlTree,\n} from '@angular/router';\nimport {\n Observable,\n catchError,\n map,\n of,\n tap,\n} from 'rxjs';\n\nimport {\n DAFF_EXTERNAL_ROUTER_CONFIG,\n DaffExternalRouterConfiguration,\n DaffExternallyResolvableUrl,\n DaffRouteWithSeoData,\n} from '@daffodil/external-router';\nimport { DaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport { DaffExternalRouterNotFoundError } from '../errors/not-found-error';\nimport { DaffExternalRouterPermanentRedirectError } from '../errors/permanent-redirect';\nimport { DaffExternalRouterTemporaryRedirectError } from '../errors/temporary-redirect';\nimport { daffConvertToPath } from '../helper/convert-to-path';\nimport { processErrors } from '../processors/process-errors';\nimport { processRedirects } from '../processors/process-redirect';\n\n/**\n * A `canMatch` guard function that will resolve a route externally, allowing Angular to match it.\n *\n * Depending on the resolution result, the route's data will contain `daffSeoData` with supplemental search engine data\n * about the route. The data on the route is cumulative. If other data properties are set, they will be merged alongside daffSeoData.\n */\nexport const daffExternalMatcherTypeGuard = (type: string) => (route: DaffRouteWithSeoData, segments: Array<UrlSegment>): Observable<boolean | UrlTree> => {\n const router = inject(Router);\n const config: DaffExternalRouterConfiguration = inject(DAFF_EXTERNAL_ROUTER_CONFIG);\n return inject(DaffExternalRouterDriver).resolve(daffConvertToPath(segments)).pipe(\n map(processErrors),\n map(processRedirects),\n map((r) => ({ result: r, isMatch: type === r.type })),\n tap((r) => {\n if(r.isMatch) {\n route.title = r.result.data?.title ?? route.data?.daffSeoData?.title ?? route.title;\n route.data = { ...route.data, daffSeoData: r.result.data };\n }\n }),\n map((res) => res.isMatch),\n catchError(error => {\n if (\n !(error instanceof DaffExternalRouterPermanentRedirectError) &&\n !(error instanceof DaffExternalRouterTemporaryRedirectError)) {\n throw error;\n }\n\n return of(router.parseUrl(error.redirectUrl));\n }),\n // Handle \"404\"\n catchError((error) => {\n if (!(error instanceof DaffExternalRouterNotFoundError)) {\n throw error;\n }\n\n return of(false);\n }),\n //Otherwise something went horribly wrong and we need to bail out.\n catchError((error) => of(router.parseUrl(config.failedResolutionPath))),\n catchError(() => of(false)),\n );\n};\n\n\n","/*\n * Public API Surface of @daffodil/external-router/routing\n */\nexport { daffExternalMatcherTypeGuard } from './guard/external-matcher-type.guard';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"daffodil-external-router-routing.mjs","sources":["../../../libs/external-router/routing/src/errors/client-error.ts","../../../libs/external-router/routing/src/errors/not-found-error.ts","../../../libs/external-router/routing/src/errors/permanent-redirect.ts","../../../libs/external-router/routing/src/errors/temporary-redirect.ts","../../../libs/external-router/routing/src/helper/convert-to-path.ts","../../../libs/external-router/routing/src/errors/server-error.ts","../../../libs/external-router/routing/src/processors/process-errors.ts","../../../libs/external-router/routing/src/processors/process-redirect.ts","../../../libs/external-router/routing/src/guard/external-matcher-type.guard.ts","../../../libs/external-router/routing/src/public_api.ts","../../../libs/external-router/routing/src/daffodil-external-router-routing.ts"],"sourcesContent":["import {\n DaffError,\n DaffInheritableError,\n} from '@daffodil/core';\n\n/**\n * An error thrown when the driver encounters a 4xx error.\n */\nexport class DaffExternalRouterClientError extends DaffInheritableError\n implements DaffError {\n public readonly code: string = '4xx_CLIENT_ERROR';\n\n constructor(message?: string) {\n super(message);\n }\n}\n","import { DaffError } from '@daffodil/core';\n\nimport { DaffExternalRouterClientError } from './client-error';\n\n/**\n * An error thrown when the driver determines that a given url is not resolvable.\n */\nexport class DaffExternalRouterNotFoundError extends DaffExternalRouterClientError\n implements DaffError {\n public readonly code: string = '404_NOT_FOUND';\n\n constructor(message?: string) {\n super(message);\n }\n}\n","import {\n DaffError,\n DaffInheritableError,\n} from '@daffodil/core';\n\n/**\n * An error thrown when the driver determines that the url needs to be routed somewhere\n * else permanently.\n */\nexport class DaffExternalRouterPermanentRedirectError extends DaffInheritableError\n implements DaffError {\n public readonly code: string = '302_PERMANENT_REDIRECT';\n\n constructor(public redirectUrl: string, message?: string) {\n super(message);\n }\n}\n","import {\n DaffError,\n DaffInheritableError,\n} from '@daffodil/core';\n\n/**\n * An error thrown when the driver needs a URI to be temporarily redirected\n * to another location.\n */\nexport class DaffExternalRouterTemporaryRedirectError extends DaffInheritableError\n implements DaffError {\n public readonly code: string = 'TEMPORARY_REDIRECT';\n\n constructor(public redirectUrl: string, message?: string) {\n super(message);\n }\n}\n","import { UrlSegment } from '@angular/router';\n\n/**\n * Converts a UrlSegment into its complete Url.\n *\n * @docs-private\n */\nexport const daffConvertToPath = (segments: UrlSegment[]) => segments.map(seg => seg.path).join('/');\n","import {\n DaffError,\n DaffInheritableError,\n} from '@daffodil/core';\n\n/**\n * An error thrown when the platform performing url resolution fails.\n */\nexport class DaffExternalRouterServerError extends DaffInheritableError\n implements DaffError {\n public readonly code: string = '5xx_SERVER_ERROR';\n\n constructor(message?: string) {\n super(message);\n }\n}\n","import { DaffExternallyResolvableUrl } from '@daffodil/external-router';\n\n\nimport { DaffExternalRouterClientError } from '../errors/client-error';\nimport { DaffExternalRouterNotFoundError } from '../errors/not-found-error';\nimport { DaffExternalRouterServerError } from '../errors/server-error';\n\n/**\n * Processes resolved URLs and throws the appropriate error so that External Router\n * can handle routing errors.\n */\nexport const processErrors = (url: DaffExternallyResolvableUrl): DaffExternallyResolvableUrl => {\n if(url.code === 404 ){\n throw new DaffExternalRouterNotFoundError();\n } else if(url.code >= 400 && url.code < 500) {\n throw new DaffExternalRouterClientError();\n } else if(url.code >= 500) {\n throw new DaffExternalRouterServerError();\n } else {\n return url;\n }\n};\n","import { DaffExternallyResolvableUrl } from '@daffodil/external-router';\n\nimport { DaffExternalRouterPermanentRedirectError } from '../errors/permanent-redirect';\nimport { DaffExternalRouterTemporaryRedirectError } from '../errors/temporary-redirect';\n\n/**\n * Processes resolvedUrls and throws the appropriate error so that External Router\n * can handle redirects.\n */\nexport const processRedirects = (url: DaffExternallyResolvableUrl): DaffExternallyResolvableUrl => {\n if(url.code === 301){\n throw new DaffExternalRouterPermanentRedirectError(url.url);\n } else if(url.code === 302) {\n throw new DaffExternalRouterTemporaryRedirectError(url.url);\n } else {\n return url;\n }\n};\n","import { inject } from '@angular/core';\nimport {\n CanMatchFn,\n Router,\n UrlSegment,\n UrlTree,\n} from '@angular/router';\nimport {\n Observable,\n catchError,\n map,\n of,\n tap,\n} from 'rxjs';\n\nimport {\n DAFF_EXTERNAL_ROUTER_CONFIG,\n DaffExternalRouterConfiguration,\n DaffExternallyResolvableUrl,\n DaffRouteWithSeoData,\n} from '@daffodil/external-router';\nimport { DaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport { DaffExternalRouterNotFoundError } from '../errors/not-found-error';\nimport { DaffExternalRouterPermanentRedirectError } from '../errors/permanent-redirect';\nimport { DaffExternalRouterTemporaryRedirectError } from '../errors/temporary-redirect';\nimport { daffConvertToPath } from '../helper/convert-to-path';\nimport { processErrors } from '../processors/process-errors';\nimport { processRedirects } from '../processors/process-redirect';\n\n/**\n * A `canMatch` guard function that will resolve a route externally, allowing Angular to match it.\n *\n * Depending on the resolution result, the route's data will contain `daffSeoData` with supplemental search engine data\n * about the route. The data on the route is cumulative. If other data properties are set, they will be merged alongside daffSeoData.\n */\nexport const daffExternalMatcherTypeGuard = (type: string) => (route: DaffRouteWithSeoData, segments: Array<UrlSegment>): Observable<boolean | UrlTree> => {\n const router = inject(Router);\n const config: DaffExternalRouterConfiguration = inject(DAFF_EXTERNAL_ROUTER_CONFIG);\n return inject(DaffExternalRouterDriver).resolve(daffConvertToPath(segments)).pipe(\n map(processErrors),\n map(processRedirects),\n map((r) => ({ result: r, isMatch: type === r.type })),\n tap((r) => {\n if(r.isMatch) {\n route.title = r.result.data?.title ?? route.data?.daffSeoData?.title ?? route.title;\n route.data = { ...route.data, daffSeoData: r.result.data };\n }\n }),\n map((res) => res.isMatch),\n catchError(error => {\n if (\n !(error instanceof DaffExternalRouterPermanentRedirectError) &&\n !(error instanceof DaffExternalRouterTemporaryRedirectError)) {\n throw error;\n }\n\n return of(router.parseUrl(error.redirectUrl));\n }),\n // Handle \"404\"\n catchError((error) => {\n if (!(error instanceof DaffExternalRouterNotFoundError)) {\n throw error;\n }\n\n return of(false);\n }),\n //Otherwise something went horribly wrong and we need to bail out.\n catchError((error) => of(router.parseUrl(config.failedResolutionPath))),\n catchError(() => of(false)),\n );\n};\n\n\n","/*\n * Public API Surface of @daffodil/external-router/routing\n */\nexport { daffExternalMatcherTypeGuard } from './guard/external-matcher-type.guard';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|