@quadrel-enterprise-ui/persistence 19.0.14 → 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 +38 -37
- package/fesm2022/quadrel-enterprise-ui-persistence.mjs +23 -48
- package/fesm2022/quadrel-enterprise-ui-persistence.mjs.map +1 -1
- package/index.d.ts +41 -5
- package/package.json +2 -2
- package/lib/model/persistence-config.d.ts +0 -18
- package/lib/model/persistence-types.d.ts +0 -2
- package/lib/persistence-config.token.d.ts +0 -3
- package/lib/persistence.module.d.ts +0 -9
- package/lib/persistence.service.d.ts +0 -12
- package/lib/strategy/cookie-strategy/cookie-strategy.d.ts +0 -26
- package/lib/strategy/cookie-strategy/cookie-strategy.factory.d.ts +0 -15
- package/lib/strategy/persist-strategy.d.ts +0 -22
- package/lib/strategy/strategy-resolver.service.d.ts +0 -13
- package/lib/utils/stringifyer.d.ts +0 -3
- package/public-api.d.ts +0 -2
package/README.md
CHANGED
|
@@ -1,39 +1,40 @@
|
|
|
1
1
|
# qd-persistence
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
|
|
@@ -81,14 +79,9 @@ QdCookieStrategy = __decorate([
|
|
|
81
79
|
], QdCookieStrategy);
|
|
82
80
|
|
|
83
81
|
class QdCookieStrategyFactory {
|
|
84
|
-
config;
|
|
85
|
-
cookieService;
|
|
86
|
-
document;
|
|
87
|
-
constructor(config, cookieService, document) {
|
|
88
|
-
this.config = config;
|
|
89
|
-
this.cookieService = cookieService;
|
|
90
|
-
this.document = document;
|
|
91
|
-
}
|
|
82
|
+
config = inject(QD_PERSISTENCE_CONFIG);
|
|
83
|
+
cookieService = inject(CookieService);
|
|
84
|
+
document = inject(DOCUMENT, { optional: true });
|
|
92
85
|
getCookieStrategy(scope) {
|
|
93
86
|
return new QdCookieStrategy(this.getCookieName(scope), this.cookieService, document);
|
|
94
87
|
}
|
|
@@ -102,28 +95,16 @@ class QdCookieStrategyFactory {
|
|
|
102
95
|
return `QD-PRIVATE_${this.config.applicationIdentifier}_${this.config.frontendIdentifier}`;
|
|
103
96
|
}
|
|
104
97
|
}
|
|
105
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
106
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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 });
|
|
107
100
|
}
|
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdCookieStrategyFactory, decorators: [{
|
|
109
102
|
type: Injectable
|
|
110
|
-
}]
|
|
111
|
-
type: Inject,
|
|
112
|
-
args: [QD_PERSISTENCE_CONFIG]
|
|
113
|
-
}] }, { type: i1.CookieService }, { type: Document, decorators: [{
|
|
114
|
-
type: Optional
|
|
115
|
-
}, {
|
|
116
|
-
type: Inject,
|
|
117
|
-
args: [DOCUMENT]
|
|
118
|
-
}] }] });
|
|
103
|
+
}] });
|
|
119
104
|
|
|
120
105
|
class QdStrategyResolverService {
|
|
121
|
-
config;
|
|
122
|
-
cookieStrategyFactory;
|
|
123
|
-
constructor(config, cookieStrategyFactory) {
|
|
124
|
-
this.config = config;
|
|
125
|
-
this.cookieStrategyFactory = cookieStrategyFactory;
|
|
126
|
-
}
|
|
106
|
+
config = inject(QD_PERSISTENCE_CONFIG);
|
|
107
|
+
cookieStrategyFactory = inject(QdCookieStrategyFactory);
|
|
127
108
|
resolve(scope) {
|
|
128
109
|
/* istanbul ignore next (remove comment when another strategy is added) */
|
|
129
110
|
switch (this.config.persistStrategy) {
|
|
@@ -132,21 +113,15 @@ class QdStrategyResolverService {
|
|
|
132
113
|
return this.cookieStrategyFactory.getCookieStrategy(scope);
|
|
133
114
|
}
|
|
134
115
|
}
|
|
135
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
136
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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 });
|
|
137
118
|
}
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdStrategyResolverService, decorators: [{
|
|
139
120
|
type: Injectable
|
|
140
|
-
}]
|
|
141
|
-
type: Inject,
|
|
142
|
-
args: [QD_PERSISTENCE_CONFIG]
|
|
143
|
-
}] }, { type: QdCookieStrategyFactory }] });
|
|
121
|
+
}] });
|
|
144
122
|
|
|
145
123
|
class QdPersistenceService {
|
|
146
|
-
strategyResolverService;
|
|
147
|
-
constructor(strategyResolverService) {
|
|
148
|
-
this.strategyResolverService = strategyResolverService;
|
|
149
|
-
}
|
|
124
|
+
strategyResolverService = inject(QdStrategyResolverService);
|
|
150
125
|
write(key, data, scope = 'bazg') {
|
|
151
126
|
const strategy = this.strategyResolverService.resolve(scope);
|
|
152
127
|
strategy.setItem(key, data);
|
|
@@ -159,12 +134,12 @@ class QdPersistenceService {
|
|
|
159
134
|
const strategy = this.strategyResolverService.resolve(scope);
|
|
160
135
|
strategy.removeItem(key);
|
|
161
136
|
}
|
|
162
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
163
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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 });
|
|
164
139
|
}
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceService, decorators: [{
|
|
166
141
|
type: Injectable
|
|
167
|
-
}]
|
|
142
|
+
}] });
|
|
168
143
|
|
|
169
144
|
class QdPersistenceModule {
|
|
170
145
|
static forRoot(config) {
|
|
@@ -173,11 +148,11 @@ class QdPersistenceModule {
|
|
|
173
148
|
providers: [{ provide: QD_PERSISTENCE_CONFIG, useValue: config }]
|
|
174
149
|
};
|
|
175
150
|
}
|
|
176
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
177
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
178
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
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] });
|
|
179
154
|
}
|
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceModule, decorators: [{
|
|
181
156
|
type: NgModule,
|
|
182
157
|
args: [{
|
|
183
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)) data = JSON.stringify(value);\n\n if (typeof value === 'string') data = value;\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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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.
|
|
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": "^
|
|
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,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
|
-
}
|
package/public-api.d.ts
DELETED