@23blocks/angular 1.0.3 → 1.1.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/dist/lib/assets/assets.service.js +43 -30
- package/dist/lib/assets/assets.service.js.map +1 -1
- package/dist/lib/authentication/authentication.service.js +49 -32
- package/dist/lib/authentication/authentication.service.js.map +1 -1
- package/dist/lib/campaigns/campaigns.service.js +51 -38
- package/dist/lib/campaigns/campaigns.service.js.map +1 -1
- package/dist/lib/company/company.service.js +50 -37
- package/dist/lib/company/company.service.js.map +1 -1
- package/dist/lib/content/content.service.js +52 -39
- package/dist/lib/content/content.service.js.map +1 -1
- package/dist/lib/conversations/conversations.service.js +59 -46
- package/dist/lib/conversations/conversations.service.js.map +1 -1
- package/dist/lib/crm/crm.service.js +69 -56
- package/dist/lib/crm/crm.service.js.map +1 -1
- package/dist/lib/files/files.service.js +42 -29
- package/dist/lib/files/files.service.js.map +1 -1
- package/dist/lib/forms/forms.service.js +45 -32
- package/dist/lib/forms/forms.service.js.map +1 -1
- package/dist/lib/geolocation/geolocation.service.js +78 -65
- package/dist/lib/geolocation/geolocation.service.js.map +1 -1
- package/dist/lib/index.js +4 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/jarvis/jarvis.service.js +54 -41
- package/dist/lib/jarvis/jarvis.service.js.map +1 -1
- package/dist/lib/onboarding/onboarding.service.js +45 -32
- package/dist/lib/onboarding/onboarding.service.js.map +1 -1
- package/dist/lib/products/products.service.js +80 -67
- package/dist/lib/products/products.service.js.map +1 -1
- package/dist/lib/rewards/rewards.service.js +47 -34
- package/dist/lib/rewards/rewards.service.js.map +1 -1
- package/dist/lib/sales/sales.service.js +47 -34
- package/dist/lib/sales/sales.service.js.map +1 -1
- package/dist/lib/search/search.service.js +31 -18
- package/dist/lib/search/search.service.js.map +1 -1
- package/dist/lib/simple-providers.js +96 -15
- package/dist/lib/simple-providers.js.map +1 -1
- package/dist/lib/tokens.js +26 -1
- package/dist/lib/tokens.js.map +1 -1
- package/dist/lib/university/university.service.js +58 -45
- package/dist/lib/university/university.service.js.map +1 -1
- package/dist/lib/wallet/wallet.service.js +39 -26
- package/dist/lib/wallet/wallet.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,85 +1,93 @@
|
|
|
1
1
|
import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
|
|
2
2
|
import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
|
|
3
3
|
import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
|
|
4
|
-
import { Injectable, Inject } from '@angular/core';
|
|
4
|
+
import { Injectable, Inject, Optional } from '@angular/core';
|
|
5
5
|
import { from } from 'rxjs';
|
|
6
6
|
import { createAssetsBlock } from '@23blocks/block-assets';
|
|
7
|
-
import { TRANSPORT, ASSETS_CONFIG } from '../tokens.js';
|
|
7
|
+
import { TRANSPORT, ASSETS_TRANSPORT, ASSETS_CONFIG } from '../tokens.js';
|
|
8
8
|
export class AssetsService {
|
|
9
|
+
/**
|
|
10
|
+
* Ensure the service is configured, throw helpful error if not
|
|
11
|
+
*/ ensureConfigured() {
|
|
12
|
+
if (!this.block) {
|
|
13
|
+
throw new Error('[23blocks] AssetsService is not configured. ' + "Add 'urls.assets' to your provideBlocks23() configuration.");
|
|
14
|
+
}
|
|
15
|
+
return this.block;
|
|
16
|
+
}
|
|
9
17
|
// ───────────────────────────────────────────────────────────────────────────
|
|
10
18
|
// Assets Service
|
|
11
19
|
// ───────────────────────────────────────────────────────────────────────────
|
|
12
20
|
listAssets(params) {
|
|
13
|
-
return from(this.
|
|
21
|
+
return from(this.ensureConfigured().assets.list(params));
|
|
14
22
|
}
|
|
15
23
|
getAsset(uniqueId) {
|
|
16
|
-
return from(this.
|
|
24
|
+
return from(this.ensureConfigured().assets.get(uniqueId));
|
|
17
25
|
}
|
|
18
26
|
createAsset(data) {
|
|
19
|
-
return from(this.
|
|
27
|
+
return from(this.ensureConfigured().assets.create(data));
|
|
20
28
|
}
|
|
21
29
|
updateAsset(uniqueId, data) {
|
|
22
|
-
return from(this.
|
|
30
|
+
return from(this.ensureConfigured().assets.update(uniqueId, data));
|
|
23
31
|
}
|
|
24
32
|
deleteAsset(uniqueId) {
|
|
25
|
-
return from(this.
|
|
33
|
+
return from(this.ensureConfigured().assets.delete(uniqueId));
|
|
26
34
|
}
|
|
27
35
|
transferAsset(uniqueId, data) {
|
|
28
|
-
return from(this.
|
|
36
|
+
return from(this.ensureConfigured().assets.transfer(uniqueId, data));
|
|
29
37
|
}
|
|
30
38
|
assignAsset(uniqueId, data) {
|
|
31
|
-
return from(this.
|
|
39
|
+
return from(this.ensureConfigured().assets.assign(uniqueId, data));
|
|
32
40
|
}
|
|
33
41
|
unassignAsset(uniqueId) {
|
|
34
|
-
return from(this.
|
|
42
|
+
return from(this.ensureConfigured().assets.unassign(uniqueId));
|
|
35
43
|
}
|
|
36
44
|
listAssetsByLocation(locationUniqueId, params) {
|
|
37
|
-
return from(this.
|
|
45
|
+
return from(this.ensureConfigured().assets.listByLocation(locationUniqueId, params));
|
|
38
46
|
}
|
|
39
47
|
listAssetsByAssignee(assignedToUniqueId, params) {
|
|
40
|
-
return from(this.
|
|
48
|
+
return from(this.ensureConfigured().assets.listByAssignee(assignedToUniqueId, params));
|
|
41
49
|
}
|
|
42
50
|
// ───────────────────────────────────────────────────────────────────────────
|
|
43
51
|
// Asset Events Service
|
|
44
52
|
// ───────────────────────────────────────────────────────────────────────────
|
|
45
53
|
listAssetEvents(params) {
|
|
46
|
-
return from(this.
|
|
54
|
+
return from(this.ensureConfigured().events.list(params));
|
|
47
55
|
}
|
|
48
56
|
getAssetEvent(uniqueId) {
|
|
49
|
-
return from(this.
|
|
57
|
+
return from(this.ensureConfigured().events.get(uniqueId));
|
|
50
58
|
}
|
|
51
59
|
createAssetEvent(data) {
|
|
52
|
-
return from(this.
|
|
60
|
+
return from(this.ensureConfigured().events.create(data));
|
|
53
61
|
}
|
|
54
62
|
updateAssetEvent(uniqueId, data) {
|
|
55
|
-
return from(this.
|
|
63
|
+
return from(this.ensureConfigured().events.update(uniqueId, data));
|
|
56
64
|
}
|
|
57
65
|
deleteAssetEvent(uniqueId) {
|
|
58
|
-
return from(this.
|
|
66
|
+
return from(this.ensureConfigured().events.delete(uniqueId));
|
|
59
67
|
}
|
|
60
68
|
listAssetEventsByAsset(assetUniqueId, params) {
|
|
61
|
-
return from(this.
|
|
69
|
+
return from(this.ensureConfigured().events.listByAsset(assetUniqueId, params));
|
|
62
70
|
}
|
|
63
71
|
// ───────────────────────────────────────────────────────────────────────────
|
|
64
72
|
// Asset Audits Service
|
|
65
73
|
// ───────────────────────────────────────────────────────────────────────────
|
|
66
74
|
listAssetAudits(params) {
|
|
67
|
-
return from(this.
|
|
75
|
+
return from(this.ensureConfigured().audits.list(params));
|
|
68
76
|
}
|
|
69
77
|
getAssetAudit(uniqueId) {
|
|
70
|
-
return from(this.
|
|
78
|
+
return from(this.ensureConfigured().audits.get(uniqueId));
|
|
71
79
|
}
|
|
72
80
|
createAssetAudit(data) {
|
|
73
|
-
return from(this.
|
|
81
|
+
return from(this.ensureConfigured().audits.create(data));
|
|
74
82
|
}
|
|
75
83
|
updateAssetAudit(uniqueId, data) {
|
|
76
|
-
return from(this.
|
|
84
|
+
return from(this.ensureConfigured().audits.update(uniqueId, data));
|
|
77
85
|
}
|
|
78
86
|
deleteAssetAudit(uniqueId) {
|
|
79
|
-
return from(this.
|
|
87
|
+
return from(this.ensureConfigured().audits.delete(uniqueId));
|
|
80
88
|
}
|
|
81
89
|
listAssetAuditsByAsset(assetUniqueId, params) {
|
|
82
|
-
return from(this.
|
|
90
|
+
return from(this.ensureConfigured().audits.listByAsset(assetUniqueId, params));
|
|
83
91
|
}
|
|
84
92
|
// ───────────────────────────────────────────────────────────────────────────
|
|
85
93
|
// Direct Block Access (for advanced usage)
|
|
@@ -88,21 +96,26 @@ export class AssetsService {
|
|
|
88
96
|
* Access the underlying block for advanced operations
|
|
89
97
|
* Use this when you need access to services not wrapped by this Angular service
|
|
90
98
|
*/ get rawBlock() {
|
|
91
|
-
return this.
|
|
99
|
+
return this.ensureConfigured();
|
|
92
100
|
}
|
|
93
|
-
constructor(
|
|
94
|
-
|
|
101
|
+
constructor(serviceTransport, legacyTransport, config){
|
|
102
|
+
const transport = serviceTransport != null ? serviceTransport : legacyTransport;
|
|
103
|
+
this.block = transport ? createAssetsBlock(transport, config) : null;
|
|
95
104
|
}
|
|
96
105
|
}
|
|
97
106
|
AssetsService = _ts_decorate([
|
|
98
107
|
Injectable({
|
|
99
108
|
providedIn: 'root'
|
|
100
109
|
}),
|
|
101
|
-
_ts_param(0,
|
|
102
|
-
_ts_param(
|
|
110
|
+
_ts_param(0, Optional()),
|
|
111
|
+
_ts_param(0, Inject(ASSETS_TRANSPORT)),
|
|
112
|
+
_ts_param(1, Optional()),
|
|
113
|
+
_ts_param(1, Inject(TRANSPORT)),
|
|
114
|
+
_ts_param(2, Inject(ASSETS_CONFIG)),
|
|
103
115
|
_ts_metadata("design:type", Function),
|
|
104
116
|
_ts_metadata("design:paramtypes", [
|
|
105
|
-
|
|
117
|
+
Object,
|
|
118
|
+
Object,
|
|
106
119
|
typeof AssetsBlockConfig === "undefined" ? Object : AssetsBlockConfig
|
|
107
120
|
])
|
|
108
121
|
], AssetsService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/assets/assets.service.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createAssetsBlock,\n type AssetsBlock,\n type AssetsBlockConfig,\n type Asset,\n type CreateAssetRequest,\n type UpdateAssetRequest,\n type ListAssetsParams,\n type TransferAssetRequest,\n type AssignAssetRequest,\n type AssetEvent,\n type CreateAssetEventRequest,\n type UpdateAssetEventRequest,\n type ListAssetEventsParams,\n type AssetAudit,\n type CreateAssetAuditRequest,\n type UpdateAssetAuditRequest,\n type ListAssetAuditsParams,\n} from '@23blocks/block-assets';\nimport { TRANSPORT, ASSETS_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Assets block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class AssetManagementComponent {\n * constructor(private assets: AssetsService) {}\n *\n * loadAssets() {\n * this.assets.listAssets().subscribe({\n * next: (result) => console.log('Assets:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class AssetsService {\n private readonly block: AssetsBlock;\n\n constructor(\n @Inject(TRANSPORT) transport: Transport,\n @Inject(ASSETS_CONFIG) config: AssetsBlockConfig\n ) {\n this.block = createAssetsBlock(transport, config);\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Assets Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listAssets(params?: ListAssetsParams): Observable<PageResult<Asset>> {\n return from(this.block.assets.list(params));\n }\n\n getAsset(uniqueId: string): Observable<Asset> {\n return from(this.block.assets.get(uniqueId));\n }\n\n createAsset(data: CreateAssetRequest): Observable<Asset> {\n return from(this.block.assets.create(data));\n }\n\n updateAsset(uniqueId: string, data: UpdateAssetRequest): Observable<Asset> {\n return from(this.block.assets.update(uniqueId, data));\n }\n\n deleteAsset(uniqueId: string): Observable<void> {\n return from(this.block.assets.delete(uniqueId));\n }\n\n transferAsset(uniqueId: string, data: TransferAssetRequest): Observable<Asset> {\n return from(this.block.assets.transfer(uniqueId, data));\n }\n\n assignAsset(uniqueId: string, data: AssignAssetRequest): Observable<Asset> {\n return from(this.block.assets.assign(uniqueId, data));\n }\n\n unassignAsset(uniqueId: string): Observable<Asset> {\n return from(this.block.assets.unassign(uniqueId));\n }\n\n listAssetsByLocation(locationUniqueId: string, params?: ListAssetsParams): Observable<PageResult<Asset>> {\n return from(this.block.assets.listByLocation(locationUniqueId, params));\n }\n\n listAssetsByAssignee(assignedToUniqueId: string, params?: ListAssetsParams): Observable<PageResult<Asset>> {\n return from(this.block.assets.listByAssignee(assignedToUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Asset Events Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listAssetEvents(params?: ListAssetEventsParams): Observable<PageResult<AssetEvent>> {\n return from(this.block.events.list(params));\n }\n\n getAssetEvent(uniqueId: string): Observable<AssetEvent> {\n return from(this.block.events.get(uniqueId));\n }\n\n createAssetEvent(data: CreateAssetEventRequest): Observable<AssetEvent> {\n return from(this.block.events.create(data));\n }\n\n updateAssetEvent(uniqueId: string, data: UpdateAssetEventRequest): Observable<AssetEvent> {\n return from(this.block.events.update(uniqueId, data));\n }\n\n deleteAssetEvent(uniqueId: string): Observable<void> {\n return from(this.block.events.delete(uniqueId));\n }\n\n listAssetEventsByAsset(assetUniqueId: string, params?: ListAssetEventsParams): Observable<PageResult<AssetEvent>> {\n return from(this.block.events.listByAsset(assetUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Asset Audits Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listAssetAudits(params?: ListAssetAuditsParams): Observable<PageResult<AssetAudit>> {\n return from(this.block.audits.list(params));\n }\n\n getAssetAudit(uniqueId: string): Observable<AssetAudit> {\n return from(this.block.audits.get(uniqueId));\n }\n\n createAssetAudit(data: CreateAssetAuditRequest): Observable<AssetAudit> {\n return from(this.block.audits.create(data));\n }\n\n updateAssetAudit(uniqueId: string, data: UpdateAssetAuditRequest): Observable<AssetAudit> {\n return from(this.block.audits.update(uniqueId, data));\n }\n\n deleteAssetAudit(uniqueId: string): Observable<void> {\n return from(this.block.audits.delete(uniqueId));\n }\n\n listAssetAuditsByAsset(assetUniqueId: string, params?: ListAssetAuditsParams): Observable<PageResult<AssetAudit>> {\n return from(this.block.audits.listByAsset(assetUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): AssetsBlock {\n return this.block;\n }\n}\n"],"names":["Injectable","Inject","from","createAssetsBlock","TRANSPORT","ASSETS_CONFIG","AssetsService","listAssets","params","block","assets","list","getAsset","uniqueId","get","createAsset","data","create","updateAsset","update","deleteAsset","delete","transferAsset","transfer","assignAsset","assign","unassignAsset","unassign","listAssetsByLocation","locationUniqueId","listByLocation","listAssetsByAssignee","assignedToUniqueId","listByAssignee","listAssetEvents","events","getAssetEvent","createAssetEvent","updateAssetEvent","deleteAssetEvent","listAssetEventsByAsset","assetUniqueId","listByAsset","listAssetAudits","audits","getAssetAudit","createAssetAudit","updateAssetAudit","deleteAssetAudit","listAssetAuditsByAsset","rawBlock","constructor","transport","config","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/assets/assets.service.ts"],"sourcesContent":["import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createAssetsBlock,\n type AssetsBlock,\n type AssetsBlockConfig,\n type Asset,\n type CreateAssetRequest,\n type UpdateAssetRequest,\n type ListAssetsParams,\n type TransferAssetRequest,\n type AssignAssetRequest,\n type AssetEvent,\n type CreateAssetEventRequest,\n type UpdateAssetEventRequest,\n type ListAssetEventsParams,\n type AssetAudit,\n type CreateAssetAuditRequest,\n type UpdateAssetAuditRequest,\n type ListAssetAuditsParams,\n} from '@23blocks/block-assets';\nimport { TRANSPORT, ASSETS_TRANSPORT, ASSETS_CONFIG } from '../tokens.js';\n\n/**\n * Angular service wrapping the Assets block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class AssetManagementComponent {\n * constructor(private assets: AssetsService) {}\n *\n * loadAssets() {\n * this.assets.listAssets().subscribe({\n * next: (result) => console.log('Assets:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class AssetsService {\n private readonly block: AssetsBlock | null;\n\n constructor(\n @Optional() @Inject(ASSETS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(ASSETS_CONFIG) config: AssetsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createAssetsBlock(transport, config) : null;\n }\n\n /**\n * Ensure the service is configured, throw helpful error if not\n */\n private ensureConfigured(): AssetsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] AssetsService is not configured. ' +\n \"Add 'urls.assets' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Assets Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listAssets(params?: ListAssetsParams): Observable<PageResult<Asset>> {\n return from(this.ensureConfigured().assets.list(params));\n }\n\n getAsset(uniqueId: string): Observable<Asset> {\n return from(this.ensureConfigured().assets.get(uniqueId));\n }\n\n createAsset(data: CreateAssetRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.create(data));\n }\n\n updateAsset(uniqueId: string, data: UpdateAssetRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.update(uniqueId, data));\n }\n\n deleteAsset(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().assets.delete(uniqueId));\n }\n\n transferAsset(uniqueId: string, data: TransferAssetRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.transfer(uniqueId, data));\n }\n\n assignAsset(uniqueId: string, data: AssignAssetRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.assign(uniqueId, data));\n }\n\n unassignAsset(uniqueId: string): Observable<Asset> {\n return from(this.ensureConfigured().assets.unassign(uniqueId));\n }\n\n listAssetsByLocation(locationUniqueId: string, params?: ListAssetsParams): Observable<PageResult<Asset>> {\n return from(this.ensureConfigured().assets.listByLocation(locationUniqueId, params));\n }\n\n listAssetsByAssignee(assignedToUniqueId: string, params?: ListAssetsParams): Observable<PageResult<Asset>> {\n return from(this.ensureConfigured().assets.listByAssignee(assignedToUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Asset Events Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listAssetEvents(params?: ListAssetEventsParams): Observable<PageResult<AssetEvent>> {\n return from(this.ensureConfigured().events.list(params));\n }\n\n getAssetEvent(uniqueId: string): Observable<AssetEvent> {\n return from(this.ensureConfigured().events.get(uniqueId));\n }\n\n createAssetEvent(data: CreateAssetEventRequest): Observable<AssetEvent> {\n return from(this.ensureConfigured().events.create(data));\n }\n\n updateAssetEvent(uniqueId: string, data: UpdateAssetEventRequest): Observable<AssetEvent> {\n return from(this.ensureConfigured().events.update(uniqueId, data));\n }\n\n deleteAssetEvent(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().events.delete(uniqueId));\n }\n\n listAssetEventsByAsset(assetUniqueId: string, params?: ListAssetEventsParams): Observable<PageResult<AssetEvent>> {\n return from(this.ensureConfigured().events.listByAsset(assetUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Asset Audits Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listAssetAudits(params?: ListAssetAuditsParams): Observable<PageResult<AssetAudit>> {\n return from(this.ensureConfigured().audits.list(params));\n }\n\n getAssetAudit(uniqueId: string): Observable<AssetAudit> {\n return from(this.ensureConfigured().audits.get(uniqueId));\n }\n\n createAssetAudit(data: CreateAssetAuditRequest): Observable<AssetAudit> {\n return from(this.ensureConfigured().audits.create(data));\n }\n\n updateAssetAudit(uniqueId: string, data: UpdateAssetAuditRequest): Observable<AssetAudit> {\n return from(this.ensureConfigured().audits.update(uniqueId, data));\n }\n\n deleteAssetAudit(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().audits.delete(uniqueId));\n }\n\n listAssetAuditsByAsset(assetUniqueId: string, params?: ListAssetAuditsParams): Observable<PageResult<AssetAudit>> {\n return from(this.ensureConfigured().audits.listByAsset(assetUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): AssetsBlock {\n return this.ensureConfigured();\n }\n}\n"],"names":["Injectable","Inject","Optional","from","createAssetsBlock","TRANSPORT","ASSETS_TRANSPORT","ASSETS_CONFIG","AssetsService","ensureConfigured","block","Error","listAssets","params","assets","list","getAsset","uniqueId","get","createAsset","data","create","updateAsset","update","deleteAsset","delete","transferAsset","transfer","assignAsset","assign","unassignAsset","unassign","listAssetsByLocation","locationUniqueId","listByLocation","listAssetsByAssignee","assignedToUniqueId","listByAssignee","listAssetEvents","events","getAssetEvent","createAssetEvent","updateAssetEvent","deleteAssetEvent","listAssetEventsByAsset","assetUniqueId","listByAsset","listAssetAudits","audits","getAssetAudit","createAssetAudit","updateAssetAudit","deleteAssetAudit","listAssetAuditsByAsset","rawBlock","constructor","serviceTransport","legacyTransport","config","transport","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -4,10 +4,18 @@ import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
|
|
|
4
4
|
import { Injectable, Inject, Optional } from '@angular/core';
|
|
5
5
|
import { from, tap } from 'rxjs';
|
|
6
6
|
import { createAuthenticationBlock } from '@23blocks/block-authentication';
|
|
7
|
-
import { TRANSPORT, AUTHENTICATION_CONFIG } from '../tokens.js';
|
|
7
|
+
import { TRANSPORT, AUTHENTICATION_TRANSPORT, AUTHENTICATION_CONFIG } from '../tokens.js';
|
|
8
8
|
import { TOKEN_MANAGER, SIMPLE_CONFIG } from '../simple-providers.js';
|
|
9
9
|
export class AuthenticationService {
|
|
10
10
|
/**
|
|
11
|
+
* Ensure the service is configured, throw helpful error if not
|
|
12
|
+
*/ ensureConfigured() {
|
|
13
|
+
if (!this.block) {
|
|
14
|
+
throw new Error('[23blocks] AuthenticationService is not configured. ' + "Add 'urls.authentication' to your provideBlocks23() configuration.");
|
|
15
|
+
}
|
|
16
|
+
return this.block;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
11
19
|
* Check if using simplified API with automatic token management
|
|
12
20
|
*/ get isTokenMode() {
|
|
13
21
|
var _this_simpleConfig;
|
|
@@ -20,7 +28,8 @@ export class AuthenticationService {
|
|
|
20
28
|
* Sign in with email and password.
|
|
21
29
|
* When using simplified API (provideBlocks23), tokens are stored automatically.
|
|
22
30
|
*/ signIn(request) {
|
|
23
|
-
|
|
31
|
+
const block = this.ensureConfigured();
|
|
32
|
+
return from(block.auth.signIn(request)).pipe(tap((response)=>{
|
|
24
33
|
if (this.isTokenMode && this.tokenManager && response.accessToken) {
|
|
25
34
|
this.tokenManager.setTokens(response.accessToken, response.refreshToken);
|
|
26
35
|
}
|
|
@@ -30,7 +39,8 @@ export class AuthenticationService {
|
|
|
30
39
|
* Sign up a new user.
|
|
31
40
|
* When using simplified API, tokens are stored automatically if returned.
|
|
32
41
|
*/ signUp(request) {
|
|
33
|
-
|
|
42
|
+
const block = this.ensureConfigured();
|
|
43
|
+
return from(block.auth.signUp(request)).pipe(tap((response)=>{
|
|
34
44
|
if (this.isTokenMode && this.tokenManager && response.accessToken) {
|
|
35
45
|
this.tokenManager.setTokens(response.accessToken);
|
|
36
46
|
}
|
|
@@ -40,77 +50,78 @@ export class AuthenticationService {
|
|
|
40
50
|
* Sign out the current user.
|
|
41
51
|
* When using simplified API, tokens are cleared automatically.
|
|
42
52
|
*/ signOut() {
|
|
43
|
-
|
|
53
|
+
const block = this.ensureConfigured();
|
|
54
|
+
return from(block.auth.signOut()).pipe(tap(()=>{
|
|
44
55
|
if (this.isTokenMode && this.tokenManager) {
|
|
45
56
|
this.tokenManager.clearTokens();
|
|
46
57
|
}
|
|
47
58
|
}));
|
|
48
59
|
}
|
|
49
60
|
requestPasswordReset(request) {
|
|
50
|
-
return from(this.
|
|
61
|
+
return from(this.ensureConfigured().auth.requestPasswordReset(request));
|
|
51
62
|
}
|
|
52
63
|
updatePassword(request) {
|
|
53
|
-
return from(this.
|
|
64
|
+
return from(this.ensureConfigured().auth.updatePassword(request));
|
|
54
65
|
}
|
|
55
66
|
validateToken(token) {
|
|
56
|
-
return from(this.
|
|
67
|
+
return from(this.ensureConfigured().auth.validateToken(token));
|
|
57
68
|
}
|
|
58
69
|
getCurrentUser() {
|
|
59
|
-
return from(this.
|
|
70
|
+
return from(this.ensureConfigured().auth.getCurrentUser());
|
|
60
71
|
}
|
|
61
72
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
62
73
|
// Users Service
|
|
63
74
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
64
75
|
listUsers(params) {
|
|
65
|
-
return from(this.
|
|
76
|
+
return from(this.ensureConfigured().users.list(params));
|
|
66
77
|
}
|
|
67
78
|
getUser(id) {
|
|
68
|
-
return from(this.
|
|
79
|
+
return from(this.ensureConfigured().users.get(id));
|
|
69
80
|
}
|
|
70
81
|
updateUser(id, request) {
|
|
71
|
-
return from(this.
|
|
82
|
+
return from(this.ensureConfigured().users.update(id, request));
|
|
72
83
|
}
|
|
73
84
|
deleteUser(id) {
|
|
74
|
-
return from(this.
|
|
85
|
+
return from(this.ensureConfigured().users.delete(id));
|
|
75
86
|
}
|
|
76
87
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
77
88
|
// Roles Service
|
|
78
89
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
79
90
|
listRoles() {
|
|
80
|
-
return from(this.
|
|
91
|
+
return from(this.ensureConfigured().roles.list());
|
|
81
92
|
}
|
|
82
93
|
getRole(id) {
|
|
83
|
-
return from(this.
|
|
94
|
+
return from(this.ensureConfigured().roles.get(id));
|
|
84
95
|
}
|
|
85
96
|
createRole(request) {
|
|
86
|
-
return from(this.
|
|
97
|
+
return from(this.ensureConfigured().roles.create(request));
|
|
87
98
|
}
|
|
88
99
|
updateRole(id, request) {
|
|
89
|
-
return from(this.
|
|
100
|
+
return from(this.ensureConfigured().roles.update(id, request));
|
|
90
101
|
}
|
|
91
102
|
deleteRole(id) {
|
|
92
|
-
return from(this.
|
|
103
|
+
return from(this.ensureConfigured().roles.delete(id));
|
|
93
104
|
}
|
|
94
105
|
listPermissions() {
|
|
95
|
-
return from(this.
|
|
106
|
+
return from(this.ensureConfigured().roles.listPermissions());
|
|
96
107
|
}
|
|
97
108
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
98
109
|
// API Keys Service
|
|
99
110
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
100
111
|
listApiKeys() {
|
|
101
|
-
return from(this.
|
|
112
|
+
return from(this.ensureConfigured().apiKeys.list());
|
|
102
113
|
}
|
|
103
114
|
getApiKey(id) {
|
|
104
|
-
return from(this.
|
|
115
|
+
return from(this.ensureConfigured().apiKeys.get(id));
|
|
105
116
|
}
|
|
106
117
|
createApiKey(request) {
|
|
107
|
-
return from(this.
|
|
118
|
+
return from(this.ensureConfigured().apiKeys.create(request));
|
|
108
119
|
}
|
|
109
120
|
updateApiKey(id, request) {
|
|
110
|
-
return from(this.
|
|
121
|
+
return from(this.ensureConfigured().apiKeys.update(id, request));
|
|
111
122
|
}
|
|
112
123
|
revokeApiKey(id) {
|
|
113
|
-
return from(this.
|
|
124
|
+
return from(this.ensureConfigured().apiKeys.revoke(id));
|
|
114
125
|
}
|
|
115
126
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
116
127
|
// Token Management (only applicable with provideBlocks23)
|
|
@@ -162,10 +173,12 @@ export class AuthenticationService {
|
|
|
162
173
|
* Access the underlying block for advanced operations
|
|
163
174
|
* Use this when you need access to services not wrapped by this Angular service
|
|
164
175
|
*/ get rawBlock() {
|
|
165
|
-
return this.
|
|
176
|
+
return this.ensureConfigured();
|
|
166
177
|
}
|
|
167
|
-
constructor(
|
|
168
|
-
|
|
178
|
+
constructor(serviceTransport, legacyTransport, config, tokenManager, simpleConfig){
|
|
179
|
+
// Prefer per-service transport, fall back to legacy TRANSPORT for backward compatibility
|
|
180
|
+
const transport = serviceTransport != null ? serviceTransport : legacyTransport;
|
|
181
|
+
this.block = transport ? createAuthenticationBlock(transport, config) : null;
|
|
169
182
|
this.tokenManager = tokenManager;
|
|
170
183
|
this.simpleConfig = simpleConfig;
|
|
171
184
|
}
|
|
@@ -174,15 +187,19 @@ AuthenticationService = _ts_decorate([
|
|
|
174
187
|
Injectable({
|
|
175
188
|
providedIn: 'root'
|
|
176
189
|
}),
|
|
177
|
-
_ts_param(0,
|
|
178
|
-
_ts_param(
|
|
179
|
-
_ts_param(
|
|
180
|
-
_ts_param(
|
|
190
|
+
_ts_param(0, Optional()),
|
|
191
|
+
_ts_param(0, Inject(AUTHENTICATION_TRANSPORT)),
|
|
192
|
+
_ts_param(1, Optional()),
|
|
193
|
+
_ts_param(1, Inject(TRANSPORT)),
|
|
194
|
+
_ts_param(2, Inject(AUTHENTICATION_CONFIG)),
|
|
181
195
|
_ts_param(3, Optional()),
|
|
182
|
-
_ts_param(3, Inject(
|
|
196
|
+
_ts_param(3, Inject(TOKEN_MANAGER)),
|
|
197
|
+
_ts_param(4, Optional()),
|
|
198
|
+
_ts_param(4, Inject(SIMPLE_CONFIG)),
|
|
183
199
|
_ts_metadata("design:type", Function),
|
|
184
200
|
_ts_metadata("design:paramtypes", [
|
|
185
|
-
|
|
201
|
+
Object,
|
|
202
|
+
Object,
|
|
186
203
|
typeof AuthenticationBlockConfig === "undefined" ? Object : AuthenticationBlockConfig,
|
|
187
204
|
Object,
|
|
188
205
|
Object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/authentication/authentication.service.ts"],"sourcesContent":["import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from, tap } from 'rxjs';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createAuthenticationBlock,\n type AuthenticationBlock,\n type AuthenticationBlockConfig,\n type User,\n type Role,\n type Permission,\n type SignInRequest,\n type SignInResponse,\n type SignUpRequest,\n type SignUpResponse,\n type PasswordResetRequest,\n type PasswordUpdateRequest,\n type TokenValidationResponse,\n type ApiKey,\n type ApiKeyWithSecret,\n type CreateApiKeyRequest,\n type UpdateApiKeyRequest,\n type UpdateUserRequest,\n type CreateRoleRequest,\n type UpdateRoleRequest,\n} from '@23blocks/block-authentication';\nimport { TRANSPORT, AUTHENTICATION_CONFIG } from '../tokens.js';\nimport { TOKEN_MANAGER, SIMPLE_CONFIG, type TokenManagerService, type Simple23BlocksConfig } from '../simple-providers.js';\n\n/**\n * Angular service wrapping the Authentication block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class LoginComponent {\n * constructor(private auth: AuthenticationService) {}\n *\n * login(email: string, password: string) {\n * this.auth.signIn({ email, password }).subscribe({\n * next: (response) => console.log('Signed in:', response.user),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class AuthenticationService {\n private readonly block: AuthenticationBlock;\n private readonly tokenManager: TokenManagerService | null;\n private readonly simpleConfig: Simple23BlocksConfig | null;\n\n constructor(\n @Inject(TRANSPORT) transport: Transport,\n @Inject(AUTHENTICATION_CONFIG) config: AuthenticationBlockConfig,\n @Optional() @Inject(TOKEN_MANAGER) tokenManager: TokenManagerService | null,\n @Optional() @Inject(SIMPLE_CONFIG) simpleConfig: Simple23BlocksConfig | null\n ) {\n this.block = createAuthenticationBlock(transport, config);\n this.tokenManager = tokenManager;\n this.simpleConfig = simpleConfig;\n }\n\n /**\n * Check if using simplified API with automatic token management\n */\n private get isTokenMode(): boolean {\n return this.tokenManager !== null && this.simpleConfig?.authMode !== 'cookie';\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Auth Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Sign in with email and password.\n * When using simplified API (provideBlocks23), tokens are stored automatically.\n */\n signIn(request: SignInRequest): Observable<SignInResponse> {\n return from(this.block.auth.signIn(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken, response.refreshToken);\n }\n })\n );\n }\n\n /**\n * Sign up a new user.\n * When using simplified API, tokens are stored automatically if returned.\n */\n signUp(request: SignUpRequest): Observable<SignUpResponse> {\n return from(this.block.auth.signUp(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken);\n }\n })\n );\n }\n\n /**\n * Sign out the current user.\n * When using simplified API, tokens are cleared automatically.\n */\n signOut(): Observable<void> {\n return from(this.block.auth.signOut()).pipe(\n tap(() => {\n if (this.isTokenMode && this.tokenManager) {\n this.tokenManager.clearTokens();\n }\n })\n );\n }\n\n requestPasswordReset(request: PasswordResetRequest): Observable<void> {\n return from(this.block.auth.requestPasswordReset(request));\n }\n\n updatePassword(request: PasswordUpdateRequest): Observable<void> {\n return from(this.block.auth.updatePassword(request));\n }\n\n validateToken(token: string): Observable<TokenValidationResponse> {\n return from(this.block.auth.validateToken(token));\n }\n\n getCurrentUser(): Observable<User | null> {\n return from(this.block.auth.getCurrentUser());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Users Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listUsers(params?: { page?: number; perPage?: number }): Observable<User[]> {\n return from(this.block.users.list(params));\n }\n\n getUser(id: string): Observable<User> {\n return from(this.block.users.get(id));\n }\n\n updateUser(id: string, request: UpdateUserRequest): Observable<User> {\n return from(this.block.users.update(id, request));\n }\n\n deleteUser(id: string): Observable<void> {\n return from(this.block.users.delete(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Roles Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRoles(): Observable<Role[]> {\n return from(this.block.roles.list());\n }\n\n getRole(id: string): Observable<Role> {\n return from(this.block.roles.get(id));\n }\n\n createRole(request: CreateRoleRequest): Observable<Role> {\n return from(this.block.roles.create(request));\n }\n\n updateRole(id: string, request: UpdateRoleRequest): Observable<Role> {\n return from(this.block.roles.update(id, request));\n }\n\n deleteRole(id: string): Observable<void> {\n return from(this.block.roles.delete(id));\n }\n\n listPermissions(): Observable<Permission[]> {\n return from(this.block.roles.listPermissions());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // API Keys Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listApiKeys(): Observable<ApiKey[]> {\n return from(this.block.apiKeys.list());\n }\n\n getApiKey(id: string): Observable<ApiKey> {\n return from(this.block.apiKeys.get(id));\n }\n\n createApiKey(request: CreateApiKeyRequest): Observable<ApiKeyWithSecret> {\n return from(this.block.apiKeys.create(request));\n }\n\n updateApiKey(id: string, request: UpdateApiKeyRequest): Observable<ApiKey> {\n return from(this.block.apiKeys.update(id, request));\n }\n\n revokeApiKey(id: string): Observable<void> {\n return from(this.block.apiKeys.revoke(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Token Management (only applicable with provideBlocks23)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Get the current access token (token mode only).\n * Returns null if using cookie mode or no token is stored.\n */\n getAccessToken(): string | null {\n return this.tokenManager?.getAccessToken() ?? null;\n }\n\n /**\n * Get the current refresh token (token mode only).\n * Returns null if using cookie mode or no token is stored.\n */\n getRefreshToken(): string | null {\n return this.tokenManager?.getRefreshToken() ?? null;\n }\n\n /**\n * Manually set tokens (token mode only).\n * Useful for SSR hydration or external auth flows.\n */\n setTokens(accessToken: string, refreshToken?: string): void {\n this.tokenManager?.setTokens(accessToken, refreshToken);\n }\n\n /**\n * Clear stored tokens.\n */\n clearTokens(): void {\n this.tokenManager?.clearTokens();\n }\n\n /**\n * Check if user is likely authenticated.\n * In token mode: checks if token exists.\n * In cookie mode: always returns null (use validateToken instead).\n */\n isAuthenticated(): boolean | null {\n if (!this.tokenManager || this.simpleConfig?.authMode === 'cookie') {\n return null;\n }\n return !!this.tokenManager.getAccessToken();\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): AuthenticationBlock {\n return this.block;\n }\n}\n"],"names":["Injectable","Inject","Optional","from","tap","createAuthenticationBlock","TRANSPORT","AUTHENTICATION_CONFIG","TOKEN_MANAGER","SIMPLE_CONFIG","AuthenticationService","isTokenMode","tokenManager","simpleConfig","authMode","signIn","request","block","auth","pipe","response","accessToken","setTokens","refreshToken","signUp","signOut","clearTokens","requestPasswordReset","updatePassword","validateToken","token","getCurrentUser","listUsers","params","users","list","getUser","id","get","updateUser","update","deleteUser","delete","listRoles","roles","getRole","createRole","create","updateRole","deleteRole","listPermissions","listApiKeys","apiKeys","getApiKey","createApiKey","updateApiKey","revokeApiKey","revoke","getAccessToken","getRefreshToken","isAuthenticated","rawBlock","constructor","transport","config","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;AAAA,SAASA,UAAU,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,gBAAgB;AAC7D,SAAqBC,IAAI,EAAEC,GAAG,QAAQ,OAAO;AAE7C,SACEC,yBAAyB,QAoBpB,iCAAiC;AACxC,SAASC,SAAS,EAAEC,qBAAqB,QAAQ,eAAe;AAChE,SAASC,aAAa,EAAEC,aAAa,QAA6D,yBAAyB;AAsB3H,OAAO,MAAMC;IAgBX;;GAEC,GACD,IAAYC,cAAuB;YACI;QAArC,OAAO,IAAI,CAACC,YAAY,KAAK,QAAQ,EAAA,qBAAA,IAAI,CAACC,YAAY,qBAAjB,mBAAmBC,QAAQ,MAAK;IACvE;IAEA,gFAAgF;IAChF,eAAe;IACf,gFAAgF;IAEhF;;;GAGC,GACDC,OAAOC,OAAsB,EAA8B;QACzD,OAAOb,KAAK,IAAI,CAACc,KAAK,CAACC,IAAI,CAACH,MAAM,CAACC,UAAUG,IAAI,CAC/Cf,IAAI,CAACgB;YACH,IAAI,IAAI,CAACT,WAAW,IAAI,IAAI,CAACC,YAAY,IAAIQ,SAASC,WAAW,EAAE;gBACjE,IAAI,CAACT,YAAY,CAACU,SAAS,CAACF,SAASC,WAAW,EAAED,SAASG,YAAY;YACzE;QACF;IAEJ;IAEA;;;GAGC,GACDC,OAAOR,OAAsB,EAA8B;QACzD,OAAOb,KAAK,IAAI,CAACc,KAAK,CAACC,IAAI,CAACM,MAAM,CAACR,UAAUG,IAAI,CAC/Cf,IAAI,CAACgB;YACH,IAAI,IAAI,CAACT,WAAW,IAAI,IAAI,CAACC,YAAY,IAAIQ,SAASC,WAAW,EAAE;gBACjE,IAAI,CAACT,YAAY,CAACU,SAAS,CAACF,SAASC,WAAW;YAClD;QACF;IAEJ;IAEA;;;GAGC,GACDI,UAA4B;QAC1B,OAAOtB,KAAK,IAAI,CAACc,KAAK,CAACC,IAAI,CAACO,OAAO,IAAIN,IAAI,CACzCf,IAAI;YACF,IAAI,IAAI,CAACO,WAAW,IAAI,IAAI,CAACC,YAAY,EAAE;gBACzC,IAAI,CAACA,YAAY,CAACc,WAAW;YAC/B;QACF;IAEJ;IAEAC,qBAAqBX,OAA6B,EAAoB;QACpE,OAAOb,KAAK,IAAI,CAACc,KAAK,CAACC,IAAI,CAACS,oBAAoB,CAACX;IACnD;IAEAY,eAAeZ,OAA8B,EAAoB;QAC/D,OAAOb,KAAK,IAAI,CAACc,KAAK,CAACC,IAAI,CAACU,cAAc,CAACZ;IAC7C;IAEAa,cAAcC,KAAa,EAAuC;QAChE,OAAO3B,KAAK,IAAI,CAACc,KAAK,CAACC,IAAI,CAACW,aAAa,CAACC;IAC5C;IAEAC,iBAA0C;QACxC,OAAO5B,KAAK,IAAI,CAACc,KAAK,CAACC,IAAI,CAACa,cAAc;IAC5C;IAEA,gFAAgF;IAChF,gBAAgB;IAChB,gFAAgF;IAEhFC,UAAUC,MAA4C,EAAsB;QAC1E,OAAO9B,KAAK,IAAI,CAACc,KAAK,CAACiB,KAAK,CAACC,IAAI,CAACF;IACpC;IAEAG,QAAQC,EAAU,EAAoB;QACpC,OAAOlC,KAAK,IAAI,CAACc,KAAK,CAACiB,KAAK,CAACI,GAAG,CAACD;IACnC;IAEAE,WAAWF,EAAU,EAAErB,OAA0B,EAAoB;QACnE,OAAOb,KAAK,IAAI,CAACc,KAAK,CAACiB,KAAK,CAACM,MAAM,CAACH,IAAIrB;IAC1C;IAEAyB,WAAWJ,EAAU,EAAoB;QACvC,OAAOlC,KAAK,IAAI,CAACc,KAAK,CAACiB,KAAK,CAACQ,MAAM,CAACL;IACtC;IAEA,gFAAgF;IAChF,gBAAgB;IAChB,gFAAgF;IAEhFM,YAAgC;QAC9B,OAAOxC,KAAK,IAAI,CAACc,KAAK,CAAC2B,KAAK,CAACT,IAAI;IACnC;IAEAU,QAAQR,EAAU,EAAoB;QACpC,OAAOlC,KAAK,IAAI,CAACc,KAAK,CAAC2B,KAAK,CAACN,GAAG,CAACD;IACnC;IAEAS,WAAW9B,OAA0B,EAAoB;QACvD,OAAOb,KAAK,IAAI,CAACc,KAAK,CAAC2B,KAAK,CAACG,MAAM,CAAC/B;IACtC;IAEAgC,WAAWX,EAAU,EAAErB,OAA0B,EAAoB;QACnE,OAAOb,KAAK,IAAI,CAACc,KAAK,CAAC2B,KAAK,CAACJ,MAAM,CAACH,IAAIrB;IAC1C;IAEAiC,WAAWZ,EAAU,EAAoB;QACvC,OAAOlC,KAAK,IAAI,CAACc,KAAK,CAAC2B,KAAK,CAACF,MAAM,CAACL;IACtC;IAEAa,kBAA4C;QAC1C,OAAO/C,KAAK,IAAI,CAACc,KAAK,CAAC2B,KAAK,CAACM,eAAe;IAC9C;IAEA,gFAAgF;IAChF,mBAAmB;IACnB,gFAAgF;IAEhFC,cAAoC;QAClC,OAAOhD,KAAK,IAAI,CAACc,KAAK,CAACmC,OAAO,CAACjB,IAAI;IACrC;IAEAkB,UAAUhB,EAAU,EAAsB;QACxC,OAAOlC,KAAK,IAAI,CAACc,KAAK,CAACmC,OAAO,CAACd,GAAG,CAACD;IACrC;IAEAiB,aAAatC,OAA4B,EAAgC;QACvE,OAAOb,KAAK,IAAI,CAACc,KAAK,CAACmC,OAAO,CAACL,MAAM,CAAC/B;IACxC;IAEAuC,aAAalB,EAAU,EAAErB,OAA4B,EAAsB;QACzE,OAAOb,KAAK,IAAI,CAACc,KAAK,CAACmC,OAAO,CAACZ,MAAM,CAACH,IAAIrB;IAC5C;IAEAwC,aAAanB,EAAU,EAAoB;QACzC,OAAOlC,KAAK,IAAI,CAACc,KAAK,CAACmC,OAAO,CAACK,MAAM,CAACpB;IACxC;IAEA,gFAAgF;IAChF,0DAA0D;IAC1D,gFAAgF;IAEhF;;;GAGC,GACDqB,iBAAgC;YACvB;YAAA;QAAP,OAAO,CAAA,qCAAA,qBAAA,IAAI,CAAC9C,YAAY,qBAAjB,mBAAmB8C,cAAc,cAAjC,oCAAuC;IAChD;IAEA;;;GAGC,GACDC,kBAAiC;YACxB;YAAA;QAAP,OAAO,CAAA,sCAAA,qBAAA,IAAI,CAAC/C,YAAY,qBAAjB,mBAAmB+C,eAAe,cAAlC,qCAAwC;IACjD;IAEA;;;GAGC,GACDrC,UAAUD,WAAmB,EAAEE,YAAqB,EAAQ;YAC1D;SAAA,qBAAA,IAAI,CAACX,YAAY,qBAAjB,mBAAmBU,SAAS,CAACD,aAAaE;IAC5C;IAEA;;GAEC,GACDG,cAAoB;YAClB;SAAA,qBAAA,IAAI,CAACd,YAAY,qBAAjB,mBAAmBc,WAAW;IAChC;IAEA;;;;GAIC,GACDkC,kBAAkC;YACN;QAA1B,IAAI,CAAC,IAAI,CAAChD,YAAY,IAAI,EAAA,qBAAA,IAAI,CAACC,YAAY,qBAAjB,mBAAmBC,QAAQ,MAAK,UAAU;YAClE,OAAO;QACT;QACA,OAAO,CAAC,CAAC,IAAI,CAACF,YAAY,CAAC8C,cAAc;IAC3C;IAEA,gFAAgF;IAChF,2CAA2C;IAC3C,gFAAgF;IAEhF;;;GAGC,GACD,IAAIG,WAAgC;QAClC,OAAO,IAAI,CAAC5C,KAAK;IACnB;IAjNA6C,YACE,AAAmBC,SAAoB,EACvC,AAA+BC,MAAiC,EAChE,AAAmCpD,YAAwC,EAC3E,AAAmCC,YAAyC,CAC5E;QACA,IAAI,CAACI,KAAK,GAAGZ,0BAA0B0D,WAAWC;QAClD,IAAI,CAACpD,YAAY,GAAGA;QACpB,IAAI,CAACC,YAAY,GAAGA;IACtB;AAyMF;AAvNaH;IADZV,WAAW;QAAEiE,YAAY;IAAO;IAO5BhE,aAAAA,OAAOK;IACPL,aAAAA,OAAOM;IACPL,aAAAA;IAAYD,aAAAA,OAAOO;IACnBN,aAAAA;IAAYD,aAAAA,OAAOQ;;;eAHU,qCAAA;eACS,qDAAA;;;;GAP9BC"}
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/authentication/authentication.service.ts"],"sourcesContent":["import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from, tap } from 'rxjs';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createAuthenticationBlock,\n type AuthenticationBlock,\n type AuthenticationBlockConfig,\n type User,\n type Role,\n type Permission,\n type SignInRequest,\n type SignInResponse,\n type SignUpRequest,\n type SignUpResponse,\n type PasswordResetRequest,\n type PasswordUpdateRequest,\n type TokenValidationResponse,\n type ApiKey,\n type ApiKeyWithSecret,\n type CreateApiKeyRequest,\n type UpdateApiKeyRequest,\n type UpdateUserRequest,\n type CreateRoleRequest,\n type UpdateRoleRequest,\n} from '@23blocks/block-authentication';\nimport { TRANSPORT, AUTHENTICATION_TRANSPORT, AUTHENTICATION_CONFIG } from '../tokens.js';\nimport { TOKEN_MANAGER, SIMPLE_CONFIG, type TokenManagerService, type Simple23BlocksConfig } from '../simple-providers.js';\n\n/**\n * Angular service wrapping the Authentication block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class LoginComponent {\n * constructor(private auth: AuthenticationService) {}\n *\n * login(email: string, password: string) {\n * this.auth.signIn({ email, password }).subscribe({\n * next: (response) => console.log('Signed in:', response.user),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class AuthenticationService {\n private readonly block: AuthenticationBlock | null;\n private readonly tokenManager: TokenManagerService | null;\n private readonly simpleConfig: Simple23BlocksConfig | null;\n\n constructor(\n @Optional() @Inject(AUTHENTICATION_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(AUTHENTICATION_CONFIG) config: AuthenticationBlockConfig,\n @Optional() @Inject(TOKEN_MANAGER) tokenManager: TokenManagerService | null,\n @Optional() @Inject(SIMPLE_CONFIG) simpleConfig: Simple23BlocksConfig | null\n ) {\n // Prefer per-service transport, fall back to legacy TRANSPORT for backward compatibility\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createAuthenticationBlock(transport, config) : null;\n this.tokenManager = tokenManager;\n this.simpleConfig = simpleConfig;\n }\n\n /**\n * Ensure the service is configured, throw helpful error if not\n */\n private ensureConfigured(): AuthenticationBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] AuthenticationService is not configured. ' +\n \"Add 'urls.authentication' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n /**\n * Check if using simplified API with automatic token management\n */\n private get isTokenMode(): boolean {\n return this.tokenManager !== null && this.simpleConfig?.authMode !== 'cookie';\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Auth Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Sign in with email and password.\n * When using simplified API (provideBlocks23), tokens are stored automatically.\n */\n signIn(request: SignInRequest): Observable<SignInResponse> {\n const block = this.ensureConfigured();\n return from(block.auth.signIn(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken, response.refreshToken);\n }\n })\n );\n }\n\n /**\n * Sign up a new user.\n * When using simplified API, tokens are stored automatically if returned.\n */\n signUp(request: SignUpRequest): Observable<SignUpResponse> {\n const block = this.ensureConfigured();\n return from(block.auth.signUp(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken);\n }\n })\n );\n }\n\n /**\n * Sign out the current user.\n * When using simplified API, tokens are cleared automatically.\n */\n signOut(): Observable<void> {\n const block = this.ensureConfigured();\n return from(block.auth.signOut()).pipe(\n tap(() => {\n if (this.isTokenMode && this.tokenManager) {\n this.tokenManager.clearTokens();\n }\n })\n );\n }\n\n requestPasswordReset(request: PasswordResetRequest): Observable<void> {\n return from(this.ensureConfigured().auth.requestPasswordReset(request));\n }\n\n updatePassword(request: PasswordUpdateRequest): Observable<void> {\n return from(this.ensureConfigured().auth.updatePassword(request));\n }\n\n validateToken(token: string): Observable<TokenValidationResponse> {\n return from(this.ensureConfigured().auth.validateToken(token));\n }\n\n getCurrentUser(): Observable<User | null> {\n return from(this.ensureConfigured().auth.getCurrentUser());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Users Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listUsers(params?: { page?: number; perPage?: number }): Observable<User[]> {\n return from(this.ensureConfigured().users.list(params));\n }\n\n getUser(id: string): Observable<User> {\n return from(this.ensureConfigured().users.get(id));\n }\n\n updateUser(id: string, request: UpdateUserRequest): Observable<User> {\n return from(this.ensureConfigured().users.update(id, request));\n }\n\n deleteUser(id: string): Observable<void> {\n return from(this.ensureConfigured().users.delete(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Roles Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRoles(): Observable<Role[]> {\n return from(this.ensureConfigured().roles.list());\n }\n\n getRole(id: string): Observable<Role> {\n return from(this.ensureConfigured().roles.get(id));\n }\n\n createRole(request: CreateRoleRequest): Observable<Role> {\n return from(this.ensureConfigured().roles.create(request));\n }\n\n updateRole(id: string, request: UpdateRoleRequest): Observable<Role> {\n return from(this.ensureConfigured().roles.update(id, request));\n }\n\n deleteRole(id: string): Observable<void> {\n return from(this.ensureConfigured().roles.delete(id));\n }\n\n listPermissions(): Observable<Permission[]> {\n return from(this.ensureConfigured().roles.listPermissions());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // API Keys Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listApiKeys(): Observable<ApiKey[]> {\n return from(this.ensureConfigured().apiKeys.list());\n }\n\n getApiKey(id: string): Observable<ApiKey> {\n return from(this.ensureConfigured().apiKeys.get(id));\n }\n\n createApiKey(request: CreateApiKeyRequest): Observable<ApiKeyWithSecret> {\n return from(this.ensureConfigured().apiKeys.create(request));\n }\n\n updateApiKey(id: string, request: UpdateApiKeyRequest): Observable<ApiKey> {\n return from(this.ensureConfigured().apiKeys.update(id, request));\n }\n\n revokeApiKey(id: string): Observable<void> {\n return from(this.ensureConfigured().apiKeys.revoke(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Token Management (only applicable with provideBlocks23)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Get the current access token (token mode only).\n * Returns null if using cookie mode or no token is stored.\n */\n getAccessToken(): string | null {\n return this.tokenManager?.getAccessToken() ?? null;\n }\n\n /**\n * Get the current refresh token (token mode only).\n * Returns null if using cookie mode or no token is stored.\n */\n getRefreshToken(): string | null {\n return this.tokenManager?.getRefreshToken() ?? null;\n }\n\n /**\n * Manually set tokens (token mode only).\n * Useful for SSR hydration or external auth flows.\n */\n setTokens(accessToken: string, refreshToken?: string): void {\n this.tokenManager?.setTokens(accessToken, refreshToken);\n }\n\n /**\n * Clear stored tokens.\n */\n clearTokens(): void {\n this.tokenManager?.clearTokens();\n }\n\n /**\n * Check if user is likely authenticated.\n * In token mode: checks if token exists.\n * In cookie mode: always returns null (use validateToken instead).\n */\n isAuthenticated(): boolean | null {\n if (!this.tokenManager || this.simpleConfig?.authMode === 'cookie') {\n return null;\n }\n return !!this.tokenManager.getAccessToken();\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rawBlock(): AuthenticationBlock {\n return this.ensureConfigured();\n }\n}\n"],"names":["Injectable","Inject","Optional","from","tap","createAuthenticationBlock","TRANSPORT","AUTHENTICATION_TRANSPORT","AUTHENTICATION_CONFIG","TOKEN_MANAGER","SIMPLE_CONFIG","AuthenticationService","ensureConfigured","block","Error","isTokenMode","tokenManager","simpleConfig","authMode","signIn","request","auth","pipe","response","accessToken","setTokens","refreshToken","signUp","signOut","clearTokens","requestPasswordReset","updatePassword","validateToken","token","getCurrentUser","listUsers","params","users","list","getUser","id","get","updateUser","update","deleteUser","delete","listRoles","roles","getRole","createRole","create","updateRole","deleteRole","listPermissions","listApiKeys","apiKeys","getApiKey","createApiKey","updateApiKey","revokeApiKey","revoke","getAccessToken","getRefreshToken","isAuthenticated","rawBlock","constructor","serviceTransport","legacyTransport","config","transport","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|