@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 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workload/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils.ts","../../src/workload/index.ts"],"sourcesContent":["/**\n * Utility functions for Enterprise Standard Validator\n */\n\nimport type { ValidationConfig, ValidationResult } from './types';\n\n// Optional type import for StandardSchemaV1 - users can pass validators from\n// @enterprisestandard/react-validators-valibot or @enterprisestandard/react-validators-zod\ntype StandardSchemaV1 = {\n readonly '~standard': {\n readonly validate: (\n value: unknown,\n ) =>\n | { value: unknown }\n | { issues: ReadonlyArray<{ message: string; path?: ReadonlyArray<PropertyKey> }> }\n | Promise<{ value: unknown } | { issues: ReadonlyArray<{ message: string; path?: ReadonlyArray<PropertyKey> }> }>;\n };\n};\n\n/**\n * Creates a fetch function with default configuration\n */\nexport function createFetcher(config: ValidationConfig) {\n const timeout = config.timeout ?? 5000;\n const headers = config.headers ?? {};\n\n return async function fetcher(path: string, options: RequestInit = {}): Promise<Response> {\n const url = `${config.baseUrl}${path}`;\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n try {\n const response = await fetch(url, {\n ...options,\n signal: controller.signal,\n headers: {\n ...headers,\n ...options.headers,\n },\n redirect: 'manual', // Don't follow redirects automatically\n });\n return response;\n } finally {\n clearTimeout(timeoutId);\n }\n };\n}\n\n/**\n * Wraps a test function to capture timing and errors\n */\nexport async function runTest(\n name: string,\n testFn: () => Promise<undefined | { details?: Record<string, unknown> }>,\n): Promise<ValidationResult> {\n const start = performance.now();\n try {\n const result = await testFn();\n return {\n name,\n passed: true,\n duration: performance.now() - start,\n details: result?.details,\n };\n } catch (error) {\n return {\n name,\n passed: false,\n error: error instanceof Error ? error.message : String(error),\n duration: performance.now() - start,\n };\n }\n}\n\n/**\n * Creates a skipped test result\n */\nexport function skipTest(name: string, reason: string): ValidationResult {\n return {\n name,\n passed: true,\n duration: 0,\n details: { skipped: true, reason },\n };\n}\n\n/**\n * Assertion helper for tests\n */\nexport function assert(condition: boolean, message: string): asserts condition {\n if (!condition) {\n throw new Error(message);\n }\n}\n\n/**\n * Assertion helper for equality\n */\nexport function assertEqual<T>(actual: T, expected: T, message?: string): void {\n if (actual !== expected) {\n throw new Error(message ?? `Expected ${JSON.stringify(expected)}, got ${JSON.stringify(actual)}`);\n }\n}\n\n/**\n * Assertion helper for validating data against a StandardSchemaV1 validator\n *\n * This is the preferred way to validate data when you have a validator available.\n * The validator can be from valibot, zod, or any other library that implements StandardSchemaV1.\n *\n * @param data - The data to validate\n * @param validator - A StandardSchemaV1 validator (e.g., from valibotValidators or zodValidators)\n * @param message - Optional custom error message\n *\n * @example\n * ```typescript\n * import { valibotValidators } from '@enterprisestandard/react-validators-valibot';\n * const tenantValidator = valibotValidators.createTenantResponse();\n * assertValid(data, tenantValidator);\n * ```\n *\n * @throws Error if validation fails\n */\nexport function assertValid(data: unknown, validator: StandardSchemaV1, message?: string): void {\n const result = validator['~standard'].validate(data);\n\n // Handle both sync and async results\n if (result instanceof Promise) {\n throw new Error(\n message ?? 'Async validators are not supported in assertValid. Use the validator directly with await.',\n );\n }\n\n if ('issues' in result) {\n const issues = result.issues;\n const errorMessages = issues.map((issue) => {\n const path = issue.path ? issue.path.map(String).join('.') : '';\n return path ? `${path}: ${issue.message}` : issue.message;\n });\n throw new Error(message ?? `Validation failed: ${errorMessages.join('; ')}`);\n }\n\n // Validation passed\n}\n\n/**\n * Parses cookies from a Set-Cookie header\n */\nexport function parseCookies(headers: Headers): Map<string, string> {\n const cookies = new Map<string, string>();\n const setCookieHeaders = headers.getSetCookie?.() ?? [];\n\n for (const cookie of setCookieHeaders) {\n const [pair] = cookie.split(';');\n const [name, value] = pair.split('=');\n if (name && value !== undefined) {\n cookies.set(name.trim(), value.trim());\n }\n }\n\n return cookies;\n}\n\n/**\n * Builds a cookie header string from a map\n */\nexport function buildCookieHeader(cookies: Map<string, string>): string {\n return Array.from(cookies.entries())\n .map(([name, value]) => `${name}=${value}`)\n .join('; ');\n}\n","/**\n * Workload Validation Tests\n *\n * These tests validate that an application correctly implements\n * Enterprise Standard Workload Identity authentication.\n */\n\nimport type { TestDef, ValidationResult, ValidationSuiteResult, WorkloadValidationConfig } from '../types';\nimport { assert, assertValid, createFetcher, runTest, skipTest } from '../utils';\n\n/**\n * Gets a workload token response validator (workload tokens don't have id_token, only access_token)\n * This is different from OIDC tokenResponse which includes id_token\n */\nfunction getWorkloadTokenResponseValidator(): any {\n return {\n '~standard': {\n validate: (value: unknown) => {\n if (typeof value !== 'object' || value === null) {\n return {\n issues: [{ message: `Expected object, got ${typeof value}` }],\n };\n }\n\n const token = value as Record<string, unknown>;\n const issues: Array<{ message: string; path?: ReadonlyArray<PropertyKey> }> = [];\n\n if (typeof token.access_token !== 'string') {\n issues.push({ message: 'Expected access_token to be string', path: ['access_token'] });\n }\n\n if (typeof token.token_type !== 'string') {\n issues.push({ message: 'Expected token_type to be string', path: ['token_type'] });\n }\n\n // expires_in is optional but if present should be a number\n if (token.expires_in !== undefined && typeof token.expires_in !== 'number') {\n issues.push({ message: 'Expected expires_in to be number or undefined', path: ['expires_in'] });\n }\n\n // scope is optional but if present should be a string\n if (token.scope !== undefined && typeof token.scope !== 'string') {\n issues.push({ message: 'Expected scope to be string or undefined', path: ['scope'] });\n }\n\n if (issues.length > 0) {\n return { issues };\n }\n\n return { value };\n },\n },\n };\n}\n\n/**\n * Gets a JWKS key validator (simple inline validator for standard JWKS key structure)\n */\nfunction getJwksKeyValidator(): any {\n // JWKS keys have a standard structure - create a simple validator inline\n // This validates the minimal required fields: kty and kid\n return {\n '~standard': {\n validate: (value: unknown) => {\n if (typeof value !== 'object' || value === null) {\n return {\n issues: [{ message: `Expected object, got ${typeof value}` }],\n };\n }\n\n const key = value as Record<string, unknown>;\n const issues: Array<{ message: string; path?: ReadonlyArray<PropertyKey> }> = [];\n\n if (typeof key.kty !== 'string') {\n issues.push({ message: 'Expected kty to be string', path: ['kty'] });\n }\n\n if (typeof key.kid !== 'string') {\n issues.push({ message: 'Expected kid to be string', path: ['kid'] });\n }\n\n if (issues.length > 0) {\n return { issues };\n }\n\n return { value };\n },\n },\n };\n}\n\n/**\n * Gets a token validation result validator (simple inline validator)\n */\nfunction getTokenValidationResultValidator(): any {\n return {\n '~standard': {\n validate: (value: unknown) => {\n if (typeof value !== 'object' || value === null) {\n return {\n issues: [{ message: `Expected object, got ${typeof value}` }],\n };\n }\n\n const result = value as Record<string, unknown>;\n const issues: Array<{ message: string; path?: ReadonlyArray<PropertyKey> }> = [];\n\n if (typeof result.valid !== 'boolean') {\n issues.push({ message: 'Expected valid to be boolean', path: ['valid'] });\n }\n\n if (issues.length > 0) {\n return { issues };\n }\n\n return { value };\n },\n },\n };\n}\n\n/**\n * Default configuration for Workload validation\n */\nconst DEFAULT_CONFIG: Partial<WorkloadValidationConfig> = {\n tokenPath: '/api/workload/token',\n validatePath: '/api/workload/validate',\n jwksPath: '/api/workload/jwks',\n refreshPath: '/api/workload/refresh',\n esvUrl: 'http://localhost:3555',\n};\n\n/**\n * Test: JWKS endpoint returns valid JWKS structure\n */\nasync function testJwksEndpoint(\n config: WorkloadValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('Workload JWKS Endpoint', async () => {\n const response = await fetch(config.jwksPath!);\n\n // Should return 200 OK\n assert(response.status === 200, `Expected 200 OK, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have JWKS structure\n assert(Array.isArray(data.keys), 'JWKS response missing keys array');\n\n // Each key should have required fields - validate using validator\n const keyValidator = getJwksKeyValidator();\n for (const key of data.keys) {\n assertValid(key, keyValidator);\n }\n\n return {\n details: {\n keyCount: data.keys.length,\n algorithms: data.keys.map((k: { alg?: string }) => k.alg).filter(Boolean),\n },\n };\n });\n}\n\n/**\n * Test: Token endpoint returns access token\n */\nasync function testTokenEndpoint(\n config: WorkloadValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult & { token?: string }> {\n const result = await runTest('Workload Token Endpoint', async () => {\n const url = config.testScopes\n ? `${config.tokenPath}?scope=${encodeURIComponent(config.testScopes)}`\n : config.tokenPath!;\n\n const response = await fetch(url);\n\n // Should return 200 OK (or 503 if workload not configured)\n if (response.status === 503) {\n return {\n details: {\n skipped: true,\n reason: 'Workload authentication not configured',\n },\n };\n }\n\n assert(response.status === 200, `Expected 200 OK, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have token response structure - validate using workload-specific validator\n // (workload tokens don't have id_token, only access_token)\n const validator = getWorkloadTokenResponseValidator();\n assertValid(data, validator);\n\n return {\n details: {\n tokenType: data.token_type,\n hasToken: !!data.access_token,\n token: data.access_token,\n },\n };\n });\n\n return {\n ...result,\n token: result.details?.token as string | undefined,\n };\n}\n\n/**\n * Test: Token validation endpoint works\n */\nasync function testValidateEndpoint(\n config: WorkloadValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n token: string,\n): Promise<ValidationResult> {\n return runTest('Workload Validate Endpoint', async () => {\n const response = await fetch(config.validatePath!, {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n // Should return 200 OK for valid token\n assert(response.status === 200, `Expected 200 OK for valid token, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have validation result structure - validate using validator\n const validationResultValidator = getTokenValidationResultValidator();\n assertValid(data, validationResultValidator);\n\n assert(data.valid === true, 'Token should be valid');\n\n return {\n details: {\n valid: data.valid,\n claims: data.claims,\n },\n };\n });\n}\n\n/**\n * Test: Token validation rejects invalid tokens\n */\nasync function testValidateEndpointInvalid(\n config: WorkloadValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('Workload Validate Endpoint (Invalid Token)', async () => {\n const response = await fetch(config.validatePath!, {\n method: 'POST',\n headers: {\n Authorization: 'Bearer invalid.token.here',\n },\n });\n\n // Should return 401 for invalid token\n assert(response.status === 401, `Expected 401 Unauthorized for invalid token, got ${response.status}`);\n\n const data = await response.json();\n\n // Should indicate token is invalid - validate using validator\n const validationResultValidator = getTokenValidationResultValidator();\n assertValid(data, validationResultValidator);\n\n assert(data.valid === false, 'Invalid token should not validate');\n\n return {\n details: {\n valid: data.valid,\n error: data.error,\n },\n };\n });\n}\n\n/**\n * Test: Token validation rejects missing authorization header\n */\nasync function testValidateEndpointNoAuth(\n config: WorkloadValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('Workload Validate Endpoint (No Auth)', async () => {\n const response = await fetch(config.validatePath!, {\n method: 'POST',\n });\n\n // Should return 401 for missing auth\n assert(response.status === 401, `Expected 401 Unauthorized for missing auth, got ${response.status}`);\n\n return {\n details: {\n status: response.status,\n requiresAuth: true,\n },\n };\n });\n}\n\n/**\n * Test: Refresh endpoint works\n */\nasync function testRefreshEndpoint(\n config: WorkloadValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('Workload Refresh Endpoint', async () => {\n const response = await fetch(config.refreshPath!, {\n method: 'POST',\n });\n\n // Should return 200 OK or 503 if not configured\n if (response.status === 503) {\n return {\n details: {\n skipped: true,\n reason: 'Workload authentication not configured',\n },\n };\n }\n\n assert(response.status === 200, `Expected 200 OK, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have token response structure - validate using workload-specific validator\n // (workload tokens don't have id_token, only access_token)\n const validator = getWorkloadTokenResponseValidator();\n assertValid(data, validator);\n\n return {\n details: {\n tokenType: data.token_type,\n hasToken: !!data.access_token,\n },\n };\n });\n}\n\n/**\n * Test: Whoami endpoint with workload authentication\n *\n * This test calls the ESV mock server's /api/whoami endpoint to validate\n * that the workload token issued by the application is valid and can be\n * used for cross-service authentication. This allows each application to\n * be tested independently without requiring other applications to be running.\n */\nasync function testWhoamiWithWorkload(config: WorkloadValidationConfig, token: string): Promise<ValidationResult> {\n return runTest('Workload Authentication (Whoami)', async () => {\n // Call the ESV mock server's whoami endpoint with the workload token\n const esvWhoamiUrl = `${config.esvUrl}/api/whoami`;\n const response = await globalThis.fetch(esvWhoamiUrl, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n // Should return 200 OK\n if (response.status === 404) {\n return {\n details: {\n skipped: true,\n reason: 'ESV whoami endpoint not available',\n },\n };\n }\n\n assert(response.status === 200, `Expected 200 OK, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have workload identity in response\n assert(data.workload !== undefined, 'Response should include workload identity');\n\n return {\n details: {\n workloadId: data.workload?.workload_id,\n clientId: data.workload?.client_id,\n },\n };\n });\n}\n\n/**\n * Runs all Workload validation tests\n */\nexport async function validateWorkload(config: WorkloadValidationConfig): Promise<ValidationSuiteResult> {\n const startTime = performance.now();\n const mergedConfig = { ...DEFAULT_CONFIG, ...config };\n const fetch = createFetcher(mergedConfig);\n\n const tests: ValidationResult[] = [];\n\n // Test JWKS endpoint\n tests.push(await testJwksEndpoint(mergedConfig, fetch));\n\n // Test token endpoint and get a token for further tests\n const tokenResult = await testTokenEndpoint(mergedConfig, fetch);\n tests.push(tokenResult);\n\n // Test validation endpoints\n tests.push(await testValidateEndpointNoAuth(mergedConfig, fetch));\n tests.push(await testValidateEndpointInvalid(mergedConfig, fetch));\n\n // If we have a token, test validation with valid token\n const token = tokenResult.token ?? config.validToken;\n if (token) {\n tests.push(await testValidateEndpoint(mergedConfig, fetch, token));\n tests.push(await testWhoamiWithWorkload(mergedConfig, token));\n } else {\n tests.push(skipTest('Workload Validate Endpoint', 'No valid token available'));\n tests.push(skipTest('Workload Authentication (Whoami)', 'No valid token available'));\n }\n\n // Test refresh endpoint\n tests.push(await testRefreshEndpoint(mergedConfig, fetch));\n\n const duration = performance.now() - startTime;\n const passed = tests.filter((t) => t.passed).length;\n const failed = tests.filter((t) => !t.passed).length;\n const skipped = tests.filter((t) => t.details?.skipped).length;\n\n return {\n suite: 'Workload',\n passed: failed === 0,\n tests,\n duration,\n summary: {\n total: tests.length,\n passed: passed - skipped,\n failed,\n skipped,\n },\n };\n}\n\n/**\n * Creates Vitest-compatible test suite for Workload validation\n */\nexport function createWorkloadTests(config: WorkloadValidationConfig): Array<TestDef> {\n const mergedConfig = { ...DEFAULT_CONFIG, ...config };\n const fetch = createFetcher(mergedConfig);\n\n // Store token for dependent tests\n let acquiredToken: string | undefined;\n\n return [\n {\n name: 'JWKS endpoint returns valid keys',\n fn: async () => {\n const result = await testJwksEndpoint(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'token endpoint returns access token',\n fn: async () => {\n const result = await testTokenEndpoint(mergedConfig, fetch);\n if (!result.passed && !result.details?.skipped) throw new Error(result.error);\n acquiredToken = result.token;\n },\n },\n {\n name: 'validate endpoint rejects missing auth',\n fn: async () => {\n const result = await testValidateEndpointNoAuth(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'validate endpoint rejects invalid tokens',\n fn: async () => {\n const result = await testValidateEndpointInvalid(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'validate endpoint accepts valid token',\n fn: async () => {\n const token = acquiredToken ?? config.validToken;\n if (!token) {\n console.warn('Skipping: No valid token available');\n return;\n }\n const result = await testValidateEndpoint(mergedConfig, fetch, token);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'whoami endpoint works with workload authentication',\n fn: async () => {\n const token = acquiredToken ?? config.validToken;\n if (!token) {\n console.warn('Skipping: No valid token available');\n return;\n }\n const result = await testWhoamiWithWorkload(mergedConfig, token);\n if (!result.passed && !result.details?.skipped) throw new Error(result.error);\n },\n },\n {\n name: 'refresh endpoint works',\n fn: async () => {\n const result = await testRefreshEndpoint(mergedConfig, fetch);\n if (!result.passed && !result.details?.skipped) throw new Error(result.error);\n },\n },\n ];\n}\n\nexport type { WorkloadValidationConfig };\n"],"mappings":"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","names":["fetch"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enterprisestandard/esv",
3
- "version": "0.0.5-beta.20260115.2",
3
+ "version": "0.0.5-beta.20260115.4",
4
4
  "description": "Enterprise Standard Validator - Validation tests for Enterprise Standard implementations",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -41,9 +41,7 @@
41
41
  "publishConfig": {
42
42
  "access": "public"
43
43
  },
44
- "scripts": {
45
- "build": "tsc"
46
- },
44
+ "scripts": {},
47
45
  "peerDependencies": {
48
46
  "vitest": "^3.0.0"
49
47
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/iam/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAoB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAqftG;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAoG7F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,mBAAmB;;;QA6DtD;;;;WAIG;yCAC4B,KAAK,CAAC,OAAO,CAAC;QAmB7C;;;;WAIG;wCAC2B,KAAK,CAAC,OAAO,CAAC;;EAgG/C;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE7D,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EAEtB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,EAChD,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EACnD,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;IACpC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,wBAAwB,CAAC;IAC9C,MAAM,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;CAC3C,QAoEF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CA6B1D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG"}
@@ -1,46 +0,0 @@
1
- /**
2
- * Cryptographic utilities for the ESV mock server
3
- *
4
- * Generates ephemeral RSA keys on startup for signing JWTs.
5
- * Uses only Node.js built-in crypto module.
6
- */
7
- /**
8
- * Initialize the cryptographic keys
9
- * Called on server startup
10
- */
11
- export declare function initializeKeys(): void;
12
- /**
13
- * Get the key ID
14
- */
15
- export declare function getKeyId(): string;
16
- /**
17
- * Sign a JWT with the private key
18
- */
19
- export declare function signJwt(payload: Record<string, unknown>, expiresInSeconds?: number): string;
20
- /**
21
- * Verify a JWT signature
22
- */
23
- export declare function verifyJwt(token: string): {
24
- valid: boolean;
25
- payload?: Record<string, unknown>;
26
- error?: string;
27
- };
28
- /**
29
- * Get the JWKS (JSON Web Key Set) for the public key
30
- */
31
- export declare function getJwks(): {
32
- keys: Array<Record<string, string>>;
33
- };
34
- /**
35
- * Generate a random string for codes, states, etc.
36
- */
37
- export declare function generateRandomString(length?: number): string;
38
- /**
39
- * Generate a UUID
40
- */
41
- export declare function generateUUID(): string;
42
- /**
43
- * Verify PKCE code challenge
44
- */
45
- export declare function verifyCodeChallenge(codeVerifier: string, codeChallenge: string): boolean;
46
- //# sourceMappingURL=crypto.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/server/crypto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAQrC;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAiBD;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAE,MAAa,GAAG,MAAM,CAwBjG;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA+B9G;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI;IAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAejE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAIxF"}
@@ -1,134 +0,0 @@
1
- /**
2
- * Cryptographic utilities for the ESV mock server
3
- *
4
- * Generates ephemeral RSA keys on startup for signing JWTs.
5
- * Uses only Node.js built-in crypto module.
6
- */
7
- import * as crypto from 'node:crypto';
8
- // Key pair generated on module load
9
- let privateKey;
10
- let publicKey;
11
- let keyId;
12
- /**
13
- * Initialize the cryptographic keys
14
- * Called on server startup
15
- */
16
- export function initializeKeys() {
17
- const { publicKey: pubKey, privateKey: privKey } = crypto.generateKeyPairSync('rsa', {
18
- modulusLength: 2048,
19
- });
20
- privateKey = privKey;
21
- publicKey = pubKey;
22
- keyId = crypto.randomBytes(8).toString('hex');
23
- }
24
- /**
25
- * Get the key ID
26
- */
27
- export function getKeyId() {
28
- return keyId;
29
- }
30
- /**
31
- * Base64URL encode a buffer or string
32
- */
33
- function base64UrlEncode(data) {
34
- const buffer = typeof data === 'string' ? Buffer.from(data) : data;
35
- return buffer.toString('base64url');
36
- }
37
- /**
38
- * Base64URL decode a string
39
- */
40
- function base64UrlDecode(data) {
41
- return Buffer.from(data, 'base64url');
42
- }
43
- /**
44
- * Sign a JWT with the private key
45
- */
46
- export function signJwt(payload, expiresInSeconds = 3600) {
47
- const now = Math.floor(Date.now() / 1000);
48
- const header = {
49
- alg: 'RS256',
50
- typ: 'JWT',
51
- kid: keyId,
52
- };
53
- const claims = {
54
- ...payload,
55
- iat: now,
56
- exp: now + expiresInSeconds,
57
- };
58
- const encodedHeader = base64UrlEncode(JSON.stringify(header));
59
- const encodedPayload = base64UrlEncode(JSON.stringify(claims));
60
- const signatureInput = `${encodedHeader}.${encodedPayload}`;
61
- const sign = crypto.createSign('RSA-SHA256');
62
- sign.update(signatureInput);
63
- const signature = sign.sign(privateKey);
64
- return `${signatureInput}.${base64UrlEncode(signature)}`;
65
- }
66
- /**
67
- * Verify a JWT signature
68
- */
69
- export function verifyJwt(token) {
70
- try {
71
- const parts = token.split('.');
72
- if (parts.length !== 3) {
73
- return { valid: false, error: 'Invalid JWT format' };
74
- }
75
- const [encodedHeader, encodedPayload, encodedSignature] = parts;
76
- const signatureInput = `${encodedHeader}.${encodedPayload}`;
77
- const signature = base64UrlDecode(encodedSignature);
78
- const verify = crypto.createVerify('RSA-SHA256');
79
- verify.update(signatureInput);
80
- const isValid = verify.verify(publicKey, signature);
81
- if (!isValid) {
82
- return { valid: false, error: 'Invalid signature' };
83
- }
84
- const payload = JSON.parse(base64UrlDecode(encodedPayload).toString('utf-8'));
85
- // Check expiration
86
- const now = Math.floor(Date.now() / 1000);
87
- if (payload.exp && payload.exp < now) {
88
- return { valid: false, error: 'Token expired' };
89
- }
90
- return { valid: true, payload };
91
- }
92
- catch (error) {
93
- return { valid: false, error: error instanceof Error ? error.message : 'Unknown error' };
94
- }
95
- }
96
- /**
97
- * Get the JWKS (JSON Web Key Set) for the public key
98
- */
99
- export function getJwks() {
100
- const jwk = publicKey.export({ format: 'jwk' });
101
- return {
102
- keys: [
103
- {
104
- kty: jwk.kty,
105
- n: jwk.n,
106
- e: jwk.e,
107
- kid: keyId,
108
- use: 'sig',
109
- alg: 'RS256',
110
- },
111
- ],
112
- };
113
- }
114
- /**
115
- * Generate a random string for codes, states, etc.
116
- */
117
- export function generateRandomString(length = 32) {
118
- return crypto.randomBytes(length).toString('hex').substring(0, length);
119
- }
120
- /**
121
- * Generate a UUID
122
- */
123
- export function generateUUID() {
124
- return crypto.randomUUID();
125
- }
126
- /**
127
- * Verify PKCE code challenge
128
- */
129
- export function verifyCodeChallenge(codeVerifier, codeChallenge) {
130
- const hash = crypto.createHash('sha256').update(codeVerifier).digest();
131
- const computed = base64UrlEncode(hash);
132
- return computed === codeChallenge;
133
- }
134
- //# sourceMappingURL=crypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/server/crypto.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * IAM/SCIM endpoint handlers for the ESV mock server
3
- *
4
- * Implements SCIM 2.0 endpoints for user and group management.
5
- */
6
- import type { IncomingMessage, ServerResponse } from 'node:http';
7
- /**
8
- * Handle IAM/SCIM requests
9
- */
10
- export declare function handleIamRequest(req: IncomingMessage, res: ServerResponse, pathname: string): Promise<void>;
11
- //# sourceMappingURL=iam.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"iam.d.ts","sourceRoot":"","sources":["../../src/server/iam.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AA0FjE;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BjH"}