@enterprisestandard/esv 0.0.5-beta.20260115.2 → 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.
Files changed (65) hide show
  1. package/dist/iam/index.d.ts +8 -5
  2. package/dist/iam/index.js +5755 -664
  3. package/dist/iam/index.js.map +1 -1
  4. package/dist/index.d.ts +90 -10
  5. package/dist/index.js +6897 -152
  6. package/dist/index.js.map +1 -1
  7. package/dist/runner.d.ts +0 -36
  8. package/dist/runner.js +11407 -283
  9. package/dist/runner.js.map +1 -1
  10. package/dist/server/index.d.ts +88 -14
  11. package/dist/server/index.js +1387 -33
  12. package/dist/server/index.js.map +1 -1
  13. package/dist/sso/index.d.ts +8 -5
  14. package/dist/sso/index.js +365 -357
  15. package/dist/sso/index.js.map +1 -1
  16. package/dist/{types.d.ts → types-Bn1pr_xY.d.ts} +13 -11
  17. package/dist/workload/index.d.ts +8 -5
  18. package/dist/workload/index.js +393 -403
  19. package/dist/workload/index.js.map +1 -1
  20. package/package.json +2 -4
  21. package/dist/iam/index.d.ts.map +0 -1
  22. package/dist/index.d.ts.map +0 -1
  23. package/dist/runner.d.ts.map +0 -1
  24. package/dist/server/crypto.d.ts +0 -46
  25. package/dist/server/crypto.d.ts.map +0 -1
  26. package/dist/server/crypto.js +0 -134
  27. package/dist/server/crypto.js.map +0 -1
  28. package/dist/server/iam.d.ts +0 -11
  29. package/dist/server/iam.d.ts.map +0 -1
  30. package/dist/server/iam.js +0 -402
  31. package/dist/server/iam.js.map +0 -1
  32. package/dist/server/index.d.ts.map +0 -1
  33. package/dist/server/server.d.ts +0 -66
  34. package/dist/server/server.d.ts.map +0 -1
  35. package/dist/server/server.js +0 -223
  36. package/dist/server/server.js.map +0 -1
  37. package/dist/server/sso.d.ts +0 -11
  38. package/dist/server/sso.d.ts.map +0 -1
  39. package/dist/server/sso.js +0 -428
  40. package/dist/server/sso.js.map +0 -1
  41. package/dist/server/state.d.ts +0 -137
  42. package/dist/server/state.d.ts.map +0 -1
  43. package/dist/server/state.js +0 -152
  44. package/dist/server/state.js.map +0 -1
  45. package/dist/server/vault.d.ts +0 -11
  46. package/dist/server/vault.d.ts.map +0 -1
  47. package/dist/server/vault.js +0 -92
  48. package/dist/server/vault.js.map +0 -1
  49. package/dist/server/workload.d.ts +0 -19
  50. package/dist/server/workload.d.ts.map +0 -1
  51. package/dist/server/workload.js +0 -226
  52. package/dist/server/workload.js.map +0 -1
  53. package/dist/sso/index.d.ts.map +0 -1
  54. package/dist/tenant/index.d.ts +0 -17
  55. package/dist/tenant/index.d.ts.map +0 -1
  56. package/dist/tenant/index.js +0 -300
  57. package/dist/tenant/index.js.map +0 -1
  58. package/dist/types.d.ts.map +0 -1
  59. package/dist/types.js +0 -2
  60. package/dist/types.js.map +0 -1
  61. package/dist/utils.d.ts +0 -75
  62. package/dist/utils.d.ts.map +0 -1
  63. package/dist/utils.js +0 -139
  64. package/dist/utils.js.map +0 -1
  65. package/dist/workload/index.d.ts.map +0 -1
@@ -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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"}
@@ -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"}
@@ -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"}
@@ -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';
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tenant/index.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
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