@posiwise/resource-module 0.0.138 → 0.0.139
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.
|
@@ -10,6 +10,7 @@ import { ResourceWebinarComponent } from './components/resource-webinars/resourc
|
|
|
10
10
|
import { ResourceComponent } from './components/resources/resources.component';
|
|
11
11
|
import { ResourceHubComponent } from './components/resources-hub/resources-hub.component';
|
|
12
12
|
import { WhitePaperComponent } from './components/white-papers/white-papers.component';
|
|
13
|
+
import { SeoGuard } from '@posiwise/core-guards';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
import * as i1 from "@angular/router";
|
|
15
16
|
// These are the private routes. The public routes and modules needs to be defined in public.routes.ts
|
|
@@ -18,9 +19,12 @@ const routes = [
|
|
|
18
19
|
path: '',
|
|
19
20
|
component: ResourceComponent,
|
|
20
21
|
data: {
|
|
21
|
-
title: '
|
|
22
|
+
title: 'The MSP Vault by CloudOlive | reseller blogs, case studies and more',
|
|
23
|
+
description: 'Explore CloudOlive\'s resource vault for MSPs, designed to help you upskill and discover whitepapers, how to videos, demonstrations, customer success stories and more.',
|
|
24
|
+
keywords: 'MSP resources, CloudOlive vault, whitepapers, case studies, videos, demonstrations, customer success stories',
|
|
22
25
|
permission: 'Pages.Blog'
|
|
23
|
-
}
|
|
26
|
+
},
|
|
27
|
+
canActivate: [SeoGuard],
|
|
24
28
|
},
|
|
25
29
|
{
|
|
26
30
|
path: 'hub',
|
|
@@ -34,65 +38,89 @@ const routes = [
|
|
|
34
38
|
path: 'blogs',
|
|
35
39
|
component: ResourceBlogComponent,
|
|
36
40
|
data: {
|
|
37
|
-
title: 'Resources
|
|
41
|
+
title: 'CloudOlive Resources & Blog | MSP Billing Best Practices',
|
|
42
|
+
description: 'Guides and tips for MSP finance teams. Learn how to automate SaaS billing, reconcile vendor invoices, and improve PSA data quality.',
|
|
43
|
+
keywords: 'CloudOlive blog, MSP billing best practices, finance teams, SaaS billing automation, vendor invoice reconciliation, PSA data quality',
|
|
38
44
|
permission: 'Pages.Blog'
|
|
39
|
-
}
|
|
45
|
+
},
|
|
46
|
+
canActivate: [SeoGuard],
|
|
40
47
|
},
|
|
41
48
|
{
|
|
42
|
-
path: '
|
|
43
|
-
component:
|
|
49
|
+
path: 'case-studies',
|
|
50
|
+
component: ResourceCaseStudiesComponent,
|
|
44
51
|
data: {
|
|
45
|
-
title: '
|
|
52
|
+
title: 'CloudOlive Case Studies | MSP Success Stories & Invoice Reconciliation Wins',
|
|
53
|
+
description: 'Read how MSPs solved cloud & SaaS billing nightmares with CloudOlive - real case studies featuring vendor invoice reconciliation, contract matching & margin protection.',
|
|
54
|
+
keywords: 'CloudOlive case studies, MSP success stories, invoice reconciliation wins, vendor invoice reconciliation, contract matching, margin protection',
|
|
46
55
|
permission: 'Pages.Blog'
|
|
47
|
-
}
|
|
56
|
+
},
|
|
57
|
+
canActivate: [SeoGuard],
|
|
48
58
|
},
|
|
49
59
|
{
|
|
50
|
-
path: '
|
|
51
|
-
component:
|
|
60
|
+
path: 'events',
|
|
61
|
+
component: ResourceWebinarComponent,
|
|
52
62
|
data: {
|
|
53
|
-
title: '
|
|
63
|
+
title: 'CloudOlive Events | MSP Conferences, Webinars & Workshops',
|
|
64
|
+
description: 'Join CloudOlive events for MSPs - webinars, conferences & workshops focused on cloud & SaaS invoice reconciliation, PSA integrations, billing best practices.',
|
|
65
|
+
keywords: 'CloudOlive events, MSP conferences, webinars, workshops, invoice reconciliation, PSA integrations, billing best practices',
|
|
54
66
|
permission: 'Pages.Blog'
|
|
55
|
-
}
|
|
67
|
+
},
|
|
68
|
+
canActivate: [SeoGuard],
|
|
56
69
|
},
|
|
57
70
|
{
|
|
58
|
-
path: '
|
|
59
|
-
component:
|
|
71
|
+
path: 'white-papers',
|
|
72
|
+
component: WhitePaperComponent,
|
|
60
73
|
data: {
|
|
61
|
-
title: '
|
|
74
|
+
title: 'CloudOlive White Papers | In-depth MSP Billing & Cloud Invoice Insights',
|
|
75
|
+
description: 'Download CloudOlive white papers for MSPs - deep insights into cloud & SaaS billing, invoice reconciliation strategies, contract management & cost optimisation.',
|
|
76
|
+
keywords: 'CloudOlive white papers, MSP billing insights, cloud invoice insights, invoice reconciliation strategies, contract management, cost optimisation',
|
|
62
77
|
permission: 'Pages.Blog'
|
|
63
|
-
}
|
|
78
|
+
},
|
|
79
|
+
canActivate: [SeoGuard],
|
|
64
80
|
},
|
|
65
81
|
{
|
|
66
|
-
path: '
|
|
67
|
-
component:
|
|
82
|
+
path: 'videos',
|
|
83
|
+
component: ResourceVideoComponent,
|
|
68
84
|
data: {
|
|
69
|
-
title: '
|
|
85
|
+
title: 'CloudOlive Videos | MSP Tutorials, Demos & Insights',
|
|
86
|
+
description: 'Watch CloudOlive videos: product demos, MSP tutorials, and expert insights into cloud & SaaS invoice reconciliation, PSA integrations, and billing automation.',
|
|
87
|
+
keywords: 'CloudOlive videos, MSP tutorials, product demos, invoice reconciliation, PSA integrations, billing automation',
|
|
70
88
|
permission: 'Pages.Blog'
|
|
71
|
-
}
|
|
89
|
+
},
|
|
90
|
+
canActivate: [SeoGuard],
|
|
72
91
|
},
|
|
73
92
|
{
|
|
74
|
-
path: '
|
|
75
|
-
component:
|
|
93
|
+
path: 'release-notes',
|
|
94
|
+
component: ResourceReleaseNoteComponent,
|
|
76
95
|
data: {
|
|
77
|
-
title: '
|
|
96
|
+
title: 'CloudOlive Release Notes | Product Updates & Version History',
|
|
97
|
+
description: 'Stay up to date with CloudOlive release notes - view new features, bug fixes, enhancements, and version history for cloud & SaaS invoice reconciliation.',
|
|
98
|
+
keywords: 'CloudOlive release notes, product updates, version history, new features, bug fixes, enhancements, invoice reconciliation',
|
|
78
99
|
permission: 'Pages.Blog'
|
|
79
|
-
}
|
|
100
|
+
},
|
|
101
|
+
canActivate: [SeoGuard],
|
|
80
102
|
},
|
|
81
103
|
{
|
|
82
|
-
path: '
|
|
83
|
-
component:
|
|
104
|
+
path: 'integrations',
|
|
105
|
+
component: ResourceIntegrationComponent,
|
|
84
106
|
data: {
|
|
85
|
-
title: '
|
|
107
|
+
title: 'CloudOlive Integrations | Autotask, ConnectWise, Microsoft & 140+ vendors',
|
|
108
|
+
description: 'Explore CloudOlive integrations for MSPs: Autotask, ConnectWise, Microsoft and 140+ vendors. Reconcile licenses and streamline MSP client billing.',
|
|
109
|
+
keywords: 'CloudOlive integrations, Autotask, ConnectWise, Microsoft, 140+ vendors, MSP client billing, license reconciliation',
|
|
86
110
|
permission: 'Pages.Blog'
|
|
87
|
-
}
|
|
111
|
+
},
|
|
112
|
+
canActivate: [SeoGuard],
|
|
88
113
|
},
|
|
89
114
|
{
|
|
90
115
|
path: 'view/:slug',
|
|
91
116
|
component: ResourcePostComponent,
|
|
92
117
|
data: {
|
|
93
|
-
title: '
|
|
118
|
+
title: '10 Reasons MSP Billing Falls Out of Sync (And Fixes)',
|
|
119
|
+
description: 'Why MSP billing drifts from contracts, and how automation reconciles vendor invoices, usage and PSA data to protect margins and cash flow.',
|
|
120
|
+
keywords: 'MSP billing, invoice reconciliation, vendor invoices, PSA data, margins, cash flow, billing automation',
|
|
94
121
|
permission: 'Pages.Blog'
|
|
95
|
-
}
|
|
122
|
+
},
|
|
123
|
+
canActivate: [SeoGuard],
|
|
96
124
|
}
|
|
97
125
|
];
|
|
98
126
|
export class BlogPublicRoutingModule {
|
|
@@ -107,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
107
135
|
exports: [RouterModule]
|
|
108
136
|
}]
|
|
109
137
|
}] });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtcHVibGljLnJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1tb2R1bGUvc3JjL2xpYi9wdWJsaWMvcmVzb3VyY2UtcHVibGljLnJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7QUFFdkYsc0dBQXNHO0FBQ3RHLE1BQU0sTUFBTSxHQUFXO0lBQ25CO1FBQ0ksSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsaUJBQWlCO1FBQzVCLElBQUksRUFBRTtZQUNGLEtBQUssRUFBRSxtQkFBbUI7WUFDMUIsVUFBVSxFQUFFLFlBQVk7U0FDM0I7S0FDSjtJQUNEO1FBQ0ksSUFBSSxFQUFFLEtBQUs7UUFDWCxTQUFTLEVBQUUsb0JBQW9CO1FBQy9CLElBQUksRUFBRTtZQUNGLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsVUFBVSxFQUFFLFlBQVk7U0FDM0I7S0FDSjtJQUNEO1FBQ0ksSUFBSSxFQUFFLE9BQU87UUFDYixTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLElBQUksRUFBRTtZQUNGLEtBQUssRUFBRSxtQkFBbUI7WUFDMUIsVUFBVSxFQUFFLFlBQVk7U0FDM0I7S0FDSjtJQUNEO1FBQ0ksSUFBSSxFQUFFLFFBQVE7UUFDZCxTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLElBQUksRUFBRTtZQUNGLEtBQUssRUFBRSxvQkFBb0I7WUFDM0IsVUFBVSxFQUFFLFlBQVk7U0FDM0I7S0FDSjtJQUNEO1FBQ0ksSUFBSSxFQUFFLGNBQWM7UUFDcEIsU0FBUyxFQUFFLDRCQUE0QjtRQUN2QyxJQUFJLEVBQUU7WUFDRixLQUFLLEVBQUUsMEJBQTBCO1lBQ2pDLFVBQVUsRUFBRSxZQUFZO1NBQzNCO0tBQ0o7SUFDRDtRQUNJLElBQUksRUFBRSxlQUFlO1FBQ3JCLFNBQVMsRUFBRSw0QkFBNEI7UUFDdkMsSUFBSSxFQUFFO1lBQ0YsS0FBSyxFQUFFLDJCQUEyQjtZQUNsQyxVQUFVLEVBQUUsWUFBWTtTQUMzQjtLQUNKO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsUUFBUTtRQUNkLFNBQVMsRUFBRSx3QkFBd0I7UUFDbkMsSUFBSSxFQUFFO1lBQ0YsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixVQUFVLEVBQUUsWUFBWTtTQUMzQjtLQUNKO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsY0FBYztRQUNwQixTQUFTLEVBQUUsbUJBQW1CO1FBQzlCLElBQUksRUFBRTtZQUNGLEtBQUssRUFBRSwwQkFBMEI7WUFDakMsVUFBVSxFQUFFLFlBQVk7U0FDM0I7S0FDSjtJQUNEO1FBQ0ksSUFBSSxFQUFFLGNBQWM7UUFDcEIsU0FBUyxFQUFFLDRCQUE0QjtRQUN2QyxJQUFJLEVBQUU7WUFDRixLQUFLLEVBQUUsMEJBQTBCO1lBQ2pDLFVBQVUsRUFBRSxZQUFZO1NBQzNCO0tBQ0o7SUFDRDtRQUNJLElBQUksRUFBRSxZQUFZO1FBQ2xCLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsSUFBSSxFQUFFO1lBQ0YsS0FBSyxFQUFFLGtCQUFrQjtZQUN6QixVQUFVLEVBQUUsWUFBWTtTQUMzQjtLQUNKO0NBQ0osQ0FBQztBQU1GLE1BQU0sT0FBTyx1QkFBdUI7K0dBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCLHdDQUZ0QixZQUFZO2dIQUViLHVCQUF1QixZQUh0QixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzs0RkFFYix1QkFBdUI7a0JBSm5DLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFJlc291cmNlQmxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXNvdXJjZS1ibG9ncy9yZXNvdXJjZS1ibG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXNvdXJjZUNhc2VTdHVkaWVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc291cmNlLWNhc2Utc3R1ZGllcy9yZXNvdXJjZS1jYXNlLXN0dWRpZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc291cmNlSW50ZWdyYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVzb3VyY2UtaW50ZWdyYXRpb24vcmVzb3VyY2UtaW50ZWdyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFJlc291cmNlUG9zdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXNvdXJjZS1wb3N0L3Jlc291cmNlLXBvc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc291cmNlUmVsZWFzZU5vdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVzb3VyY2UtcmVsZWFzZS1ub3Rlcy9yZXNvdXJjZS1yZWxlYXNlLW5vdGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXNvdXJjZVZpZGVvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc291cmNlLXZpZGVvcy9yZXNvdXJjZS12aWRlb3MuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc291cmNlV2ViaW5hckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXNvdXJjZS13ZWJpbmFycy9yZXNvdXJjZS13ZWJpbmFycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzb3VyY2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVzb3VyY2VzL3Jlc291cmNlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzb3VyY2VIdWJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVzb3VyY2VzLWh1Yi9yZXNvdXJjZXMtaHViLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaGl0ZVBhcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3doaXRlLXBhcGVycy93aGl0ZS1wYXBlcnMuY29tcG9uZW50JztcblxuLy8gVGhlc2UgYXJlIHRoZSBwcml2YXRlIHJvdXRlcy4gVGhlIHB1YmxpYyByb3V0ZXMgYW5kIG1vZHVsZXMgbmVlZHMgdG8gYmUgZGVmaW5lZCBpbiBwdWJsaWMucm91dGVzLnRzXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAgICB7XG4gICAgICAgIHBhdGg6ICcnLFxuICAgICAgICBjb21wb25lbnQ6IFJlc291cmNlQ29tcG9uZW50LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0aXRsZTogJ1Jlc291cmNlcyBMaWJyYXJ5JyxcbiAgICAgICAgICAgIHBlcm1pc3Npb246ICdQYWdlcy5CbG9nJ1xuICAgICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHBhdGg6ICdodWInLFxuICAgICAgICBjb21wb25lbnQ6IFJlc291cmNlSHViQ29tcG9uZW50LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0aXRsZTogJ1Jlc291cmNlcyAtIEh1YicsXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAnUGFnZXMuQmxvZydcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgICBwYXRoOiAnYmxvZ3MnLFxuICAgICAgICBjb21wb25lbnQ6IFJlc291cmNlQmxvZ0NvbXBvbmVudCxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdGl0bGU6ICdSZXNvdXJjZXMgLSBCbG9ncycsXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAnUGFnZXMuQmxvZydcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgICBwYXRoOiAndmlkZW9zJyxcbiAgICAgICAgY29tcG9uZW50OiBSZXNvdXJjZVZpZGVvQ29tcG9uZW50LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0aXRsZTogJ1Jlc291cmNlcyAtIFZpZGVvcycsXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAnUGFnZXMuQmxvZydcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgICBwYXRoOiAnaW50ZWdyYXRpb25zJyxcbiAgICAgICAgY29tcG9uZW50OiBSZXNvdXJjZUludGVncmF0aW9uQ29tcG9uZW50LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0aXRsZTogJ1Jlc291cmNlcyAtIEludGVncmF0aW9ucycsXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAnUGFnZXMuQmxvZydcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgICBwYXRoOiAncmVsZWFzZS1ub3RlcycsXG4gICAgICAgIGNvbXBvbmVudDogUmVzb3VyY2VSZWxlYXNlTm90ZUNvbXBvbmVudCxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdGl0bGU6ICdSZXNvdXJjZXMgLSBSZWxlYXNlIE5vdGVzJyxcbiAgICAgICAgICAgIHBlcm1pc3Npb246ICdQYWdlcy5CbG9nJ1xuICAgICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHBhdGg6ICdldmVudHMnLFxuICAgICAgICBjb21wb25lbnQ6IFJlc291cmNlV2ViaW5hckNvbXBvbmVudCxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdGl0bGU6ICdSZXNvdXJjZXMgLSBFdmVudHMnLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogJ1BhZ2VzLkJsb2cnXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgICAgcGF0aDogJ3doaXRlLXBhcGVycycsXG4gICAgICAgIGNvbXBvbmVudDogV2hpdGVQYXBlckNvbXBvbmVudCxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdGl0bGU6ICdSZXNvdXJjZXMgLSBXaGl0ZSBQYXBlcnMnLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogJ1BhZ2VzLkJsb2cnXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgICAgcGF0aDogJ2Nhc2Utc3R1ZGllcycsXG4gICAgICAgIGNvbXBvbmVudDogUmVzb3VyY2VDYXNlU3R1ZGllc0NvbXBvbmVudCxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdGl0bGU6ICdSZXNvdXJjZXMgLSBDYXNlIFN0dWRpZXMnLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogJ1BhZ2VzLkJsb2cnXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgICAgcGF0aDogJ3ZpZXcvOnNsdWcnLFxuICAgICAgICBjb21wb25lbnQ6IFJlc291cmNlUG9zdENvbXBvbmVudCxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdGl0bGU6ICdSZXNvdXJjZXMgLSBQb3N0JyxcbiAgICAgICAgICAgIHBlcm1pc3Npb246ICdQYWdlcy5CbG9nJ1xuICAgICAgICB9XG4gICAgfVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICAgIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEJsb2dQdWJsaWNSb3V0aW5nTW9kdWxlIHt9XG4iXX0=
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtcHVibGljLnJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1tb2R1bGUvc3JjL2xpYi9wdWJsaWMvcmVzb3VyY2UtcHVibGljLnJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBRWpELHNHQUFzRztBQUN0RyxNQUFNLE1BQU0sR0FBVztJQUNuQjtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixJQUFJLEVBQUU7WUFDSixLQUFLLEVBQUUscUVBQXFFO1lBQzVF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QU8sdUJBQXVCOytHQUF2Qix1QkFBdUI7Z0hBQXZCLHVCQUF1Qix3Q0FGdEIsWUFBWTtnSEFFYix1QkFBdUIsWUFIdEIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDN0IsWUFBWTs7NEZBRWIsdUJBQXVCO2tCQUpuQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBSZXNvdXJjZUJsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVzb3VyY2UtYmxvZ3MvcmVzb3VyY2UtYmxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzb3VyY2VDYXNlU3R1ZGllc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXNvdXJjZS1jYXNlLXN0dWRpZXMvcmVzb3VyY2UtY2FzZS1zdHVkaWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXNvdXJjZUludGVncmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc291cmNlLWludGVncmF0aW9uL3Jlc291cmNlLWludGVncmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXNvdXJjZVBvc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVzb3VyY2UtcG9zdC9yZXNvdXJjZS1wb3N0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXNvdXJjZVJlbGVhc2VOb3RlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc291cmNlLXJlbGVhc2Utbm90ZXMvcmVzb3VyY2UtcmVsZWFzZS1ub3Rlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzb3VyY2VWaWRlb0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXNvdXJjZS12aWRlb3MvcmVzb3VyY2UtdmlkZW9zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXNvdXJjZVdlYmluYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVzb3VyY2Utd2ViaW5hcnMvcmVzb3VyY2Utd2ViaW5hcnMuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc291cmNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc291cmNlcy9yZXNvdXJjZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc291cmNlSHViQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc291cmNlcy1odWIvcmVzb3VyY2VzLWh1Yi5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2hpdGVQYXBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93aGl0ZS1wYXBlcnMvd2hpdGUtcGFwZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZW9HdWFyZCB9IGZyb20gJ0Bwb3Npd2lzZS9jb3JlLWd1YXJkcyc7XG5cbi8vIFRoZXNlIGFyZSB0aGUgcHJpdmF0ZSByb3V0ZXMuIFRoZSBwdWJsaWMgcm91dGVzIGFuZCBtb2R1bGVzIG5lZWRzIHRvIGJlIGRlZmluZWQgaW4gcHVibGljLnJvdXRlcy50c1xuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gICAge1xuICAgICAgcGF0aDogJycsXG4gICAgICBjb21wb25lbnQ6IFJlc291cmNlQ29tcG9uZW50LFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ1RoZSBNU1AgVmF1bHQgYnkgQ2xvdWRPbGl2ZSB8IHJlc2VsbGVyIGJsb2dzLCBjYXNlIHN0dWRpZXMgYW5kIG1vcmUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0V4cGxvcmUgQ2xvdWRPbGl2ZVxcJ3MgcmVzb3VyY2UgdmF1bHQgZm9yIE1TUHMsIGRlc2lnbmVkIHRvIGhlbHAgeW91IHVwc2tpbGwgYW5kIGRpc2NvdmVyIHdoaXRlcGFwZXJzLCBob3cgdG8gdmlkZW9zLCBkZW1vbnN0cmF0aW9ucywgY3VzdG9tZXIgc3VjY2VzcyBzdG9yaWVzIGFuZCBtb3JlLicsXG4gICAgICAgIGtleXdvcmRzOiAnTVNQIHJlc291cmNlcywgQ2xvdWRPbGl2ZSB2YXVsdCwgd2hpdGVwYXBlcnMsIGNhc2Ugc3R1ZGllcywgdmlkZW9zLCBkZW1vbnN0cmF0aW9ucywgY3VzdG9tZXIgc3VjY2VzcyBzdG9yaWVzJyxcbiAgICAgICAgcGVybWlzc2lvbjogJ1BhZ2VzLkJsb2cnXG4gICAgICB9LFxuICAgICAgY2FuQWN0aXZhdGU6IFtTZW9HdWFyZF0sXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHBhdGg6ICdodWInLFxuICAgICAgICBjb21wb25lbnQ6IFJlc291cmNlSHViQ29tcG9uZW50LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0aXRsZTogJ1Jlc291cmNlcyAtIEh1YicsXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAnUGFnZXMuQmxvZydcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgcGF0aDogJ2Jsb2dzJyxcbiAgICAgIGNvbXBvbmVudDogUmVzb3VyY2VCbG9nQ29tcG9uZW50LFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ0Nsb3VkT2xpdmUgUmVzb3VyY2VzICYgQmxvZyB8IE1TUCBCaWxsaW5nIEJlc3QgUHJhY3RpY2VzJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdHdWlkZXMgYW5kIHRpcHMgZm9yIE1TUCBmaW5hbmNlIHRlYW1zLiBMZWFybiBob3cgdG8gYXV0b21hdGUgU2FhUyBiaWxsaW5nLCByZWNvbmNpbGUgdmVuZG9yIGludm9pY2VzLCBhbmQgaW1wcm92ZSBQU0EgZGF0YSBxdWFsaXR5LicsXG4gICAgICAgIGtleXdvcmRzOiAnQ2xvdWRPbGl2ZSBibG9nLCBNU1AgYmlsbGluZyBiZXN0IHByYWN0aWNlcywgZmluYW5jZSB0ZWFtcywgU2FhUyBiaWxsaW5nIGF1dG9tYXRpb24sIHZlbmRvciBpbnZvaWNlIHJlY29uY2lsaWF0aW9uLCBQU0EgZGF0YSBxdWFsaXR5JyxcbiAgICAgICAgcGVybWlzc2lvbjogJ1BhZ2VzLkJsb2cnXG4gICAgICB9LFxuICAgICAgY2FuQWN0aXZhdGU6IFtTZW9HdWFyZF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwYXRoOiAnY2FzZS1zdHVkaWVzJyxcbiAgICAgIGNvbXBvbmVudDogUmVzb3VyY2VDYXNlU3R1ZGllc0NvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdGl0bGU6ICdDbG91ZE9saXZlIENhc2UgU3R1ZGllcyB8IE1TUCBTdWNjZXNzIFN0b3JpZXMgJiBJbnZvaWNlIFJlY29uY2lsaWF0aW9uIFdpbnMnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1JlYWQgaG93IE1TUHMgc29sdmVkIGNsb3VkICYgU2FhUyBiaWxsaW5nIG5pZ2h0bWFyZXMgd2l0aCBDbG91ZE9saXZlIC0gcmVhbCBjYXNlIHN0dWRpZXMgZmVhdHVyaW5nIHZlbmRvciBpbnZvaWNlIHJlY29uY2lsaWF0aW9uLCBjb250cmFjdCBtYXRjaGluZyAmIG1hcmdpbiBwcm90ZWN0aW9uLicsXG4gICAgICAgIGtleXdvcmRzOiAnQ2xvdWRPbGl2ZSBjYXNlIHN0dWRpZXMsIE1TUCBzdWNjZXNzIHN0b3JpZXMsIGludm9pY2UgcmVjb25jaWxpYXRpb24gd2lucywgdmVuZG9yIGludm9pY2UgcmVjb25jaWxpYXRpb24sIGNvbnRyYWN0IG1hdGNoaW5nLCBtYXJnaW4gcHJvdGVjdGlvbicsXG4gICAgICAgIHBlcm1pc3Npb246ICdQYWdlcy5CbG9nJ1xuICAgICAgfSxcbiAgICAgIGNhbkFjdGl2YXRlOiBbU2VvR3VhcmRdLFxuICAgIH0sXG4gICAge1xuICAgICAgcGF0aDogJ2V2ZW50cycsXG4gICAgICBjb21wb25lbnQ6IFJlc291cmNlV2ViaW5hckNvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdGl0bGU6ICdDbG91ZE9saXZlIEV2ZW50cyB8IE1TUCBDb25mZXJlbmNlcywgV2ViaW5hcnMgJiBXb3Jrc2hvcHMnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0pvaW4gQ2xvdWRPbGl2ZSBldmVudHMgZm9yIE1TUHMgLSB3ZWJpbmFycywgY29uZmVyZW5jZXMgJiB3b3Jrc2hvcHMgZm9jdXNlZCBvbiBjbG91ZCAmIFNhYVMgaW52b2ljZSByZWNvbmNpbGlhdGlvbiwgUFNBIGludGVncmF0aW9ucywgYmlsbGluZyBiZXN0IHByYWN0aWNlcy4nLFxuICAgICAgICBrZXl3b3JkczogJ0Nsb3VkT2xpdmUgZXZlbnRzLCBNU1AgY29uZmVyZW5jZXMsIHdlYmluYXJzLCB3b3Jrc2hvcHMsIGludm9pY2UgcmVjb25jaWxpYXRpb24sIFBTQSBpbnRlZ3JhdGlvbnMsIGJpbGxpbmcgYmVzdCBwcmFjdGljZXMnLFxuICAgICAgICBwZXJtaXNzaW9uOiAnUGFnZXMuQmxvZydcbiAgICAgIH0sXG4gICAgICBjYW5BY3RpdmF0ZTogW1Nlb0d1YXJkXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICd3aGl0ZS1wYXBlcnMnLFxuICAgICAgY29tcG9uZW50OiBXaGl0ZVBhcGVyQ29tcG9uZW50LFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ0Nsb3VkT2xpdmUgV2hpdGUgUGFwZXJzIHwgSW4tZGVwdGggTVNQIEJpbGxpbmcgJiBDbG91ZCBJbnZvaWNlIEluc2lnaHRzJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdEb3dubG9hZCBDbG91ZE9saXZlIHdoaXRlIHBhcGVycyBmb3IgTVNQcyAtIGRlZXAgaW5zaWdodHMgaW50byBjbG91ZCAmIFNhYVMgYmlsbGluZywgaW52b2ljZSByZWNvbmNpbGlhdGlvbiBzdHJhdGVnaWVzLCBjb250cmFjdCBtYW5hZ2VtZW50ICYgY29zdCBvcHRpbWlzYXRpb24uJyxcbiAgICAgICAga2V5d29yZHM6ICdDbG91ZE9saXZlIHdoaXRlIHBhcGVycywgTVNQIGJpbGxpbmcgaW5zaWdodHMsIGNsb3VkIGludm9pY2UgaW5zaWdodHMsIGludm9pY2UgcmVjb25jaWxpYXRpb24gc3RyYXRlZ2llcywgY29udHJhY3QgbWFuYWdlbWVudCwgY29zdCBvcHRpbWlzYXRpb24nLFxuICAgICAgICBwZXJtaXNzaW9uOiAnUGFnZXMuQmxvZydcbiAgICAgIH0sXG4gICAgICBjYW5BY3RpdmF0ZTogW1Nlb0d1YXJkXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICd2aWRlb3MnLFxuICAgICAgY29tcG9uZW50OiBSZXNvdXJjZVZpZGVvQ29tcG9uZW50LFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ0Nsb3VkT2xpdmUgVmlkZW9zIHwgTVNQIFR1dG9yaWFscywgRGVtb3MgJiBJbnNpZ2h0cycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnV2F0Y2ggQ2xvdWRPbGl2ZSB2aWRlb3M6IHByb2R1Y3QgZGVtb3MsIE1TUCB0dXRvcmlhbHMsIGFuZCBleHBlcnQgaW5zaWdodHMgaW50byBjbG91ZCAmIFNhYVMgaW52b2ljZSByZWNvbmNpbGlhdGlvbiwgUFNBIGludGVncmF0aW9ucywgYW5kIGJpbGxpbmcgYXV0b21hdGlvbi4nLFxuICAgICAgICBrZXl3b3JkczogJ0Nsb3VkT2xpdmUgdmlkZW9zLCBNU1AgdHV0b3JpYWxzLCBwcm9kdWN0IGRlbW9zLCBpbnZvaWNlIHJlY29uY2lsaWF0aW9uLCBQU0EgaW50ZWdyYXRpb25zLCBiaWxsaW5nIGF1dG9tYXRpb24nLFxuICAgICAgICBwZXJtaXNzaW9uOiAnUGFnZXMuQmxvZydcbiAgICAgIH0sXG4gICAgICBjYW5BY3RpdmF0ZTogW1Nlb0d1YXJkXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICdyZWxlYXNlLW5vdGVzJyxcbiAgICAgIGNvbXBvbmVudDogUmVzb3VyY2VSZWxlYXNlTm90ZUNvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdGl0bGU6ICdDbG91ZE9saXZlIFJlbGVhc2UgTm90ZXMgfCBQcm9kdWN0IFVwZGF0ZXMgJiBWZXJzaW9uIEhpc3RvcnknLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1N0YXkgdXAgdG8gZGF0ZSB3aXRoIENsb3VkT2xpdmUgcmVsZWFzZSBub3RlcyAtIHZpZXcgbmV3IGZlYXR1cmVzLCBidWcgZml4ZXMsIGVuaGFuY2VtZW50cywgYW5kIHZlcnNpb24gaGlzdG9yeSBmb3IgY2xvdWQgJiBTYWFTIGludm9pY2UgcmVjb25jaWxpYXRpb24uJyxcbiAgICAgICAga2V5d29yZHM6ICdDbG91ZE9saXZlIHJlbGVhc2Ugbm90ZXMsIHByb2R1Y3QgdXBkYXRlcywgdmVyc2lvbiBoaXN0b3J5LCBuZXcgZmVhdHVyZXMsIGJ1ZyBmaXhlcywgZW5oYW5jZW1lbnRzLCBpbnZvaWNlIHJlY29uY2lsaWF0aW9uJyxcbiAgICAgICAgcGVybWlzc2lvbjogJ1BhZ2VzLkJsb2cnXG4gICAgICB9LFxuICAgICAgY2FuQWN0aXZhdGU6IFtTZW9HdWFyZF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwYXRoOiAnaW50ZWdyYXRpb25zJyxcbiAgICAgIGNvbXBvbmVudDogUmVzb3VyY2VJbnRlZ3JhdGlvbkNvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdGl0bGU6ICdDbG91ZE9saXZlIEludGVncmF0aW9ucyB8IEF1dG90YXNrLCBDb25uZWN0V2lzZSwgTWljcm9zb2Z0ICYgMTQwKyB2ZW5kb3JzJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdFeHBsb3JlIENsb3VkT2xpdmUgaW50ZWdyYXRpb25zIGZvciBNU1BzOiBBdXRvdGFzaywgQ29ubmVjdFdpc2UsIE1pY3Jvc29mdCBhbmQgMTQwKyB2ZW5kb3JzLiBSZWNvbmNpbGUgbGljZW5zZXMgYW5kIHN0cmVhbWxpbmUgTVNQIGNsaWVudCBiaWxsaW5nLicsXG4gICAgICAgIGtleXdvcmRzOiAnQ2xvdWRPbGl2ZSBpbnRlZ3JhdGlvbnMsIEF1dG90YXNrLCBDb25uZWN0V2lzZSwgTWljcm9zb2Z0LCAxNDArIHZlbmRvcnMsIE1TUCBjbGllbnQgYmlsbGluZywgbGljZW5zZSByZWNvbmNpbGlhdGlvbicsXG4gICAgICAgIHBlcm1pc3Npb246ICdQYWdlcy5CbG9nJ1xuICAgICAgfSxcbiAgICAgIGNhbkFjdGl2YXRlOiBbU2VvR3VhcmRdLFxuICAgIH0sXG4gICAge1xuICAgICAgcGF0aDogJ3ZpZXcvOnNsdWcnLFxuICAgICAgY29tcG9uZW50OiBSZXNvdXJjZVBvc3RDb21wb25lbnQsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRpdGxlOiAnMTAgUmVhc29ucyBNU1AgQmlsbGluZyBGYWxscyBPdXQgb2YgU3luYyAoQW5kIEZpeGVzKScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnV2h5IE1TUCBiaWxsaW5nIGRyaWZ0cyBmcm9tIGNvbnRyYWN0cywgYW5kIGhvdyBhdXRvbWF0aW9uIHJlY29uY2lsZXMgdmVuZG9yIGludm9pY2VzLCB1c2FnZSBhbmQgUFNBIGRhdGEgdG8gcHJvdGVjdCBtYXJnaW5zIGFuZCBjYXNoIGZsb3cuJyxcbiAgICAgICAga2V5d29yZHM6ICdNU1AgYmlsbGluZywgaW52b2ljZSByZWNvbmNpbGlhdGlvbiwgdmVuZG9yIGludm9pY2VzLCBQU0EgZGF0YSwgbWFyZ2lucywgY2FzaCBmbG93LCBiaWxsaW5nIGF1dG9tYXRpb24nLFxuICAgICAgICBwZXJtaXNzaW9uOiAnUGFnZXMuQmxvZydcbiAgICAgIH0sXG4gICAgICBjYW5BY3RpdmF0ZTogW1Nlb0d1YXJkXSxcbiAgICB9XG4gIF07XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBCbG9nUHVibGljUm91dGluZ01vZHVsZSB7fVxuIl19
|
|
@@ -46,6 +46,7 @@ import { moveItemInArray } from '@angular/cdk/drag-drop';
|
|
|
46
46
|
import * as i2$1 from '@angular/platform-browser';
|
|
47
47
|
import * as i5$2 from '@posiwise/admin-module-utils';
|
|
48
48
|
import { CompanyData, ADMIN_ROUTERS } from '@posiwise/common-utilities';
|
|
49
|
+
import { SeoGuard } from '@posiwise/core-guards';
|
|
49
50
|
|
|
50
51
|
class ResourceService {
|
|
51
52
|
constructor(api) {
|
|
@@ -2472,9 +2473,12 @@ const routes = [
|
|
|
2472
2473
|
path: '',
|
|
2473
2474
|
component: ResourceComponent,
|
|
2474
2475
|
data: {
|
|
2475
|
-
title: '
|
|
2476
|
+
title: 'The MSP Vault by CloudOlive | reseller blogs, case studies and more',
|
|
2477
|
+
description: 'Explore CloudOlive\'s resource vault for MSPs, designed to help you upskill and discover whitepapers, how to videos, demonstrations, customer success stories and more.',
|
|
2478
|
+
keywords: 'MSP resources, CloudOlive vault, whitepapers, case studies, videos, demonstrations, customer success stories',
|
|
2476
2479
|
permission: 'Pages.Blog'
|
|
2477
|
-
}
|
|
2480
|
+
},
|
|
2481
|
+
canActivate: [SeoGuard],
|
|
2478
2482
|
},
|
|
2479
2483
|
{
|
|
2480
2484
|
path: 'hub',
|
|
@@ -2488,65 +2492,89 @@ const routes = [
|
|
|
2488
2492
|
path: 'blogs',
|
|
2489
2493
|
component: ResourceBlogComponent,
|
|
2490
2494
|
data: {
|
|
2491
|
-
title: 'Resources
|
|
2495
|
+
title: 'CloudOlive Resources & Blog | MSP Billing Best Practices',
|
|
2496
|
+
description: 'Guides and tips for MSP finance teams. Learn how to automate SaaS billing, reconcile vendor invoices, and improve PSA data quality.',
|
|
2497
|
+
keywords: 'CloudOlive blog, MSP billing best practices, finance teams, SaaS billing automation, vendor invoice reconciliation, PSA data quality',
|
|
2492
2498
|
permission: 'Pages.Blog'
|
|
2493
|
-
}
|
|
2499
|
+
},
|
|
2500
|
+
canActivate: [SeoGuard],
|
|
2494
2501
|
},
|
|
2495
2502
|
{
|
|
2496
|
-
path: '
|
|
2497
|
-
component:
|
|
2503
|
+
path: 'case-studies',
|
|
2504
|
+
component: ResourceCaseStudiesComponent,
|
|
2498
2505
|
data: {
|
|
2499
|
-
title: '
|
|
2506
|
+
title: 'CloudOlive Case Studies | MSP Success Stories & Invoice Reconciliation Wins',
|
|
2507
|
+
description: 'Read how MSPs solved cloud & SaaS billing nightmares with CloudOlive - real case studies featuring vendor invoice reconciliation, contract matching & margin protection.',
|
|
2508
|
+
keywords: 'CloudOlive case studies, MSP success stories, invoice reconciliation wins, vendor invoice reconciliation, contract matching, margin protection',
|
|
2500
2509
|
permission: 'Pages.Blog'
|
|
2501
|
-
}
|
|
2510
|
+
},
|
|
2511
|
+
canActivate: [SeoGuard],
|
|
2502
2512
|
},
|
|
2503
2513
|
{
|
|
2504
|
-
path: '
|
|
2505
|
-
component:
|
|
2514
|
+
path: 'events',
|
|
2515
|
+
component: ResourceWebinarComponent,
|
|
2506
2516
|
data: {
|
|
2507
|
-
title: '
|
|
2517
|
+
title: 'CloudOlive Events | MSP Conferences, Webinars & Workshops',
|
|
2518
|
+
description: 'Join CloudOlive events for MSPs - webinars, conferences & workshops focused on cloud & SaaS invoice reconciliation, PSA integrations, billing best practices.',
|
|
2519
|
+
keywords: 'CloudOlive events, MSP conferences, webinars, workshops, invoice reconciliation, PSA integrations, billing best practices',
|
|
2508
2520
|
permission: 'Pages.Blog'
|
|
2509
|
-
}
|
|
2521
|
+
},
|
|
2522
|
+
canActivate: [SeoGuard],
|
|
2510
2523
|
},
|
|
2511
2524
|
{
|
|
2512
|
-
path: '
|
|
2513
|
-
component:
|
|
2525
|
+
path: 'white-papers',
|
|
2526
|
+
component: WhitePaperComponent,
|
|
2514
2527
|
data: {
|
|
2515
|
-
title: '
|
|
2528
|
+
title: 'CloudOlive White Papers | In-depth MSP Billing & Cloud Invoice Insights',
|
|
2529
|
+
description: 'Download CloudOlive white papers for MSPs - deep insights into cloud & SaaS billing, invoice reconciliation strategies, contract management & cost optimisation.',
|
|
2530
|
+
keywords: 'CloudOlive white papers, MSP billing insights, cloud invoice insights, invoice reconciliation strategies, contract management, cost optimisation',
|
|
2516
2531
|
permission: 'Pages.Blog'
|
|
2517
|
-
}
|
|
2532
|
+
},
|
|
2533
|
+
canActivate: [SeoGuard],
|
|
2518
2534
|
},
|
|
2519
2535
|
{
|
|
2520
|
-
path: '
|
|
2521
|
-
component:
|
|
2536
|
+
path: 'videos',
|
|
2537
|
+
component: ResourceVideoComponent,
|
|
2522
2538
|
data: {
|
|
2523
|
-
title: '
|
|
2539
|
+
title: 'CloudOlive Videos | MSP Tutorials, Demos & Insights',
|
|
2540
|
+
description: 'Watch CloudOlive videos: product demos, MSP tutorials, and expert insights into cloud & SaaS invoice reconciliation, PSA integrations, and billing automation.',
|
|
2541
|
+
keywords: 'CloudOlive videos, MSP tutorials, product demos, invoice reconciliation, PSA integrations, billing automation',
|
|
2524
2542
|
permission: 'Pages.Blog'
|
|
2525
|
-
}
|
|
2543
|
+
},
|
|
2544
|
+
canActivate: [SeoGuard],
|
|
2526
2545
|
},
|
|
2527
2546
|
{
|
|
2528
|
-
path: '
|
|
2529
|
-
component:
|
|
2547
|
+
path: 'release-notes',
|
|
2548
|
+
component: ResourceReleaseNoteComponent,
|
|
2530
2549
|
data: {
|
|
2531
|
-
title: '
|
|
2550
|
+
title: 'CloudOlive Release Notes | Product Updates & Version History',
|
|
2551
|
+
description: 'Stay up to date with CloudOlive release notes - view new features, bug fixes, enhancements, and version history for cloud & SaaS invoice reconciliation.',
|
|
2552
|
+
keywords: 'CloudOlive release notes, product updates, version history, new features, bug fixes, enhancements, invoice reconciliation',
|
|
2532
2553
|
permission: 'Pages.Blog'
|
|
2533
|
-
}
|
|
2554
|
+
},
|
|
2555
|
+
canActivate: [SeoGuard],
|
|
2534
2556
|
},
|
|
2535
2557
|
{
|
|
2536
|
-
path: '
|
|
2537
|
-
component:
|
|
2558
|
+
path: 'integrations',
|
|
2559
|
+
component: ResourceIntegrationComponent,
|
|
2538
2560
|
data: {
|
|
2539
|
-
title: '
|
|
2561
|
+
title: 'CloudOlive Integrations | Autotask, ConnectWise, Microsoft & 140+ vendors',
|
|
2562
|
+
description: 'Explore CloudOlive integrations for MSPs: Autotask, ConnectWise, Microsoft and 140+ vendors. Reconcile licenses and streamline MSP client billing.',
|
|
2563
|
+
keywords: 'CloudOlive integrations, Autotask, ConnectWise, Microsoft, 140+ vendors, MSP client billing, license reconciliation',
|
|
2540
2564
|
permission: 'Pages.Blog'
|
|
2541
|
-
}
|
|
2565
|
+
},
|
|
2566
|
+
canActivate: [SeoGuard],
|
|
2542
2567
|
},
|
|
2543
2568
|
{
|
|
2544
2569
|
path: 'view/:slug',
|
|
2545
2570
|
component: ResourcePostComponent,
|
|
2546
2571
|
data: {
|
|
2547
|
-
title: '
|
|
2572
|
+
title: '10 Reasons MSP Billing Falls Out of Sync (And Fixes)',
|
|
2573
|
+
description: 'Why MSP billing drifts from contracts, and how automation reconciles vendor invoices, usage and PSA data to protect margins and cash flow.',
|
|
2574
|
+
keywords: 'MSP billing, invoice reconciliation, vendor invoices, PSA data, margins, cash flow, billing automation',
|
|
2548
2575
|
permission: 'Pages.Blog'
|
|
2549
|
-
}
|
|
2576
|
+
},
|
|
2577
|
+
canActivate: [SeoGuard],
|
|
2550
2578
|
}
|
|
2551
2579
|
];
|
|
2552
2580
|
class BlogPublicRoutingModule {
|