@enterprisestandard/esv 0.0.5-beta.20260115.3 → 0.0.5-beta.20260115.4
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/iam/index.d.ts +8 -5
- package/dist/iam/index.js +5755 -664
- package/dist/iam/index.js.map +1 -1
- package/dist/index.d.ts +90 -10
- package/dist/index.js +6897 -152
- package/dist/index.js.map +1 -1
- package/dist/runner.d.ts +0 -36
- package/dist/runner.js +11407 -283
- package/dist/runner.js.map +1 -1
- package/dist/server/index.d.ts +88 -14
- package/dist/server/index.js +1387 -33
- package/dist/server/index.js.map +1 -1
- package/dist/sso/index.d.ts +8 -5
- package/dist/sso/index.js +365 -357
- package/dist/sso/index.js.map +1 -1
- package/dist/{types.d.ts → types-Bn1pr_xY.d.ts} +13 -11
- package/dist/workload/index.d.ts +8 -5
- package/dist/workload/index.js +393 -403
- package/dist/workload/index.js.map +1 -1
- package/package.json +2 -4
- package/dist/iam/index.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/runner.d.ts.map +0 -1
- package/dist/server/crypto.d.ts +0 -46
- package/dist/server/crypto.d.ts.map +0 -1
- package/dist/server/crypto.js +0 -134
- package/dist/server/crypto.js.map +0 -1
- package/dist/server/iam.d.ts +0 -11
- package/dist/server/iam.d.ts.map +0 -1
- package/dist/server/iam.js +0 -402
- package/dist/server/iam.js.map +0 -1
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/server.d.ts +0 -66
- package/dist/server/server.d.ts.map +0 -1
- package/dist/server/server.js +0 -223
- package/dist/server/server.js.map +0 -1
- package/dist/server/sso.d.ts +0 -11
- package/dist/server/sso.d.ts.map +0 -1
- package/dist/server/sso.js +0 -428
- package/dist/server/sso.js.map +0 -1
- package/dist/server/state.d.ts +0 -137
- package/dist/server/state.d.ts.map +0 -1
- package/dist/server/state.js +0 -152
- package/dist/server/state.js.map +0 -1
- package/dist/server/vault.d.ts +0 -11
- package/dist/server/vault.d.ts.map +0 -1
- package/dist/server/vault.js +0 -92
- package/dist/server/vault.js.map +0 -1
- package/dist/server/workload.d.ts +0 -19
- package/dist/server/workload.d.ts.map +0 -1
- package/dist/server/workload.js +0 -226
- package/dist/server/workload.js.map +0 -1
- package/dist/sso/index.d.ts.map +0 -1
- package/dist/tenant/index.d.ts +0 -17
- package/dist/tenant/index.d.ts.map +0 -1
- package/dist/tenant/index.js +0 -300
- package/dist/tenant/index.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -75
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -139
- package/dist/utils.js.map +0 -1
- package/dist/workload/index.d.ts.map +0 -1
package/dist/server/workload.js
DELETED
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workload Identity endpoint handlers for the ESV mock server
|
|
3
|
-
*
|
|
4
|
-
* Implements OAuth2 client credentials and JWT bearer grant for workload identity.
|
|
5
|
-
*/
|
|
6
|
-
import { getJwks, signJwt, verifyJwt } from './crypto.js';
|
|
7
|
-
const ISSUER = 'http://localhost:3555/workload';
|
|
8
|
-
const TOKEN_EXPIRY = 3600; // 1 hour
|
|
9
|
-
// Valid client credentials for testing
|
|
10
|
-
const VALID_CLIENTS = {
|
|
11
|
-
'local-workload-client': 'local-workload-secret',
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Parse request body as URL-encoded form data
|
|
15
|
-
*/
|
|
16
|
-
async function parseFormBody(req) {
|
|
17
|
-
return new Promise((resolve, reject) => {
|
|
18
|
-
let body = '';
|
|
19
|
-
req.on('data', (chunk) => {
|
|
20
|
-
body += chunk.toString();
|
|
21
|
-
});
|
|
22
|
-
req.on('end', () => {
|
|
23
|
-
resolve(new URLSearchParams(body));
|
|
24
|
-
});
|
|
25
|
-
req.on('error', reject);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Handle workload requests
|
|
30
|
-
*/
|
|
31
|
-
export async function handleWorkloadRequest(req, res, pathname) {
|
|
32
|
-
// Remove /workload prefix
|
|
33
|
-
const workloadPath = pathname.replace(/^\/workload/, '');
|
|
34
|
-
// POST /workload/token - Token endpoint
|
|
35
|
-
if (req.method === 'POST' && workloadPath === '/token') {
|
|
36
|
-
await handleToken(req, res);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
// GET /workload/certs - JWKS endpoint
|
|
40
|
-
if (req.method === 'GET' && workloadPath === '/certs') {
|
|
41
|
-
handleCerts(res);
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
// POST /workload/validate - Token validation endpoint (for testing)
|
|
45
|
-
if (req.method === 'POST' && workloadPath === '/validate') {
|
|
46
|
-
handleValidate(req, res);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
res.writeHead(404, { 'Content-Type': 'application/json' });
|
|
50
|
-
res.end(JSON.stringify({ error: 'not_found' }));
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Token endpoint - issues access tokens for client credentials or JWT bearer
|
|
54
|
-
*/
|
|
55
|
-
async function handleToken(req, res) {
|
|
56
|
-
const body = await parseFormBody(req);
|
|
57
|
-
const grantType = body.get('grant_type');
|
|
58
|
-
if (grantType === 'client_credentials') {
|
|
59
|
-
handleClientCredentials(body, res);
|
|
60
|
-
}
|
|
61
|
-
else if (grantType === 'urn:ietf:params:oauth:grant-type:jwt-bearer') {
|
|
62
|
-
handleJwtBearer(body, res);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
res.writeHead(400, { 'Content-Type': 'application/json' });
|
|
66
|
-
res.end(JSON.stringify({
|
|
67
|
-
error: 'unsupported_grant_type',
|
|
68
|
-
error_description: 'Only client_credentials and jwt-bearer are supported',
|
|
69
|
-
}));
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Handle client credentials grant
|
|
74
|
-
*/
|
|
75
|
-
function handleClientCredentials(body, res) {
|
|
76
|
-
const clientId = body.get('client_id');
|
|
77
|
-
const clientSecret = body.get('client_secret');
|
|
78
|
-
const scope = body.get('scope') || '';
|
|
79
|
-
if (!clientId || !clientSecret) {
|
|
80
|
-
res.writeHead(400, { 'Content-Type': 'application/json' });
|
|
81
|
-
res.end(JSON.stringify({
|
|
82
|
-
error: 'invalid_request',
|
|
83
|
-
error_description: 'Missing client_id or client_secret',
|
|
84
|
-
}));
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
// Validate credentials
|
|
88
|
-
const expectedSecret = VALID_CLIENTS[clientId];
|
|
89
|
-
if (!expectedSecret || expectedSecret !== clientSecret) {
|
|
90
|
-
res.writeHead(401, { 'Content-Type': 'application/json' });
|
|
91
|
-
res.end(JSON.stringify({
|
|
92
|
-
error: 'invalid_client',
|
|
93
|
-
error_description: 'Invalid client credentials',
|
|
94
|
-
}));
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
// Generate access token
|
|
98
|
-
const accessTokenClaims = {
|
|
99
|
-
iss: ISSUER,
|
|
100
|
-
sub: clientId,
|
|
101
|
-
aud: ISSUER,
|
|
102
|
-
client_id: clientId,
|
|
103
|
-
scope,
|
|
104
|
-
};
|
|
105
|
-
const accessToken = signJwt(accessTokenClaims, TOKEN_EXPIRY);
|
|
106
|
-
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
107
|
-
res.end(JSON.stringify({
|
|
108
|
-
access_token: accessToken,
|
|
109
|
-
token_type: 'Bearer',
|
|
110
|
-
expires_in: TOKEN_EXPIRY,
|
|
111
|
-
scope,
|
|
112
|
-
}));
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Handle JWT bearer grant
|
|
116
|
-
*/
|
|
117
|
-
function handleJwtBearer(body, res) {
|
|
118
|
-
const assertion = body.get('assertion');
|
|
119
|
-
const scope = body.get('scope') || '';
|
|
120
|
-
if (!assertion) {
|
|
121
|
-
res.writeHead(400, { 'Content-Type': 'application/json' });
|
|
122
|
-
res.end(JSON.stringify({
|
|
123
|
-
error: 'invalid_request',
|
|
124
|
-
error_description: 'Missing assertion',
|
|
125
|
-
}));
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
// Verify the JWT assertion
|
|
129
|
-
const result = verifyJwt(assertion);
|
|
130
|
-
if (!result.valid) {
|
|
131
|
-
res.writeHead(400, { 'Content-Type': 'application/json' });
|
|
132
|
-
res.end(JSON.stringify({
|
|
133
|
-
error: 'invalid_grant',
|
|
134
|
-
error_description: result.error || 'Invalid JWT assertion',
|
|
135
|
-
}));
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
// Extract workload ID from assertion
|
|
139
|
-
const workloadId = result.payload?.sub;
|
|
140
|
-
// Generate access token
|
|
141
|
-
const accessTokenClaims = {
|
|
142
|
-
iss: ISSUER,
|
|
143
|
-
sub: workloadId,
|
|
144
|
-
aud: ISSUER,
|
|
145
|
-
workload_id: workloadId,
|
|
146
|
-
scope: scope || result.payload?.scope || '',
|
|
147
|
-
};
|
|
148
|
-
const accessToken = signJwt(accessTokenClaims, TOKEN_EXPIRY);
|
|
149
|
-
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
150
|
-
res.end(JSON.stringify({
|
|
151
|
-
access_token: accessToken,
|
|
152
|
-
token_type: 'Bearer',
|
|
153
|
-
expires_in: TOKEN_EXPIRY,
|
|
154
|
-
scope: accessTokenClaims.scope,
|
|
155
|
-
}));
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* JWKS endpoint
|
|
159
|
-
*/
|
|
160
|
-
function handleCerts(res) {
|
|
161
|
-
const jwks = getJwks();
|
|
162
|
-
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
163
|
-
res.end(JSON.stringify(jwks));
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Token validation endpoint (for testing)
|
|
167
|
-
*/
|
|
168
|
-
function handleValidate(req, res) {
|
|
169
|
-
const authHeader = req.headers.authorization;
|
|
170
|
-
if (!authHeader || !authHeader.startsWith('Bearer ')) {
|
|
171
|
-
res.writeHead(401, { 'Content-Type': 'application/json' });
|
|
172
|
-
res.end(JSON.stringify({
|
|
173
|
-
valid: false,
|
|
174
|
-
error: 'Missing Authorization header',
|
|
175
|
-
}));
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
178
|
-
const token = authHeader.substring(7);
|
|
179
|
-
const result = verifyJwt(token);
|
|
180
|
-
if (!result.valid) {
|
|
181
|
-
res.writeHead(401, { 'Content-Type': 'application/json' });
|
|
182
|
-
res.end(JSON.stringify({
|
|
183
|
-
valid: false,
|
|
184
|
-
error: result.error,
|
|
185
|
-
}));
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
189
|
-
res.end(JSON.stringify({
|
|
190
|
-
valid: true,
|
|
191
|
-
claims: result.payload,
|
|
192
|
-
expiresAt: result.payload?.exp ? new Date(result.payload.exp * 1000).toISOString() : undefined,
|
|
193
|
-
}));
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Mock /api/whoami endpoint for testing workload authentication
|
|
197
|
-
*
|
|
198
|
-
* This endpoint validates workload tokens and returns the workload identity,
|
|
199
|
-
* allowing applications to be tested independently without requiring
|
|
200
|
-
* another application to be running.
|
|
201
|
-
*/
|
|
202
|
-
export function handleWhoamiRequest(req, res) {
|
|
203
|
-
const authHeader = req.headers.authorization;
|
|
204
|
-
if (!authHeader || !authHeader.startsWith('Bearer ')) {
|
|
205
|
-
res.writeHead(401, { 'Content-Type': 'application/json' });
|
|
206
|
-
res.end(JSON.stringify({ error: 'Unauthorized' }));
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
const token = authHeader.substring(7);
|
|
210
|
-
const result = verifyJwt(token);
|
|
211
|
-
if (!result.valid) {
|
|
212
|
-
res.writeHead(401, { 'Content-Type': 'application/json' });
|
|
213
|
-
res.end(JSON.stringify({ error: 'Invalid token', details: result.error }));
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
217
|
-
res.end(JSON.stringify({
|
|
218
|
-
user: null,
|
|
219
|
-
workload: {
|
|
220
|
-
workload_id: result.payload?.sub,
|
|
221
|
-
client_id: result.payload?.client_id,
|
|
222
|
-
scope: result.payload?.scope,
|
|
223
|
-
},
|
|
224
|
-
}));
|
|
225
|
-
}
|
|
226
|
-
//# sourceMappingURL=workload.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workload.js","sourceRoot":"","sources":["../../src/server/workload.ts"],"names":[],"mappings":"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"}
|
package/dist/sso/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sso/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAoB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA2VtG;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAkC7F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,mBAAmB;;;8BA6ClC,KAAK,CAAC,OAAO,CAAC;iCASX,KAAK,CAAC,OAAO,CAAC;4CASH,KAAK,CAAC,OAAO,CAAC;;EAYnD;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
|
package/dist/tenant/index.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tenant Validation Tests
|
|
3
|
-
*
|
|
4
|
-
* These tests validate that an application correctly implements
|
|
5
|
-
* Enterprise Standard Tenant Management functionality.
|
|
6
|
-
*/
|
|
7
|
-
import type { TenantValidationConfig, TestDef, ValidationSuiteResult } from '../types';
|
|
8
|
-
/**
|
|
9
|
-
* Runs all Tenant validation tests
|
|
10
|
-
*/
|
|
11
|
-
export declare function validateTenant(config: TenantValidationConfig): Promise<ValidationSuiteResult>;
|
|
12
|
-
/**
|
|
13
|
-
* Creates Vitest-compatible test suite for Tenant validation
|
|
14
|
-
*/
|
|
15
|
-
export declare function createTenantTests(config: TenantValidationConfig): Array<TestDef>;
|
|
16
|
-
export type { TenantValidationConfig };
|
|
17
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tenant/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAoB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAkRzG;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAiDnG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,GAAG,KAAK,CAAC,OAAO,CAAC,CA4ChF;AAED,YAAY,EAAE,sBAAsB,EAAE,CAAC"}
|
package/dist/tenant/index.js
DELETED
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tenant Validation Tests
|
|
3
|
-
*
|
|
4
|
-
* These tests validate that an application correctly implements
|
|
5
|
-
* Enterprise Standard Tenant Management functionality.
|
|
6
|
-
*/
|
|
7
|
-
import { assert, assertValid, createFetcher, runTest } from '../utils.js';
|
|
8
|
-
/**
|
|
9
|
-
* Gets a tenant response validator
|
|
10
|
-
* Requires either @enterprisestandard/react-validators-valibot or @enterprisestandard/react-validators-zod to be installed
|
|
11
|
-
* Uses a cached validator to avoid repeated imports
|
|
12
|
-
*/
|
|
13
|
-
let cachedValidator = null;
|
|
14
|
-
let validatorPromise = null;
|
|
15
|
-
async function getTenantResponseValidator() {
|
|
16
|
-
// Return cached validator if available
|
|
17
|
-
if (cachedValidator) {
|
|
18
|
-
return cachedValidator;
|
|
19
|
-
}
|
|
20
|
-
// If we're already loading, return the existing promise
|
|
21
|
-
if (validatorPromise) {
|
|
22
|
-
return validatorPromise;
|
|
23
|
-
}
|
|
24
|
-
// Start loading the validator
|
|
25
|
-
validatorPromise = (async () => {
|
|
26
|
-
// Try valibot first
|
|
27
|
-
try {
|
|
28
|
-
const { valibotValidators } = await import('@enterprisestandard/react-validators-valibot');
|
|
29
|
-
cachedValidator = valibotValidators.createTenantResponse();
|
|
30
|
-
return cachedValidator;
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
// Fall back to zod
|
|
34
|
-
try {
|
|
35
|
-
const { zodValidators } = await import('@enterprisestandard/react-validators-zod');
|
|
36
|
-
cachedValidator = zodValidators.createTenantResponse();
|
|
37
|
-
return cachedValidator;
|
|
38
|
-
}
|
|
39
|
-
catch (_error) {
|
|
40
|
-
throw new Error('Tenant validation requires either @enterprisestandard/react-validators-valibot or @enterprisestandard/react-validators-zod to be installed. Please install one of these packages.');
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
})();
|
|
44
|
-
return validatorPromise;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Default configuration for Tenant validation
|
|
48
|
-
*/
|
|
49
|
-
const DEFAULT_CONFIG = {
|
|
50
|
-
tenantPath: '/api/tenant',
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* Test: Tenant creation endpoint returns valid response structure
|
|
54
|
-
*/
|
|
55
|
-
async function testCreateTenantResponseShape(config, fetch, tenantData, webhookUrl) {
|
|
56
|
-
const result = await runTest('Tenant Creation Response Shape', async () => {
|
|
57
|
-
if (!tenantData) {
|
|
58
|
-
return {
|
|
59
|
-
details: {
|
|
60
|
-
skipped: true,
|
|
61
|
-
reason: 'Test tenant data not provided',
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
const payload = {
|
|
66
|
-
appId: tenantData.appId,
|
|
67
|
-
companyId: tenantData.companyId,
|
|
68
|
-
companyName: tenantData.companyName,
|
|
69
|
-
environmentType: tenantData.environmentType,
|
|
70
|
-
email: tenantData.email,
|
|
71
|
-
webhookUrl: webhookUrl || 'https://example.com/webhook',
|
|
72
|
-
};
|
|
73
|
-
const response = await fetch(config.tenantPath, {
|
|
74
|
-
method: 'POST',
|
|
75
|
-
headers: {
|
|
76
|
-
'Content-Type': 'application/json',
|
|
77
|
-
},
|
|
78
|
-
body: JSON.stringify(payload),
|
|
79
|
-
});
|
|
80
|
-
// Should return 201 or 202
|
|
81
|
-
assert(response.status === 201 || response.status === 202, `Expected 201 or 202, got ${response.status}`);
|
|
82
|
-
const data = await response.json();
|
|
83
|
-
// Should have tenant response structure - validate using validator
|
|
84
|
-
const validator = await getTenantResponseValidator();
|
|
85
|
-
assertValid(data, validator);
|
|
86
|
-
return {
|
|
87
|
-
details: {
|
|
88
|
-
status: data.status,
|
|
89
|
-
httpStatus: response.status,
|
|
90
|
-
tenantUrl: data.tenantUrl,
|
|
91
|
-
response: data,
|
|
92
|
-
},
|
|
93
|
-
};
|
|
94
|
-
});
|
|
95
|
-
return {
|
|
96
|
-
...result,
|
|
97
|
-
response: result.details?.response,
|
|
98
|
-
tenantUrl: result.details?.tenantUrl,
|
|
99
|
-
status: result.details?.status,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Test: Tenant creation with immediate completion (201)
|
|
104
|
-
*/
|
|
105
|
-
async function testCreateTenantImmediate(config, fetch, tenantData) {
|
|
106
|
-
return runTest('Tenant Creation (Immediate - 201)', async () => {
|
|
107
|
-
if (!tenantData) {
|
|
108
|
-
return {
|
|
109
|
-
details: {
|
|
110
|
-
skipped: true,
|
|
111
|
-
reason: 'Test tenant data not provided',
|
|
112
|
-
},
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
const payload = {
|
|
116
|
-
appId: tenantData.appId,
|
|
117
|
-
companyId: tenantData.companyId,
|
|
118
|
-
companyName: tenantData.companyName,
|
|
119
|
-
environmentType: tenantData.environmentType,
|
|
120
|
-
email: tenantData.email,
|
|
121
|
-
webhookUrl: 'https://example.com/webhook',
|
|
122
|
-
};
|
|
123
|
-
const response = await fetch(config.tenantPath, {
|
|
124
|
-
method: 'POST',
|
|
125
|
-
headers: {
|
|
126
|
-
'Content-Type': 'application/json',
|
|
127
|
-
},
|
|
128
|
-
body: JSON.stringify(payload),
|
|
129
|
-
});
|
|
130
|
-
// For immediate creation, we expect either 201 or 202
|
|
131
|
-
// 201 indicates completed, 202 indicates pending/async
|
|
132
|
-
assert(response.status === 201 || response.status === 202, `Expected 201 or 202, got ${response.status}`);
|
|
133
|
-
const data = await response.json();
|
|
134
|
-
// Should have tenant response structure - validate using validator
|
|
135
|
-
const validator = await getTenantResponseValidator();
|
|
136
|
-
assertValid(data, validator);
|
|
137
|
-
// If status is 201, status should be "completed"
|
|
138
|
-
if (response.status === 201) {
|
|
139
|
-
assert(data.status === 'completed', `Expected status "completed" for 201 response, got ${data.status}`);
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
details: {
|
|
143
|
-
httpStatus: response.status,
|
|
144
|
-
status: data.status,
|
|
145
|
-
tenantUrl: data.tenantUrl,
|
|
146
|
-
},
|
|
147
|
-
};
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Test: Tenant creation with async processing (202)
|
|
152
|
-
*/
|
|
153
|
-
async function testCreateTenantAsync(config, fetch, tenantData, webhookUrl) {
|
|
154
|
-
return runTest('Tenant Creation (Async - 202)', async () => {
|
|
155
|
-
if (!tenantData) {
|
|
156
|
-
return {
|
|
157
|
-
details: {
|
|
158
|
-
skipped: true,
|
|
159
|
-
reason: 'Test tenant data not provided',
|
|
160
|
-
},
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
const payload = {
|
|
164
|
-
appId: tenantData.appId,
|
|
165
|
-
companyId: tenantData.companyId,
|
|
166
|
-
companyName: tenantData.companyName,
|
|
167
|
-
environmentType: tenantData.environmentType,
|
|
168
|
-
email: tenantData.email,
|
|
169
|
-
webhookUrl: webhookUrl || 'https://example.com/webhook',
|
|
170
|
-
};
|
|
171
|
-
const response = await fetch(config.tenantPath, {
|
|
172
|
-
method: 'POST',
|
|
173
|
-
headers: {
|
|
174
|
-
'Content-Type': 'application/json',
|
|
175
|
-
},
|
|
176
|
-
body: JSON.stringify(payload),
|
|
177
|
-
});
|
|
178
|
-
// For async creation, we expect 202
|
|
179
|
-
// But we also accept 201 (some apps may complete immediately)
|
|
180
|
-
assert(response.status === 201 || response.status === 202, `Expected 201 or 202, got ${response.status}`);
|
|
181
|
-
const data = await response.json();
|
|
182
|
-
// Should have tenant response structure - validate using validator
|
|
183
|
-
const validator = await getTenantResponseValidator();
|
|
184
|
-
assertValid(data, validator);
|
|
185
|
-
// If status is 202, status should be "pending" or "processing"
|
|
186
|
-
if (response.status === 202) {
|
|
187
|
-
assert(data.status === 'pending' || data.status === 'processing', `Expected status "pending" or "processing" for 202 response, got ${data.status}`);
|
|
188
|
-
}
|
|
189
|
-
return {
|
|
190
|
-
details: {
|
|
191
|
-
httpStatus: response.status,
|
|
192
|
-
status: data.status,
|
|
193
|
-
tenantUrl: data.tenantUrl,
|
|
194
|
-
isAsync: response.status === 202,
|
|
195
|
-
},
|
|
196
|
-
};
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Test: Tenant creation endpoint validates required fields
|
|
201
|
-
*/
|
|
202
|
-
async function testCreateTenantValidation(config, fetch) {
|
|
203
|
-
return runTest('Tenant Creation (Validation)', async () => {
|
|
204
|
-
// Test with missing required fields
|
|
205
|
-
const invalidPayload = {
|
|
206
|
-
companyId: 'test-company',
|
|
207
|
-
// Missing other required fields
|
|
208
|
-
};
|
|
209
|
-
const response = await fetch(config.tenantPath, {
|
|
210
|
-
method: 'POST',
|
|
211
|
-
headers: {
|
|
212
|
-
'Content-Type': 'application/json',
|
|
213
|
-
},
|
|
214
|
-
body: JSON.stringify(invalidPayload),
|
|
215
|
-
});
|
|
216
|
-
// Should return 400 for invalid request
|
|
217
|
-
assert(response.status === 400, `Expected 400 Bad Request for invalid payload, got ${response.status}`);
|
|
218
|
-
return {
|
|
219
|
-
details: {
|
|
220
|
-
status: response.status,
|
|
221
|
-
},
|
|
222
|
-
};
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Runs all Tenant validation tests
|
|
227
|
-
*/
|
|
228
|
-
export async function validateTenant(config) {
|
|
229
|
-
const startTime = performance.now();
|
|
230
|
-
const mergedConfig = { ...DEFAULT_CONFIG, ...config };
|
|
231
|
-
const fetch = createFetcher(mergedConfig);
|
|
232
|
-
const tests = [];
|
|
233
|
-
// Test validation (invalid payload)
|
|
234
|
-
tests.push(await testCreateTenantValidation(mergedConfig, fetch));
|
|
235
|
-
// Test response shape and get response data
|
|
236
|
-
const shapeResult = await testCreateTenantResponseShape(mergedConfig, fetch, mergedConfig.testTenantData, mergedConfig.webhookPath ? `${mergedConfig.baseUrl}${mergedConfig.webhookPath}` : undefined);
|
|
237
|
-
tests.push(shapeResult);
|
|
238
|
-
// Test immediate creation (201)
|
|
239
|
-
tests.push(await testCreateTenantImmediate(mergedConfig, fetch, mergedConfig.testTenantData));
|
|
240
|
-
// Test async creation (202)
|
|
241
|
-
tests.push(await testCreateTenantAsync(mergedConfig, fetch, mergedConfig.testTenantData, mergedConfig.webhookPath ? `${mergedConfig.baseUrl}${mergedConfig.webhookPath}` : undefined));
|
|
242
|
-
const duration = performance.now() - startTime;
|
|
243
|
-
const passed = tests.filter((t) => t.passed).length;
|
|
244
|
-
const failed = tests.filter((t) => !t.passed).length;
|
|
245
|
-
const skipped = tests.filter((t) => t.details?.skipped).length;
|
|
246
|
-
return {
|
|
247
|
-
suite: 'Tenant',
|
|
248
|
-
passed: failed === 0,
|
|
249
|
-
tests,
|
|
250
|
-
duration,
|
|
251
|
-
summary: {
|
|
252
|
-
total: tests.length,
|
|
253
|
-
passed: passed - skipped,
|
|
254
|
-
failed,
|
|
255
|
-
skipped,
|
|
256
|
-
},
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Creates Vitest-compatible test suite for Tenant validation
|
|
261
|
-
*/
|
|
262
|
-
export function createTenantTests(config) {
|
|
263
|
-
const mergedConfig = { ...DEFAULT_CONFIG, ...config };
|
|
264
|
-
const fetch = createFetcher(mergedConfig);
|
|
265
|
-
return [
|
|
266
|
-
{
|
|
267
|
-
name: 'tenant creation endpoint validates required fields',
|
|
268
|
-
fn: async () => {
|
|
269
|
-
const result = await testCreateTenantValidation(mergedConfig, fetch);
|
|
270
|
-
if (!result.passed)
|
|
271
|
-
throw new Error(result.error);
|
|
272
|
-
},
|
|
273
|
-
},
|
|
274
|
-
{
|
|
275
|
-
name: 'tenant creation returns valid response structure',
|
|
276
|
-
fn: async () => {
|
|
277
|
-
const result = await testCreateTenantResponseShape(mergedConfig, fetch, mergedConfig.testTenantData, mergedConfig.webhookPath ? `${mergedConfig.baseUrl}${mergedConfig.webhookPath}` : undefined);
|
|
278
|
-
if (!result.passed && !result.details?.skipped)
|
|
279
|
-
throw new Error(result.error);
|
|
280
|
-
},
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
name: 'tenant creation supports immediate completion (201)',
|
|
284
|
-
fn: async () => {
|
|
285
|
-
const result = await testCreateTenantImmediate(mergedConfig, fetch, mergedConfig.testTenantData);
|
|
286
|
-
if (!result.passed && !result.details?.skipped)
|
|
287
|
-
throw new Error(result.error);
|
|
288
|
-
},
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
name: 'tenant creation supports async processing (202)',
|
|
292
|
-
fn: async () => {
|
|
293
|
-
const result = await testCreateTenantAsync(mergedConfig, fetch, mergedConfig.testTenantData, mergedConfig.webhookPath ? `${mergedConfig.baseUrl}${mergedConfig.webhookPath}` : undefined);
|
|
294
|
-
if (!result.passed && !result.details?.skipped)
|
|
295
|
-
throw new Error(result.error);
|
|
296
|
-
},
|
|
297
|
-
},
|
|
298
|
-
];
|
|
299
|
-
}
|
|
300
|
-
//# sourceMappingURL=index.js.map
|
package/dist/tenant/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tenant/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/utils.d.ts
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utility functions for Enterprise Standard Validator
|
|
3
|
-
*/
|
|
4
|
-
import type { ValidationConfig, ValidationResult } from './types';
|
|
5
|
-
type StandardSchemaV1 = {
|
|
6
|
-
readonly '~standard': {
|
|
7
|
-
readonly validate: (value: unknown) => {
|
|
8
|
-
value: unknown;
|
|
9
|
-
} | {
|
|
10
|
-
issues: ReadonlyArray<{
|
|
11
|
-
message: string;
|
|
12
|
-
path?: ReadonlyArray<PropertyKey>;
|
|
13
|
-
}>;
|
|
14
|
-
} | Promise<{
|
|
15
|
-
value: unknown;
|
|
16
|
-
} | {
|
|
17
|
-
issues: ReadonlyArray<{
|
|
18
|
-
message: string;
|
|
19
|
-
path?: ReadonlyArray<PropertyKey>;
|
|
20
|
-
}>;
|
|
21
|
-
}>;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Creates a fetch function with default configuration
|
|
26
|
-
*/
|
|
27
|
-
export declare function createFetcher(config: ValidationConfig): (path: string, options?: RequestInit) => Promise<Response>;
|
|
28
|
-
/**
|
|
29
|
-
* Wraps a test function to capture timing and errors
|
|
30
|
-
*/
|
|
31
|
-
export declare function runTest(name: string, testFn: () => Promise<undefined | {
|
|
32
|
-
details?: Record<string, unknown>;
|
|
33
|
-
}>): Promise<ValidationResult>;
|
|
34
|
-
/**
|
|
35
|
-
* Creates a skipped test result
|
|
36
|
-
*/
|
|
37
|
-
export declare function skipTest(name: string, reason: string): ValidationResult;
|
|
38
|
-
/**
|
|
39
|
-
* Assertion helper for tests
|
|
40
|
-
*/
|
|
41
|
-
export declare function assert(condition: boolean, message: string): asserts condition;
|
|
42
|
-
/**
|
|
43
|
-
* Assertion helper for equality
|
|
44
|
-
*/
|
|
45
|
-
export declare function assertEqual<T>(actual: T, expected: T, message?: string): void;
|
|
46
|
-
/**
|
|
47
|
-
* Assertion helper for validating data against a StandardSchemaV1 validator
|
|
48
|
-
*
|
|
49
|
-
* This is the preferred way to validate data when you have a validator available.
|
|
50
|
-
* The validator can be from valibot, zod, or any other library that implements StandardSchemaV1.
|
|
51
|
-
*
|
|
52
|
-
* @param data - The data to validate
|
|
53
|
-
* @param validator - A StandardSchemaV1 validator (e.g., from valibotValidators or zodValidators)
|
|
54
|
-
* @param message - Optional custom error message
|
|
55
|
-
*
|
|
56
|
-
* @example
|
|
57
|
-
* ```typescript
|
|
58
|
-
* import { valibotValidators } from '@enterprisestandard/react-validators-valibot';
|
|
59
|
-
* const tenantValidator = valibotValidators.createTenantResponse();
|
|
60
|
-
* assertValid(data, tenantValidator);
|
|
61
|
-
* ```
|
|
62
|
-
*
|
|
63
|
-
* @throws Error if validation fails
|
|
64
|
-
*/
|
|
65
|
-
export declare function assertValid(data: unknown, validator: StandardSchemaV1, message?: string): void;
|
|
66
|
-
/**
|
|
67
|
-
* Parses cookies from a Set-Cookie header
|
|
68
|
-
*/
|
|
69
|
-
export declare function parseCookies(headers: Headers): Map<string, string>;
|
|
70
|
-
/**
|
|
71
|
-
* Builds a cookie header string from a map
|
|
72
|
-
*/
|
|
73
|
-
export declare function buildCookieHeader(cookies: Map<string, string>): string;
|
|
74
|
-
export {};
|
|
75
|
-
//# sourceMappingURL=utils.d.ts.map
|