@enterprisestandard/react 0.0.5-beta.20251125.1 → 0.0.5-beta.20260114.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/group-store.d.ts +164 -0
- package/dist/group-store.d.ts.map +1 -0
- package/dist/iam.d.ts +205 -5
- package/dist/iam.d.ts.map +1 -1
- package/dist/index.d.ts +41 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2837 -555
- package/dist/index.js.map +17 -9
- package/dist/server.d.ts +6 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/session-store.d.ts +3 -3
- package/dist/session-store.d.ts.map +1 -1
- package/dist/sso.d.ts +58 -10
- package/dist/sso.d.ts.map +1 -1
- package/dist/tenant-server.d.ts +8 -0
- package/dist/tenant-server.d.ts.map +1 -0
- package/dist/tenant.d.ts +280 -0
- package/dist/tenant.d.ts.map +1 -0
- package/dist/types/base-user.d.ts +27 -0
- package/dist/types/base-user.d.ts.map +1 -0
- package/dist/types/enterprise-user.d.ts +158 -0
- package/dist/types/enterprise-user.d.ts.map +1 -0
- package/dist/types/oidc-schema.d.ts.map +1 -0
- package/dist/{scim-schema.d.ts → types/scim-schema.d.ts} +66 -3
- package/dist/types/scim-schema.d.ts.map +1 -0
- package/dist/types/standard-schema.d.ts.map +1 -0
- package/dist/types/user.d.ts +41 -0
- package/dist/types/user.d.ts.map +1 -0
- package/dist/types/workload-schema.d.ts +106 -0
- package/dist/types/workload-schema.d.ts.map +1 -0
- package/dist/ui/sso-provider.d.ts +3 -3
- package/dist/ui/sso-provider.d.ts.map +1 -1
- package/dist/user-store.d.ts +161 -0
- package/dist/user-store.d.ts.map +1 -0
- package/dist/workload-server.d.ts +126 -0
- package/dist/workload-server.d.ts.map +1 -0
- package/dist/workload-token-store.d.ts +187 -0
- package/dist/workload-token-store.d.ts.map +1 -0
- package/dist/workload.d.ts +227 -0
- package/dist/workload.d.ts.map +1 -0
- package/package.json +1 -2
- package/dist/enterprise-user.d.ts +0 -126
- package/dist/enterprise-user.d.ts.map +0 -1
- package/dist/oidc-schema.d.ts.map +0 -1
- package/dist/scim-schema.d.ts.map +0 -1
- package/dist/standard-schema.d.ts.map +0 -1
- /package/dist/{oidc-schema.d.ts → types/oidc-schema.d.ts} +0 -0
- /package/dist/{standard-schema.d.ts → types/standard-schema.d.ts} +0 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token caching for workload identity authentication.
|
|
3
|
+
*
|
|
4
|
+
* Token stores are optional but recommended for performance - they enable:
|
|
5
|
+
* - Token caching to avoid repeated token acquisition
|
|
6
|
+
* - Automatic token refresh before expiration
|
|
7
|
+
* - Reduced load on authorization servers
|
|
8
|
+
*
|
|
9
|
+
* ## Token Caching Strategy
|
|
10
|
+
*
|
|
11
|
+
* Unlike session stores for user authentication, workload token stores cache
|
|
12
|
+
* short-lived access tokens (typically 5 minutes) for service-to-service calls.
|
|
13
|
+
*
|
|
14
|
+
* **Default Behavior:**
|
|
15
|
+
* - Tokens cached with 5-minute TTL
|
|
16
|
+
* - Auto-refresh 60 seconds before expiration
|
|
17
|
+
* - Expired tokens automatically removed
|
|
18
|
+
*
|
|
19
|
+
* ## Performance Characteristics
|
|
20
|
+
*
|
|
21
|
+
* | Backend | Lookup Time | Use Case |
|
|
22
|
+
* |--------------|-------------|----------------------------|
|
|
23
|
+
* | InMemory | <0.00005ms | Single-server deployments |
|
|
24
|
+
* | Redis | 1-2ms | Multi-server deployments |
|
|
25
|
+
* | Database | 5-20ms | Persistent token storage |
|
|
26
|
+
*
|
|
27
|
+
* ## Example Usage
|
|
28
|
+
*
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { workload, InMemoryWorkloadTokenStore } from '@enterprisestandard/react/server';
|
|
31
|
+
*
|
|
32
|
+
* // With token caching
|
|
33
|
+
* const workloadAuth = workload({
|
|
34
|
+
* // ... other config
|
|
35
|
+
* token_store: new InMemoryWorkloadTokenStore(),
|
|
36
|
+
* auto_refresh: true, // Refresh before expiry
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* // Without token caching (fetch new token each time)
|
|
40
|
+
* const workloadAuth = workload({
|
|
41
|
+
* // ... config without token_store
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
/**
|
|
46
|
+
* Cached workload token data.
|
|
47
|
+
*
|
|
48
|
+
* @template TExtended - Type-safe custom data that consumers can add to cached tokens
|
|
49
|
+
*/
|
|
50
|
+
export type CachedWorkloadToken<TExtended = object> = {
|
|
51
|
+
/**
|
|
52
|
+
* Workload identifier (typically SPIFFE ID).
|
|
53
|
+
* Used as the primary key for token lookup.
|
|
54
|
+
*/
|
|
55
|
+
workload_id: string;
|
|
56
|
+
/**
|
|
57
|
+
* OAuth2 access token (Bearer token)
|
|
58
|
+
*/
|
|
59
|
+
access_token: string;
|
|
60
|
+
/**
|
|
61
|
+
* Token type (always "Bearer" for OAuth2)
|
|
62
|
+
*/
|
|
63
|
+
token_type: string;
|
|
64
|
+
/**
|
|
65
|
+
* OAuth2 scopes granted for this token
|
|
66
|
+
*/
|
|
67
|
+
scope?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Timestamp when the token expires.
|
|
70
|
+
* Used for automatic cleanup and refresh logic.
|
|
71
|
+
*/
|
|
72
|
+
expires_at: Date;
|
|
73
|
+
/**
|
|
74
|
+
* Timestamp when the token was created/cached.
|
|
75
|
+
*/
|
|
76
|
+
created_at: Date;
|
|
77
|
+
/**
|
|
78
|
+
* Optional refresh token (rarely used for workload identities)
|
|
79
|
+
*/
|
|
80
|
+
refresh_token?: string;
|
|
81
|
+
} & TExtended;
|
|
82
|
+
/**
|
|
83
|
+
* Abstract interface for workload token storage backends.
|
|
84
|
+
*
|
|
85
|
+
* Consumers can implement this interface to use different storage backends:
|
|
86
|
+
* - Redis (recommended for multi-server deployments)
|
|
87
|
+
* - Database (PostgreSQL, MySQL, etc. for persistence)
|
|
88
|
+
* - Distributed cache (Memcached, etc.)
|
|
89
|
+
* - Custom solutions
|
|
90
|
+
*
|
|
91
|
+
* @template TExtended - Type-safe custom data that consumers can add to cached tokens
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* // Custom token cache data
|
|
96
|
+
* type MyTokenData = {
|
|
97
|
+
* environment: string;
|
|
98
|
+
* region: string;
|
|
99
|
+
* };
|
|
100
|
+
*
|
|
101
|
+
* // Implement custom store with Redis
|
|
102
|
+
* class RedisWorkloadTokenStore implements WorkloadTokenStore<MyTokenData> {
|
|
103
|
+
* async set(token: CachedWorkloadToken<MyTokenData>): Promise<void> {
|
|
104
|
+
* const ttl = Math.floor((token.expires_at.getTime() - Date.now()) / 1000);
|
|
105
|
+
* await redis.setex(
|
|
106
|
+
* `workload:token:${token.workload_id}`,
|
|
107
|
+
* ttl,
|
|
108
|
+
* JSON.stringify(token)
|
|
109
|
+
* );
|
|
110
|
+
* }
|
|
111
|
+
*
|
|
112
|
+
* async get(workload_id: string): Promise<CachedWorkloadToken<MyTokenData> | null> {
|
|
113
|
+
* const data = await redis.get(`workload:token:${workload_id}`);
|
|
114
|
+
* if (!data) return null;
|
|
115
|
+
* const token = JSON.parse(data);
|
|
116
|
+
* // Convert date strings back to Date objects
|
|
117
|
+
* token.expires_at = new Date(token.expires_at);
|
|
118
|
+
* token.created_at = new Date(token.created_at);
|
|
119
|
+
* return token;
|
|
120
|
+
* }
|
|
121
|
+
*
|
|
122
|
+
* // ... other methods
|
|
123
|
+
* }
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
export interface WorkloadTokenStore<TExtended = object> {
|
|
127
|
+
/**
|
|
128
|
+
* Store or update a workload token in the cache.
|
|
129
|
+
*
|
|
130
|
+
* @param token - The token data to cache
|
|
131
|
+
*/
|
|
132
|
+
set(token: CachedWorkloadToken<TExtended>): Promise<void>;
|
|
133
|
+
/**
|
|
134
|
+
* Retrieve a cached token by workload ID.
|
|
135
|
+
*
|
|
136
|
+
* @param workload_id - The workload identifier (e.g., SPIFFE ID)
|
|
137
|
+
* @returns The cached token if found and not expired, null otherwise
|
|
138
|
+
*/
|
|
139
|
+
get(workload_id: string): Promise<CachedWorkloadToken<TExtended> | null>;
|
|
140
|
+
/**
|
|
141
|
+
* Delete a cached token by workload ID.
|
|
142
|
+
*
|
|
143
|
+
* Used when explicitly revoking tokens or clearing cache.
|
|
144
|
+
*
|
|
145
|
+
* @param workload_id - The workload identifier to remove
|
|
146
|
+
*/
|
|
147
|
+
delete(workload_id: string): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* Check if a valid (non-expired) token exists for a workload.
|
|
150
|
+
*
|
|
151
|
+
* @param workload_id - The workload identifier to check
|
|
152
|
+
* @returns true if a valid token exists, false otherwise
|
|
153
|
+
*/
|
|
154
|
+
isValid(workload_id: string): Promise<boolean>;
|
|
155
|
+
/**
|
|
156
|
+
* Remove all expired tokens from the cache.
|
|
157
|
+
*
|
|
158
|
+
* Should be called periodically to prevent memory leaks.
|
|
159
|
+
*/
|
|
160
|
+
cleanup(): Promise<void>;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* In-memory workload token store implementation using Maps.
|
|
164
|
+
*
|
|
165
|
+
* Suitable for:
|
|
166
|
+
* - Development and testing
|
|
167
|
+
* - Single-server deployments
|
|
168
|
+
* - Applications without high availability requirements
|
|
169
|
+
*
|
|
170
|
+
* NOT suitable for:
|
|
171
|
+
* - Multi-server deployments (tokens not shared across instances)
|
|
172
|
+
* - High availability scenarios (tokens lost on restart)
|
|
173
|
+
* - Production applications with distributed architecture
|
|
174
|
+
*
|
|
175
|
+
* For production multi-server deployments, implement WorkloadTokenStore with Redis.
|
|
176
|
+
*
|
|
177
|
+
* @template TExtended - Type-safe custom data that consumers can add to cached tokens
|
|
178
|
+
*/
|
|
179
|
+
export declare class InMemoryWorkloadTokenStore<TExtended = object> implements WorkloadTokenStore<TExtended> {
|
|
180
|
+
private tokens;
|
|
181
|
+
set(token: CachedWorkloadToken<TExtended>): Promise<void>;
|
|
182
|
+
get(workload_id: string): Promise<CachedWorkloadToken<TExtended> | null>;
|
|
183
|
+
delete(workload_id: string): Promise<void>;
|
|
184
|
+
isValid(workload_id: string): Promise<boolean>;
|
|
185
|
+
cleanup(): Promise<void>;
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=workload-token-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workload-token-store.d.ts","sourceRoot":"","sources":["../src/workload-token-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,CAAC,SAAS,GAAG,MAAM,IAAI;IACpD;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,UAAU,EAAE,IAAI,CAAC;IAEjB;;OAEG;IACH,UAAU,EAAE,IAAI,CAAC;IAEjB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,WAAW,kBAAkB,CAAC,SAAS,GAAG,MAAM;IACpD;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;;;;OAKG;IACH,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;IAEzE;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;;OAKG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,0BAA0B,CAAC,SAAS,GAAG,MAAM,CAAE,YAAW,kBAAkB,CAAC,SAAS,CAAC;IAClG,OAAO,CAAC,MAAM,CAAqD;IAE7D,GAAG,CAAC,KAAK,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAaxE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ/B"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import type { EnterpriseStandard } from '.';
|
|
2
|
+
import type { StandardSchemaV1 } from './types/standard-schema';
|
|
3
|
+
import type { JWTAssertionClaims, TokenValidationResult, WorkloadTokenResponse } from './types/workload-schema';
|
|
4
|
+
import { type WorkloadTokenStore } from './workload-token-store';
|
|
5
|
+
/**
|
|
6
|
+
* Common fields shared across all workload authentication modes
|
|
7
|
+
*/
|
|
8
|
+
type WorkloadConfigBase = {
|
|
9
|
+
/**
|
|
10
|
+
* OAuth2 token endpoint URL
|
|
11
|
+
* REQUIRED for client role (token acquisition)
|
|
12
|
+
*/
|
|
13
|
+
token_url?: string;
|
|
14
|
+
/**
|
|
15
|
+
* JWKS endpoint URL for public key retrieval
|
|
16
|
+
* REQUIRED for server role (token validation)
|
|
17
|
+
*/
|
|
18
|
+
jwks_uri?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Expected token issuer URL for validation
|
|
21
|
+
* RECOMMENDED for server role (token validation)
|
|
22
|
+
*/
|
|
23
|
+
issuer?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Target audience for tokens
|
|
26
|
+
*/
|
|
27
|
+
audience?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Default OAuth2 scopes (space-delimited)
|
|
30
|
+
*/
|
|
31
|
+
scope?: string;
|
|
32
|
+
/**
|
|
33
|
+
* JWT assertion/token lifetime in seconds
|
|
34
|
+
* @default 300 (5 minutes)
|
|
35
|
+
*/
|
|
36
|
+
token_lifetime?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Refresh threshold in seconds (refresh token this many seconds before expiry)
|
|
39
|
+
* @default 60
|
|
40
|
+
*/
|
|
41
|
+
refresh_threshold?: number;
|
|
42
|
+
/**
|
|
43
|
+
* Optional token store for caching access tokens
|
|
44
|
+
*/
|
|
45
|
+
token_store?: WorkloadTokenStore;
|
|
46
|
+
/**
|
|
47
|
+
* Automatically refresh tokens before expiration
|
|
48
|
+
* @default true
|
|
49
|
+
*/
|
|
50
|
+
auto_refresh?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Optional RFC 7009 token revocation endpoint
|
|
53
|
+
*/
|
|
54
|
+
revocation_endpoint?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Optional handler defaults (merged with per-call overrides in `handler`)
|
|
57
|
+
*/
|
|
58
|
+
tokenUrl?: string;
|
|
59
|
+
validateUrl?: string;
|
|
60
|
+
jwksUrl?: string;
|
|
61
|
+
refreshUrl?: string;
|
|
62
|
+
validation?: {
|
|
63
|
+
jwtAssertionClaims?: StandardSchemaV1<unknown, JWTAssertionClaims>;
|
|
64
|
+
tokenResponse?: StandardSchemaV1<unknown, WorkloadTokenResponse>;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* JWT Bearer Grant (RFC 7523) Configuration
|
|
69
|
+
*
|
|
70
|
+
* Used for SPIFFE-style workload identities where services have their own
|
|
71
|
+
* cryptographic identity and sign their own JWT assertions.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```json
|
|
75
|
+
* {
|
|
76
|
+
* "token_url": "https://auth.example.com/oauth/token",
|
|
77
|
+
* "jwks_uri": "https://auth.example.com/.well-known/jwks.json",
|
|
78
|
+
* "workload_id": "spiffe://trust-domain/ns/service",
|
|
79
|
+
* "audience": "https://auth.example.com/oauth/token",
|
|
80
|
+
* "private_key": "-----BEGIN PRIVATE KEY-----...",
|
|
81
|
+
* "algorithm": "RS256"
|
|
82
|
+
* }
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export type JwtBearerWorkloadConfig = WorkloadConfigBase & {
|
|
86
|
+
/**
|
|
87
|
+
* Workload identifier (e.g., SPIFFE ID: spiffe://trust-domain/namespace/service)
|
|
88
|
+
* REQUIRED for JWT Bearer Grant mode
|
|
89
|
+
*/
|
|
90
|
+
workload_id?: string;
|
|
91
|
+
/**
|
|
92
|
+
* PEM-encoded private key for signing JWT assertions
|
|
93
|
+
* REQUIRED for client role in JWT Bearer Grant mode
|
|
94
|
+
*/
|
|
95
|
+
private_key?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Key ID (kid) to include in JWT header for key rotation support
|
|
98
|
+
*/
|
|
99
|
+
key_id?: string;
|
|
100
|
+
/**
|
|
101
|
+
* JWT signing algorithm
|
|
102
|
+
* @default 'RS256'
|
|
103
|
+
*/
|
|
104
|
+
algorithm?: 'RS256' | 'RS384' | 'RS512' | 'ES256' | 'ES384' | 'ES512';
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* OAuth2 Client Credentials Configuration
|
|
108
|
+
*
|
|
109
|
+
* Standard OAuth2 Client Credentials Grant (RFC 6749 Section 4.4).
|
|
110
|
+
* Used with identity providers like Keycloak for service-to-service authentication.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```json
|
|
114
|
+
* {
|
|
115
|
+
* "token_url": "https://sso.example.com/realms/myrealm/protocol/openid-connect/token",
|
|
116
|
+
* "jwks_uri": "https://sso.example.com/realms/myrealm/protocol/openid-connect/certs",
|
|
117
|
+
* "client_id": "my-service",
|
|
118
|
+
* "client_secret": "secret-from-idp",
|
|
119
|
+
* "issuer": "https://sso.example.com/realms/myrealm",
|
|
120
|
+
* "scope": "api:read api:write"
|
|
121
|
+
* }
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export type ClientCredentialsWorkloadConfig = WorkloadConfigBase & {
|
|
125
|
+
/**
|
|
126
|
+
* OAuth2 client identifier registered with the authorization server
|
|
127
|
+
* REQUIRED for Client Credentials mode
|
|
128
|
+
*/
|
|
129
|
+
client_id?: string;
|
|
130
|
+
/**
|
|
131
|
+
* OAuth2 client secret
|
|
132
|
+
* REQUIRED for Client Credentials mode
|
|
133
|
+
*/
|
|
134
|
+
client_secret?: string;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Server-Only Workload Configuration
|
|
138
|
+
*
|
|
139
|
+
* Used when a service only needs to validate incoming workload tokens,
|
|
140
|
+
* not acquire tokens for outbound calls. Requires only jwks_uri for
|
|
141
|
+
* public key retrieval.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```json
|
|
145
|
+
* {
|
|
146
|
+
* "jwks_uri": "https://sso.example.com/realms/myrealm/protocol/openid-connect/certs",
|
|
147
|
+
* "issuer": "https://sso.example.com/realms/myrealm"
|
|
148
|
+
* }
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
export type ServerOnlyWorkloadConfig = WorkloadConfigBase;
|
|
152
|
+
/**
|
|
153
|
+
* Workload Identity Authentication Configuration
|
|
154
|
+
*
|
|
155
|
+
* Union type supporting multiple authentication modes. The mode is automatically
|
|
156
|
+
* detected based on which fields are present:
|
|
157
|
+
*
|
|
158
|
+
* - **JWT Bearer Grant**: Requires `workload_id` + `private_key`
|
|
159
|
+
* - **Client Credentials**: Requires `client_id` + `client_secret`
|
|
160
|
+
* - **Server-Only**: Only `jwks_uri` (and optionally `issuer`) for token validation
|
|
161
|
+
*
|
|
162
|
+
* The developer uses the same API regardless of mode - the library handles the details.
|
|
163
|
+
*/
|
|
164
|
+
export type WorkloadConfig = JwtBearerWorkloadConfig | ClientCredentialsWorkloadConfig | ServerOnlyWorkloadConfig;
|
|
165
|
+
export type ESConfig = {
|
|
166
|
+
es?: EnterpriseStandard;
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Workload Identity extracted from validated tokens
|
|
170
|
+
*/
|
|
171
|
+
export type WorkloadIdentity = {
|
|
172
|
+
/**
|
|
173
|
+
* Workload identifier (for JWT Bearer Grant tokens)
|
|
174
|
+
*/
|
|
175
|
+
workload_id?: string;
|
|
176
|
+
/**
|
|
177
|
+
* Client identifier (for OAuth2 Client Credentials tokens)
|
|
178
|
+
*/
|
|
179
|
+
client_id?: string;
|
|
180
|
+
/**
|
|
181
|
+
* Granted scopes
|
|
182
|
+
*/
|
|
183
|
+
scope?: string;
|
|
184
|
+
/**
|
|
185
|
+
* Full JWT claims from the token
|
|
186
|
+
*/
|
|
187
|
+
claims: JWTAssertionClaims;
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* Workload Identity Authentication Interface
|
|
191
|
+
*/
|
|
192
|
+
export type Workload = WorkloadConfig & {
|
|
193
|
+
getToken: (scope?: string) => Promise<string>;
|
|
194
|
+
refreshToken: () => Promise<WorkloadTokenResponse>;
|
|
195
|
+
generateJWTAssertion: (scope?: string) => Promise<string>;
|
|
196
|
+
revokeToken: (token: string) => Promise<void>;
|
|
197
|
+
validateToken: (token: string, validation?: WorkloadConfig['validation']) => Promise<TokenValidationResult>;
|
|
198
|
+
getWorkload: (request: Request) => Promise<WorkloadIdentity | undefined>;
|
|
199
|
+
parseJWT: (token: string, validation?: WorkloadConfig['validation']) => Promise<JWTAssertionClaims>;
|
|
200
|
+
handler: (request: Request) => Promise<Response>;
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* Create a workload identity authentication instance
|
|
204
|
+
*
|
|
205
|
+
* @param config - Workload authentication configuration
|
|
206
|
+
* @returns Workload authentication interface
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```typescript
|
|
210
|
+
* import { workload } from '@enterprisestandard/react';
|
|
211
|
+
*
|
|
212
|
+
* const workloadAuth = workload({
|
|
213
|
+
* token_url: 'https://auth.example.com/oauth/token',
|
|
214
|
+
* jwks_uri: 'https://auth.example.com/.well-known/jwks.json',
|
|
215
|
+
* workload_id: 'spiffe://trust-domain/ns/service',
|
|
216
|
+
* audience: 'https://auth.example.com/oauth/token',
|
|
217
|
+
* private_key: '-----BEGIN PRIVATE KEY-----...',
|
|
218
|
+
* algorithm: 'RS256',
|
|
219
|
+
* });
|
|
220
|
+
*
|
|
221
|
+
* // Get access token
|
|
222
|
+
* const token = await workloadAuth.getToken('api:read api:write');
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
export declare function workload(config: WorkloadConfig): Workload;
|
|
226
|
+
export {};
|
|
227
|
+
//# sourceMappingURL=workload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workload.d.ts","sourceRoot":"","sources":["../src/workload.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enterprisestandard/react",
|
|
3
|
-
"version": "0.0.5-beta.
|
|
3
|
+
"version": "0.0.5-beta.20260114.1",
|
|
4
4
|
"description": "Enterprise Standard React Components",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "dist/index.js",
|
|
7
|
-
"scripts": {},
|
|
8
7
|
"types": "./dist/index.d.ts",
|
|
9
8
|
"exports": {
|
|
10
9
|
".": {
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
export interface EnterpriseUser {
|
|
2
|
-
schemas?: string[];
|
|
3
|
-
id?: string;
|
|
4
|
-
externalId?: string;
|
|
5
|
-
meta?: {
|
|
6
|
-
resourceType?: string;
|
|
7
|
-
created?: string;
|
|
8
|
-
lastModified?: string;
|
|
9
|
-
version?: string;
|
|
10
|
-
location?: string;
|
|
11
|
-
};
|
|
12
|
-
userName: string;
|
|
13
|
-
name: string;
|
|
14
|
-
fullName?: {
|
|
15
|
-
formatted?: string;
|
|
16
|
-
familyName?: string;
|
|
17
|
-
givenName?: string;
|
|
18
|
-
middleName?: string;
|
|
19
|
-
honorificPrefix?: string;
|
|
20
|
-
honorificSuffix?: string;
|
|
21
|
-
};
|
|
22
|
-
nickName?: string;
|
|
23
|
-
profileUrl?: string;
|
|
24
|
-
avatarUrl?: string;
|
|
25
|
-
title?: string;
|
|
26
|
-
userType?: string;
|
|
27
|
-
preferredLanguage?: string;
|
|
28
|
-
locale?: string;
|
|
29
|
-
timezone?: string;
|
|
30
|
-
active?: boolean;
|
|
31
|
-
password?: string;
|
|
32
|
-
email: string;
|
|
33
|
-
emails?: Array<{
|
|
34
|
-
value: string;
|
|
35
|
-
type?: string;
|
|
36
|
-
primary?: boolean;
|
|
37
|
-
display?: string;
|
|
38
|
-
}>;
|
|
39
|
-
phoneNumbers?: Array<{
|
|
40
|
-
value: string;
|
|
41
|
-
type?: string;
|
|
42
|
-
primary?: boolean;
|
|
43
|
-
display?: string;
|
|
44
|
-
}>;
|
|
45
|
-
ims?: Array<{
|
|
46
|
-
value: string;
|
|
47
|
-
type?: string;
|
|
48
|
-
primary?: boolean;
|
|
49
|
-
display?: string;
|
|
50
|
-
}>;
|
|
51
|
-
photos?: Array<{
|
|
52
|
-
value: string;
|
|
53
|
-
type?: string;
|
|
54
|
-
primary?: boolean;
|
|
55
|
-
display?: string;
|
|
56
|
-
}>;
|
|
57
|
-
addresses?: Array<{
|
|
58
|
-
formatted?: string;
|
|
59
|
-
streetAddress?: string;
|
|
60
|
-
locality?: string;
|
|
61
|
-
region?: string;
|
|
62
|
-
postalCode?: string;
|
|
63
|
-
country?: string;
|
|
64
|
-
type?: string;
|
|
65
|
-
primary?: boolean;
|
|
66
|
-
}>;
|
|
67
|
-
groups?: Array<{
|
|
68
|
-
value: string;
|
|
69
|
-
$ref?: string;
|
|
70
|
-
display?: string;
|
|
71
|
-
type?: string;
|
|
72
|
-
}>;
|
|
73
|
-
entitlements?: Array<{
|
|
74
|
-
value: string;
|
|
75
|
-
display?: string;
|
|
76
|
-
type?: string;
|
|
77
|
-
primary?: boolean;
|
|
78
|
-
}>;
|
|
79
|
-
roles?: Array<{
|
|
80
|
-
value: string;
|
|
81
|
-
display?: string;
|
|
82
|
-
type?: string;
|
|
83
|
-
primary?: boolean;
|
|
84
|
-
}>;
|
|
85
|
-
x509Certificates?: Array<{
|
|
86
|
-
value: string;
|
|
87
|
-
display?: string;
|
|
88
|
-
type?: string;
|
|
89
|
-
primary?: boolean;
|
|
90
|
-
}>;
|
|
91
|
-
employeeNumber?: string;
|
|
92
|
-
costCenter?: string;
|
|
93
|
-
organization?: string;
|
|
94
|
-
division?: string;
|
|
95
|
-
department?: string;
|
|
96
|
-
manager?: {
|
|
97
|
-
value: string;
|
|
98
|
-
$ref?: string;
|
|
99
|
-
displayName?: string;
|
|
100
|
-
};
|
|
101
|
-
sso?: {
|
|
102
|
-
profile: IdTokenClaims;
|
|
103
|
-
tenant: {
|
|
104
|
-
id: string;
|
|
105
|
-
name: string;
|
|
106
|
-
};
|
|
107
|
-
scope?: string;
|
|
108
|
-
tokenType: string;
|
|
109
|
-
sessionState?: string;
|
|
110
|
-
expires: Date;
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
export type IdTokenClaims = {
|
|
114
|
-
iss?: string;
|
|
115
|
-
aud?: string;
|
|
116
|
-
exp?: number;
|
|
117
|
-
iat?: number;
|
|
118
|
-
sub?: string;
|
|
119
|
-
sid?: string;
|
|
120
|
-
name?: string;
|
|
121
|
-
email?: string;
|
|
122
|
-
preferred_username?: string;
|
|
123
|
-
picture?: string;
|
|
124
|
-
[key: string]: unknown;
|
|
125
|
-
};
|
|
126
|
-
//# sourceMappingURL=enterprise-user.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enterprise-user.d.ts","sourceRoot":"","sources":["../src/enterprise-user.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oidc-schema.d.ts","sourceRoot":"","sources":["../src/oidc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAoHhH;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAmJ5G;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAsD5G"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scim-schema.d.ts","sourceRoot":"","sources":["../src/scim-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE;QACR;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE;QACL,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B;;OAEG;IACH,GAAG,CAAC,EAAE,KAAK,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH;;OAEG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf;;OAEG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC;;OAEG;IACH,4DAA4D,CAAC,EAAE,cAAc,CAAC;IAC9E;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAqYD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAgG1F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"standard-schema.d.ts","sourceRoot":"","sources":["../src/standard-schema.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IAC/D,sCAAsC;IACtC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC7D;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,gDAAgD;IAChD,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QACpD,0CAA0C;QAC1C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,6CAA6C;QAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,sCAAsC;QACtC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAChF,iDAAiD;QACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;KACnD;IAED,qDAAqD;IACrD,KAAY,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;IAEnE,mDAAmD;IACnD,UAAiB,aAAa,CAAC,MAAM;QACnC,8BAA8B;QAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,+BAA+B;QAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;KAC7B;IAED,gDAAgD;IAChD,UAAiB,aAAa;QAC5B,uCAAuC;QACvC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,iDAAiD;IACjD,UAAiB,KAAK;QACpB,sCAAsC;QACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,qCAAqC;QACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;KACtE;IAED,+CAA+C;IAC/C,UAAiB,WAAW;QAC1B,2CAA2C;QAC3C,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;KAC3B;IAED,2CAA2C;IAC3C,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QACpD,oCAAoC;QACpC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QACtB,qCAAqC;QACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB;IAED,kDAAkD;IAClD,KAAY,UAAU,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAE7G,mDAAmD;IACnD,KAAY,WAAW,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAChH"}
|
|
File without changes
|
|
File without changes
|