@quadrel-enterprise-ui/persistence 19.0.13 → 19.0.15-beta.53.1

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 CHANGED
@@ -1,39 +1,40 @@
1
1
  # qd-persistence
2
2
 
3
- This library was generated with [Nx](https://nx.dev).
4
-
5
- QD Persistence saves all cookies under the domain '.bazg.admin.ch' unless your service runs on localhost.
6
-
7
- ## Development
8
-
9
- Run `npm run start` or `nx serve` to start the test app for development. The test app integrates all libraries of the monorepo.
10
-
11
- ### Testing cookies
12
-
13
- You can also test QD Persistence locally. If you run a service on localhost, all QD Persistence cookies will be saved on the domain 'localhost'.
14
-
15
- ## Build
16
-
17
- Run `nx build qd-persistence` to build the project. The build artifacts will be stored in the `dist/libs/qd-persistence` directory. Use `--configuration production` for a production build.
18
-
19
- ## Running unit tests
20
-
21
- Run `nx test qd-persistence` to execute the unit tests.
22
-
23
- ## Release
24
-
25
- Releases can be made on a release branch with the following commands:
26
-
27
- Run `nx release-patch qd-persistence` to create a patch release.
28
-
29
- Run `nx release-minor qd-persistence` to create a minor release.
30
-
31
- Run `nx release-major qd-persistence` to create a major release.
32
-
33
- Run `nx prerelease qd-persistence` to create a beta release.
34
-
35
- Run `nx premajor qd-persistence` to create a beta major release.
36
-
37
- ## Further help
38
-
39
- To get more help on the NX CLI use `nx help` or go check out the documentation [NX CLI Commands](https://nx.dev/reference/commands).
3
+ Cookie-based key-value persistence for Angular. Cookies are stored under `.bazg.admin.ch` (or `localhost` in development).
4
+
5
+ ## Scopes
6
+
7
+ | Scope | Cookie name |
8
+ |---|---|
9
+ | `bazg` (default) | `QD-BAZG` |
10
+ | `application` | `QD-APPLICATION_{appId}` |
11
+ | `private` | `QD-PRIVATE_{appId}_{frontendId}` |
12
+
13
+ ## Setup
14
+
15
+ ```typescript
16
+ @NgModule({
17
+ imports: [
18
+ QdPersistenceModule.forRoot({
19
+ applicationIdentifier: 'my-app',
20
+ frontendIdentifier: 'my-frontend'
21
+ })
22
+ ]
23
+ })
24
+ ```
25
+
26
+ ## API
27
+
28
+ ```typescript
29
+ persistence.write('theme', 'dark');
30
+ persistence.read<string>('theme'); // 'dark'
31
+ persistence.delete('theme');
32
+ ```
33
+
34
+ ### With scope
35
+
36
+ ```typescript
37
+ persistence.write('token', 'abc', 'private');
38
+ persistence.read<string>('token', 'private'); // 'abc'
39
+ persistence.delete('token', 'private');
40
+ ```
@@ -1,7 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Optional, Inject, Injectable, NgModule } from '@angular/core';
3
- import { DOCUMENT } from '@angular/common';
4
- import * as i1 from 'ngx-cookie-service';
2
+ import { InjectionToken, Optional, Inject, DOCUMENT, inject, Injectable, NgModule } from '@angular/core';
5
3
  import { CookieService } from 'ngx-cookie-service';
6
4
  import { __decorate, __param, __metadata } from 'tslib';
7
5
 
@@ -10,12 +8,10 @@ const QD_PERSISTENCE_CONFIG = new InjectionToken('QD_PERSISTENCE_CONFIG');
10
8
  class QdStringifyer {
11
9
  static tryStringify(value) {
12
10
  let data = '';
13
- if (['object', 'boolean', 'number'].includes(typeof value)) {
11
+ if (['object', 'boolean', 'number'].includes(typeof value))
14
12
  data = JSON.stringify(value);
15
- }
16
- if (typeof value === 'string') {
13
+ if (typeof value === 'string')
17
14
  data = value;
18
- }
19
15
  return data;
20
16
  }
21
17
  }
@@ -83,14 +79,9 @@ QdCookieStrategy = __decorate([
83
79
  ], QdCookieStrategy);
84
80
 
85
81
  class QdCookieStrategyFactory {
86
- config;
87
- cookieService;
88
- document;
89
- constructor(config, cookieService, document) {
90
- this.config = config;
91
- this.cookieService = cookieService;
92
- this.document = document;
93
- }
82
+ config = inject(QD_PERSISTENCE_CONFIG);
83
+ cookieService = inject(CookieService);
84
+ document = inject(DOCUMENT, { optional: true });
94
85
  getCookieStrategy(scope) {
95
86
  return new QdCookieStrategy(this.getCookieName(scope), this.cookieService, document);
96
87
  }
@@ -104,28 +95,16 @@ class QdCookieStrategyFactory {
104
95
  return `QD-PRIVATE_${this.config.applicationIdentifier}_${this.config.frontendIdentifier}`;
105
96
  }
106
97
  }
107
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: QdCookieStrategyFactory, deps: [{ token: QD_PERSISTENCE_CONFIG }, { token: i1.CookieService }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
108
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: QdCookieStrategyFactory });
98
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdCookieStrategyFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
99
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdCookieStrategyFactory });
109
100
  }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: QdCookieStrategyFactory, decorators: [{
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdCookieStrategyFactory, decorators: [{
111
102
  type: Injectable
112
- }], ctorParameters: () => [{ type: undefined, decorators: [{
113
- type: Inject,
114
- args: [QD_PERSISTENCE_CONFIG]
115
- }] }, { type: i1.CookieService }, { type: Document, decorators: [{
116
- type: Optional
117
- }, {
118
- type: Inject,
119
- args: [DOCUMENT]
120
- }] }] });
103
+ }] });
121
104
 
122
105
  class QdStrategyResolverService {
123
- config;
124
- cookieStrategyFactory;
125
- constructor(config, cookieStrategyFactory) {
126
- this.config = config;
127
- this.cookieStrategyFactory = cookieStrategyFactory;
128
- }
106
+ config = inject(QD_PERSISTENCE_CONFIG);
107
+ cookieStrategyFactory = inject(QdCookieStrategyFactory);
129
108
  resolve(scope) {
130
109
  /* istanbul ignore next (remove comment when another strategy is added) */
131
110
  switch (this.config.persistStrategy) {
@@ -134,21 +113,15 @@ class QdStrategyResolverService {
134
113
  return this.cookieStrategyFactory.getCookieStrategy(scope);
135
114
  }
136
115
  }
137
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: QdStrategyResolverService, deps: [{ token: QD_PERSISTENCE_CONFIG }, { token: QdCookieStrategyFactory }], target: i0.ɵɵFactoryTarget.Injectable });
138
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: QdStrategyResolverService });
116
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdStrategyResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
117
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdStrategyResolverService });
139
118
  }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: QdStrategyResolverService, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdStrategyResolverService, decorators: [{
141
120
  type: Injectable
142
- }], ctorParameters: () => [{ type: undefined, decorators: [{
143
- type: Inject,
144
- args: [QD_PERSISTENCE_CONFIG]
145
- }] }, { type: QdCookieStrategyFactory }] });
121
+ }] });
146
122
 
147
123
  class QdPersistenceService {
148
- strategyResolverService;
149
- constructor(strategyResolverService) {
150
- this.strategyResolverService = strategyResolverService;
151
- }
124
+ strategyResolverService = inject(QdStrategyResolverService);
152
125
  write(key, data, scope = 'bazg') {
153
126
  const strategy = this.strategyResolverService.resolve(scope);
154
127
  strategy.setItem(key, data);
@@ -161,12 +134,12 @@ class QdPersistenceService {
161
134
  const strategy = this.strategyResolverService.resolve(scope);
162
135
  strategy.removeItem(key);
163
136
  }
164
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: QdPersistenceService, deps: [{ token: QdStrategyResolverService }], target: i0.ɵɵFactoryTarget.Injectable });
165
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: QdPersistenceService });
137
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
138
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceService });
166
139
  }
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: QdPersistenceService, decorators: [{
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceService, decorators: [{
168
141
  type: Injectable
169
- }], ctorParameters: () => [{ type: QdStrategyResolverService }] });
142
+ }] });
170
143
 
171
144
  class QdPersistenceModule {
172
145
  static forRoot(config) {
@@ -175,11 +148,11 @@ class QdPersistenceModule {
175
148
  providers: [{ provide: QD_PERSISTENCE_CONFIG, useValue: config }]
176
149
  };
177
150
  }
178
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: QdPersistenceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
179
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: QdPersistenceModule });
180
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: QdPersistenceModule, providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory] });
151
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
152
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceModule });
153
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceModule, providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory] });
181
154
  }
182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: QdPersistenceModule, decorators: [{
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceModule, decorators: [{
183
156
  type: NgModule,
184
157
  args: [{
185
158
  providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory]
@@ -1 +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 {\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 {\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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"}
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)) data = JSON.stringify(value);\n\n if (typeof value === 'string') data = value;\n\n return data;\n }\n}\n","import { Inject, Optional, DOCUMENT } from '@angular/core';\n\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 {\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 {\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 { Injectable, DOCUMENT, inject } from '@angular/core';\n\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 private config = inject<QdPersistenceConfig>(QD_PERSISTENCE_CONFIG);\n private cookieService = inject(CookieService);\n private document = inject<Document>(DOCUMENT, { optional: true });\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 { Injectable, inject } 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 private config = inject<QdPersistenceConfig>(QD_PERSISTENCE_CONFIG);\n private cookieStrategyFactory = inject(QdCookieStrategyFactory);\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, inject } from '@angular/core';\nimport { QdStrategyResolverService } from './strategy/strategy-resolver.service';\nimport { QdPersistScope } from './model/persistence-types';\n\n@Injectable()\nexport class QdPersistenceService {\n private strategyResolverService = inject(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":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,5 +1,41 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@quadrel-enterprise-ui/persistence" />
5
- export * from './public-api';
1
+ import * as i0 from '@angular/core';
2
+ import { ModuleWithProviders } from '@angular/core';
3
+
4
+ type QdPersistScope = 'private' | 'application' | 'bazg';
5
+ type QdPersistStrategy = 'cookie';
6
+
7
+ interface QdPersistenceConfig {
8
+ /**
9
+ * Application Identifier
10
+ * @example Passar
11
+ */
12
+ applicationIdentifier: string;
13
+ /**
14
+ * Frontend Identifier (Unique identifier for a frontend project)
15
+ * @example Warenverkehr
16
+ */
17
+ frontendIdentifier: string;
18
+ /**
19
+ * Persist Strategy
20
+ * * @default: cookie
21
+ */
22
+ persistStrategy?: QdPersistStrategy;
23
+ }
24
+
25
+ declare class QdPersistenceModule {
26
+ static forRoot(config: QdPersistenceConfig): ModuleWithProviders<QdPersistenceModule>;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<QdPersistenceModule, never>;
28
+ static ɵmod: i0.ɵɵNgModuleDeclaration<QdPersistenceModule, never, never, never>;
29
+ static ɵinj: i0.ɵɵInjectorDeclaration<QdPersistenceModule>;
30
+ }
31
+
32
+ declare class QdPersistenceService {
33
+ private strategyResolverService;
34
+ write<T>(key: string, data: T, scope?: QdPersistScope): void;
35
+ read<T>(key: string, scope?: QdPersistScope): T | null;
36
+ delete(key: string, scope?: QdPersistScope): void;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<QdPersistenceService, never>;
38
+ static ɵprov: i0.ɵɵInjectableDeclaration<QdPersistenceService>;
39
+ }
40
+
41
+ export { QdPersistenceModule, QdPersistenceService };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quadrel-enterprise-ui/persistence",
3
- "version": "19.0.13",
3
+ "version": "19.0.15-beta.53.1",
4
4
  "description": "Library for the persistence of data",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^19.2.9",
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "tslib": "^2.6.3",
11
- "ngx-cookie-service": "^18.0.0"
11
+ "ngx-cookie-service": "^19.1.2"
12
12
  },
13
13
  "jestSonar": {
14
14
  "reportPath": "../../coverage/libs/qd-persistence/",
@@ -1,18 +0,0 @@
1
- import { QdPersistStrategy } from './persistence-types';
2
- export interface QdPersistenceConfig {
3
- /**
4
- * Application Identifier
5
- * @example Passar
6
- */
7
- applicationIdentifier: string;
8
- /**
9
- * Frontend Identifier (Unique identifier for a frontend project)
10
- * @example Warenverkehr
11
- */
12
- frontendIdentifier: string;
13
- /**
14
- * Persist Strategy
15
- * * @default: cookie
16
- */
17
- persistStrategy?: QdPersistStrategy;
18
- }
@@ -1,2 +0,0 @@
1
- export type QdPersistScope = 'private' | 'application' | 'bazg';
2
- export type QdPersistStrategy = 'cookie';
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { QdPersistenceConfig } from './model/persistence-config';
3
- export declare const QD_PERSISTENCE_CONFIG: InjectionToken<QdPersistenceConfig>;
@@ -1,9 +0,0 @@
1
- import { ModuleWithProviders } from '@angular/core';
2
- import { QdPersistenceConfig } from './model/persistence-config';
3
- import * as i0 from "@angular/core";
4
- export declare class QdPersistenceModule {
5
- static forRoot(config: QdPersistenceConfig): ModuleWithProviders<QdPersistenceModule>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<QdPersistenceModule, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<QdPersistenceModule, never, never, never>;
8
- static ɵinj: i0.ɵɵInjectorDeclaration<QdPersistenceModule>;
9
- }
@@ -1,12 +0,0 @@
1
- import { QdStrategyResolverService } from './strategy/strategy-resolver.service';
2
- import { QdPersistScope } from './model/persistence-types';
3
- import * as i0 from "@angular/core";
4
- export declare class QdPersistenceService {
5
- private strategyResolverService;
6
- constructor(strategyResolverService: QdStrategyResolverService);
7
- write<T>(key: string, data: T, scope?: QdPersistScope): void;
8
- read<T>(key: string, scope?: QdPersistScope): T | null;
9
- delete(key: string, scope?: QdPersistScope): void;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<QdPersistenceService, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<QdPersistenceService>;
12
- }
@@ -1,26 +0,0 @@
1
- import { CookieService } from 'ngx-cookie-service';
2
- import { QdPersistStrategy } from '../persist-strategy';
3
- type QdPersistedData = {
4
- [key: string]: unknown;
5
- };
6
- /**
7
- * This strategy uses cookies to make the data visible between different subdomains of the host 'bazg.admin.ch'.
8
- * In contrast, local storage would make the data only visible for a specific subdomain.
9
- * If this strategy is used locally, the cookies will be saved for the domain 'localhost'.
10
- * For the future another strategy is planned that saves the data in a backend service and that will also allow data
11
- * to be shared between websites with different hosts.
12
- */
13
- export declare class QdCookieStrategy implements QdPersistStrategy {
14
- private cookieName;
15
- private cookieService;
16
- private document?;
17
- private cookieExpiresDays;
18
- constructor(cookieName: string, cookieService: CookieService, document?: Document | undefined);
19
- private get cookieDomain();
20
- get persistedData(): QdPersistedData;
21
- private persistData;
22
- setItem<T>(key: string, value: T): void;
23
- getItem<T>(key: string): T | null;
24
- removeItem(key: string): void;
25
- }
26
- export {};
@@ -1,15 +0,0 @@
1
- import { CookieService } from 'ngx-cookie-service';
2
- import { QdPersistenceConfig } from '../../model/persistence-config';
3
- import { QdPersistScope } from '../../model/persistence-types';
4
- import { QdPersistStrategy } from '../persist-strategy';
5
- import * as i0 from "@angular/core";
6
- export declare class QdCookieStrategyFactory {
7
- private config;
8
- private cookieService;
9
- private document?;
10
- constructor(config: QdPersistenceConfig, cookieService: CookieService, document?: Document | undefined);
11
- getCookieStrategy(scope: QdPersistScope): QdPersistStrategy;
12
- private getCookieName;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<QdCookieStrategyFactory, [null, null, { optional: true; }]>;
14
- static ɵprov: i0.ɵɵInjectableDeclaration<QdCookieStrategyFactory>;
15
- }
@@ -1,22 +0,0 @@
1
- /**
2
- * A strategy for persisting data.
3
- */
4
- export interface QdPersistStrategy {
5
- /**
6
- * Set data.
7
- * @param key Key for the data
8
- * @param value The data itself
9
- */
10
- setItem<T>(key: string, value: T): void;
11
- /**
12
- * Gets data for a specific key.
13
- * @param key Key of the data
14
- * @returns Returns the data or null if not found.
15
- */
16
- getItem<T>(key: string): T | null;
17
- /**
18
- * Removes the entry with the given key.
19
- * @param key Key of the entry
20
- */
21
- removeItem(key: string): void;
22
- }
@@ -1,13 +0,0 @@
1
- import { QdPersistScope } from '../model/persistence-types';
2
- import { QdPersistStrategy } from './persist-strategy';
3
- import { QdPersistenceConfig } from '../model/persistence-config';
4
- import { QdCookieStrategyFactory } from './cookie-strategy/cookie-strategy.factory';
5
- import * as i0 from "@angular/core";
6
- export declare class QdStrategyResolverService {
7
- private config;
8
- private cookieStrategyFactory;
9
- constructor(config: QdPersistenceConfig, cookieStrategyFactory: QdCookieStrategyFactory);
10
- resolve(scope: QdPersistScope): QdPersistStrategy;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<QdStrategyResolverService, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<QdStrategyResolverService>;
13
- }
@@ -1,3 +0,0 @@
1
- export declare class QdStringifyer {
2
- static tryStringify<T>(value: T): string;
3
- }
package/public-api.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './lib/persistence.module';
2
- export * from './lib/persistence.service';