@quadrel-enterprise-ui/persistence 18.1.1 → 18.1.3

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.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhZHJlbC1lbnRlcnByaXNlLXVpLXBlcnNpc3RlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9xZC1wZXJzaXN0ZW5jZS9zcmMvcXVhZHJlbC1lbnRlcnByaXNlLXVpLXBlcnNpc3RlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -191,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
191
191
  */
192
192
 
193
193
  export { QdPersistenceModule, QdPersistenceService };
194
- //# sourceMappingURL=quadrel-services-qd-persistence.mjs.map
194
+ //# sourceMappingURL=quadrel-enterprise-ui-persistence.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quadrel-enterprise-ui-persistence.mjs","sources":["../../../../libs/qd-persistence/src/lib/persistence-config.token.ts","../../../../libs/qd-persistence/src/lib/utils/stringifyer.ts","../../../../libs/qd-persistence/src/lib/strategy/cookie-strategy/cookie-strategy.ts","../../../../libs/qd-persistence/src/lib/strategy/cookie-strategy/cookie-strategy.factory.ts","../../../../libs/qd-persistence/src/lib/strategy/strategy-resolver.service.ts","../../../../libs/qd-persistence/src/lib/persistence.service.ts","../../../../libs/qd-persistence/src/lib/persistence.module.ts","../../../../libs/qd-persistence/src/quadrel-enterprise-ui-persistence.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { QdPersistenceConfig } from './model/persistence-config';\n\nexport const QD_PERSISTENCE_CONFIG = new InjectionToken<QdPersistenceConfig>('QD_PERSISTENCE_CONFIG');\n","export class QdStringifyer {\n static tryStringify<T>(value: T): string {\n let data = '';\n\n if (['object', 'boolean', 'number'].includes(typeof value)) {\n data = JSON.stringify(value);\n }\n\n if (typeof value === 'string') {\n data = value;\n }\n\n return data;\n }\n}\n","import { Inject, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { CookieService } from 'ngx-cookie-service';\nimport { QdStringifyer } from '../../utils/stringifyer';\nimport { QdPersistStrategy } from '../persist-strategy';\n\ntype QdPersistedData = { [key: string]: unknown };\n\n/**\n * This strategy uses cookies to make the data visible between different subdomains of the host 'bazg.admin.ch'.\n * In contrast, local storage would make the data only visible for a specific subdomain.\n * If this strategy is used locally, the cookies will be saved for the domain 'localhost'.\n * For the future another strategy is planned that saves the data in a backend service and that will also allow data\n * to be shared between websites with different hosts.\n */\nexport class QdCookieStrategy implements QdPersistStrategy {\n private cookieExpiresDays = 365 * 10;\n\n constructor(\n private cookieName: string,\n private cookieService: CookieService,\n @Optional() @Inject(DOCUMENT) private document?: Document\n ) {}\n\n private get cookieDomain(): string {\n if (this.document?.location?.hostname === 'localhost') return 'localhost';\n return '.bazg.admin.ch';\n }\n\n get persistedData(): QdPersistedData {\n try {\n const parsed = JSON.parse(this.cookieService.get(this.cookieName));\n\n if (typeof parsed !== 'object' || Array.isArray(parsed)) return {};\n\n return parsed ?? {};\n } catch (e) {\n return {};\n }\n }\n\n private persistData(data: QdPersistedData) {\n this.cookieService.set(this.cookieName, JSON.stringify(data), this.cookieExpiresDays, '/', this.cookieDomain);\n }\n\n setItem<T>(key: string, value: T): void {\n const data = this.persistedData;\n data[key] = QdStringifyer.tryStringify<T>(value);\n\n this.persistData(data);\n }\n\n getItem<T>(key: string): T | null {\n try {\n return JSON.parse(<string>this.persistedData[key]);\n } catch (e) {\n return (this.persistedData[key] as T) ?? null;\n }\n }\n\n removeItem(key: string): void {\n const data = this.persistedData;\n delete data[key];\n\n this.persistData(data);\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { CookieService } from 'ngx-cookie-service';\nimport { QdCookieStrategy } from './cookie-strategy';\nimport { QD_PERSISTENCE_CONFIG } from '../../persistence-config.token';\nimport { QdPersistenceConfig } from '../../model/persistence-config';\nimport { QdPersistScope } from '../../model/persistence-types';\nimport { QdPersistStrategy } from '../persist-strategy';\n\n@Injectable()\nexport class QdCookieStrategyFactory {\n constructor(\n @Inject(QD_PERSISTENCE_CONFIG) private config: QdPersistenceConfig,\n private cookieService: CookieService,\n @Optional() @Inject(DOCUMENT) private document?: Document\n ) {}\n\n getCookieStrategy(scope: QdPersistScope): QdPersistStrategy {\n return new QdCookieStrategy(this.getCookieName(scope), this.cookieService, document);\n }\n\n private getCookieName(scope: QdPersistScope): string {\n switch (scope) {\n case 'bazg':\n return 'QD-BAZG';\n case 'application':\n return `QD-APPLICATION_${this.config.applicationIdentifier}`;\n case 'private':\n return `QD-PRIVATE_${this.config.applicationIdentifier}_${this.config.frontendIdentifier}`;\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { QdPersistScope } from '../model/persistence-types';\nimport { QdPersistStrategy } from './persist-strategy';\nimport { QD_PERSISTENCE_CONFIG } from '../persistence-config.token';\nimport { QdPersistenceConfig } from '../model/persistence-config';\nimport { QdCookieStrategyFactory } from './cookie-strategy/cookie-strategy.factory';\n\n@Injectable()\nexport class QdStrategyResolverService {\n constructor(\n @Inject(QD_PERSISTENCE_CONFIG) private config: QdPersistenceConfig,\n private cookieStrategyFactory: QdCookieStrategyFactory\n ) {}\n\n resolve(scope: QdPersistScope): QdPersistStrategy {\n /* istanbul ignore next (remove comment when another strategy is added) */\n switch (this.config.persistStrategy) {\n case 'cookie':\n default:\n return this.cookieStrategyFactory.getCookieStrategy(scope);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { QdStrategyResolverService } from './strategy/strategy-resolver.service';\nimport { QdPersistScope } from './model/persistence-types';\n\n@Injectable()\nexport class QdPersistenceService {\n constructor(private strategyResolverService: QdStrategyResolverService) {}\n\n write<T>(key: string, data: T, scope: QdPersistScope = 'bazg'): void {\n const strategy = this.strategyResolverService.resolve(scope);\n\n strategy.setItem<T>(key, data);\n }\n\n read<T>(key: string, scope: QdPersistScope = 'bazg'): T | null {\n const strategy = this.strategyResolverService.resolve(scope);\n\n return strategy.getItem<T>(key);\n }\n\n delete(key: string, scope: QdPersistScope = 'bazg'): void {\n const strategy = this.strategyResolverService.resolve(scope);\n\n strategy.removeItem(key);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { QdPersistenceConfig } from './model/persistence-config';\nimport { QD_PERSISTENCE_CONFIG } from './persistence-config.token';\nimport { QdPersistenceService } from './persistence.service';\nimport { QdStrategyResolverService } from './strategy/strategy-resolver.service';\nimport { QdCookieStrategyFactory } from './strategy/cookie-strategy/cookie-strategy.factory';\n\n@NgModule({\n providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory]\n})\nexport class QdPersistenceModule {\n static forRoot(config: QdPersistenceConfig): ModuleWithProviders<QdPersistenceModule> {\n return {\n ngModule: QdPersistenceModule,\n providers: [{ provide: QD_PERSISTENCE_CONFIG, useValue: config }]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.QdCookieStrategyFactory","i1.QdStrategyResolverService"],"mappings":";;;;;;;AAGO,MAAM,qBAAqB,GAAG,IAAI,cAAc,CAAsB,uBAAuB,CAAC;;MCHxF,aAAa,CAAA;IACxB,OAAO,YAAY,CAAI,KAAQ,EAAA;QAC7B,IAAI,IAAI,GAAG,EAAE;AAEb,QAAA,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE;AAC1D,YAAA,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;AAG9B,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,GAAG,KAAK;;AAGd,QAAA,OAAO,IAAI;;AAEd;;ACND;;;;;;AAMG;AACH,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB,CAAA;AAIjB,IAAA,UAAA;AACA,IAAA,aAAA;AAC8B,IAAA,QAAA;AALhC,IAAA,iBAAiB,GAAG,GAAG,GAAG,EAAE;AAEpC,IAAA,WAAA,CACU,UAAkB,EAClB,aAA4B,EACE,QAAmB,EAAA;QAFjD,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAa,CAAA,aAAA,GAAb,aAAa;QACiB,IAAQ,CAAA,QAAA,GAAR,QAAQ;;AAGhD,IAAA,IAAY,YAAY,GAAA;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,KAAK,WAAW;AAAE,YAAA,OAAO,WAAW;AACzE,QAAA,OAAO,gBAAgB;;AAGzB,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAElE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAAE,gBAAA,OAAO,EAAE;YAElE,OAAO,MAAM,IAAI,EAAE;;QACnB,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,EAAE;;;AAIL,IAAA,WAAW,CAAC,IAAqB,EAAA;QACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC;;IAG/G,OAAO,CAAI,GAAW,EAAE,KAAQ,EAAA;AAC9B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,YAAY,CAAI,KAAK,CAAC;AAEhD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;;AAGxB,IAAA,OAAO,CAAI,GAAW,EAAA;AACpB,QAAA,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAS,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;;QAClD,OAAO,CAAC,EAAE;YACV,OAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAO,IAAI,IAAI;;;AAIjD,IAAA,UAAU,CAAC,GAAW,EAAA;AACpB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa;AAC/B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC;AAEhB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;;CAEzB;AAnDY,gBAAgB,GAAA,UAAA,CAAA;IAMxB,OAAA,CAAA,CAAA,EAAA,QAAQ,EAAE,CAAA;AAAE,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;6CADN,aAAa;QACa,QAAQ,CAAA;AANhD,CAAA,EAAA,gBAAgB,CAmD5B;;MCxDY,uBAAuB,CAAA;AAEO,IAAA,MAAA;AAC/B,IAAA,aAAA;AAC8B,IAAA,QAAA;AAHxC,IAAA,WAAA,CACyC,MAA2B,EAC1D,aAA4B,EACE,QAAmB,EAAA;QAFlB,IAAM,CAAA,MAAA,GAAN,MAAM;QACrC,IAAa,CAAA,aAAA,GAAb,aAAa;QACiB,IAAQ,CAAA,QAAA,GAAR,QAAQ;;AAGhD,IAAA,iBAAiB,CAAC,KAAqB,EAAA;AACrC,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;;AAG9E,IAAA,aAAa,CAAC,KAAqB,EAAA;QACzC,QAAQ,KAAK;AACX,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,SAAS;AAClB,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,kBAAkB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;AAC9D,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,CAAc,WAAA,EAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAI,CAAA,EAAA,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;;;uGAlBrF,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAExB,qBAAqB,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAET,QAAQ,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAJnB,uBAAuB,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;0BAGI,MAAM;2BAAC,qBAAqB;;0BAE5B;;0BAAY,MAAM;2BAAC,QAAQ;;;MCNnB,yBAAyB,CAAA;AAEK,IAAA,MAAA;AAC/B,IAAA,qBAAA;IAFV,WACyC,CAAA,MAA2B,EAC1D,qBAA8C,EAAA;QADf,IAAM,CAAA,MAAA,GAAN,MAAM;QACrC,IAAqB,CAAA,qBAAA,GAArB,qBAAqB;;AAG/B,IAAA,OAAO,CAAC,KAAqB,EAAA;;AAE3B,QAAA,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe;AACjC,YAAA,KAAK,QAAQ;AACb,YAAA;gBACE,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC;;;AAXrD,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,kBAE1B,qBAAqB,EAAA,EAAA,EAAA,KAAA,EAAAA,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAFpB,yBAAyB,EAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC;;0BAGI,MAAM;2BAAC,qBAAqB;;;MCLpB,oBAAoB,CAAA;AACX,IAAA,uBAAA;AAApB,IAAA,WAAA,CAAoB,uBAAkD,EAAA;QAAlD,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB;;AAE3C,IAAA,KAAK,CAAI,GAAW,EAAE,IAAO,EAAE,QAAwB,MAAM,EAAA;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC;AAE5D,QAAA,QAAQ,CAAC,OAAO,CAAI,GAAG,EAAE,IAAI,CAAC;;AAGhC,IAAA,IAAI,CAAI,GAAW,EAAE,KAAA,GAAwB,MAAM,EAAA;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC;AAE5D,QAAA,OAAO,QAAQ,CAAC,OAAO,CAAI,GAAG,CAAC;;AAGjC,IAAA,MAAM,CAAC,GAAW,EAAE,KAAA,GAAwB,MAAM,EAAA;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC;AAE5D,QAAA,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;;uGAlBf,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,yBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAApB,oBAAoB,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;;MCMY,mBAAmB,CAAA;IAC9B,OAAO,OAAO,CAAC,MAA2B,EAAA;QACxC,OAAO;AACL,YAAA,QAAQ,EAAE,mBAAmB;YAC7B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE;SACjE;;uGALQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAnB,mBAAmB,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,aAFnB,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,CAAC,EAAA,CAAA;;2FAE1E,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB;AACrF,iBAAA;;;ACTD;;AAEG;;;;"}
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
- /// <amd-module name="@quadrel-services/qd-persistence" />
4
+ /// <amd-module name="@quadrel-enterprise-ui/persistence" />
5
5
  export * from './public-api';
package/package.json CHANGED
@@ -1,10 +1,7 @@
1
1
  {
2
2
  "name": "@quadrel-enterprise-ui/persistence",
3
- "version": "18.1.1",
3
+ "version": "18.1.3",
4
4
  "description": "Library for the persistence of data",
5
- "scripts": {
6
- "pretty": "pretty-quick --pattern '**/qd-persistence/**/*.*'"
7
- },
8
5
  "peerDependencies": {
9
6
  "@angular/common": "~18.2.9",
10
7
  "@angular/core": "~18.2.9"
@@ -18,5 +15,19 @@
18
15
  "reportFile": "sqr.xml",
19
16
  "indent": 4,
20
17
  "sonar56x": true
21
- }
22
- }
18
+ },
19
+ "module": "fesm2022/quadrel-enterprise-ui-persistence.mjs",
20
+ "typings": "index.d.ts",
21
+ "exports": {
22
+ "./package.json": {
23
+ "default": "./package.json"
24
+ },
25
+ ".": {
26
+ "types": "./index.d.ts",
27
+ "esm2022": "./esm2022/quadrel-enterprise-ui-persistence.mjs",
28
+ "esm": "./esm2022/quadrel-enterprise-ui-persistence.mjs",
29
+ "default": "./fesm2022/quadrel-enterprise-ui-persistence.mjs"
30
+ }
31
+ },
32
+ "sideEffects": false
33
+ }
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhZHJlbC1zZXJ2aWNlcy1xZC1wZXJzaXN0ZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvcWQtcGVyc2lzdGVuY2Uvc3JjL3F1YWRyZWwtc2VydmljZXMtcWQtcGVyc2lzdGVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"quadrel-services-qd-persistence.mjs","sources":["../../../../libs/qd-persistence/src/lib/persistence-config.token.ts","../../../../libs/qd-persistence/src/lib/utils/stringifyer.ts","../../../../libs/qd-persistence/src/lib/strategy/cookie-strategy/cookie-strategy.ts","../../../../libs/qd-persistence/src/lib/strategy/cookie-strategy/cookie-strategy.factory.ts","../../../../libs/qd-persistence/src/lib/strategy/strategy-resolver.service.ts","../../../../libs/qd-persistence/src/lib/persistence.service.ts","../../../../libs/qd-persistence/src/lib/persistence.module.ts","../../../../libs/qd-persistence/src/quadrel-services-qd-persistence.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { QdPersistenceConfig } from './model/persistence-config';\n\nexport const QD_PERSISTENCE_CONFIG = new InjectionToken<QdPersistenceConfig>('QD_PERSISTENCE_CONFIG');\n","export class QdStringifyer {\n static tryStringify<T>(value: T): string {\n let data = '';\n\n if (['object', 'boolean', 'number'].includes(typeof value)) {\n data = JSON.stringify(value);\n }\n\n if (typeof value === 'string') {\n data = value;\n }\n\n return data;\n }\n}\n","import { Inject, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { CookieService } from 'ngx-cookie-service';\nimport { QdStringifyer } from '../../utils/stringifyer';\nimport { QdPersistStrategy } from '../persist-strategy';\n\ntype QdPersistedData = { [key: string]: unknown };\n\n/**\n * This strategy uses cookies to make the data visible between different subdomains of the host 'bazg.admin.ch'.\n * In contrast, local storage would make the data only visible for a specific subdomain.\n * If this strategy is used locally, the cookies will be saved for the domain 'localhost'.\n * For the future another strategy is planned that saves the data in a backend service and that will also allow data\n * to be shared between websites with different hosts.\n */\nexport class QdCookieStrategy implements QdPersistStrategy {\n private cookieExpiresDays = 365 * 10;\n\n constructor(\n private cookieName: string,\n private cookieService: CookieService,\n @Optional() @Inject(DOCUMENT) private document?: Document\n ) {}\n\n private get cookieDomain(): string {\n if (this.document?.location?.hostname === 'localhost') return 'localhost';\n return '.bazg.admin.ch';\n }\n\n get persistedData(): QdPersistedData {\n try {\n const parsed = JSON.parse(this.cookieService.get(this.cookieName));\n\n if (typeof parsed !== 'object' || Array.isArray(parsed)) return {};\n\n return parsed ?? {};\n } catch (e) {\n return {};\n }\n }\n\n private persistData(data: QdPersistedData) {\n this.cookieService.set(this.cookieName, JSON.stringify(data), this.cookieExpiresDays, '/', this.cookieDomain);\n }\n\n setItem<T>(key: string, value: T): void {\n const data = this.persistedData;\n data[key] = QdStringifyer.tryStringify<T>(value);\n\n this.persistData(data);\n }\n\n getItem<T>(key: string): T | null {\n try {\n return JSON.parse(<string>this.persistedData[key]);\n } catch (e) {\n return (this.persistedData[key] as T) ?? null;\n }\n }\n\n removeItem(key: string): void {\n const data = this.persistedData;\n delete data[key];\n\n this.persistData(data);\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { CookieService } from 'ngx-cookie-service';\nimport { QdCookieStrategy } from './cookie-strategy';\nimport { QD_PERSISTENCE_CONFIG } from '../../persistence-config.token';\nimport { QdPersistenceConfig } from '../../model/persistence-config';\nimport { QdPersistScope } from '../../model/persistence-types';\nimport { QdPersistStrategy } from '../persist-strategy';\n\n@Injectable()\nexport class QdCookieStrategyFactory {\n constructor(\n @Inject(QD_PERSISTENCE_CONFIG) private config: QdPersistenceConfig,\n private cookieService: CookieService,\n @Optional() @Inject(DOCUMENT) private document?: Document\n ) {}\n\n getCookieStrategy(scope: QdPersistScope): QdPersistStrategy {\n return new QdCookieStrategy(this.getCookieName(scope), this.cookieService, document);\n }\n\n private getCookieName(scope: QdPersistScope): string {\n switch (scope) {\n case 'bazg':\n return 'QD-BAZG';\n case 'application':\n return `QD-APPLICATION_${this.config.applicationIdentifier}`;\n case 'private':\n return `QD-PRIVATE_${this.config.applicationIdentifier}_${this.config.frontendIdentifier}`;\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { QdPersistScope } from '../model/persistence-types';\nimport { QdPersistStrategy } from './persist-strategy';\nimport { QD_PERSISTENCE_CONFIG } from '../persistence-config.token';\nimport { QdPersistenceConfig } from '../model/persistence-config';\nimport { QdCookieStrategyFactory } from './cookie-strategy/cookie-strategy.factory';\n\n@Injectable()\nexport class QdStrategyResolverService {\n constructor(\n @Inject(QD_PERSISTENCE_CONFIG) private config: QdPersistenceConfig,\n private cookieStrategyFactory: QdCookieStrategyFactory\n ) {}\n\n resolve(scope: QdPersistScope): QdPersistStrategy {\n /* istanbul ignore next (remove comment when another strategy is added) */\n switch (this.config.persistStrategy) {\n case 'cookie':\n default:\n return this.cookieStrategyFactory.getCookieStrategy(scope);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { QdStrategyResolverService } from './strategy/strategy-resolver.service';\nimport { QdPersistScope } from './model/persistence-types';\n\n@Injectable()\nexport class QdPersistenceService {\n constructor(private strategyResolverService: QdStrategyResolverService) {}\n\n write<T>(key: string, data: T, scope: QdPersistScope = 'bazg'): void {\n const strategy = this.strategyResolverService.resolve(scope);\n\n strategy.setItem<T>(key, data);\n }\n\n read<T>(key: string, scope: QdPersistScope = 'bazg'): T | null {\n const strategy = this.strategyResolverService.resolve(scope);\n\n return strategy.getItem<T>(key);\n }\n\n delete(key: string, scope: QdPersistScope = 'bazg'): void {\n const strategy = this.strategyResolverService.resolve(scope);\n\n strategy.removeItem(key);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { QdPersistenceConfig } from './model/persistence-config';\nimport { QD_PERSISTENCE_CONFIG } from './persistence-config.token';\nimport { QdPersistenceService } from './persistence.service';\nimport { QdStrategyResolverService } from './strategy/strategy-resolver.service';\nimport { QdCookieStrategyFactory } from './strategy/cookie-strategy/cookie-strategy.factory';\n\n@NgModule({\n providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory]\n})\nexport class QdPersistenceModule {\n static forRoot(config: QdPersistenceConfig): ModuleWithProviders<QdPersistenceModule> {\n return {\n ngModule: QdPersistenceModule,\n providers: [{ provide: QD_PERSISTENCE_CONFIG, useValue: config }]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.QdCookieStrategyFactory","i1.QdStrategyResolverService"],"mappings":"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"}